@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Cardo:wght@400;700&family=Jost:ital,wght@0,100..900;1,100..900&family=Zen+Kaku+Gothic+Antique:wght@300;400;500;700;900&family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap");
/* ======================================
   Top Page
======================================== */
.top_title {
  width: 100vw;
  height: 100vh;
  position: relative; }
  .top_title .title_img {
    display: block;
    width: 100vw;
    height: 100vh;
    aspect-ratio: 2/1;
    object-fit: cover;
    object-position: center top;
    position: fixed;
    z-index: 0; }
    .top_title .title_img.hide {
      display: none; }

.plus {
  cursor: pointer;
  display: inline-block !important;
  padding: 0 0 0 1.5em !important;
  position: relative;
  text-align: left;
  transition: 0.5s;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.2rem; }
  .plus::before, .plus::after {
    content: "";
    width: 1em;
    height: 1px;
    background-color: #B6BECE;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto 0;
    transition: 0.5s; }
  .plus::after {
    transform: rotate(90deg); }
  .plus:hover::after {
    transform: rotate(360deg); }
  .plus.active::after {
    display: none; }
  .plus.bg {
    display: inline-block !important;
    background-color: #7F899D;
    color: #FFF;
    font-size: 1.1rem;
    padding: 1.5rem 2.5rem 1.5rem 3.5rem !important;
    max-width: 100%; }
    .plus.bg::before, .plus.bg::after {
      width: 0.8em;
      left: 1.5rem; }

.label {
  background-color: #F8F8F8;
  margin: 4rem 0;
  padding: 0 1rem 2rem 1rem; }
  @media screen and (min-width: 780px) {
    .label {
      padding: 0 3rem 3rem 3rem; } }
  .label h2 {
    display: inline-block !important;
    background-color: #3E4148 !important;
    color: #FFF !important;
    font-family: "Zen Old Mincho", serif !important;
    font-size: 1.2rem !important;
    letter-spacing: 0 !important;
    margin: 0 !important;
    padding: 2rem 1rem 0.5rem 1rem !important; }
  .label h3 {
    font-size: 1.2rem !important;
    letter-spacing: 0 !important;
    line-height: 1.6 !important;
    margin: 2rem 0 !important; }
  .label p {
    font-size: 0.9rem !important;
    padding: 0 !important;
    margin: 0 !important; }

.pulldown {
  margin: 0 auto 50px auto;
  width: 100%;
  position: relative; }
  .pulldown .plus {
    display: block !important;
    width: 100%;
    background-color: #F8F8F8;
    border: 1px solid #E0E0E0;
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-size: 1rem;
    padding: 10px 20px !important;
    position: relative;
    z-index: 999; }
    .pulldown .plus::before, .pulldown .plus::after {
      background-color: #585F6C;
      width: 1.2em;
      right: 10px;
      left: auto; }
  .pulldown div.check {
    padding: 0 20px;
    border: 1px solid #E0E0E0;
    margin-top: -3px;
    width: 100%;
    height: 0;
    overflow: hidden;
    transition: 0.5s; }
    .pulldown div.check.active {
      padding: 20px;
      height: auto; }
  .pulldown label input {
    display: none; }
  .pulldown label span {
    display: inline-block;
    color: #333;
    font-size: 0.8rem;
    border: 1px solid #CDCDCD;
    background-color: #FFF;
    border-radius: 20px;
    padding: 5px 20px;
    margin: 5px 3px;
    transition: 0.5s; }
  .pulldown label input:checked + span,
  .pulldown label input:hover + span {
    color: #FFF;
    background: #7BCCF1;
    border: 1px solid #7BCCF1; }

#top_concept {
  position: relative;
  z-index: 9999;
  padding: 20% 0; }
  #top_concept img.cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    z-index: 0; }
  #top_concept .stage {
    width: 100%;
    background-color: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(30px);
    padding: 10% 5%; }
    #top_concept .stage .vertical {
      writing-mode: horizontal-tb;
      margin: auto; }
      @media screen and (min-width: 780px) {
        #top_concept .stage .vertical {
          writing-mode: vertical-rl; } }
    #top_concept .stage .center {
      text-align: center; }
    #top_concept .stage h2 {
      text-align: center;
      font-size: 1.2rem;
      font-family: "Cardo", "Zen Old Mincho", serif; }
    #top_concept .stage h3 {
      font-family: "Zen Old Mincho", serif;
      font-size: 1.2rem;
      margin: 50px 0;
      text-align: center; }
    #top_concept .stage .lead {
      font-family: "Zen Old Mincho", serif;
      font-size: 0.9rem;
      text-align: center; }
      @media screen and (min-width: 780px) {
        #top_concept .stage .lead {
          font-size: 0.95rem;
          text-align: left; } }
      #top_concept .stage .lead p {
        line-height: 2.6 !important; }

#top_plan {
  padding: 8rem 0; }
  #top_plan h2 {
    text-align: center;
    margin-bottom: 3rem; }
    #top_plan h2 p {
      display: inline-block;
      text-align: left;
      color: #3E4148;
      font-family: "Cardo", "Zen Old Mincho", serif;
      font-weight: 400;
      line-height: 1.2;
      font-size: 1.7rem;
      letter-spacing: 4px; }
    #top_plan h2 span {
      display: inline-block;
      text-align: left;
      color: #585F6C; }
  #top_plan .plan_wrap {
    margin: 0 auto; }
    #top_plan .plan_wrap + .plan_wrap {
      margin-top: 8rem; }

#top_fair_plan ul {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 2rem;
  margin: 4rem 0; }
  @media screen and (min-width: 960px) {
    #top_fair_plan ul {
      grid-template-columns: 1fr 1fr;
      grid-gap: 4rem;
      margin: 6rem 0; } }
  #top_fair_plan ul li {
    aspect-ratio: 2 / 1; }
    #top_fair_plan ul li a {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: flex-end;
      overflow: hidden; }
      #top_fair_plan ul li a img {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
        z-index: 0;
        object-fit: cover;
        object-position: center;
        transition: 0.5s; }
      #top_fair_plan ul li a div {
        background-color: rgba(255, 255, 255, 0.7);
        padding: 1rem 2rem;
        position: relative;
        z-index: 99; }
        #top_fair_plan ul li a div p {
          display: inline-block;
          text-align: left;
          color: #3E4148;
          font-family: "Cardo", "Zen Old Mincho", serif;
          font-weight: 400;
          line-height: 1.2;
          font-size: 1.7rem; }
        #top_fair_plan ul li a div span {
          display: inline-block;
          text-align: left;
          color: #585F6C; }
      #top_fair_plan ul li a:hover img {
        transform: scale(1.1); }

#top_category .contents {
  padding: 3rem 0 8rem 0; }
#top_category h2 {
  color: #585F6C;
  font-family: "Cardo", "Zen Old Mincho", serif;
  letter-spacing: 4px;
  font-weight: 400;
  font-size: 2.5rem;
  margin-bottom: 1rem; }
  @media screen and (min-width: 780px) {
    #top_category h2 {
      font-size: 3rem;
      margin-bottom: 2rem; } }
#top_category .link {
  margin: 0; }
  #top_category .link li + li {
    margin-top: 0.3rem !important; }
  #top_category .link a.plus {
    font-size: 1rem; }
    #top_category .link a.plus::before, #top_category .link a.plus::after {
      width: 0.9em; }
#top_category p.txt {
  font-size: 1rem; }

#top_banner .contents {
  padding: 6rem 0; }
#top_banner .banner li.col-1 {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 1.5rem; }
#top_banner .banner li.col-2 {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 1.5rem; }
  @media screen and (min-width: 780px) {
    #top_banner .banner li.col-2 {
      grid-template-columns: 1fr 1fr; } }
#top_banner .banner li + li {
  margin-top: 1.5rem; }
#top_banner .banner li a {
  display: block;
  border: 10px solid #FFF;
  position: relative; }
  #top_banner .banner li a h2 {
    position: absolute;
    z-index: 9999;
    margin: auto;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center; }
  #top_banner .banner li a.stay {
    height: 16rem; }
    #top_banner .banner li a.stay h2 p {
      display: block;
      width: 260px;
      max-width: 90%;
      padding: 2rem;
      margin: auto auto 2rem auto;
      background-color: rgba(0, 0, 0, 0.7); }
      #top_banner .banner li a.stay h2 p::before {
        content: '';
        border: 1px solid #FFF;
        width: 100%;
        height: 100%;
        position: absolute;
        top: -5px;
        right: 5;
        bottom: 5;
        left: -5px; }
    #top_banner .banner li a.stay h2 img {
      width: 100%; }
    @media screen and (min-width: 780px) {
      #top_banner .banner li a.stay {
        height: 16rem; }
        #top_banner .banner li a.stay h2 p {
          margin: auto 3rem auto auto; } }
  #top_banner .banner li a.engage {
    height: 16rem;
    color: #FFF;
    letter-spacing: 5px;
    font-size: 1.5rem;
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-weight: 500; }
    #top_banner .banner li a.engage h2 p {
      line-height: 1.6;
      text-align: right;
      margin: auto 1rem auto auto;
      background-color: rgba(0, 0, 0, 0.5);
      padding: 1em; }
    @media screen and (min-width: 780px) {
      #top_banner .banner li a.engage {
        height: 13rem;
        font-size: 1.3rem; } }
  #top_banner .banner li a.report {
    height: 16rem;
    letter-spacing: 2px;
    font-size: 2rem;
    font-family: "Jost", "Zen Kaku Gothic Antique", sans-serif;
    font-weight: 400; }
    #top_banner .banner li a.report h2 p {
      line-height: 1.2;
      text-align: left;
      margin: auto auto auto 2rem; }
    @media screen and (min-width: 780px) {
      #top_banner .banner li a.report {
        height: 13rem;
        font-size: 1.8rem; } }
#top_banner .banner li img.ph {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center; }

#top_news {
  padding: 8rem 0 0 0; }
  #top_news h2 {
    text-align: center; }
    #top_news h2 p {
      display: inline-block;
      text-align: left;
      color: #585F6C;
      font-family: "Cardo", "Zen Old Mincho", serif;
      font-weight: 400;
      line-height: 1.2;
      font-size: 1.6rem;
      letter-spacing: 4px; }
  #top_news .news {
    margin-top: 3rem; }
    #top_news .news dl {
      border-bottom: 1px solid #E0E0E0;
      display: grid;
      grid-template-columns: 1fr;
      align-items: center;
      grid-gap: 0.5rem;
      padding: 1rem;
      margin: 0; }
      @media screen and (min-width: 780px) {
        #top_news .news dl {
          grid-template-columns: 6rem 7rem auto; } }
      #top_news .news dl dt {
        font-family: "Cardo", "Zen Old Mincho", serif;
        color: #C9A35A; }
    #top_news .news a dl {
      transition: 0.5s; }
      #top_news .news a dl dd span {
        display: block;
        width: 6rem;
        font-family: "Zen Old Mincho", serif;
        border: 1px solid #C9A35A;
        color: #C9A35A;
        background-color: #FFF;
        text-align: center;
        padding: 0;
        line-height: 1.4;
        font-size: 0.9rem; }
    #top_news .news a:hover dl {
      background-color: #FCFAF5; }

.fair_wrap {
  overflow: hidden;
  position: relative !important; }
  .fair_wrap .recommend-slider {
    width: 94%;
    z-index: 1;
    margin: auto; }
    @media screen and (min-width: 1280px) {
      .fair_wrap .recommend-slider {
        width: 100%; } }
    .fair_wrap .recommend-slider .swiper-slide.swiper-slide-next {
      transition: 0.5s; }
  .fair_wrap .swiper-slide {
    display: grid;
    grid-template-columns: 1fr; }
    @media screen and (min-width: 1280px) {
      .fair_wrap .swiper-slide {
        grid-template-columns: 1fr 1fr; } }
    .fair_wrap .swiper-slide .ph {
      padding: 20px; }
  .fair_wrap .swiper-button-next,
  .fair_wrap .swiper-button-prev {
    cursor: pointer;
    display: block;
    width: 40px;
    height: 60px;
    background-color: rgba(255, 255, 255, 0.8);
    position: absolute;
    top: 0;
    bottom: 40%;
    margin: auto;
    transition: 0.5s;
    z-index: 9999; }
    @media screen and (min-width: 1280px) {
      .fair_wrap .swiper-button-next,
      .fair_wrap .swiper-button-prev {
        top: 0;
        bottom: 0; } }
    .fair_wrap .swiper-button-next::after,
    .fair_wrap .swiper-button-prev::after {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      margin: auto;
      width: 20px;
      height: 30px;
      mask-image: url("../images/angle.svg");
      mask-repeat: no-repeat;
      mask-position: center;
      mask-size: auto;
      background-color: #000; }
  .fair_wrap .swiper-button-next {
    right: 0; }
    .fair_wrap .swiper-button-next::after {
      right: 0;
      left: 0;
      transform: rotate(180deg); }
  .fair_wrap .swiper-button-prev {
    left: 0; }
    .fair_wrap .swiper-button-prev::after {
      right: 0;
      left: 0; }

.plan_wrap {
  overflow: hidden;
  position: relative !important; }
  .plan_wrap .plan-ph-slider {
    width: 100%;
    margin: auto; }
    @media screen and (min-width: 1280px) {
      .plan_wrap .plan-ph-slider {
        width: 90%; } }
    .plan_wrap .plan-ph-slider img {
      aspect-ratio: 4/3;
      object-fit: cover;
      object-position: center; }
      @media screen and (min-width: 1280px) {
        .plan_wrap .plan-ph-slider img {
          aspect-ratio: 16/9; } }
  .plan_wrap .swiper-button-next,
  .plan_wrap .swiper-button-prev {
    cursor: pointer;
    display: block;
    width: 40px;
    height: 60px;
    background-color: rgba(255, 255, 255, 0.8);
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: 0.5s;
    z-index: 9999; }
    @media screen and (min-width: 1280px) {
      .plan_wrap .swiper-button-next,
      .plan_wrap .swiper-button-prev {
        top: 0;
        bottom: 0; } }
    .plan_wrap .swiper-button-next::after,
    .plan_wrap .swiper-button-prev::after {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      margin: auto;
      width: 20px;
      height: 30px;
      mask-image: url("../images/angle.svg");
      mask-repeat: no-repeat;
      mask-position: center;
      mask-size: auto;
      background-color: #000; }
  .plan_wrap .swiper-button-next {
    right: 0; }
    .plan_wrap .swiper-button-next::after {
      right: 0;
      left: 0;
      transform: rotate(180deg); }
  .plan_wrap .swiper-button-prev {
    left: 0; }
    .plan_wrap .swiper-button-prev::after {
      right: 0;
      left: 0; }

/*.swiper-button-next,
.swiper-button-prev {
cursor: pointer;
display: block;
width: 40px;
height: 80px;
background-color: rgba(62,65,72,0.5);
position: absolute;
top: 32%;
margin: 0;
transition: 0.5s;
z-index: 9999;
&::after {
content: "";
position: absolute;
top: 0;
bottom: 0;
margin: auto;
width: 40px;
height: 80px;
background-image: url("../images/angle.svg");
background-repeat: no-repeat;
background-position: center;
}
@media screen and (min-width: $large-screen) {//Tablet
display: none;
}
}
.swiper-button-next {
  right: 0;
  &::after {
  right: 0;
  transform: rotate(180deg);
  }
}
.swiper-button-prev {
  left: 0;
  &::after {
  left: 0;
  }
}*/
/* ======================================
   Under Page
======================================== */
.title {
  height: auto;
  position: relative; }
  .title.typeA {
    margin-top: 8rem;
    margin-bottom: 3rem;
    border-left: 2px solid #585F6C;
    padding-left: 1rem; }
    .title.typeA h2 {
      margin-bottom: 2rem; }
      .title.typeA h2 p {
        display: block;
        text-align: left;
        color: #3E4148;
        font-family: "Cardo", "Zen Old Mincho", serif;
        font-weight: 400;
        line-height: 1.2;
        font-size: 2.8rem;
        letter-spacing: 3px; }
      .title.typeA h2 span {
        display: block;
        font-family: "Zen Old Mincho", serif;
        font-size: 1.2rem;
        color: #585F6C;
        margin-top: 0.5rem; }
    .title.typeA h3 {
      margin-bottom: 1.5rem; }
      .title.typeA h3 p {
        display: inline-block;
        text-align: left;
        color: #3E4148;
        font-family: "Cardo", "Zen Old Mincho", serif;
        font-weight: 400;
        line-height: 1.2;
        font-size: 1rem;
        letter-spacing: 2px; }
      .title.typeA h3 span {
        display: inline-block;
        font-family: "Zen Old Mincho", serif;
        font-size: 1.3rem;
        color: #585F6C;
        border-left: 1px solid #E0E0E0;
        padding-left: 1em;
        margin-left: 1rem; }
    .title.typeA h4 {
      font-family: "Zen Old Mincho", serif;
      font-size: 1.8rem;
      color: #585F6C; }
    .title.typeA p {
      font-family: "Zen Kaku Gothic Antique", sans-serif; }
    @media screen and (min-width: 780px) {
      .title.typeA {
        margin-top: 12rem;
        margin-bottom: 6rem;
        padding-left: 2rem; }
        .title.typeA h2 p {
          font-size: 3.5rem;
          letter-spacing: 6px; } }
  .title.typeB {
    margin-top: 70px;
    margin-bottom: 4rem;
    position: relative;
    padding: 1rem; }
    .title.typeB .main_visual {
      position: relative;
      z-index: 0;
      padding: 0; }
      .title.typeB .main_visual::before {
        content: '';
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.2);
        position: absolute;
        z-index: 1;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto; }
      .title.typeB .main_visual img {
        aspect-ratio: 5 / 6; }
        @media screen and (min-width: 780px) {
          .title.typeB .main_visual img {
            aspect-ratio: 2.35 / 1; } }
      .title.typeB .main_visual.jinzen img {
        object-position: 60% center; }
        @media screen and (min-width: 780px) {
          .title.typeB .main_visual.jinzen img {
            object-position: center; } }
      .title.typeB .main_visual.report img {
        object-position: right center; }
        @media screen and (min-width: 780px) {
          .title.typeB .main_visual.report img {
            object-position: center; } }
    .title.typeB .contents {
      position: absolute;
      z-index: 99;
      bottom: 0;
      left: 0;
      right: 0;
      margin: auto; }
    .title.typeB h2 {
      border-left: 2px solid #FFF;
      padding-left: 1rem;
      padding-bottom: 6rem;
      margin-left: 1rem;
      color: #FFF; }
      .title.typeB h2 p.name {
        display: block;
        text-align: left;
        font-family: "Cardo", "Zen Old Mincho", serif;
        font-weight: 400 !important;
        font-size: 2.4rem;
        letter-spacing: 3px;
        line-height: 1.4; }
        .title.typeB h2 p.name em {
          letter-spacing: -5px; }
        .title.typeB h2 p.name span {
          display: block;
          font-family: "Zen Old Mincho", serif;
          margin-bottom: 1rem;
          font-weight: 200;
          font-size: 1rem;
          letter-spacing: 3px; }
      .title.typeB h2 p.copy {
        display: block;
        font-family: "Zen Old Mincho", serif;
        font-weight: 200;
        font-size: 1.2rem;
        padding-top: 0.5rem; }
    @media screen and (min-width: 780px) {
      .title.typeB h2 {
        padding-left: 2rem;
        margin-left: 0; }
        .title.typeB h2 p.name {
          font-size: 3rem; }
          .title.typeB h2 p.name em {
            letter-spacing: 0; }
        .title.typeB h2 p.copy {
          font-size: 1.4rem; } }
  .title.typeC {
    margin-top: 8rem;
    margin-bottom: 3rem;
    padding-left: 1rem; }
    .title.typeC h2 {
      margin-bottom: 2rem;
      text-align: center; }
      .title.typeC h2 p {
        display: block;
        text-align: center;
        color: #3E4148;
        font-family: "Cardo", "Zen Old Mincho", serif;
        font-weight: 400;
        line-height: 1.2;
        font-size: 2.4rem !important;
        letter-spacing: 3px; }
      .title.typeC h2 span {
        display: inline-block;
        font-family: "Zen Old Mincho", serif;
        font-size: 1.2rem;
        color: #585F6C;
        margin-top: 0.5rem;
        border-bottom: 1px solid #585F6C;
        padding-bottom: 1rem; }
    .title.typeC h3 {
      margin-bottom: 1.5rem;
      text-align: center; }
      .title.typeC h3 p {
        display: inline-block;
        text-align: left;
        color: #3E4148;
        font-family: "Cardo", "Zen Old Mincho", serif;
        font-weight: 400;
        line-height: 1.2;
        font-size: 2rem;
        letter-spacing: 2px; }
        .title.typeC h3 p.vertical {
          writing-mode: vertical-rl; }
    .title.typeC h4 p {
      font-family: "Zen Old Mincho", serif;
      font-size: 1rem;
      color: #585F6C;
      text-align: left;
      line-height: 2.5; }
    @media screen and (min-width: 780px) {
      .title.typeC h2 {
        margin-bottom: 2rem; }
        .title.typeC h2 p {
          line-height: 1.2;
          font-size: 2.4rem !important; }
        .title.typeC h2 span {
          font-size: 1.2rem; }
      .title.typeC h3 p {
        font-size: 2rem; }
      .title.typeC h4 p {
        font-size: 1.2rem;
        text-align: center;
        line-height: 2.5; } }
  .title.typeD {
    padding: 10rem 0 4rem 0; }
    .title.typeD h2 {
      text-align: center; }
      .title.typeD h2 p {
        display: block;
        text-align: center;
        color: #3E4148;
        font-family: "Cardo", "Zen Old Mincho", serif;
        font-weight: 400;
        line-height: 1.2;
        font-size: 2.4rem !important;
        letter-spacing: 3px; }
      .title.typeD h2 span {
        display: block;
        font-family: "Zen Old Mincho", serif;
        font-size: 1.2rem;
        color: #585F6C;
        margin-top: 0.5rem; }
  .title.typeE h3 {
    display: inline-block;
    font-family: "Zen Old Mincho", serif;
    font-size: 1.2rem;
    color: #FFF;
    background-color: #C9A35A;
    padding: 1rem 2rem;
    border-radius: 5px; }
  .title.typeE p {
    font-size: 0.9rem;
    margin-top: 1rem; }

h3.styleA {
  text-align: center;
  margin-bottom: 3rem; }
  h3.styleA p {
    display: inline-block;
    text-align: left;
    color: #3E4148;
    font-family: "Cardo", "Zen Old Mincho", serif;
    font-weight: 400;
    line-height: 1.2;
    font-size: 1.7rem;
    letter-spacing: 4px; }
  h3.styleA span {
    display: inline-block;
    text-align: left;
    color: #585F6C; }

.main_visual {
  padding: 1rem; }
  .main_visual img {
    aspect-ratio: 4 / 3;
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: center; }
    @media screen and (min-width: 780px) {
      .main_visual img {
        aspect-ratio: 2.35 / 1; } }
  .main_visual.bottom {
    padding: 0 !important; }
    .main_visual.bottom img {
      aspect-ratio: 4 / 5; }
      @media screen and (min-width: 780px) {
        .main_visual.bottom img {
          aspect-ratio: 2.35 / 1; } }

.contents.styleB {
  margin: 2rem auto 4rem auto; }
  .contents.styleB h2 {
    margin-bottom: 2rem;
    display: block;
    text-align: left;
    color: #3E4148;
    font-family: "Zen Old Mincho", serif;
    font-weight: 400;
    line-height: 1.2;
    font-size: 1.8rem;
    letter-spacing: 1px; }
    .contents.styleB h2 span {
      font-size: 0.7em; }
  @media screen and (min-width: 780px) {
    .contents.styleB {
      margin: 4rem auto 8rem auto; }
      .contents.styleB h2 {
        font-size: 2.2rem; } }

.contents.styleC {
  margin: auto;
  padding-top: 2rem;
  text-align: center;
  color: #585F6C;
  font-family: "Zen Old Mincho", serif;
  letter-spacing: 1px;
  font-weight: 300; }
  .contents.styleC h2 {
    margin-bottom: 3rem;
    font-size: 1.9rem;
    letter-spacing: 1px; }
  .contents.styleC p {
    font-size: 1.1rem;
    line-height: 2.2;
    letter-spacing: 0 !important; }
  @media screen and (min-width: 780px) {
    .contents.styleC p {
      letter-spacing: 1px;
      font-size: 1.2rem; } }

.contents.styleD {
  margin: auto;
  padding-top: 2rem;
  color: #585F6C;
  font-family: "Zen Old Mincho", serif;
  letter-spacing: 1px;
  font-weight: 300; }
  .contents.styleD p {
    font-size: 1.2em;
    line-height: 2.2;
    width: 780px;
    max-width: 100%;
    margin: auto;
    letter-spacing: 0; }

.capacity {
  margin-bottom: 2rem; }
  .capacity::before {
    content: '収容人数';
    display: inline-block;
    font-weight: 600;
    border-right: 1px solid #DBE1EF;
    margin-right: 1rem;
    padding-right: 1rem; }

.resort_banner a {
  display: block;
  width: 100%;
  padding: 1rem 1rem 6rem 1rem;
  position: relative;
  border: 10px solid #E0E0E0;
  text-align: right; }
  .resort_banner a::before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.2);
    z-index: 0; }
  .resort_banner a img {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    object-fit: cover;
    object-position: center;
    z-index: -1; }
    .resort_banner a img.crossfade {
      z-index: 0;
      animation: fadeInOut 20s ease infinite alternate;
      opacity: 0; }
@keyframes fadeInOut {
  0% {
    opacity: 0; }
  20% {
    opacity: 0; }
  30% {
    opacity: 1; }
  70% {
    opacity: 1; }
  80% {
    opacity: 0; }
  100% {
    opacity: 0; } }
  .resort_banner a h3 {
    display: inline-block;
    position: relative;
    z-index: 99;
    text-align: left;
    color: #FFF;
    font-family: "Jost", "Zen Kaku Gothic Antique", sans-serif;
    font-size: 2.6rem;
    font-weight: 300;
    line-height: 1.2; }
    .resort_banner a h3 p {
      font-size: 1.4rem;
      line-height: 1.2; }
@media screen and (min-width: 780px) {
  .resort_banner a {
    padding: 5rem 2rem; }
    .resort_banner a h3 {
      text-align: center;
      font-weight: 200; }
      .resort_banner a h3 p {
        font-size: 1.8rem; } }

#fair {
  padding: 0;
  width: 1280px;
  max-width: 90%;
  margin: 8rem auto; }
  #fair h2 {
    text-align: center;
    margin-bottom: 3rem; }
    #fair h2 p {
      display: inline-block;
      text-align: left;
      color: #3E4148;
      font-family: "Cardo", "Zen Old Mincho", serif;
      font-weight: 400;
      line-height: 1.2;
      font-size: 1.7rem;
      letter-spacing: 4px; }
    #fair h2 span {
      display: inline-block;
      text-align: left;
      color: #585F6C; }
  @media screen and (min-width: 780px) {
    #fair {
      border: 1px solid #DBE1EF;
      padding: 4rem; } }

.grid {
  display: grid; }
  .grid + .grid {
    margin-top: 3rem; }
  .grid img {
    width: 100%;
    object-fit: cover;
    object-position: center; }
  .grid.styleA {
    align-items: center;
    grid-template-columns: 1fr;
    grid-gap: 3rem; }
    .grid.styleA div:nth-child(odd) img {
      aspect-ratio: 5 / 6; }
    @media screen and (min-width: 780px) {
      .grid.styleA {
        grid-template-columns: 55% auto; }
        .grid.styleA div:nth-child(odd) img {
          aspect-ratio: 1 / 1; } }
    .grid.styleA.alpha div:nth-child(odd) img {
      aspect-ratio: 16 / 9; }
  .grid.styleB {
    align-items: start;
    grid-template-columns: 1fr;
    grid-gap: 1.5rem; }
    .grid.styleB div:nth-child(odd) {
      order: 1;
      margin-top: 0; }
      .grid.styleB div:nth-child(odd) img {
        aspect-ratio: 1 / 1; }
    .grid.styleB div:nth-child(even) {
      order: 2; }
      .grid.styleB div:nth-child(even) img {
        aspect-ratio: 4 / 5;
        margin: 0 auto 0 0;
        width: 70%; }
    @media screen and (min-width: 780px) {
      .grid.styleB {
        grid-template-columns: auto 70%; }
        .grid.styleB div:nth-child(odd) {
          order: 2; }
          .grid.styleB div:nth-child(odd) img {
            aspect-ratio: 4 / 3; }
        .grid.styleB div:nth-child(even) {
          order: 1; }
          .grid.styleB div:nth-child(even) img {
            aspect-ratio: 4 / 5;
            width: 100%;
            margin: 90% 0 0 0; } }
  .grid.styleC {
    align-items: center;
    grid-template-columns: 1fr;
    grid-gap: 3rem; }
    .grid.styleC div:nth-child(odd) {
      order: 1; }
      .grid.styleC div:nth-child(odd) img {
        aspect-ratio: 5 / 6; }
    .grid.styleC div:nth-child(even) {
      order: 2; }
    @media screen and (min-width: 780px) {
      .grid.styleC {
        grid-template-columns: auto 55%; }
        .grid.styleC div:nth-child(odd) {
          order: 2; }
          .grid.styleC div:nth-child(odd) img {
            aspect-ratio: 1 / 1; }
        .grid.styleC div:nth-child(even) {
          order: 1; }
        .grid.styleC.cake {
          grid-template-columns: auto 45%; } }
    .grid.styleC.jinzen div:nth-child(odd) img {
      aspect-ratio: 6 / 5;
      object-position: left center; }
    .grid.styleC.cake div:nth-child(odd) img {
      aspect-ratio: 3 / 4;
      object-position: left center; }
  .grid.styleD {
    align-items: start;
    grid-template-columns: 1fr;
    grid-gap: 1rem; }
    .grid.styleD div:nth-child(odd) {
      margin-top: 0; }
      .grid.styleD div:nth-child(odd) img {
        aspect-ratio: 1 / 1; }
    .grid.styleD div:nth-child(even) img:nth-child(1) {
      width: 70%;
      margin: 0 auto 0 0; }
    .grid.styleD div:nth-child(even) img:nth-child(2) {
      width: 80%;
      margin: 1rem 0 0 auto; }
    @media screen and (min-width: 780px) {
      .grid.styleD {
        grid-template-columns: 55% auto; }
        .grid.styleD div:nth-child(even) img:nth-child(1) {
          width: 70%;
          margin: 30% auto 0 0; }
        .grid.styleD div:nth-child(even) img:nth-child(2) {
          width: 80%;
          margin: 1rem 0 0 auto; } }
  .grid.styleE {
    align-items: start;
    grid-template-columns: 1fr;
    grid-gap: 1.5rem; }
    .grid.styleE div:nth-child(odd) {
      margin-top: 0; }
      .grid.styleE div:nth-child(odd) img {
        aspect-ratio: 3 / 4; }
    .grid.styleE div:nth-child(even) img {
      margin: 0; }
    @media screen and (min-width: 780px) {
      .grid.styleE {
        grid-template-columns: 65% 35%;
        align-items: end; }
        .grid.styleE div:nth-child(odd) img {
          aspect-ratio: 1 / 1;
          margin-bottom: 20%; }
        .grid.styleE div:nth-child(even) img {
          aspect-ratio: 1 / 1; } }
  .grid.styleF {
    align-items: start;
    grid-template-columns: 1fr;
    grid-gap: 1rem; }
    .grid.styleF div:nth-child(odd) {
      order: 1;
      margin-top: 0; }
      .grid.styleF div:nth-child(odd) img {
        aspect-ratio: 1 / 1; }
    .grid.styleF div:nth-child(even) {
      order: 2; }
      .grid.styleF div:nth-child(even) img:nth-child(1) {
        width: 70%;
        margin: 0 auto 0 0; }
      .grid.styleF div:nth-child(even) img:nth-child(2) {
        width: 80%;
        margin: 1rem 0 0 auto; }
    @media screen and (min-width: 780px) {
      .grid.styleF {
        grid-template-columns: auto 50%; }
        .grid.styleF div:nth-child(odd) {
          order: 2; }
        .grid.styleF div:nth-child(even) {
          order: 1; }
          .grid.styleF div:nth-child(even) img:nth-child(1) {
            width: 60%;
            margin: 10% 0  0 auto; }
          .grid.styleF div:nth-child(even) img:nth-child(2) {
            width: 100%;
            margin: 1rem 0 0 auto; } }
  .grid.styleG {
    align-items: center;
    grid-template-columns: 1fr;
    grid-gap: 3rem;
    max-width: 100%; }
    .grid.styleG div:nth-child(odd) img {
      aspect-ratio: 4 / 3; }
    .grid.styleG div:nth-child(even) {
      text-align: left;
      padding: 0 5%; }
      .grid.styleG div:nth-child(even) h3 {
        font-size: 2.2rem;
        line-height: 1.6;
        margin-bottom: 1.5rem;
        font-family: "Zen Old Mincho", serif;
        font-weight: 300;
        color: #585F6C; }
        .grid.styleG div:nth-child(even) h3 span {
          display: block;
          font-size: 1.38rem;
          letter-spacing: 0; }
      .grid.styleG div:nth-child(even) h4 {
        font-size: 0.94rem;
        line-height: 1.8;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-weight: 700;
        color: #3E4148;
        margin: 0 0 1rem 0; }
        .grid.styleG div:nth-child(even) h4 span {
          font-weight: 400; }
      .grid.styleG div:nth-child(even) p {
        font-size: 0.88rem !important;
        line-height: 1.8 !important;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-weight: 400;
        margin: 0; }
      .grid.styleG div:nth-child(even) .border_y {
        border-top: 1px solid #E0E0E0;
        border-bottom: 1px solid #E0E0E0;
        padding: 1rem 0;
        margin-top: 2rem; }
    @media screen and (min-width: 960px) {
      .grid.styleG {
        grid-template-columns: 55% auto; }
        .grid.styleG div:nth-child(odd) img {
          aspect-ratio: 4 / 3; }
        .grid.styleG div:nth-child(even) {
          padding: 0; } }
  .grid.styleH {
    align-items: center;
    grid-template-columns: 1fr;
    grid-gap: 3rem;
    max-width: 100%;
    margin: 1rem auto 2rem auto;
    padding: 2rem;
    background-color: #F8F8F8; }
    .grid.styleH div:nth-child(even) img {
      aspect-ratio: 1 / 1; }
    .grid.styleH div:nth-child(odd) {
      text-align: left; }
      .grid.styleH div:nth-child(odd) h3 {
        font-size: 1rem;
        line-height: 1.6;
        margin-bottom: 1.5rem;
        font-family: "Zen Old Mincho", serif;
        font-weight: 300;
        color: #585F6C; }
        .grid.styleH div:nth-child(odd) h3 span {
          display: block;
          font-size: 1.56rem;
          letter-spacing: 0; }
      .grid.styleH div:nth-child(odd) h4 {
        font-size: 0.94rem;
        line-height: 1.8;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-weight: 700;
        color: #3E4148;
        margin: 0 0 1rem 0; }
        .grid.styleH div:nth-child(odd) h4 span {
          font-weight: 400; }
      .grid.styleH div:nth-child(odd) p {
        font-size: 0.88rem !important;
        line-height: 1.8 !important;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-weight: 400;
        margin: 0; }
    @media screen and (min-width: 960px) {
      .grid.styleH {
        grid-template-columns: 60% auto; } }
  .grid.styleH {
    align-items: center;
    grid-template-columns: 1fr;
    grid-gap: 3rem;
    max-width: 100%;
    margin: 1rem auto 2rem auto;
    padding: 2rem;
    background-color: #F8F8F8; }
    .grid.styleH div:nth-child(even) img {
      aspect-ratio: 1 / 1; }
    .grid.styleH div:nth-child(odd) {
      text-align: left; }
      .grid.styleH div:nth-child(odd) h3 {
        font-size: 1rem;
        line-height: 1.6;
        margin-bottom: 1.5rem;
        font-family: "Zen Old Mincho", serif;
        font-weight: 300;
        color: #585F6C; }
        .grid.styleH div:nth-child(odd) h3 span {
          display: block;
          font-size: 1.56rem;
          letter-spacing: 0; }
      .grid.styleH div:nth-child(odd) h4 {
        font-size: 0.94rem;
        line-height: 1.8;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-weight: 700;
        color: #3E4148;
        margin: 0 0 1rem 0; }
        .grid.styleH div:nth-child(odd) h4 span {
          font-weight: 400; }
      .grid.styleH div:nth-child(odd) p {
        font-size: 0.88rem !important;
        line-height: 1.8 !important;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-weight: 400;
        margin: 0; }
    @media screen and (min-width: 960px) {
      .grid.styleH {
        grid-template-columns: 60% auto; } }
  .grid h3, .grid h4 {
    font-family: "Zen Old Mincho", serif;
    font-weight: 600;
    color: #3E4148;
    line-height: 1.6; }
  .grid h3 {
    font-size: 1.6rem;
    letter-spacing: 1px; }
  .grid h4 {
    font-size: 1.3rem; }
  .grid h3 + p,
  .grid h4 + p {
    padding: 0;
    margin: 1rem 0 0 0;
    font-size: 1rem;
    color: #3E4148; }
  @media screen and (min-width: 780px) {
    .grid h3, .grid h4 {
      line-height: 2; }
    .grid h3 {
      font-size: 1.8rem; }
    .grid h4 {
      font-size: 1.5rem; }
    .grid h3 + p,
    .grid h4 + p {
      margin: 2rem 0 0 0; } }

.sub_visual {
  margin-bottom: 8rem; }
  .sub_visual img {
    aspect-ratio: 16 / 9;
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: center;
    margin: 3rem 0; }
    @media screen and (min-width: 780px) {
      .sub_visual img {
        width: 70%; }
        .sub_visual img.left {
          margin: 3rem auto 3rem 0; }
        .sub_visual img.right {
          margin: 3rem 0 3rem auto; } }

#data_wrap h2 {
  color: #585F6C;
  font-family: "Cardo", "Zen Old Mincho", serif;
  font-weight: 400;
  font-size: 1.8rem;
  letter-spacing: 4px;
  margin-bottom: 2rem;
  text-align: center; }
#data_wrap h3 {
  margin: 4rem 0 2rem 0; }
  #data_wrap h3 p {
    display: inline;
    font-family: "Zen Old Mincho", serif;
    font-size: 1.4rem;
    color: #3E4148;
    font-weight: 500;
    line-height: 1.6;
    border-left: 1px solid #000;
    padding-left: 1rem; }
#data_wrap .table dl {
  border-top: 2px solid #DBE1EF;
  border-bottom: 0;
  display: grid;
  grid-template-columns: 1fr;
  margin: 0; }
  #data_wrap .table dl:last-child {
    border-bottom: 2px solid #DBE1EF; }
  #data_wrap .table dl dt {
    padding: 1rem 0;
    font-family: "Zen Old Mincho", serif;
    border-bottom: 1px solid #DBE1EF; }
  #data_wrap .table dl dd {
    padding: 1rem 0;
    font-weight: 600; }
    #data_wrap .table dl dd p {
      font-weight: 400;
      line-height: 1.6;
      margin-top: 0.5rem;
      font-size: 0.95em; }
    #data_wrap .table dl dd .price {
      font-weight: 500;
      font-size: 2rem;
      font-family: "Zen Old Mincho", serif;
      display: inline-block;
      margin-left: 1rem; }
      #data_wrap .table dl dd .price span {
        font-size: 0.9rem;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-weight: 400;
        margin-left: 1rem; }
@media screen and (min-width: 780px) {
  #data_wrap .table dl {
    grid-template-columns: 10rem auto;
    border-top: 1px solid #DBE1EF; }
    #data_wrap .table dl:last-child {
      border-bottom: 1px solid #DBE1EF; }
    #data_wrap .table dl dt {
      border-bottom: 0; } }

p.lead {
  font-family: "Zen Old Mincho", serif;
  font-size: 1.2rem;
  margin-bottom: 3rem; }
  p.lead.center {
    text-align: center; }

#feature > h2 {
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  margin: 4rem auto;
  font-size: 2rem; }
#feature .feature {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 3rem; }
  @media screen and (min-width: 780px) {
    #feature .feature {
      grid-template-columns: 1fr 1fr; } }
  #feature .feature li img {
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: center; }
  #feature .feature li .point {
    margin: auto;
    padding: 2rem 0; }
    @media screen and (min-width: 780px) {
      #feature .feature li .point {
        padding: 2rem; } }
    #feature .feature li .point h3 {
      text-align: center;
      font-family: "Cardo", "Zen Old Mincho", serif;
      line-height: 1;
      margin-bottom: 1.5rem; }
      #feature .feature li .point h3 span {
        display: block;
        font-size: 2.2rem;
        text-align: center;
        position: relative;
        padding-bottom: 0.5rem;
        margin: 0 auto 1rem auto;
        position: relative; }
        #feature .feature li .point h3 span i {
          font-size: 1rem;
          display: block;
          line-height: 1.4;
          font-style: normal; }
        #feature .feature li .point h3 span::after {
          content: '';
          width: 1rem;
          height: 1px;
          background-color: #B6BECE;
          position: absolute;
          left: 0;
          right: 0;
          bottom: 0;
          margin: auto; }
      #feature .feature li .point h3 p {
        font-family: "Zen Old Mincho", serif;
        font-size: 1.4rem;
        line-height: 1.4; }
    #feature .feature li .point p {
      padding: 0;
      margin: 0;
      font-size: 0.9rem; }

/* ======================================
  Concept 
======================================== */
.concept .scroll-infinity__wrap {
  display: flex;
  overflow: hidden; }
.concept .scroll-infinity__list {
  display: flex;
  list-style: none;
  gap: 10px; }
.concept .scroll-infinity__item {
  width: calc(100vw / 2); }
  @media screen and (min-width: 780px) {
    .concept .scroll-infinity__item {
      width: calc(100vw / 5); } }
.concept .scroll-infinity__item > img {
  width: 100%; }
@keyframes infinity-scroll-left {
  from {
    transform: translateX(0); }
  to {
    transform: translateX(-100%); } }
.concept .scroll-infinity__list--left {
  animation: infinity-scroll-left 80s infinite linear 0.5s both; }
@keyframes infinity-scroll-right {
  from {
    transform: translateX(-100%); }
  to {
    transform: translateX(0%); } }
.concept .scroll-infinity__list--right {
  animation: infinity-scroll-right 80s infinite linear 0.5s both; }

/* ======================================
  Bridal fair 
======================================== */
.bridal_fair .fair_wrap {
  margin-bottom: 8rem; }
  .bridal_fair .fair_wrap ul li {
    border: 1px solid #E0E0E0;
    padding: 10px;
    position: relative !important; }
    .bridal_fair .fair_wrap ul li h3 {
      display: flex;
      align-items: center;
      position: absolute;
      top: 0;
      left: 20px;
      background-color: #585F6C;
      color: #FFF;
      margin: 0;
      z-index: 999;
      font-family: "Cardo", "Zen Old Mincho", serif;
      font-weight: 400;
      font-size: 2em;
      padding: 10px 20px;
      line-height: 1; }
      .bridal_fair .fair_wrap ul li h3 p {
        display: inline-block;
        font-size: 0.5em;
        margin: 0 8px 0 0;
        line-height: 1; }
    .bridal_fair .fair_wrap ul li .txt {
      padding: 25px 15px 15px 15px;
      font-family: "Zen Old Mincho", serif;
      position: static; }
    .bridal_fair .fair_wrap ul li h2 {
      font-size: 1.3rem; }
      .bridal_fair .fair_wrap ul li h2 p {
        font-size: .8em;
        line-height: 1.4; }
    .bridal_fair .fair_wrap ul li .time {
      margin: 15px 0; }
      .bridal_fair .fair_wrap ul li .time p {
        display: inline-block;
        color: #585F6C;
        margin-right: 1em; }
      .bridal_fair .fair_wrap ul li .time span {
        font-size: 0.8em;
        display: inline-block;
        width: 1.6em;
        height: 1.6em;
        background-color: #585F6C;
        color: #FFF;
        border-radius: 50%;
        text-align: center;
        line-height: 1.6;
        margin: -2px 5px 0 0; }
    .bridal_fair .fair_wrap ul li .lead {
      margin: 0 0 30px 0; }

/* ======================================
  Plan 
======================================== */
/* ======================================
  Ceremony 
======================================== */
/* ======================================
  Party 
======================================== */
/* ======================================
  Cuisine 
======================================== */
/* ======================================
  Dress&Item 
======================================== */
/* ======================================
  Wedding report 
======================================== */
/* ======================================
  News 
======================================== */
#page-news .news {
  margin-top: 3rem; }
  #page-news .news dl {
    border-bottom: 1px solid #E0E0E0;
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    grid-gap: 0.5rem;
    padding: 1rem;
    margin: 0; }
    @media screen and (min-width: 780px) {
      #page-news .news dl {
        grid-template-columns: 6rem 7rem auto; } }
    #page-news .news dl dt {
      font-family: "Cardo", "Zen Old Mincho", serif;
      color: #C9A35A; }
  #page-news .news a dl {
    transition: 0.5s; }
    #page-news .news a dl dd span {
      display: block;
      width: 6rem;
      font-family: "Zen Old Mincho", serif;
      border: 1px solid #C9A35A;
      color: #C9A35A;
      background-color: #FFF;
      text-align: center;
      padding: 0;
      line-height: 1.4;
      font-size: 0.9rem; }
  #page-news .news a:hover dl {
    background-color: #FCFAF5; }
#page-news .btn a i {
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  transition: 0.5s; }
  #page-news .btn a i::before {
    content: "";
    width: 100%;
    height: 1px;
    background-color: #000;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: 0.5s; }
  #page-news .btn a i::after {
    content: "";
    display: block;
    text-decoration: none;
    height: 1px;
    width: 5px;
    background-color: #000;
    position: absolute;
    top: 0;
    bottom: 4px;
    margin: auto; }
#page-news .btn.next a {
  display: inline-block;
  padding: 0.7rem 1rem 0.7rem 2.5rem;
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  font-size: 1rem;
  position: relativere;
  margin: auto;
  max-width: 100%;
  z-index: 0;
  color: #96823B; }
  #page-news .btn.next a::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    background-color: #E6DDBD;
    opacity: 0;
    width: 0;
    transition: 0.5s;
    z-index: -1; }
  #page-news .btn.next a:hover::before {
    width: 100%;
    opacity: 1; }
  #page-news .btn.next a i {
    left: 1rem;
    right: auto; }
    #page-news .btn.next a i::before {
      left: auto;
      right: 1rem;
      background-color: #96823B; }
    #page-news .btn.next a i::after {
      left: auto;
      right: 1rem;
      transform: rotate(45deg);
      background-color: #96823B; }
  #page-news .btn.next a:hover i {
    left: 1.5rem; }
#page-news .btn.back {
  text-align: center;
  margin-top: 6rem; }
  #page-news .btn.back a {
    display: inline-block;
    text-align: center;
    font-family: "Zen Old Mincho", serif;
    font-size: 1rem;
    position: relativere;
    margin: auto;
    padding: 1.5rem 1rem 1.5rem 2rem;
    min-width: 22rem;
    max-width: 100%;
    z-index: 0;
    background-color: #E6DDBD; }
    #page-news .btn.back a::before {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      right: 0;
      margin: auto;
      background-color: #DABB7F;
      opacity: 0;
      width: 0;
      transition: 0.5s;
      z-index: -1; }
    #page-news .btn.back a:hover::before {
      width: 100%;
      opacity: 1; }
    #page-news .btn.back a i {
      left: 1.5rem;
      right: auto; }
      #page-news .btn.back a i::before {
        left: 0;
        right: auto; }
      #page-news .btn.back a i::after {
        left: 0;
        right: auto;
        transform: rotate(-45deg); }
    #page-news .btn.back a:hover i {
      left: 1rem; }
#page-news .main {
  margin: 2rem auto; }
  #page-news .main .ph {
    margin-bottom: 2rem; }
  #page-news .main p {
    font-size: 0.9rem; }
#page-news .date {
  color: #C9A35A;
  font-family: "Cardo", "Zen Old Mincho", serif; }
  #page-news .date span {
    display: inline-block;
    width: 6rem;
    border: 1px solid #C9A35A;
    background-color: #FFF;
    font-family: "Zen Old Mincho", serif;
    text-align: center;
    padding: 0;
    line-height: 1.4;
    font-size: 0.9rem;
    margin-left: 1rem; }
#page-news h3 {
  font-size: 1.6rem;
  font-family: "Zen Old Mincho", serif;
  margin-top: 1rem; }
#page-news .sub {
  display: grid;
  grid-template-columns: 1fr;
  align-items: end;
  grid-gap: 2rem;
  width: 80%;
  margin: 3rem auto; }
  #page-news .sub .ph {
    order: 1; }
  #page-news .sub p {
    order: 2;
    font-size: 0.9rem; }
  @media screen and (min-width: 780px) {
    #page-news .sub {
      grid-template-columns: 3fr 4fr;
      width: 100%; }
      #page-news .sub .ph {
        order: 2; }
      #page-news .sub p {
        order: 1; } }

/* ======================================
  Contact 
======================================== */
/* ======================================
  Stay & Wedding 
======================================== */
.stay_wrap {
  width: 110%; }
  @media screen and (min-width: 780px) {
    .stay_wrap {
      width: 100%; } }
  .stay_wrap dl {
    display: grid;
    grid-template-columns: 1fr;
    position: relative;
    margin: 0;
    border-left: 1px solid #B6BECE; }
    @media screen and (min-width: 780px) {
      .stay_wrap dl {
        grid-template-columns: 8rem auto; } }
    .stay_wrap dl dt {
      padding-bottom: 1rem; }
      .stay_wrap dl dt span {
        position: relative;
        display: inline-block;
        border-left: 1px solid #3E4148;
        padding: 0 0 0 1rem;
        margin: 0 0 0 -1px;
        font-family: "Cardo";
        font-size: 40px;
        line-height: 1.2;
        letter-spacing: 0.1em; }
        @media screen and (min-width: 780px) {
          .stay_wrap dl dt span {
            font-size: 60px; } }
    .stay_wrap dl dd {
      padding: 0 0 0 1rem; }
      .stay_wrap dl dd div.main_visual {
        padding: 0; }
        .stay_wrap dl dd div.main_visual img {
          width: 100%;
          aspect-ratio: 4 / 3;
          object-fit: cover;
          object-position: center; }
          @media screen and (min-width: 780px) {
            .stay_wrap dl dd div.main_visual img {
              aspect-ratio: 2 / 1; } }
      .stay_wrap dl dd p {
        margin: 2rem 0 4rem 0;
        width: 90%; }
        @media screen and (min-width: 780px) {
          .stay_wrap dl dd p {
            width: 100%; } }
    .stay_wrap dl.ap dt span {
      position: relative;
      z-index: 2;
      white-space: nowrap; }
      @media screen and (min-width: 780px) {
        .stay_wrap dl.ap dt span {
          position: absolute; } }
    .stay_wrap dl.ap dd p {
      margin: 2rem 0 0 0; }

/* ======================================
  Before Wedding 
======================================== */
.before_wrap > ul {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 2rem;
  align-items: stretch; }
  @media screen and (min-width: 780px) {
    .before_wrap > ul {
      grid-template-columns: 1fr 1fr; } }
  @media screen and (min-width: 960px) {
    .before_wrap > ul {
      grid-template-columns: 1fr 1fr 1fr; } }
  .before_wrap > ul > li {
    display: flex;
    flex-direction: column;
    margin-bottom: 1rem;
    text-align: left; }
    .before_wrap > ul > li img {
      margin: 0 0 1.5rem 0;
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      object-position: center; }
    .before_wrap > ul > li h3 {
      font-size: 1.44rem;
      margin: 0 0 1.5rem 0; }
      .before_wrap > ul > li h3.center {
        text-align: center !important; }
      .before_wrap > ul > li h3 span {
        font-size: 0.94rem !important; }
    .before_wrap > ul > li p {
      font-size: 0.88rem !important;
      line-height: 1.8 !important;
      font-family: "Zen Kaku Gothic Antique", sans-serif;
      font-weight: 400;
      margin: 0 0 28px 0; }
.before_wrap .border_y {
  border-top: 1px solid #E0E0E0;
  border-bottom: 1px solid #E0E0E0;
  padding: 10px 0;
  margin: 0 auto auto auto;
  width: 100%; }
  .before_wrap .border_y.mb0 {
    margin: auto auto 0 auto; }
  .before_wrap .border_y ul {
    width: 100%;
    display: flex;
    gap: 1rem;
    margin: 0; }
    .before_wrap .border_y ul li {
      font-size: 0.94rem;
      text-align: left; }
      .before_wrap .border_y ul li.md {
        white-space: nowrap;
        flex-shrink: 0; }
      .before_wrap .border_y ul li p {
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-size: 0.94rem !important;
        font-weight: 700 !important;
        margin: 0; }
      .before_wrap .border_y ul li span {
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-size: 0.88rem !important;
        font-weight: 400 !important;
        margin: 0; }

h2.before {
  font-size: 2.3rem !important;
  margin-bottom: 5rem !important; }

.step_wrap {
  width: 100%;
  max-width: 100%; }
  .step_wrap dl {
    display: grid;
    grid-template-columns: 1fr;
    position: relative;
    margin: 0;
    border-left: 1px solid #B6BECE;
    text-align: left; }
    @media screen and (min-width: 780px) {
      .step_wrap dl {
        grid-template-columns: 8rem auto; } }
    .step_wrap dl dt {
      padding: 0 0 1rem 0 !important; }
      .step_wrap dl dt span {
        position: relative;
        display: inline-block;
        border-left: 1px solid #3E4148;
        padding: 0 0 0 1rem;
        margin: 0 0 0 -1px;
        font-family: "Cardo";
        font-size: 40px;
        line-height: 1.2;
        letter-spacing: 0.1em; }
        @media screen and (min-width: 780px) {
          .step_wrap dl dt span {
            font-size: 60px; } }
    .step_wrap dl dd {
      padding: 0 0 4rem 1rem; }
      .step_wrap dl dd h3 {
        font-size: 2.2rem;
        margin: 0 0 1rem 0; }
      .step_wrap dl dd p {
        margin: 2rem 0 4rem 0;
        font-size: 1.13rem !important;
        margin: 0; }
      .step_wrap dl dd span {
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-weight: 600;
        font-size: 0.94rem !important; }
    .step_wrap dl:last-child dd {
      padding: 0 0 0 1rem; }

/* ======================================
  FAQ / For Guest
======================================== */
.nav {
  display: block;
  line-height: 1;
  margin: 2rem auto 4rem auto; }
  @media screen and (min-width: 780px) {
    .nav {
      display: flex;
      flex-wrap: wrap; } }
  .nav li {
    border-right: 0;
    margin: 1rem 0; }
    @media screen and (min-width: 780px) {
      .nav li {
        border-right: 1px solid #B6BECE; } }
    .nav li a {
      padding: 0.2rem 2rem 0.5rem 1rem;
      white-space: normal;
      position: relative;
      display: block; }
      @media screen and (min-width: 780px) {
        .nav li a {
          white-space: nowrap; } }
      .nav li a::after {
        content: '';
        display: block;
        width: 0.3rem;
        height: 0.3rem;
        border-right: 1px solid #B18023;
        border-bottom: 1px solid #B18023;
        transform: translateY(100%) rotate(45deg);
        position: absolute;
        right: 1rem;
        top: 0;
        margin: auto;
        transition: 0.5s; }
      .nav li a:hover::after {
        transform: translateY(150%) rotate(45deg); }

.details_wrap {
  margin-top: 2rem;
  padding-top: 1rem;
  padding-bottom: 2rem;
  /*details.parent {
  margin-bottom: 2rem;
  > .summary {
  font-size: 1.4rem;
  padding: 0 0 1rem 0;
  margin-bottom: 0;
  }
  &[open] > .summary::after {
    transform: rotate(360deg);
  }*/ }
  .details_wrap h3 {
    font-family: "Zen Old Mincho", serif !important;
    font-size: 1.8rem !important;
    margin: 0 0 3rem 0;
    text-align: center; }
  .details_wrap details {
    font-family: "Zen Kaku Gothic Antique", sans-serif !important;
    font-weight: 400;
    line-height: 2;
    max-width: 95%; }
    .details_wrap details summary {
      list-style: none; }
      .details_wrap details summary::-webkit-details-marker {
        display: none; }
    .details_wrap details .summary {
      cursor: pointer;
      display: block;
      border-bottom: 1px solid #E6DDBD;
      padding: 0 0 1rem 0;
      position: relative;
      font-size: 1.1rem;
      font-weight: 500;
      margin-bottom: 2rem; }
      .details_wrap details .summary::before, .details_wrap details .summary::after {
        content: "";
        width: 1rem;
        height: 1px;
        background-color: #96823B;
        position: absolute;
        top: auto;
        bottom: 0;
        left: 100.5%;
        margin: auto 0;
        transition: 0.5s; }
      .details_wrap details .summary::after {
        transform: rotate(90deg); }
      .details_wrap details .summary:hover::after {
        transform: rotate(360deg); }
    .details_wrap details .answer {
      overflow: hidden;
      opacity: 1;
      margin: 1rem auto 2rem auto; }
    .details_wrap details a {
      text-decoration: underline;
      color: #96823B;
      transition: 0.5s; }
      .details_wrap details a:hover {
        color: #C9A35A; }
  .details_wrap.faq .details .summary,
  .details_wrap.faq .details .answer {
    display: grid;
    grid-template-columns: 1.3em auto;
    align-items: start;
    font-size: 1.8rem; }
    @media screen and (min-width: 780px) {
      .details_wrap.faq .details .summary,
      .details_wrap.faq .details .answer {
        font-size: 2.5rem; } }
    .details_wrap.faq .details .summary p:nth-child(odd),
    .details_wrap.faq .details .answer p:nth-child(odd) {
      font-family: "Zen Old Mincho", serif;
      font-weight: 400;
      line-height: 1; }
    .details_wrap.faq .details .summary p:nth-child(even),
    .details_wrap.faq .details .answer p:nth-child(even) {
      margin-top: 0; }
      @media screen and (min-width: 780px) {
        .details_wrap.faq .details .summary p:nth-child(even),
        .details_wrap.faq .details .answer p:nth-child(even) {
          margin-top: 0.3rem; } }
  .details_wrap.faq .details .summary p:nth-child(even) {
    font-size: 1.1rem; }
  .details_wrap.faq .details .answer p:nth-child(even) {
    font-size: 1rem; }

/* ======================================
   Anchor Link
======================================== */
#back-to-top {
  display: block;
  width: 5rem;
  padding: 0 0 1.5rem 0;
  position: fixed;
  bottom: 1rem;
  right: 0;
  z-index: 1000;
  opacity: 0;
  transition: .5s; }
  #back-to-top.show {
    opacity: 1; }
  #back-to-top span {
    white-space: nowrap;
    display: block;
    width: 100%;
    font-size: 0.7rem;
    position: absolute;
    bottom: 0;
    letter-spacing: 0;
    color: #C9A35A;
    text-align: center; }
  #back-to-top p {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: #C9A35A;
    margin: auto;
    position: relative; }
    #back-to-top p::after {
      content: '';
      display: block;
      width: 0.5rem;
      height: 0.5rem;
      border-left: 1px solid #FFF;
      border-top: 1px solid #FFF;
      transform: translateY(25%) rotate(45deg); }
