/* =============================================
　　root
============================================= */

:root {

	--color-primary:#ff78a0;
	--color-secondary:#fff05a;
	--color-accent:#b28b46;
	--color-base:#000;
	
	--color-flowerload:#ffccdb;
	--color-flower:#ffe57e;
	
	--color-hotels:#11133f;
	--color-hotels:#f9f7eb;
	--color-limited-event: #f9f7eb;
	--color-tastekyushu:#00648f;
	--color-rose:#E15874;
	
	--color-miffy-yellow:#fdcd00;
	--color-miffy-orange:#DF5E0F;
	--color-miffy-green:#15722C;
	--color-miffy-blue:#004C97;
	--color-miffy-brown:#875a3c;

	--spot-font-header-h:clamp(2.8rem, 0.286rem + 5.24vw, 5rem);
	--spot-font-header-p:clamp(1.6rem, 0.914rem + 1.43vw, 2.2rem);


	--spot-font-size-title: clamp(2.1rem, 1.114rem + 1.43vw, 2.8rem);
	--spot-font-size-name:clamp(2.6rem, 1.914rem + 1.43vw, 3.2rem);
 	--spot-font-size-text:clamp(1.4rem, 1.171rem + 0.48vw, 1.6rem);

	--layout-space-section:2.4rem;
	--layout-space-div:1.6rem;
}

@media screen and (min-width: 1025px) {
	:root {
		--layout-space-section:7.2rem;
		--layout-space-div:3.2rem;
	}
}

.htb-pagetop {
	opacity: 1;
	visibility: visible;
}
@media screen and (max-width: 1024px) {
  body.p-bottom .h-header__cta {
    bottom:0px;
  }
}

/****************************************
nav
****************************************/

#tulip .dialog-menu {
	position: fixed;
	z-index:-2;
	top:79px;
	right: 0;
	left: 0;
	margin: 0 auto;
	transition: all 0.4s;
	opacity: 0;
	transform: translateY(-100%);
	width: 100%;
	max-height: max-content;
}

#tulip.scroll .dialog-menu {
	top:79px;
	opacity: 1;
	z-index: 1001;
	display: flex;
	justify-content: center;
	transform: translateY(0);
	align-items: center;
	overflow: visible;
	justify-content: space-evenly;
	background: var(--color-primary);
	padding:0.5rem;
	border-radius: 0;
	border:0px #fff solid;
	border-top: 0;
}

/* ダイアログメニューの表示前*/
dialog.js-dialog-menu.show-from,
dialog.js-dialog-menu.hide-to{
  translate: 0% -100%;
}


#tulip.upfixed .dialog-menu {
	top:137px;
  transform: translateX(0);
}

#tulip.app.upfixed .dialog-menu {
	top:79px;
	transform: translateX(0);
}

#tulip .dialog-menu .dialog-menu-btn {
	width: 60px;
	height: 60px;
	position: absolute;
	border: 2px var(--color-primary) solid;
	border-radius: 9999px;
	padding: 1rem;
	top: 0.5rem;
	right: 0.5rem;
	background: #fff;
}
#tulip .dialog-menu-btn span {
	background-color:var(--color-primary);
	height: 2px;
	width: 100%;
}
#tulip .dialog-menu-btn.js-dialog-menu-close {
  background: transparent;
  top:1rem;
  right:1rem;
}
#tulip .dialog-menu-btn.js-dialog-menu-close span {
  background-color: var(--color-dialog-menu-btn);
}

#tulip .dialog-menu a {
	display: block;
	width:100%;
	height: 40px;
}
#tulip .dialog-menu img{
  width: auto;
  height: 100%;
}

#tulip .js-dialog-menu {
	background:var(--color-primary);
	width: 100%;
	max-height: max-content;
}
#tulip .js-dialog-menu .logo {
  height: auto;
  margin: 1.6rem auto;
  max-height: 140px;
  width: 100%;
}
#tulip .js-dialog-menu .body {
	padding: 0 2.4rem 2.4rem;
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 2.4rem;
}

#tulip .js-dialog-menu .body > ul{
	margin:30px 0 60px;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

#tulip .js-dialog-menu .body > ul > li{
	border-bottom: 1px rgb(254 254 254 / 50%) solid;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}
#tulip .js-dialog-menu .body > ul li a,
#tulip .js-dialog-menu .body > ul li dt{
	font-weight: 700;
	font-size: 16px;
	line-height: 100%;
	vertical-align: middle;
	color: var(--color-dialog-menu-link);
	text-decoration: none;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	height: 100%;
	background: transparent;
	padding:2rem;
	cursor: pointer;
}

#tulip .js-dialog-menu .body > ul > li > ul a,
#tulip .js-dialog-menu .body > ul > li > dl dd a{
	font-weight: 500;
	font-size: 13px;
	line-height: 100%;
	vertical-align: middle;
	color: var(--color-black);
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	height: 100%;
}
#tulip .js-dialog-menu .body > ul > li > dl dd a em{
	font-weight: 700;
	font-size: 16px;
}

#tulip .js-dialog-menu .body ul > li a:after {
	content: "";
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	background-color: currentColor;
	background-repeat: no-repeat;
	background-position: center;
	width: 16px;
	height: 16px;
	display: block;
	mask-image: url(data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%202%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20123.93%20123.93%22%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1-2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%201%22%3E%20%3Cpath%20d%3D%22M61.97%2C0C27.74%2C0%2C0%2C27.74%2C0%2C61.97s27.74%2C61.97%2C61.97%2C61.97%2C61.97-27.74%2C61.97-61.97S96.19%2C0%2C61.97%2C0ZM81.11%2C65.62l-23.24%2C23.24c-1.01%2C1.01-2.33%2C1.51-3.65%2C1.51s-2.64-.5-3.65-1.51c-2.02-2.02-2.02-5.29%2C0-7.3l19.59-19.59-19.59-19.59c-2.02-2.02-2.02-5.29%2C0-7.3s5.29-2.02%2C7.3%2C0l23.24%2C23.24c2.02%2C2.02%2C2.02%2C5.29%2C0%2C7.3Z%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E);
}

#tulip .js-dialog-menu .body > ul li dt:after {
	content: "";
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	background-color: currentColor;
	background-repeat: no-repeat;
	background-position: center;
	width: 16px;
	height: 16px;
	display: block;
	mask-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%202%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2015.5%2015.5%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20none%3B%20stroke%3A%20%23fff%3B%20stroke-linecap%3A%20round%3B%20stroke-linejoin%3A%20round%3B%20stroke-width%3A%201.5px%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1-2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%201%22%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M7.75.75v14%22%2F%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M.75%2C7.75h14%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
	color: var(--color-dialog-menu-link);
	position: relative;
	top: 0;
	right:0;
	transform: unset;
}

#tulip .js-dialog-menu .body > ul li dt.active:after {
	mask-image:  url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%202%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2015.5%201.5%22%3E%20%3Cdefs%3E%20%3Cstyle%3E%20.cls-1%20%7B%20fill%3A%20none%3B%20stroke%3A%20%23281815%3B%20stroke-linecap%3A%20round%3B%20stroke-linejoin%3A%20round%3B%20stroke-width%3A%201.5px%3B%20%7D%20%3C%2Fstyle%3E%20%3C%2Fdefs%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1-2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%201%22%3E%20%3Cpath%20class%3D%22cls-1%22%20d%3D%22M.75.75h14%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
}
#tulip .js-dialog-menu .body > ul li dd {
  padding: 0;
  background: transparent;
  border: 0;
}


@media screen and (min-width: 1024px) {
	#tulip.upfixed .dialog-menu,
	#tulip.scroll .dialog-menu {
	  top: 84px;
	  transform: translateX(0);
	}
	#tulip .dialog-menu .dialog-menu-btn {
		width: 80px;
		height: 80px;
		padding: 2rem;
	}

	#tulip .dialog-menu a {
	  height: 60px;
	}
}


/* =============================================
　　swiper
============================================= */


#tulip .swiper {
  width: 100%;
  min-width: 0;
}

#tulip .swiper-slide {
  min-width: 0;
  display: flex;
  height: auto;
}
#tulip .swiper-wrapper {
  display: flex !important;
   justify-content: flex-start;
   height: auto;
}


#tulip .swiper-horizontal>.swiper-pagination-bullets,
#tulip .swiper-pagination-bullets.swiper-pagination-horizontal,
#tulip .swiper-pagination-custom,
#tulip .swiper-pagination-fraction {
	position: relative;
	margin-top: 4rem;
	bottom:0;
	top:0;
}
#tulip .swiper-pagination-bullet-active {
  opacity: var(--swiper-pagination-bullet-opacity, 1);
  background: var(--color-black);
}
#tulip .swiper-pagination-bullet {
  width:10px;
  height:10px;
  display: inline-block;
}

#tulip .swiper-button-next,
#tulip .swiper-button-prev {
  position: absolute;
  width: auto;
  height: auto;
}
#tulip .swiper-button-next:after,
#tulip .swiper-button-prev:after {
	content: "";
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	background-color:#000;
	background-repeat: no-repeat;
	background-position: center;
	width: 50px;
	height:50px;
	display: block;
	mask-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%202%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20157.58%20157.58%22%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1-2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%201%22%3E%20%3Cpath%20d%3D%22M78.79%2C0C35.27%2C0%2C0%2C35.27%2C0%2C78.79s35.27%2C78.79%2C78.79%2C78.79%2C78.79-35.27%2C78.79-78.79S122.3%2C0%2C78.79%2C0ZM67.88%2C111.24l-2.63-2.63%2C29.81-29.81-29.81-29.81%2C2.63-2.63%2C32.45%2C32.45-32.45%2C32.45Z%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
}

#tulip .swiper-button-prev:after {
  transform: rotate(180deg);
}
#tulip .js-swiper-loop .swiper-wrapper {
  transition-timing-function: linear;
}


#tulip .js-swiper-spot .swiper-button-next,
#tulip .js-swiper-spot .swiper-button-prev {
  background: #000;
  border-radius: 999px;
}

#tulip .js-swiper-spot .swiper-button-prev:after,
#tulip .js-swiper-spot .swiper-button-next:after {
  background-color: #fff;
}


#tulip .js-swiper-spot .swiper-slide figure p {
	position: absolute;
	bottom: 1rem;
	color: #000;
	right: 1rem;
	background: #fff;
	padding: 1rem;
	opacity: 0;
	transform: translateX(100%);
	transition: opacity 0.8s 
	ease, transform 0.8s 
	ease;
}
#tulip .js-swiper-spot .swiper-slide-active figure p {
  opacity: 1;
  transform: translateX(0);
}

/* =============================================
　　text-
============================================= */


.text-self{
  font-family: var(--font-family-Zen-Mi);
}


.text-heading{
  font-size: var(--xmas-font-size-headding);
  text-align: center;
  font-weight: 300;
}
.text-read{
  font-size: var(--font-size-read);
  font-weight: 500;
}

.text-base{
  font-size: var(--font-size-base);
  font-weight: 500;
}
.text-2xl{
  font-size: var(--font-size-2xl);
}
.text-xl{
  font-size: var(--font-size-xl);
}
.text-lg{
  font-size: var(--font-size-lg);
}
.text-md{
  font-size: var(--font-size-md);
}
.text-sm{
  font-size: var(--font-size-sm);
}
.text-xs{
  font-size: var(--font-size-xs);
}
.text-xxs{
  font-size: var(--font-size-xxs);
}

[class^="text-"] small {
  font-size:70%;
}

/* =============================================
　　.align-
============================================= */

.align-c{
text-align: var(--align-center);
}
.align-c-sp{
text-align: var(--align-center-sp);
}
.align-l{
text-align: var(--align-left);
}
.align-l-sp{
text-align: var(--align-left-sp);
}
.align-r{
text-align: var(--align-right);
}
.align-r-sp{
text-align: var(--align-right-sp);
}

/* =============================================
　　img
============================================= */

.img {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
}
figure{
	position: relative;
	display: flex;
	height: 100%;
}
figure figcaption{
  position: absolute;
  bottom: 5px;
  right: 15px;
  color: #fff;
  font-family: var(--font-family-Zen-Go);
  font-weight: 600;
  font-size: 12px;
    text-shadow: 1px 1px 0 #000, -1px -1px 0 #000;
  
}
figure figcaption[data-color="black"]{
  color: #000;
    text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff;
}
figure figcaption img{
  aspect-ratio: auto !important;
  width: 80px;
}


/* =============================================
　　.section
============================================= */

#tulip main{
	font-family: var(--font-family-Zen-Go);
	position: relative;
	color:var(--color-base);
	font-weight:500;
}


  /* アニメーションさせたい要素の基本スタイル */
  .fade-in {
    opacity: 0;
    transition: opacity 0.8s ease-out;
  }
  .fade-in.active {
    opacity: 1;
  }
  .fade-in-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  }
  .fade-in-up.active {
    opacity: 1;
    transform: translateY(0);
  }



 /* アニメーションの定義 */
  @keyframes riseUp {
    /* 開始時（下から、透明な状態） */
    from {
      opacity: 0;
      transform: translateY(30px);
    }
    /* 終了時（定位置で、不透明な状態） */
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }


article {
  position: relative;
}
picture {
  width: 100%;
  display: flex;
}

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

.c-section{
	max-width: 100%;
	position: relative;
	padding:0 0 calc(var(--layout-space-section) * 3);
	position: relative;
	z-index: 1;
	display: flex;
	gap: calc(var(--layout-space-section) * 1.5);
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.c-section:after{
  content: "";
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: cover;
  mask-size: cover;
  background-color: currentColor;
  width: 100%;
  height: calc(var(--layout-space-section) * 2);
  display: block;
  transition: all 0.4s;
  mask-image: url(data:image/svg+xml;charset=utf8,%3Csvg%20class%3D%22circle%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20width%3D%22100%25%22%20height%3D%2230%22%20viewBox%3D%220%200%20100%20100%22%20preserveAspectRatio%3D%22none%22%3E%20%3Cpath%20d%3D%22M0%20100%20C40%200%2060%200%20100%20100%20Z%22%3E%3C%2Fpath%3E%20%3C%2Fsvg%3E);
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}


.c-section__body{
	width: 100%;
	position: relative;
	padding:0;
	display: flex;
	align-items: center;
	justify-content: center;
	justify-items: center;
	gap: var(--layout-space-section);
	flex-wrap: wrap;
	flex-direction: column;
}
.c-section__contents{
	width: 100%;
	position: relative;
	padding:0 var(--layout-space-section);
	display: flex;
	align-items: center;
	justify-content: center;
	justify-items: center;
	gap: var(--layout-space-section);
	flex-wrap: wrap;
	flex-direction: column;
	max-width: 1440px;
}

.contents__inner {
  display: grid;
  gap: 2rem;
  justify-content: center;
  justify-items: center;
}

.c-section__header{
	position: relative;
	display: grid;
	align-items: center;
	justify-content: center;
	justify-items: center;
	gap: var(--layout-space-div);
	padding: calc(var(--layout-space-section) * 0) var(--layout-space-section) 0;
	max-width: 1440px;
}
.c-section__header:before{
	content: "";
}

.c-section__header > div{
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	justify-items: center;
	gap: var(--layout-space-div);
	font-size:var(--spot-font-header-p);
}
.c-section__header h2{
	font-weight: 300;
	font-size:var(--spot-font-header-h);
	line-height: 130%;
	  font-family: var(--font-family-Zen-Mi);
}
.c-section__header h2 budoux-ja{
	line-height: 1.6;
	display: inline;
	background: linear-gradient(transparent 98%, #000);
}
.c-section__header p{
	font-weight:500;
	line-height: 150%;
}
.c-section__header img{
	width: 90%;
	max-width: 100%;
	max-height: 200px;
	object-fit: contain;
}

.spot-list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--layout-space-section) * 2.5);
}

.spot {
  display: grid;
  gap: 2.4em;
}

.spot .spot-inner {
	display: grid;
	position: relative;
}
.spot-img {
  position: relative;
  overflow: hidden;
  height: 100%;
}
.spot-img img{
	aspect-ratio: 4 / 3;
}

.spot-item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  justify-content: flex-start;
  height: auto;
  transition: 0.6s all;
  position: relative;
  gap: 1.6em;
}
.spot-item .txt {
  padding:calc(5% * 1.5) 5%;
  display: flex;
  gap: 2.4rem;
  position: relative;
  align-items: center;
  align-content: space-between;
  flex-direction: column;
  justify-content: flex-start;
}

.spot-item .txt .title {
	font-size: var(--spot-font-size-title);
	font-weight: 500;
	text-align: center;
	line-height: 125%;
	font-family: var(--font-family-Zen-Mi);
}
.spot-item .txt .name {
	border-bottom: 1px dashed;
	font-size: var(--spot-font-size-name);
	font-family: var(--font-family-Zen-Mi);
	font-weight: 500;
	letter-spacing: -1px;
	text-align: center;
	line-height: 130%;
	padding-bottom: 1.6rem;
}
.spot-item .txt .read {
	font-size: calc(var(--spot-font-size-name) * 0.8);
	font-weight: 700;
	letter-spacing: -1px;
}
.spot-item .txt p {
	font-size: var(--spot-font-size-text);
}
.spot-item .txt small{
	font-size:60%;
}

.spot-item .btn {
	max-width: 320px;
	margin: 0 auto;
	font-size: var(--spot-font-size-text);
	background-color: #000;
	border-color: #000;
}

.spot .spot-item-inner {
	display: grid;
	position: relative;
	width: 85%;
	background: rgb(255 255 255 / 10%);
}
.spot .spot-item-inner .txt p {
	font-size: calc(var(--spot-font-size-text) * 0.8);
}


.detail dl{
	display: grid;
	justify-content: flex-start;
	align-items: start;
	margin: 10px auto;
	position: relative;
	gap: 10px;
	grid-template-columns:auto 1fr;
	width: 100%;
	font-size: var(--spot-font-size-text);
}
.detail dl dt{
	width: 100px;
	display: block;
	background: #000;
	color: #fff;
	border-radius: 5px;
	margin-right: 10px;
	padding: 3px 10px;
	line-height: 1.2;
	text-align: center;
}

.link {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

@media screen and (min-width: 1025px) {
	.c-section:before{
	  content: "";
	  display: block;
	  position: absolute;
	  top: 50%;
	  transform: translateY(-50%);
	  left: 0;
	  right: 0;
	  width: 100%;
	  max-height: 100%;
	  opacity: 0.6;
	  aspect-ratio: 1 / 1;
	  background: #fff;
	  border-radius: 9999px;
	  z-index: -1;
	    transition: all 0.4s;
	}
	.c-section__header {
		gap:0px;
		align-items: start;
		justify-content: space-between;
		width: 100%;
	}
	.c-section__header.reverse {
		grid-template-columns: max-content min-content;
	}
	.c-section__header.reverse  img {
		order: 0;
	}
  .c-section__header.reverse > div {
  }
	.c-section__header > div {
	  align-items: flex-start;
	}
	.c-section__header img {
		order: 2;
		width: 100%;
		max-width: 500px;
		min-height: 300px;
		object-position: top;
	}

	.spot .spot-inner {
		gap: 2em;
		max-width: 1440px;
		grid-template-columns: 1.8fr 1fr;
		align-items: center;
	}
	.spot:nth-child(even) .spot-inner {
		grid-template-columns:1fr 1.8fr;
	}
	.spot:nth-child(even) .spot-img {
	    order: 2;
	}

	.spot .spot-item-inner {
	  width: 100%;
	  grid-template-columns: 1fr 1.5fr;
	}

}



/* =============================================
　　article#fv
============================================= */

article#fv{
	position: relative;
	  background: #FFC107;
}
article#fv:before {
  content: "";
}

article#fv .c-section {
  padding:0;
    gap: 0;
}
article#fv .c-section:before ,
article#fv .c-section:after {
	display:none;
}

article#fv .c-section__contents {
  position: relative;
  display: block;
}

article#fv img{
}


article#fv .c-section .txt {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items:center;
	gap:0.5rem;
	flex-direction: column;
	margin: 2.4rem auto;
}

article#fv .c-section h1{
	font-family: var(--font-family-Zen-Mi);
	font-size: calc(var(--spot-font-header-h) * 1.3);
	color: #fff;
	line-height: 110%;
	width: 100%;
	text-align: center;
}
article#fv .c-section p.read {
	padding:0 var(--layout-space);
	text-align:center;
	font-size:calc(var(--spot-font-header-h) * 0.6);
	font-family: var(--font-family-Zen-Mi);
	color:#fff;
	line-height: 110%;
}


@media screen and (min-width: 1025px) {
	article#fv img {
	  aspect-ratio: 16 / 9;
	  aspect-ratio: 250 / 107;
	}
	article#fv .c-section .txt{
		margin: 3.6rem auto;
	}
}

/* =============================================
　　article#term
============================================= */

article#term{
	position: relative;
}
article#term:before {
  content: "";
}
article#term .c-section {
  z-index: 1;
  padding-top:calc(var(--layout-space-section) * 1);
}
article#term .c-section:after {

	background-color:var(--color-flowerload);
	background-color:rgba(255, 128, 168, 1);
}


article#term .c-section__body {
	background: var(--color-primary);
}


article#term .c-section {
  background: #FFC107;
}
article#term .c-section:before{
	display:none;
}



article#term .c-section .txt {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: 1rem;
	flex-direction: column;
}

article#term .c-section h1{
	font-family:var(--font-family-Zen-Mi) ;
	font-size: calc(var(--spot-font-header-h)* 1.5);
	color:#fff;
	line-height: 1.3;
	width: 100%;
	margin-bottom:1.6rem;
}
article#term .c-section p.read {
	padding:0 var(--layout-space);
	text-align: left;
	font-size:calc(var(--spot-font-header-h) * 0.9);
	max-width: 800px;
	font-family: var(--font-family-Zen-Mi);
	color:#fff;
}

article#term .c-section p.text {
	padding:0 var(--layout-space);
	text-align: left;
	font-size: var(--font-size-md);
	max-width: 800px;
	font-family: var(--font-family-Zen-Mi);
	color:#fff;
}


#term .news-box{
	font-size: var(--font-size-sm);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #fff;
	border-radius: 1rem;
	color: #000;
	overflow: hidden;
	align-items: stretch;
	border: 2px var(--color-primary) solid;
}
#term .news-box dt{
	padding: 1rem;
	background: var(--color-primary);
	width: 100%;
	white-space: nowrap;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}
#term .news-box dd{
	padding: 1rem;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
#term .news-box dd a {
  color: #000 !important;
    text-align: left;
}


#term .movie {
	width: 100%;
	z-index: 1;
	position: relative;
	aspect-ratio: 4 / 3;
	  overflow: hidden;
}
#term .movie video {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 100%;
	height: 100%;
	min-width: 100%;
	min-height: 100%;
	transform: translate(-50%,-50%);
}


@media screen and (min-width: 1025px) {


	article#term .c-section h1 {
	  text-align: center;
	}

	#term .news-box {
	  flex-direction: row;
	}
	#term .news-box dt {
	  width: auto;
	}
	#term .movie {
	    aspect-ratio: 16 / 7;
	    margin: 0 auto;
	    max-width:1000px;
	    min-width:1000px;
	}

}

/* =============================================
　　article#flowerload
============================================= */

article#flowerload{
	background: var(--color-flowerload);
	background: linear-gradient(180deg,rgba(255, 128, 168, 1) 0%, rgba(255, 204, 219, 1) 10%);
}

article#flowerload .c-section:after {
	background-color:var(--color-flower);
	
}

article#flowerload .spot-item .txt .name {
}
article#flowerload .spot-item .txt .name  budoux-ja {
  display: inline;
  background: linear-gradient(rgb(255 255 255 / 70%) 0%, rgb(255 255 255 / 70%));
  line-height: 1.8;
  color: var(--color-primary);
}


article#flowerload .logo {
	width: 100%;
	max-width:800px;
	/*
	padding:0 0 var(--layout-space-section) ;
	*/
	font-size:calc(clamp(6rem, 1.429rem + 9.52vw, 10rem) * 0.9);
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin: 0 auto 1.6rem;
}
article#flowerload .logo svg{
	line-height: 100%;
	fill: #fff;
	width: 60%;
	max-width: 460px;
	margin: 0 auto;
	display: block;
}

article#flowerload .logo h1{
  width: 100%;
	font-family: var(--font-family-Zen-Mi);
	font-size: 55%;
	line-height: 110%;
	letter-spacing: -5px;
	text-align: center;
}

article#flowerload .logo p{
	font-family: var(--font-family-Zen-Mi);
	font-size:30%;
	line-height: 100%;
}

article#flowerload .logo p.date{
	font-family: var(--font-family-Zen-Mi);
	font-size:40%;
}

@media screen and (min-width: 1025px) {

	article#flowerload{
		background: linear-gradient(180deg,rgba(255, 128, 168, 1) 0%, rgba(255, 204, 219, 1) 10%);
	}
	article#flowerload .logo {
	  transform: translateY(-30px);
	  margin:0 auto;
	  z-index:1;
	    position: relative;
	}
	article#flowerload .logo svg{
	  width: 50%;
	}
}

/* =============================================
　　article#flower
============================================= */

article#flower{
	background: var(--color-flower);
}
article#flower .c-section:after {
	background-color:var(--color-limited-event);
}
article#flower .spot-item .txt .title {
}

article#flower .spot-item .txt .title budoux-ja {
  display: inline;
  background: linear-gradient(rgb(255 255 255 / 70%) 0%, rgb(255 255 255 / 70%));
  line-height: 1.8;
  color: var(--color-primary);
}

.nighttulip{
	background: radial-gradient(circle, rgba(29, 48, 145, 1) 0%, rgba(72, 37, 131, 1) 100%);
	color:#fff;
	overflow: hidden;
}
article#flower .nighttulip .spot-item .txt .title budoux-ja {
  background:none;
}


/* =============================================
　　#hotels
============================================= */


.js-swiper-loop .swiper-wrapper {
    transition-timing-function: linear;
}

article#hotels .swiper {
  width: 100%;
  min-width: 0;
}

article#hotels .swiper-slide {
  min-width: 0;
  display: flex;
  height: auto;
}
article#hotels .swiper-wrapper {
  display: flex !important;
  justify-content: flex-start;
  height: auto;
  z-index:-1;
}

article#hotels .swiper-button-next,
article#hotels .swiper-button-prev {
	position: absolute;
	width: auto;
	height: auto;
	background: #fff;
	border-radius: 9999px;
}
article#hotels .swiper-button-next:after,
article#hotels .swiper-button-prev:after {
  content: "";
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  background-color: #000;
  background-repeat: no-repeat;
  background-position: center;
  width: 50px;
  height: 50px;
  display: block;
  mask-image: url(data:image/svg+xml;charset=utf8,%3Csvg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%202%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20157.58%20157.58%22%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1-2%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%201%22%3E%20%3Cpath%20d%3D%22M78.79%2C0C35.27%2C0%2C0%2C35.27%2C0%2C78.79s35.27%2C78.79%2C78.79%2C78.79%2C78.79-35.27%2C78.79-78.79S122.3%2C0%2C78.79%2C0ZM67.88%2C111.24l-2.63-2.63%2C29.81-29.81-29.81-29.81%2C2.63-2.63%2C32.45%2C32.45-32.45%2C32.45Z%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E);
}
article#hotels .swiper-button-prev:after {
transform: rotate(180deg);
}


article#hotels {
	position: relative;
	overflow: hidden;
	background:var(--color-hotels);
}

article#hotels:before {
	content: "";
}
article#hotels .c-section:before {
	display:none;
}

article#hotels h2{
	text-align: center;
	font-weight: 300;
	font-size: calc(var(--spot-font-header-h) * 0.8);
	line-height: 130%;
	font-family: var(--font-family-Zen-Mi);
}


article#hotels h3{
	font-family: var(--font-family-Zen-Mi);
	line-height: 135%;
	border-top: 3px double;
	border-bottom: 3px double;
	padding: 1.6rem;
	display: table;
	margin: 0 auto 1.6rem;
}


article#hotels .c-section__header > div{
	color:#fff;
}


article#hotels .c-section {
}
article#hotels .c-section:after {
	display:none;
}

article#hotels .c-section__contents {
	max-width: 100%;
	padding: 0;
}



article#hotels .tokuten .inner,
article#hotels .plan .inner {
	display: grid;
	gap: 2rem;
}


article#hotels .text-heading{
color: var(--color-navy);
}
article#hotels .enjoy {
	display: grid;
	gap: 2rem;
	text-align: center;
	color:var(--color-navy);
}
article#hotels .enjoy .img {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
article#hotels .enjoy img{
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center center;
}
article#hotels .enjoy img:last-child{
	grid-column: 1 / 3;
}
article#hotels .enjoy img:last-child{
	aspect-ratio: 16 / 9;
}




article#hotels .item {
	background: #ffffff;
	background: rgb(255 255 255 / 20%);
	background: #11133f;
	border-radius: 2rem;
	overflow: hidden;
	border:0px #fff solid;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	justify-content: flex-start;
	height:auto;
	transition: 0.6s all;
	padding-bottom: 2rem;
	position: relative;
	height: 100%;
}
article#hotels  .swiper-slide:not(.swiper-slide-active) .item {
  transform: scale(0.95);
}


article#hotels .item .txt {
  padding: calc(5% / 1) calc(5% / 1);
  display: flex;
  gap: 10px;
  position: relative;
  align-items: center;
  align-content: space-between;
  flex-direction: column;
  justify-content: flex-start;
}

article#hotels  .item .txt p{
  font-family: var(--font-family-Zen-Mi);
  text-align: left;
}

article#hotels  .item .txt p.name{
	  color:#fff;
	border-bottom: 1px solid;
	text-align:center;
}


article#hotels  .item .img {
  width: 100%;
  height: auto;
  overflow: hidden;
}

article#hotels  .item img {
  width: 100%;
  aspect-ratio: 4 / 3;
}

article#hotels  .swiper-slide-active .item img {
  transform: scale(1.15);
  transform-origin: bottom;
}

article#hotels  .item img {
  width: 100%;
  aspect-ratio: 4 / 3;
}

article#hotels  .btn{
	background-color: #fff;
	border-color: #000;
	color: var(--winter-color-primary);
	max-width: 260px;
	margin: 0 auto;
}

article#hotels .js-swiper-hotels{
  padding-left:3.4rem;
}


article#hotels .js-swiper-hotels .item {
  padding-bottom: 2rem;
}
article#hotels .item > .txt:first-of-type {
	flex: 1;
	justify-content: center;
}


article#hotels .fivehotels {
	display: grid;
	gap: 2rem;
	text-align: center;
	color:#11133f;
}
article#hotels .fivehotels .item .txt p{
	  color:#fff;
}
article#hotels .fivehotels .btn{
	border-color: #fff;
}


article#hotels .tokuten {
	background: var(--color-accent);
	padding: 3rem 0;
	border-radius:10rem 0rem 10rem 0rem;
	display: grid;
	gap: 2rem;
	text-align: center;
	color: #fff
}

article#hotels .js-swiper-tokuten .item {
	color: #000;
	border: 0;
	background: rgb(255 255 255 / 70%);
}

article#hotels .tokuten .text-point {
	position: absolute;
	background:#c3923a;
	border-radius: 9999px;
	padding: 1rem 3rem;
	line-height: 100%;
	color: #fff;
	left: auto;
	right: auto;
	top: -20px;
	display: table;
	margin: 0 auto;
	font-size: 16px;
	font-family: var(--font-family-Zen-Mi);
	z-index: 1;
	text-align: center;
}

article#hotels .tokuten .img {
  border-radius: 2rem 2rem 0 0;
}

article#hotels .tokuten .item .img:after {
}
article#hotels .tokuten .item p.name{
	color: var(--winter-color-secondary);
	padding-top: 2rem;
	line-height: 1.4;
	padding-bottom: 1rem;
}
article#hotels .tokuten .item p.name em{
  font-size: 60%;
  display: block;
  background: #000;
  color: #fff;
}


article#hotels .tokuten .item img{
}

article#hotels .plan {
	padding:2.4rem;
	display: grid;
	gap: 2rem;
	text-align: center;
	color: #000;
	position: relative;
	margin:0 1.6rem;
	border-radius: 4rem;
	overflow: hidden;
}
article#hotels .plan{
}


article#hotels .plan .title{
  color:var(--color-accent);
  display: table;
  margin: 0 auto;
  padding: 0 2rem;
  border-radius: 9999px;
}
article#hotels .plan .title:before {
  content: "";
}

article#hotels .plan .plan-list{
  display: grid;
  gap: 2rem;
}
article#hotels .plan .plan-list .item{
  background: #fff;
}

article#hotels .plan .plan-list .item img {
  aspect-ratio: 4 / 2;
}
article#hotels .plan .plan-list .item .txt {
	padding:2rem;
	gap: 2.4rem;
}
article#hotels .plan .plan-list .item .txt p{
  line-height: 140%;
}
article#hotels .plan .plan-list .item .txt .price {
  border: 1px solid;
  border-left: 0;
  border-right: 0;
  padding: 0.5rem;
}

article#hotels .plan .plan-list .item .link .btn {
}


@media screen and (min-width: 1025px) {

	article#hotels {
	}
	article#hotels .enjoy img {
	  aspect-ratio: 16 / 9;
	}
	article#hotels  .swiper-slide:not(.swiper-slide-active) .item {
	  transform: scale(1);
	}
	article#hotels  .swiper-slide-active .item img {
	  transform: scale(1);
	}


	article#hotels .tokuten {
		padding: 6rem;
	  width: 100%;
	}
	article#hotels .tokuten .inner {
	  margin: 0 auto;
	  max-width: 1440px;
	}
	article#hotels .plan {
	  padding: 2.4rem 2.4rem;
	      max-width: 940px;

	}
	article#hotels .plan .inner {
	  margin: 0 auto;
	}

	article#hotels .plan .plan-list {
	  gap: 4rem;
	  grid-template-columns: 1fr 1fr;
	}
	article#hotels .plan .plan-list .item {
	  grid-template-columns: 1fr 1.1fr;;
	}
	article#hotels .plan .plan-list .item img {
	  aspect-ratio: 16 / 9;
	}


}


/* =============================================
　　article#limited-event
============================================= */

article#limited-event{
	background: var(--color-limited-event);
}

article#limited-event .c-section:after {
	background-color:var(--color-hotels);
}
article#limited-event .c-section:before {
	display:none;
}


article#limited-event .spot-list {
  gap: calc(var(--layout-space-section));
}
article#limited-event .spot-list .spot .spot-inner{
  border-radius:3rem;
  overflow: hidden;
}

article#limited-event .spot.spot-slider .spot-inner {
  display: flex;
  gap: 0.8rem;
  flex-direction: column;
}
article#limited-event .spot.spot-slider .spot-item .txt {
  gap:0.8rem;
}
article#limited-event .spot.spot-slider .spot-img {
  height: auto;
}
article#limited-event .spot.spot-slider .spot-img img {
  aspect-ratio: 1000 / 703;
}

article#limited-event .miffy{
	background: var(--color-miffy-yellow);
}
article#limited-event .wakuwaku{
	background:#42ab6a;
	  color: #fff;
}


article#limited-event .tastekyushu{
	background: var(--color-tastekyushu);
	  color: #fff;
}
article#limited-event .rose{
	background: var(--color-rose);
	  color: #fff;
}
article#limited-event .wakuwaku .btn,
article#limited-event .tastekyushu .btn,
article#limited-event .rose .btn {
  border-color: #fff;
  background-color: #fff;
  color: var(--color-base);
}

article#limited-event .tastekyushu .spot-item-inner {
background: rgb(197 54 87);
}

@media screen and (max-width: 768px) {
	article#limited-event .wakuwaku img.mercisbv{
	  left: 0!important;
	  right: auto;
	  width: 40px !important;
	  padding: 0;
	}
}
@media screen and (min-width: 1025px) {
	article#limited-event .c-section:nth-child(even) .spot .spot-inner{
		grid-template-columns: 1fr 1.5fr;
	}
	article#limited-event .c-section:nth-child(even) .spot .spot-inner .spot-img{
		order:2;
	}
	article#limited-event .spot-list .spot .spot-inner {
	  gap: 0;
	}
}



/* スライダー全体のコンテナ */
.variable-slider-container {
  display: flex; /* Flexboxを使用して横並びに */
  width: 100%;
  height: 800px;
    background: #FFC107;
}

/* 各スライドの基本スタイル */
.slide {
  /* flex-grow: 1; を基本とし、アクティブ時に変更します */
  flex-grow: 1;
  flex-shrink: 1; /* 縮むことを許可 */
  flex-basis: 0; /* flex-grow に基づいて幅を決定 */
  
  /* 領域が変化する際のアニメーション */
  transition: flex-grow 0.5s ease; 
  
  /* デザイン用（削除可） */
  display: flex;
  justify-content: center;
  align-items: center;
    margin:0 1px ;
  overflow: hidden; /* 画像がはみ出ないように */
}

/* アクティブなスライドのスタイル */
.slide.active {
  /* 他のスライド(1)の2倍の領域を占める */
  flex-grow: 3; 
}

.slide picture {
  height: 100%;
}

.slide-b img {
  object-position: right;
}
.slide-c img {
  object-position: center;
}

/* --- スマートフォン（SP）版のスタイル --- */
/* 画面幅が768px以下の場合 */
@media (max-width: 768px) {
  
  .variable-slider-container {
    flex-direction: column; 
    height: 500px;
  }
  
  .slide {
    width: 100%; 
    margin: 1px 0;
  }

/*
	.variable-slider-container {
	flex-direction: column; ;
	display: grid;
	grid-template-columns: 1fr 1fr;
	 height: 500px;
	}

	.slide {
	width: 100%; 
	margin: 1px 0;
	order:2;
	transition: opacity 0.5s ease; 
	opacity:0.7;
	}
	.slide.active {
	grid-column: 1 / 4;
	order:1;
	opacity:1;
	}
	.slide  picture {
	aspect-ratio: 4 / 3;
	}
	.slide.active  picture {
	aspect-ratio: 1 / 1;
	}
  */
}