@charset "utf-8";

/*-----------------------
    common.css
------------------------*/

/*----- font -----*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&display=swap');

/*----- reset -----*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%;
	vertical-align: baseline; background: transparent;
}
body {
	line-height: 1; color: #555;
	font-family: "メイリオ","Meiryo","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック","MS P Gothic","Osaka","Hiragino Kaku Gothic Pro", Verdana,Arial, Helvetica, sans-serif; 
	-webkit-text-size-adjust: none;
}
ol, ul { list-style: none; }

:focus { outline: 0; }
img { max-width: 100%; }

/* tables still need 'cellspacing="0"' in the markup */
table { border-collapse: collapse; border-spacing: 0; }

/*----- common -----*/

:root {
  --text: #000;
  --grey: #f1f1f1;
  --white: #fff;
  --blue: #009ceb;
  --blue_dark: #2ca3d4;
  --yellow: #f5f197;
}

body {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
    color: var(--text);
    overflow-x: hidden;
}

/* for CMS */
body:has(#wrapper){display:block;}
body:has(#wrapper)::after {position:relative;z-index:auto;pointer-events:all;opacity:1;background:none;}

a {
	transition: .5s;
}
a:hover {
	text-decoration: none;
}

.ojf img {
    width: 100%;
    object-fit: cover;
}

/* PC時Tel発信無効化 */
@media screen and (min-width: 769px){
    
    a[href^="tel"] {
        pointer-events: none;
    }
    
}

/*--- fadein ---*/

/* for CMS */
#wrapper .fadein{opacity:1;}

.fadein {
    opacity: 0;
    transform: translate(0, 60px);
    transition: all 1s;
}
.fadein.scrollin{
    opacity: 1 !important;
    transform: translate(0, 0) !important;
}
.fadein_first {
    animation-name: fadeIn1s;
    animation-delay: 1s;
    animation-duration: 1.5s;
    animation-fill-mode: forwards;
    transform: translateY(60px);
    opacity: 0;
}
@keyframes fadeIn1s {
    0% {
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }    
}

/*----- wrap -----*/

.wrap {
    max-width: 1260px;
    margin: 0 auto;
    padding: 0 30px;
}
.wrap_wide {
    max-width: 1700px;
    margin: 0 auto;
    padding: 0 30px;
}

@media screen and (max-width: 767px){

    .wrap,
    .wrap_wide {
        padding: 0 6vw;
    }
    
}

/*----- header -----*/

.header {
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100px;
	background: var(--white);
}
.header .wrap {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}
.header .logo {
	padding: 10px 0;
}
.header .logo img {
	height: 80px;
	line-height: 0;
}
.header .menu {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin-bottom: 15px;
}
.header .menu .ul {
	display: flex;
	justify-content: flex-end;
	gap: 0 60px;
	margin-right: 60px;
}
.header .menu .ul .li a {
	color: #0159a5;
	font-weight: 900;
}
.header .menu .ul .li a:hover {
	color: #cac76f;
}
.header .menu .contact a {
	display: block;
	padding: 12px 50px;
	background: var(--blue);
	border-radius: 40px;
	color: var(--white);
	font-size: 16px;
}
.header .menu .contact a:hover {
	background: var(--yellow);
	color: #0159a5;
}

@media screen and (min-width: 768px){
    .sp_menu {
        display: block!important;
    }
    .spbtn {
        display: none!important;
    }
}
@media screen and (min-width: 768px) and (max-width: 1260px){
	
	.header {
		height: 8vw;
	}
	.header .logo {
		padding: .5vw 0;
	}
	.header .logo img {
		height: 7vw;
	}
	.header .menu {
		margin-bottom: 2vw;
	}
	.header .menu .ul {
		gap: 0 4vw;
		margin-right: 4vw;
	}
	.header .menu .ul .li {
		font-size: 1.75vw;
	}
	.header .menu .contact a {
		padding: 1.2vw 4vw;
		border-radius: 4vw;
		font-size: 1.6vw;
	}
	
}
@media screen and (max-width: 767px){
	
	.header {
		height: 60px;
	}
	.header .wrap {
		display: block;
		padding: 0;
	}
	.header .logo {
		padding: 5px 0 0 6vw;
	}
	.header .logo img {
		height: 50px;
	}
	.header .sp_menu {
		background: var(--white);
	}
	.header .menu {
		display: block;
		padding: 30px 0;
		margin-bottom: 15px;
	}
	.header .menu .ul {
		display: block;
		margin-right: 0;
		text-align: center;
	}
	.header .menu .ul .li {
		margin-bottom: 30px;
		font-size: 18px;
	}
	.header .menu .contact {
		width: min(300px,87.5%);
		margin: 20px auto 0;
	}
	.header .menu .contact a {
		padding: 20px;
		font-size: 18px;
		text-align: center;
	}
	
}

/*----- nav -----*/

@media screen and (max-width: 767px){

    .spbtn {
        position: absolute;
        top: 10px;
        right: 6vw;
        display: block;
        width: 40px;
        height: 40px;
        cursor: pointer;
    }
    .spbtn > div {
        position: absolute;
        top: 50%;
        left: 0;
        display: block;
        width: 100%;
        height: 2px;
        background: var(--blue);
        transition: .2s;
    }
    .spbtn > div:nth-of-type(1) {
        top: 8px;
    }
    .spbtn > div:nth-of-type(3) {
        top: 32px;
    }
    .spbtn.active > div {
        top: 50%;
        transform: rotate(37.5deg);
    }
    .spbtn.active > div:nth-of-type(2) {
        display: none;
    }
    .spbtn.active > div:nth-of-type(3) {
        top: 50%;
        transform: rotate(-37.5deg);
    }
    
}

/*----- footer -----*/

.f_contact {
	padding: 150px 0;
}
.f_contact .ul {
	display: flex;
	justify-content: center;
	gap: 0 2%;
	width: 95%;
	margin: 0 auto;
}
.f_contact .ul .li {
	width: 49%;
}
.f_contact .ul .li a {
	display: block;
	position: relative;
	overflow: hidden;
	transform: skewX(-8deg);
	cursor: pointer;	
}
.f_contact .ul .li a::before {
	position: absolute;
	content: "";
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	background: var(--blue);
	z-index: 3;
	transition: .5s;	
}
.f_contact .ul .li:nth-of-type(2) a::before {
	background: #ede881;
}
.f_contact .ul .li a:hover::before {
	opacity: .7;
}
.f_contact .ul .li a .pic {
	position: relative;
	transform: skewX(8deg);
	transition: 0.5s ease all;
	margin: 0 -25px;
	line-height: 0;
}
.f_contact .ul .li a:hover .pic {
	transform: scale(1.05) skewX(8deg);
}
.f_contact .ul .li .ttl {
	position: absolute;
	z-index: 9;
	color: #fff;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	text-align: center;
	transform: skewX(8deg);
}
.f_contact .ul .li .ttl .en {
	width: 100%;
	margin-bottom: 10px;
	font-size: 43px;
}
.f_contact .ul .li .ttl .text {
	font-size: 15px;
}
.f_contact a.m_arrow .m_arrow_circle {
	transform: skewX(8deg);
	right: 50px;
	bottom: 30px;
}
.f_contact a.m_arrow:hover .m_arrow_circle {
	right: 40px;
}

/* foot */

.footer {
	background: var(--grey);
	padding: 70px 0 30px;
}
.footer a {
	color: var(--text);
}
.footer a:hover {
	color: #666;
}
.footer .head {
	display: flex;
	justify-content: space-between;
	border-bottom: 1px solid #d9d9d9;
	padding-bottom: 30px;
}
.footer .head .logo {
	width: 29.25%;
}
.footer .head .nav {
	width: 61.25%;
	display: flex;
	flex-wrap: wrap;
	gap: 30px 120px;
}
.footer .head .nav .li:nth-of-type(3) {
	width: 40%;
}
.footer .info {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 40px 0 50px;
}
.footer .info .map {
	width: 65%;
}
.footer .info .map iframe {
	width: 100%;
	height: 220px;
}
.footer .info .conts {
	width: 30%;
	order: 2;
}
.footer .info .conts .dl {
	margin-top: 30px;
}
.footer .info .conts .dl > div {
	display: flex;
	margin-bottom: 10px;
}
.footer .info .conts .dl .dt {
	background: #fff;
}
.footer .info .conts .dl .dt,
.footer .info .conts .dl .dd {
	padding: 5px 15px;
}

.copyright {
	font-size: 15px;
	text-align: center;
}

@media screen and (min-width: 768px) and (max-width: 1260px){
	
	.f_contact {
		padding: 10vw 0;
	}
	.f_contact .ul .li a .pic {
		margin: 0 -2vw;
	}
	.f_contact .ul .li .ttl .en {
		margin-bottom: 1vw;
		font-size: 4vw;
	}
	.f_contact .ul .li .ttl .text {
		font-size: 1.5vw;
	}
	.f_contact a.m_arrow:hover .m_arrow_circle,
	.f_contact a.m_arrow .m_arrow_circle {
		right: 4vw;
		bottom: 3vw;
	}
	
	/* foot */
	
	.footer {
		padding: 6vw 0 3vw;
	}
	.footer .head {
		padding-bottom: 3vw;
	}
	.footer .head .nav {
		gap: 3vw 10vw;
		font-size: 1.5vw;
	}
	.footer .info {
		padding: 3vw 0 4vw;
	}
	.footer .info .map iframe {
		height: 20vw;
	}
	.footer .info .conts .dl {
		margin-top: 3vw;
	}
	.footer .info .conts .dl > div {
		margin-bottom: 1vw;
		font-size: 1.5vw;
	}
	.footer .info .conts .dl .dt,
	.footer .info .conts .dl .dd {
		padding: .5vw 1.5vw;
	}
	.copyright {
		font-size: 1.5vw;
	}
	
}
@media screen and (max-width: 767px){
	
	.f_contact {
		padding: 50px 0;
	}
	.f_contact .ul {
		display: block;
		width: min(300px,95%);
	}
	.f_contact .ul .li {
		width: 100%;
		margin-bottom: 10px;
	}
	.f_contact .ul .li a::before {
		opacity: .8;
	}
	.f_contact .ul .li a .pic {
		margin: 0 min(-4vw,-20px);
	}
	.f_contact .ul .li .ttl .en {
		margin-bottom: 10px;
		font-size: min(7vw,28px);
	}
	.f_contact .ul .li .ttl .text {
		font-size: 14px;
	}
	.f_contact a.m_arrow:hover .m_arrow_circle,
	.f_contact a.m_arrow .m_arrow_circle {
		right: 20px;
		bottom: 20px;
	}
	
	/* foot */
	
	.footer {
		padding: 50px 0;
	}
	.footer .head {
		display: block;
		border-bottom: none;
		padding-bottom: 0;
	}
	.footer .head .logo {
		width: 100%;
		text-align: center;
	}
	.footer .head .logo img {
		width: 292.5px;
	}
	.footer .head .nav {
		display: none;
	}
	.footer .info {
		display: block;
		padding: 30px 0 50px;
	}
	.footer .info .map {
		width: 100%;
	}
	.footer .info .map iframe {
		height: 200px;
	}
	.footer .info .conts {
		width: 100%;
		text-align: center;
	}
	.footer .info .conts .dl {
		margin: 15px 0 30px;
	}
	.footer .info .conts .dl > div {
		justify-content: center;
	}
	.copyright {
		font-size: 15px;
	}
	
}


/*----- main -----*/

.main {
	margin-top: 100px;
}

.p {
	font-size: 16px;
}
.pm {
	font-size: 16px;
	line-height: 2.1875;
}
.pml {
	font-size: 16px;
	line-height: 2.5;
}

.m_center {
	text-align: center;
}

.m_mv {
	position: relative;
}
.m_mv .pic img {
	height: 260px;
}
.m_mv .ttl {
	position: absolute;
	z-index: 5;
	left: 10vw;
	bottom: 55px;
	color: #fff;
}
.m_mv .ttl .text {
	margin-bottom: 10px;
	font-size: 16px;
}
.m_mv .ttl .en {
	font-size: 50px;
	font-weight: 900;
	letter-spacing: 2px;
}
.m_mv .ttl .en:first-letter {
	color: var(--yellow);
}

a.m_arrow {
	position: relative;
}
a.m_arrow .m_arrow_circle {
	position: absolute;
	z-index: 9;
	right: 30px;
	bottom: 20px;
	display: block;
	content: "";
	width: 50px;
	height: 50px;
	background: var(--white);
	border: 1px solid var(--text);
	border-radius: 50%;
	transition: .5s;
}
a.m_arrow .m_arrow_circle::after {
	display: block;
	content: "";
	position: absolute;
	top: calc(50% - 8px);
	left: calc(50% - 12px);
	width: 16px;
	height: 16px;
	border-top: solid 1px var(--text);
	border-right: solid 1px var(--text);
	transform: rotate(45deg);	
}
a.m_arrow:hover .m_arrow_circle {
	background: var(--yellow);
}
a.m_arrow:hover .m_arrow_circle {
	right: 20px;
}

.m_btn {
	margin-top: 60px;
	text-align: center;
}
.m_btn a {
	position: relative;
	display: inline-block;
	padding: 5px 50px 5px 0;
	color: #006c99;
	font-size: 18px;
}
.m_btn a::before,

.m_btn a::after {
	position: absolute;
	display: block;
	content: "";
	transition: .5s; 
}
.m_btn a::before {
	top: 0;
	bottom: 0;
	right: 0;
	width: 34px;
	height: 34px;
	background: var(--blue);
	border: 1px solid var(--text);
	border-radius: 50%;
}
.m_btn a::after {
	top: 12px;
	right: 15px;
	width: 8px;
	height: 8px;
	border-top: solid 1px var(--white);
	border-right: solid 1px var(--white);
	transform: rotate(45deg);
}
.m_btn a:hover {
	color: #cac76f;	
}
.m_btn a:hover::before {
	background: var(--yellow);
	right: -10px;
}
.m_btn a:hover::after {
	border-color: var(--text);
	right: 5px;
}

.m_title {
	display: flex;
	align-items: baseline;
	gap: 0 20px;
}
.m_title .en {
	color: var(--blue_dark);
	font-size: 43px;
	font-weight: 500;
	font-family: "Jost", sans-serif;
	letter-spacing: 2px;
}
.m_title .ttl {
	font-size: 15px;
}
.m_title.m_center {
	display: block;
	text-align: center;
}
.m_title.m_center .en {
	margin-bottom: 10px;
}
.m_title.m_left {
	display: block;
}
.m_title.m_left .en {
	margin-bottom: 10px;
}


@media screen and (min-width: 768px) and (max-width: 1520px){
	
	.m_mv .pic img {
		height: 240px;
	}
	.m_mv .ttl {
		left: 30px;
		bottom: 50px;
	}	
	
}
@media screen and (min-width: 768px) and (max-width: 1260px){
	
	.main {
		margin-top: 8vw;
	}

	.p {
		font-size: 1.6vw;
	}
	.pm {
		font-size: 1.6vw;
		line-height: 2;
	}
	.pml {
		font-size: 1.6vw;
		line-height: 2.25;
	}

	.m_mv .pic img {
		height: 24vw;
	}
	.m_mv .ttl {
		bottom: 4vw;
	}
	.m_mv .ttl .text {
		margin-bottom: 1vw;
		font-size: 1.6vw;
	}
	.m_mv .ttl .en {
		font-size: 5vw;
		letter-spacing: .2vw;
	}
	
	a.m_arrow .m_arrow_circle {
		right: 3vw;
		bottom: 2vw;
		width: 4vw;
		height: 4vw;
	}
	a.m_arrow .m_arrow_circle::after {
		top: calc(50% - .6vw);
		left: calc(50% - .9vw);
		width: 1.2vw;
		height: 1.2vw;
	}
	a.m_arrow:hover .m_arrow_circle {
		right: 2vw;
	}
	
	.m_btn {
		margin-top: 5vw;
	}
	.m_btn a {
		padding: .5vw 5vw .5vw 0;
		font-size: 1.8vw;
	}
	.m_btn a::before {
		width: 3.4vw;
		height: 3.4vw;
	}
	.m_btn a::after {
		top: 1.2vw;
		right: 1.5vw;
		width: .8vw;
		height: .8vw;
	}
	.m_btn a:hover::before {
		right: -1vw;
	}
	.m_btn a:hover::after {
		right: .5vw;
	}
	
	.m_title {
		display: flex;
		gap: 0 2vw;
	}
	.m_title .en {
		font-size: 4vw;
		letter-spacing: .2vw;
	}
	.m_title .ttl {
		font-size: 1.5vw;
	}
	.m_title.m_center .en,
	.m_title.m_left .en {
		margin-bottom: 1vw;
	}
	
	
}
@media screen and (max-width: 767px){
	
	.main {
		margin-top: 60px;
	}

	.p {
		font-size: 15px;
	}
	.pm,
	.pml {
		font-size: 15px;
		line-height: 2;
	}
	
	.sp_left {
		text-align: left;
	}

	.m_mv .pic img {
		height: 150px;
	}
	.m_mv .ttl {
		left: 6vw;
		bottom: 20px;
	}
	.m_mv .ttl .text {
		margin-bottom: 5px;
		font-size: 15px;
	}
	.m_mv .ttl .en {
		font-size: min(10vw,40px);
		letter-spacing: 1px;
	}
	
	a.m_arrow .m_arrow_circle,
	a.m_arrow:hover .m_arrow_circle {
		right: 20px;
		bottom: 15px;
		width: 30px;
		height: 30px;
	}
	a.m_arrow .m_arrow_circle::after {
		top: calc(50% - 4px);
		left: calc(50% - 8px);
		width: 10px;
		height: 10px;
	}

	.m_btn {
		margin-top: 40px;
	}
	
	.m_title {
		display: block;
		text-align: center;
	}
	.m_title .en,
	.m_title.m_left .en,
	.m_title.m_center .en {
		margin-bottom: 10px;
		font-size: min(9vw,36px);
		letter-spacing: 1px;
		line-height: 1.25;
	}
	.m_title .ttl {
		font-size: 15px;
	}
	
	
	
}

