:root {
  --main-max-width: 1820px; --main-gutter: 20px; --page-inset: 36px; --color-cream: #fff9ee; --color-ink: #333333; --color-muted: #777168; --color-green: #5a6b54; --color-visit-value: #678737; --color-green-dark: #3f5144; --color-green-hover: #33443a; --color-section-tinted: #fbf5ea; --color-divider: #e8dfd0; --color-dot: #d8cfc2; --color-dot-active: #81725f; --color-dot-hover: #6d5f50; --color-footer: #294738; --color-yellow: #ffcc28; --color-yellow-hover: #ffdb5c; --font-heading: "Baloo 2", sans-serif; --font-body: "Nunito Sans", sans-serif; --surface-grain: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22200%22%20height%3D%22200%22%20viewBox%3D%220%200%20200%20200%22%3E%3Cfilter%20id%3D%22grain%22%20x%3D%220%22%20y%3D%220%22%20width%3D%22100%25%22%20height%3D%22100%25%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.45%22%20numOctaves%3D%223%22%20seed%3D%2223%22%20stitchTiles%3D%22stitch%22%2F%3E%3CfeColorMatrix%20type%3D%22saturate%22%20values%3D%220%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22200%22%20height%3D%22200%22%20filter%3D%22url%28%23grain%29%22%2F%3E%3C%2Fsvg%3E");
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth; scroll-padding-top: calc(var(--site-header-height, 96px) + 24px);
}
body {
  margin: 0; font-family: var(--font-body); font-size: 16px; line-height: 1.5; color: var(--color-ink); background: var(--color-cream); -webkit-font-smoothing: antialiased;
}
button, a {
  -webkit-tap-highlight-color: transparent;
}
button {
  font: inherit;
}
a {
  color: inherit; text-decoration: none;
}
img {
  display: block; max-width: 100%; height: auto;
}
button:focus-visible, a:focus-visible {
  outline: 3px solid #d78e00; outline-offset: 5px;
}
::selection {
  color: var(--color-ink); background: var(--color-yellow);
}
.svg-definitions {
  position: absolute; width: 0; height: 0; overflow: hidden;
}
.skip-link {
  position: fixed; z-index: 110; top: 14px; left: 14px; padding: 12px 18px; font-weight: 800; color: var(--color-ink); background: var(--color-yellow); border-radius: 12px; transform: translateY(-160%);
}
.skip-link:focus {
  transform: translateY(0);
}
.main {
  width: calc(100% - var(--main-gutter) - var(--main-gutter)); max-width: var(--main-max-width); margin: 0 auto;
}
.main.page-content, .main.page-section, .main.page-section-heading {
  width: calc(100% - var(--main-gutter) - var(--main-gutter) - var(--page-inset) - var(--page-inset)); max-width: calc(var(--main-max-width) - var(--page-inset) - var(--page-inset));
}
.page-heading {
  position: relative; padding: 56px 0 24px;
}
.page-heading-with-image {
  display: flex; align-items: center; min-height: 380px; margin-top: 32px; padding: 72px 0; overflow: hidden; background: var(--color-green-dark); isolation: isolate;
}
.page-heading-with-image::after {
  position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(18, 34, 23, 0.72), rgba(18, 34, 23, 0.3)); pointer-events: none; content: "";
}
.page-heading-image {
  position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center;
}
.page-heading-copy {
  position: relative; z-index: 2; min-width: 0; padding: 0 var(--page-inset);
}
.page-title {
  margin: 0; font-family: var(--font-heading); font-size: 80px; font-weight: 800; line-height: 1.06; letter-spacing: -0.025em; color: var(--color-green-dark);
}
.page-heading-with-image .page-title {
  color: var(--color-cream); text-shadow: 0 2px 20px rgba(10, 17, 10, 0.2);
}
.page-description {
  max-width: 900px; margin: 16px 0 0; font-size: 17px; line-height: 1.7; color: var(--color-muted);
}
.page-heading + .page-content {
  margin-top: 16px;
}
.hero {
  position: relative; min-height: 800px; background: #17251a; isolation: isolate;
}
.hero-background {
  position: absolute; z-index: -2; inset: 0; background: url("../img/home-darked-1.jpg") center center / cover no-repeat;
}
.hero-shade {
  position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(19, 29, 17, 0.26) 0%, rgba(19, 29, 17, 0.08) 43%, transparent 66%);
}
.site-header {
  position: relative; z-index: 5; display: flex; align-items: center; gap: 24px; min-height: 96px; padding: 22px 24px; background: rgb(255, 254, 251, 0.95); border-radius: 28px; box-shadow: 0 10px 35px rgba(21, 32, 17, 0.09); transform: translateY(32px); transition: box-shadow 180ms ease;
}
.site-logo {
  display: block; flex: 0 0 174px; width: 174px;
}
.site-logo img {
  width: 100%;
}
.primary-nav {
  display: flex; flex: 1; align-items: center; justify-content: center; gap: 18px; font-size: 15px; font-weight: 800; line-height: 1.3;
}
.primary-nav a {
  white-space: nowrap; transition: color 160ms ease;
}
.primary-nav a:hover {
  color: var(--color-green);
}
.header-actions {
  display: flex; flex-shrink: 0; align-items: center; gap: 10px;
}
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 14px 23px; font-size: 15px; font-weight: 800; line-height: 1.3; color: var(--color-ink); border: 0; border-radius: 999px; cursor: pointer; transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}
.button-yellow {
  background: var(--color-yellow);
}
.button-yellow:hover {
  background: var(--color-yellow-hover); box-shadow: 0 6px 18px rgba(29, 41, 19, 0.12); transform: translateY(-2px);
}
.icon {
  display: block; flex-shrink: 0; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.header-booking {
  gap: 8px; min-height: 48px; padding: 12px 18px; font-size: 13px;
}
.header-booking .icon {
  width: 20px; height: 20px;
}
.hero-content {
  position: relative; padding: 105px 150px 135px;
}
.hero-copy {
  width: 650px;
}
.hero-title {
  margin: 0 0 24px; font-family: var(--font-heading); font-size: 90px; font-weight: 800; line-height: 1.025; letter-spacing: -0.025em; color: var(--color-cream); text-shadow: 0 2px 20px rgba(10, 17, 10, 0.1);
}
.hero-title span {
  display: block;
}
.hero-title .hero-title-accent {
  color: var(--color-yellow);
}
.hero-description {
  margin: 0 0 32px; font-size: 20px; font-weight: 700; line-height: 1.45; color: var(--color-cream);
}
.hero-button {
  min-height: 58px; padding: 16px 26px; font-size: 16px;
}
.visit-info {
  position: relative; z-index: 2; margin-top: -70px; margin-bottom: 56px; padding: 0 150px; color: var(--color-ink); scroll-margin-top: 24px;
}
.visit-info-grid {
  position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); min-height: 140px; padding: 24px 10px; background: #fffefb; border: 1px solid rgba(255, 255, 255, 0.75); border-radius: 24px; box-shadow: 0 12px 32px rgba(36, 49, 24, 0.1); isolation: isolate;
}
.visit-info-grid::before {
  position: absolute; z-index: 0; inset: 0; background-image: var(--surface-grain); background-size: 200px 200px; border-radius: inherit; opacity: 0.15; mix-blend-mode: multiply; pointer-events: none; content: "";
}
.visit-info-item {
  position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: clamp(10px, 0.7vw, 14px); min-width: 0; padding: 10px clamp(12px, 1vw, 20px); color: var(--color-ink);
}
.visit-info-item + .visit-info-item::before {
  position: absolute; top: 4px; bottom: 4px; left: 0; width: 1px; background: #ece7da; pointer-events: none; content: "";
}
a.visit-info-item {
  border-radius: 14px; transition: background-color 160ms ease;
}
a.visit-info-item:hover {
  background: rgba(103, 135, 55, 0.06);
}
a.visit-info-item:focus-visible {
  outline-offset: -4px;
}
.visit-info-icon {
  display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: clamp(48px, 3.1vw, 60px); height: clamp(48px, 3.1vw, 60px); background: #f4efe5; border-radius: 50%;
}
.visit-info-icon img {
  display: block; width: 32px; height: 32px; object-fit: contain;
}
.visit-info-copy {
  min-width: 0; text-align: left;
}
.visit-info-title {
  margin: 0 0 4px; font-size: 18px; font-weight: 800; line-height: 1.25;
}
.visit-info-value {
  margin: 0; font-size: 18px; font-weight: 800; line-height: 1.35; color: var(--color-visit-value);
}
.opening-hours {
  margin: 5px 0 0; font-size: 13px; font-weight: 800; line-height: 1.5;
}
.opening-hours-row {
  display: grid; grid-template-columns: max-content max-content; align-items: baseline; column-gap: 8px;
}
.opening-hours dt {
  margin: 0; white-space: nowrap;
}
.visit-info .opening-hours dd {
  margin: 0; white-space: nowrap; color: var(--color-visit-value);
}
.hours-list {
  margin: 0; font-size: 14px; line-height: 1.6;
}
.hours-list.opening-hours {
  margin-top: 5px; font-size: 13px;
}
.hours-row {
  display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: baseline; gap: 3px 10px;
}
.hours-row + .hours-row {
  margin-top: 6px;
}
.hours-row dt, .hours-row dd {
  min-width: 0; margin: 0;
}
.hours-range {
  font-weight: 800; white-space: nowrap;
}
.hours-last-entry {
  display: block; margin-top: 2px; font-size: 12px; font-weight: 600; color: inherit;
}
.hours-last-entry time {
  font-weight: 900; white-space: nowrap;
}
.visitor-info {
  margin-top: 82px; margin-bottom: 82px;
}
.visitor-heading {
  margin-bottom: 28px;
}
.visitor-eyebrow {
  margin: 0 0 8px; font-size: 13px; font-weight: 900; line-height: 1.5; letter-spacing: 0.07em; text-transform: uppercase; color: var(--color-green);
}
.visitor-heading h2 {
  margin: 0; font-family: var(--font-heading); font-size: 42px; font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-green-dark);
}
.visitor-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 18px;
}
.visitor-card {
  display: flex; flex-direction: column; min-width: 0; padding: 24px; background: #fffdf8; border: 1px solid #e0d8c5; border-radius: 22px; box-shadow: 0 4px 18px rgba(60, 48, 33, 0.025);
}
.visitor-card-heading {
  display: flex; align-items: center; gap: 12px; min-height: 48px; margin-bottom: 20px;
}
.visitor-card-heading h3 {
  min-width: 0; margin: 0; font-size: 17px; font-weight: 900; line-height: 1.4; color: var(--color-green-dark);
}
.visitor-icon {
  display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--color-green-dark); background: #edf0e3; border-radius: 14px;
}
.visitor-icon .icon {
  width: 29px; height: 29px;
}
.visitor-icon-warning {
  color: #b74735; background: #f9eae1;
}
.visitor-hours, .visitor-card-copy {
  margin: 0 0 20px;
}
.visitor-venue + .visitor-venue {
  margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--color-divider);
}
.visitor-venue h4 {
  margin: 0 0 4px; font-size: 14px; font-weight: 900; line-height: 1.5; color: var(--color-green-dark);
}
.visitor-card-copy, .visitor-parking {
  font-size: 14px; line-height: 1.75; color: #625e56;
}
.visitor-details, .visitor-link {
  margin-top: auto;
}
.visitor-details summary, .visitor-link {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; padding: 8px 0; font-size: 13px; font-weight: 900; line-height: 1.5; color: var(--color-green-dark); list-style: none; cursor: pointer;
}
.visitor-details summary::marker {
  content: "";
}
.visitor-details summary::-webkit-details-marker {
  display: none;
}
.visitor-details summary .icon, .visitor-link .icon {
  flex-shrink: 0; width: 18px; height: 18px; transition: transform 180ms ease;
}
.visitor-details[open] summary .icon {
  transform: rotate(90deg);
}
.visitor-details summary:focus-visible {
  outline: 3px solid #d78e00; outline-offset: 4px; border-radius: 4px;
}
.visitor-details summary:hover, .visitor-link:hover {
  text-decoration: underline; text-underline-offset: 4px;
}
.visitor-detail-copy {
  margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--color-divider);
}
.visitor-detail-copy p {
  margin: 0; font-size: 13px; line-height: 1.75; color: #625e56;
}
.visitor-detail-copy p + p {
  margin-top: 12px;
}
.visitor-parking {
  display: grid; gap: 12px; margin: 0; padding: 0; list-style: none;
}
.visitor-parking li {
  display: flex; align-items: flex-start; gap: 10px;
}
.visitor-parking-label {
  display: inline-flex; flex: 0 0 32px; align-items: center; justify-content: center; min-height: 28px; font-size: 12px; font-weight: 900; color: var(--color-green-dark); background: #edf0e3; border-radius: 7px;
}
.visitor-parking strong {
  display: block; font-size: 12px; font-weight: 800; color: var(--color-green-dark);
}
.visitor-parking-note {
  margin: 14px 0 20px; font-size: 13px; line-height: 1.7; color: var(--color-muted);
}
.experiences {
  position: relative; width: 100%; margin: 0; padding: 0 0 76px;
}
.experiences-slider {
  --carousel-items: 4; --carousel-gap: 20px; --carousel-peek: 0.5; --experience-emphasis: 1.15; --experience-card-height: 450px; --experience-photo-height: 290px;
}
.experiences-slider:not(.owl-loaded) {
  display: grid; grid-template-columns: repeat(var(--carousel-items), minmax(0, 1fr)); gap: var(--carousel-gap);
}
.experiences-slider .owl-stage {
  display: flex; align-items: center; padding-top: 18px; padding-bottom: 30px;
}
.experiences-slider .owl-item {
  display: flex; flex-shrink: 0; float: none;
}
.experiences-slider.owl-drag .owl-item {
  cursor: grab; touch-action: pan-y;
}
.experiences-slider.owl-grab .owl-item {
  cursor: grabbing;
}
.experiences-slider .owl-item img {
  -webkit-user-drag: none; user-select: none;
}
.experiences-slider .owl-nav button.owl-prev, .experiences-slider .owl-nav button.owl-next {
  position: absolute; z-index: 5; top: calc(50% - 34px); transform: translateY(-50%);
}
.experiences-slider .owl-nav button.owl-prev {
  left: 16px;
}
.experiences-slider .owl-nav button.owl-next {
  right: 16px;
}
.experiences-slider .owl-dots {
  display: flex; align-items: center; justify-content: center; gap: 6px; padding-top: 4px;
}
.experiences-slider button.owl-dot {
  display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; background: transparent; border: 0; border-radius: 50%; cursor: pointer;
}
.experiences-slider .owl-dot span {
  display: block; width: 10px; height: 10px; background: var(--color-dot); border-radius: 50%; transition: background-color 160ms ease, transform 160ms ease;
}
.experiences-slider .owl-dot.active span {
  background: var(--color-dot-active); transform: scale(1.25);
}
.experiences-slider .owl-dot:hover span {
  background: var(--color-dot-hover);
}
.experiences-slider .owl-nav.disabled, .experiences-slider .owl-dots.disabled {
  display: none;
}
.slider-status {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.experience-card {
  --experience-color: var(--color-green); --experience-card-scale: 1; position: relative; display: flex; flex-direction: column; width: 100%; min-width: 0; height: calc(var(--experience-card-height) * var(--experience-card-scale)); color: #fff9ee; background: var(--experience-color); border: 2px solid #fffefb; border-radius: 22px; box-shadow: 0 8px 24px rgba(36, 49, 24, 0.09); overflow: hidden; transition: transform 180ms ease, box-shadow 180ms ease;
}
.experience-card-featured {
  --experience-card-scale: var(--experience-emphasis);
}
.experience-card-orange {
  --experience-color: #bd783d;
}
.experience-card-blue {
  --experience-color: #608ca3;
}
.experience-card-ochre {
  --experience-color: #94713c;
}
.experience-card:hover {
  box-shadow: 0 14px 30px rgba(36, 49, 24, 0.16); transform: translateY(-4px);
}
.experience-card:focus-visible {
  outline: 3px solid var(--color-ink); outline-offset: 4px;
}
.experience-card-photo {
  position: relative; flex-shrink: 0; height: calc(var(--experience-photo-height) * var(--experience-card-scale)); background: #34452d; overflow: hidden;
}
.experience-card-photo::after {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13, 27, 17, 0.52), rgba(13, 27, 17, 0.05) 58%, transparent); pointer-events: none; content: "";
}
.experience-card-photo img {
  display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--photo-position, center); transition: transform 250ms ease;
}
.experience-card:hover .experience-card-photo img {
  transform: scale(1.035);
}
.experience-card-title {
  position: absolute; z-index: 1; top: 20px; left: 18px; right: 18px; margin: 0; font-family: var(--font-heading); font-size: 30px; font-weight: 800; line-height: 1.1; color: #fff9ee; text-shadow: 0 2px 12px rgba(13, 27, 17, 0.25);
}
.experience-card-content {
  position: relative; display: flex; flex: 1; flex-direction: column; margin-top: -44px; padding: 48px 18px 20px; background: radial-gradient(ellipse at 20% 10%, rgba(255, 255, 255, 0.08), transparent 75%), var(--experience-color); isolation: isolate; -webkit-mask-image: url("../img/sections/card-edge-mask.svg"), linear-gradient(#000, #000); mask-image: url("../img/sections/card-edge-mask.svg"), linear-gradient(#000, #000); -webkit-mask-size: var(--edge-width, 100%) 46px, 100% calc(100% - 45px); mask-size: var(--edge-width, 100%) 46px, 100% calc(100% - 45px); -webkit-mask-position: var(--edge-position, left top), left bottom; mask-position: var(--edge-position, left top), left bottom; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}
.experience-card-content::after {
  position: absolute; z-index: -1; inset: 0; background-image: var(--surface-grain); background-size: 240px 240px; opacity: 0.42; mix-blend-mode: soft-light; pointer-events: none; content: "";
}
.experience-obrovisko .experience-card-content, .experience-velka-luka .experience-card-content, .experience-skolske-vylety .experience-card-content {
  --edge-width: 117%; --edge-position: right top;
}
.experience-ubytovanie .experience-card-content, .experience-sokoliari .experience-card-content {
  --edge-width: 132%; --edge-position: center top;
}
.experience-card-description {
  flex: 1; margin: 0 0 18px; font-size: 14px; font-weight: 700; line-height: 1.5;
}
.experience-card-link {
  display: flex; align-items: center; justify-content: space-between; align-self: flex-end; gap: 10px; min-height: 42px; padding: 9px 12px; font-size: 14px; font-weight: 800; line-height: 1.3; border: 1px solid rgba(255, 249, 238, 0.75); border-radius: 13px; transition: background-color 180ms ease;
}
.experience-card:hover .experience-card-link {
  background: rgba(255, 249, 238, 0.12);
}
.experience-card-link svg {
  flex-shrink: 0; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.experience-obrovisko {
  --photo-position: center 25%;
}
.experience-sokoliari {
  --photo-position: center 25%;
}
.button-green {
  color: var(--color-cream); background: var(--color-green-dark);
}
.button-green:hover {
  background: var(--color-green-hover); box-shadow: 0 6px 18px rgba(29, 41, 19, 0.14); transform: translateY(-2px);
}
.section-actions {
  display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 32px;
}
.section-block {
  position: relative; isolation: isolate;
}
.section-block-tinted {
  background: var(--color-section-tinted);
}
.section-block-tinted::before {
  position: absolute; z-index: 0; inset: 0; background-image: var(--surface-grain); background-size: 200px 200px; opacity: 0.12; mix-blend-mode: multiply; pointer-events: none; content: "";
}
.section-block > .main {
  position: relative; z-index: 1;
}
.arrow-circle, .owl-carousel .owl-nav button.arrow-circle {
  display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; color: var(--color-ink); background: var(--color-yellow); border: 0; border-radius: 50%; box-shadow: 0 4px 12px rgba(29, 41, 19, 0.12); cursor: pointer; transition: background-color 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
}
.arrow-circle svg {
  width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform 160ms ease;
}
.arrow-circle-prev svg {
  transform: rotate(180deg);
}
.arrow-circle:not(:disabled):hover, .owl-carousel .owl-nav button.arrow-circle:not(:disabled):hover, .experience-card:hover .arrow-circle, .ubytovanie-card:hover .arrow-circle {
  background: var(--color-yellow-hover); box-shadow: 0 6px 16px rgba(29, 41, 19, 0.18);
}
.arrow-circle:not(:disabled):hover svg, .experience-card:hover .arrow-circle svg, .ubytovanie-card:hover .arrow-circle svg {
  transform: translateX(2px);
}
.arrow-circle-prev:not(:disabled):hover svg {
  transform: translateX(-2px) rotate(180deg);
}
.arrow-circle:disabled {
  box-shadow: none; opacity: 0.35; cursor: default;
}
.site-header-subpage {
  margin-top: 32px; transform: none;
}
.site-header-placeholder {
  width: 100%; pointer-events: none; overflow-anchor: none;
}
.site-header.is-fixed {
  position: fixed; z-index: 100; top: 0; right: 0; left: 0; width: 100%; min-height: 88px; max-width: none; margin: 0; padding-top: 16px; padding-bottom: 16px; padding-right: max(24px, calc((100% - var(--main-max-width)) / 2 + 24px)); padding-left: max(24px, calc((100% - var(--main-max-width)) / 2 + 24px)); overflow: visible; background: #fffefb; border-radius: 0; box-shadow: 0 5px 24px rgba(21, 32, 17, 0.1); transform: none; transition: box-shadow 180ms ease;
}
.site-header .primary-nav a[aria-current="page"] {
  color: var(--color-green-dark);
}
.menu-toggle {
  display: none;
}
.site-header [hidden] {
  display: none !important;
}
.site-header.is-fixed .site-logo {
  flex-basis: 174px; width: 174px;
}
.site-header.is-fixed .header-booking {
  min-height: 48px; padding: 13px 20px; font-size: 13px;
}
.site-header.is-menu-floating {
  position: fixed; z-index: 100; top: var(--site-header-floating-top); left: var(--site-header-floating-left); width: var(--site-header-floating-width); margin: 0; transform: none;
}
.primary-nav > a > .icon {
  display: none;
}
.primary-nav .primary-nav-booking {
  display: none;
}
.menu-toggle-icon {
  position: relative; display: block; flex: 0 0 20px; width: 20px; height: 20px;
}
.menu-toggle-line {
  position: absolute; top: 9px; left: 0; display: block; width: 20px; height: 2px; background: currentColor; border-radius: 2px; transition: transform 200ms ease, opacity 160ms ease;
}
.menu-toggle-line:first-child {
  transform: translateY(-6px);
}
.menu-toggle-line:last-child {
  transform: translateY(6px);
}
.site-header[data-menu-open="true"] .menu-toggle-line:first-child {
  transform: rotate(45deg);
}
.site-header[data-menu-open="true"] .menu-toggle-line:nth-child(2) {
  opacity: 0; transform: scaleX(0);
}
.site-header[data-menu-open="true"] .menu-toggle-line:last-child {
  transform: rotate(-45deg);
}
.site-breadcrumbs-wrap {
  margin-top: 28px; padding: 0 var(--page-inset);
}
.site-breadcrumbs ol {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; margin: 0; padding: 0; list-style: none;
}
.site-breadcrumbs li {
  display: inline-flex; align-items: center; min-width: 0; font-size: 14px; font-weight: 700; line-height: 1.6; color: var(--color-muted);
}
.site-breadcrumbs li + li::before {
  display: block; flex-shrink: 0; width: 6px; height: 6px; margin: 0 13px 0 11px; border-top: 1px solid #aaa393; border-right: 1px solid #aaa393; transform: rotate(45deg); content: "";
}
.site-breadcrumbs a {
  border-radius: 3px; transition: color 160ms ease;
}
.site-breadcrumbs a:hover {
  color: var(--color-green-dark);
}
.site-breadcrumbs [aria-current="page"] {
  font-weight: 800; color: var(--color-green-dark);
}
.faq-section {
  display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.5fr); align-items: start; gap: clamp(32px, 6vw, 100px); margin-top: 82px; margin-bottom: 82px;
}
.faq-intro {
  max-width: 410px; padding-top: 12px;
}
.faq-eyebrow {
  display: inline-flex; align-items: center; min-height: 32px; margin: 0 0 18px; padding: 6px 13px; font-size: 12px; font-weight: 900; line-height: 1.4; letter-spacing: 0.08em; color: var(--color-green-dark); background: #e8eddc; border-radius: 9px;
}
.faq-title {
  margin: 0 0 20px; font-family: var(--font-heading); font-size: clamp(38px, 3.5vw, 52px); font-weight: 800; line-height: 1.12; letter-spacing: -0.02em; color: var(--color-green-dark);
}
.faq-description {
  margin: 0; font-size: 17px; line-height: 1.8; color: #625e56;
}
.faq-contact {
  margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--color-divider);
}
.faq-contact p {
  margin: 0 0 8px; font-size: 14px; line-height: 1.6; color: var(--color-muted);
}
.faq-contact a, .faq-link {
  display: inline-flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 900; line-height: 1.5; color: var(--color-green-dark);
}
.faq-contact a .icon, .faq-link .icon {
  flex-shrink: 0; width: 18px; height: 18px;
}
.faq-contact a:hover, .faq-link:hover {
  text-decoration: underline; text-underline-offset: 4px;
}
.faq-list {
  display: grid; min-width: 0; gap: 12px;
}
.faq-item {
  min-width: 0; background: #fffefb; border: 1px solid var(--color-divider); border-radius: 20px; transition: border-color 180ms ease, background-color 180ms ease;
}
.faq-item:hover {
  border-color: #c5cdb9;
}
.faq-item[open] {
  background: #edf0e3; border-color: #c5cdb9;
}
.faq-question {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 88px; padding: 22px 24px; font-size: 18px; font-weight: 900; line-height: 1.5; color: var(--color-green-dark); list-style: none; border-radius: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.faq-question::marker {
  content: "";
}
.faq-question::-webkit-details-marker {
  display: none;
}
.faq-question > span:first-child {
  min-width: 0; overflow-wrap: anywhere;
}
.faq-question:focus-visible {
  outline: 3px solid #d78e00; outline-offset: 4px;
}
.faq-toggle {
  position: relative; flex: 0 0 38px; width: 38px; height: 38px; background: #f5f2e9; border-radius: 50%; transition: background-color 180ms ease;
}
.faq-toggle::before, .faq-toggle::after {
  position: absolute; top: calc(50% - 1px); left: calc(50% - 7px); width: 14px; height: 2px; background: currentColor; border-radius: 2px; content: "";
}
.faq-toggle::after {
  transform: rotate(90deg); transition: transform 180ms ease;
}
.faq-item[open] .faq-toggle {
  background: #ffcc28;
}
.faq-item[open] .faq-toggle::after {
  transform: rotate(0);
}
.faq-answer {
  padding: 0 86px 24px 24px;
}
.faq-answer p {
  margin: 0; font-size: 16px; line-height: 1.8; color: #625e56;
}
.faq-answer .faq-link {
  margin-top: 16px;
}
.faq-item[open] .faq-answer {
  animation: faq-answer-in 180ms ease both;
}
@keyframes faq-answer-in {
  from {
    opacity: 0; transform: translateY(-5px);
  }
  to {
    opacity: 1; transform: translateY(0);
  }
}
.page-location {
  display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); align-items: center; gap: 65px; margin-top: 82px; margin-bottom: 82px; padding: 42px; border-radius: 30px;
}
.page-location-tinted {
  background: #edf0e3; border: 1px solid #dce3ce;
}
.page-location-plain {
  padding: 30px 0; background: transparent;
}
.page-location-copy {
  padding: 18px 26px;
}
.page-location h2 {
  margin: 0 0 34px; font-family: var(--font-heading); font-size: 46px; font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; color: var(--color-ink);
}
.page-location-map {
  height: 430px; overflow: hidden; background: #e6e9de; border-radius: 22px;
}
.page-location-map iframe {
  display: block; width: 100%; height: 100%; border: 0;
}
.page-location-copy .page-eyebrow {
  margin: 0 0 10px; font-size: 14px; font-weight: 900; line-height: 1.5; letter-spacing: 0.07em; text-transform: uppercase; color: var(--color-green);
}
.page-location-copy .button {
  max-width: 100%;
}
.page-location-with-photo .page-location-map {
  height: auto;
}
.page-location-map .page-gallery-grid {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px;
}
.page-location-with-photo .page-location-map .page-photo {
  position: relative; display: block; aspect-ratio: auto; overflow: hidden; background: #fff; border-radius: 20px; cursor: zoom-in;
}
.page-location-with-photo .page-location-map .page-photo img {
  display: block; width: 100%; height: auto; object-fit: contain;
}
.page-location-with-photo .page-photo:hover img {
  transform: none;
}
