@charset "UTF-8";
main { background-color: #fdf8f7; overflow: hidden; }

.support { position: fixed; bottom: 10px; right: 10px; z-index: 100; transition: .3s; }
.support.is_hide { opacity: 0; visibility: hidden; pointer-events: none; }
@media (min-width: 768px) { .support img { width: 180px; } }
@media (max-width: 767.98px) { .support { bottom: 55px; right: 5px; }
  .support img { width: 120px; } }

/* アニメーション */
@keyframes mainZoom { 0% { transform: scale(1.03); }
  100% { transform: scale(1.1); } }
/* スライダー */
.top_main { position: relative; }
.top_main > .main_slide { background-color: transparent; position: relative; overflow: visible; }
.top_main > .main_slide .swiper-wrapper { overflow: visible; }
.top_main > .main_slide .swiper-slide { position: relative; display: flex; justify-content: center; align-items: center; overflow: visible; backface-visibility: hidden; transform: translateZ(0); }
.top_main > .main_slide .swiper-slide > .slide_img_wrap { position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: inherit; border-radius: 30px; }
.top_main > .main_slide .swiper-slide > .slide_img_wrap > .slide_img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.03); will-change: transform; backface-visibility: hidden; }
.top_main > .main_slide .swiper-slide > .slide_img_wrap > .slide_img.is-zoom { animation: mainZoom 5000ms linear forwards; }
.top_main > .main_slide .swiper-slide > .main_cover { position: absolute; left: 0; top: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; z-index: 2; pointer-events: none; }
.top_main > .main_slide .swiper-slide > .main_cover img { width: 360px; height: auto; max-width: none; }
.top_main::before { content: ""; background-image: url("../images/deco/deco1.svg"); background-size: 350px 347px; width: 350px; height: 347px; position: absolute; left: calc(50% - 792px); bottom: -38px; display: block; opacity: 0.3; }
.top_main > .deco::before { content: ""; background-image: url("../images/deco/deco2.svg"); background-size: 184px 184px; width: 184px; height: 184px; position: absolute; right: calc(50% - 762px); bottom: 254px; display: block; opacity: 0.3; }
.top_main > .deco::after { content: ""; background-image: url("../images/deco/deco3.svg"); background-size: 342px 325px; width: 342px; height: 325px; position: absolute; right: calc(50% - 778px); bottom: -22px; display: block; opacity: 0.3; }
@media (min-width: 768px) { .top_main > .main_slide { margin: 50px auto 80px; width: 1000px; height: 500px; border-radius: 30px; }
  .top_main > .main_slide .swiper-slide { height: 500px; }
  .top_main > .main_slide .swiper-slide.slide1 > .main_cover { justify-content: flex-start; align-items: center; right: auto; left: clamp(-104px, calc(524px - 50vw), -30px); }
  .top_main > .main_slide .swiper-slide.slide1 > .main_cover img { width: 360px; }
  .top_main > .main_slide .swiper-slide.slide2 > .main_cover { justify-content: flex-start; align-items: center; right: auto; left: clamp(-104px, calc(524px - 50vw), -30px); }
  .top_main > .main_slide .swiper-slide.slide2 > .main_cover img { width: 360px; } }
@media (max-width: 767.98px) { .top_main { padding: 50px 0 50px 40px; }
  .top_main > .main_slide { padding: 0; }
  .top_main > .main_slide .swiper-slide { aspect-ratio: 363 / 250; }
  .top_main > .main_slide .swiper-slide > .main_cover img { width: 55%; max-width: none; }
  .top_main > .main_slide .swiper-slide.slide1 > .slide_img_wrap { border-radius: 30px 0 0 30px; }
  .top_main > .main_slide .swiper-slide.slide1 > .slide_img_wrap img { object-position: 10% center; }
  .top_main > .main_slide .swiper-slide.slide1 > .main_cover { justify-content: flex-start; align-items: center; top: 15px; left: -30px; }
  .top_main > .main_slide .swiper-slide.slide2 > .slide_img_wrap { border-radius: 30px 0 0 30px; }
  .top_main > .main_slide .swiper-slide.slide2 > .slide_img_wrap img { object-position: 35% center; }
  .top_main > .main_slide .swiper-slide.slide2 > .main_cover { justify-content: flex-start; align-items: center; top: 15px; left: -30px; }
  .top_main::before { background-size: 175px 174px; width: 175px; height: 174px; left: -74px; bottom: 38px; }
  .top_main > .deco::before { background-size: 92px 92px; width: 92px; height: 92px; right: -45px; bottom: -14px; }
  .top_main > .deco::after { background-size: 171px 163px; width: 171px; height: 163px; right: -56px; bottom: -156px; } }

/* トップメニュー */
/*.topmenu_box{ display: flex; gap: 0 38px; z-index: 2; position: relative;
	>a{ width: calc(33.3% - 25px);
		>.img{ height: 205px; max-height: 205px; object-fit: contain;
			img{ border-radius: 10px;}
		}
		>.text{ 
			h3{ font-size: 14px; margin: 13px 0 10px;}
			p{ font-size: 13px; line-height: 1.8;}
		}
	}
@media (max-width: 767.98px) { flex-wrap: wrap; padding: 0 20px;
	>a{ width: 100%; margin: 0 0 35px 0;
		&:last-child{ margin: 0;}
		>.img{ height: auto; max-height: max-content;}
		>.text{ 
			h3{ font-size: 14px;}
			p{ font-size: 13px;}
		}
	}
}
}*/
.topmenu_box { display: flex; gap: 0 38px; z-index: 2; position: relative; }
.topmenu_box > a { width: calc(33.3% - 25px); }
.topmenu_box > a > .img { height: 205px; max-height: 205px; display: flex; align-items: center; justify-content: center; }
.topmenu_box > a > .img img { width: auto; height: auto; max-width: 100%; max-height: 100%; border-radius: 10px; }
.topmenu_box > a > .text h3 { font-size: 14px; margin: 13px 0 10px; }
.topmenu_box > a > .text p { font-size: 13px; line-height: 1.8; }
@media (max-width: 767.98px) { .topmenu_box { flex-wrap: wrap; padding: 0 20px; }
  .topmenu_box > a { width: 100%; margin: 0 0 35px 0; }
  .topmenu_box > a:last-child { margin: 0; }
  .topmenu_box > a > .img { height: auto; max-height: 205px; display: flex; align-items: center; justify-content: center; }
  .topmenu_box > a > .img img { width: auto; height: auto; max-width: 100%; max-height: 205px; border-radius: 10px; }
  .topmenu_box > a > .text h3 { font-size: 14px; }
  .topmenu_box > a > .text p { font-size: 13px; } }

/* サイドイメージ */
.sideimg_box { display: flex; align-items: center; margin: 70px auto 80px; position: relative; min-height: 420px; }
.sideimg_box > .text { width: 550px; padding: 0 50px 0 30px; z-index: 2; position: relative; }
.sideimg_box > .text h3 { font-size: 26px; font-family: "Noto Serif JP", serif; margin: 0 0 26px 0; letter-spacing: 0.5px; }
.sideimg_box > .text .point { background-color: #77155a; color: #fff; font-family: "Noto Serif JP", serif; font-size: 26px; width: 450px; height: 70px; display: flex; justify-content: center; align-items: center; letter-spacing: 6px; margin: 0 0 20px 0; }
.sideimg_box > .text .point span { background-color: #fff; color: #000; font-weight: bold; border-radius: 50px; font-size: 20px; letter-spacing: 4px; width: 200px; height: 40px; display: flex; justify-content: center; align-items: center; margin: 0 0 0 24px; }
.sideimg_box > .text .access { margin: 0 0 15px 0; }
.sideimg_box > .text p { font-size: 16px; margin: 0 0 26px 0; line-height: 2.0; width: 450px; letter-spacing: 1px; }
.sideimg_box > .text .smp { font-size: 14px; margin: 0; }
.sideimg_box > .img { position: absolute; width: 633px; right: -184px; z-index: 2; }
.sideimg_box > .img img { border-radius: 30px 0 0 30px; }
.sideimg_box > .img iframe { border-radius: 30px 0 0 30px; }
.sideimg_box::before { content: ""; background-image: url("../images/deco/deco2.svg"); background-size: 582px 583px; width: 582px; height: 583px; position: absolute; left: calc(50% - 838px); bottom: -102px; display: block; opacity: 0.3; }
.sideimg_box.reverse { justify-content: flex-end; margin: 70px auto 180px; }
.sideimg_box.reverse > .text { padding: 0 30px 0 50px; }
.sideimg_box.reverse > .img { position: absolute; width: 633px; left: -184px; }
.sideimg_box.reverse > .img img { border-radius: 0 30px 30px 0; }
.sideimg_box.reverse::before { background-image: url("../images/deco/deco1.svg"); background-size: 582px 575px; width: 582px; height: 575px; left: auto; right: calc(50% - 814px); bottom: -94px; }
.sideimg_box.access { margin: 70px auto 100px; }
.sideimg_box.access::before { background-image: url("../images/deco/deco2.svg"); left: calc(50% - 838px); bottom: -86px; }
.sideimg_box.access .access_memo { position: absolute; right: 50px; top: 10px; background-color: #77155a; color: #fff; border-radius: 50%; width: 105px; height: 105px; display: flex; justify-content: center; align-items: center; text-align: center; font-size: 17px; font-weight: bold; }
@media (max-width: 767.98px) { .sideimg_box { align-items: flex-start; flex-wrap: wrap; flex-direction: column-reverse; margin: 45px auto 75px; }
  .sideimg_box > .text { width: 100%; padding: 0; margin: 15px 0 0 0; position: relative; }
  .sideimg_box > .text h3 { font-size: 18px; margin: 0 0 15px 0; }
  .sideimg_box > .text .point { font-size: 16px; width: 100%; height: 38px; letter-spacing: 6px; margin: 0 0 20px 0; justify-content: flex-start; padding: 0 0 0 14px; }
  .sideimg_box > .text .point span { font-size: 11px; letter-spacing: 4px; width: 100px; height: 22px; margin: 0 0 0 24px; }
  .sideimg_box > .text .access { margin: 0 0 30px 0; }
  .sideimg_box > .text p { font-size: 13px; margin: 0 0 26px 0; line-height: 1.8; width: 100%; letter-spacing: 1px; }
  .sideimg_box > .text .smp { font-size: 12px; margin: 0; position: absolute; bottom: 0; }
  .sideimg_box > .img { position: relative; width: calc(100% + 15px); right: -5px; }
  .sideimg_box > .img iframe { width: 100%; height: 232px; }
  .sideimg_box::before { content: ""; background-image: url("../images/deco/deco2.svg"); background-size: 291px 292px; width: 291px; height: 292px; position: absolute; left: calc(50% - 256px); bottom: -6px; display: block; opacity: 0.3; }
  .sideimg_box.reverse { justify-content: flex-end; flex-direction: column; margin: 50px auto 0; }
  .sideimg_box.reverse > .text { padding: 0; }
  .sideimg_box.reverse > .img { position: relative; width: calc(100% + 15px); left: -20px; }
  .sideimg_box.reverse > .img img { border-radius: 0 30px 30px 0; }
  .sideimg_box.reverse::before { background-image: url("../images/deco/deco1.svg"); background-size: 291px 278px; width: 291px; height: 278px; left: auto; right: calc(50% - 300px); bottom: 72px; }
  .sideimg_box.access { margin: 15px auto 20px; flex-direction: column; padding: 0 0 25px 0; }
  .sideimg_box.access::before { background-image: url("../images/deco/deco2.svg"); left: calc(50% - 288px); bottom: 374px; }
  .sideimg_box.access .access_memo { position: absolute; right: 0; top: 0; background-color: #77155a; color: #fff; border-radius: 50%; width: 90px; height: 90px; display: flex; justify-content: center; align-items: center; text-align: center; font-size: 15px; font-weight: bold; } }
