@charset "UTF-8";
/* ==========================================================
Name:
    base.css

Description:
    サイト全体に共通する設定を記述する

Contents:
    base settings
    javascript style hooks
    base blocks
========================================================== */
/* ==========================================================
*
*   base settings
*
========================================================== */
/* ---------------------------------------------
*   html, body
--------------------------------------------- */
@import url(https://use.fontawesome.com/releases/v6.4.2/css/all.css);
@import url("https://fonts.googleapis.com/css?family=Sawarabi+Mincho&display=swap&subset=japanese");
@import url("https://fonts.googleapis.com/css?family=Gabriela&display=swap");
html,
body {
    color: #010100;
    font-size: 14px;
    font-family: "Sawarabi Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", "Hiragino Kaku Gothic ProN", "meiryo", sans-serif;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: 100%;
}

@media screen and (max-width: 750px) {
    html,
    body {
        overflow: auto;
        -webkit-overflow-scrolling: touch;
        /* font-size: 3.5vw; */
    }
}

body {
    min-width: 1280px;
    line-height: 1.5;
}

@media screen and (max-width: 750px) {
    body {
        overflow-x: hidden;
        min-width: 320px;
        line-height: 1.5;
    }
}

body.noscroll {
    overflow: hidden;
}

body, ul {
	font-family: inherit;
}
/* ---------------------------------------------
*   <a> tag
--------------------------------------------- */
a {
    color: inherit;
    text-decoration: none;
}

a:hover {
	color: inherit;
	text-decoration: none;
}

.mod-txt-link {
    text-decoration: underline;
}

.mod-txt-link:hover {
    text-decoration: none;
}

.ios .mod-txt-link:hover,
.android .mod-txt-link:hover {
    text-decoration: underline;
}
a.external::after {
  content: '';
  display: inline-block;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  background-image: url(../img/common/external.svg);
  width: 1em;
  height: 1em;
  margin-left: 0.4em;
  margin-bottom: 0.3em;
  vertical-align: middle;
}
a.external2::after {
  content: '';
  display: inline-block;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center center;
  background-image: url(../img/common/external2.svg);
  width: 1em;
  height: 1em;
  margin-left: 0.4em;
  margin-bottom: 0.3em;
  vertical-align: middle;
}
/* ---------------------------------------------
*   <img> tag
--------------------------------------------- */
img {
    max-width: 100%;
    width: auto;
    height: auto;
    vertical-align: bottom;
}

/* ==========================================================
*
*   javascript style hooks
*
========================================================== */
/* ==========================================================
*
*   base blocks
*
========================================================== */
/* ---------------------------------------------
*   header
--------------------------------------------- */
.header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    background-color: #232e48;
}

@media screen and (max-width: 750px) {
    .header {
        top: auto;
        bottom: 0;
    }
}

.header--wedding {
	position: relative;
	top: -19px;
	bottom: 0;
    height: 59px;
    background-color: #fff;
    height: 59px;
}

.header--wedding.fixed {
	position: fixed;
	top: 0;
}

@media screen and (max-width: 750px) {
    .header--wedding {
        background-color: #232e48;
		position: fixed;
		bottom: 0;
        top: auto;
        height: auto;
    }
    .header--wedding .header-sns-nav {
      margin-bottom: 8rem;
    }
}

@media screen and (max-width: 320px) {
    .header--wedding {
	height: 60px;
    }
}

/*  header-container
--------------------------------------------- */
.header-container {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin-right: auto;
    margin-left: auto;
    padding: 0 40px;
    width: 1280px;
    -webkit-transition: padding 0.3s;
    transition: padding 0.3s;
}

@media screen and (max-width: 750px) {
    .header-container {
        padding: 0;
        width: 100%;
        height: 18.4vw;
    }
}

.js-rsv-open .header-container {
    padding-top: 373px;
}

@media screen and (max-width: 750px) {
    .js-rsv-open .header-container {
        padding-top: 0;
    }
}

.header-container--wedding {
    position: relative;
    padding: 0;
    width: 100%;
}

@media screen and (max-width: 750px) {
    .header-container--wedding {
        height: 18.4vw;
    }
}

/* .header-container--wedding:after {
    position: absolute;
    bottom: -20px;
    left: 0;
    min-width: 1280px;
    width: 100%;
    height: 31px;
    background: url(../img/common/img_lace.png) top center repeat-x;
    background-size: auto;
    content: "";
} */

.js-header-fixed .header-container--wedding {
    padding-top: 0;
}

/*  header-upper
--------------------------------------------- */
.header-upper {
    position: relative;
    padding-top: 30px;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

.js-header-fixed .header-upper {
    padding-top: 0;
}

@media screen and (max-width: 750px) {
    .header-upper {
        position: static;
        padding-top: 0;
    }
}

.header-upper__inner {
    position: absolute;
    top: 10px;
    right: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
    -ms-flex-align: center;
    -webkit-transition: 0.3s;
    transition: 0.3s;

    -webkit-box-pack: end;
    justify-content: flex-end;
    -webkit-box-align: center;
    align-items: center;
}

.js-header-fixed .header-upper__inner {
    top: -30px;
}

@media screen and (max-width: 750px) {
    .header-upper__inner {
        position: static;
    }
}

/*  header-lang
--------------------------------------------- */
@media screen and (max-width: 750px) {
    .header-lang {
        margin-bottom: 21.33333vw;
    }
}

.header-lang__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
    -ms-flex-align: center;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: end;
    justify-content: flex-end;
}

@media screen and (max-width: 750px) {
    .header-lang__list {
        -ms-flex-pack: center;

        -webkit-box-pack: center;
        justify-content: center;
    }
}

.header-lang__list-item {
    margin-right: 23px;
}

@media screen and (max-width: 750px) {
    .header-lang__list-item {
        margin-right: 4.26667vw;
    }
    .header-lang__list-item:last-of-type {
        margin-right: 0;
    }
}

.header-lang__link {
    color: #fefefe;
    font-size: 12px;
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;
}

.header-lang__link:hover {
    color: #fefefe;
    opacity: 0.8;
}

.ios .header-lang__link:hover,
.android .header-lang__link:hover {
    opacity: 1;
}

@media screen and (max-width: 750px) {
    .header-lang__link {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-pack: center;
        -ms-flex-align: center;
        width: 19.6vw;
        height: 11.73333vw;
        background-color: #232e47;
        color: #fff;
        font-size: 3.33333vw;

        -webkit-box-pack: center;
        justify-content: center;
        -webkit-box-align: center;
        align-items: center;
    }
}

/*  header-reserve
--------------------------------------------- */
.header-reserve {
	opacity: 0;
	z-index: 200;
	right: 0;
	top: 40%;
  padding: 16px 12px;
  background-color: #9a8344;
  cursor: pointer;
	font-family: "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", "Hiragino Kaku Gothic ProN", "meiryo", sans-serif;
  -webkit-transition: opacity 300ms;
  transition: opacity 300ms;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
	-webkit-box-shadow: -1px 0px 20px #5c562b;
	box-shadow: -1px 0px 20px #5c562b;
  position: relative;
}

.header-reserve.on {
	opacity: 1;
}

.header-reserve.wedding {
	top: 54%;
  position: fixed;
  background-color: #9a8344 !important;
}

.header-reserve.document {
	top: 33%;
  position: fixed;
	background-color: #BEA86C !important;
}

.header-reserve:hover {
    opacity: 0.8;
}

.header-reserve:before,
.header-reserve.wedding:before,
.header-reserve.document:before {
    content: "";
    display: block;
    position: absolute;
    top: -25px;
    left: 0;
    width: 100%;
    height: 40px;
    background: url(../img/uploads/icon_calendar.png) no-repeat;
    background-size: 54%;
    background-position: center;
    background-color: #ffffff;
}

.header-reserve.wedding:before {
    /* background: url(../img/uploads/icon_calendar_w.png) no-repeat; */
    background-size: 54%;
    background-position: center;
    background-color: #ffffff;
}

.header-reserve.document:before {
    background: url(../img/uploads/icon_calendar_d.png) no-repeat;
    background-size: 54%;
    background-position: center;
    background-color: #ffffff;
}

.header-reserve.wedding.document:before {
    background: url(../img/uploads/icon_calendar_d-wedding.png) no-repeat;
    background-size: 54%;
    background-position: center;
    background-color: #ffffff;
}

.ios .header-reserve:hover,
.android .header-reserve:hover {
    opacity: 1;
}

.header-reserve.rsv-second {
  background-color: #937fa4;
  margin-top: 3rem;
}
.header-reserve.rsv-second:before {
  background: url(../img/uploads/icon_calendar3.png) no-repeat;
  background-size: 54%;
  background-position: center;
  background-color: #ffffff;
}

.header-reserve.rsv-third {
  background-color: #6e94a6;
  margin-top: 3rem;
}

.header-reserve.rsv-third:before {
  background: url(../img/uploads/icon_calendar2.png) no-repeat;
  background-size: 54%;
  background-position: center;
  background-color: #ffffff;
}

.header-reserve-links {
  position: fixed;
    top: 15%;
    right: -2rem;
}

@media screen and (max-width: 750px) {
    .header-reserve {
        right: 36.8vw;
        padding-top: 3.33333vw; 
    position: absolute;
      bottom: 0;
      z-index: 9999;
      display: block;
      margin: 0;
      width: 18.4vw;
      height: 18.4vw;
      outline: none;
      border: 0;
      border-left: 1px solid rgba(255, 255, 255, 0.4);
      border-radius: 0;
      background: none;
      -webkit-box-shadow: none;
      box-shadow: none;
      cursor: pointer;
      -webkit-transition: 0.3s;
      transition: 0.3s;
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
          top: 0;
          text-align: center;
          font-family: "Sawarabi Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", "Hiragino Kaku Gothic ProN", "meiryo", sans-serif;
          justify-content: center;
          writing-mode: inherit;
          -webkit-writing-mode: inherit;
    }
    .rsv-active .header-reserve {
      background-color: #ffffff;
    }

	.wrapper--wedding .header-reserve.wedding,
	.wrapper--wedding .header-reserve.document {
		top:-12vw;
		width: 50%;
		height: 12vw;
    position: absolute;
	}
	.wrapper--wedding .header-reserve.wedding {
		left: 0;
    padding: 4vw 0 0 9vw;
	}
	.wrapper--wedding .header-reserve.document {
		left: 50%;
    padding: 4vw 0 0 9vw;
	}
    
    .wrapper--wedding .header-reserve.wedding:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: -1px;
    width: 20%;
    height: 12vw;
    background-size: 60%;
    background-position: center;
    background-color: #ffffff;
	}

	.wrapper--wedding .header-reserve.document:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: -1px;
    width: 20%;
    height: 12vw;
    background-size: 60%;
    background-position: center;
    background-color: #ffffff;
	}

	.wrapper--wedding .header-reserve.wedding a,
	.wrapper--wedding .header-reserve.document a {
		width: 100%;
	}
	.header-reserve__link-img {
		display: block !important;
	}

	
.header-reserve:before, .header-reserve.wedding:before, .header-reserve.document:before {
		display: none;
	}

	/* .wrapper--wedding .header-reserve.wedding,
	.wrapper--wedding .header-reserve.document {
		opacity: 0;	
	} */

	/* .header-reserve__link-img {
		display: block !important;
	}
	
	.header-reserve:before {
			display: none;
	}

	.header-reserve p,
	.header-reserve img,
	.header-reserve:before { display:none }

	.header-reserve.wedding { z-index: 300 }

	.header-reserve.wedding:before {
		top: 0;
	} */
}

.header-reserve__link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    color: #fefefe;

    -webkit-box-align: center;
    align-items: center;

	letter-spacing: 0.2rem;
	text-indent: 1rem;
}

@media screen and (max-width: 750px) {
    .header-reserve__link {
        display: block;
		letter-spacing: 0;
		text-indent: 0;
    }
    .header-reserve__link .rsv-img-non {
		display: none !important;
	}
}

.header-reserve__link-img {
    height: 14px;
	display: none;
}

@media screen and (max-width: 750px) {
    .header-reserve__link-img {
        margin: 0 auto;
        margin-bottom: 2.66667vw;
        width: 6.4vw;
		height: 24px;
    }
}

.header-reserve__link-txt {
    font-size: 16px;
}

@media screen and (max-width: 750px) {
    .header-reserve__link-txt {
        font-size: 2.93333vw;
    }
    .rsv-active .js-rsv-trigger .header-reserve__link-txt {
      color: #232e48;
    }
}

/*  header-tel
--------------------------------------------- */
@media screen and (max-width: 750px) {
    .header-tel {
        position: absolute;
        right: 18.4vw;
        bottom: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-pack: center;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        padding-top: 3.33333vw;
        width: 18.4vw;
        height: 18.4vw;
        border-left: 1px solid rgba(255, 255, 255, 0.4);
        text-align: center;

        -webkit-box-pack: center;
        justify-content: center;
    }
}

.header-tel__link {
    display: block;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 18.4vw;
    height: 18.4vw;
}

@media screen and (max-width: 750px) {
    .header-tel__link-img {
        margin-bottom: 2.66667vw;
        width: 4.53333vw;
    }
}

@media screen and (max-width: 750px) {
    .header-tel__link-txt {
        color: #fff;
        font-size: 2.93333vw;
    }
    .header-menu__link-txt {
        color: #fff;
        font-size: 2.93333vw;
		margin-top: 2.5vw;
    }
    .active .header-menu__link-txt {
      color: #232e48;
    }
}

/*  header-lower
--------------------------------------------- */
.header-lower {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    -ms-flex-align: center;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    justify-content: space-between;
}

@media screen and (max-width: 750px) {
    .header-lower {
        display: block;
    }
}

/*  header-logo
--------------------------------------------- */
@media screen and (max-width: 750px) {
    .header-logo {
        position: absolute;
        bottom: 0;
        bottom: 4vw;
        left: 10vw;
    }
}

.header-logo__img {
    width: 168px;
    -webkit-transition: width 0.3s;
    transition: width 0.3s;
}

@media screen and (min-width: 751px) {
    .js-header-fixed .header-logo__img {
        width: 102px;
    }
}

@media screen and (max-width: 750px) {
    .header-logo__img {
        width: 24.4vw;
    }
}

.header-logo__img--wedding {
    width: 201px;
}

@media screen and (min-width: 751px) {
    .js-header-fixed .header-logo__img--wedding {
        width: 130px;
    }
}

@media screen and (max-width: 750px) {
    .header-logo__img--wedding {
        width: 24.4vw;
    }
}

.header-logo__link {
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;
}

.header-logo__link:hover {
    opacity: 0.8;
}

.ios .header-logo__link:hover,
.android .header-logo__link:hover {
    opacity: 1;
}

/*  header-nav
--------------------------------------------- */
.header-nav__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;

    -webkit-box-align: center;
    align-items: center;
}

@media screen and (max-width: 750px) {
    .header-nav__list {
        margin-bottom: 4.26667vw;

        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

.header-nav__list-item {
    color: #fff;
}

@media screen and (max-width: 750px) {
    .header-nav__list-item {
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 50%;
        border-right: 1px solid #232e47;
        border-bottom: 1px solid #232e47;
        color: #232e47;
        text-align: center;
    }
    .header-nav__list-item:first-of-type {
        width: 100%;
    }
    .header-nav__list-item:nth-of-type(odd) {
        border-right: none;
    }
}

@media screen and (max-width: 750px) {
    .header-nav__list-item--wedding:first-of-type {
        width: 50%;
    }
    .header-nav__list-item--wedding:nth-of-type(odd) {
        border-right: 1px solid #232e47;
    }
    .header-nav__list-item--wedding:nth-of-type(even) {
        border-right: none;
    }
}

.header-nav__link {
    display: block;
    padding-top: 40px;
    padding-right: 14px;
    padding-bottom: 45px;
    padding-left: 14px;
    font-size: 15px;
    -webkit-transition: padding 0.3s;
    transition: padding 0.3s;
}

@media screen and (max-width: 750px) {
    .header-nav__link {
        padding-top: 6vw;
        padding-right: 0;
        padding-bottom: 6vw;
        padding-left: 0;
        font-size: 3.73333vw;
    }
}

.header-nav__link:hover, .header-nav__link.js-opened {
    background-color: #333d56;
}

@media screen and (max-width: 750px) {
    .header-nav__link:hover, .header-nav__link.js-opened {
        background-color: #fff;
    }
}

.js-header-fixed .header-nav__link {
    padding-top: 13px;
    padding-bottom: 18px;
}

.header-nav__menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1;
    display: none;
    padding-top: 24px;
    padding-bottom: 24px;
    width: 100vw;
    background-color: #333d56;
}

.header-nav__menu-block {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    margin-right: auto;
    margin-left: auto;
    width: 1200px;

    -webkit-box-align: center;
    align-items: center;
}

.header-nav__menu-block--upper {
    margin-bottom: 20px;
}

.header-nav__menu-head {
    margin-right: 30px;
    padding: 8px 12px;
    border: 1px solid #fff;
    text-align: center;
    font-size: 12px;
	min-width: 120px;
}

.header-nav__menu-head--room {
    margin-top: -45px;
	position: relative;
}

.header-nav__menu-head--room:before {
	content: "";
	display: block;
    background: url(../img/common/icon_menu_bed.png) top center no-repeat;
	width: 116;
	height: 45px;
	background-size: contain;
}

.header-nav__menu-block--restaurant {
	position: relative;
}

.header-nav__menu-head--restaurant:before {
	content: "";
	display: block;
    background: url(../img/common/icon_menu_restaurant.png) top center no-repeat;
	width: 116;
	height: 45px;
	background-size: contain;
}


.header-nav__menu-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: baseline;

    -webkit-box-align: baseline;
    align-items: baseline;
}

.header-nav__menu-list-item {
    margin-right: 25px;
    max-width: 9em;
    font-size: 13px;
	border-radius: 6px;
	background-color: rgba(255, 255, 255, 0.2);
	min-width: 9em;
	text-align: center;
}

.header-nav__menu-list-restaurants_category {
    flex-wrap: wrap;
    width: 100%;
}

.header-nav__menu-list-restaurants_category .header-nav__menu-list-item {
    max-width: 11em;
    min-width: 11em;
    margin-bottom: 10px;
}

.header-nav__menu-list.type2 {
	width: 84%;
	margin: 0 auto;
}

.header-nav__menu-list-item.type2 {
	margin-right: 0;
	max-width: auto;
	border-radius: 0;
	min-width: auto;
	width: 24%;
	text-align: center;
	padding: 5px 2px 5px 0;

}

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

	.header-nav__menu-list.type2 {
		width: 100%;
		margin: 0 auto;
	}

}


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

	.header-nav__menu-list header-nav__menu-list-restaurants_category

	.header-nav__menu-list-item.type2 {
		margin-right: -14px;
		max-width: 3em;
	    min-width: 3em;
	}

}

.header-nav__menu-list-item.nobg {
	background-color: transparent;
}

.header-nav__menu-list-item--boulogne {
    width: 60px;
}

.header-nav__menu-list-item--kaijuso {
    width: 60px;
}

.header-nav__menu-list-item--goka {
    width: 53px;
}

.header-nav__menu-link {
    text-align: center;
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;
}

.header-nav__menu-link:hover {
    opacity: 0.8;
}

.ios .header-nav__menu-link:hover,
.android .header-nav__menu-link:hover {
    opacity: 1;
}

.header-nav__menu-link-img {
    width: 107px;
}

.header-nav__menu-link-name {
    padding-top: 5px;
}

.header-nav__menu-link-name-sub {
    font-size: smaller;
    display: block;
}

.header-nav__txt-link {
    /* text-decoration: underline;
    text-decoration: underline; */
    padding: 5px 10px;
    display: block;
    white-space: nowrap;
}

.header-nav__txt-link:hover {
    text-decoration: none;
}

.ios .header-nav__txt-link:hover,
.android .header-nav__txt-link:hover {
    text-decoration: underline;
}

/*  header-menu-button
--------------------------------------------- */
.header-menu-button {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 9999;
    display: block;
    margin: 0;
    padding: 0;
    width: 18.4vw;
    height: 18.4vw;
    outline: none;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 0;
    background: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    cursor: pointer;
    -webkit-transition: 0.3s;
    transition: 0.3s;

    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.active .header-menu-button {
    background-color: #fff;
}

@media screen and (min-width: 751px) {
    .header-menu-button {
        display: none;
    }
}

.header-menu-button__lines {
    position: relative;
    display: block;
    margin-right: auto;
    margin-left: auto;
    width: 8.4vw;
    height: 6.53333vw;
	margin-top: 1.5vw;
}

.header-menu-button__line {
    position: absolute;
    left: 0;
    display: block;
    padding-top: 0.53333vw;
    width: 100%;
    height: 0;
    border-radius: 0.26667vw;
}

.header-menu-button__line--top, .header-menu-button__line--center, .header-menu-button__line--bottom {
    -webkit-transition: 500ms;
    transition: 500ms;
}

.header-menu-button__line--top {
    top: 0;
    background-color: #fff;
}

.header-menu-button__line--center {
    top: 50%;
    margin-top: -0.4vw;
    background-color: #fff;
}

.header-menu-button__line--bottom {
    bottom: 0;
    background-color: #fff;
}

.active .header-menu-button__line--top {
    top: 50%;
    background-color: #232e48;
    -webkit-transform: translateY(-50%) rotate(45deg);
    transform: translateY(-50%) rotate(45deg);
}

.active .header-menu-button__line--center {
    background-color: rgba(0, 0, 0, 0);
}

.active .header-menu-button__line--bottom {
    bottom: 50%;
    background-color: #232e48;
    -webkit-transform: translateY(50%) rotate(-45deg);
    transform: translateY(50%) rotate(-45deg);
}

/* rsv */
.rsv-active .header-rsv-button__lines {
  display: block;
  margin-bottom: 2.66667vw;
}

.header-rsv-button__lines {
  display: none;
  position: relative;
  margin-right: auto;
  margin-left: auto;
  width: 8.4vw;
  height: 6.53333vw;
}

.header-rsv-button__line {
  position: absolute;
  left: 0;
  display: block;
  padding-top: 0.53333vw;
  width: 100%;
  height: 0;
  border-radius: 0.26667vw;
}

.header-rsv-button__line--top,
.header-rsv-button__line--center,
.header-rsv-button__line--bottom {
  -webkit-transition: 500ms;
  transition: 500ms;
}

.header-rsv-button__line--top {
  top: 0;
  background-color: #fff;
}

.header-rsv-button__line--center {
  top: 50%;
  margin-top: -0.4vw;
  background-color: #fff;
}

.header-rsv-button__line--bottom {
  bottom: 0;
  background-color: #fff;
}

.rsv-active .header-rsv-button__line--top {
  top: 50%;
  background-color: #232e48;
  -webkit-transform: translateY(-50%) rotate(45deg);
  transform: translateY(-50%) rotate(45deg);
}

.rsv-active .header-rsv-button__line--center {
  background-color: rgba(0, 0, 0, 0);
}

.rsv-active .header-rsv-button__line--bottom {
  bottom: 50%;
  background-color: #232e48;
  -webkit-transform: translateY(50%) rotate(-45deg);
  transform: translateY(50%) rotate(-45deg);
}

button:focus {
	outline: none;
}
/*  header-sp-menu
--------------------------------------------- */
.header-sp-menu {
    position: fixed;
    top: 0;
    left: 0;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    background-color: #fff;
    opacity: 0;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    pointer-events: none;
}

.active .header-sp-menu {
    opacity: 1;
    pointer-events: auto;
}

/*  header-info
--------------------------------------------- */
.header-info {
    margin-bottom: 2.66667vw;
    text-align: center;
}

.header-info__logo {
    margin-right: auto;
    margin-bottom: 2.66667vw;
    margin-left: auto;
    width: 40vw;
}

.header-info__address {
    color: #232e47;
    font-size: 4vw;
}

.header-info__tel {
    margin-bottom: 3.33333vw;
    color: #232e47;
    font-size: 4vw;
}

/*  header-sns-nav
--------------------------------------------- */
.header-sns-nav {
    padding-bottom: 8vw;
}

.header-sns-nav__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    -ms-flex-align: center;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
}

.header-sns-nav__list-item {
    margin-right: 2.13333vw;
    margin-left: 2.13333vw;
}

.header-sns-nav__link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    -ms-flex-align: center;
    width: 9.6vw;
    height: 9.6vw;
    border: 0.4vw solid #232e47;
    border-radius: 50%;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
}

.header-sns-nav__link span {
    font-size: 32px;
}

@media screen and (max-width: 750px) {
    .header-sns-nav__link span {
        font-size: 4.26667vw;
    }
}

/*  wedding-header-upper
--------------------------------------------- */
.wedding-header-upper {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    background-color: #17191a;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

.wedding-header-upper__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
    -ms-flex-align: center;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin-right: auto;
    margin-left: auto;
    padding: 0 40px;
    width: 1280px;
    color: #fff;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: end;
    justify-content: flex-end;
}

.js-rsv-open .wedding-header-upper {
    top: 353px;
}

.js-header-fixed .wedding-header-upper {
    top: -100%;
}

/*  wedding-header-lang
--------------------------------------------- */
.wedding-header-lang__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
    -ms-flex-align: center;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: end;
    justify-content: flex-end;
}

.wedding-header-lang__list-item {
    margin-right: 23px;
    color: rgba(255, 255, 255, 0.8);
}

@media screen and (max-width: 750px) {
    .wedding-header-lang__list-item {
        margin-right: 4.26667vw;
    }
    .wedding-header-lang__list-item:last-of-type {
        margin-right: 0;
    }
}

.wedding-header-lang__link {
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;
}

.wedding-header-lang__link:hover {
    opacity: 0.8;
}

.ios .wedding-header-lang__link:hover,
.android .wedding-header-lang__link:hover {
    opacity: 1;
}

/*  wedding-header-back
--------------------------------------------- */
.wedding-header-back {
	color: #ffffff;
    background-color: #004664;
}

.wedding-header-back__link-img {
    margin-right: 10px;
    height: 14px;
}

.wedding-header-back__link-txt {
    font-size: 13px;
}

.wedding-header-back__link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    padding: 5px 13px;
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;

    -webkit-box-align: center;
    align-items: center;
}

.wedding-header-back__link:hover {
    opacity: 0.8;
}

.ios .wedding-header-back__link:hover,
.android .wedding-header-back__link:hover {
    opacity: 1;
}

/*  wedding-header-lower
--------------------------------------------- */
.wedding-header-lower {
    color: #004664;
}

.wedding-header-lower__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    -ms-flex-align: center;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin-right: auto;
    margin-left: auto;
    padding: 0 40px;
    padding-top: 5px;
    padding-bottom: 10px;
    width: 1320px;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    justify-content: space-between;
}

/*  wedding-header-nav
--------------------------------------------- */
.wedding-header-nav {
    margin-top: -5px;
}

.wedding-header-nav__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
    -ms-flex-align: center;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: end;
    justify-content: flex-end;
}

.wedding-header-nav__list-item {
    margin-right: 22px;
    letter-spacing: 0.1em;
    font-size: 14px;
}

.wedding-header-nav__list-item:last-of-type {
    margin-right: 0;
}

.wedding-header-nav__link {
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;
}

.wedding-header-nav__link:hover {
    opacity: 0.8;
}

.ios .wedding-header-nav__link:hover,
.android .wedding-header-nav__link:hover {
    opacity: 1;
}

/* ---------------------------------------------
*   wrapper
--------------------------------------------- */
.wrapper {
    padding-top: 138px;
    -webkit-transition: padding 0.3s;
    transition: padding 0.3s;
}

.js-header-fixed .wrapper {
    padding-top: 55px;
}

.js-rsv-open .wrapper {
    padding-top: 512px;
}

@media screen and (max-width: 750px) {
    .js-rsv-open .wrapper {
        padding-top: 0;
    }
}

@media screen and (max-width: 750px) {
    .wrapper {
        padding-top: 0;
    }
}

.wrapper--wedding {
    padding-top: 0;
}

@media screen and (max-width: 750px) {
    .wrapper--wedding {
        padding-top: 0;
    }
}

/* ---------------------------------------------
*   contents
--------------------------------------------- */
/* ---------------------------------------------
*   main
--------------------------------------------- */
/* ---------------------------------------------
*   footer
--------------------------------------------- */
.footer {
    margin-top: 36px;
    background-color: #232e48;
}

@media screen and (max-width: 750px) {
    .footer {
        padding-bottom: 18.4vw;
    }
}

/*  footer-container
--------------------------------------------- */
.footer-container {
    position: relative;
}

/*  footer-upper
--------------------------------------------- */
.footer-upper {
    padding-bottom: 40px;
}

@media screen and (max-width: 750px) {
    .footer-upper {
        padding-bottom: 0;
    }
}

.footer-upper--wedding {
    position: relative;
    z-index: 0;
}

.footer-upper--wedding::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../img/common/bg_wedding_footer.jpg) center / cover no-repeat;
    opacity: 0.6;
    z-index: -1;
}

/*  footer-sns-nav
--------------------------------------------- */
.footer-sns-nav {
    position: absolute;
    top: -36px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
}

@media screen and (max-width: 750px) {
    .footer-sns-nav {
        top: -4.8vw;
    }
}

.footer-sns-nav__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    -ms-flex-align: center;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
}

.footer-sns-nav__list-item {
    margin-right: 17px;
    margin-left: 17px;
}

@media screen and (max-width: 750px) {
    .footer-sns-nav__list-item {
        margin-right: 2.26667vw;
        margin-left: 2.26667vw;
    }
}

.footer-sns-nav__link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    -ms-flex-align: center;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 72px;
    height: 72px;
    border: 3px solid #232e48;
    border-radius: 50%;
    background-color: #fff;
    color: #232e48;
    font-size: 33px;
    -webkit-transition: 0.5s;
    transition: 0.5s;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
}

@media screen and (max-width: 750px) {
    .footer-sns-nav__link {
        width: 13.33333vw;
        height: 13.33333vw;
        border-width: 0.66667vw;
        font-size: 6.13333vw;
    }
}

@media screen and (min-width: 751px) {
    .footer-sns-nav__link:hover {
        background-color: #232e48;
        color: #fff;
    }
}

.footer-sns-nav__link--instagram {
    content: "f16d";
}

.footer-sns-nav__link--twitter {
    content: "e61b";
}

.footer-sns-nav__link--facebook {
    content: "f39e";
}

.footer-sns-nav__link--line {
    content: "f3c0";
}

/*  footer-top
--------------------------------------------- */
.footer-top {
    margin-right: auto;
    margin-left: auto;
    padding-top: 120px;
    padding-bottom: 75px;
    max-width: 1280px;
    width: 100%;
    text-align: center;
}

@media screen and (max-width: 750px) {
    .footer-top {
        padding-top: 16.66667vw;
        padding-bottom: 26.66667vw;
    }
}

.footer-top__img {
    margin-bottom: 30px;
    width: 226px;
}

@media screen and (max-width: 750px) {
    .footer-top__img {
        margin-bottom: 2vw;
        width: 40vw;
    }
}

.footer-top__info {
    margin-bottom: 30px;
    color: #fff;
    font-size: 15px;
}

@media screen and (max-width: 750px) {
    .footer-top__info {
        margin-bottom: 5.33333vw;
        font-size: 3.46667vw;
    }
}

.footer-top__info-address {
    margin-right: 10px;
    letter-spacing: 0.1em;
}

@media screen and (max-width: 750px) {
    .footer-top__info-address {
        display: block;
        margin-right: 0;
    }
}

@media screen and (max-width: 750px) {
    .footer-top__info-tel {
        display: block;
    }
}

.footer-top__info-tel--head {
    margin-right: 15px;
}

@media screen and (max-width: 750px) {
    .footer-top__info-tel--head {
        margin-right: 2.66667vw;
    }
}

.footer-top__info-tel a {
    pointer-events: none;
}

@media screen and (max-width: 750px) {
    .footer-top__info-tel a {
        pointer-events: auto;
    }
}

.footer-top__logo {
    width: 155px;
}

@media screen and (max-width: 750px) {
    .footer-top__logo {
        padding-top: 2vw;
        padding-right: 6.66667vw;
        padding-bottom: 2vw;
        padding-left: 4.4vw;
        width: 30vw;
        border: 1px solid rgba(255, 255, 255, 0.3);
    }
}

.footer-top__logo--wedding {
    padding-top: 10px;
    padding-right: 35px;
    padding-bottom: 10px;
    padding-left: 21px;
    background-color: #232e48;
}

@media screen and (max-width: 750px) {
    .footer-top__logo--wedding {
        padding-top: 2vw;
        padding-right: 6.66667vw;
        padding-bottom: 2vw;
        padding-left: 4.4vw;
        border: none;
    }
}

/*  footer-nav
--------------------------------------------- */
.footer-nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    -ms-flex-align: start;
    margin-right: auto;
    margin-left: auto;
    max-width: 1280px;
    width: 100%;
    width: 1130px;

    -webkit-box-align: start;
    align-items: flex-start;
    -webkit-box-pack: justify;
    justify-content: space-between;
}

@media screen and (max-width: 750px) {
    .footer-nav {
        display: none;
    }
}

.footer-nav__list--other {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: start;
    -ms-flex-align: start;

    -webkit-box-align: start;
    align-items: flex-start;
    -webkit-box-pack: start;
    justify-content: flex-start;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.footer-nav__list-item {
    padding-right: 70px;
    padding-bottom: 45px;
    color: #fff;
}

.footer-nav__list-item:nth-of-type(3n) {
    padding-right: 0;
}

.footer-nav__link {
    display: block;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin-bottom: 8px;
    padding-bottom: 8px;
    padding-left: 5px;
    width: 230px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    font-size: 15px;
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;
}

.footer-nav__link:hover {
    opacity: 0.8;
}

.ios .footer-nav__link:hover,
.android .footer-nav__link:hover {
    opacity: 1;
}

.footer-nav__inner-list {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    padding-left: 5px;
}

.footer-nav__inner-list-item {
    margin-bottom: 0.8em;
    font-size: 12px;
}

.footer-nav__inner-link {
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;
}

.footer-nav__inner-link:hover {
    opacity: 0.8;
}

.ios .footer-nav__inner-link:hover,
.android .footer-nav__inner-link:hover {
    opacity: 1;
}

/*  footer-bottom
--------------------------------------------- */
.footer-bottom {
    padding-top: 70px;
    padding-bottom: 55px;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

@media screen and (max-width: 750px) {
    .footer-bottom {
        padding-top: 4vw;
        padding-bottom: 17vw;
        border: none;
    }
}

.footer-bottom--wedding {
    border-top: none;
}

.footer-bottom__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    margin-right: auto;
    margin-left: auto;
    max-width: 940px;
    width: 100%;
    color: #fff;

    -webkit-box-pack: justify;
    justify-content: space-between;
}

@media screen and (max-width: 750px) {
    .footer-bottom__inner {
        display: block;
        text-align: center;
    }
}

@media screen and (max-width: 750px) {
    .footer-bottom__right {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;

        -webkit-box-orient: vertical;
        -webkit-box-direction: reverse;
    }
}

.footer-bottom__sns-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
    -ms-flex-align: center;
    margin-bottom: 40px;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: end;
    justify-content: flex-end;
}

@media screen and (max-width: 750px) {
    .footer-bottom__sns-list {
        -ms-flex-pack: center;
        margin-bottom: 5.33333vw;

        -webkit-box-pack: center;
        justify-content: center;
    }
}

.footer-bottom__sns-list-item--twitter {
    margin-right: 15px;
}

@media screen and (max-width: 750px) {
    .footer-bottom__sns-list-item--twitter {
        margin-right: 6.66667vw;
    }
}

.footer-bottom__sns-list-item a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    -ms-flex-align: center;
    width: 33px;
    height: 33px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.2);
    color: #fff;
    -webkit-transition: 0.5s;
    transition: 0.5s;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: center;
    justify-content: center;
}

@media screen and (max-width: 750px) {
    .footer-bottom__sns-list-item a {
        width: 6.66667vw;
        height: 6.66667vw;
        font-size: 2.66667vw;
    }
}

@media screen and (min-width: 751px) {
    .footer-bottom__sns-list-item a:hover {
        background-color: #ffd25d;
        color: #232e48;
    }
}

.footer-bottom__other-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
    -ms-flex-align: center;

    -webkit-box-align: center;
    align-items: center;
    -webkit-box-pack: end;
    justify-content: flex-end;
}

@media screen and (max-width: 750px) {
    .footer-bottom__other-list {
        -ms-flex-pack: center;
        margin-bottom: 6.66667vw;

        -webkit-box-pack: center;
        justify-content: center;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

.footer-bottom__other-list-item {
    margin-right: 12px;
    font-size: 13px;
    margin-bottom: 0.8em;
}

@media screen and (max-width: 750px) {
    .footer-bottom__other-list-item {
        margin-right: 3.33333vw;
        margin-bottom: 4vw;
        margin-left: 3.33333vw;
        font-size: 3.2vw;
    }
}

.footer-bottom__other-list-item:last-of-type {
    margin-right: 0;
}

@media screen and (max-width: 750px) {
    .footer-bottom__other-list-item:last-of-type {
        margin-right: 0;
        margin-bottom: 0;
        margin-left: 0;
        width: 100%;
    }
}

.footer-bottom__other-link {
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;
}

.footer-bottom__other-link:hover {
    opacity: 0.8;
}

.ios .footer-bottom__other-link:hover,
.android .footer-bottom__other-link:hover {
    opacity: 1;
}

/*  footer-logo
--------------------------------------------- */
.footer-logo {
    margin-bottom: 40px;
    width: 170px;
}

@media screen and (max-width: 750px) {
    .footer-logo {
        margin-right: auto;
        margin-bottom: 6.66667vw;
        margin-left: auto;
        width: 41.33333vw;
    }
}

@media screen and (max-width: 750px) {
    .footer-logo img {
        width: 100%;
    }
}

.footer-logo__link {
    -webkit-transition: opacity 300ms;
    transition: opacity 300ms;
}

.footer-logo__link:hover {
    opacity: 0.8;
}

.ios .footer-logo__link:hover,
.android .footer-logo__link:hover {
    opacity: 1;
}

/*  footer-copyright
--------------------------------------------- */
.footer-copyright {
    color: #fff;
    text-align: center;
    font-size: 13px;
}

@media screen and (max-width: 750px) {
    .footer-copyright {
        font-size: 2.4vw;
    }
}



.lh0 { line-height:0 !important; } .lh1 { line-height:1 !important; } .lh2 { line-height:2 !important; } .lh3 { line-height:3 !important; } .lh4 { line-height:4 !important; }
.lh5 { line-height:5 !important; } .lh6 { line-height:6 !important; } .lh7 { line-height:7 !important; } .lh8 { line-height:8 !important; } .lh9 { line-height:9 !important; }
.lh10 { line-height:10 !important; } .lh11 { line-height:11 !important; } .lh12 { line-height:12 !important; } .lh13 { line-height:13 !important; } .lh14 { line-height:14 !important; }
.lh15 { line-height:15 !important; } .lh16 { line-height:16 !important; } .lh17 { line-height:17 !important; } .lh18 { line-height:18 !important; } .lh19 { line-height:19 !important; }
.lhdef { line-height:1.5 !important; }
@media screen and (max-width: 600px) {
.slh0 { line-height:0 !important; } .slh1 { line-height:1 !important; } .slh2 { line-height:2 !important; } .slh3 { line-height:3 !important; } .slh4 { line-height:4 !important; }
.slh5 { line-height:5 !important; } .slh6 { line-height:6 !important; } .slh7 { line-height:7 !important; } .slh8 { line-height:8 !important; } .slh9 { line-height:9 !important; }
.slh10 { line-height:10 !important; } .slh11 { line-height:11 !important; } .slh12 { line-height:12 !important; } .slh13 { line-height:13 !important; } .slh14 { line-height:14 !important; }
.slh15 { line-height:15 !important; } .slh16 { line-height:16 !important; } .slh17 { line-height:17 !important; } .slh18 { line-height:18 !important; } .slh19 { line-height:19 !important; }
.slhdef { line-height:1.5 !important; }
}

.sss { font-size:40% !important; }
.ss { font-size:60% !important; }
.s,small { font-size:80% !important; }
.l,big { font-size:120% !important; }
.ll { font-size:140% !important; }
.lll { font-size:160% !important; }

.tl { text-align:left !important; } .tr > * { margin-right:auto; margin-left:0; }
.tr { text-align:right !important; } .tr > * { margin-left:auto; margin-right:0; }
.tc { text-align:center !important; } .tc > * { margin-left:auto; margin-right:auto; }
.tc caption { margin-left:auto; margin-right:auto; }

.fl { float:left !important; } .fr { float:right !important; }
.fix:after { content:"."; display:block; height:0; clear:both; visibility:hidden; font-size:0; }
.fix { display:inline-block; } .fix { display:block; }
.clr { clear:both; }

.bold { font-weight: bold; }

/* スマホ非表示 */
.sumaho { display: none !important; }

.contents_inner { padding-top: 30px; padding-right: 4em; padding-bottom: 30px; padding-left: 4em; }
.contents_inner2 { padding-top: 30px; padding-right: 2em; padding-bottom: 30px; padding-left: 2em; }
@media screen and (max-width: 600px) {
.contents_inner { padding-top: 4vw; padding-bottom: 4vw; padding-left: 1em; padding-right: 1em; }
.contents_inner2 { padding-top: 4vw; padding-bottom: 4vw; padding-left: 1em; padding-right: 1em; }
.sumaho { display: inherit !important; }
}