@charset "UTF-8";

/*
Theme Name: Origin
Author: WeFull Co., Ltd.
Author URI: https://www.wefull.co.jp/
Version: 1.2
*/

/* Noto Sans JP */
@font-face {
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: normal;
	src: url('./fonts/NotoSansJP-Regular.woff2') format('woff2'), url('./fonts/NotoSansJP-Regular.woff') format('woff'), url('./fonts/NotoSansJP-Regular.ttf') format('truetype'); 
}

@font-face {
	font-family: 'Noto Sans JP';
	font-style: bold;
	font-weight: bold;
	src: url('./fonts/NotoSansJP-Bold.woff2') format('woff2'), url('./fonts/NotoSansJP-Bold.woff') format('woff'), url('./fonts/NotoSansJP-Bold.ttf') format('truetype'); 
}

/* Noto Serif JP */
@font-face {
	font-family: 'Noto Serif JP';
	font-style: normal;
	font-weight: normal;
	src: url('./fonts/NotoSerifJP-Regular.woff2') format('woff2'), url('./fonts/NotoSerifJP-Regular.woff') format('woff'); 
}

@font-face {
	font-family: 'Noto Serif JP';
	font-style: bold;
	font-weight: bold;
	src: url('./fonts/NotoSerifJP-Bold.woff2') format('woff2'), url('./fonts/NotoSerifJP-Bold.woff') format('woff'); 
}

.wrap {
	position: relative;
	max-width: 1440px;
    margin: auto;
    padding: 0 20px;
	z-index: 10;
}

@media screen and (max-width: 767px){
	.wrap {
		padding: 0 10px;
	}
}

/********** 共通設定 **********/
p.txt:not(:last-child){
	margin-bottom: 1rem;
}

@media screen and (max-width: 767px){
	.sp_scroll {
		overflow: scroll;
	}
	
	.sp_scroll table th,
	.sp_scroll table td {
		white-space: nowrap;
	}
}

a.btn1 {
	display: block;
	width: 22.5rem;
	font-weight: bold;
	padding: 1rem 2rem;
	color: #fff;
	background: var(--dark-green);
	border-color: var(--dark-green);
	border-width: 1px;
	border-style: solid;
	border-radius: 100px;
}

@media screen and (max-width: 767px){
	a.btn1 {
		width: 60%;
		font-size: 1rem;
		margin-left: auto;
		padding: 0.5rem 0.7rem 0.5rem 1.5rem;
	}
}

a.btn1:hover {
	color: var(--dark-green);
	background: #fff;
}

a.btn1 span {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

a.btn1 span::after {
	font-size: 1.35em;
	font-family: "Font Awesome 5 Free";
	content: '\f105';
}

a.btn_reserve {
	width: 80%;
	display: block;
	position: relative;
	font-weight: bold;
	margin: auto auto 0;
    padding: 1rem;
	color: #fff;
	background: var(--main-color-normal);
    border: 1px solid var(--main-color-normal);
    border-radius: 10px;
    text-align: center;
}

@media screen and (max-width: 767px){
	a.btn_reserve {
		padding: 10px;
	}
}

a.btn_reserve::after {
	display: block;
	position: absolute;
    font-family: "Font Awesome 5 Free";
    font-size: 1.2rem;
    content: '\f105';
    font-weight: 900;
	top: calc(50% - 10px);
	right: 1rem;
	line-height: 20px;
}

a.btn_reserve:hover {
	color: var(--main-color-normal);
	background: #fff;
}

.picback.p1 {
	position: relative;
	background: url(./img/pic_back1.webp);
	background-size: cover;
	background-attachment: fixed;
	background-position: center;
}

.picback::after {
	display: block;
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: rgba(16, 16, 16, 0.7);
}

.picback h2,
.picback h2 span,
.picback p.big,
.picback p.lead,
.picback p.txt {
	color: #fff;
}

.picback h2.border::before {
	background: #fff;
}

/********** パンくずリスト **********/
.breadcrumbs {
	padding: 8px 0 10px;
    background: #eaf7ff;
	white-space: nowrap;
    overflow-x: auto;
}

@media screen and (max-width: 767px){
	.breadcrumbs {
		padding: 5px 0 8px;
	}
}

.breadcrumbs ul {
	display: flex;
	
}

.breadcrumbs ul li {
	font-size: 14px;
}

@media screen and (max-width: 767px){
	.breadcrumbs ul li {
		font-size: 12px;
	}
}

.breadcrumbs ul li:first-child a::before {
    font-family: "Font Awesome 5 Free";
    content: '\f015';
    font-weight: 900;
    margin: 0 5px;
}

.breadcrumbs ul li:not(:last-child)::after {
    font-family: "Font Awesome 5 Free";
    content: '\f105';
    font-weight: 900;
    margin: 0 5px;
}

.site-content {
    margin-top: 100px;
}

@media screen and (max-width: 767px){
	.site-content {
		margin-top: 50px;
	}
}

/********** 共通ヘッダー **********/
header {
    position: fixed;
    width: 100%;
    top: 0;
    left: 0;
    height: 100px;
    /* background: linear-gradient(to bottom, #0c3472, #4d6b9b); */
	background: #fff;
    padding: 0 20px;
	z-index: 10000;
}

@media screen and (max-width: 767px){
	header {
		height: 50px;
		padding: 0 5px;
	}
}

header .wrap,
footer .wrap{
	display: flex;
	height: 100%;
	padding: 0;
	align-items: center;
    justify-content: space-between;
}

header .site-logo a img{
	display: block;
	max-width: 300px;
	margin-right: 2vw;
}

@media screen and (max-width: 767px){
	header .site-logo a img{
		position: relative;
    	width: 160px;
    	z-index: 10000;
	}
}

@media screen and (max-width: 1199px){
	header nav.pc_nav {
		display: none;
	}
}

@media screen and (min-width: 1200px){
	header nav.sp_nav {
		display: none;
	}
}

@media screen and (min-width: 1198px){
	header nav.pc_nav {
		display: flex;
		align-items: center;
		justify-content: right;
	}
	
	header nav.pc_nav a.tel span {
		font-size: 1.6rem;
    	font-weight: bold;
    	color: #ca76cb;
	}
	
	header nav.pc_nav a.tel span::before {
		font-family: "Font Awesome 5 Free";
    	content: '\f095';
    	font-weight: 900;
    	margin-right: 10px;
	}
}

nav.pc_nav img.line-qr {
	max-width: 80px;
}

@media screen and (max-width: 1400px){
	nav.pc_nav img.line-qr {
		display: none;
	}
}

nav.pc_nav .cta {
	display: flex;
    flex-wrap: wrap;
    flex-direction: column;
	margin: 0 1rem;
}

@media screen and (max-width: 1300px){
	nav.pc_nav .cta {
		display: none;
	}
}

nav.pc_nav .cta .reserve {
	display: block;
    color: #fff;
    background: #d63636;
    text-align: center;
    padding: 4px;
    border-radius: 5px;
	border: 1px solid #d63636;
    box-shadow: 0 2px 2px rgba(16, 16, 16, 0.5);
}

nav.pc_nav .cta .reserve:hover {
	background: #fff;
    color: #d63636;
}

@media screen and (max-width: 767px){
	header nav.sp_nav a.tel {
    	display: block;
    	position: fixed;
    	top: 4px;
    	right: 60px;
    	background: #ca76cb;
	}
	
	header nav.sp_nav a.reserve {
    	display: block;
    	position: fixed;
    	top: 4px;
    	right: 108px;
    	background: #c74b55;
	}
	
	header nav.sp_nav a.line {
    	display: block;
    	position: fixed;
    	top: 4px;
    	right: 156px;
	}
	
	header nav.sp_nav a.line img {
		max-width: 42px;
	}
}

@media screen and (min-width: 768px){
	header nav.sp_nav a.tel,
	header nav.sp_nav a.reserve {
    	display: none;
	}
}

header nav.sp_nav a.tel span {
	display: flex;
    flex-wrap: wrap;
    width: 44px;
    height: 42px;
    position: relative;
    font-size: 0.9rem;
    padding: 2px;
    color: #fff;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

header nav.sp_nav a.tel span::before {
    display: block;
    width: 100%;
    font-family: "Font Awesome 5 Free";
	font-size: 1.2em;
    content: '\f095';
    font-weight: 900;
    text-align: center;
}

header nav.sp_nav a.reserve span {
	display: flex;
    flex-wrap: wrap;
    width: 44px;
    height: 42px;
    position: relative;
    font-size: 0.75rem;
    padding: 2px;
    color: #fff;
    align-items: center;
    justify-content: center;
    line-height: 1;
	letter-spacing: -0.1em;
}

header nav.sp_nav a.reserve span::before {
    display: block;
    width: 100%;
    font-family: "Font Awesome 5 Free";
	font-size: 1.2em;
    content: '\f073';
    font-weight: 900;
    text-align: center;
}

header nav ul {
	display: flex;
	width: fit-content;
    /* margin-left: auto; */
    /* justify-content: space-between; */
}

@media screen and (max-width: 1199px){
	header nav ul {
		flex-wrap: wrap;
	}
}

header nav ul li {
	position: relative;
    /* width: 20%; */
}

header nav ul li a {
	display: block;
	position: relative;
	padding: 10px;
	transition: 0.3s;
}

@media screen and (min-width: 1200px){
	header nav ul li a {
		text-align: center;
		padding: 10px 15px;
	}
	
	header nav ul li a::after {
		content: "";
		position: absolute;
		width: 0%;
		height: 1px;
		bottom: 0;
		left: 50%;
		background: var(--main-color-normal);
		transition: 0.3s;
	}
	
	header nav ul li a:hover::after {
		width: 100%;
		left: 0;
		transition: 0.3s;
	}
	
	header nav ul li:not(:first-child)::before {
		content: "";
		position: absolute;
		width: 1px;
		height: 100%;
		top: 0;
		left: -1px;
		background: color-mix(in srgb, var(--main-color-normal) 30%, transparent);
	}
}

@media screen and (max-width: 1199px){
	header nav ul li a {
		display: flex;
		position: relative;
		align-items: center;
	}
	
	header nav ul li a:after {
		font-family: "Font Awesome 5 Free";
    	content: '\f105';
    	    position: absolute;
    		right: 1rem;
    		font-size: 1em;
    		font-weight: bold;
	}
}

@media screen and (max-width: 767px){
	header nav ul li a {
		padding: 1rem 0;
		color: var(--dark-green);
	}
	
	header nav ul li a:after {
		right: 0;
	}
}

@media screen and (max-width: 1199px){
	header nav ul li{
		width: 100%;
	}
}

header nav ul li a p {
	font-size: 0.7rem;
	line-height: 1;
	margin-bottom: 5px;
}

@media screen and (max-width: 1199px){
	header nav ul li a p {
		width: 140px;
		margin: 0;
	}
}

@media screen and (max-width: 767px){
	header nav ul li a p {
		width: 120px;
		font-size: 0.7em;
	}
}

header nav ul li a span {
	display: block;
	font-size: 0.95rem;
	font-weight: bold;
	line-height: 1;
}

@media screen and (max-width: 767px){
	header nav ul li a span {
		font-size: 1rem;
	}
}

header nav li.footmenu {
	display: none;
}

footer nav li.headtel {
	display: none;
}

header .right {
	width: 100%;
}

@media screen and (max-width: 990px){
	header .right {
		width: auto;
	}
}

header .right .sp_tel {
	display: flex;
    position: relative;
    width: 80px;
    height: 80px;
    padding: 10px;
	font-weight: bold;
    color: #fff;
    background: #e98f2f;
	border: 1px solid rgba(255, 255, 255, 0.5);
    align-items: end;
    justify-content: center;
}

@media screen and (min-width: 991px){
	header .right .sp_tel {
		display: none;
	}
}

@media screen and (max-width: 990px){
	header .right .sp_tel {
		margin-right: 120px;
	}
}

@media screen and (max-width: 767px){
	header .right .sp_tel {
		font-size: 10px;
		margin-right: 50px;
		width: 40px;
    	height: 40px;
		padding: 3px;
	}
}

header .right .sp_tel span::before {
	content: '\f095';
    position: absolute;
    font-family: "Font Awesome 5 Free";
    font-size: 34px;
    font-weight: 900;
    top: 10px;
    left: calc(50% - 17px);
}

@media screen and (max-width: 767px){
	header .right .sp_tel span::before {
		font-size: 18px;
		left: calc(50% - 9px);
		top: 4px;
	}
}

header .right .right_top{
	display: flex;
	margin-bottom: 5px;
    align-items: center;
    justify-content: end;
}

@media screen and (max-width: 1199px){
	header .right .right_top{
		position: absolute;
		right: 8rem;
    	top: 30px;
	}
}

@media screen and (max-width: 990px){
	header .right .right_top{
		display: none;
	}
}

header .right .btn,
header .right .btn_fc {
    display: block;
    width: fit-content;
    font-size: 1.2rem;
    font-weight: bold;
    text-align: center;
    padding: 0 30px;
    color: #fff;
    border: 1px solid #fff;
	border-radius: 3px;
}

header .right .btn {
	background: #1b9b1b;
}

header .right .btn:hover {
	background: #0f770f;
}

header .right .btn_fc {
	margin-left: 10px;
	background: #2390bf;
}

header .right .btn_fc:hover {
	background: #12749f;
}

header .right .btn span::before,
header .right .btn_fc span::before {
	font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: 5px;
}

header .right .btn span::before {
    content: '\f450';
}

header .right .btn_fc span::before {
    content: '\f1ad';
}

header .right .btn,
header .right .btn_fc {
	line-height: 40px
}

@media screen and (min-width: 1200px){
	.sp_cta {
		display: none;
	}
}

footer .sp_cta {
	display: none;
}

/********** TOPメインビジュアル **********/
.mv_area {
	position: relative;
	aspect-ratio: 16 / 9;
	width: 100%;
	max-height: 90vh;
}

.mv_area::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	clip-path: polygon(50% 0%, 100% 10%, 100% 100%, 0 100%, 0 10%);
	background: url(./img/mv002.webp);
	background-size: cover;
}

@media screen and (max-width: 767px){
	.mv_area::before {
		clip-path: polygon(50% 0%, 100% 5%, 100% 100%, 0 100%, 0 5%);
	}
}

.mv_area img.mv_img {
    aspect-ratio: 16 / 9;
    max-height: 65vh;
    object-fit: cover;
    object-position: center bottom;
}

@media screen and (max-width: 767px){
	.mv_area {
		height: 60vh;
	}
	
	.mv_area img.mv_img {
		height: 60vh;
		object-position: center;
	}
}

.mv_area.top img {
	object-position: center;
}

.mv_area .box {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
    left: 0;
	display: flex;
    align-items: center;
    justify-content: left;
}

.mv_area .box.foreign {
	align-items: start;
}

.mv_area .box .wrap {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.mv_area .box.foreign .wrap {
	margin-top: 2rem;
}

.mv_area .catch {
	width: fit-content;
	/* background: rgba(9, 76, 115, 0.9); */
	padding: 2rem 2rem 4rem;
	text-align: center;
}

@media screen and (max-width: 767px){
	.mv_area .catch {
		padding: 2rem 1rem 6rem;
	}
}

.mv_area .catch p.lead {
	font-size: 2.4vw;
    font-weight: bold;
    color: #fff;
    text-shadow: 0 0 2px #222, 0 0 2px #222, 0 0 2px #222, 0 0 3px #222, 0 0 3px #222, 0 0 3px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px #222;
	margin-bottom: 2rem;
}

@media screen and (max-width: 767px){
	.mv_area .catch p.lead {
		font-size: 5vw;
		text-align: center;
		text-shadow: 0 0 2px #333, 0 0 2px #333, 0 0 2px #333, 0 0 3px #333, 0 0 3px #333, 0 0 3px #333;
		margin-bottom: 1rem;
	}
}

.mv_area .catch img {
	max-width: 300px;
}

@media screen and (max-width: 767px){
	.mv_area .catch img {
		width: 50%;
	}
}

.mv_area .catch p.lead small {
	display: block;
}

.mv_area .catch a.btn {
	display: block;
    width: fit-content;
    font-size: 1.2rem;
    font-weight: bold;
    color: #fff;
    background: #d63636;
    border: 1px solid;
    margin: 2rem auto 0;
    padding: 1rem 4rem;
}

.mv_area .catch a.bnr {
	display: block;
    background: #fff;
    margin: 2rem auto 0;
    max-width: 600px;
}

@media screen and (max-width: 767px){
	.mv_area .catch a.bnr {
		margin: 2rem auto 0;
	}
}

.mv_area .catch a.bnr img {
	border: 1px solid #fff;
	box-shadow: 0 4px 4px rgba(16, 16, 16, 0.5);
}

/********** TOP・ABOUT **********/
.top .about {
	background: linear-gradient(135deg, #fafafa 70%, #e3f8e3 0);;
}

.top .about .flex {
	position: relative;
	z-index: 1;
}

.top .about .message {
	width: 65%;
}

@media screen and (max-width: 767px){
	.top .about .message {
		margin-bottom: 2rem;
	}
}

.top .about .image {
	position: relative;
	width: 30%;
}

@media screen and (min-width: 1200px){
	.top .about .image {
		margin-right: 1rem;
	}
	
	.top .about .image::before {
    	position: absolute;
    	content: "";
    	width: 100%;
    	height: 100%;
    	background: rgba(16, 16, 16, 0.3);
    	right: -1rem;
    	bottom: -1rem;
    	z-index: -1;
	}
}

@media screen and (min-width: 768px){
	.top .about .image {
		padding: 1rem;
		background: #fff;
	}

	.top .about .image::after {
		content: "";
		position: absolute;
		top: 0.5rem;
		left: 0.5rem;
		right: 0.5rem;
		bottom: 0.5rem;
		border: 1px solid var(--light-green);
	}
}

.top .about .image img {
	display: block;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

@media screen and (max-width: 767px){
	.top .about .image img {
		width: 75%;
		margin: 1rem auto 0;
	}
}

.top .about p.big {
	font-size: 1.8rem;
	font-weight: bold;
	margin-bottom: 1rem;
	color: var(--dark-green);
}

@media screen and (max-width: 767px){
	.top .about p.big {
		font-size: 1.4rem;
		line-height: 1.35;
	}
}

.top .about .box {
	margin-bottom: 2rem;
}

/********** TOP・FEATURE **********/
.top .feature {
	
}

.top .feature p.big {
	font-size: 2rem;
	font-weight: bold;
	text-align: center;
	margin-bottom: 2rem;
}

.top .feature ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.top .feature ul li {
	width: calc(100% / 5 - 0.5rem);
	text-align: center;
	background: #ccc;
}

.top .feature ul li img {
	display: block;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.top .feature ul li p {
	padding: 1rem;
}

/********** コラム記事 **********/
.column_archive {
	
}

.column_archive ul {
	
}

.column_archive ul li:not(:last-child){
	margin-bottom: 2rem;
}

@media screen and (max-width: 767px){
	.column_archive ul li:not(:last-child){
		margin-bottom: 1rem;
	}
}

.column_archive ul li a {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

@media screen and (max-width: 767px){
	.column_archive ul li a {
		border: 1px solid #999;
		border-radius: 10px;
		overflow: hidden;
	}
}

.column_archive ul li a img {
	width: 30%;
	aspect-ratio: 16 / 9;
}

@media screen and (max-width: 767px){
	.column_archive ul li a img {
		width: 100%;
	}
}

.column_archive ul li a .meta {
	width: 66%;
}

@media screen and (max-width: 767px){
	.column_archive ul li a .meta {
		width: 100%;
		padding: 1rem;
	}
}

.column_archive ul li a .meta p {
	color: #000;
}

.column_archive ul li a .meta p.date {
	font-size: 0.9rem;
	font-weight: bold;
}


.column_archive ul li a .meta p.title {
	font-size: 1.2rem;
	font-weight: bold;
	margin-bottom: 1rem;
	color: #1355a3;
}

@media screen and (max-width: 767px){
	.column_archive ul li a .meta p.title {
		font-size: 1rem;
	}
}

.column_archive ul li a .meta p.txt {
	font-size: 0.9rem;
}

@media screen and (max-width: 767px){
	.column_archive ul li a .meta p.txt {
		font-size: 0.85rem;
		line-height: 1.5;
		display: -webkit-box; /* 必須 */
    	-webkit-box-orient: vertical; /* 必須 */
    	-webkit-line-clamp: 3; /* 行数を制限 */
    	overflow: hidden; /* はみ出た部分を非表示 */
	}
}


/********** 下層ページ共通 **********/
.single_head {
	background-image: url(./img/single_head_back.jpg);
    background-position: center bottom;
    background-size: cover;
}

.single_head .flex {
	display: flex;
	align-items: center;
	justify-content: center;
}

.single_head h1 {
	width: fit-content;
    padding: 10vh 0;
}

@media screen and (max-width: 767px){
	.single_head h1 {
		width: 100%;
		padding: 6vh 0;
	}
}

.single_head h1 span {
	position: relative;
	font-size: 3rem;
	color: #fff;
	line-height: 1;
	text-shadow: 0 1px 2px #084B72, 0 1px 3px #084B72, 0 1px 4px #084B72;
}

@media screen and (max-width: 767px){
	.single_head h1 span {
		display: block;
    	font-size: 6vw;
    	text-align: center;
	}
}

.single_head a.trial{
	font-family: Noto Serif JP;
	font-weight: bold;
	display: block;
	background: linear-gradient(45deg, #923893, #ca76cb, #ca76cb, #923893);
	padding: 1vh 4vh;
    border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, 0.5);
	/* animation: blinking 3s ease-in-out infinite alternate; */
}

@media screen and (max-width: 767px){
	.single_head a.trial {
		width: 60%;
		margin: 0 auto 4vh;
		padding: 1vh 4vw;
		border-radius: 10px;
	}
}

.single_head a.trial:hover {
	filter: brightness(90%);
}

.single_head p.lead1{
    font-size: 1.8rem;
    text-align: center;
    height: 100%;
}

@media screen and (min-width: 991px){
	.single_head p.lead1{
		display: flex;
    	flex-wrap: wrap;
    	max-width: 360px;
    	background-image: url(./img/golf_taiken.png);
    	background-repeat: no-repeat;
    	background-size: contain;
    	background-position: left center;
    	padding-left: 50px;
    	align-items: center;
	}
}

@media screen and (max-width: 767px){
	.single_head p.lead1{
		width: 100%;
		font-size: 5vw;		
	}
}

.single_head p.lead1 span {
    width: 100%;
}

.single_head p.lead1 span.st {
	font-size: 0.85em;
}

.single_head p.lead1 span.big {
	display: inline-block;
	background: linear-gradient(180deg, #fff 0%, #fff3ff 72%, #fff 100%);
	background: -webkit-linear-gradient(-90deg, #fff 0%, #fff3ff 72%, #fff 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	line-height: 1.2;
	margin-bottom: 10px;
}

.single_head p.lead1 span.small{
	font-family: 'Noto Sans JP', sans-serif;
    display: block;
	font-size: 0.6em;
	color: #fff;
}

.single_head p.lead1 span.small::before {
	font-family: "Font Awesome 5 Free";
    content: '\f105';
    font-weight: 900;
    margin: 0 5px;
}

.single_head p.lead1 a {
	display: block;
	font-size: 2vh;
	margin: auto;
    color: #fff;
}

@media screen and (max-width: 767px){
	.single_head p.lead1 a {
		width: 80%;
    	font-size: 4vw;
    	border: none;
    	line-height: 2;
		background: #1b9b1b;
	}
}

.single_head p.lead2 {
    font-size: 3vh;
    text-align-last: justify;
    padding: 1vh 6vh;
    border: 1px solid #fff;
	white-space: nowrap;
}

@media screen and (max-width: 767px){
	.single_head p.lead2 {
		font-size: 3vw;
		padding: 1vh 4vw;
	}
}


/********** 共通お問い合わせ **********/
.single_contact {
	
}

@media screen and (min-width: 768px){
	.single_contact .cta {
		padding: 4rem 0;
	}
}

.single_contact .flex {
	justify-content: space-between;
}


@media screen and (min-width: 768px){
	.single_contact .flex section {
		width: 49%;
		background: #eee;
		background-image: url(./img/ctaboxback2.png);
		padding: 1.5rem;
	}
}

@media screen and (max-width: 767px){
	.single_contact .flex section {
		width: 100%;
	}
	
	.single_contact .flex section:last-child {
		padding-top: 0;
	}
}

.single_contact .flex section a.cash,
.single_contact .flex section a.tel {
	display: flex;
    width: 100%;
    padding: 1rem;
    text-align: center;
    height: 6rem;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width: 767px){
	.single_contact .flex section a.cash,
	.single_contact .flex section a.tel{
		height: 4.8rem;
	}
}

.single_contact .flex section a.cash {
	color: #fff;
	background: linear-gradient(45deg, #1b9b1b, #83d083, #1b9b1b);
	border: 1px solid #1b9b1b;
    border-radius: 10px;
	text-shadow: 0 2px 2px rgba(16, 16, 16, 0.6);
}

.single_contact .flex section a.cash span {
	font-size: 1.2rem;
	font-weight: bold;
}

.single_contact .flex section a.cash:hover {
	filter: brightness(80%);
}

.single_contact .flex section a.tel {
	color: #666;
	background: #fff;
	border: 1px solid #bbb;
}

@media screen and (max-width: 767px){
	.single_contact .flex section a.tel {
		background: #efefef;
		background-image: url(./img/ctaboxback2.png);
	}
}

.single_contact .flex section a.tel span {
	font-size: 1.6rem;
	font-weight: bold;
	color: #ca76cb;
}

.single_contact .flex section a.tel span::before {
    font-family: "Font Awesome 5 Free";
    content: '\f095';
    font-weight: 900;
    margin-right: 10px;
}

.single_contact a.btn2 {
	display: block;
    width: 80%;
    max-width: 400px;
    font-weight: bold;
    color: #fff;
    background: var(--main-color-normal);
    border-radius: 10px;
    margin: auto;
    padding: 1rem;
    line-height: 1;
    text-align: center;
}

.single_contact img {
	display: block;
	max-width: 360px;
    margin: 0 auto 30px;
}

@media screen and (max-width: 767px){
	.single_contact img {
		max-width: 180px;
		margin: 0 auto 20px;
	}
}

.single_contact p.description {
	text-align: center;
	margin-bottom: 30px;
}

.single_contact .wrap {
	max-width: 900px;
	margin: auto;
}

.single_contact table {
	width: 100%;
	margin-bottom: 30px;
}

.single_contact table input,
.single_contact table textarea{
	width: 100%;
}

@media screen and (min-width: 768px){
	.single_contact table tr {
		border-bottom: 1px solid #ccc;
	}
}

@media screen and (max-width: 767px){
	.single_contact table tr {
		border-top: 1px solid #ccc;
	}
}

.single_contact table th,
.single_contact table td {
	padding: 10px;
}

.single_contact table th {
	width: 30%;
	color: var(--main-color-normal);
	background: color-mix(in srgb, var(--main-color-normal) 8%, #fff);
	white-space: nowrap;
}

@media screen and (min-width: 768px){
	.single_contact table th {
		text-align: left;
	}
}

.single_contact .mailform form {
	padding: 2rem;
	background: #fff;
	border-radius: 1rem;
}

@media screen and (max-width: 767px){
	.single_contact .mailform form {
		padding: 1rem;
	}
}

.single_contact .mailform table th {
	color: #fff;
	background: var(--main-color-normal);
}

.single_contact .mailform table td {
	background: #fff;
}

.single_contact table .require th {
	position: relative;
}

.single_contact table .require th::after {
	content: "\5FC5\9808";
    position: absolute;
    right: 10px;
    top: calc(50% - 11px);
    font-size: 14px;
    line-height: 1;
    color: #fff;
    background: #ff6161;
    padding: 6px;
}

@media screen and (max-width: 767px){
	.single_contact table .require th::after {
		top: calc(50% - 13px);
	}
}

.single_contact .mw_wp_form_confirm table .require th::after {
	display: none;
}

.single_contact table td {
	width: 70%;
	position: relative;
}

@media screen and (max-width: 767px){
	.single_contact table th,
	.single_contact table td {
		display: block;
		width: 100%;
		font-size: 14px;
		padding: 5px 0;
		text-align: left;
	}
	
	.single_contact table th {
		padding: 10px 5px;
	}
}

.single_contact table td .flex,
.single_contact table td .wide-flex {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.single_contact table td .flex span {
	min-width: 100px;
}

.single_contact table td .wide-flex span {
	width: auto;
	min-width: 180px;
	margin-left: 0!important;
}

@media screen and (max-width: 767px){
	.single_contact table td .wide-flex span {
		min-width: 45%;
	}
}

.single_contact table td .flex_radio {
	display: flex;
	flex-wrap: wrap;
}

.single_contact table td .flex_radio span.horizontal-item {
	display: block;
	width: 50%;
}

@media screen and (max-width: 767px){
	.single_contact table td .flex_radio span {
		width: 100%;
	}
}

.single_contact table td .flex_radio span label {
	width: 100%;
}

.single_contact table td .flex_radio .horizontal-item {
	margin-left: 0!important;
}

.single_contact .square p.alt {
	font-size: 1.2rem;
	font-weight: bold;
	text-align: center;
	margin-bottom: 2rem;
}

.single_contact .square ul {
	display: flex;
	flex-wrap: wrap;
}

@media screen and (min-width: 901px){
	.single_contact .square ul li {
		width: calc(100% / 5 - 10px);
	}
	
	.single_contact .square ul li:not(:last-child){
		margin-right: 12.5px;
	}
	
	.single_contact .square ul li {
		margin-bottom: 12.5px;
	}
}

@media screen and (max-width: 900px) and (min-width: 601px){
	.single_contact .square ul li {
		width: calc(100% / 3 - 10px);
	}
	
	.single_contact .square ul li:not(:nth-child(3n)){
		margin-right: 15px;
	}
	
	.single_contact .square ul li {
		margin-bottom: 15px;
	}
}

@media screen and (max-width: 600px){
	.single_contact .square ul {
		justify-content: space-between;
	}
	
	.single_contact .square ul li {
		width: calc(100% / 2 - 5px);
	}
	
	.single_contact .square ul li {
		margin-bottom: 10px;
	}
}

.single_contact .square ul li a {
	display: block;
	padding: 1rem;
	border: 1px solid var(--main-color-normal);
	border-radius: 10px;
	text-align: center;
}

.single_contact .square ul li a:hover {
	color: #fff;
	background: var(--main-color-normal);
}

.mw_wp_form_preview .hide {
	display: none;
}

.single_contact input[type="submit"],
.single_contact button[type="submit"]{
	width: 90%;
	display: block;
    max-width: 450px;
    border: none;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    padding: 15px 0;
    border-radius: 100px;
    cursor: pointer;
	transition: 0.3s;
}

.single_contact input[type="submit"]{
	background: #0c3472;
	margin: 30px auto 0;
}

.single_contact button[type="submit"]{
	background: #999;
	margin: 30px auto;
}

.single_contact input[type="submit"]:hover{
	background: #4d6b9b;
	transition: 0.3s;
}

.single_contact input[type="submit"].disa{
	background: #999;
	cursor: not-allowed;
}

.single_contact h2 {
	text-align: center;
	margin: 0 0 4rem;
}

@media screen and (max-width: 767px){
	.single_contact h2 {
		font-size: 18px;
		margin: 0 0 2rem;
	}
}

.single_contact .mailform {
	background: color-mix(in srgb, var(--main-color-normal) 8%, #fff);
}

.single_contact a.btn {
    display: block;
    width: 48%;
	min-width: 300px;
    text-align: center;
    color: #fff;
    background: #45a9c7;
    margin: 0 auto 50px;
    padding: 10px;
    border-radius: 10px;
}

.single_contact .btn_area label {
    position: relative;
    cursor: pointer;
    user-select: none;
}

.single_contact .btn_area label input {
    display: none;
}

.single_contact .btn_area label span {
	display: flex;
    position: relative;
	width: fit-content;
    align-items: center;
	margin: auto;
}

.single_contact .btn_area label span::before {
    content: "";
    height: 24px;
    width: 24px;
    border: solid 1px #0c3472;
    border-radius: 5px;
    margin-right: 10px;
    box-sizing: border-box;
}

.single_contact .btn_area label span::after {
    content: "";
    position: absolute;
    left: 7px;
    top: 2px;
    width: 10px;
    height: 15px;
    border: solid #0c3472;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg);
    transition: 0.3s;
    opacity: 0;
}

.single_contact .btn_area label input:checked + span::after {
    opacity: 1;
}

.single_contact .btn_area label span a {
	text-decoration: underline;
}

.mw_wp_form_preview .btn_area label {
	display: none;
}

.single_contact table td input.date_select,
.single_contact table td select.time_select {
    width: 160px;
	height: 40px;
	vertical-align: middle;
	cursor: pointer;
}

@media screen and (max-width: 767px){
	.single_contact table td input.date_select,
	.single_contact table td select.time_select {
		width: 40%;
	}
}

/* ul#dayselect li {
	position: relative;
} */

ul#dayselect li:not(:last-child) {
    margin-bottom: 5px;
}

.single_contact.thanks {
	padding-top: 2rem;
}

@media screen and (max-width: 767px){
	.single_contact.thanks {
		padding-top: 1rem;
	}
}

.single_contact.thanks p {
	text-align: center;
	margin-bottom: 2rem;
}

@media screen and (max-width: 767px){
	.single_contact.thanks p {
		margin-bottom: 1rem;
	}
}

.single_contact.thanks p.large {
	font-size: 1.2rem;
	font-weight: bold;
	color: #990000;
}

@media screen and (max-width: 767px){
	.single_contact.thanks p.large {
		font-size: 1rem;
	}
}

/********** ハンバーガーメニュー **********/
.hamburger {
	display: flex;
    position: fixed;
    width: 80px;
    height: 80px;
	top: 10px;
    right: 2rem;
    color: var(--main-color-normal);
    border: 1px solid #fff;
    border-radius: 100%;
	align-items: end;
    justify-content: center;
    cursor: pointer;
    z-index: 100;
}

@media screen and (min-width: 1200px){
	.hamburger {
		display: none;
	}
}

@media screen and (max-width: 767px){
	.hamburger {
		width: 40px;
    	height: 40px;
		top: 5px;
		right: 10px;
		border: none;
		border-radius: unset;
	}
}

.hamburger p {
	font-size: 0.8rem;
	font-weight: bold;
	margin-bottom: 10px;
}

@media screen and (max-width: 767px){
	.hamburger p {
		font-size: 0.7rem;
		margin-bottom: 3px;
	}
}

.hamburger span {
	display: block;
    position: absolute;
	width: 50%;
    height: 2px;
	left: 25%;
	background: var(--dark-green);
	transition: 0.3s;
}

@media screen and (max-width: 767px){
	.hamburger span {
		width: 70%;
		left: 15%;
	}
}

.hamburger span:nth-child(1){
	top: 16px;
}
.hamburger span:nth-child(2){
	top: 28px;
}
.hamburger span:nth-child(3){
	top: 40px;
}

@media screen and (max-width: 767px){
	.hamburger span:nth-child(1){
		top: 8px;
	}
	.hamburger span:nth-child(2){
		top: 19px;
	}
	.hamburger span:nth-child(3){
		top: 30px;
	}
}

.hamburger p.close {
	display: none;
	transition: 0.3s;
}

.hamburger.active p.close {
	display: block;
}

.hamburger.active p.open {
	display: none;
	transition: 0.3s;
}

@media screen and (max-width: 767px){
	.hamburger p.open,
	.hamburger.active p.close{
		display: none;
	}
}

.hamburger.active span:nth-child(1) {
    top: 28px;
    left: 20px;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
    transition: 0.3s;
}

.hamburger.active span:nth-child(2) {
    opacity: 0;
	transition: 0.3s;
}

.hamburger.active span:nth-child(3) {
    top: 28px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
    transition: 0.3s;
}

@media screen and (max-width: 767px){
	.hamburger.active span:nth-child(1),
	.hamburger.active span:nth-child(3){
		top: 20px;
		left: 25%;
	}
}

nav.globalMenuSp {
  position: fixed;
  z-index : 2;
  top  : 50px;
  right : -102%;
  color: #000;
  transition: all 0.6s;
  background-color: color-mix(in srgb, var(--dark-green) 80%, transparent);
  padding: 100px 20px 20px;
  width: 60%;
  box-shadow: 0 2px 2px rgb(0 0 0 / 30%);
}

@media screen and (max-width: 767px){
	nav.globalMenuSp {
		width: 100%;
		padding: 1rem;
	}
}

nav.globalMenuSp .box {
	background: #fff;
	padding: 1rem;
	border-radius: 10px;
}

nav.globalMenuSp ul {
  width: 100%;
  transition: 0.3s;
}

nav.globalMenuSp ul.first{
	margin-top: 50px;
}

nav.globalMenuSp ul li {
  position: relative;
  list-style-type: none;
  width: 100%;
}

nav.globalMenuSp ul li:not(:last-child){
	border-bottom: 1px solid #ddd;
}

nav.globalMenuSp ul li:hover{
  background :#fff;
}

nav.globalMenuSp ul li:hover a {
	color: #1e7b97;
}

header.back nav.globalMenuSp ul li:hover a {
	color: #d7747c;
}

/* このクラスを、jQueryで付与・削除する */
nav.globalMenuSp.active {
  right: 0;
}

.globalMenuSp h2{
	font-size: 20px;
	line-height: 50px;
}

@media screen and (min-width: 1200px) {
	.sp_nav {
		display: none;
	}
}

/********** フッター **********/
footer {
	padding: 30px 20px;
	/* background: var(--main-color-light); */
	background: #efefef;
}

@media screen and (max-width: 767px){
	footer {
		padding: 20px;
	}
}

footer a {
	/* color: #fff; */
}

footer .flex {
	display: flex;
	width: 100%;
	justify-content: space-between;
}

@media screen and (max-width: 767px){
	footer .flex {
		flex-wrap: wrap;
	}
}

footer p.copy {
	font-size: 0.85rem;
	text-align: center;
}


@media screen and (max-width: 767px){
	footer p.copy {
		font-size: 0.75rem;
	}
}

footer .company{
	width: 32%;
}

footer .footer_menu {
	width: 68%;
}

@media screen and (max-width: 767px){
	footer .company,
	footer .footer_menu {
		width: 100%;
		text-align: center;
	}
	
	footer .company {
		margin-bottom: 1rem;
	}
}

footer ul {
	display: flex;
	flex-wrap: wrap;
}

footer ul:not(:last-child){
	margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}

@media screen and (max-width: 767px){
	footer ul:not(:last-child){
		margin-bottom: 10px;
    	padding-bottom: 10px;
	}
}

footer ul li {
	width: 25%;
	font-size: 0.9em;
	line-height: 2;
}

@media screen and (max-width: 767px){
	footer ul li {
		width: 50%;
		font-size: 0.8em;
		text-align: left;
	}
}

footer .company img{
	max-width: 300px;
}

@media screen and (max-width: 767px){
	footer .company img{
		max-width: 200px;
	}
}

footer ul.main li p {
	display: none;
}

/********** 404 NOTFOUND **********/
.notfound {
	padding: 50px 0;
}

@media screen and (max-width: 767px){
	.notfound {
		padding: 30px 0;
	}
}

.notfound .wrap {
	max-width: 900px;
}

.notfound h2 {
	width: 100%;
    font-size: 32px;
    font-weight: 700;
    text-align: center;
    color: #1355a3;
    line-height: 1.2;
    margin-bottom: 50px;
}

@media screen and (max-width: 767px){
	.notfound h2 {
		font-size: 4.8vw;
		margin-bottom: 30px;
	}
}

.notfound .btn404 {
	display: flex;
	justify-content: space-between;
	margin-top: 50px;
}

@media screen and (max-width: 767px){
	.notfound .btn404 {
		display: block;
		margin-top: 30px;
	}
}

.notfound .btn404 a {
	display: block;
	width: 48%;
	text-align: center;
	color: #fff;
	padding: 20px;
	border-radius: 10px;
}

@media screen and (max-width: 767px){
	.notfound .btn404 a {
		width: 95%;
		margin: auto;
		padding: 10px;
		border-radius: 5px;
	}
}

.notfound .btn404 a:first-child{
    background: #4ab969;
}

@media screen and (max-width: 767px){
	.notfound .btn404 a:first-child{
		margin-bottom: 20px;
	}
}

.notfound .btn404 a:last-child{
	background: #45a9c7;
}

@media screen and (min-width: 768px){
	.school .entrylead a {
    	padding: 0;
    	background: url(./img/entryleadback.jpg)!important;
    	background-size: cover!important;
    	background-position: bottom center!important;
	}
}

/* ページネーション */
.wp-pagenavi {
	display: flex;
	margin-top: 30px;
	justify-content: center;
}

.wp-pagenavi span.current,
.wp-pagenavi a.page,
.wp-pagenavi a.previouspostslink,
.wp-pagenavi a.nextpostslink{
	border: 1px solid #ccc;
	padding: 8px 12px;
	margin: 5px;
	line-height: 1;
}

.wp-pagenavi a.page:hover {
	color: #fff;
    background: #1355a3;
	border: 1px solid #1355a3;
}

.wp-pagenavi span.current {
	color: #fff;
	background: #ccc;
}

.wp-pagenavi a.page {
	
}

.wp-pagenavi a.previouspostslink,
.wp-pagenavi a.nextpostslink {
	font-family: "Font Awesome 5 Free";
	font-weight: bold;
	border-color: #000;
	border-color: #4d6b9b;
}

/* お問い合わせフォーム調整 */
input[name="namae"],
input[name="namae_kana"],
input[name="douhan-namae"],
input[name="douhan-namae-kana"]{
	max-width: 160px;
}

input[name="kana"]{
	max-width: 240px;
}

input[name="mail"],
input[name="mail_confirm"]{
	max-width: 300px;
}

input[name="number"]{
	max-width: 200px;
}

input[name="date"]{
	max-width: 160px;
	cursor: pointer;
}

select[name="time"]{
	max-width: 120px;
}

select[name="omise"]{
	max-width: 260px;
	height: 40px;
}

@media screen and (min-width: 768px){
	.sns_link {
		display: none;
	}
}

@media screen and (max-width: 767px){
	.sns_link {
		display: flex;
		margin-right: 50px;
	}
}

.sns_link li:not(:last-child){
	margin-right: 10px;
}

.sns_link li img {
	display: block;
	width: 36px;
}

@keyframes blinking {
	0% {
    background-color: #0f770f;
	}

  50% {
    background-color: #1b9b1b;
	}
  
  100% {
	  background-color: #0f770f;
	}
}

.mw_wp_form_confirm td small {
	display: none;
}

/* Cookie確認メッセージ */
.cookie-consent {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: fixed;
    bottom: 0;
    width: 100%;
    font-size: 1rem;
    color: #fff;
    background: rgba(0,0,0,.8);
    padding: 1.2em;
    box-sizing: border-box;
    visibility: hidden;
	z-index: 10000;
}

.cookie-consent.is-show {
    visibility: visible;
}

.cookie-consent a {
	color: #fff !important;
}

.cookie-agree {
    color: #fff;
    background: dodgerblue;
    padding: .5em 1.5em;
}

.cookie-agree:hover {
    cursor: pointer;
}
/* パッと消える */
.cc-hide1 {
	display: none;
}
/* ゆっくり消える */
.cc-hide2 {
	animation: hide 1s linear 0s;
	animation-fill-mode: forwards;
}
@keyframes hide {
	from {
      opacity: 1;
    }
    to {
      opacity: 0;
      visibility: hidden;
    }
}
/* メディアクエリ */
@media screen and (max-width: 600px) {
	.cookie-consent {
		flex-direction: column;
	}
    .cookie-text {
      margin-bottom: 1em;
    }
}

/* モーダル開くボタン非表示 */
.store_single .price table th i.far {
	display: none;
}

/* DatePickerレイアウト修正用 */
.ui-datepicker .ui-datepicker-title select {
	width: 40% !important;
    font-size: 1rem !important;
    margin: 0 5px !important;
    padding: 5px !important;
    border: none !important;
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
	top: 4px!important;
}