@charset "utf-8";

.lower_fv {
	background-image: url("../img/sapporo_fv.webp");
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
	.lower_fv {
		background-image: url("../img/sapporo_fv_sp.webp");
	}
}



#sapporo {
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
}



#lead {
	max-width: 1240px;
	padding: 60px 20px 80px;
	margin-inline: auto;
}
#lead > p {
	text-align: center;
}
#lead ul {
	margin-top: 60px;
}
#lead li {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-top: 50px;
}
#lead li img {
	width: calc(38000% / 1100);
}
#lead li:nth-child(2n) img {
	order: 2;
}
#lead .content {
	width: calc(68000% / 1100);
}
#lead .en {
	color: var(--beige);
	line-height: 1;
}
#lead .ttl {
	margin-top: 10px;
	font-size: var(--text-title);
	font-weight: 700;
	line-height: 2;
}
#lead li p {
	margin-top: 10px;
	line-height: 2;
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
	#lead ul {
	}
	#lead li {
		display: block;
	}
	#lead li img {
		width: 100%;
	}
	#lead li:nth-child(2n) img {
		order: 1;
	}
	#lead .content {
		width: 100%;
		margin-top: 20px;
	}
}



#room {
	background-color: var(--gray-eee);
	padding-top: 80px;
	padding-bottom: 80px;
}
#room .inner {
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: 20px;
}
#room .ttl {
	text-align: center;
}
#room .ttl .en {
	color: var(--beige);
	line-height: 1;
}
#room h2 {
	margin-top: 20px;
	font-size: var(--text-title);
	font-weight: 700;
	line-height: 2;
}
#room .lead {
	margin-top: 20px;
	line-height: 2;
}
#room .desc {
	display: flex;
	justify-content: space-between;
	gap: calc(6000% / 1200);
	margin-top: 60px;
}
#room .left {
	width: calc(54000% / 1200);
}
#room .left .slider {
}
#room .left .slider img {
	max-width: 100%;
}
#room .room-top-swiper {
}
#room .room-top-swiper .swiper-wrapper {
}
#room .room-top-swiper .swiper-slide {
	transition-property: opacity !important;
}
#room .room-top-swiper-thumb {
	position: relative;
	margin-top: 20px;
	overflow: hidden;
}
#room .swpier-button-wrap {
	position: relative;
	top: -35px;
}
#room .swpier-button-wrap .swiper-button-prev,
#room .swpier-button-wrap .swiper-button-next {
	top: 50%;
	width: 40px;
	height: 40px;
	background-color: var(--usui-beige);
	border-radius: 50px;
}
#room .swpier-button-wrap .swiper-button-prev {
	left: -20px;
}
#room .swpier-button-wrap .swiper-button-next {
	right: -20px;
}
#room .swpier-button-wrap .swiper-button-prev::after,
#room .swpier-button-wrap .swiper-button-next::after {
	display: none;
}
#room .swpier-button-wrap .swiper-button-prev::before,
#room .swpier-button-wrap .swiper-button-next::before {
	position: relative;
	content: "";
	display: block;
	width: 19px;
	height: 9px;
	background: url("../img/navi_arrow_white.svg") no-repeat;
	transition: all ease 0.3s;
}
#room .swpier-button-wrap .swiper-button-prev::before {
	left: 0;
	transform: scale(-1, 1);
}
#room .swpier-button-wrap .swiper-button-next::before {
	right: 0;
}
#room .swpier-button-wrap .swiper-button-prev:hover::before {
	left: -7px;
}
#room .swpier-button-wrap .swiper-button-next:hover::before {
	right: -7px;
}
#room .right {
	width: calc(60000% / 1200);
}
#room .right .subttl {
	font-size: 22px;
	font-weight: bold;
	line-height: 1.4;
}
#room .right dl {
	display: grid;
	grid-template-columns: repeat(2, auto);
	margin-top: 20px;
	padding-top: 10px;
	padding-bottom: 10px;
	border-top: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	font-family: var(--yu-gothic);
}
#room .right dl div {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 240px;
	padding: 3px 10px;
}
#room .right dl div.full {
	grid-column: 1 / 3;
}
#room .right dt {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 120px;
	min-width: 70px;
	width: 100%;
	font-weight: normal;
}
html[lang="en"] #room .right dt {
	max-width: 160px;
}
html:not([lang="en"]) #room .right dl div.lifeline dt {
	max-width: 220px;
	min-width: 120px;
}
#room .right dt span {
	display: inline-block;
	flex-shrink: 0;
	padding-right: 10px;
}
#room .right dt::after {
	content: "";
	width: 100%;
	border-bottom: 1px dashed #ccc;
}
#room .right dd {
}
#room .right .icons {
	margin-top: 20px;
}
#room .right .icons img {
	max-width: 100%;
}
#room .right .note {
	margin-top: 20px;
}
#room .map {
	margin-top: 50px;
	text-align: center;
}
#room .map img {
	max-width: 100%;
}
@media (max-width: 1239px) {
	#room .swpier-button-wrap {
		top: calc(-3500vw / 1240);
	}
}
@media (max-width: 959px) {
	#room .right dl {
		grid-template-columns: 1fr;
	}
	#room .right dl div {
		align-items: flex-start;
	}
	#room .right dl div.full {
		grid-column: 1 / 2;
	}
}
@media (max-width: 519px) {
	#room .desc {
		flex-direction: column;
		gap: 30px;
		margin-top: 30px;
	}
	#room .left {
		position: relative;
		width: 100%;
	}
	#room .room-top-swiper-thumb {
		position: static;
		margin-top: 10px;
	}
	#room .swpier-button-wrap {
		top: 0;
	}
	#room .swpier-button-wrap .swiper-button-prev,
	#room .swpier-button-wrap .swiper-button-next {
		top: 100%;
		height: 30px;
		margin-top: 10px;
		background-color: #fff;
	}
	#room .swpier-button-wrap .swiper-button-prev {
		left: 0;
	}
	#room .swpier-button-wrap .swiper-button-next {
		right: 0;
	}
	#room .swpier-button-wrap .swiper-button-prev::before,
	#room .swpier-button-wrap .swiper-button-next::before {
		background: url("../img/navi_arrow.svg") no-repeat;
	}
	#room .right {
		width: 100%;
		margin-top: 70px;
	}
	#room .right .subttl {
		font-size: 18px;
		text-align: center;
	}
	#room .right dl div {
		align-items: flex-start;
	}
	#room .right dl div.full {
		grid-column: 1 / 2;
	}
	html[lang="en"] #room .right dl div.manthly dd {
		max-width: calc(100% - 150px);
	}
}



#common {
	padding-top: 100px;
	padding-bottom: 100px;
}
#common .inner {
	max-width: 1240px;
	padding-inline: 20px;
	margin-inline: auto;
}
#common .ttl {
	text-align: center;
}
#common .ttl .en {
	color: var(--beige);
	line-height: 1;
}
#common h2 {
	margin-top: 20px;
	font-size: var(--text-title);
	font-weight: 700;
	line-height: 2;
}
#common .content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 120px;
	margin-top: 50px;
}
#common .left {
}
#common .left img {
	width: 100%;
}
#common .right {
	max-width: 450px;
}
#common .right p {
	font-size: var(--text-title);
	font-weight: 700;
	line-height: 2;
}
#common .more {
}
#common .more .btn {
	color: var(--black);
	background-color: transparent;
}
#common .more .btn.arrow::after {
	background: url(../img/navi_arrow.svg) no-repeat;
	position: relative;
	transition: all ease 0.3s;
}
#common .more .btn.arrow:hover::after {
	translate: 10px;
}
#common .loopslider {
	margin-top: 50px;
}
#common .loopslider ul {
	display: flex;
}
#common .loopslider li {
	display: flex;
	align-items: center;
	padding-right: 30px;
}
#common .loopslider li img {
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
	#common .content {
		flex-direction: column;
		margin-top: 30px;
		gap: 30px;
	}
	#common .loopslider {
		margin-top: 30px;
	}
	#common .loopslider li img {
		width: 220px;
	}
}



#access {
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 20px;
	padding-bottom: 100px;
}
#access .ttl {
	text-align: center;
}
#access .ttl .en {
	color: var(--beige);
	line-height: 1;
}
#access h2 {
	margin-top: 20px;
	font-size: var(--text-title);
	font-weight: 700;
	line-height: 2;
}
#access .content {
	margin-top: 30px;
}
#access .map {
	max-width: 920px;
	margin-inline: auto;
	text-align: center;
}
#access .map img {
	max-width: 100%;
}
#access .map .btn_area {
	margin-top: 20px;
	margin-left: 50px;
	text-align: left;
}
#access .map a {
	position: relative;
	display: inline-block;
	font-size: 16px;
	line-height: 1;
}
#access .map a::before,
#access .map a::after {
	position: absolute;
	content: "";
	display: block;
}
#access .map a::before {
	left: -17px;
	top: 0;
	bottom: 0;
	width: 7px;
	height: 7px;
	margin-top: auto;
	margin-bottom: auto;
	background-color: #000;
	border-radius: 10px;
}
#access .map a::after {
	left: 0;
	bottom: -15px;
	width: 145px;
	height: 5px;
	background: url("../img/contact_arrow_black.svg") no-repeat;
	background-size: cover;
	background-position: bottom right;
	transition: all ease 0.3s;
}
#access .map a:hover::after {
	left: 10px;
}
#access .detail {
	margin-top: 60px;
	padding: 30px 40px;
	background-color: #f7f7f7;
	font-size: 16px;
	font-family: var(--yu-gothic);
}
#access .detail p {
}
#access .detail table {
	width: 100%;
}
#access .detail th,
#access .detail td {
	padding-top: 10px;
	padding-bottom: 10px;
	border-bottom: 1px solid #ccc;
	vertical-align: middle;
}
#access .detail th {
	font-weight: normal;
	width: 320px;
	max-width: 100%;
}
#access .detail td {
	padding-left: 20px;
}
#access .detail td span {
	display: inline-block;
	color: #444;
	font-size: 15px;
}
#access .detail ul + span {
	margin-top: 10px;
}
#access .detail ul {
}
#access .detail li {
}
#access .info.detail p {
	font-size: 22px;
	font-weight: bold;
}
#access .info.detail table {
	border-top: 1px solid #ccc;
	margin-top: 10px;
}
#access .info.detail th {
	padding-left: 10px;
	font-weight: bold;
}
#access .spacely {
	margin-top: 80px;
	text-align: center;
}
#access .spacely iframe {
	width: 900px;
	max-width: 100%;
	aspect-ratio: 900 / 500;
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
	#access {
		padding-inline: 0;
		padding-bottom: 60px;
	}
	#access .content {
		margin-top: 20px;
	}
	#access .map .btn_area {
		width: fit-content;
		margin-inline: auto;
	}
	#access .map a::before {
		display: none;
	}
	#access .detail {
		margin-top: 30px;
		padding: 30px 25px;
	}
	#access .detail p {
		text-align: center;
	}
	#access .detail table {
		margin-top: 15px;
	}
	#access .detail th,
	#access .detail td {
		display: block;
	}
	#access .detail th {
		padding-bottom: 0;
		border-bottom: none;
	}
	#access .detail td {
		padding-left: 0;
		margin-bottom: 15px;
	}
	#access .info.detail th {
		padding-left: 0;
	}
	#access .spacely {
		margin-top: 60px;
	}
}