@charset "UTF-8";

:root {
	--color: #242424;
	--white: #ffffff;
	--accentColor: #ff924f;
	--kohakuColor: linear-gradient(135deg, #FFD180 0%, #FFAB40 35%, #FF6D00 70%, #3E2723 100%); 
	/*--kohakuColor: linear-gradient(135deg, #e3b565, #d18454, #77452d); */
	--bgcolor: #F7F7F7;
	--fontSize1: 12px;
}

/* ===== Common ===== */

body {
	font-family: "Noto Serif JP", serif;
	position: relative;
	font-size: var(--fontSize1);
	color: var(--color);
	letter-spacing: 1.5px;
}
a {
	color: var(--color);
}
.fa, .fab, .fad, .fal, .far, .fas {
	line-height: 2;
}
.sa {
	opacity: 0;
	transition: all .5s ease;
}
.sa.show {
	opacity: 1;
	transform: none;
}
.sa--lr {
	transform: translate(-10px, 0);
}
.sa--rl {
	transform: translate(10px, 0);
}
.sa--up {
	transform: translate(0, 10px);
}
.sa--down {
	transform: translate(0, -10px);
}
.sa--scaleUp {
	transform: scale(.5);
}
.sa--scaleDown {
	transform: scale(1.5);
}
.sa--rotateL {
	transform: rotate(180deg);
}
.sa--rotateR {
	transform: rotate(-180deg);
}
.invisible {
	transition: opacity 0.5s ease;
	opacity: 0.0;
}
.visible {
	transition: opacity 0.5s ease;
	opacity: 1.0;
}
.l_trigger {
	opacity: 0;
	transform: translate(-10px, 0px);
}
::selection {
	background: var(--accentColor);
	color: var(--white);
}
::-webkit-scrollbar {
	display: none;
}
.w-mode-tb {
	writing-mode: horizontal-tb;
}
.w-mode-rl {
	writing-mode: vertical-rl;
}
.w-mode-lr {
	writing-mode: vertical-lr;
}
.font-size-18 {
	font-size: 18px;
}

/* ===== loader ===== */

/*#loader {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: var(--bgcolor);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
animation: fadeOut 1s ease 1s forwards;
}
#loader img {
width: 50px;
animation: spin 3s linear infinite;
}
@keyframes spin {
0%   { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
@keyframes fadeOut {
to { opacity: 0; visibility: hidden; }
}*/
#loader-wrapper {
	position: fixed;
	top: 0; left: 0;
	width: 100vw;
	height: 100vh;
	background: var(--bgcolor);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 9999;
	transition: opacity 1s ease;
}
#kohaku-logo {
	width: 80px;
	height: auto;
}
#mask-rect {
	width: 0;
	height: 0;
	animation: revealMask 1.6s ease-in-out forwards;
}
@keyframes revealMask {
	0% {
		width: 0;
		height: 0;
	}
	100% {
		width: 500px;
		height: 500px;
	}
}
body.loaded #loader-wrapper {
	opacity: 0;
	pointer-events: none;
}
.loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: 10;
	background-color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	animation: fadeOut 1.5s 2.5s forwards;
}
@keyframes fadeOut {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		visibility: hidden;
	}
}
.loading__logo {
	opacity: 0;
	animation: logo_fade 2.0s 1.0s forwards;
	width: 100px;
}
@keyframes logo_fade {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	60% {
		opacity: 1;
		transform: translateY(0);
	}
	100% {
		opacity: 0;
	}
}

/* ===== Header ===== */

body.noscroll {
	overflow: hidden;
}
header {
	display: block;
	z-index: 1000;
	position: fixed;
	width: 100%;
	transition: background 0.3s ease-in-out, opacity 0.3s ease-in-out;
}
header.scrolled {
	background: rgba(0, 0, 0, 0.3);
}
.menu-container {
	background: transparent;
	display: flex;
	align-content: flex-start;
	align-items: center;
	height: 80px;
	margin: 0 auto;
	transition: all .3s ease;
}
.header-logo {
	display: flex;
	align-items: center;
	margin: 0 auto 0 50px;
	-webkit-flex-basis: 200px;
	flex-basis: 200px;
}
.header-logo a {
	color: var(--white);
}
.menu {
	display: flex;
	margin: 0 50px 0 auto;
	height: 80px;
	transition: all .3s ease;
}
.menu > ul > li a {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	height: 100%;
	text-align: center;
	color: var(--white);
	line-height: 1.2;
}
.megamenu-list li a {
	font-size: var(--fontSize1);
	padding: 15px 0 15px !important;
}
.megamenu-list li a:hover {
	text-decoration:underline;
}
.megamenu-list li a i {
	position: absolute;
	top: 50%;
	right: 20px;
	-webkit-transform: translate(0,-50%);
	transform: translate(0,-50%);
}
.header-logo img {
	width: 160px;
}
.logo {
	display: block;
}
.header-navi-list {
	display: flex;
	gap: 25px;
	height: 100%;
	animation: fadeIn-lr .3s ease .4s 1 normal backwards;
}
.header-navi-text-en {
	display: inline-block;
	transition: transform .2s ease .1s,opacity .2s ease .1s;
}
.header-navi-mark {
	position: relative;
	display: none;
	width: 16px;
	height: 16px;
	margin: 0 0 0 20px;
	border: 1px solid #181818;
	border-radius: 50%;
	order: 3;
}
.burger-btn {
	display: none;
	width: 35px;
	height: 40px;
	position: relative;
	z-index: 3;
	border: none;
	margin: 0 25px 0 0;
}
.bars {
	display: block;
	width: 100%;
	height: 100%;
}  
.bar {      
	width: 35px;
	height: 2px;
	display: block;
	position: absolute;
}
.bar_top {
	top: 8px;
	background-color: var(--white);
}
.bar_mid {
	top: 50%;
	background-color: var(--white);
}
.bar_bottom {
	bottom: 7px;
	background-color: var(--white);
}
.burger-btn.close .bar_top {
	transform: translate(0%,10px) rotate(45deg);
	transition: transform .3s;
	background-color: var(--white);
}
.burger-btn.close .bar_mid {
	opacity: 0;
	transition: opacity .3s;
}
.burger-btn.close .bar_bottom {
	transform: translate(0%,-12px) rotate(-45deg);
	transition: transform .3s;
	background-color: var(--white);
}
.nav-wrapper {
	display: none;
	width: 100vw;
	height: 100vh;
	position: fixed;
	overflow-y: scroll;
	background: var(--kohakuColor);
	top: 0;
	left: 0;
	z-index: 2;
}
.header-nav {
	width: 100%;
	z-index: 2;
}
.header-nav.nav-list {
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	text-align: center;
}
.header-nav.nav-item {
	margin-right: 0;
	margin-bottom: 40px;
}
#accordion {
	padding: 80px 0;
}
.accordion {
	border-bottom: 1px solid;
	width: 90%;
	margin: 0 auto;
	cursor: pointer;
	padding: 15px 10px;
	position: relative;
	display:block;
	font-weight: bold;
	color: var(--white);
	filter: drop-shadow(1px 1px 10px rgba(0, 0, 0, 0.3));
}
.accordion a {
	font-weight: bold;
}
.nav-list li ul {
	padding: 0;
}
.nav-list li ul li {
	cursor: pointer;
	border-bottom: 1px solid #e8373d;
	width: 90%;
	margin: 0 auto;
	background: var(--white);
}
.nav-list li ul li a {
	color: #e8373d;
	font-size: var(--fontSize1);
	display: block;
	padding: 15px 25px;
}
header.not-front-page {
	position: relative;
}
header.not-front-page .header-logo a,
header.not-front-page .menu > ul > li a {
	color: var(--color);
}
header.not-front-page.scrolled {
	background: var(--bgcolor);
}
.not-front-page .bar_top,
.not-front-page .bar_mid,
.not-front-page .bar_bottom {
	background-color: var(--color);
}

@media screen and (max-width: 768px){
	.menu-container {
		justify-content: space-between;
	}
	.header-navi-text-en {
		display:none;
	}
	.header-logo {
		margin: 0 0 0 25px;
	}
	.burger-btn {
		display: block;
		cursor: pointer;
	}
	.menu {
		display: none;
	}
	.header-logo {
		flex-basis: auto; 
	}
}

/* ===== footer ===== */

footer {
	position: relative;
	padding: 100px 0 50px;
}
footer .logo {
	margin: 0 50px;
}
.footer-bottom {
	margin: 100px 50px 0;
	padding: 25px 0 0;
	display: flex;
	justify-content: space-between;
	border-top: 1px solid #d0d0d0;
}
.footer-sitemap-inner > li > a {
	font-size: var(--fontSize1);
	font-weight: bold;
}
.footer-sitemap ul:before {
	content: "";
	height: 100%;
}
.sitemap-list p {
	font-size: var(--fontSize1);
	font-weight: bold;
}
.footer-sitemap ul {
	margin: 10px 0 0 0;
	border-left: 1px solid #cdcdcd;
}
.footer-sitemap ul li {
	padding: 0 0 0 20px;
	margin: 5px 0;
}
.footer-sitemap ul li a {
	font-size: var(--fontSize1);
}
.footer-sitemap > li > a {
	font-size: var(--fontSize1);
	font-weight: bold;
}
.footer-sitemap ul li a {
	background: linear-gradient(currentColor 0 0) 0 100% /var(--d, 0) 1px no-repeat;
	transition: .3s;
}
.footer-sitemap ul li a:hover {
	--d: 100%;
}
.footer-inner {
	display: flex;
	align-content: flex-start;
	align-items: center;
	margin: 25px auto 0;
	gap: 25px;
}
.footer-inner .l-inner {
	display: flex;
	flex-direction: column;
	margin: 0 auto 0 50px;
	-webkit-flex-basis: 350px;
	flex-basis: 350px;
}
.footer-inner .r-inner ul {
	display: flex;
	align-items: center;
	gap: 25px;
	height: 100%;
	margin: 0 50px 0 auto;
}
.page-wrap {
	position: fixed;
	right: 15px;
	bottom: 25px;
	opacity: 1;
	z-index: 90;
}
.page-wrap a {
	display: flex;
	justify-content: center;
	align-items: center;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	margin: auto;
	transition: transform .3s ease;
}
.page-wrap a:hover {
	backface-visibility: hidden;
}
.page-wrap a i {
	font-size: 16px;
	margin: 0 0 10px;
}
.page-wrap #page-contact a {
	margin: 0 auto 10px;
}

@media screen and (max-width: 768px){
	.footer-sitemap ul {
		border-left: none;
		height: auto !important;
	}
	.footer-sitemap {
		margin: 0 0 25px;
	}
	.footer-sitemap ul li {
		padding: 5px 10px;
		border-bottom: 1px solid #ddd;
		margin: 0 10px;
	}
	.footer-inner {
		flex-direction: column;
		padding: 50px;
	}
	.footer-inner .l-inner {
		width: 100%;
		margin: 0 auto;
		flex-basis: auto;
		align-items: center;
	}
	.footer-sitemap-inner.r-inner ul {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 20px;
		justify-content: center;
		width: 100%;
		margin: 50px auto 0;
	}
	.cta-btn.black {
		min-width: 350px;
	}
	p.cname {
		font-size: 14px;
	}
	.footer-inner .l-inner address {
		font-size: var(--fontSize1);
	}
	.page-wrap {
		display: none;
	}
	.f-inner {
		padding: 10px;
		background: var(--white);
	}
	footer .logo {
		text-align: center;
	}
}

/* ===== Main ===== */

.wrapper {
	position: relative;
}
.wrapper:after {
	content: '';
	display: block;
	visibility: hidden;
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	background-color: rgba(255,255,255,0);
	transition: background-color .1s ease;
	z-index: 100;
}
.is-mask:after {
	visibility: visible;
	background-color: rgba(0,0,0,.7);
}
main {
	position: relative;
	height: 100%;
}
.container {
	max-width: 1000px;
	margin: auto;
	padding: 100px 0;
}
h2.title {
	font-size: 15px;
	width: fit-content;
	margin: auto auto 100px;
	border-bottom: 1px solid;
	padding: 0 0 10px;
}
h3.title-sub {
	display: flex;
	gap: 15px;
	align-items: center;
	font-size: var(--fontSize1);
	margin: 0 0 50px;
}
h3.title-sub:after {
	content: "";
	display: flex;
	width: 100px;
	height: 1px;
	background: var(--color); 
}
.bg {
	background: var(--bgcolor);
}
.en {
	font-size: var(--fontSize1);
}
.jp {
	font-size: var(--fontSize1);
}
article ul li {
	list-style: disc;
	list-style-position: inside;
}

@media screen and (max-width: 1000px){
	.container {
		padding: 100px 15px;
	}
}

@media screen and (max-width: 768px){
	main {
		margin: 0;
	}
}

/* mainv */

.mainv-wrap {
	position: relative;
}
.swiper-container {
	width: 100%;
	height: 100vh;
	position: relative;
	overflow: hidden;
}
.swiper-wrapper {
	position: relative;
}
.swiper-wrapper:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	pointer-events: none;
	z-index: 1;
}
.swiper-slide {
	display: flex;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
}
.swiper-slide a {
	display: block;
	width: 100%;
	height: 100%;
}
.swiper-slide img {
	object-fit: cover;
	height: 100%;
}
.swiper-container .swiper-slide {
	line-height: 0; 
}
.slide-text {
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	top: 0;
	bottom: 0;
	color: var(--white);
}
.concept {
	margin: 0 0 15px 0;
	font-size: 28px;
}
.intro_scroll .scroll a {
	display: inline-block;
	position: absolute;
	left: 25px;
	bottom: 0;
	z-index: 2;
	padding: 10px 10px 110px;
	overflow: hidden;
	color: var(--white);
	font-size: 10px;
	line-height: 1;
	letter-spacing: .2em;
	text-decoration: none;
	writing-mode: vertical-rl;
}

@keyframes sdl {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
	35% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	35.1% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	70%, 100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

.intro_scroll .scroll a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 1px;
	height: 100px;
	background: var(--white);
	animation: sdl 2s cubic-bezier(1, 0, 0, 1) infinite;
}

@keyframes zoomUp {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.15);
	}
}

.swiper-slide-active img,
.swiper-slide-duplicate-active img,
.swiper-slide-prev img { /* 12秒かけて拡大させる */
	animation: zoomUp 12s linear 0s;
	animation-fill-mode: both;
}

@keyframes sliderPagination {
	100% {
		stroke-dashoffset: 0;
	}
}

.cta-btn {
	border: 1px solid var(--white);
	max-width: 350px;
}
.cta-btn a {
	display: flex;
	gap: 15px;
	color: var(--white);
	padding: 15px 75px 15px 25px;
	position: relative;
	filter: drop-shadow(1px 1px 10px rgba(0, 0, 0, 0.3));
}
.cta-btn a > p {
	position: relative;
	left: 0;
	transition: left 0.3s ease-out;
}
.cta-btn a:hover > p {
	left: 5px; 
}
.cta-btn a::before {
	font-family: "Font Awesome 6 Free";
	content: "\f178";
	font-weight: 900;
	position: absolute;
	right: 25px;
	top: 50%;
	transform: translateY(-50%);
	transition: right 0.3s ease-out;
}
.cta-btn a:hover::before  {
	right: 20px;
}
.cta-btn a img {
	width: 35px;
	object-fit: contain;
}
.cta-btn.green {
	border: 1px solid var(--accentColor);
	background: var(--accentColor);
	margin-left: auto;
	margin-right: auto;
}
.cta-btn.kohaku {
	border: 1px solid var(--kohakuColor);
	background: var(--kohakuColor);
	margin-left: auto;
	margin-right: auto;
}
.cta-btn.black {
	border: 1px solid var(--color);
}
.cta-btn.black a {
	color: var(--color);
	align-items: center;
	filter: none;
}
.cta-btn.black a i {
	font-size: 18px;
}

@media screen and (max-width: 768px){
	.mainv-wrap {
		margin: 0;
	}
	.slide-text{
		padding: 0 25px;
		align-items: normal;
	}
	.swiper-container .swiper-pagination {
		display: none;
	}
	.swiper-slide img {
		height:100%;
	}
	.cta-btn a {
		padding: 15px 55px 15px 15px;
	}
}

@media screen and (max-width: 480px) {
	.cta-btn.black {
		width: 100%;
	}
}

/* about message */

.message.inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 50px;
}
/*.message.inner::after {
content: "";
position: absolute;
}*/
.m-first {
	grid-column: 1 / 2;
}
.m-second {
	display: flex;
	grid-column: 1 / 2;
	grid-row: 2 / 3;
	line-height: 1.8;
}
.m-second .label {
	font-weight: bold;
}
.m-third {
	grid-column: 2 / 3;
	grid-row: 2 / 3;
	line-height: 2;
}
.m-third .label {
	font-size: 15px;
	font-weight: bold;
	line-height: 1.8;
}

@media screen and (max-width: 768px) {
	.message.inner {
		grid-template-columns: 1fr 1fr;
		column-gap: 15px;
	}
}

@media screen and (max-width: 480px) {
	.message.inner {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		column-gap: 0;
		row-gap: 25px;
	}
	.m-first {
		grid-column: 1 / 2;
		margin: 0 0 25px;
	}
	.m-second, .m-third {
		grid-column: 1 / 2;
		grid-row: auto;
	}
	.m-second {
		display: block;
	}
}

/* host */

.host.inner {
	display: grid;
	grid-template-columns: 300px 1fr;
	column-gap: 50px;
}
.h-first {
	grid-column: 1;
}
.h-first img {
	height: 100%;
	object-fit: cover;
}
.h-second {
	display: flex;
	grid-column: 2;
	flex-direction: column;
	line-height: 2;
}
.h-second h3.title-sub {
	margin: 0 0 50px;
}
.h-second .name {
	line-height: 1.5;
	margin: 0 0 50px;
}
.h-second .en {
	margin: 0 0 25px;
}

@media screen and (max-width: 768px) {
	.host.inner {
		grid-template-columns: 1fr;
		column-gap: 0;
	}
}

@media screen and (max-width: 480px) {
	.h-first, .h-second {
		grid-column: 1;
	}
}

/* kohaku */

.k-background {
	position: relative;
	z-index: 0;
	background-image: url('../images/k-background.jpg');
	background-attachment: fixed;
	background-size: cover;
	background-position: center;
	height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--white);
	font-size: 25px;
}
.k-background:after {
	content: "";
	position: absolute;
	background: rgba(0, 0, 0, 0.5);
	width: 100%;
	height: 100%;
	z-index: 0;
}
.k-background p {
	position: relative;
	z-index: 1;
	filter: drop-shadow(2px 2px 5px rgba(0, 0, 0, 0.3));
}
.kohaku.inner {
	display: grid;
	grid-template-columns: calc(50% - 25px) calc(50% - 25px);
	gap: 50px;
	font-size: var(--fontSize1);
}
.k-first dl, .k-second dl {
	display: grid;
	grid-template-columns: 30% 70%;
	width: 100%;
}
.k-first dt, .k-first dd,
.k-second dt, .k-second dd {
	padding: 15px 10px;
	border-bottom: 1px solid #ccc;
}
.k-first dt,
.k-second dt {
	font-weight: bold;
}

@media screen and (max-width: 768px) {
	.kohaku.inner {
		grid-template-columns: 1fr;
		gap: 25px;
	}
}

@media screen and (max-width: 480px) {
	.kohaku.inner {
		grid-template-columns: 1fr;
		gap: 25px;
	}
	.k-first dl, .k-second dl {
		grid-template-columns: 100%;
	}
	.k-first dt, .k-second dt {
		border: none;
	}
}

/* gallery */

.gallery-wrap {
	padding: 0 0 100px;
}
.gallery-wrap h2.title {
	margin: 100px auto 100px;
}
.slider-container {
	width: 100%;
	margin: auto;
}
.slick-slide {
	text-align: center;
	padding: 20px;
}
.slick-slide img {
	width: 100%;
}
.slider .caption {
	margin-top: 10px;
	text-align: left;
	line-height: 2;
}
.slider .caption .title {
	font-weight: bold;
}
.slider-navigation {
	display: flex;
	justify-content: end;
	width: 80%;
	max-width: 1000px;
	margin: 20px auto 0;
}
.slick-prev, .slick-next,
.v-slick-prev, .v-slick-next {
	position: relative;
	color: var(--color);
	font-size: 20px;
	background: none;
	border: none;
	cursor: pointer;
	margin: 0 15px;
}
.slick-prev,
.v-slick-prev {
	left: -10px;
}
.slick-next,
.v-slick-next {
	right: -10px;
}
.slick-prev:before,
.slick-next:before,
.v-slick-prev:before,
.v-slick-next:before {
	content: "";
}
.slick-next:focus,
.slick-next:hover,
.slick-prev:focus,
.slick-prev:hover,
.v-slick-next:focus,
.v-slick-next:hover,
.v-slick-prev:focus,
.v-slick-prev:hover {
	color: var(--color);
}

@media screen and (max-width: 768px) {
	.slick-slide {
		padding: 15px;
	}
}

/* ourServices */

.ourServices-wrap .container > img {
	height: 300px;
	object-fit: cover;
	margin: 0 0 50px;
	filter: brightness(50%);
}
.ourServices.inner {
	display: grid;
	grid-template-columns: calc(50% - 50px) calc(50% - 50px);
	gap: 50px;
}
.os-first {
	line-height: 1.8;
}
.os-second {
	line-height: 2;
}
.os-second .jp {
	font-size: var(--fontSize1);
}
.os-first .label {
	font-weight: bold;
}
.os-second .label {
	font-size: 15px;
	font-weight: bold;
	line-height: 1.8;
}
.accessible {
	margin: 0 0 100px;
}
.a-box {
	position: relative;
	padding: 50px;
	text-align: center;
	width: 100%;
	box-sizing: border-box;
}
.a-box > span {
	position: absolute;
	background: #D0D0D0;
}
.a-box > span:nth-child(1) {
	width: 100%;
	height: 1px;
	left: 0;
	top: 0;
	transform-origin: left;
}
.a-box > span:nth-child(2) {
	width: 1px;
	height: 100%;
	left: 0;
	bottom: 0;
	transform-origin: bottom;
}
.a-box > span:nth-child(3) {
	width: 100%;
	height: 1px;
	left: 0;
	bottom: 0;
	transform-origin: right;
}
.a-box > span:nth-child(4) {
	width: 1px;
	height: 100%;
	right: 0;
	bottom: 0;
	transform-origin: top;
}
.a-box > p:nth-child(5) {
	position: absolute;
	z-index: 1;
	left: 1px;
	top: -8px;
	right: 0;
	margin: auto;
	font-size: var(--fontSize1);
}
.a-box > p:nth-child(5)::before {
	content: '';
	position: absolute;
	z-index: -1;
	left: 0;
	right: 0;
	top: 4px;
	margin: auto;
	height: 10px;
	width: 100%;
	background: var(--bgcolor);
	width: 250px;
	transform: skewX(-26deg);
	border-right: solid 1px #c5c6c7;
	border-left: solid 1px #c5c6c7;
}
.detail {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-auto-rows: 1fr;
	gap: 25px;
	justify-content: center;
	margin: 0 0 100px;
}
.detail > div {
	border-left: 1px solid #d0d0d0;
	padding: 0 25px;
}
.detail > div:nth-child(2n) {
	border-right: 1px solid #d0d0d0;
}
.detail > div img {
	width: 35px;
	margin: 0 0 15px;
}
.detail p {
	margin: 0 0 15px;
}
.detail .title {
	font-weight: bold;
}
.overview {
	display: flex;
	justify-content: center;
	gap: 50px;
	background: var(--white);
	width: 100%;
	padding: 50px 25px;
	margin: 0 0 100px;
}
.overview > div {
	display: flex;
	gap: 15px;
	align-items: center;
}
.overview > div .icon {
	font-size: 18px;
}
.sb-Step .title-sub {
	margin: 0 0 50px;
}
.steps-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.step {
	background: var(--white);
	padding: 25px;
	flex: 1;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.step h2 {
	font-size: 18px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	margin: 0 0 15px;
}
.step .en {
	margin: 0 0 15px;
}
.arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	color: var(--color);
}

@media screen and (max-width: 768px) {
	.steps-container {
		flex-direction: column;
		align-items: center;
	}
	.arrow {
		transform: rotate(90deg);
	}
	.ourServices-wrap .container > img {
		margin: 0 0 25px;
	}
	.ourServices.inner {
		grid-template-columns: 1fr;
		gap: 25px;
	}
	.detail {
		grid-template-columns: 1fr;
		gap: 25px;
	}
	.detail > div {
		border-left: none;
		padding: 0;
	}
	.detail > div:nth-child(2n) {
		border-right: none;
	}
	.overview {
		flex-wrap: wrap;
		flex-direction: column;
		gap: 25px;
		padding: 30px 15px;
	}
	.overview > div {
		border-bottom: 1px solid #d0d0d0;
		padding: 0 0 25px;
	}
	.overview > div:last-child {
		border: none;
		padding: 0;
	}
	.step {
		width: 100%;
	}
}

.bi-background {
	background-image: url(../images/bi-background.jpg);
	background-attachment: fixed;
	background-size: cover;
	background-position: center;
	height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--white);
	font-size: 25px;
}
.bi-background:after {
	content: "";
	background: rgba(0, 0, 0, 0.5);
	width: 100%;
	height: 100%;
}

/* site reviews */

.site-reviews-slider {
	max-width: 100%;
	margin: 0 auto;
}
.site-reviews-slider .glsr-review {
	border: 1px solid #ccc;
	padding: 15px;
	text-align: left;
	height: 300px;
	overflow-y: scroll;
}
.site-reviews-slider .glsr-review::-webkit-scrollbar {
	display: none;
}
.site-reviews-slider .slick-prev,
.site-reviews-slider .slick-next {
	background: none;
	border: none;
	font-size: 20px;
	cursor: pointer;
}
.site-reviews-slider .slick-prev {
	position: absolute;
	left: -10px;
	z-index: 1;
}
.site-reviews-slider .slick-next {
	position: absolute;
	right: -10px;
	z-index: 1;
}
.glsr-review-title {
	margin: 0 0 15px;
}
.glsr-review-title h4 {
	font-size: 15px;
	font-weight: bold;
	line-height: 1.2;
}
.glsr-default .glsr-review-date {
	font-style: normal !important;
	display: block !important;
	margin: 0 0 15px;
	color: #a7a7a7;
}
.glsr-default .glsr-review-content {
	margin: 0 0 15px;
}
.glsr-default .glsr-review-author {
	color: #a7a7a7;
}
span.glsr-read-more a {
	color: #a7a7a7;
}

/* ===== blog ===== */

.category-filter {
	background: var(--bgcolor);
	padding: 25px;
}
select#category-select {
	width: 250px;
}
.blog-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 25px;
	padding: 25px 0;
	justify-content: center;
}
.post {
	background: var(--white);
	overflow: hidden;
	border: 1px solid #ccc;
	/* 	box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); */
	transition: transform 0.3s ease-in-out;
}
/* .post:hover {
transform: translateY(-5px);
} */
.post-thumbnail img {
	height: 200px;
	object-fit: cover;
}
.post-info {
	padding: 15px;
}
.post-category {
	display: flex;
	gap: 5px;
	flex-wrap: wrap;
	margin: 0 0 15px;
}
.post-category a {
	background: #e7e7e7;
	font-weight: bold;
	padding: 3px 5px;
	font-size: 10px;
}
.post-tags {
	color: #a7a7a7;
	font-size: 10px;
	display: flex;
	gap: 5px;
	flex-wrap: wrap;
}
.post-date {
	text-align: right;
}
.post-title {
	font-size: 15px;
	font-weight: bold;
	margin: 15px 0;
	word-break: break-word;
	line-height: 1;
}
.pagination {
	margin: 50px 0 0;
}
.nav-links, .post-navigation {
	display: flex;
	gap: 25px;
	align-items: center;
	justify-content: center;
}
.nav-links span, .nav-links a {
	background: #e7e7e7;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 2.5rem;
	height: 2.5rem;
}
.nav-links span {
	background: var(--kohakuColor);
	color: var(--white);
	font-weight: bold;
}
.post-ditail .post-thumbnail img {
	height: 500px;
	object-fit: cover;
}
.post-navigation .prev-post a,
.post-navigation .next-post a {
	background: #e7e7e7;
	display: flex;
	justify-content: center;
	align-items: center;
	min-width: 150px;
	padding: 15px 25px;
}
.post-content {
	margin: 50px 0;
}

@media screen and (max-width: 768px) {
	.blog-wrap .container {
		padding: 50px 15px;
	}
	.blog-grid {
		grid-template-columns: 1fr 1fr;
		gap: 15px;
	}
}

@media screen and (max-width: 480px) {
	.blog-grid {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
	}
	.nav-links, .post-navigation {
		gap: 5px;
	}
}

/* ===== 404 ===== */

.notftext {
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* ===== contact ===== */

.explanation {
	margin: 0 0 50px;
}
dl.formtable {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0 0 50px;
}
dl.formtable dt, dl.formtable dd {
	padding:25px;
}
dl.formtable dt {
	width: 200px;
	display: flex;
	align-items: center;
	position: relative;
	justify-content: space-between;
	padding: 25px 0;
}
dl.formtable dt p {
	font-weight: bold;
}
dl.formtable dd {
	width: calc(100% - 200px);
	padding: 25px 0 25px 25px;
}
dl.formtable input[type=text],
dl.formtable input[type=email],
dl.formtable input[type=tel],
dl.formtable textarea {
	background: var(--bgcolor);
	border: 1px solid #ccc;
	padding: 15px;
	min-height: 50px;
	width: 100%;
}
dl.formtable select {
	width: 190px;
	border: 1px solid #ccc;
	min-height: 50px;
	/*padding: 15px 40px 15px 15px;*/
}
dl.formtable.formconf dd > p {
	background: var(--bgcolor);
	border: 1px solid #ccc;
	color: #a7a7a7;
	padding: 15px;
	width: 100%;
	white-space: pre-line;
	overflow: hidden;
	overflow-wrap: anywhere;
}
.required {
	background: var(--accentColor);
	width: 35px;
	text-align: center;
}
.optional {
	background: var(--bgcolor);
	border: 1px solid #ccc;
	color: #a7a7a7;
	width: 35px;
	text-align: center;
}
::placeholder {
	color: #cdcdcd;
}
input[type="submit"],
input[type="button"] {
	cursor: pointer;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
	border-color: #f8b217;
	background: #f8b217;
	padding: 5px;
	color: var(--white);
	font-weight: bold;
	margin: auto;
	display: inline-block;
}
.wpcf7 .ajax-loader {
	margin: auto;
	display: block;
	background-color: #e8373d;
	opacity: 1;
	position: absolute;
	top: 0;
	left: auto;
	right: 15px;
	bottom: 0;
}
input[readonly],
textarea[readonly],
select[disabled] {
	opacity: .5;
	background: var(--bgcolor);
}
input,
textarea,
select {
	outline: none;
}
input:-internal-autofill-selected {
	background-color: var(--bgcolor) !important;
}
.contactbtn {
	position: relative;
	align-items: center;
}
.contactbtn p {
	display: flex;
}
.contactbtn #edit {
	width: 50%;
	margin: 0 5px;
	color: #a7a7a7;
	background: var(--bgcolor);
	border: 1px solid #ccc;
	padding: 15px 25px;
	font-weight: bold;
}
.contactbtn #submit {
	width: 50%;
	margin: 0 5px;
	background: var(--kohakuColor);
	color: var(--white);
	padding: 15px 25px;
	font-weight: bold;
}
.contactbtn #conf,
.contactbtn #confirmButton {
	background: var(--kohakuColor);
	color: var(--white);
	padding: 15px 25px;
	width: 100%;
	font-weight: bold;
}
.contactbtn #confirmButton:disabled {
	background: var(--kohakuColor);
	opacity: .3;
	cursor: default;
}
.contactbtn #backButton {
	width: 50%;
	margin: 0 5px;
	color: #808080;
	background: #f5f5f5;
	padding: 15px 25px;
	font-weight: bold;
	cursor: pointer;
}
.comptext {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.comptext_btn {
	border:3px solid #03327c;
	text-align: center;
	padding:15px 30px 15px 0;
	position: relative;
	transition: all .5s;
	background-color: var(--white);
	margin: 30px auto 0 auto;
	width: 80%;
	max-width: 500px;
}
.comptext_btn:hover {
	background-color: #d9e8ff;
}
.comptext_btn:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	width: 15px;
	height: 15px;
	border-top: 3px solid #f1aa00;
	border-right: 3px solid #f1aa00;
	transform: rotate(45deg) translateY(-50%);
	margin-top: -2.5px;
}
.wpcf7-spinner {
	position: absolute;
	right: 0;
	background-color: transparent;
}
.wpcf7-spinner::before {
	background-color: transparent;
}
span.wpcf7-list-item {
	width: 100%;
	padding: 5px 5px 5px 0;
	margin: 0;
}
p.note {
	font-size: 12px;
	color: #888888;
	margin: 10px 0 0;
}
.fa-link {
	content: "\f0c1";
}
textarea {
	resize: vertical; /* 縦方向のリサイズを許可 */
}

@media screen and (max-width: 768px) {
	.cntct-wrap {
		padding: 25px 25px 50px;
	}
	.cntct-container {
		width: 100%;
	}
	dl.formtable {
		flex-direction: column;
	}
	dl.formtable dt {
		width: 100%;
		justify-content: flex-start;
		padding: 0;
		gap: 10px;
	}
	dl.formtable dd {
		width: 100%;
		padding: 10px 0 25px;
	}
	dl.formtable dd:last-child {
		padding: 10px 0 0;
	}
	.required, .optional {
		position: relative;
	}
	ol.stepbar {
		margin: 0 0 50px;
	}
	ol.stepbar li {
		min-width: auto;
	}
}