.s17-survey-link {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 48px; max-width: 100%; padding: 12px 22px; margin: 12px 0;
    border: 1px solid #8a5a12; border-radius: 4px; background: #8a5a12;
    color: #fff !important; font-size: 16px; line-height: 1.5; text-align: center;
    text-decoration: none !important; transition: background-color .2s ease;
}
.s17-survey-link:hover, .s17-survey-link:focus-visible { background: #68430e; border-color: #68430e; }
/* Room collection: show the bed and room instead of clipping the top of a large original. */
.s17-room-cards .accom_more_a .accom_list_detail {
    height: auto; margin: 0 0 28px; border: 1px solid #e4d9c6;
    background: #fff; border-radius: 6px; overflow: hidden;
    display: flex; flex-direction: column;
}
.s17-room-cards .accom_more_a .accom_list_detail > img {
    order: 0; display: block; width: 100%; height: auto; aspect-ratio: 3 / 2;
    object-fit: cover; object-position: center 60%;
}
.s17-room-cards .accom_more_a .accom_info {
    order: 1; position: static; height: auto; min-height: 64px; width: 100%;
    padding: 20px 16px; background: #f7f1e6; color: #493b2a;
    text-transform: none; line-height: 1.5;
}
.s17-room-cards .accom_more_a .accom_info::before { display: none; }
.s17-room-cards .accom_more_a:hover .accom_info { background: #eee3cf; }
@media (max-width: 767px) {
    .s17-room-cards .accom_more_a .accom_list_detail { margin-bottom: 20px; }
}
.s17-home-popup {
 width: min(760px, calc(100% - 32px)); max-width: calc(100% - 32px);
 max-height: calc(100dvh - 32px); padding: 0; border: 0; border-radius: 12px;
 background: #fff; box-shadow: 0 16px 60px rgba(0,0,0,.4); overflow-y: auto;
}
.s17-home-popup::backdrop { background: rgba(0,0,0,.65); }
.s17-popup-close { position: sticky; top: 0; z-index: 2; display: flex; justify-content: flex-end; height: 0; margin: 0; padding: 0; background: transparent; overflow: visible; }
.s17-popup-close button { width: 32px; height: 32px; margin: 10px 10px 0 0; padding: 0; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: #2a2118; box-shadow: 0 1px 6px rgba(0,0,0,.28); line-height: 0; cursor: pointer; }
.s17-popup-close button svg { width: 12px; height: 12px; display: block; }
.s17-popup-close button:hover, .s17-popup-close button:focus-visible { background: #fff; }
.s17-popup-item + .s17-popup-item { margin-top: 12px; }
.s17-popup-item img { display: block; width: 100%; height: auto; }
.s17-date-calendar {
	z-index: 10050;
	border: 1px solid #d8c495;
	box-shadow: 0 12px 35px rgba(0,0,0,.22);
	font-family: Arial, sans-serif;
}
.s17-date-calendar .flatpickr-day.selected,
.s17-date-calendar .flatpickr-day.selected:hover {
	background: #8a5a12; border-color: #8a5a12;
}
.s17-date-calendar .flatpickr-day.today { border-color: #8a5a12; }
@media (max-width: 767px), (max-height: 500px) {
	.s17-date-calendar.open {
		position: fixed; top: 50% !important; left: 50% !important;
		right: auto !important; transform: translate(-50%, -50%);
		max-width: calc(100% - 16px); max-height: calc(100dvh - 16px);
		overflow-y: auto;
	}
	.s17-date-calendar::before, .s17-date-calendar::after { display: none; }
	.s17-date-calendar .flatpickr-innerContainer,
	.s17-date-calendar .flatpickr-rContainer,
	.s17-date-calendar .flatpickr-days,
	.s17-date-calendar .dayContainer {
		width: 100%; min-width: 0; max-width: 100%;
	}
}

/* Fill the original theme's 701–767px gap. Tablet navigation ends at
   1200px, so its toggle must also remain visible at exactly 1200px. */
@media (max-width: 1200px) {
	.header-bg { height: 55px !important; background: rgba(0,0,0,.86); }
	.header-bg header { margin-top: 5px; height: 44px; }
	.header-bg .logo { float: none; text-align: center; animation: none; }
	.header-bg .logo img { width: 40px; height: auto; }
	.header-bg .langage { display: none; }
	.header-bg .resp-menu, .header-bg .resp-reservation {
		display: block !important; position: absolute; border: 0;
		background: transparent; color: #fff; min-width: 44px; min-height: 44px;
		top: 0; padding: 6px; font-size: 16px;
	}
	.header-bg .resp-menu { left: 0; font-size: 26px; }
	.header-bg .resp-reservation { right: 0; }
	.header-bg menu {
		position: absolute; top: 55px; left: -100%; width: 100%;
		margin: 0; padding: 5px 15px; background: rgba(0,0,0,.95);
		max-height: calc(100dvh - 55px); overflow-y: auto;
		overscroll-behavior: contain;
	}
	.header-bg menu.show { left: 0; }
	.header-bg menu > ul { text-align: left; }
	.header-bg menu > ul > li { display: block !important; margin-left: 0; }
	.header-bg menu > ul > li > a {
		height: auto; min-height: 44px; padding: 10px 0;
		border-bottom: 1px solid #959595; white-space: normal;
	}
	.header-bg .resp_lang { overflow: hidden; }
	.header-bg .resp_lang ul { float: right; }
	.header-bg .resp_lang ul > li { display: inline-block !important; }
	.header-bg .resp_lang .text-lang { float: left; color: #fff; }
	.mp_reservation {
		position: fixed; top: 55px; bottom: auto !important; left: -100%;
		width: 100%; height: auto; margin-top: 0 !important;
		max-height: calc(100dvh - 55px); overflow-y: auto; z-index: 999;
	}
	.mp_reservation.show { left: 0; }
	.mp_reservation .form-bg { margin: 0 !important; }
}
@media (min-width: 701px) and (max-width: 767px) {
	.mp_reservation .form-group { display: block; margin: 0 0 12px; }
	.mp_reservation .form-control { width: 100%; }
}
@media (max-width: 767px) {
	.contact_form .form-control, .mp_reservation .form-control {
		font-size: 16px; min-height: 44px; max-width: 100%;
	}
	.contact_form .btn-submit { min-height: 44px; }
	.s17-contact-grid { overflow-wrap: anywhere; }
}
:where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid #bb7b18; outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
	.logo, .langage ul, .langage .text-lang { animation: none !important; }
}

.s17-home-facilities {
	padding: 10px 0 48px;
	background: #f7f1e6;
}
.s17-facility-list {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 22px 12px;
	margin: 0 0 10px;
	padding: 0;
	list-style: none;
}
.s17-facility-list a {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
	color: #6b696a;
}
.s17-facility-list a:hover,
.s17-facility-list a:focus {
	color: #8a5a12;
	text-decoration: none;
}
.s17-facility-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border: 1px solid #c5a867;
	border-radius: 50%;
	background: #fff;
}
.s17-facility-icon img {
	width: 36px;
	height: 36px;
	object-fit: contain;
}
.s17-facility-list strong {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
}
@media (max-width: 991px) {
	.s17-facility-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 767px) {
	.s17-facility-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.s17-gallery-thumbs {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	margin: 8px 0 0;
	padding: 8px;
	background: rgba(0, 0, 0, 0.55);
}

.s17-gallery-thumbs button {
	flex: 0 0 84px;
	width: 84px;
	height: 64px;
	padding: 0;
	border: 2px solid transparent;
	background: #111;
	opacity: 0.7;
	cursor: pointer;
}

.s17-gallery-thumbs button.is-active,
.s17-gallery-thumbs button:hover {
	opacity: 1;
	border-color: #d7b05a;
}

.s17-gallery-thumbs img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.s17-fancy-group {
	display: none;
}

.fancybox__container .f-panzoom__content {
	max-height: min(40vw, calc(100vh - 180px)) !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain;
}

.resp-reservation {
	white-space: nowrap;
}

.s17-hero-slide {
	background-image: var(--s17-slide-lg);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.bx-wrapper,
.bx-viewport {
	max-width: 100% !important;
}

.slider .bx-wrapper .bx-controls-direction a {
	top: 50%;
	width: 48px;
	height: 48px;
	margin-top: -24px;
	border-radius: 0;
	background: none !important;
	color: #fff !important;
	text-shadow: none;
	text-indent: 0 !important;
	text-align: center;
	line-height: 48px;
	font-size: 48px;
	overflow: visible;
	z-index: 3;
}
.slider .bx-wrapper .bx-controls-direction a .fa {
	font-family: FontAwesome;
	font-style: normal;
	color: #fff !important;
	text-shadow: none;
	font-size: 48px;
	line-height: 48px;
}
.slider .bx-wrapper .bx-prev {
	left: 16px;
}
.slider .bx-wrapper .bx-next {
	right: 16px;
}
.slider .bx-wrapper .bx-prev:hover,
.slider .bx-wrapper .bx-next:hover,
.slider .bx-wrapper .bx-controls-direction a:focus {
	background: none !important;
	color: #fff !important;
}
.slider .bx-wrapper .bx-controls-direction .sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.bx-wrapper img,
.pgwSlideshow img,
.carousel-inner > .item > img {
	max-width: 100%;
	height: auto;
}

.room_detail_slide,
.pgwSlideshow,
.carousel {
	overflow: hidden;
	max-width: 100%;
}

.room_detail h2 {
	font-size: 32px !important;
	font-weight: 700;
	line-height: 1.3;
	color: #8a5a12;
}
.s17-room-slider .carousel-inner > .item {
	text-align: center;
}

.s17-room-slider .carousel-inner > .item > img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 520px;
	margin-right: auto;
	margin-left: auto;
	cursor: zoom-in;
}

.s17-room-slider .carousel-control {
	width: 48px;
	background: rgba(0, 0, 0, 0.45);
	opacity: 1;
}

.s17-room-slider .carousel-control .glyphicon {
	font-size: 22px;
	top: 50%;
	margin-top: -11px;
}

.s17-room-count {
	position: absolute;
	right: 12px;
	bottom: 12px;
	z-index: 5;
	padding: 4px 8px;
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
	font-size: 13px;
}

@media (max-width: 991px) {
	.s17-hero-slide {
		background-image: var(--s17-slide-md);
	}

	.header_main,
	.header_main .slider,
	.header_main .slide_img {
		height: 480px !important;
	}

	.header_more_page,
	.header_more_page .slider,
	.header_more_page .slide_img {
		height: 240px !important;
	}
}

@media (max-width: 767px) {
	.s17-hero-slide {
		background-image: var(--s17-slide-sm);
	}

	.header_main,
	.header_main .slider,
	.header_main .slide_img {
		height: 420px !important;
	}

	.header_more_page,
	.header_more_page .slider,
	.header_more_page .slide_img {
		height: 210px !important;
	}

	.slide_title {
		top: 70px;
	}

	.s17-room-slider .carousel-inner > .item > img {
		max-height: 320px;
	}
}

@media (max-width: 991px) {
	body {
		padding-bottom: 70px;
	}

	.resp-menu,
	.resp-reservation {
		min-width: 44px;
		min-height: 44px;
	}

	.mp-info .gallery_main ul > li > .gallery_info,
	.top_footer .gallery_main ul > li > .gallery_info {
		height: 100%;
		padding-top: 35%;
		cursor: pointer;
	}

	.btn-gallery {
		opacity: 1;
		bottom: 0;
	}

	form.accom_detail .row.form-group > [class*="col-"] {
		width: 100%;
		float: none;
		text-align: left;
		padding-right: 15px;
	}

	form.accom_detail select,
	form.accom_detail .form-control {
		width: 100%;
		max-width: 100%;
		min-height: 44px;
		height: auto;
	}
}

@font-face {
	font-family: "Font Awesome 5 Brands";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/webfonts/fa-brands-400.woff2") format("woff2");
}
.s17-social {
	line-height: 1;
}
.s17-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-left: 6px;
	background: none !important;
	border-radius: 0;
	color: #fff !important;
	font-size: 22px;
	line-height: 1;
	text-decoration: none;
	vertical-align: middle;
}
.s17-social a .fa {
	color: #fff !important;
	font-size: 22px;
	line-height: 1;
}
.s17-social .fa-line:before {
	font-family: "Font Awesome 5 Brands";
	font-weight: 400;
	content: "\f3c0";
}
.s17-social-header {
	float: right;
	margin: 6px 10px 0 0;
}
.s17-social-footer {
	margin: 6px 0 2px;
	text-align: center;
}
.s17-footer-bar {
	display: flex;
	align-items: center;
	gap: 18px;
}
.footer .footer_logo {
	width: auto;
	flex: 0 0 auto;
	margin: 0;
}
.footer .footer_logo img {
	display: block;
	width: auto;
	max-width: 92px;
	max-height: 72px;
	height: auto;
}
.s17-footer-main {
	flex: 1 1 auto;
	min-width: 0;
}
.footer .footer_menu ul {
	margin-left: 0;
}
@media (max-width: 700px) {
	.s17-footer-bar {
		align-items: flex-start;
	}
	.footer .footer_logo img {
		max-width: 72px;
		max-height: 56px;
	}
}
.footer .s17-social a,
.footer .s17-social a .fa {
	color: #1a1a1a !important;
}
.top_footer .footer {
	background: transparent;
	border: 0;
	margin: 0;
	padding: 4px 0 18px;
}
.top_footer .footer_menu {
	display: block;
}
.top_footer .footer_menu ul {
	overflow: hidden;
}
.top_footer .footer_menu li {
	line-height: 1.8;
}
.top_footer .footer_menu li a:hover,
.top_footer .footer_menu li.active a,
.top_footer .footer_copy a:hover {
	color: #bb4317 !important;
}
.s17-social-footer a {
	margin: 0 4px;
}

@media (max-width: 1199px) {
	.s17-social-header {
		display: none;
	}
}

.footer_map {
	margin-top: 0;
	border: 0;
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 12px 28px rgba(90, 60, 20, 0.16);
}
.footer_map_frame {
	background: #efe6d6;
}
.footer_map iframe {
	display: block;
	width: 100%;
	height: 340px;
	margin: 0;
	border: 0;
}
.footer_map .map_info {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	border-top: 0;
	background: #fff;
	padding: 10px 12px;
}
.footer_map .map_detail,
.footer_map .map_shared {
	padding: 0;
}
.footer_map .map_detail {
	flex: 1 1 auto;
	color: #5c4314;
	font-size: 13px;
	line-height: 1.45;
}
@media (max-width: 767px) {
	.footer_map iframe {
		height: 240px;
	}
}

menu > ul {
	-webkit-animation: none;
	animation: none;
}
.header-bg {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 1000;
	transition: background-color 0.25s ease, box-shadow 0.25s ease, padding 0.25s ease;
}
.header-bg.is-compact {
	background: rgba(0, 0, 0, 0.86);
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
}
@media (min-width: 1201px) {
	.header-bg header,
	.header-bg .logo img,
	.header-bg menu > ul > li,
	.header-bg menu > ul > li > a {
		transition: height 0.25s ease, margin 0.25s ease, padding 0.25s ease, width 0.25s ease, font-size 0.25s ease;
	}
	.header-bg.is-compact {
		padding-bottom: 4px;
	}
	.header-bg.is-compact header {
		margin-top: 4px;
		height: 34px;
	}
	.header-bg.is-compact .logo img {
		width: 52px;
		height: auto;
	}
	.header-bg.is-compact .langage .text-lang {
		padding-top: 8px;
	}
	.header-bg.is-compact menu > ul > li {
		margin-left: 16px;
	}
	.header-bg.is-compact menu > ul > li > a {
		height: 24px;
		font-size: 14px;
		padding-bottom: 2px;
	}
	.header-bg.is-compact .s17-social-header {
		margin-top: 2px;
	}
	.header-bg.is-compact .s17-social a {
		width: 22px;
		height: 22px;
		font-size: 16px;
	}
}
.s17-footer-map-band {
	width: 100%;
	margin: -40px 0 28px;
}
.s17-footer-map-band .footer_map {
	border-radius: 0;
	box-shadow: none;
}
.s17-footer-map-band .footer_map iframe {
	height: 420px;
}
.s17-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	column-gap: 28px;
	row-gap: 12px;
	align-items: start;
	clear: both;
}
.s17-contact-direction { grid-column: 1; grid-row: 1; }
.s17-contact-phone { grid-column: 2; grid-row: 1; }
.s17-contact-email { grid-column: 1; grid-row: 2; }
.s17-line-qr {
	grid-column: 2;
	grid-row: 2;
	justify-self: start;
	align-self: start;
	display: inline-block;
	padding: 8px;
	line-height: 0;
	background:
		linear-gradient(#fff, #fff) padding-box,
		linear-gradient(135deg, #f3d7a4 0%, #c4a46a 45%, #8a7741 100%) border-box;
	border: 2px solid transparent;
	border-radius: 14px;
	box-shadow: 0 10px 22px rgba(90, 60, 20, 0.18);
}
.s17-line-qr img {
	float: none !important;
	display: block;
	width: 140px;
	max-width: 100%;
	height: auto;
	margin: 0 !important;
	background: #fff;
	border-radius: 8px;
}
.s17-contact-grid img {
	float: none !important;
	display: inline-block;
	vertical-align: middle;
	margin-right: 6px;
}
@media (max-width: 767px) {
	.s17-footer-map-band .footer_map iframe {
		height: 240px;
	}
	.s17-contact-grid {
		grid-template-columns: minmax(0, 1fr) auto;
	}
	.s17-contact-direction,
	.s17-contact-phone {
		grid-column: 1 / -1;
		grid-row: auto;
	}
	.s17-contact-email,
	.s17-line-qr {
		grid-row: auto;
	}
	.s17-line-qr img {
		width: 108px;
	}
}

/* Availability card: one compact row on desktop, a two-column panel on touch screens. */
.mp_reservation .s17-booking-form {
 display: grid;
 grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(0, .7fr) minmax(0, .7fr) minmax(210px, 1.3fr);
 align-items: end;
 gap: 16px;
 padding: 14px 20px;
 margin: 0;
 border: 1px solid rgba(255,255,255,.25);
 border-radius: 12px;
 background: rgba(212,204,195,.58);
 box-shadow: 0 4px 18px rgba(31,24,16,.08);
 text-align: left;
 overflow: visible;
 animation: none;
 font-family: Arial, sans-serif;
}
.mp_reservation .s17-booking-form .form-group {
 display: flex; flex-direction: column; gap: 9px;
 min-width: 0; margin: 0;
}
.mp_reservation .s17-booking-form label {
 position: static; display: block; margin: 0;
 color: #352d23; font-size: 11px; font-weight: 700;
 letter-spacing: .09em; text-transform: uppercase;
}
.s17-booking-form label::before {
 font-family: FontAwesome; content: '\f073'; margin-right: 7px;
 color: #a27b36; font-weight: normal;
}
.s17-booking-form label[for="adult"]::before { content: '\f007'; }
.s17-booking-form label[for="child"]::before { content: '\f1ae'; }
.mp_reservation .s17-booking-form .form-control {
 display: block; width: 100%; height: 48px; min-height: 48px;
 margin: 0; padding: 10px 12px; border: 1px solid #ded6c9;
 border-radius: 8px; background: rgba(255,255,255,.9); color: #352d23;
 box-shadow: none; font: 400 16px/1.4 Arial, sans-serif;
}
.mp_reservation .s17-booking-form input[readonly] { cursor: pointer; }
.mp_reservation .s17-booking-form .form-control:focus {
 border-color: #a27b36; box-shadow: 0 0 0 3px rgba(162,123,54,.15);
}
.mp_reservation .s17-booking-form .btn-submit {
 display: flex; align-items: center; justify-content: center; gap: 12px;
 width: 100%; min-height: 48px; padding: 12px 16px;
 border: 1px solid #b99248; border-radius: 8px;
 background: #d6b16a; color: #302518; cursor: pointer;
 font: 700 12px/1.5 Arial, sans-serif; letter-spacing: .025em;
 white-space: normal; transition: background .2s, box-shadow .2s;
}
.mp_reservation .s17-booking-form .btn-submit:hover {
 background: #e1c286; box-shadow: 0 4px 12px rgba(110,80,30,.18);
}
@media (min-width: 1201px) {
 .header_main .mp_reservation { bottom: 24px; }
 .header_more_page .mp_reservation { bottom: -60px; }
 .header_more_page:has(.s17-booking-form) + .mp-info { padding-top: 85px; }
}
@media (max-width: 1200px) {
 .mp_reservation { padding: 12px 0 16px; background: #f4efe5; }
 .mp_reservation .s17-booking-form {
  grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px;
  padding: 20px; box-shadow: none;
 }
 .mp_reservation .s17-booking-action { grid-column: 1 / -1; }
}
@media (max-width: 360px) {
 .mp_reservation .s17-booking-form { padding: 14px; gap: 12px; }
 .mp_reservation .s17-booking-form .form-control { padding-inline: 8px; }
}

.top_footer .s17-site-footer { padding: 48px 0 20px; }
.s17-footer-columns {
 display: grid; grid-template-columns: .8fr 1fr 1.8fr; gap: 48px;
 align-items: start; text-align: left;
}
.s17-site-footer .footer_logo { float: none; width: auto; margin: 0 0 24px; }
.s17-site-footer .footer_logo img { max-width: 150px; max-height: 150px; width: auto; height: auto; }
.s17-site-footer .s17-social-footer { text-align: left; }
.top_footer .s17-site-footer h2 {
 margin: 0 0 22px; color: #493b2a; font: 600 21px/1.4 Arial, sans-serif !important;
}
.s17-site-footer .footer_icon { display: none; }
.s17-site-footer .footer_menu ul { padding: 0; margin: 0; list-style: none; }
.s17-site-footer .footer_menu ul li { float: none; display: block; list-style: none; margin: 0; padding: 0; }
.s17-site-footer .footer_menu ul li::before,
.s17-site-footer .footer_menu ul li::after { content: none; }
.s17-site-footer .footer_menu a { display: inline-block; padding: 9px 0; min-height: 44px; color: #493b2a; }
.s17-site-footer .s17-contact-grid {
 display: grid; grid-template-columns: minmax(0, 1fr) auto;
 gap: 18px 20px; padding: 0; color: #493b2a; font-size: 15px;
}
.s17-site-footer .s17-contact-grid > * { grid-column: 1; grid-row: auto; }
.s17-site-footer .s17-contact-grid .s17-line-qr { grid-column: 2; grid-row: 1 / span 3; }
.s17-line-qr-label {
 display: block; margin: 4px 0 12px; text-align: center;
 color: #493b2a; font: 600 18px/1.4 Arial, sans-serif;
}
.s17-site-footer .s17-line-qr img { width: 160px; }
.s17-site-footer .s17-contact-grid img { width: 25px; height: auto; }
.s17-site-footer .s17-contact-grid .s17-line-qr img { width: 160px; }
.s17-site-footer .footer_copy {
 clear: both; border-top: 1px solid rgba(73,59,42,.16); margin-top: 36px;
 padding: 20px 0 0; text-align: center; color: #675a49;
}
@media (max-width: 991px) {
 .s17-footer-columns { grid-template-columns: .7fr 1fr 1.6fr; gap: 24px; }
 .s17-site-footer .s17-contact-grid { grid-template-columns: minmax(0, 1fr); }
 .s17-site-footer .s17-contact-grid .s17-line-qr { grid-column: 1; grid-row: auto; }
}
@media (max-width: 767px) {
 .s17-footer-columns { grid-template-columns: 1fr; gap: 32px; }
 .top_footer .s17-site-footer { padding-top: 32px; }
 .s17-site-footer .footer_logo img { max-width: 120px; max-height: 120px; }
}
.s17-home-gallery { padding: 56px 0 64px; background: #f7f3ec; }
.s17-gallery-more { margin-top: 30px; text-align: center; }
.s17-gallery-more a {
 display: inline-flex; align-items: center; gap: 14px; min-height: 44px;
 padding: 12px 24px; border: 1px solid #b99248; border-radius: 6px;
 color: #493b2a; background: #d6b16a; font: 600 14px/1.4 Arial, sans-serif;
 text-decoration: none;
}
.s17-gallery-more a:hover { background: #e1c286; }
.s17-gallery-more a:focus-visible { outline: 3px solid #8a682f; outline-offset: 4px; }
.s17-home-gallery .footer_icon { display: none; }
.s17-home-gallery .footer_detail > h2 {
 display: none;
}
.s17-home-gallery .gallery_main > ul {
 display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 20px; padding: 0; margin: 0; list-style: none;
}
.s17-home-gallery .gallery_main > ul > li {
 position: relative; overflow: hidden; border-radius: 10px;
 aspect-ratio: 4 / 3; cursor: pointer; background: #dfd8cd;
}
.s17-home-gallery .gallery_main > ul > li > img {
 display: block; width: 100%; height: 100%; object-fit: cover;
 transition: transform .3s;
}
.s17-home-gallery .gallery_main > ul > li:hover > img { transform: scale(1.035); }
.s17-home-gallery .gallery_info {
 position: absolute; inset: 0; z-index: 1;
 display: flex; flex-direction: column; justify-content: end;
 align-items: start; padding: 22px;
 background: linear-gradient(transparent 35%, rgba(28,22,15,.8));
}
.s17-home-gallery .gallery_info h2 {
 color: #fff; font: 400 23px/1.3 Georgia, serif; margin: 0 0 12px;
}
.s17-home-gallery .btn-gallery {
 position: static; opacity: 1; visibility: visible; transform: none;
 border: 1px solid rgba(255,255,255,.7); border-radius: 5px;
 background: rgba(255,255,255,.12); color: #fff; padding: 8px 14px;
 min-height: 44px; font: 400 14px/1.4 Arial, sans-serif;
}
.s17-home-gallery .btn-gallery:focus-visible { outline: 3px solid #e8c67f; outline-offset: 3px; }
@media (max-width: 991px) {
 .s17-home-gallery .gallery_main > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
 .s17-home-gallery { padding: 36px 0; }
 .s17-home-gallery .gallery_main > ul { grid-template-columns: 1fr; gap: 16px; }
}

/* Shared content rhythm: generous section spacing and readable copy at every width. */
:root { --s17-section-space: clamp(32px, 4.5vw, 64px); --s17-block-space: clamp(20px, 2.5vw, 32px); }
.mp-info, .mp-info.all_page, .mp_accom_bg, .s17-home-facilities, .s17-home-gallery {
 padding-top: var(--s17-section-space); padding-bottom: var(--s17-section-space);
}
.mp_accom_bg > .container > .accom_title,
.s17-home-facilities > .container > .accom_title,
.s17-home-gallery > .container > .accom_title { margin-top: 0; margin-bottom: var(--s17-block-space); }
.mp-info .info-detail { padding-top: 0; line-height: 1.8; }
.mp-info .info-detail h1, .mp-info .info-detail h2 { margin: 0 0 20px; line-height: 1.5; }
.mp-info .info-detail p, .so_info p { margin: 0 0 16px; line-height: 1.8; }
.mp-info > .container > .row > .form-group { margin-bottom: var(--s17-block-space); }
.mp-info > .container > .row > .form-group:last-child { margin-bottom: 0; }
.contact_form .form-group { margin-bottom: 20px; }
.contact_form label { margin-bottom: 8px; }
.contact_form textarea { min-height: 160px; }
.room_fac { margin-top: 0; padding: 24px; }
.room_fac h2 { margin: 0 0 20px; line-height: 1.5; }
.room_fac li { margin-bottom: 12px; line-height: 1.6; }
.s17-room-slider { margin-bottom: var(--s17-block-space); }
.s17-gallery-more { margin-top: var(--s17-block-space); }
.so_list + .so_list { margin-top: var(--s17-block-space); }
.so_info { margin-top: 0; padding: clamp(20px, 3vw, 32px); }
.so_title h2 { margin-top: 0; margin-bottom: 16px; line-height: 1.5; }
.mp-info.all_page .gallery_main > ul {
 display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 24px; margin: 0; padding: 0; list-style: none;
}
.mp-info.all_page .gallery_main > ul > li:nth-child(n) {
 float: none; width: auto; height: auto; margin: 0; aspect-ratio: 4 / 3; border-radius: 6px;
}
.mp-info.all_page .gallery_main > ul > li:nth-child(n) > img {
 display: block; width: 100%; height: 100%; object-fit: cover; object-position: center;
}
.mp-info.all_page .gallery_main > ul > li > .gallery_info,
.mp-info.all_page .gallery_main > ul > li:hover > .gallery_info {
 inset: 0; width: 100%; height: 100%; padding: 20px;
 display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start;
 text-align: left; background: linear-gradient(transparent 35%, rgba(28,22,15,.8));
}
.mp-info.all_page .gallery_info h2 {
 max-width: 100%; margin: 0 0 12px; font-size: clamp(17px, 1.8vw, 21px); line-height: 1.5; color: #fff;
}
.mp-info.all_page .gallery_info .btn-gallery {
 position: static; opacity: 1; min-height: 44px; padding: 9px 16px;
 border: 1px solid #d7b05a; font-size: 14px; font-weight: 500; line-height: 1.5;
}
@media (max-width: 991px) {
 .mp-info.all_page .gallery_main > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
 .room_fac { margin-top: 8px; padding: 20px; }
 .so_info { margin-top: 20px; }
 .s17-room-cards .accom_more_a .accom_info { padding: 16px; }
}
@media (max-width: 575px) {
 .mp-info.all_page .gallery_main > ul { grid-template-columns: 1fr; gap: 20px; }
}
/* Give homepage photos more vertical room without stretching the image. */
.header_main,
.header_main .slider,
.header_main .slide_img {
 height: clamp(520px, 46.5vw, 720px) !important;
}
@media (max-width: 991px) {
 .header_main,
 .header_main .slider,
 .header_main .slide_img {
  height: clamp(480px, 62.5vw, 580px) !important;
 }
}
@media (max-width: 767px) {
 .header_main,
 .header_main .slider,
 .header_main .slide_img {
  height: clamp(420px, 120vw, 500px) !important;
 }
}
