:root {
    --forest: #294b3c;
    --forest-deep: #1c352b;
    --moss: #6d8152;
    --sand: #f3f0e6;
    --paper: #fbfaf6;
    --ink: #24332c;
    --line: rgba(37, 68, 53, .2);
    --white: #fff;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Kiwi Maru", sans-serif; font-size: 16px; line-height: 1.9; }

a { color: inherit; text-decoration: none; }

img { display: block; max-width: 100%; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.site-header { --header-background: transparent; --header-shadow: none; --header-backdrop: none; position: absolute; z-index: 20; top: 0; left: 0; display: flex; align-items: center; justify-content: space-between; width: 100%; height: 92px; padding: 0 clamp(24px, 4vw, 72px); color: var(--white); background: transparent; isolation: isolate; transition: color .25s ease, height .25s ease; }

.site-header::before { position: absolute; z-index: 0; inset: 0; background: var(--header-background); box-shadow: var(--header-shadow); content: ""; pointer-events: none; -webkit-backdrop-filter: var(--header-backdrop); backdrop-filter: var(--header-backdrop); transition: background .25s ease, box-shadow .25s ease; }

.site-header::after { position: absolute; z-index: 0; right: 0; bottom: -16px; left: 0; height: 16px; background: var(--header-background); content: ""; pointer-events: none; -webkit-backdrop-filter: var(--header-backdrop); backdrop-filter: var(--header-backdrop); -webkit-mask: url("../images/ui/header-wave-mask.svg") center / 100% 100% no-repeat; mask: url("../images/ui/header-wave-mask.svg") center / 100% 100% no-repeat; transition: background .25s ease; }

.site-header > * { position: relative; z-index: 1; }

.site-header.is-scrolled { --header-background: rgba(255, 255, 255, 1); --header-shadow: 0 4px 24px rgba(20, 43, 31, .1); --header-backdrop: blur(8px); position: fixed; height: 72px; color: var(--forest-deep); }

.site-header--light { --header-background: rgba(255, 255, 255, .75); --header-shadow: 0 4px 24px rgba(20, 43, 31, .1); --header-backdrop: blur(8px); position: fixed; color: var(--forest-deep); }

.site-logo { display: inline-flex; align-items: center; width: 190px; }

.site-logo img, .site-footer__top > img { width: 100%; }

.site-navigation { display: flex; align-items: center; gap: clamp(18px, 2vw, 36px); font-size: 14px; font-weight: 700; letter-spacing: .08em; }

.site-navigation > a:not(.header-reserve):not(.header-customer-status) { padding: 8px 0; border-bottom: 1px solid transparent; }

.site-navigation > a:not(.header-reserve):not(.header-customer-status):hover { border-color: currentColor; }

.header-reserve, .footer-reserve { display: inline-flex; align-items: center; justify-content: center; min-height: 45px; padding: 0 23px; color: var(--forest-deep); background: #eef0df; transition: background .2s ease, color .2s ease; }
.header-customer-status { position: absolute; top: calc(100% + 14px); right: 0; display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 6px 12px 6px 10px; color: var(--forest-deep); font-size: 12px; font-weight: 700; letter-spacing: .02em; white-space: nowrap; background: rgba(255, 255, 255, .94); border: 1px solid rgba(41, 75, 60, .16); border-radius: 999px; box-shadow: 0 5px 18px rgba(20, 43, 31, .14); transition: color .2s ease, background .2s ease, transform .2s ease; }

.header-customer-status[hidden] { display: none; }

.header-customer-status::before { width: 17px; height: 17px; background: currentColor; content: ""; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 2c-5.05 0-9 2.5-9 5.7C3 21.1 4.1 22 5.5 22h13c1.4 0 2.5-.9 2.5-2.3 0-3.2-3.95-5.7-9-5.7Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 2c-5.05 0-9 2.5-9 5.7C3 21.1 4.1 22 5.5 22h13c1.4 0 2.5-.9 2.5-2.3 0-3.2-3.95-5.7-9-5.7Z'/%3E%3C/svg%3E") center / contain no-repeat; }

.header-customer-status:hover { color: var(--white); background: var(--forest); transform: translateY(-1px); }

.header-reserve:hover, .footer-reserve:hover { color: var(--white); background: var(--moss); }

.menu-toggle { display: none; }

.hero { position: relative; min-height: min(800px, 100vh); height: 100svh; overflow: hidden; color: var(--white); background: var(--forest-deep); }

.hero__slides, .hero__slide, .hero__shade { position: absolute; inset: 0; }

.hero__slide { margin: 0; opacity: 0; transition: opacity 1.15s ease; }

.hero__slide.is-active { opacity: 1; }

.hero__slide img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.04); transition: transform 7s ease; }

.hero__slide.is-active img { transform: scale(1); }

.hero__shade { background: linear-gradient(90deg, rgba(14, 33, 24, .62) 0%, rgba(14, 33, 24, .25) 52%, rgba(14, 33, 24, .1) 100%); }

.hero__content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; width: min(1180px, 100% - 48px); height: 100%; margin: 0 auto; padding-top: 72px; }

.eyebrow { margin: 0 0 19px; font-size: 10px; font-weight: 700; letter-spacing: .2em; line-height: 1.4; }

.eyebrow--green { color: var(--moss); }

h1, h2, h3, p { margin-top: 0; }

h1, h2, h3 { font-weight: 500; letter-spacing: .08em; }

h1 { margin-bottom: 24px; font-size: clamp(42px, 5.3vw, 76px); line-height: 1.42; }

.hero__catch { max-width: 1150px; font-size: clamp(28px, 3.6vw, 52px); line-height: 1.55; letter-spacing: .06em; }

.hero__lead { margin-bottom: 37px; font-size: 15px; letter-spacing: .08em; line-height: 2; }

.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 30px; width: fit-content; min-width: 244px; padding: 15px 20px 15px 25px; font-weight: 700; letter-spacing: .08em; line-height: 1.5; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }

.button:hover { transform: translateY(-2px); }

.button > span { font-size: 18px; font-weight: 400; }

.button--light { color: var(--forest-deep); background: var(--white); }

.button--light:hover { background: #e9eddd; }

.button--outline { color: var(--forest); border: 1px solid var(--forest); }

.button--outline:hover { color: var(--white); background: var(--forest); }

.button--dark { color: var(--white); background: var(--forest-deep); }

.button--dark:hover { background: var(--moss); }

.hero__pager { position: absolute; z-index: 3; right: clamp(24px, 4vw, 72px); bottom: 43px; display: flex; gap: 10px; }

.hero__pager button { width: 32px; height: 16px; padding: 7px 0; border: 0; border-top: 1px solid rgba(255, 255, 255, .52); background: transparent; cursor: pointer; }

.hero__pager button.is-active { border-color: var(--white); }

.hero__scroll { position: absolute; z-index: 3; bottom: 38px; left: clamp(24px, 4vw, 72px); display: flex; align-items: center; gap: 13px; font-size: 9px; font-weight: 700; letter-spacing: .18em; }

.hero__scroll span { display: block; width: 48px; height: 1px; background: currentColor; }

.facility-page { padding-top: 72px; }

.price-guide { padding-top: clamp(54px, 7vw, 90px); padding-bottom: clamp(70px, 9vw, 120px); }

.price-guide__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 4vw, 56px); align-items: start; }

.price-panel { min-width: 0; padding: clamp(22px, 3vw, 38px); background: #fff; border: 1px solid rgba(37, 68, 53, .12); box-shadow: 0 14px 38px rgba(20, 43, 31, .045); }

.price-panel__heading { margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }

.price-panel__heading .eyebrow { margin-bottom: 4px; }

.price-panel__heading h2 { margin: 0; color: var(--forest-deep); font-size: clamp(27px, 2.6vw, 36px); line-height: 1.5; }

.price-panel__note, .price-panel__special > p { margin-bottom: 18px; color: #526159; font-size: 14px; line-height: 1.8; }

.price-table-wrap { max-width: 100%; overflow-x: auto; }

.price-table-tax { margin: 0 0 4px; color: #68756e; font-size: 11px; line-height: 1.4; text-align: right; }

.price-table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.65; }

.price-table th, .price-table td { padding: 10px 9px; border-bottom: 1px solid rgba(37, 68, 53, .12); }

.price-table thead th { color: var(--forest-deep); font-size: 12px; font-weight: 700; background: #f3f0e6; }

.price-table thead th:last-child, .price-table td { width: 92px; text-align: right; white-space: nowrap; }

.price-table tbody th { font-weight: 400; text-align: left; }

.price-table tbody tr:last-child th, .price-table tbody tr:last-child td { border-bottom: 0; }

.page-intro { padding: clamp(80px, 10vw, 145px) max(24px, calc((100% - 1180px) / 2)); color: var(--forest-deep); background-color: var(--sand); background-image: linear-gradient(rgba(243, 240, 230, .48), rgba(243, 240, 230, .48)), url("/assets/images/backgrounds/bg_title_pc.jpg"); background-position: center; background-size: cover; text-align: center; }

.page-intro h1 { margin-bottom: 16px; font-size: clamp(34px, 4vw, 42px); line-height: 1.45; }

.page-intro > p:not(.eyebrow) { margin-bottom: 0; font-size: 14px; }

.customer-information { max-width: 900px; padding-top: clamp(46px, 6vw, 82px); padding-bottom: clamp(70px, 8vw, 110px); }
.customer-information > p:first-child { margin-top: 0; }
.customer-information section { margin-top: 48px; }
.customer-information h2 { margin: 0 0 18px; padding: 11px 16px; color: var(--forest-deep); font-size: clamp(20px, 2.2vw, 26px); line-height: 1.5; background: linear-gradient(90deg, rgba(109, 129, 82, .12), rgba(109, 129, 82, .035)); border-left: 4px solid var(--moss); border-radius: 0 7px 7px 0; }
.customer-information h3 { margin: 28px 0 10px; color: var(--forest); font-size: 18px; }
.customer-information p, .customer-information li { font-size: 14px; line-height: 2; }
.customer-information ul, .customer-information ol { padding-left: 1.5em; }
.customer-information li + li { margin-top: 8px; }
.customer-information__closing { margin: 52px 0 0; padding-top: 25px; border-top: 1px solid var(--line); }
.customer-information__table-wrap { overflow-x: auto; }
.customer-information__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.customer-information__table th, .customer-information__table td { padding: 13px 16px; text-align: left; border-bottom: 1px solid var(--line); }
.customer-information__table thead th { color: var(--forest-deep); font-size: 12px; background: var(--sand); }
.customer-information__table tbody th { font-weight: 400; }
.customer-information__table td { width: 35%; text-align: center; white-space: nowrap; }
.customer-note-page .customer-information p, .customer-note-page .customer-information li { line-height: 1.65; }
.customer-note-page .customer-information li + li { margin-top: 4px; }
.cancellation-policy-page .customer-information p, .cancellation-policy-page .customer-information li { line-height: 1.65; }
.cancellation-policy-page .customer-information li + li { margin-top: 4px; }

.section { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: clamp(86px, 10vw, 150px) 0; }

.section__heading h2, .contact h2 { margin-bottom: 0; font-size: clamp(32px, 3.5vw, 49px); line-height: 1.55; }

.intro { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(320px, 1fr); gap: clamp(50px, 9vw, 150px); align-items: start; }

.intro__body { padding-top: 30px; }

.intro__body p { margin-bottom: 20px; }

.text-link { display: inline-flex; gap: 22px; align-items: center; margin-top: 17px; color: var(--forest); font-weight: 700; letter-spacing: .07em; border-bottom: 1px solid var(--forest); }

.text-link span { font-size: 17px; font-weight: 400; }

.section--sand { width: 100%; max-width: none; padding-right: max(24px, calc((100% - 1180px) / 2)); padding-left: max(24px, calc((100% - 1180px) / 2)); background: var(--sand); }

.section__heading--row { display: flex; justify-content: space-between; gap: 48px; margin-bottom: 50px; }

.section__intro { width: min(350px, 100%); margin: auto 0 5px; font-size: 14px; }

.stay-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; counter-reset: stay-card; }

.stay-card { position: relative; min-height: 410px; overflow: hidden; color: var(--white); background-color: var(--forest-deep); background-position: center; background-size: cover; counter-increment: stay-card; }

.stay-card::before { position: absolute; inset: 0; content: ""; background: linear-gradient(0deg, rgba(12, 29, 21, .78), rgba(12, 29, 21, .03) 68%); }

.stay-card--trailer { background-image: url("../images/stay/img_01.jpg"); }
.stay-card--cottage { background-image: url("../images/stay/img_02.jpg"); }
.stay-card--tent { background-image: url("../images/stay/img_05.jpg"); }
.stay-card--solo-duo { background-image: url("../images/stay/img_07.jpg"); }
.stay-card--carmbear { background-image: url("../images/stay/img_08.jpg"); }

.stay-card::after { position: absolute; top: 20px; left: 24px; content: counter(stay-card, decimal-leading-zero); font-size: 13px; }

.stay-card__content { position: absolute; right: 24px; bottom: 25px; left: 24px; }

.stay-card__content p { margin-bottom: 5px; font-size: 9px; font-weight: 700; letter-spacing: .14em; }

.stay-card__content h3 { margin-bottom: 5px; font-size: 27px; }

.stay-card__content span { font-size: 11px; }

.section__action { display: flex; justify-content: center; margin-top: 42px; }

.facility-guide { padding-top: clamp(42px, 5vw, 68px); padding-bottom: clamp(50px, 6vw, 80px); }

.facility-overview { margin-bottom: clamp(58px, 8vw, 100px); }

.facility-overview-primary { display: block; }

.facility-overview-copy { margin-bottom: clamp(34px, 5vw, 58px); }

.facility-overview-copy h2 { margin-bottom: 25px; font-size: clamp(25px, 2.5vw, 37px); line-height: 1.75; letter-spacing: .05em; }

.facility-overview-copy h3 { margin-bottom: 0; color: #526159; font-size: clamp(15px, 1.45vw, 20px); font-weight: 400; line-height: 2; letter-spacing: .04em; }

.facility-overview-information { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px clamp(28px, 4vw, 52px); align-items: start; min-width: 0; }

.facility-map { grid-row: 1 / span 2; grid-column: 1; margin: 0; }

.facility-map img { width: 100%; border: 1px solid rgba(37, 68, 53, .12); }

.facility-map figcaption { margin-top: 8px; color: #68756e; font-size: 9px; font-weight: 700; letter-spacing: .18em; text-align: right; }

.facility-map__button { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; color: inherit; background: none; border: 0; cursor: zoom-in; }

.facility-map__button:focus-visible { outline: 3px solid var(--moss); outline-offset: 4px; }

.facility-map__zoom { position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; min-height: 34px; padding: 6px 13px; color: #fff; font-size: inherit; font-weight: 700; letter-spacing: .04em; background: rgba(30, 43, 32, .84); border-radius: 999px; }

.image-lightbox[hidden] { display: none; }

.image-lightbox { position: fixed; z-index: 1000; inset: 0; display: grid; padding: 3vh 2vw; place-items: center; }

.image-lightbox__backdrop { position: absolute; inset: 0; background: rgba(10, 15, 11, .86); cursor: zoom-out; }

.image-lightbox__dialog { position: relative; z-index: 1; width: min(1100px, 96vw); max-height: 94vh; padding: 16px; background: #fff; box-shadow: 0 20px 60px rgba(0, 0, 0, .4); }

.image-lightbox__close { position: absolute; z-index: 2; top: 24px; right: 24px; display: grid; width: 44px; height: 44px; padding: 0; color: #fff; font-size: 32px; line-height: 1; background: rgba(30, 43, 32, .9); border: 1px solid rgba(255, 255, 255, .7); border-radius: 50%; cursor: pointer; place-items: center; }

.image-lightbox__close:focus-visible { outline: 3px solid var(--moss); outline-offset: 3px; }

.image-lightbox__viewport { max-height: calc(94vh - 32px); overflow: auto; overscroll-behavior: contain; }

.image-lightbox__viewport img { display: block; width: 1024px; max-width: none; height: auto; }

body.has-image-lightbox { overflow: hidden; }

.breadcrumbs { display: flex; flex-wrap: wrap; gap: 7px 11px; margin-bottom: 36px; color: #68756e; font-family: "Montserrat", sans-serif; font-size: 9px; font-weight: 600; letter-spacing: .1em; }

.breadcrumbs a:hover { text-decoration: underline; }

.facility-detail-intro { padding-bottom: clamp(56px, 8vw, 95px); text-align: left; }

.facility-detail-intro--has-image { position: relative; color: #fff; background-color: var(--forest-deep); background-image: linear-gradient(90deg, rgba(18, 42, 31, .82) 0%, rgba(18, 42, 31, .63) 53%, rgba(18, 42, 31, .43) 100%), url("/assets/images/backgrounds/bg_title_pc.jpg"); background-position: center; background-size: cover; }

.facility-detail-intro--has-image .breadcrumbs, .facility-detail-intro--has-image .facility-detail-intro__lead { color: rgba(255, 255, 255, .86); }

.facility-detail-intro--has-image .eyebrow--green { color: #dbe7ba; }

.facility-detail-intro--has-image .facility-detail-intro__summary li { border-color: rgba(255, 255, 255, .42); }

.facility-detail-intro--has-image .facility-detail-intro__summary strong, .facility-detail-intro--has-image .facility-detail-intro__summary span { color: #fff; }

.facility-detail-intro > div { width: 100%; max-width: 1180px; margin: 0 auto; }

.facility-detail-intro h1 { margin-bottom: 18px; }

.facility-detail-intro__additional { display: block; margin-top: .2em; font-size: .6em; font-weight: 400; line-height: 1.45; }

.facility-detail-intro__lead { max-width: 760px; margin-bottom: 35px; color: #526159; font-size: clamp(14px, 1.4vw, 18px); line-height: 2; }

.facility-detail-intro__summary { display: flex; gap: 0; margin: 0; padding: 0; list-style: none; }

.facility-detail-intro__summary li { display: flex; align-items: baseline; flex-direction: column; min-width: 130px; padding: 0 25px; border-left: 1px solid var(--line); }

.facility-detail-intro__summary li:first-child { padding-left: 0; border-left: 0; }

.facility-detail-intro__summary strong { color: var(--forest-deep); font-family: "Montserrat", sans-serif; font-size: clamp(25px, 3vw, 38px); font-weight: 600; line-height: 1.2; }

.facility-detail-intro__summary span { color: #718078; font-family: "Montserrat", sans-serif; font-size: 8px; font-weight: 700; letter-spacing: .15em; }

.facility-detail { width: min(1180px, 100% - 48px); margin: 0 auto; padding-top: clamp(60px, 7vw, 95px); padding-bottom: clamp(80px, 10vw, 135px); }

.facility-detail-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 26px; }

.facility-detail-section-heading .eyebrow { margin-bottom: 9px; }

.facility-detail-section-heading h2 { margin: 0; color: var(--forest-deep); font-size: clamp(25px, 3vw, 38px); line-height: 1.45; }

.facility-detail-section-heading > p { margin-bottom: 3px; color: #78837d; font-family: "Montserrat", sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .12em; }

.facility-detail-section-heading--stacked { display: block; }

.facility-gallery { margin-bottom: clamp(85px, 11vw, 145px); outline: none; }

.facility-gallery:focus-visible { outline: 3px solid var(--moss); outline-offset: 8px; }

.facility-gallery__stage { position: relative; overflow: hidden; background: #e9e6dc; }

.facility-gallery__stage::before { position: absolute; z-index: 0; inset: -24px; background: var(--gallery-image) center / cover no-repeat; content: ""; filter: blur(22px); opacity: .24; transform: scale(1.08); }

.facility-gallery__viewport { position: relative; z-index: 1; overflow: hidden; }

.facility-gallery__track { display: flex; touch-action: pan-y; transition: transform .45s cubic-bezier(.22, .61, .36, 1); user-select: none; }

.facility-gallery__track.is-dragging { cursor: grabbing; transition: none; }

.facility-gallery__slide { flex: 0 0 100%; margin: 0; }

.facility-gallery__slide button { display: block; width: 100%; height: min(72vw, 720px); padding: 0; background: #e9e6dc; border: 0; cursor: grab; }

.facility-gallery__slide button:active { cursor: grabbing; }

.facility-gallery__slide img { width: 100%; height: 100%; object-fit: contain; }

.facility-gallery__control, .gallery-lightbox__control { position: absolute; z-index: 2; top: 50%; display: grid; width: 52px; height: 52px; padding: 0; color: var(--forest-deep); background: rgba(251, 250, 246, .9); border: 0; border-radius: 50%; box-shadow: 0 5px 18px rgba(20, 43, 31, .2); cursor: pointer; place-items: center; transform: translateY(-50%); transition: color .2s ease, background .2s ease; }

.facility-gallery__control:hover { color: #fff; background: var(--forest); }

.facility-gallery__control--prev { left: 22px; }

.facility-gallery__control--next { right: 22px; }

.facility-gallery__zoom-hint { position: absolute; right: 22px; bottom: 18px; padding: 5px 12px; color: #fff; font-size: 16px; font-weight: 700; letter-spacing: .05em; background: rgba(28, 53, 43, .82); border-radius: 999px; pointer-events: none; }

.facility-gallery__thumbnails { display: grid; grid-template-columns: repeat(6, 1fr); gap: 9px; margin-top: 12px; }

.facility-gallery__thumbnails button { height: 104px; padding: 0; overflow: hidden; background: #e9e6dc; border: 2px solid transparent; cursor: pointer; opacity: .58; transition: opacity .2s ease, border-color .2s ease; }

.facility-gallery__thumbnails button:hover, .facility-gallery__thumbnails button[aria-current="true"] { border-color: var(--moss); opacity: 1; }

.facility-gallery button:focus-visible, .facility-floor-plan button:focus-visible, .gallery-lightbox button:focus-visible { outline: 3px solid var(--moss); outline-offset: 3px; }

.facility-gallery__thumbnails img { width: 100%; height: 100%; object-fit: contain; }

.gallery-lightbox[hidden] { display: none; }

.gallery-lightbox { position: fixed; z-index: 1100; inset: 0; display: grid; padding: 3vh 3vw; place-items: center; }

.gallery-lightbox__backdrop { position: absolute; inset: 0; background: rgba(8, 14, 10, .94); cursor: zoom-out; }

.gallery-lightbox__dialog { position: relative; z-index: 1; display: grid; width: min(1050px, 94vw); height: 94vh; place-items: center; }

.gallery-lightbox__dialog img { width: 100%; height: calc(94vh - 50px); object-fit: contain; }

.gallery-lightbox__close { position: absolute; z-index: 3; top: 8px; right: 8px; display: grid; width: 46px; height: 46px; padding: 0; color: #fff; font-size: 32px; line-height: 1; background: rgba(28, 53, 43, .92); border: 1px solid rgba(255, 255, 255, .65); border-radius: 50%; cursor: pointer; place-items: center; }

.gallery-lightbox__control { color: #fff; background: rgba(28, 53, 43, .85); }

.gallery-lightbox__control--prev { left: 8px; }

.gallery-lightbox__control--next { right: 8px; }

.gallery-lightbox__dialog > p { position: absolute; bottom: 0; margin: 0; color: #fff; font-family: "Montserrat", sans-serif; font-size: 11px; letter-spacing: .13em; }

body.has-gallery-lightbox { overflow: hidden; }

.facility-plan-details { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(38px, 6vw, 80px); align-items: start; margin-bottom: clamp(85px, 11vw, 145px); }

.facility-floor-plan { margin: 0; }

.facility-floor-plan button { position: relative; display: grid; width: 100%; min-height: 360px; padding: clamp(28px, 4vw, 55px); font: inherit; background: #fff; border: 1px solid var(--line); cursor: zoom-in; place-items: center; }

.facility-floor-plan button span { position: absolute; right: 14px; bottom: 13px; padding: 5px 11px; color: #fff; font-size: inherit; font-weight: 700; background: rgba(28, 53, 43, .84); border-radius: 999px; }

.facility-floor-plan figcaption { margin-top: 8px; color: #68756e; font-family: "Montserrat", sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .18em; text-align: right; }

.image-lightbox__viewport--floor-plan { background: #fff; }

.image-lightbox__viewport--floor-plan img { width: 1200px; padding: 45px; }

.facility-detail-data { margin: 0; border-top: 1px solid var(--line); }

.facility-detail-information .facility-detail-section-heading { margin-bottom: 15px; }

.facility-detail-data { line-height: 1.65; }

.facility-detail-data div { display: grid; grid-template-columns: 122px 1fr; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--line); }

.facility-detail-data dt { color: var(--forest-deep); font-weight: 500; }

.facility-detail-data dd { margin: 0; color: #526159; }

.facility-detail-information__note { margin: 10px 0 0; color: #6c7771; font-size: 11px; line-height: 1.65; }

.facility-rates { margin-bottom: clamp(85px, 11vw, 145px); }

.facility-rate-loader__status, .facility-rate-table__empty, .facility-rate-loader__error { padding: 36px; color: #68756e; text-align: center; background: rgba(255, 255, 255, .62); border: 1px solid var(--line); }

.facility-rate-table__scroll { max-width: 100%; overflow-x: auto; outline-offset: 4px; }

.facility-rate-table__table { width: 100%; min-width: 520px; border-collapse: collapse; background: #fff; text-align: center; }

.facility-rate-table__table th, .facility-rate-table__table td { padding: 20px 18px; border: 1px solid var(--line); }

.facility-rate-table__table thead th { color: #fff; font-weight: 500; background: var(--forest); }

.facility-rate-table__table tbody th { min-width: 180px; color: var(--forest-deep); font-weight: 500; background: #f0eee5; }

.facility-rate-table__price { color: var(--forest-deep); font-family: "Montserrat", sans-serif; font-size: clamp(16px, 1.7vw, 21px); font-weight: 600; white-space: nowrap; }

.facility-rate-table__unavailable { color: #9aa29e; }

.facility-rate-table__tax-note { margin: 10px 0 0; color: #68756e; font-size: 11px; text-align: right; }

.facility-rate-loader__retry { display: inline-flex; min-height: 42px; margin-top: 13px; padding: 0 20px; align-items: center; color: #fff; font: inherit; background: var(--forest); border: 0; cursor: pointer; }

.facility-rate-notes { margin-top: 26px; padding: clamp(20px, 3vw, 30px); background: #f0eee5; }

.facility-rate-notes h3 { margin-bottom: 14px; color: var(--forest-deep); font-size: 17px; }

.facility-rate-notes__item { padding: 12px 0; border-top: 1px solid var(--line); }

.facility-rate-notes__item:last-child { padding-bottom: 0; }

.facility-rate-notes__item p { margin-bottom: 0; }

.facility-rate-notes__child-prices { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 10px 0; padding: 0; list-style: none; }

.facility-rate-notes__child-prices li { display: flex; flex-direction: column; }

.facility-rate-notes__child-prices span { color: #68756e; font-size: 11px; }

.facility-rate-notes__sub { color: #68756e; font-size: 11px; line-height: 1.7; }

.facility-detail-booking { display: flex; align-items: center; justify-content: space-between; gap: 45px; padding: clamp(45px, 7vw, 80px); color: #fff; background: var(--forest-deep); }

.facility-detail-booking h2 { margin-bottom: 12px; font-size: clamp(24px, 3vw, 38px); }

.facility-detail-booking p:last-child { margin-bottom: 0; }

.floating-booking { position: fixed; z-index: 50; right: clamp(18px, 2.4vw, 38px); bottom: max(18px, env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: center; width: clamp(150px, 15vw, 168px); height: 50px; padding: 0 16px; color: #fff; background: linear-gradient(105deg, rgba(20, 46, 36, .76), rgba(20, 46, 36, .64)), url("../images/ui/booking-floating-badge.webp") center 58% / cover no-repeat; border: 1px solid rgba(233, 214, 156, .82); border-radius: 999px; box-shadow: 0 8px 22px rgba(16, 37, 27, .24); transition: transform .25s ease, filter .25s ease, box-shadow .25s ease; }

.floating-booking__content { display: flex; align-items: center; justify-content: center; gap: 12px; }

.floating-booking__content strong { font-size: 14px; font-weight: 500; letter-spacing: .05em; line-height: 1.4; white-space: nowrap; }

.floating-booking__arrow { font-family: sans-serif; font-size: 16px; line-height: 1; transition: transform .25s ease; }

.floating-booking:hover { filter: brightness(1.12); box-shadow: 0 11px 28px rgba(16, 37, 27, .3); transform: translateY(-2px); }

.floating-booking:hover .floating-booking__arrow { transform: translateX(3px); }

.floating-booking:focus-visible { outline: 3px solid #e9d69c; outline-offset: 5px; }

.facility-table-wrap { max-width: 100%; margin: 0; overflow-x: auto; outline-offset: 4px; }

.facility-data-table { width: 100%; min-width: 540px; border-collapse: collapse; color: var(--ink); background: rgba(255, 255, 255, .58); font-size: 10px; line-height: 1.55; }

.facility-data-table caption { padding-bottom: 9px; color: var(--forest-deep); font-size: 16px; font-weight: 500; letter-spacing: .08em; text-align: left; }

.facility-data-table th, .facility-data-table td { padding: 9px 11px; border: 1px solid var(--line); text-align: left; vertical-align: middle; }

.facility-data-table th { color: var(--forest-deep); background: rgba(109, 129, 82, .09); font-weight: 500; }

.facility-data-table--summary th { width: 29%; white-space: nowrap; }

.facility-data-table--summary td:nth-child(2) { width: 14%; white-space: nowrap; }

.facility-data-table--hours th, .facility-data-table--hours td { text-align: center; }

.facility-data-table--hours tbody th { text-align: left; }

.facility-overview-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 28px; }

.facility-information-panel { padding: clamp(24px, 3vw, 34px); background: var(--sand); }

.facility-information-panel h3 { margin-bottom: 17px; color: var(--forest-deep); font-size: 18px; }

.facility-information-panel ul { margin: 0; padding: 0; list-style: none; }

.facility-information-panel li { position: relative; padding: 9px 0 9px 18px; border-top: 1px solid var(--line); font-size: 11px; line-height: 1.8; }

.facility-information-panel li::before { position: absolute; top: 9px; left: 0; color: var(--moss); content: "※"; }

.facility-category-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin-bottom: clamp(42px, 6vw, 72px); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }

.facility-category-nav a { display: flex; flex-direction: column; justify-content: center; min-height: 82px; padding: 13px 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: color .2s ease, background .2s ease; }

.facility-category-nav a:hover { color: var(--white); background: var(--forest); }

.facility-category-nav strong { font-size: 12px; letter-spacing: .08em; line-height: 1.5; }

.facility-category-nav small { margin-top: 3px; font-size: 10px; }

.facility-category-section { scroll-margin-top: 92px; padding: clamp(42px, 5vw, 68px) 0; border-top: 1px solid var(--line); }

.facility-category-section:last-child { padding-bottom: 0; }

.facility-category-section--pending { padding: 30px 0; }

.facility-category-heading { display: grid; grid-template-columns: minmax(260px, .85fr) minmax(280px, 1fr); gap: clamp(32px, 6vw, 82px); align-items: start; margin-bottom: 30px; }

.facility-category-section--pending .facility-category-heading { align-items: center; margin-bottom: 0; }

.facility-category-heading .eyebrow { margin-bottom: 8px; }

.facility-category-heading h2 { margin-bottom: 0; font-size: clamp(27px, 2.6vw, 38px); line-height: 1.4; }

.facility-category-heading > p { max-width: 500px; margin: 7px 0 0; font-size: 13px; }

.facility-category-heading .facility-category-heading__pending { color: #707b75; }

.facility-category-introduction { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(360px, 1fr); gap: clamp(32px, 6vw, 82px); margin: 0 0 clamp(34px, 4vw, 48px); }

.facility-category-introduction h3 { margin: 0; font-size: clamp(20px, 2vw, 27px); line-height: 1.7; letter-spacing: .05em; }

.facility-category-introduction__body p { margin-bottom: 10px; font-size: 12px; line-height: 1.85; }

.facility-category-introduction__body p:last-child { margin-bottom: 0; }

.facility-category-introduction__note { color: #66726b; font-size: 11px !important; }

.facility-list-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }

.facility-list-card { display: grid; grid-template-columns: minmax(180px, 40%) 1fr; min-height: 210px; overflow: hidden; background: var(--white); box-shadow: 0 8px 22px rgba(36, 51, 44, .07); }

.facility-list-card > img { width: 100%; height: 100%; min-height: 210px; object-fit: cover; }

.facility-list-card__body { display: flex; flex-direction: column; justify-content: center; padding: 18px clamp(18px, 2vw, 28px) 20px; }

.facility-list-card__body .eyebrow { margin-bottom: 7px; font-size: 9px; }

.facility-list-card__body h3 { margin-bottom: 13px; font-size: clamp(23px, 2vw, 29px); line-height: 1.4; letter-spacing: .04em; }

.facility-list-card__body > p:last-child { margin-bottom: 0; font-size: 13px; }

.facility-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--line); }

.facility-specs > div { display: block; padding: 8px 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }

.facility-specs > div:nth-child(odd) { padding-left: 0; }

.facility-specs > div:nth-child(even) { border-right: 0; }

.facility-specs > div:last-child { border-right: 0; }

.facility-specs dt { color: #66726b; font-size: 10px; font-weight: 700; letter-spacing: .05em; }

.facility-specs dd { margin: 0; font-size: 12px; font-weight: 500; }

.facility-list-card .text-link { margin-top: 16px; }

.booking-banner { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: clamp(76px, 8.5vw, 125px) max(24px, calc((100% - 1020px) / 2)); color: var(--white); background: linear-gradient(115deg, rgba(26, 58, 41, .95), rgba(47, 84, 55, .88)), url("../images/hero/img_slide_10.jpg") center / cover; }

.booking-banner .eyebrow { color: #cfddae; }

.booking-banner h2 { margin-bottom: 13px; font-size: clamp(32px, 3.4vw, 48px); line-height: 1.55; }

.booking-banner p:not(.eyebrow) { margin-bottom: 0; font-size: 13px; }

.access { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(400px, 1.1fr); gap: clamp(50px, 8vw, 120px); }

.access__details { padding-top: 31px; }

.access__route-map { margin: 30px 0 0; padding: 12px; background: var(--sand); }

.access__route-map img { width: 100%; height: auto; }

.access__route-section + .access__route-section { margin-top: 30px; }

.access__route-section h3 { margin-bottom: 12px; color: var(--forest-deep); font-size: 20px; font-weight: 500; }

.access__route-section ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }

.access__route-section li { position: relative; padding-left: 14px; color: #526159; font-size: 14px; line-height: 1.85; }

.access__route-section li::before { position: absolute; top: .84em; left: 0; width: 4px; height: 4px; background: var(--moss); border-radius: 50%; content: ""; }

.access__route-section strong { color: var(--forest-deep); font-size: 15px; }

.access__google-map { grid-column: 1 / -1; margin-top: clamp(14px, 2vw, 22px); aspect-ratio: 680 / 350; overflow: hidden; }

.access__google-map iframe { display: block; width: 100%; height: 100%; border: 0; }

.contact { padding: clamp(78px, 9vw, 128px) 24px; color: var(--forest-deep); background: #e5e9d8; text-align: center; }

.contact .eyebrow { color: var(--moss); }

.contact h2 { margin-bottom: 33px; }

.contact-page__booking { margin: 18px 0 0; }

.contact-page__booking a { color: var(--forest); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }

.contact-options { padding-top: clamp(54px, 7vw, 92px); }

.contact-options__grid { display: grid; grid-template-columns: minmax(280px, .85fr) minmax(0, 1.4fr); gap: 24px; align-items: start; }

.contact-panel { padding: clamp(24px, 3vw, 38px); background: #fff; border: 1px solid var(--line); }

.contact-panel h2 { margin-bottom: 15px; color: var(--forest-deep); font-size: clamp(24px, 2.4vw, 32px); }

.contact-panel .eyebrow { margin-bottom: 10px; color: var(--moss); }

.contact-panel__description { margin-bottom: 22px; color: #526159; }

.contact-form__guidance { margin-bottom: 12px; color: #526159; font-size: 14px; }

.contact-form__guidance a { color: var(--forest); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.contact-form__notes { margin: 8px 0 4px; padding: 14px 16px 14px 34px; color: #a13d35; font-size: 13px; line-height: 1.5; background: #fbf2ef; border-left: 3px solid #a13d35; }

.contact-form__notes li + li { margin-top: 2px; }

.contact-method-button { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; margin-top: 14px; padding: 16px 20px; color: var(--white); background: var(--forest-deep); }

.contact-method-button__icon { flex: 0 0 22px; width: 22px; height: 22px; color: #e9d69c; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }

.contact-method-button span { min-width: 42px; color: #e9d69c; font-size: 14px; font-weight: 700; letter-spacing: .08em; }

.contact-method-button strong { font-size: 20px; font-weight: 500; letter-spacing: .04em; }

.contact-method-button small { width: 100%; margin-left: 76px; font-size: 13px; }

a.contact-method-button:hover { background: var(--moss); }

.contact-method-button--fax { background: #526159; }

.contact-form { display: grid; gap: 9px; }

.contact-form > label { margin-top: 9px; color: var(--forest-deep); font-weight: 500; }

.contact-form > label span { margin-left: 5px; color: #9e4b3e; font-size: 12px; }

.contact-form > label small { margin-left: 5px; color: #68756e; font-size: 12px; }

.contact-form__address { display: grid; gap: 9px; min-width: 0; margin: 12px 0 4px; padding: 14px 0 0; border: 0; border-top: 1px solid var(--line); }

.contact-form__address legend { padding: 0 8px 0 0; color: var(--forest-deep); font-size: 17px; font-weight: 500; }

.contact-form__address label { margin-top: 5px; color: var(--forest-deep); font-weight: 500; }

.contact-form__address label span { margin-left: 5px; color: #9e4b3e; font-size: 12px; }

.contact-form__address label small { margin-left: 5px; color: #68756e; font-size: 12px; }

.contact-form__postal-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }

.contact-form__postal-search { padding: 9px 14px; color: var(--white); font: inherit; background: var(--forest); border: 0; cursor: pointer; }

.contact-form__postal-search:hover { background: var(--moss); }

.contact-form__postal-note { color: #68756e; font-size: 12px; }

.contact-form__postal-status { min-height: 0; margin: 0; color: #526159; font-size: 13px; }

.contact-form__postal-status:not(:empty) { margin-top: -3px; }

.contact-form__postal-candidates { display: grid; gap: 7px; }

.contact-form__postal-candidates[hidden] { display: none; }

.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: 11px 13px; color: var(--ink); font: inherit; line-height: 1.6; background: var(--paper); border: 1px solid rgba(37, 68, 53, .3); border-radius: 0; }

.contact-form textarea { min-height: 150px; resize: vertical; }

.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline: 2px solid var(--moss); outline-offset: 2px; }

.contact-form__submit { margin-top: 15px; cursor: pointer; }

.contact-form__submit:disabled { opacity: .55; cursor: not-allowed; }

.contact-form__submit:disabled:hover { transform: none; }

.contact-form__pending, .contact-form__status, .contact-form__error { margin: 8px 0; padding: 12px 15px; background: #eef0df; }

.contact-form__status { color: #234f75; background: #e8f2fb; border-left: 3px solid #5a8fbd; }

.contact-form__error { color: #8f3028; background: #fbefed; border-left: 3px solid #b84b40; }

.contact-form__error, .contact-form__field-error { color: #9e352a; }

.contact-form__field-error { margin: -5px 0 3px; font-size: 14px; }

.contact-form__honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.site-footer { padding: 55px max(24px, calc((100% - 1180px) / 2)) 24px; color: var(--white); background: var(--forest-deep); }

.site-footer__partners { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: center; gap: 12px; padding-bottom: 32px; margin-bottom: 38px; border-bottom: 1px solid rgba(255, 255, 255, .2); }

.site-footer__partners a { display: block; transition: opacity .2s ease, transform .2s ease; }

.site-footer__partners a:hover { opacity: .82; transform: translateY(-2px); }

.site-footer__partners a:focus-visible { outline: 2px solid var(--white); outline-offset: 4px; }

.site-footer__partners img { display: block; width: 100%; max-width: 234px; height: auto; margin: 0 auto; aspect-ratio: 234 / 60; object-fit: contain; }

.site-footer__top { display: flex; align-items: center; justify-content: space-between; gap: 34px; padding-bottom: 45px; border-bottom: 1px solid rgba(255, 255, 255, .2); }

.site-footer__top > img { width: 170px; }

.site-footer__top > div { flex: 1; font-size: 11px; letter-spacing: .04em; }

.site-footer__top p { margin-bottom: 3px; }

.site-footer__top a { font-size: 13px; font-weight: 700; letter-spacing: .06em; }

.site-footer__bottom { display: flex; justify-content: space-between; gap: 30px; padding-top: 23px; font-size: 10px; }

.site-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 8px 25px; }

.site-footer__bottom nav a:hover { text-decoration: underline; }

.site-footer__bottom small { white-space: nowrap; font-size: 10px; }

@media (min-width: 761px) and (max-width: 1000px) {
    .facility-overview-information { gap: 20px 30px; }

    .facility-list-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .customer-information { padding-top: 48px; padding-bottom: 66px; }
    .customer-information section { margin-top: 36px; }
    .customer-information__table { min-width: 460px; }
    body { font-size: 16px; }

    .facility-detail-page, .facility-detail-page main { overflow-x: hidden; }

    .floating-booking { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); width: 140px; height: 44px; padding: 0 13px; }
    .floating-booking__content { gap: 9px; }
    .floating-booking__content strong { font-size: 13px; }

    .breadcrumbs { margin-bottom: 25px; }

    .facility-detail { width: calc(100% - 40px); padding-top: 52px; }

    .facility-detail-intro__summary li { min-width: 0; padding: 0 15px; }

    .facility-detail-intro__summary strong { font-size: 25px; }

    .facility-detail-section-heading { align-items: end; }

    .facility-gallery__slide button { height: 105vw; max-height: 590px; }

    .facility-gallery__control, .gallery-lightbox__control { width: 43px; height: 43px; }

    .facility-gallery__control--prev { left: 10px; }

    .facility-gallery__control--next { right: 10px; }

    .facility-gallery__zoom-hint { right: 10px; bottom: 10px; }

    .facility-gallery__thumbnails { grid-template-columns: repeat(3, 1fr); }

    .facility-gallery__thumbnails button { height: 92px; }

    .gallery-lightbox { padding: 2vh 12px; }

    .gallery-lightbox__dialog { width: 100%; height: 96vh; }

    .gallery-lightbox__dialog img { height: calc(96vh - 45px); }

    .facility-plan-details { display: block; }

    .facility-floor-plan { margin-bottom: 52px; }

    .facility-floor-plan button { min-height: 260px; }

    .facility-detail-data div { display: block; }

    .facility-detail-data dt { margin-bottom: 5px; }

    .facility-rate-table__table { width: max-content; min-width: 100%; table-layout: fixed; }

    .facility-rate-table__table th, .facility-rate-table__table td { width: 10ch; min-width: 10ch; padding: 14px 8px; }

    .facility-rate-table__table thead th:first-child, .facility-rate-table__table tbody th { width: 20ch; min-width: 20ch; }

    .facility-rate-notes__child-prices { display: grid; grid-template-columns: 1fr 1fr; }

    .facility-detail-booking { display: block; padding: 48px 25px; }

    .facility-detail-booking .button { margin-top: 27px; }

    .site-header { height: 72px; padding: 0 20px; }

    .site-header.is-scrolled { height: 64px; }

    .site-header.is-menu-open { --header-background: var(--paper); --header-shadow: 0 4px 24px rgba(20, 43, 31, .1); color: var(--forest-deep); }

    .site-logo { width: 150px; }

    .menu-toggle { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 6px; width: 44px; height: 44px; padding: 9px; color: inherit; border: 0; background: transparent; cursor: pointer; }

    .menu-toggle__line { display: block; width: 26px; height: 1px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }

    .menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(2) { opacity: 0; }
    .menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    .site-navigation { position: absolute; top: 0; right: 0; left: 0; display: none; align-items: stretch; gap: 0; padding: 94px 27px 27px; color: var(--forest-deep); background: var(--paper); box-shadow: 0 13px 25px rgba(20, 43, 31, .13); }

    .site-navigation.is-open { display: flex; flex-direction: column; }

    .site-navigation > a:not(.header-reserve):not(.header-customer-status) { padding: 13px 0; border-bottom: 1px solid var(--line); }

    .site-navigation .header-customer-status { position: static; align-self: flex-start; min-height: 0; padding: 12px 0 6px; color: var(--forest-deep); background: transparent; border: 0; border-radius: 0; box-shadow: none; transform: none; }

    .header-reserve { margin-top: 20px; }

    .hero { min-height: 640px; }

    .hero__shade { background: linear-gradient(90deg, rgba(14, 33, 24, .6), rgba(14, 33, 24, .2)); }

    .hero__content { width: calc(100% - 48px); padding-top: 58px; }

    h1 { font-size: 40px; line-height: 1.48; }

    .hero__catch { font-size: 28px; line-height: 1.6; }

    .hero__lead { margin-bottom: 31px; font-size: 13px; }

    .hero__pager { right: 24px; bottom: 25px; gap: 6px; }

    .hero__pager button { width: 20px; }

    .hero__scroll { bottom: 22px; left: 24px; }

    .hero__scroll span { width: 30px; }

    .section { width: calc(100% - 40px); padding: 76px 0; }

    .facility-page { padding-top: 64px; }

    .price-guide__grid { grid-template-columns: 1fr; gap: 24px; }

    .price-panel { padding: 23px 18px; }

    .price-table { font-size: 13px; }

    .price-table th, .price-table td { padding: 10px 7px; }

    .price-table thead th:last-child, .price-table td { width: 76px; }

    .page-intro { padding: 74px 20px; text-align: left; }

    .page-intro h1 { font-size: 33px; }

    .section__heading h2, .contact h2 { font-size: 30px; }

    .contact-options { padding-top: 46px; }

    .contact-options__grid { grid-template-columns: 1fr; gap: 16px; }

    .intro, .access { display: block; }

    .intro__body, .access__details { padding-top: 27px; }

    .section--sand { width: 100%; padding: 76px 20px; }

    .section__heading--row { display: block; margin-bottom: 34px; }

    .section__intro { width: auto; margin-top: 22px; }

    .stay-grid { grid-template-columns: 1fr; gap: 12px; }

    .facility-list-grid { grid-template-columns: 1fr; gap: 24px; }

    .facility-category-nav { grid-template-columns: 1fr 1fr; margin-bottom: 42px; }

    .facility-category-nav a { min-height: 78px; padding: 12px 14px; }

    .facility-overview { margin-bottom: 56px; }

    .facility-overview-information, .facility-overview-secondary { display: block; }

    .facility-overview-copy { margin-bottom: 32px; padding-top: 0; }

    .facility-overview-copy h2 { margin-bottom: 18px; font-size: 25px; line-height: 1.7; }

    .facility-overview-copy h3 { font-size: 15px; line-height: 1.85; }

    .facility-map { margin-bottom: 26px; }

    .facility-table-wrap + .facility-table-wrap { margin-top: 22px; }

    .facility-data-table { min-width: 620px; }

    .facility-overview-secondary { margin-top: 24px; }

    .facility-information-panel { padding: 23px 21px; }

    .facility-information-panel + .facility-information-panel { margin-top: 16px; }

    .facility-category-section { scroll-margin-top: 74px; padding: 42px 0; }

    .facility-category-section--pending { padding: 25px 0; }

    .facility-category-heading { display: block; margin-bottom: 24px; }

    .facility-category-section--pending .facility-category-heading { margin-bottom: 0; }

    .facility-category-heading > p { margin-top: 18px; }

    .facility-category-heading h2 { font-size: 29px; }

    .facility-category-introduction { display: block; margin: 0 0 32px; padding-left: 0; }

    .facility-category-introduction h3 { margin-bottom: 19px; font-size: 20px; }

    .facility-category-introduction__break { display: none; }

    .facility-list-grid { gap: 16px; padding-left: 0; }

    .facility-list-card { display: block; min-height: 0; }

    .facility-list-card > img { height: auto; min-height: 0; aspect-ratio: 16 / 10; }

    .facility-list-card__body { display: block; padding: 20px 22px 22px; }

    .facility-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .facility-specs > div { padding: 8px 10px; }

    .facility-specs > div:nth-child(odd) { padding-left: 0; }

    .facility-specs > div:nth-child(even) { padding-right: 0; border-right: 0; }

    .stay-card { min-height: 270px; }

    .stay-card__content h3 { font-size: 25px; }

    .booking-banner { display: block; padding: 75px 24px; }

    .booking-banner .button { margin-top: 30px; }

    .access__route-map { width: min(100%, 410px); }

    .access__route-section h3 { font-size: 20px; }

    .access__google-map { aspect-ratio: 4 / 3; }

    .site-footer { padding: 42px 20px 20px; }

    .site-footer__partners { grid-template-columns: repeat(2, minmax(0, 234px)); gap: 10px; padding-bottom: 28px; margin-bottom: 30px; }

    .site-footer__partners a:last-child:nth-child(odd) { grid-column: 1 / -1; width: 100%; max-width: 234px; justify-self: center; }

    .site-footer__top { display: block; padding-bottom: 29px; }

    .site-footer__top > img { width: 155px; margin-bottom: 25px; }

    .footer-reserve { width: 100%; margin-top: 22px; }

    .site-footer__bottom { display: block; }

    .site-footer__bottom nav { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }

    .site-footer__bottom small { display: block; margin-top: 27px; }
}
