@charset "utf-8";
/*==========================================================================

   base width

==========================================================================*/
 body {
	 min-width: 1020px; /*幅狭時のスクロールで見切り調整*/
 }
 .container {
	 position: relative;
    /* min-width: 1020px; */
    min-width: 948px;
    /* 1020px-サイドメニュー幅72px */
	 margin-right: auto;
	 margin-left: auto;
 }
 
/*==========================================================================

   base frame

==========================================================================*/
#header {
    position: relative;
    width: 100%;
	padding-top: 3.42857142857vw;
    z-index: 2;
}
body.home #header {
    position: absolute;
    left: 50%;
    -webkit-transform: translate(-50%, 0);
    transform: translate(-50%, 0);
    padding-left: 72px;
}
#main {
	position: relative;
}
#footer {
}

/*==========================================================================

   layout type

==========================================================================*/
.l-iblock {
    font-size: 0;
    text-align: center;
}
.l-iblock__item {
    display: inline-block;
}
.l-flex {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.l-flex-item.is-liquid {
	flex: 1;
}

/* safari14未満はgap 非対応のため、以下で対応必要

.item {
	margin-bottom: 10px; 縦gap用
	margin-right: 30px; 横gap用
	width: calc((100% - 横gap値 * 数) / カラム数);
}

.item:nth-of-type(3n) { /* カラム数が３なら、3の倍数で横marginを打ち消す
	margin-right: 0;
}
.item:nth-of-type(n+4) { /* 最終行の要素以降は下marginを打ち消す 
	margin-bottom: 0;
}
*/


/*==========================================================================

   fixed-menu

==========================================================================*/
body {
    padding-left: 72px;
}
.overlay {
    position: fixed;
    top: 0;
    content: "";
    display: block;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, .6);
    opacity: 0;
    visibility: hidden;
    z-index: 90;
    transition: .5s;
}
body.is-gnav .overlay {
    opacity: 1;
    visibility: visible;
}
.fixed-menu {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    width: 72px;
    height: 100%;
    z-index: 100;
}
.fixed-menu-label {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #3e7882;
	z-index: 100;
}
.fixed-menu-banner {
    font-size: 18px;
    text-align: center;
    writing-mode: vertical-rl;
}



/*==========================================================================

   header

==========================================================================*/
.header-nav {
    padding-right: 3.42857142857vw;
    text-align: right;
}
body.home .header-nav {
	padding-right: 0;
    text-align: center;
}
body.home .header-nav a {
    color: #fff;
}
body.home .header-nav__item + .header-nav__item::before {
	border-color: #fff;
}
.header-nav__list {
    font-size: 0;
}
.header-nav__item {
    display: inline-block;
    font-family: 'Shippori Mincho', serif;
    font-size: 14px;
}
.header-nav__item + .header-nav__item {
    position: relative;
    margin-left: 1.1em;
    padding-left: 1.1em;
}
.header-nav__item + .header-nav__item::before {
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    width: 1px;
    height: 100%;
    border-left: 1px solid #000;
}



/*==========================================================================

   page-body-intro

==========================================================================*/
.page-body-intro {
    margin-top: 3.92857142857vw;
    text-align: center;
}
.page-body__copy {
    font-family: 'Shippori Mincho', serif;
    font-size: 2.4rem;
    line-height: 2;
}
.page-body__desc {
    margin-top: 1.85714285714vw;
    font-family: 'Shippori Mincho', serif;
    font-size: 1.4rem;
    line-height: 2.28571428571;
}



/*==========================================================================

   fixed-menu

==========================================================================*/
.fixed-menu-row {
    position: absolute;
    bottom: 20px;
    display: flex;
    flex-direction: column;
    width: 100%;
    text-align: center;
    opacity: 1;
    transition: opacity .5s;
}
body.is-gnav .fixed-menu-row {
    opacity: 0;
}
.fixed-menu-access__icon {
    font-size: 24px;
}
.fixed-menu-access__icon a {
    color: #fff;
}
.fixed-menu-access__label {
    margin-top: 8px;
    font-family: futura-pt, sans-serif;
    font-size: 11px;
    color: #fff;
    letter-spacing: .06em;
}
.fixed-menu-banner02 {
    position: relative;
    margin: 54px auto 0;
    font-family: 'Shippori Mincho', serif;
    font-size: 18px;
    writing-mode: vertical-lr;
    letter-spacing: .1em;
}
.fixed-menu-banner02::before {
    position: absolute;
    top: -27px;
    left: 50%;
    content: "";
    display: block;
    width: 34px;
    height: 1px;
    margin-left: -17px;
    background: #9fbcc1;
}
.fixed-menu-banner02 a {
    color: #fff;
}

.gnav {
    position: absolute;
    width: 100vw;
    height: 100%;
    padding-left: 72px;
    padding-bottom: 72px;
    background: #3e7882;
    transition: transform .5s;
    transform: translateX(-100%);
    overflow-y: scroll;
    z-index: 99;
}
body.is-gnav .gnav {    
    transform: translateX(0%); 
}
.gnav-header {
    width: 31.7142857143vw;
    margin: 7.14285714286vw auto 0;
}
.gnav-menu__item {
    position: relative;
    font-family: 'Shippori Mincho', serif;
    font-size: 2.4rem;
}
.gnav-menu__item a {
    color: #fff;
}
.gnav-menu__item + .gnav-menu__item {
    margin-top: 2.5vw;
}
.gnav-menu__item::after {
    position: relative;
    display: inline-block;
    font: normal 1.8rem/1 FontAwesome;
    content: "\f054";
    top: -0.1em;
    margin-left: 1.07142857143vw;
    color: #b2c9cd;
    vertical-align: middle;
}

.gnav-row {
    width: 54.4285714286vw;
    margin: 7vw auto 0;
}
.gnav-col {
    width: 50%;
}
.gnav-col.gnav-menu {
    border-right: 1px solid #fff;
}
.gnav-profile {
    padding-left: 5vw;
}
.gnav-profile__logo {
    width: 11.3571428571vw;
    margin: 3.35714285714vw 0 7.14285714286vw;
}
.gnav-profile__copy {
    font-size: 2.0rem;
	font-weight: 600;
    color: #fff;
}
.gnav-profile__address {
    margin-top: 1.14285714286vw;
    font-size: 1.4rem;
    color: #fff;
}
.gnav-profile__tel {
    font-family: futura-pt, sans-serif;
    font-size: 2.8rem;
    color: #fff;
    letter-spacing: .1em;
    margin-top: 1.14285714286vw;
}
.gnav-profile__tel a{
	color: #fff;
}
.gnav-profile__time {
    margin-top: 0.71428571428vw;
    font-size: 1.4rem;
    color: #fff;
}
.gnav-profile__sns__item {
    font-size: 2.4rem;
}
.gnav-profile__tel i {
    margin-left: 0.5714285714vw;
    font-size: 2.2rem;
}
.gnav-profile__sns a {
    color: #fff;
}
.gnav-sns__list {
    font-size: 0;
}
.gnav-sns__item {
    display: inline-block;
    font-size: 2.4rem;
}
.gnav-sns__item + .gnav-sns__item {
    margin-left: 1.28571428571vw;
}
.gnav-profile__sns {
    margin-top: 1.78571428571vw;
}
.gnav-contact-action {
    margin-top: 5.71428571429vw;
}
.gnav-contact-action__list {
    display: flex;
    gap: 2vw;
	justify-content: center;
}


/*==========================================================================

   footer

==========================================================================*/

.footer-contact {
	position: relative;
    height: 38.8571428571vw;
	text-align: center;
	color: #fff;
    background: url(../img/bg_footer_contact01.jpg) no-repeat center top / cover;
}
.footer-contact-label {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}
.footer-contact__heading__logo {
    width: 10.7142857143vw;
    margin: 0 auto 4.28571428571vw;
}
.footer-contact__heading__copy {
    font-family: 'Shippori Mincho', serif;
    font-size: 2.4rem;
}
.footer-contact-action {
    margin-top: 3.57142857143vw;
}
.footer-contact-action__list {
    display: flex;
    gap: 2.14285714286vw;
}
.footer-map {
    position: relative;
    padding-top: 32.142857142vw;
}
.footer-map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
}


.footer-menu {
    padding: 5.35714285714vw 0 3.57142857143vw;
    background: #3e7882;
}
.footer-menu-row {
    display: flex;
    justify-content: space-between;
    width: 85.7142857143vw;
    padding: 0 2.14285714286vw;
}
.footer-menu-col,
.footer-menu-col {
    width: 50%;
}
.footer-company-info__name-en {
    margin-bottom: 1.57142857143vw;
    font-family: futura-pt, sans-serif;
    font-size: 3.2rem;
    font-weight: 500;
    letter-spacing: .06em;
}
.footer-company-info__name-ja {
    margin-bottom: 1.14285714286vw;
    font-size: 1.6rem;
	font-weight: 600;
}
.footer-company-info__address {
    font-size: 1.4rem;
}
.footer-company-info__tel {
    margin-top: 1.42857142857vw;
    font-family: futura-pt, sans-serif;
    font-size: 2.8rem;
    font-weight: 500;
    letter-spacing: .06em;
}
.footer-company-info__tel i {
    margin-left: 0.5714285714vw;
	font-size: 2.2rem;
}
.footer-company-info__time {
    margin-top: 0.85714285714vw;
    font-size: 1.4rem;
}
.footer-sns {
    margin-top: 2vw;
}
.footer-sns__list {
	margin-left: 0.57142857142vw;
    font-size: 0;
}
.footer-sns__item {
    display: inline-block;
    font-size: 2.2rem;
}
.footer-sns__item + .footer-sns__item {
    margin-left: 1.42857142857vw;
}
.footer-menu-col.col--main {
    font-size: 0;
    text-align: right;
}
.footer-menu__list {
    display: inline-block;
    vertical-align: top;
    font-size: 1.4rem;
    text-align: left;
}
.footer-menu__list + .footer-menu__list {
    margin-left: 6.78571428571vw;
}
.footer-menu__item + .footer-menu__item {
    margin-top: 0.85714285714vw;
}


.footer-guide {
    padding: 2vw 0 3.57142857143vw;
    text-align: center;
    background: #000;
}
.footer-guide__list {
    font-size: 0;
    text-align: center;
}
.footer-guide__item {
    display: inline-block;
    font-size: 1.2rem;
}
.footer-guide__item + .footer-guide__item {
    margin-left: 1.1em;
}
.footer-menu, .footer-menu a,
.footer-guide, .footer-guide a {
    color: #fff;
}
.copyright {
	display: block;
	margin-top: 75px;
	font-size: 1.2rem;
	text-align: center;
}
