@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@100;300;400;500;700;800;900&display=swap');
html {
	scroll-behavior: smooth;
}
body {
	font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", sans-serif;
	font-size: 16px;
	color: #000;
}
a {
	transition: .3s;
}
a:link, a:visited {
	color: #0952a4;
}
a:hover {
	opacity: 0.8;
}
a:focus, button:focus, input:focus {
	outline: none;
}
a:focus-visible, button:focus-visible, input:focus-visible, .swiper-pagination-bullet:focus-visible {
	outline: 2px solid #000 !important;
	outline-offset: 2px !important;
}
.textCenter {
	text-align: center;
}
.red {
	color: #FF0000;
}
:root {
	--uyellow: #ffd700;
	--unavy: #04042e;
	--ublue: #1e2595;
	--uswhite: #fffff9;
	--usky: #2f9bdd;
	--ussky: #efffff;
	--ugold: #9b8660;
	--yellow: #ffff00;
	--yellowRGB: 255 255 0;
	--red: #ff0000;
	--red2: #fff0fc;
	--orange: #f29a16;
	--mainFont: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", sans-serif; /*bodyに使用*/
	--subFont1: "M PLUS 1p", sans-serif;
}
article img {
	width: 100%;
}
article b {
	font-size: 1.2em;
}
.noWrap {
	white-space: nowrap;
}
.small2 {
	font-size: .85em;
}

section {
	background: var(--ussky);
	color: #444;
}
section:nth-of-type(even) {
	background: var(--uswhite);
}
.inner {
	max-width: 1080px;
	margin: 0 auto;
	padding: clamp(3rem, 2.015rem + 4.92vw, 5rem) clamp(0.3rem, -0.045rem + 1.72vw, 1rem);
}
/*ボタン*/
.Btn a {
	display: block;
	position: relative;
	font-size: 1.1em;
	padding: .5em 1.5em .5em 1em;
	font-weight: 700;
	color: #fff;
	background: var(--orange);
	box-shadow: 0 1px 2px 0 rgba(60, 61, 71, 1);
	transition: .3s;
	margin: 1em auto 0;
	text-wrap: pretty;
	border-radius: 2px;
}
.Btn a:hover {
	box-shadow: 0 0 0 0 rgba(60, 61, 71, 1);
	transform: translate(1px, 2px);
}
.Btn a::after {
	content: "";
	border-top: solid 2px;
	border-right: solid 2px;
	width: 10px;
	height: 10px;
	position: absolute;
	top: 50%;
	right: 1.2em;
	translate: 100% -50%;
	transform: rotate(45deg);
}
ul.midpoint > li, ul.square > li, ul.dot > li {
	line-height: 1.4;
	padding-top: .3em;
	text-indent: -1em;
	margin-left: 1em;
}
ul.square > li:before {
	content: '■';
	padding-right: .1em;
}
ul.midpoint > li:before {
	content: '●';
	font-size: .8em;
	padding-right: .1em;
	vertical-align: .1em;
}
ul.dot > li:before {
	content: '・';
	font-size: .8em;
	padding-right: .1em;
	vertical-align: .1em;
}

/*タイトル*/
.h2main {
	text-align: center;
	margin: 0 0 2em;
}
.h2main > span {
	display: inline-block;
	padding: 0 .3em .2em .3em;
	color: var(--ugold);
	font-size: 1.5em;
	font-weight: 700;
	border-bottom: 3px solid var(--ugold);
	text-wrap: pretty;
}
.h2main > span::before {
	content: "";
	background: url(../images/check.png) no-repeat center / contain;
	width: 1.2em;
	top: 50%;
	padding-left: 1.2em;
	margin-right: .2em;
}
.h2main + p {
	font-size: 1.1em;
	margin: 0 0 .2em;
	font-weight: bold;
	color: #444;
}
/*メインビジュアル#title*/
#title {
	position: relative;
	overflow: hidden;
}
#title::after {
	position: absolute;
	content: "";
	bottom: -2px;
	width: 200%;
	height: 22px;
	background: url(../images/im_message.png) repeat-x center / contain;
	animation: flowRight 30s linear infinite;
	z-index: 3;
	filter: drop-shadow(1px 1px 0px #fff);
}
@keyframes flowRight {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}
.loop {
	background: linear-gradient(to top, var(--unavy) 0%, var(--unavy) 15%, var(--ublue) 60%, var(--ublue) 60%, var(--usky) 100%);
	overflow: hidden;
	width: 100%;
}
.loop-wrapper {
	margin: min(290px, 65vw) 0 28px 0;
	display: flex;
	flex-direction: row-reverse;
	gap: 3vw;
	width: max-content;
	animation: loop-animation 60s linear infinite;
}
.loop figure {
	height: 28vw;
	flex-shrink: 0;
}
.loop figure img {
	height: 100%;
	width: auto;
	object-fit: contain;
	display: block;
	box-shadow: 0px 0px 5px var(--ugold);
}
@keyframes loop-animation {
	0% {
		transform: translateX(-60%);
	}
	100% {
		transform: translateX(-10%);
	}
}
.titlelogo {
	position: absolute;
	width: min(400px, 90vw);
	top: 16px;
	translate: -50% 0;
	left: 50%;
	filter: drop-shadow(2px 2px 2px var(--ugold));
}
/*pageNavi*/
#pNav {
	background: var(--ugold);
}
#pNav ul {
	max-width: 970px;
	margin: 0 auto;
	display: flex;
	padding: 1.5% 0;
}
#pNav li {
	flex-basis: calc(100% / 4);
	border-left: 1px dashed #ffffff90;
	text-align: center;
}
#pNav li:last-of-type {
	border-right: 1px dashed #ffffff90;
}
#pNav a {
	font-size: clamp(0.625rem, 0.44rem + 0.92vw, 1rem);
	letter-spacing: .1em;
	font-weight: 700;
	display: block;
	align-content: center;
	width: 95%;
	margin: -.5em auto 0;
	color: #fff;
	position: relative;
	height: 50px;
	text-align: center;
}
#pNav a::after {
	content: "";
	border-top: solid 2px #ffffff90;
	border-right: solid 2px #ffffff90;
	width: 9px;
	height: 9px;
	position: absolute;
	bottom: 0;
	left: 50%;
	translate: -50% 0;
	transform: rotate(135deg);
	transition: all .2s;
}
#pNav a:hover::after {
	translate: -50% 3px;
}
/*ご宿泊ホテルで使える館内利用券付プラン#apply*/
section#apply {
	background-image: url(../images/bgSp.png), linear-gradient(to bottom, var(--unavy) 0%, var(--unavy) 2%, var(--ublue) 8%, var(--usky) 16%, var(--usky) 40%, var(--ublue) 60%, var(--unavy) 100%);
	background-repeat: no-repeat, no-repeat;
	background-position: top center, center;
	background-size: contain, cover;
	border-bottom: solid 1.5em var(--ugold);
	position: relative;
	overflow: hidden;
}
section#apply::after {
	position: absolute;
	content: "";
	bottom: -1px;
	width: 200%;
	height: 22px;
	background: url(../images/im_message.png) repeat-x center / contain;
	animation: flowRight 30s linear infinite;
	z-index: 3;
	filter: drop-shadow(1px 1px 0px #fff);
}
.applyh2_1 {
	font-family: var(--subFont1);
	font-size: clamp(1.625rem, 0.763rem + 4.31vw, 3.375rem);
	display: inline-block;
	transform: skewX(-15deg);
	color: var(--uyellow);
	font-weight: 900;
	text-shadow: 3px 3px 0px var(--ublue), 4px 4px 0px #fff;
	padding: 0 10% 0 0;
}
.applyh2_2 {
	font-family: var(--subFont1);
	font-size: clamp(1.875rem, 0.952rem + 4.62vw, 3.75rem);
	display: inline-block;
	transform: skewX(-15deg);
	color: var(--uyellow);
	font-weight: 900;
	text-shadow: 3px 3px 0px var(--ublue), 4px 4px 0px #fff;
	padding: 0 0 0 clamp(1.875rem, -3.663rem + 27.69vw, 13.125rem);
}
.preface1 {
	display: block;
	font-family: var(--subFont1);
	font-size: clamp(1.25rem, 0.635rem + 3.08vw, 2.5rem);
	transform: skewX(-15deg);
	color: #fff;
	font-weight: 700;
	width: max-content;
	margin: 1em auto 0;
}
.preface2 {
	display: block;
	width: min(600px, 80%);
	margin: 1em auto 0;
}
.preface3 {
	width: min(900px, 90%);
	margin: 2em auto 0;
}
.preface4 {
	width: min(600px, 80%);
	margin: 1.2em auto 0;
}
.Btn2 {
	margin-top: 1.5em;
	text-align: center;
}
.Btn2 a {
	font-family: var(--subFont1);
	display: block;
	position: relative;
	max-width: 900px;
	font-size: 1.2em;
	padding: .5em;
	font-weight: 700;
	color: #fff;
	background: var(--orange);
	box-shadow: 0 1px 2px 0 rgba(60, 61, 71, 1);
	transition: .3s;
	margin: auto;
	border-radius: 2px;
	outline: 1.5px solid #fff;
	outline-offset: -5px;
	text-wrap: pretty;
}
.Btn2 a::before {
	font-family: "Material Symbols Rounded";
	font-weight: 400;
	font-size: 1.3em;
	vertical-align: -4px;
	display: inline-block;
	content: "\e8b6";
}
#apply h2 {
	text-align: center;
}
#hotels h3 {
	font-size: clamp(1.25rem, 0.819rem + 2.15vw, 2.125rem);
	color: var(--uyellow);
	text-align: center;
	font-weight: 900;
	margin: 1.5em auto 0;
	align-items: center;
	display: flex;
	justify-content: center;
	text-wrap: pretty;
}
#hotels h3::before {
	margin-right: .5em;
}
#hotels h3::after {
	margin-left: .5em;
}
#hotels h3::before, #hotels h3::after {
	background: var(--uyellow);
	content: "";
	height: .12em;
	width: 1em;
}
.hotelGroup > li {
	margin: 1.5em 0 0;
	padding: 1.3em clamp(0.3rem, -0.045rem + 1.72vw, 1em) 1.2em;
	background: #fff;
	box-shadow: 1px 1px 3px #555;
	border-radius: 5px;
}
.hotelGroup h4 {
	font-family: var(--subFont1);
	color: var(--ugold);
	font-size: clamp(1.063rem, 0.781rem + 1.25vw, 1.625rem);
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	border-bottom: 2px solid var(--ugold);
	padding: 0 0 .6em;
	align-items: center;
	display: flex;
	justify-content: center;
	text-wrap: pretty;
}
.hotelGroup h4::before {
	background: url(../images/starleft.png) no-repeat center / contain;
	margin-right: .5em;
}
.hotelGroup h4::after {
	background: url(../images/starright.png) no-repeat center / contain;
	margin-left: .5em;
}
.hotelGroup h4::before, .hotelGroup h4::after {
	content: "";
	height: 1em;
	width: 2em;
}
/*-----swiper--------------------*/
.swiper {
	width: 100%;
	margin: .8em auto 0
}
.swiper img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
}
.swiper-slide {
	overflow: hidden;
	transition: all 1s;
	opacity: .3;
}
.swiper-slide figcaption {
	opacity: 0;
	transition: all 1s;
}
.swiper-slide-active {
	opacity: 1;
}
.swiper-slide-active figcaption {
	opacity: 1;
}
.swiper-pagination {
	top: -5px !important;
	position: relative;
}
.swiper-pagination-bullet-active {
	background: var(--ugold);
}
/*矢印の色とサイズ*/
.swiper-button-prev svg path, .swiper-button-next svg path {
	stroke-width: 1.5px !important;
	stroke: #ffffff;
}
.swiper-button-next, .swiper-button-prev {
	width: 22px;
	height: 22px;
	padding: 5px;
	border-radius: 50%;
	background: var(--ugold);
	box-shadow: 1px 1px 2px #333;
}
.swiper figcaption {
	font-size: .8em;
}
.swiper + p {
	font-size: .8em;
	text-align: right;
	margin: -20px 0 0 0;
}
.hotelGroup h5 {
	font-size: 1.1em;
	font-weight: 600;
	width: fit-content;
	margin: .8em auto 0;
	text-wrap: pretty;
	padding: .2em .2em .3em .7em;
	border: 3px solid var(--red);
	background: var(--red2);
	color: var(--red);
	letter-spacing: .01em;
}
.hotelBox dt {
	margin: .5em 0 0 0;
}
.hotelBox dd {
	margin: .2em 0 0 0;
}
.detailJump {
	display: block;
	text-align: right;
}
#info {
	margin: 2.5em auto 0;
	background: var(--ugold);
	padding: .8em clamp(0.3rem, -0.045rem + 1.72vw, 1em) 1.2em;
	border-radius: 5px;
}
#info h3 {
	font-size: 1.3em;
	color: #fff;
	padding: 0 0 .5em 0;
	cursor: pointer;
	list-style-type: none;
	position: relative;
	text-align: center;
	font-weight: 700;
}
#info h3 + ul {
	margin: auto;
	padding: .5em 1em 1em 1em;
	background: #fff;
}
/*キャンペーン#campaign*/
#campaign li {
	width: min(700px, 90%);
	margin: 0 auto;
}
#campaign li p {
	margin-top: .5em;
}
/*その他おすすめプラン#others,tabiwaチケット#tabiwaticket*/
.unit {
	display: grid;
	gap: .6rem;
	grid-template-columns: repeat(2, 1fr);
}
.unit > li {
	padding: .5rem;
	border-radius: 5px;
	background: #fff;
	display: grid;
	align-content: space-between;
	box-shadow: 1px 1px 3px #555;
}
.unit h3 {
	margin-top: .2em;
	font-weight: 700;
}
.unit p {
	margin-top: .2em;
}
.unit a:link, .unit a:visited {
	color: #444 !important;
}
@media screen and (max-width: 759.9px) {
	.spnone {
		display: none !important;
	}
	section {
		font-size: 14px;
		line-height: 1.3;
	}
	/*	以下削除不可====================================================*/
	#newsImportant {
		margin: 0 5px 5px;
		display: flex;
		font-size: 11px;
	}
	#newsImportant dt {
		width: 72px;
		height: fit-content;
		background: #e62d2d;
		color: #FFF;
		text-align: center;
		border-radius: 3px;
		margin-top: 2px;
		padding: 3px 0;
	}
	#newsImportant dd {
		width: 100%;
		padding: 0 10px;
	}
	#newsImportant li {
		padding: 5px 3px 5px 12px;
		position: relative;
	}
	#newsImportant li:nth-of-type(n+2) {
		border-top: 1px dotted #ccc;
	}
	#newsImportant li:before {
		content: "";
		width: 0;
		height: 0;
		border-style: solid;
		border-top: 5px solid transparent;
		border-bottom: 5px solid transparent;
		border-left: 6px solid #555555;
		border-right: 0;
		position: absolute;
		top: 7px;
		left: 0;
	}
	#dirPathBlock, #anchorLinkBlock {
		font-size: 12px;
		margin: 1%;
	}
	main h1 {
		font-size: 12px;
		margin: 0 1%;
	}
	/*.inner {
	width: 98%;
	margin: 0 1%;
	padding: 5% 0;
}*/
	/*pagetop*/
	#pagetop {
		display: none;
		position: fixed;
		right: 10px;
		bottom: 10px;
		z-index: 100;
	}
	#pagetop a {
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 0 auto;
		width: 3em;
		height: 3em;
		background-color: rgba(255, 255, 255, .5);
		border: solid 1px #152a8c;
		border-radius: 50vh;
	}
	#pagetop a::after {
		content: '';
		width: 7px;
		height: 7px;
		border-style: solid;
		border-width: 0 6px 9px 6px;
		border-color: transparent transparent #152a8c transparent;
	}
}
@media screen and (min-width: 760px), print {
	.pcnone {
		display: none !important;
	}
	.PCtextCenter {
		text-align: center;
	}
	section {
		line-height: 1.4;
	}
	/*メインビジュアル#title*/
	#title::after {
		height: 23px;
		animation: flowRight 70s linear infinite;
	}
	.loop {
		background: linear-gradient(to top, var(--unavy) 0%, var(--unavy) 15%, var(--ublue) 90%, var(--ublue) 96%, var(--usky) 100%);
	}
	.loop-wrapper {
		margin: 26px 0 28px 0;
		gap: 20px;
		animation: loop-animation 180s linear infinite;
	}
	.loop figure {
		height: 550px;
	}
	.titlelogo {
		height: 65%;
		width: auto;
		top: 50%;
		translate: -50% -52%;
		left: 50%;
	}
	#pNav ul {
		padding: .5em 0;
	}
	section#apply {
		background-image:
			url(../images/bgPc.png), linear-gradient(to bottom, var(--unavy) 0%, var(--unavy) 2%, var(--ublue) 18%, var(--usky) 30%, var(--usky) 45%, var(--ublue) 80%, var(--unavy) 100%);
	}
	section#apply::after {
		height: 23px;
		animation: flowRight 70s linear infinite;
	}
		.hotelBox {
		display: grid;
		grid-template-columns: 60% 1fr;
		line-height: 1.5;
		gap: 1.5em;
	}
	/*-----swiper--------------------*/
	.swiper-button-next, .swiper-button-prev {
		width: 25px;
		height: 25px;
	}
	.swiper-pagination {
		top: -13px !important;
	}
	.swiper + p {
		margin: -33px 0 0 0;
	}

	.detailBox {
		display: grid;
		align-content: space-between;
	}
	.unit {
		grid-template-columns: repeat(4, 1fr);
	}
	/*以下削除不可==================================================== */
	#newsImportant {
		width: 100%;
		max-width: 1080px;
		min-width: 760px;
		margin: 0 auto 5px;
		display: flex;
		font-size: 12px;
	}
	#newsImportant dt {
		width: 72px;
		height: fit-content;
		background: #e62d2d;
		color: #FFF;
		text-align: center;
		border-radius: 3px;
		margin-top: 1px;
		padding: 3px 0;
	}
	#newsImportant dd {
		width: 100%;
		padding: 0 10px;
	}
	#newsImportant li {
		padding: 3px 3px 3px 12px;
		position: relative;
	}
	#newsImportant li:nth-of-type(n+2) {
		border-top: 1px dotted #ccc;
	}
	#newsImportant li:before {
		content: "";
		width: 0;
		height: 0;
		border-style: solid;
		border-top: 5px solid transparent;
		border-bottom: 5px solid transparent;
		border-left: 6px solid #555;
		border-right: 0;
		position: absolute;
		top: 7px;
		left: 0;
	}
	#dirPathBlock, #anchorLinkBlock {
		width: 100%;
		max-width: 1080px;
		min-width: 760px;
		margin: 0 auto;
		font-size: 12px;
	}
	main h1 {
		font-size: 12px;
		width: 100%;
		max-width: 1080px;
		min-width: 760px;
		margin: 0 auto 5px;
	}
	/*.inner {
	width: 100%;
	max-width:1080px;
	min-width:760px;
	margin: auto;
	padding: 25px 0;
}*/
	/*pagetop*/
	#pagetop {
		display: none;
		position: fixed;
		right: 50px;
		bottom: 50px;
		cursor: pointer;
		z-index: 100;
	}
	#pagetop a {
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 0 auto;
		width: 80px;
		height: 80px;
		background-color: rgba(255, 255, 255, .5);
		border: solid 1px #152a8c;
		border-radius: 50vh;
	}
	#pagetop a::after {
		content: '';
		width: 7px;
		height: 7px;
		border-style: solid;
		border-width: 0 6px 9px 6px;
		border-color: transparent transparent #152a8c transparent;
	}
	#pagetop a:hover {
		background-color: #152a8c;
	}
	#pagetop a:hover::after {
		border-width: 0 6px 9px 6px;
		border-color: transparent transparent #fff transparent;
	}
}