

/****************************************
		0. variable
*****************************************/

:root{
  --size-flex: calc(1vw / 1440 * 100);
  --size-fix: 1px;
}
@media screen and (max-width: 768px) {
  :root{
    --size-flex: calc(1vw / 375 * 100);
    --size-fix: calc(1vw / 375 * 100);
  }
}


/****************************************
		1. General Setting
*****************************************/
html{
  scroll-behavior: smooth;
  scroll-padding: calc(170 * var(--size-flex));
}
body {
  color: #fff;
  background-color: #95867F;
  font-size: calc(16 * var(--size-flex));
  line-height: 1.0;
  letter-spacing: 0.2em;
  font-family: "MFW-PIshiiMinchoStdN-L", 'Noto Serif JP', "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  width: 100%;
  overflow-x: hidden;
}

a {
  outline: none;
  text-decoration: none;
}
a:focus{
  outline-offset: 2px
}
a:focus-visible{
  outline: 2px solid #fff;

}

img {
  max-width: 100%;
  height: auto;
}
svg {
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 768px) {
  html{
  }
  body {
    letter-spacing: 0.1em;
    font-family: "MFW-PIshiiMinchoStdN-R", 'Noto Serif JP', "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  }
  a {
  }

  a:focus-visible{
  }

  img {
  }
  svg {
  }
}


@media screen and (max-width: 768px) {
  .pc{
    display: none!important;
  }
}
@media screen and (min-width: 768px) {
  .sp{
    display: none!important;
  }
}


/*----------------------------------------------------
  common
----------------------------------------------------*/
.subPage{
  padding-top: calc(176 * var(--size-flex));
}
.subPage-white{
  padding-top: calc(176 * var(--size-flex));
  background-color: rgba(255,255,255,.9);
  color: #95867F;
}

@media screen and (max-width: 768px) {
  .subPage{
    padding-top: calc(120 * var(--size-flex));
  }
  .subPage-white{
    padding-top: calc(120 * var(--size-flex));
  }
}

.common_page{
  padding: calc(100 * var(--size-flex));
}
.common_page_inner{
  width: calc(1208 * var(--size-flex));
}
.common_page_content{
  margin: 0 auto 0;
  font-size: calc(14 * var(--size-flex));
  font-weight: 400;
  line-height: 2;
}
.common_page_content p,
.common_page_content figure{
  margin-bottom: 2em;
}
.common_page_content a{
  text-decoration: underline;
}

@media screen and (max-width: 768px) {
  .common_page{
    padding: calc(50 * var(--size-flex)) 0;
  }
  .common_page_inner{
    width: calc(320 * var(--size-flex));
    margin: auto;
  }
  .common_page_content{
    margin: 0 auto 0;
    font-size: calc(14 * var(--size-flex));
    font-weight: 400;
    line-height: 2;
  }
  .common_page_content p,
  .common_page_content figure{
    margin-bottom: 2em;
  }
  .common_page_content a{
    text-decoration: underline;
  }
}

.breadcrumb {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: calc(1208 * var(--size-flex));
  max-width: 100%;
  margin: 0 auto calc(22 * var(--size-flex));
  white-space: nowrap;
  overflow: hidden;
}

.breadcrumb_block {
  position: relative;
  display: -webkit-box;
  justify-content: flex-start;
  align-items: center;
  margin-right: calc(12 * var(--size-flex));
  font-size: calc(12 * var(--size-flex));
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 1;
  flex: 0 0 auto;
}
.breadcrumb_block:last-child {
  width: 30em;
}

.breadcrumb_block:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: calc(12 * var(--size-flex));
  height: calc(12 * var(--size-flex));
  margin-left: calc(7 * var(--size-flex));
  background-image: url(../../assets/img/common/icon_arrow2_w.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.subPage-white .breadcrumb_block:not(:last-child)::after{
  background-image: url(../../assets/img/common/icon_arrow2.svg);
}

@media screen and (max-width: 768px) {
  .breadcrumb {
    width: calc(315 * var(--size-flex));
    max-width: 100%;
    margin: 0 auto calc(22 * var(--size-flex));
  }

  .breadcrumb_block {
    margin-right: calc(6 * var(--size-flex));
    font-size: calc(8 * var(--size-flex));
  }
  .breadcrumb_block:last-child {
    width: 10em;
  }

  .breadcrumb_block:not(:last-child)::after {
    width: calc(6 * var(--size-flex));
    height: calc(6 * var(--size-flex));
    margin-left: calc(6 * var(--size-flex));
  }
  .subPage-white .breadcrumb_block:not(:last-child)::after{
  }
}

/* page title */
.pageTitle{
  width: calc(997 * var(--size-flex));
  margin: auto;
  text-align: center;
}
.pageTitle_main{
  font-family: "Cormorant Garamond", serif;
  font-size: calc(60 * var(--size-flex));
  font-weight: 700;
  line-height: 1;
}
.pageTitle_caption{
  margin-top: calc(22 * var(--size-flex));
  font-size: calc(16 * var(--size-flex));
  font-weight: 400;
  line-height: 1.5;
}

@media screen and (max-width: 768px) {
  .pageTitle{
    width: calc(315 * var(--size-flex));
  }
  .pageTitle_main{
    font-size: calc(30 * var(--size-flex));
  }
  .pageTitle_caption{
    margin-top: calc(30 * var(--size-flex));
    font-size: calc(12 * var(--size-flex));
  }
}

/* contact */
.toContact{
  position: relative;
  padding: calc(147 * var(--size-flex)) 0;
  background-color: rgba(255, 255, 255, .8);
  font-size: calc(27 * var(--size-flex));
  font-weight: 400;
  line-height: 1.5;
}
.toContact::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: #95867F;
  z-index: -1;
}
.toContact_btn{
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  width: calc(586 * var(--size-flex));
  box-sizing: border-box;
  border: 1px solid #95867F;
  color: #95867F;
  padding: calc(32 * var(--size-flex));
  font-size: calc(27 * var(--size-flex));
  font-weight: 400;
  line-height: 1.5;
  transition: background-color .1s, color .1s;
}
.toContact_btn:hover{
  background-color: #95867F;
  color: #fff;
}

@media screen and (max-width: 768px) {
  .toContact{
    padding: calc(73 * var(--size-flex)) 0;
  }
  .toContact_btn{
    width: calc(293 * var(--size-flex));
    padding: calc(16 * var(--size-flex));
    font-size: calc(13 * var(--size-flex));
  }
  .toContact_btn:hover{
  }
}


/*----------------------------------------------------
  HEADER
----------------------------------------------------*/
.header {
  position: fixed;
  top: 0;
  display: block;
  box-sizing: border-box;
  background-color: rgba(149, 134, 127, .9);
  backdrop-filter: blur(3px);
  padding: calc(25 * var(--size-flex)) calc(30 * var(--size-flex));
  width: 100%;
  transition: transform .6s ease-out;
  z-index: 50;
}
.header.is-hidden{
  transform: translateY(-100%);
}
.header_logo {
  display: block;
  width: calc(146 * var(--size-flex));
  margin-right: calc(67 * var(--size-flex));
  flex: 0 0 auto;
}
.header_logo svg{
  width: 100%;
}
.header_nav_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
.header_nav_main{
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

.header_nav_button{
  display: none;
}

.gnav_menu_list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  font-family: "Cormorant Garamond", serif;
}

.gnav_menu_list .menu-item:not(:first-of-type) {
  margin-left: calc(50 * var(--size-flex));
}

.gnav_menu_list a{
  position: relative;
  display: inline-block;
}
.gnav_menu_list a::after{
  content: "";
  position: absolute;
  top: calc(100% + .25em);
  left: 0;
  display: block;
  width: 100%;
  height: 1px;
  background-color: #fff;
  transform: scaleX(0);
  transition: transform .3s;
  transform-origin: 100% 0%;
}
.gnav_menu_list a:hover::after{
  transform: scaleX(1);
  transform-origin: 0% 0%;
}
.gnav_menu_list span{
  display: block;
  margin-top: calc(2 * var(--size-flex));
  font-size: 0.6em;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
}

.gnav_menu_list .menu-item-emphasis:not(:first-of-type){
  margin-left: auto;
}
.gnav_menu_list .menu-item-emphasis + .menu-item-emphasis {
  margin-left: calc(30 * var(--size-flex));
}
.gnav_menu_list .menu-item-emphasis a{
  display: flex;
  justify-content: center;
  align-items: center;
  padding: calc(4 * var(--size-flex)) calc(14 * var(--size-flex));
  height: calc(30 * var(--size-flex));
  font-size: calc(14 * var(--size-flex));
  line-height: 0;
  font-family: "MFW-PIshiiMinchoStdN-L", 'Noto Serif JP', "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  border: 1px solid #fff;
  border-radius: calc(10 * var(--size-flex));
  transition: background-color .3s, color .3s;
}
.gnav_menu_list .menu-item-emphasis a::after{
  content: none;
}
.gnav_menu_list .menu-item-emphasis a:hover {
  background-color: #fff;
  color: #95867F;
}


.header_nav_external {
  display: flex;
  align-items: center;
  margin-left: calc(40 * var(--size-flex));
}

.header_nav_external_link {
  display: block;
  width: calc(25 * var(--size-flex));
}
.header_nav_external_link svg{
  width: 100%;
}
.header_nav_external_link:not(:first-child){
  margin-left: calc(33 * var(--size-flex));
}

.header_nav_external_link-wide {
  display: block;
  margin-left: calc(33 * var(--size-flex));
  width: calc(70 * var(--size-flex));
}
.header_nav_external_link-wide svg{
  width: 100%;
}

@media screen and (max-width: 768px) {
  .header {
    padding: calc(20 * var(--size-flex)) calc(15 * var(--size-flex)) calc(20 * var(--size-flex)) calc(20 * var(--size-flex));
  }
  .header.is-hidden{
    transform: translateY(-100%);
  }
  .header.is-hidden:has(.header_nav_button.is-open){
    transform: translateY(0);
  }
  .header_logo {
    position: relative;
    display: block;
    width: calc(131 * var(--size-flex));
    margin-right: calc(67 * var(--size-flex));
    z-index: 205;
  }
  .header:has(.header_nav_button.is-open) .header_logo path{
    fill: #95867F;
  }
  .header_nav_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
  }
  .header_nav_main {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    justify-content: center;
    flex-direction: column;
    color: #95867F;
    background-color: #95867F;
    z-index: 200;
    opacity: 0;
    transition: display .3s allow-discrete, opacity .3s allow-discrete;
  }
  .header:has(.header_nav_button.is-open) .header_nav_main{
    display: flex;
    opacity: 1;

    @starting-style {
      opacity: 0;
    }
  }
  .header_nav_main::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, .8);
    z-index: -1;
  }

  .header_nav_button{
    position: relative;
    display: block;
    width: calc(28 * var(--size-flex));
    height: calc(28 * var(--size-flex));
    z-index: 205;
  }
  .header_nav_button span{
    position: absolute;
    display: block;
    margin: auto;
    width: calc(21 * var(--size-flex));
    height: 2px;
    border-radius: calc(1px * infinity);
    background-color: #fff;
    transition: transform .3s ;
  }
  .header_nav_button span:nth-child(1){
    top: calc(7 * var(--size-flex));
    right: 0;
    left: 0;
  }
  .header_nav_button span:nth-child(2){
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
  }
  .header_nav_button span:nth-child(3){
    right: 0;
    bottom: calc(7 * var(--size-flex));
    left: 0;
  }
  .header_nav_button.is-open span{
    background-color: #95867F;
  }
  .header_nav_button.is-open span:nth-child(1){
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    transform: rotate(45deg);
  }
  .header_nav_button.is-open span:nth-child(2){
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 0;
  }
  .header_nav_button.is-open span:nth-child(3){
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    transform: rotate(-45deg);
  }


  .gnav_menu_list {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: column;
    width: 100%;
    font-family: "Cormorant Garamond", serif;
  }

  .gnav_menu_list .menu-item:not(:first-of-type) {
    margin-top: calc(40 * var(--size-flex));
    margin-left: unset;
  }

  .gnav_menu_list a{
    position: relative;
    display: inline-block;
  }
  .gnav_menu_list a::after{
    content: "";
    display: none;
  }
  .gnav_menu_list a:hover::after{
  }
  .gnav_menu_list span{
    display: block;
    margin-top: calc(2 * var(--size-flex));
    font-size: 0.6em;
    font-weight: 400;
    line-height: 1.5;
    text-align: center;
  }

  .gnav_menu_list .menu-item-emphasis:not(:first-of-type){
    margin-top: calc(40 * var(--size-flex));
    margin-left: unset;
  }
  .gnav_menu_list .menu-item-emphasis + .menu-item-emphasis {
    margin-top: calc(20 * var(--size-flex));
    margin-left: unset;
  }
  .gnav_menu_list .menu-item-emphasis a{
    padding: calc(4 * var(--size-flex)) calc(14 * var(--size-flex));
    height: calc(30 * var(--size-flex));
    font-size: calc(14 * var(--size-flex));
    border: 1px solid #95867F;
    border-radius: calc(10 * var(--size-flex));
    transition: background-color .3s, color .3s;
  }
  .gnav_menu_list .menu-item-emphasis a::after{
    content: none;
  }
  .gnav_menu_list .menu-item-emphasis a:hover {
    background-color: #fff;
    color: #95867F;
  }


  .header_nav_external {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: calc(62 * var(--size-flex));
    margin-left: unset;
  }

  .header_nav_external_link {
    display: block;
    width: calc(25 * var(--size-flex));
    margin: calc(12 * var(--size-flex));
  }
  .header_nav_external_link:not(:first-child){
    margin-left: unset;
  }
  .header_nav_external_link path{
    fill: #95867F;
  }

  .header_nav_external_link-wide {
    display: block;
    margin-left: unset;
    margin: calc(12 * var(--size-flex));
    width: calc(70 * var(--size-flex));
  }
  .header_nav_external_link-wide path{
    fill: #95867F;
  }
}

/*----------------------------------------------------
  FOOTER
----------------------------------------------------*/

.footer {
  padding: calc(175 * var(--size-flex)) 0 calc(60 * var(--size-flex));
  background-color: #95867F;
}

.footer_inner {
  width: calc(1208 * var(--size-flex));
  margin: 0 auto;
}
.footer_logo {
  width: calc(222 * var(--size-flex));
  margin-bottom: calc(60 * var(--size-flex));
}
.footer_logo img{
  width: 100%;
}

.footer_nav {}

.footer_menu {
  font-family: "Cormorant Garamond", serif;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}
.footer_menu .menu-item{
  margin-right: calc(90 * var(--size-flex));
  flex: 0 0 auto;
}
.footer_menu .menu-item:has(){

}
.footer_menu .menu-item > a{
  display: block;
  font-size: calc(16 * var(--size-flex));
  line-height: 1.5;
  font-weight: 700;
  font-family: 'Cormorant Garamond', serif;
}

.footer_menu .sub-menu{
  margin-top: calc(24 * var(--size-flex));
}
.footer_menu .sub-menu > .menu-item{
  margin-right: 0;
}
.footer_menu .sub-menu > .menu-item + .menu-item{
  margin-top: calc(10 * var(--size-flex));
}
.footer_menu .sub-menu > .menu-item > a{
  display: block;
  font-size: calc(14 * var(--size-flex));
  line-height: 1.5;
  font-weight: 400;
  padding-left: 1em;
  text-indent: -1em;
}
.footer_menu .sub-menu > .menu-item > a::before{
  content: "・";
  display: inline;
  font-size: 1em;
}


.footer_bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: calc(65 * var(--size-flex));
}

.footer_copyright {
  font-size: calc(12 * var(--size-flex));
  font-weight: 700;
  line-height: 1;
}

.footer_external {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.footer_external_link {
  display: block;
  margin-left: calc(32 * var(--size-flex));
  width: calc(20 * var(--size-flex));
}
.footer_external_link img{
  width: 100%;
}
.footer_external_link-wide {
  margin-left: calc(32 * var(--size-flex));
  width: calc(70 * var(--size-flex));
}
.footer_external_link-wide img{
  width: 100%;
}

@media screen and (max-width: 768px) {
  .footer {
    padding: calc(50 * var(--size-flex)) 0 calc(17 * var(--size-flex));
  }

  .footer_inner {
    width: calc(315 * var(--size-flex));
    margin: 0 auto;
  }
  .footer_logo {
    width: calc(111 * var(--size-flex));
    margin-bottom: calc(30 * var(--size-flex));
  }

  .footer_nav {}

  .footer_menu {
    font-family: "Cormorant Garamond", serif;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .footer_menu .menu-item{
    margin-right: calc(30 * var(--size-flex));
  }
  .footer_menu > .menu-item{
    margin-bottom: calc(50 * var(--size-flex));
  }
  .footer_menu .menu-item:has(){

  }
  .footer_menu .menu-item > a{
    font-size: calc(8 * var(--size-flex));
  }

  .footer_menu .sub-menu{
    margin-top: calc(12 * var(--size-flex));
  }
  .footer_menu .sub-menu > .menu-item{
    margin-right: 0;
  }
  .footer_menu .sub-menu > .menu-item + .menu-item{
    margin-top: calc(10 * var(--size-flex));
  }
  .footer_menu .sub-menu > .menu-item > a{
    font-size: calc(7 * var(--size-flex));
  }
  .footer_menu .sub-menu > .menu-item > a::before{
  }


  .footer_bottom {
    margin-top: unset;
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  .footer_copyright {
    margin-top: calc(40 * var(--size-flex));
    font-size: calc(10 * var(--size-flex));
    font-weight: 700;
    line-height: 1;
  }

  .footer_external {
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }
  .footer_external_link {
    display: block;
    margin-left: unset;
    margin-right: calc(16 * var(--size-flex));
    width: calc(12 * var(--size-flex));
  }
  .footer_external_link-wide {
    margin-left: unset;
    margin-right: calc(16 * var(--size-flex));
    width: calc(35 * var(--size-flex));
  }
}





/*----------------------------------------------------
  animation
----------------------------------------------------*/
.animation-fadeIn {
  display: block;
  opacity: .1;
  filter: blur(.05em);
  transition: opacity 1.2s, filter 1.2s;
  transition-delay: 0s;
}
.animation-fadeIn.is-view {
  opacity: 1;
  filter: blur(0px);
  transition-delay: .1s;
}

.animation-slideIn {
  display: block;
  opacity: .1;
  transform: translateX(calc(50 * var(--size-flex)));
  transition: opacity 1.2s, transform 1.2s;
  transition-delay: 0s;
}
.animation-slideIn.is-view {
  opacity: 1;
  transform: translateX(0);
  transition-delay: .1s;
}



/*----------------------------------------------------
  editor
----------------------------------------------------*/
.aligncenter{
	display: block;
	margin-left: auto;
	margin-right: auto;
}
.alignright{
	float: right;
	margin-left: 1.5em;
}
.alignleft{
	float: left;
	margin-right: 1.5em;
}
@media (max-width: 480px){
	.alignright{
		float: none;
		margin-left: 0;
	}
	.alignleft{
		float: none;
		margin-right: 0;
	}
}