@charset "UTF-8";
#pageTop .more {
  justify-content: left;
}

#mainContent {
  overflow-x: clip !important;
}

.commonTopTitleArea {
  background-image: url(../images/fv_bg.jpg);
}

.comSection {
  padding: 50px 0 220px;
  position: relative;
  overflow: hidden;
}
.comSection:first-of-type {
  padding: 0;
}
.comSection#garden {
  padding: 50px 0 80px;
}

@media screen and (max-width: 767px) {
  .comSection {
    padding: 0;
  }
  .comSection#garden {
    padding: 0px 0 0px;
  }
}
/* ---------------------------------------------------------
   comSection / CHURCH
--------------------------------------------------------- */
.comSection:first-of-type .secVenue:first-of-type:after {
  content: "";
  background: #fff;
}
.comSection .secVenue {
  display: grid;
  grid-template-columns: 0 minmax(0, 1fr);
  position: relative;
}
.comSection .secVenue.orsayVenue, .comSection .secVenue.romaineVenue {
  padding-bottom: 95px;
}
.comSection .secVenue:after {
  content: "";
  background: #F2F2F2;
  height: 130%;
  width: 100%;
  bottom: 0;
  left: 0;
  position: absolute;
  z-index: -1;
}
.comSection .secVenue .venueIn {
  width: 100%;
  grid-column: 2/3;
  display: flex;
  flex: 1;
  justify-content: space-between;
  align-items: flex-start;
  gap: 5%;
  position: relative;
  z-index: 2;
}
.comSection .secVenue {
  /* 左側：情報エリア */
}
.comSection .secVenue .infoWrap {
  max-width: 360px;
}
.comSection .secVenue .infoWrap .infoItem {
  padding: 18px 0;
}
.comSection .secVenue .infoWrap .infoItem .infoEn {
  font-size: 15px;
  line-height: 1;
}
.comSection .secVenue .infoWrap .infoItem .infoTl {
  font-size: clamp(18px, 1.67vw, 20px);
  font-weight: 500;
  letter-spacing: 0.12em;
}
.comSection .secVenue .infoWrap .infoItem .infoTtl {
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 8px;
  border-left: 1px solid #473933;
  padding-left: 12px;
}
.comSection .secVenue .infoWrap .infoItem .infoTxt {
  font-size: 15px;
}
.comSection .secVenue .infoWrap .infoDesc {
  border-top: 1px solid #fff;
  padding-top: 20px;
}
.comSection .secVenue .infoWrap .infoDesc p {
  line-height: 1.8;
  font-size: 15px;
  margin: 0;
}
.comSection .secVenue .infoWrap .galleryLink {
  margin-top: 60px;
  background: #fff;
}
.comSection .secVenue .infoWrap .galleryLink .arrow {
  padding: 0 9px;
  border-left: 1px solid #473933;
  display: flex;
  align-items: center;
  width: 32px;
}
.comSection .secVenue .infoWrap .galleryLink .btnGallery {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  text-decoration: none;
  color: #333;
  padding-left: 10px;
}
.comSection .secVenue .infoWrap .galleryLink .btnGallery span {
  font-size: 16px;
  padding: 20px 0;
}
.comSection .secVenue .infoWrap .galleryLink .btnGallery .btnArrow {
  position: relative;
  width: 35px;
  height: 1px;
  background-color: #333;
}
.comSection .secVenue .infoWrap .galleryLink .btnGallery .btnArrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: -4px;
  width: 8px;
  height: 8px;
  border-top: 1px solid #333;
  border-right: 1px solid #333;
  transform: rotate(45deg);
}
.comSection .secVenue {
  /* 右側：スライダーエリア */
}
.comSection .secVenue .perfWrap {
  min-width: 0;
  /* Swiperの崩れ防止 */
  overflow: hidden;
}
.comSection .secVenue .perfWrap .perfTtl {
  font-size: 14px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 7px;
  line-height: 100%;
}
.comSection .secVenue .perfWrap .perfTtl::before {
  content: "";
  position: relative;
  top: -2px;
  display: block;
  width: 4px;
  height: 4px;
  background-color: #473933;
  border-radius: 50%;
}
.comSection .secVenue .perfWrap .perfSlider .perfItem .perfImg {
  aspect-ratio: 1.4/1;
  overflow: hidden;
  margin-bottom: 15px;
}
.comSection .secVenue .perfWrap .perfSlider .perfItem .perfImg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.comSection .secVenue .perfWrap .perfSlider .perfItem .perfCaption {
  font-size: clamp(15px, 1.33vw, 16px);
  border-bottom: 1px solid #969696;
  line-height: 1.4;
  padding-bottom: 5px;
}
.comSection .secVenue .perfWrap {
  /* Swiperナビゲーションボタン */
}
.comSection .secVenue .perfWrap .perfNav {
  margin-top: 30px;
  display: flex;
  gap: 32px;
}
.comSection .secVenue .perfWrap .perfNav .navBtn {
  width: 40px;
  height: 40px;
  border: 1px solid #333;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  position: relative;
  transition: background-color 0.3s;
  padding: 0;
}
.comSection .secVenue .perfWrap .perfNav .navBtn::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-top: 1px solid #333;
  border-left: 1px solid #333;
}
.comSection .secVenue .perfWrap .perfNav .navBtn.btnPrev::after {
  transform: translate(-30%, -50%) rotate(-45deg);
}
.comSection .secVenue .perfWrap .perfNav .navBtn.btnNext::after {
  transform: translate(-70%, -50%) rotate(135deg);
}
.comSection .secVenue {
  /* Swiperが無効な時のための微調整 */
}
.comSection .secVenue .swiper-slide {
  height: auto;
}
.comSection .secVenue {
  /* ホバー効果 */
}
.comSection .secVenue .ro:hover {
  opacity: 0.7;
}

@media screen and (max-width: 1300px) {
  .comSection .secVenue .perfWrap .perfSlider .perfItem .perfImg {
    aspect-ratio: initial !important;
  }
  .comSection .secVenue .perfWrap .perfSlider .perfItem .perfImg img {
    width: 100%;
    height: auto;
    -o-object-fit: initial;
       object-fit: initial;
  }
}
@media screen and (max-width: 1200px) {
  .comSection .secVenue .venueIn {
    display: block;
  }
  .comSection .secVenue .venueIn .infoWrap {
    width: 90%;
    max-width: initial;
  }
  .comSection .secVenue .venueIn .perfWrap {
    padding-top: 30px;
    width: 100%;
  }
  .comSection .secVenue .perfWrap .perfSlider .perfItem .perfImg {
    aspect-ratio: initial !important;
  }
  .comSection .secVenue .perfWrap .perfSlider .perfItem .perfImg img {
    width: 100%;
    height: auto;
    -o-object-fit: initial;
       object-fit: initial;
  }
  .secPet .secPetTxt .petIconList {
    padding-left: initial;
    justify-content: center;
  }
}
@media screen and (max-width: 767px) {
  .comSection .secVenue {
    padding: 30px 0 150px;
  }
  .comSection .secVenue.gardenVenue {
    padding: 30px 0 75px;
  }
  .comSection .secVenue .venueIn {
    gap: 30px;
    grid-template-columns: 1fr;
    padding-left: initial;
  }
  .comSection .secVenue .venueIn .infoWrap .infoItem {
    padding: 15px 0;
  }
  .comSection .secVenue .venueIn .infoWrap .infoItem:first-child {
    padding: 0px 0 15px;
  }
  .comSection .secVenue .venueIn .infoWrap .galleryLink {
    margin-top: 15px;
  }
  .comSection .secVenue .venueIn .perfWrap .perfTtl {
    margin-bottom: 25px;
  }
  .comSection .secVenue .venueIn .perfWrap .perfNav {
    justify-content: center;
  }
}
.secBanner {
  padding-bottom: 130px;
}

.secSpace {
  background-color: #E1E1E1;
  padding: 80px 0 0;
}
.secSpace .secSpaceIn {
  display: grid;
  grid-template-columns: 1fr 200px 1040px 1fr;
  gap: 60px;
}
@media screen and (max-width: 1400px) {
  .secSpace .secSpaceIn {
    display: grid;
    grid-template-columns: 5% 200px 1fr 5%;
    gap: 60px;
  }
}
@media screen and (max-width: 1200px) {
  .secSpace .secSpaceIn {
    display: grid;
    grid-template-columns: 5% 150px 1fr 5%;
    gap: 60px;
  }
}
.secSpace .sideMenu {
  position: sticky;
  top: 100px;
  width: 200px;
  flex-shrink: 0;
  align-self: start;
  z-index: 3;
}
.secSpace .sideMenu .sideTitle {
  font-size: 14px;
  margin-bottom: 40px;
  letter-spacing: 0.1em;
}
.secSpace .sideMenu .sideNav {
  margin-bottom: 40px;
}
.secSpace .sideMenu .sideNav .sideNavHead {
  font-size: 14px;
  margin-bottom: 15px;
  letter-spacing: 0.05em;
}
.secSpace .sideMenu .sideNav .sideList {
  list-style: none;
}
.secSpace .sideMenu .sideNav .sideList li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  color: #333333;
  border-bottom: 1px solid #dddddd;
  padding: 12px 0;
  font-size: clamp(15px, 1.33vw, 16px);
}
.secSpace .sideMenu .sideNav .sideList li a .iconArrDown {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-right: 1px solid #b8a168;
  border-bottom: 1px solid #b8a168;
  transform: rotate(45deg);
}
.secSpace .mainCont {
  grid-column: 3/5;
  min-width: 0;
}
.secSpace .mainCont .ceremonyWrap {
  padding-bottom: 200px;
}
.secSpace .mainCont .mainHead {
  padding-top: 90px;
  margin-bottom: 40px;
  position: relative;
  z-index: 2;
}
.secSpace .mainCont .mainHead .mainTitle {
  font-weight: 500;
  font-size: clamp(22px, 2vw, 24px);
  margin-bottom: 10px;
  letter-spacing: 0.12em;
}
.secSpace .mainCont .mainHead .mainSub {
  letter-spacing: 0.1em;
  font-size: clamp(16px, 1.5vw, 18px);
}
.secSpace .mainCont .contList {
  position: relative;
  z-index: 1;
  max-width: 1040px;
  width: 90%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding-bottom: 80px;
}
.secSpace .mainCont .contItem .itemHead {
  margin-bottom: 15px;
}
.secSpace .mainCont .contItem .itemHead .itemEn {
  color: #666666;
  display: block;
  font-size: 15px;
  line-height: 100%;
}
.secSpace .mainCont .contItem .itemHead .itemJa {
  font-weight: 500;
  font-size: clamp(18px, 1.67vw, 20px);
  letter-spacing: 0.12em;
}
.secSpace .mainCont .contItem .itemImg {
  margin-bottom: 20px;
}
.secSpace .mainCont .contItem .itemImg img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
.secSpace .mainCont .contItem .itemDetails {
  display: flex;
  justify-content: left;
  gap: clamp(0.625rem, -11.875rem + 20vw, 3.125rem);
  padding-bottom: 16px;
  border-bottom: 1px solid #fff;
  margin-bottom: 20px;
}
.secSpace .mainCont .contItem .itemDetails .infoGrp {
  min-width: 80px;
  display: flex;
  flex-direction: column;
}
.secSpace .mainCont .contItem .itemDetails .infoGrp dt {
  font-size: clamp(15px, 1.33vw, 16px);
  margin-bottom: 6px;
}
.secSpace .mainCont .contItem .itemDetails .infoGrp dd {
  font-size: clamp(14px, 1.25vw, 15px);
}
.secSpace .mainCont .partyWrap {
  position: relative;
  padding-bottom: 100px;
}
.secSpace .mainCont .partyWrap:after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  height: 100%;
  width: 200vw;
  background: #D1D1D1;
  z-index: 0;
  pointer-events: none;
}

@media screen and (max-width: 1200px) {
  .secSpace .secSpaceIn .sideMenu {
    width: 150px;
  }
}
@media only screen and (max-width: 767px) {
  .secSpace {
    padding: 50px 0 0;
  }
  .secSpace .secSpaceIn {
    grid-template-columns: 1fr;
  }
  .secSpace .secSpaceIn .mainCont {
    grid-column: initial;
    margin: auto;
  }
  .secSpace .secSpaceIn .mainCont .ceremonyWrap {
    padding-bottom: 180px;
    width: 90%;
    margin: auto;
  }
  .secSpace .secSpaceIn .mainCont .partyWrap {
    background: #D1D1D1;
    padding: 80px 5% 0;
    margin: auto;
  }
  .secSpace .secSpaceIn .sideMenu {
    max-width: 310px;
    position: static;
    width: 90%;
    margin: 0 auto 0px;
  }
  .secSpace .secSpaceIn .sideMenu .sideTitle {
    text-align: center;
    margin-bottom: 20px;
  }
  .secSpace .secSpaceIn .sideMenu .sideNavHead {
    text-align: center;
  }
  .secSpace .secSpaceIn .sideMenu .sideNav {
    margin-bottom: 30px;
  }
  .secSpace .secSpaceIn .sideMenu .sideNav .sideList li a {
    font-size: clamp(14px, 3.85vw, 15px);
  }
  .secSpace .mainCont {
    width: 100%;
  }
  .secSpace .mainCont .partyWrap {
    background: #D1D1D1;
  }
  .secSpace .mainCont .mainHead {
    margin-bottom: 30px;
    margin-top: 0;
    padding-top: 0;
  }
  .secSpace .mainCont .mainHead .mainTitle {
    font-size: clamp(14px, 6.15vw, 24px);
  }
  .secSpace .mainCont .contList {
    grid-template-columns: 1fr;
    gap: 50px;
    width: 100%;
  }
  .secSpace .mainCont .contItem {
    width: 100%;
  }
  .secSpace .mainCont .contItem .itemHead .itemJa {
    font-size: clamp(14px, 4.62vw, 18px);
  }
  .secSpace .mainCont .contItem .itemDetails {
    flex-wrap: wrap;
    flex-direction: column;
    gap: 12px;
  }
  .secSpace .mainCont .contItem .itemDetails .infoGrp dd {
    font-size: clamp(14px, 3.85vw, 15px);
  }
}
.secCmnSlider .secCmnSliderIn {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.secCmnSlider {
  /* --- 汎用スライダーの共通スタイル --- */
}
.secCmnSlider .cmnSlider {
  width: 100%;
  padding-bottom: 25px;
}
.secCmnSlider .cmnSlider .swiper-slide img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
.secCmnSlider .cmnSlider .cmnPagination {
  text-align: left;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
}
.secCmnSlider .cmnSlider .cmnPagination .swiper-pagination-bullet {
  width: 15px;
  height: 15px;
  background-color: #ffffff;
  opacity: 1;
  margin: 0 10px 0 0 !important;
  transition: background-color 0.3s ease;
}
.secCmnSlider .cmnSlider .cmnPagination .swiper-pagination-bullet-active {
  background-color: #5c4e43;
}

@media only screen and (max-width: 767px) {
  .secCmnSlider {
    padding: 0px 0 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
  .secCmnSlider .cmnSlider {
    padding-bottom: 25px;
  }
  .secCmnSlider .cmnSlider .cmnPagination {
    left: 5%;
  }
  .secCmnSlider .cmnSlider .cmnPagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    margin: 0 8px 0 0 !important;
  }
}
.secPet {
  background-color: #ffffff;
  padding: clamp(1.563rem, -6.25rem + 12.5vw, 3.125rem);
  max-width: 1040px;
  width: 90%;
}
.secPet .secPetIn {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
}
.secPet .secPetImg {
  width: 100%;
  height: 100%;
}
.secPet .secPetImg img {
  -o-object-fit: cover;
     object-fit: cover;
  height: 100%;
  width: 100%;
  max-width: initial;
}
.secPet .secPetTxt {
  padding-left: 60px;
}
.secPet .secPetTxt .petTitle {
  font-weight: normal;
  font-size: clamp(22px, 2vw, 24px);
  margin-bottom: 25px;
  line-height: 1.3;
}
.secPet .secPetTxt .petTitle .petSubTitle {
  display: block;
  margin-top: 10px;
  letter-spacing: 0.1em;
  font-size: 15px;
}
.secPet .secPetTxt .petText {
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 50px;
}
.secPet .secPetTxt .petIconList {
  display: flex;
  gap: 30px;
  padding-left: 20px;
}
.secPet .secPetTxt .petIconList .petIconItem {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100px;
  text-align: center;
}
.secPet .secPetTxt .petIconList .petIconItem .petIconFig {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 15px;
}
.secPet .secPetTxt .petIconList .petIconItem .petIconTxt {
  font-size: 14px;
  line-height: 1.4;
}

@media screen and (max-width: 1200px) {
  .secPet .secPetIn {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .secPet .secPetIn .secPetTxt {
    padding-left: 0;
  }
}
@media only screen and (max-width: 767px) {
  .secPet {
    width: 100%;
    padding: 0px 0;
    margin-top: 0px;
    margin: auto;
  }
  .secPet .secPetIn {
    padding: 30px;
    flex-direction: column;
    gap: 40px;
  }
  .secPet .secPetImg {
    width: 100%;
    height: 100%;
  }
  .secPet .secPetImg img {
    -o-object-fit: cover;
       object-fit: cover;
    height: 100%;
    width: 100%;
    max-width: initial;
  }
  .secPet .secPetTxt {
    width: 100%;
  }
  .secPet .secPetTxt * {
    text-align: left;
  }
  .secPet .secPetTxt .petTitle {
    font-size: clamp(14px, 4.62vw, 18px);
    margin-bottom: 10px;
    text-align: left;
  }
  .secPet .secPetTxt .petTitle .petSubTitle {
    font-size: 14px;
  }
  .secPet .secPetTxt .petText {
    font-size: clamp(14px, 3.85vw, 15px);
    margin-bottom: 25px;
  }
  .secPet .secPetTxt .petIconList {
    justify-content: center;
    padding-left: 0;
    justify-content: space-between;
    gap: 0;
  }
  .secPet .secPetTxt .petIconList .petIconItem {
    width: -moz-fit-content;
    width: fit-content;
  }
  .secPet .secPetTxt .petIconList .petIconItem .petIconFig img {
    width: 70px;
    height: 70px;
  }
  .secPet .secPetTxt .petIconList .petIconItem .petIconTxt {
    text-align: center;
    font-size: clamp(14px, 4.1vw, 16px);
  }
}
.secOther .commonWidth {
  max-width: 1040px;
}
.secOther .comTlWrap {
  padding: 100px 0 40px;
}
.secOther .comTlWrap .tl {
  font-size: clamp(30px, 2.67vw, 32px);
  font-weight: 500;
}
.secOther .comTlWrap .sub {
  font-size: clamp(16px, 1.5vw, 18px);
}
.secOther .gridArea {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 20px;
  padding-bottom: 150px;
}
.secOther .gridArea .content .tx {
  font-size: clamp(15px, 1.33vw, 16px);
  padding-top: 14px;
}

@media screen and (max-width: 767px) {
  .secOther .comTlWrap .tl {
    font-size: clamp(14px, 5.64vw, 22px);
  }
  .secOther .comTlWrap .sub {
    font-size: clamp(14px, 4.1vw, 16px);
  }
  .secOther .gridArea {
    padding-bottom: 110px;
    grid-template-columns: 1fr 1fr;
    gap: 10px 15px;
  }
  .secOther .gridArea .content .tx {
    padding-top: 2px;
    font-size: 14px;
  }
}/*# sourceMappingURL=style.css.map */