/* Camping Botușel — October 2026 brand system. */
@font-face {
  font-family: "Roboto Slab";
  src: url("../fonts/RobotoSlab-Bold.woff2") format("woff2");
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: Lato;
  src: url("../fonts/Lato-Regular.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Lato;
  src: url("../fonts/Lato-Bold.woff2") format("woff2");
  font-weight: 700;
  font-display: swap;
}
:root {
  --forest: #154631;
  --copper: #ad744d;
  --parchment: #e8decb;
  --cream: #f7f3e8;
  --charcoal: #1e1e1e;
  --sage: #9eae98;
  --content: 1240px;
  --gutter: clamp(22px, 4.5vw, 72px);
  --font: Lato, Arial, sans-serif;
  --display: "Roboto Slab", Georgia, serif;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}
body {
  margin: 0;
  color: var(--charcoal);
  background: var(--cream);
  font: 400 18px/1.6 var(--font);
  -webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1,
h2,
h3 {
  font-family: var(--display);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.035em;
}
a {
  color: inherit;
}
button,
input,
select,
textarea {
  font: inherit;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
.container {
  width: min(var(--content), calc(100% - var(--gutter) * 2));
  margin-inline: auto;
}
[hidden] {
  display: none !important;
}
:focus-visible {
  outline: 3px solid var(--copper);
  outline-offset: 5px;
}
.skip-link {
  position: absolute;
  z-index: 1000;
  top: -100px;
  left: 16px;
  padding: 14px 20px;
  background: var(--forest);
  color: var(--cream);
}
.skip-link:focus {
  top: 12px;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: var(--parchment);
}
.header-inner {
  min-height: 104px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.brand,
.footer-brand {
  display: inline-flex;
  text-decoration: none;
  flex-shrink: 0;
}
.brand-logo {
  width: 92px;
  height: auto;
  mix-blend-mode: darken;
}
.desktop-nav {
  display: flex;
  align-items: center;
  gap: 26px;
  margin-left: auto;
}
.nav-link {
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
}
.nav-link:hover,
.nav-link[aria-current="page"] {
  text-decoration: underline;
  text-decoration-color: var(--copper);
  text-decoration-thickness: 3px;
  text-underline-offset: 8px;
}
.header-right {
  display: flex;
  align-items: center;
  gap: 24px;
}
/* The welcome changes with the visitor's language. */
.lang-switch { font-size: 15px; color: var(--forest); }
.language-picker { position: relative; }
.language-picker summary { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 10px; border: 0; background: transparent; color: var(--forest); cursor: pointer; list-style: none; font-size: 14px; font-weight: 700; white-space: nowrap; transition: background .18s ease; }
.language-picker summary:hover, .language-picker[open] summary { background: var(--parchment); }
.language-picker summary:focus-visible { outline: 2px solid var(--forest); outline-offset: 4px; }
.language-picker summary::-webkit-details-marker { display: none; }
.language-symbol { position: relative; font-size: 20px; line-height: 1; padding-right: 0; margin-right: -4px; }
.language-symbol > span { font: 700 12px var(--font); margin-left: -4px; }
.language-chevron { transition: transform .18s ease; }
.language-picker[open] .language-chevron { transform: rotate(180deg); }
.language-picker > .language-options { position: absolute; z-index: 30; top: calc(100% + 12px); right: 0; width: 240px; background: var(--cream); border: 1px solid var(--forest); border-top: 3px solid var(--copper); padding: 8px 16px; }
.language-options a { display: grid; grid-template-columns: 1fr auto; column-gap: 20px; padding: 13px 8px; min-height: 64px; text-decoration: none; color: var(--forest); }
.language-options a + a { border-top: 1px solid var(--parchment); }
.language-options a:hover, .language-options a:focus-visible { background: var(--parchment); }
.language-greeting { font: 700 25px/1.2 var(--display); }
.language-name { grid-column: 1; font-size: 13px; font-weight: 400; line-height: 1.6; }
.language-check { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--copper); }
.language-options a[aria-current="true"] .language-greeting { text-decoration: underline; text-decoration-color: var(--copper); text-underline-offset: 5px; }
.mobile-lang { padding-block: 22px 8px; border-top: 1px solid var(--sage); margin-top: 24px; }
.mobile-lang > p { margin-bottom: 10px; font-size: 13px; color: var(--forest); }
.mobile-lang .language-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.mobile-lang .language-options a { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 10px 0; border: 0; }
.mobile-lang .language-greeting { font-size: 24px; }
.mobile-lang .language-check { display: none; }
@media (prefers-reduced-motion: reduce) { .language-chevron { transition: none; } }
.btn {
  appearance: none;
  border: 2px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 13px 23px;
  text-decoration: none;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
  border-radius: 0;
  text-align: center;
  transition:
    background 0.2s,
    color 0.2s,
    transform 0.2s;
}
.btn:hover {
  transform: translateY(-2px);
}
.btn-primary {
  background: var(--forest);
  color: var(--cream);
}
.btn-primary:hover {
  background: var(--charcoal);
}
.btn-light {
  background: var(--cream);
  color: var(--forest);
}
.btn-light:hover {
  background: var(--parchment);
}
.header-book {
  white-space: nowrap;
  font-size: 15px;
  padding-inline: 18px;
}
.menu-toggle {
  display: none;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  background: none;
  border: 0;
  color: var(--forest);
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  min-height: 48px;
}
.hamburger {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.hamburger span {
  display: block;
  width: 23px;
  height: 2px;
  background: currentColor;
  transition:
    transform 0.2s,
    opacity 0.2s;
}
.menu-toggle[aria-expanded="true"] .hamburger span:first-child {
  transform: translateY(7px) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] .hamburger span:nth-child(2) {
  opacity: 0;
}
.menu-toggle[aria-expanded="true"] .hamburger span:last-child {
  transform: translateY(-7px) rotate(-45deg);
}
.mobile-menu {
  background: var(--parchment);
  padding-block: 12px 30px;
  max-height: calc(100svh - 90px);
  overflow-y: auto;
}
.mobile-menu nav {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.mobile-link {
  padding: 12px 0;
  min-height: 48px;
  font-size: 21px;
  text-decoration: none;
  font-weight: 700;
}
.mobile-link[aria-current="page"] {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.mobile-book {
  margin-top: 16px;
}
.mobile-lang {
  padding-top: 18px;
}
.hero {
  position: relative;
  isolation: isolate;
  color: var(--cream);
  background: var(--forest);
  overflow: hidden;
}
.hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  z-index: -2;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--forest);
  opacity: 0.63;
  z-index: -1;
}
.hero-inner {
  min-height: calc(100svh - 104px);
  max-height: 850px;
  display: flex;
  align-items: center;
  padding-block: 68px;
}
.hero-copy {
  max-width: 720px;
}
.hero-location {
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 25px;
}
.hero h1 {
  font-size: clamp(42px, 4.1vw, 60px);
  line-height: 1.13;
  margin-bottom: 28px;
  letter-spacing: -0.045em;
}
.hero-copy > p:not(.hero-location) {
  font-size: 19px;
  max-width: 450px;
  margin-bottom: 32px;
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.text-link {
  font-weight: 700;
  font-size: 16px;
  text-decoration: underline;
  text-underline-offset: 6px;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
}
.hero-copy {
  animation: arrive 0.8s ease both;
}
@keyframes arrive {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.home-intro {
  padding: 100px 0;
}
.intro-layout {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 90px;
  align-items: start;
}
.intro-layout h2 {
  font-size: clamp(30px, 3vw, 40px);
  color: var(--forest);
  margin-bottom: 0;
}
.intro-layout p {
  max-width: 490px;
  margin-bottom: 22px;
}
.inline-link {
  color: var(--forest);
  font-weight: 700;
  font-size: 17px;
  text-underline-offset: 6px;
  display: inline-block;
  min-height: 44px;
}
.home-stay {
  padding: 0 0 104px;
}
.stay-layout {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 80px;
  align-items: center;
}
.stay-image {
  overflow: hidden;
  align-self: stretch;
  min-height: 440px;
}
.stay-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.stay-copy h2 {
  font-size: clamp(30px, 3vw, 40px);
  color: var(--forest);
  margin-bottom: 22px;
}
.stay-copy p {
  max-width: 390px;
  margin-bottom: 26px;
}
.stay-options {
  margin-bottom: 32px;
  border-top: 2px solid var(--forest);
}
.stay-options a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 70px;
  padding-block: 18px;
  border-bottom: 1px solid var(--sage);
  color: var(--forest);
  text-decoration: none;
  font-weight: 700;
  font-size: 19px;
}
.stay-options a span:last-child {
  transition: transform 0.2s;
}
.stay-options a:hover span:last-child {
  transform: translateX(5px);
}
.home-practical {
  background: var(--parchment);
  padding: 80px 0;
}
.home-practical h2 {
  font-size: clamp(30px, 3vw, 40px);
  color: var(--forest);
  margin-bottom: 40px;
}
.practical-links {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}
.practical-link {
  font-weight: 700;
  color: var(--forest);
  text-decoration: none;
  min-height: 58px;
  display: flex;
  align-items: center;
  border-top: 2px solid var(--forest);
  padding: 18px 0;
  font-size: 18px;
}
.practical-link:hover {
  text-decoration: underline;
  text-underline-offset: 6px;
}
.home-contact {
  background: var(--forest);
  color: var(--cream);
  padding: 90px 0;
}
.home-contact-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 60px;
}
.home-contact h2 {
  font-size: clamp(30px, 3vw, 40px);
  max-width: 710px;
  margin-bottom: 22px;
}
.home-contact p {
  max-width: 560px;
  margin-bottom: 0;
}
.home-contact .btn {
  flex-shrink: 0;
}
.js-motion .reveal {
  opacity: 1;
  transform: translateY(24px);
  transition:
    opacity 0.7s,
    transform 0.7s;
}
.js-motion .reveal.is-visible {
  opacity: 1;
  transform: none;
}
.inner-main {
  min-height: 600px;
  padding: 80px 0 104px;
}
.page-heading h1 {
  font-size: clamp(38px, 4vw, 58px);
  color: var(--forest);
  max-width: 900px;
  margin-bottom: 42px;
}
.page-content {
  max-width: 1040px;
}
.content-lead {
  font-size: 21px;
  line-height: 1.6;
  max-width: 760px;
  margin-bottom: 36px;
}
.info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 38px;
  margin-top: 44px;
}
.info-card {
  padding: 28px 0;
  border-top: 3px solid var(--forest);
  min-height: 190px;
}
.info-card h2,
.readable-sections h2 {
  font-size: 28px;
  color: var(--forest);
  margin-bottom: 18px;
}
.info-card p,
.readable-sections p {
  font-size: 18px;
  line-height: 1.7;
  margin-bottom: 0;
}
.page-cta {
  margin-top: 36px;
}
.readable-sections {
  max-width: 760px;
  display: grid;
  gap: 40px;
}
.faq-list {
  display: grid;
  max-width: 900px;
}
.faq-list details {
  padding: 24px 0;
  border-top: 1px solid var(--sage);
}
.faq-list summary {
  font-weight: 700;
  cursor: pointer;
  font-size: 20px;
  color: var(--forest);
  min-height: 40px;
}
.faq-list details p {
  margin: 15px 0 0;
  max-width: 760px;
}
.contact-highlight h2 {
  font-size: 28px;
  color: var(--forest);
  margin-bottom: 16px;
}
.contact-highlight > a {
  display: block;
  font-size: clamp(20px, 3vw, 30px);
  font-weight: 700;
  overflow-wrap: anywhere;
  color: var(--forest);
}
.contact-highlight p {
  margin: 22px 0 36px;
}
.contact-highlight {
  margin-bottom: 35px;
}
.inquiry-form {
  max-width: 800px;
  display: grid;
  gap: 24px;
  margin-bottom: 24px;
  padding: 32px;
  border: 2px solid var(--forest);
  background: var(--parchment);
}
.form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.inquiry-form label {
  display: flex;
  flex-direction: column;
  font-size: 16px;
  gap: 9px;
  font-weight: 700;
}
.inquiry-form input,
.inquiry-form select,
.inquiry-form textarea {
  width: 100%;
  min-height: 52px;
  background: #fff;
  border: 1px solid var(--forest);
  padding: 13px;
  border-radius: 0;
  color: var(--charcoal);
  font-size: 17px;
}
.inquiry-form textarea {
  min-height: 110px;
  resize: vertical;
}
.inquiry-form .btn {
  justify-self: start;
}
.form-feedback {
  margin: 0;
  color: var(--forest);
  font-weight: 700;
}
.form-feedback:empty {
  display: none;
}
.form-note {
  font-size: 17px;
  max-width: 800px;
}
.direct-email a {
  font-weight: 700;
  overflow-wrap: anywhere;
  color: var(--forest);
}
.site-footer {
  background: var(--forest);
  color: var(--cream);
}
.footer-main {
  display: grid;
  grid-template-columns: 1.25fr 0.8fr 1.2fr;
  gap: 70px;
  padding: 70px 0;
}
.footer-brand {
  margin-bottom: 26px;
}
.footer-brand img {
  width: 115px;
  height: auto;
}
.footer-tagline {
  font: 700 24px/1.3 var(--display);
  max-width: 290px;
  margin: 0;
}
.footer-column {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 12px;
}
.footer-column h2 {
  font-family: var(--font);
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 12px;
}
.footer-link,
.footer-column > a {
  color: var(--cream);
  font-size: 17px;
  text-decoration: none;
  line-height: 1.5;
}
.footer-link:hover,
.footer-column > a:hover,
.footer-bottom a:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.footer-contacts p {
  max-width: 300px;
  margin: 0 0 10px;
  font-size: 17px;
}
.footer-contacts a {
  overflow-wrap: anywhere;
}
.footer-contacts .footer-contact-action {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 5px;
  margin-top: 6px;
  min-height: 44px;
}
.footer-bottom {
  border-top: 1px solid var(--sage);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  padding: 28px 0 36px;
  font-size: 15px;
}
.footer-bottom nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px 24px;
}
.footer-bottom a {
  text-decoration: none;
  font-size: 15px;
}
@media (min-width: 1600px) {
  .hero-inner {
    min-height: 760px;
  }
  .hero-image {
    object-position: center 60%;
  }
}
@media (max-width: 1190px) {
  .desktop-nav,
  .header-right > .lang-switch,
  .header-book {
    display: none;
  }
  .menu-toggle {
    display: inline-flex;
  }
  .header-inner {
    min-height: 90px;
  }
  .brand-logo {
    width: 78px;
  }
  .hero-inner {
    min-height: calc(100svh - 90px);
  }
  .intro-layout {
    gap: 50px;
  }
  .stay-layout {
    gap: 50px;
  }
  .footer-main {
    gap: 35px;
  }
}
@media (max-width: 800px) {
  .intro-layout,
  .stay-layout {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .home-intro {
    padding: 64px 0;
  }
  .intro-layout h2 {
    max-width: 500px;
  }
  .intro-layout p {
    max-width: 620px;
  }
  .home-stay {
    padding-bottom: 65px;
  }
  .stay-image {
    min-height: 0;
    height: 360px;
  }
  .stay-copy p {
    max-width: 550px;
  }
  .practical-links {
    grid-template-columns: repeat(2, 1fr);
  }
  .home-practical {
    padding: 60px 0;
  }
  .home-contact-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
  }
  .home-contact {
    padding: 65px 0;
  }
  .footer-main {
    grid-template-columns: 1fr 1fr;
    padding-block: 60px;
  }
  .footer-identity {
    grid-column: 1/-1;
  }
  .footer-brand img {
    width: 98px;
  }
  .info-grid {
    gap: 25px;
  }
  .hero-inner {
    padding-block: 65px;
  }
  .hero h1 {
    font-size: 48px;
  }
}
@media (max-width: 540px) {
  .header-inner {
    min-height: 84px;
  }
  .brand-logo {
    width: 72px;
  }
  .hero-inner {
    min-height: calc(100svh - 84px);
    max-height: none;
    padding-block: 56px;
  }
  .hero h1 {
    font-size: clamp(34px, 9.6vw, 46px);
  }
  .hero-location {
    font-size: 16px;
    max-width: 270px;
    margin-bottom: 26px;
  }
  .hero-copy > p:not(.hero-location) {
    font-size: 18px;
  }
  .hero-image {
    object-position: 42% center;
  }
  .hero::before {
    opacity: 0.7;
  }
  .hero-actions {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .hero-actions .btn {
    width: 100%;
  }
  .hero-copy {
    width: 100%;
  }
  .stay-image {
    height: 280px;
  }
  .home-intro h2,
  .stay-copy h2,
  .home-practical h2,
  .home-contact h2 {
    font-size: 30px;
  }
  .home-contact .btn {
    width: 100%;
  }
  .practical-links {
    gap: 15px;
  }
  .practical-link {
    font-size: 17px;
  }
  .inner-main {
    padding: 54px 0 70px;
  }
  .page-heading h1 {
    font-size: 38px;
    margin-bottom: 30px;
  }
  .content-lead {
    font-size: 19px;
  }
  .info-grid,
  .form-row {
    grid-template-columns: 1fr;
  }
  .info-grid {
    gap: 10px;
  }
  .info-card {
    min-height: 0;
  }
  .inquiry-form {
    padding: 22px 18px;
    gap: 20px;
  }
  .inquiry-form .btn {
    width: 100%;
  }
  .footer-main {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .footer-identity {
    grid-column: auto;
  }
  .footer-bottom {
    align-items: flex-start;
  }
  .footer-bottom nav {
    gap: 14px 18px;
  }
  .mobile-menu {
    max-height: calc(100svh - 84px);
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
  .js-motion .reveal {
    opacity: 1;
    transform: none;
  }
}
/* Clear section boundaries and the approved Trail Marker structure. */
.site-header {
  border-bottom: 3px solid var(--forest);
}
.brand-logo {
  width: 104px;
}
.header-inner {
  min-height: 112px;
}
.hero {
  border-bottom: 8px solid var(--copper);
}
.hero-inner {
  min-height: calc(100svh - 123px);
}
.hero-location {
  display: inline-block;
  padding: 10px 15px;
  background: var(--forest);
  border-left: 5px solid var(--copper);
}
.hero h1 {
  font-size: clamp(44px, 4.7vw, 68px);
}
.btn {
  border-color: currentColor;
}
.btn-primary {
  border-color: var(--forest);
}
.home-intro {
  padding: 72px 0;
  border-bottom: 2px solid var(--forest);
}
.intro-layout > div {
  border-left: 4px solid var(--copper);
  padding-left: 30px;
}
.home-stay {
  padding: 72px 0;
  background: var(--parchment);
  border-bottom: 2px solid var(--forest);
}
.stay-layout {
  gap: 0;
  border: 2px solid var(--forest);
  background: var(--cream);
}
.stay-image {
  border-right: 2px solid var(--forest);
  min-height: 470px;
}
.stay-copy {
  padding: 46px;
}
.stay-options {
  border-top: 3px solid var(--forest);
}
.stay-options a {
  border-bottom: 2px solid var(--forest);
}
.home-practical {
  background: var(--cream);
  padding: 72px 0;
  border-bottom: 2px solid var(--forest);
}
.practical-links {
  gap: 0;
  border: 2px solid var(--forest);
}
.practical-link {
  padding: 24px;
  min-height: 96px;
  border-top: 0;
  border-right: 2px solid var(--forest);
  background: var(--parchment);
}
.practical-link:last-child {
  border-right: 0;
}
.practical-link:hover {
  background: var(--forest);
  color: var(--cream);
  text-decoration: none;
}
.inquiry-link {
  margin-top: 28px;
}
.home-contact {
  background: var(--parchment);
  color: var(--forest);
  padding: 64px 0;
}
.home-contact-inner {
  border: 3px solid var(--forest);
  border-top: 7px solid var(--copper);
  padding: 46px;
  background: var(--forest);
  color: var(--cream);
}
.site-footer {
  border-top: 6px solid var(--copper);
  background: var(--forest);
  color: var(--cream);
}
.footer-main {
  padding-block: 56px;
}
.footer-brand img {
  background: var(--forest);
  padding: 10px;
  width: 140px;
}
.footer-link,
.footer-column > a {
  color: var(--cream);
}
.footer-bottom {
  border-top: 2px solid var(--sage);
}
.footer-column .footer-phone {
  font-size: 20px;
  font-weight: 700;
  border-bottom: 3px solid var(--copper);
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.page-heading {
  border-bottom: 3px solid var(--forest);
  margin-bottom: 38px;
}
.page-heading h1 {
  margin-bottom: 25px;
}
.info-card {
  background: var(--parchment);
  border: 2px solid var(--forest);
  padding: 28px;
}
.readable-sections section {
  border-left: 4px solid var(--copper);
  padding-left: 25px;
}
.faq-list {
  border: 2px solid var(--forest);
}
.faq-list details {
  padding: 24px;
  background: var(--parchment);
  border-top: 2px solid var(--forest);
}
.faq-list details:first-child {
  border-top: 0;
}
.booking-intro {
  padding: 28px;
  border: 2px solid var(--forest);
  border-top: 6px solid var(--copper);
  max-width: 800px;
  margin-bottom: 24px;
}
.booking-intro .content-lead {
  margin-bottom: 18px;
}
.booking-number {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 100%;
  font-weight: 700;
  color: var(--forest);
  font-size: clamp(19px, 2vw, 27px);
  text-underline-offset: 6px;
  overflow-wrap: anywhere;
}
.contact-highlight {
  background: var(--parchment);
  border: 2px solid var(--forest);
  border-top: 6px solid var(--copper);
  padding: 32px;
}
@media (max-width: 1190px) {
  .header-inner {
    min-height: 94px;
  }
  .brand-logo {
    width: 82px;
  }
  .hero-inner {
    min-height: calc(100svh - 105px);
  }
  .stay-copy {
    padding: 34px;
  }
}
@media (max-width: 800px) {
  .stay-image {
    border-right: 0;
    border-bottom: 2px solid var(--forest);
    min-height: 0;
    height: 340px;
  }
  .stay-copy {
    padding: 32px;
  }
  .intro-layout > div {
    padding-left: 24px;
  }
  .practical-link:nth-child(2) {
    border-right: 0;
  }
  .practical-link:nth-child(-n + 2) {
    border-bottom: 2px solid var(--forest);
  }
  .home-contact-inner {
    padding: 32px;
  }
}
@media (max-width: 540px) {
  .header-inner {
    min-height: 84px;
  }
  .brand-logo {
    width: 72px;
  }
  .hero-inner {
    min-height: calc(100svh - 95px);
  }
  .hero h1 {
    font-size: clamp(34px, 9.6vw, 46px);
  }
  .hero-location {
    font-size: 15px;
    padding: 9px 12px;
  }
  .home-intro,
  .home-stay,
  .home-practical {
    padding: 46px 0;
  }
  .intro-layout {
    gap: 26px;
  }
  .stay-copy {
    padding: 26px 22px;
  }
  .stay-image {
    height: 260px;
  }
  .practical-link {
    padding: 20px 16px;
    font-size: 16px;
    min-height: 88px;
  }
  .home-contact {
    padding: 40px 0;
  }
  .home-contact-inner {
    padding: 28px 22px;
  }
  .home-contact h2 {
    font-size: 27px;
  }
  .booking-intro,
  .contact-highlight {
    padding: 24px 20px;
  }
  .booking-number {
    font-size: 19px;
  }
  .footer-column .footer-phone {
    font-size: 18px;
  }
}

/* First-screen composition: reveal the next real section before scrolling. */
.home-main {
  --header-height: 115px;
  --next-section-peek: 174px;
}
.hero-inner {
  min-height: calc(
    100svh - var(--header-height) - var(--next-section-peek) - 8px
  );
  max-height: none;
  padding-block: 44px;
}
.hero-copy {
  max-width: 760px;
}
.hero h1 {
  font-size: clamp(44px, 4.5vw, 64px);
}
.hero-explore {
  gap: 16px;
  text-decoration: none;
  border-bottom: 1px solid var(--cream);
}
.hero-explore span {
  font-size: 26px;
  line-height: 1;
  transition: transform 0.2s;
}
.hero-explore:hover span {
  transform: translateY(5px);
}
.home-intro {
  padding-top: 38px;
  padding-bottom: 62px;
}
@media (max-height: 820px) and (min-width: 801px) {
  .hero-inner {
    padding-block: 32px;
  }
  .hero h1 {
    font-size: 46px;
    margin-bottom: 22px;
  }
  .hero-location {
    margin-bottom: 18px;
  }
  .hero-copy > p:not(.hero-location) {
    margin-bottom: 24px;
  }
  .home-main {
    --next-section-peek: 148px;
  }
  .home-intro {
    padding-top: 30px;
  }
}
@media (max-width: 1190px) {
  .home-main {
    --header-height: 97px;
  }
}
@media (max-width: 800px) {
  .home-main {
    --next-section-peek: 142px;
  }
  .hero-inner {
    padding-block: 38px;
  }
  .home-intro {
    padding-top: 30px;
  }
  .hero h1 {
    font-size: 44px;
  }
}
@media (max-width: 540px) {
  .home-main {
    --header-height: 87px;
    --next-section-peek: 136px;
  }
  .hero-inner {
    padding-block: 32px;
  }
  .hero h1 {
    font-size: 40px;
    margin-bottom: 22px;
  }
  .hero-location {
    margin-bottom: 20px;
  }
  .hero-copy > p:not(.hero-location) {
    margin-bottom: 24px;
  }
  .hero-actions {
    gap: 12px;
  }
  .hero-explore {
    min-height: 42px;
  }
  .home-intro {
    padding-top: 26px;
    padding-bottom: 46px;
  }
  .intro-layout {
    gap: 28px;
  }
}
@media (max-width: 540px) and (max-height: 740px) {
  .home-main {
    --next-section-peek: 124px;
  }
  .hero-inner {
    padding-block: 24px;
  }
  .hero h1 {
    font-size: 34px;
    margin-bottom: 16px;
  }
  .hero-location {
    font-size: 14px;
    max-width: none;
    margin-bottom: 14px;
    padding: 8px 12px;
  }
  .hero-copy > p:not(.hero-location) {
    font-size: 16px;
    margin-bottom: 18px;
  }
  .hero-actions {
    gap: 4px;
  }
}
@media (max-width: 540px) and (max-height: 620px) {
  .home-main {
    --next-section-peek: 112px;
  }
  .hero-inner {
    padding-block: 20px;
  }
  .hero h1 {
    font-size: 32px;
  }
  .hero-explore {
    display: none;
  }
  .home-intro {
    padding-top: 22px;
  }
  .home-intro h2 {
    font-size: 28px;
  }
}
/* Interior pages share the approved flat, framed visual language. */
.breadcrumbs {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 16px;
  margin-bottom: 28px;
  color: var(--forest);
}
.breadcrumbs a {
  text-underline-offset: 5px;
}
.inner-main .page-content {
  max-width: none;
}
.inner-main {
  padding-top: 48px;
}
.page-heading h1 {
  font-size: clamp(38px, 4vw, 58px);
}
.editorial-split {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  border: 2px solid var(--forest);
  background: var(--parchment);
  margin-bottom: 38px;
}
.editorial-split > div:first-child {
  min-height: 390px;
  border-right: 2px solid var(--forest);
  overflow: hidden;
}
.editorial-image {
  height: 100%;
  width: 100%;
  object-fit: cover;
}
.editorial-copy {
  padding: 38px;
}
.editorial-copy h2 {
  font-size: 34px;
  color: var(--forest);
  margin-bottom: 22px;
}
.editorial-copy p {
  margin-bottom: 24px;
}
.section-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px 28px;
}
.section-heading {
  font-size: 30px;
  color: var(--forest);
  margin: 36px 0 24px;
}
.pitch-choices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 2px solid var(--forest);
}
.pitch-choice {
  padding: 28px;
  border-right: 2px solid var(--forest);
  display: flex;
  flex-direction: column;
}
.pitch-choice:last-child {
  border-right: 0;
}
.pitch-choice h2 {
  font-size: 27px;
  color: var(--forest);
}
.pitch-choice .inline-link {
  margin-top: auto;
}
.pitch-choice p {
  margin-bottom: 24px;
}
.practical-note {
  padding: 22px 0;
  margin: 14px 0 0;
  font-size: 17px;
  max-width: 860px;
}
.detail-rows {
  border-top: 2px solid var(--forest);
  border-bottom: 2px solid var(--forest);
}
.detail-rows section {
  display: grid;
  grid-template-columns: 1fr 1.9fr;
  gap: 36px;
  padding: 30px 0;
  border-bottom: 1px solid var(--sage);
}
.detail-rows section:last-child {
  border-bottom: 0;
}
.detail-rows h2 {
  font-size: 28px;
  color: var(--forest);
  margin: 0;
}
.detail-rows p {
  margin: 0;
  max-width: 650px;
}
.activity-panel {
  margin-top: 38px;
  padding: 36px;
  border: 2px solid var(--forest);
  border-top: 6px solid var(--copper);
  background: var(--parchment);
}
.activity-panel h2 {
  font-size: 32px;
  color: var(--forest);
}
.activity-panel p {
  max-width: 800px;
  margin-bottom: 28px;
}
.price-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  background: var(--parchment);
  border: 2px solid var(--forest);
  border-top: 6px solid var(--copper);
  padding: 38px;
}
.price-label {
  font-weight: 700;
  color: var(--forest);
  margin-bottom: 10px;
}
.price-value {
  font: 700 clamp(46px, 5vw, 68px)/1.1 var(--font);
  color: var(--forest);
  margin-bottom: 24px;
}
.price-value span {
  font-size: 24px;
}
.price-panel p:last-child {
  max-width: 620px;
  margin-bottom: 0;
}
.price-panel .btn {
  flex-shrink: 0;
}
.quote-details {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 2px solid var(--forest);
  margin-bottom: 24px;
}
.quote-details > div {
  padding: 26px;
  border-right: 2px solid var(--forest);
}
.quote-details > div:last-child {
  border-right: 0;
}
.quote-details h3 {
  font-size: 22px;
  color: var(--forest);
}
.quote-details p {
  margin: 0;
}
.arrival-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
}
.locality-panel {
  border: 2px solid var(--forest);
  background: var(--parchment);
  padding: 36px;
}
.locality-panel h2 {
  font-size: clamp(40px, 4vw, 58px);
  color: var(--forest);
  margin-bottom: 28px;
}
.locality-panel .inline-link {
  display: block;
  margin-top: 20px;
}
.map-note {
  font-size: 16px;
  margin: 20px 0 0;
}
.arrival-layout .section-heading {
  margin-top: 0;
}
.practical-list {
  padding-left: 22px;
  margin: 26px 0 30px;
}
.practical-list li {
  margin: 0 0 15px;
}
.brand-quote {
  margin: 38px 0;
  padding: 36px 40px;
  border-left: 6px solid var(--copper);
  background: var(--forest);
  color: var(--cream);
  font: 700 clamp(26px, 3vw, 36px)/1.35 var(--display);
}
.contact-layout {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 46px;
}
.contact-primary {
  background: var(--forest);
  color: var(--cream);
  border-top: 6px solid var(--copper);
  padding: 38px;
}
.contact-primary h2 {
  font-size: 32px;
}
.contact-phone {
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 700;
  text-underline-offset: 7px;
  overflow-wrap: anywhere;
}
.contact-primary p {
  margin: 25px 0;
}
.contact-primary .inline-link {
  display: block;
  color: var(--cream);
  margin-top: 24px;
}
.contact-secondary section {
  border-top: 2px solid var(--forest);
  padding: 24px 0;
}
.contact-secondary h2 {
  font-size: 24px;
  color: var(--forest);
}
.contact-secondary a {
  overflow-wrap: anywhere;
}
.contact-secondary p {
  margin-bottom: 16px;
}
.booking-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.25fr;
  gap: 50px;
  align-items: start;
}
.booking-layout .content-lead {
  font-size: 20px;
}
.booking-contact {
  border-top: 3px solid var(--copper);
  padding-top: 24px;
  margin-bottom: 24px;
}
.booking-contact h2 {
  font-size: 24px;
  color: var(--forest);
}
.booking-contact .booking-number {
  font-size: 27px;
}
.booking-contact p {
  font-size: 17px;
  margin: 20px 0;
}
.inquiry-form {
  max-width: none;
  margin: 0;
}
.inquiry-form fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  display: grid;
  gap: 22px;
}
.inquiry-form legend {
  font: 700 26px/1.2 var(--display);
  color: var(--forest);
  margin-bottom: 24px;
  padding: 0;
}
.stay-summary {
  font-weight: 700;
  color: var(--forest);
  margin: 0;
  border-top: 2px solid var(--forest);
  padding-top: 18px;
  font-size: 16px;
}
.inquiry-form .form-feedback {
  font-size: 17px;
}
.inquiry-form input[aria-invalid="true"] {
  border-width: 2px;
  border-color: var(--charcoal);
}
.no-script-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  padding-block: 20px;
}
:focus-visible {
  outline-color: var(--forest);
}
.hero :focus-visible,
.site-footer :focus-visible,
.home-contact-inner :focus-visible,
.contact-primary :focus-visible,
.brand-quote :focus-visible {
  outline-color: var(--cream);
}
@media (max-width: 1000px) {
  .editorial-copy {
    padding: 28px;
  }
  .editorial-copy h2 {
    font-size: 29px;
  }
  .price-panel {
    align-items: flex-start;
    flex-direction: column;
  }
  .booking-layout {
    gap: 30px;
    grid-template-columns: 1fr 1.2fr;
  }
  .inquiry-form {
    padding: 24px;
  }
  .form-row {
    gap: 16px;
  }
  .contact-layout {
    gap: 30px;
  }
}
@media (max-width: 760px) {
  .editorial-split,
  .booking-layout,
  .contact-layout,
  .arrival-layout {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .editorial-split {
    gap: 0;
  }
  .editorial-split > div:first-child {
    min-height: 0;
    height: 300px;
    border-right: 0;
    border-bottom: 2px solid var(--forest);
  }
  .pitch-choices,
  .quote-details {
    grid-template-columns: 1fr;
  }
  .pitch-choice,
  .quote-details > div {
    border-right: 0;
    border-bottom: 2px solid var(--forest);
  }
  .pitch-choice:last-child,
  .quote-details > div:last-child {
    border-bottom: 0;
  }
  .detail-rows section {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .booking-layout {
    gap: 24px;
  }
  .booking-contact {
    margin-bottom: 20px;
  }
  .contact-primary {
    padding: 30px;
  }
  .inner-main {
    padding-top: 32px;
  }
  .locality-panel {
    padding: 28px;
  }
  .brand-quote {
    padding: 28px;
    font-size: 27px;
  }
}
@media (max-width: 540px) {
  .editorial-copy,
  .pitch-choice,
  .quote-details > div {
    padding: 24px 22px;
  }
  .editorial-copy h2,
  .activity-panel h2 {
    font-size: 28px;
  }
  .activity-panel,
  .price-panel,
  .contact-primary {
    padding: 26px 22px;
  }
  .price-value {
    font-size: 48px;
  }
  .price-value span {
    display: block;
    font-size: 22px;
    margin-top: 8px;
  }
  .contact-primary h2 {
    font-size: 28px;
  }
  .contact-phone {
    font-size: 26px;
  }
  .inquiry-form {
    padding: 24px 18px;
  }
  .inquiry-form fieldset {
    gap: 20px;
  }
  .form-row {
    grid-template-columns: 1fr;
  }
  .booking-contact .booking-number {
    font-size: 24px;
  }
  .breadcrumbs {
    font-size: 15px;
    margin-bottom: 22px;
  }
  .section-actions {
    gap: 14px;
  }
  .section-actions .btn {
    width: 100%;
  }
  .practical-note {
    font-size: 16px;
  }
}
/* Practical navigation behaves like a set of trail signs. */
.practical-links {
  gap: 18px;
  border: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.practical-link,
.practical-link:nth-child(n) {
  display: grid;
  grid-template-rows: auto 1fr auto;
  align-items: start;
  gap: 16px;
  min-width: 0;
  min-height: 254px;
  padding: 26px 24px;
  border: 2px solid var(--forest);
  border-bottom: 7px solid var(--copper);
  background: var(--parchment);
  color: var(--forest);
  text-decoration: none;
  transition:
    background 0.2s,
    color 0.2s,
    transform 0.2s;
}
.practical-label {
  font: 700 27px/1.16 var(--display);
  letter-spacing: -0.035em;
  min-height: 63px;
}
.practical-description {
  font: 400 17px/1.5 var(--font);
  max-width: 24ch;
}
.practical-arrow {
  display: grid;
  place-items: center;
  justify-self: end;
  width: 46px;
  height: 46px;
  font: 400 30px/1 var(--font);
  background: var(--forest);
  color: var(--cream);
  border: 2px solid var(--forest);
  transition:
    background 0.2s,
    color 0.2s,
    transform 0.2s;
}
.practical-link:hover,
.practical-link:focus-visible {
  background: var(--forest);
  color: var(--cream);
  transform: translateY(-4px);
  text-decoration: none;
}
.practical-link:hover .practical-arrow,
.practical-link:focus-visible .practical-arrow {
  background: var(--cream);
  color: var(--forest);
  transform: translate(2px, -2px);
}
@media (max-width: 1000px) {
  .practical-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .practical-link,
  .practical-link:nth-child(n) {
    min-height: 225px;
  }
  .practical-label {
    min-height: 0;
  }
}
@media (max-width: 540px) {
  .practical-links {
    gap: 12px;
  }
  .practical-link,
  .practical-link:nth-child(n) {
    padding: 20px 16px;
    gap: 14px;
    min-height: 230px;
  }
  .practical-label {
    font-size: 21px;
    min-height: 50px;
  }
  .practical-description {
    font-size: 15px;
  }
  .practical-arrow {
    width: 40px;
    height: 40px;
    font-size: 27px;
  }
}
@media (max-width: 360px) {
  .practical-link,
  .practical-link:nth-child(n) {
    padding: 18px 12px;
  }
  .practical-label {
    font-size: 19px;
  }
}

/* Natural landscape hero: neutral contrast is confined to the copy side. */
.hero-region::before { content: " · "; white-space: pre; }
.hero .hero-chat-icon { display: none; }
.hero {
  border-bottom: 0;
  background: var(--charcoal);
}
.hero-image {
  object-position: center 58%;
}
.hero::before {
  opacity: 1;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.48) 32%,
    rgba(0, 0, 0, 0.08) 65%,
    transparent 100%
  );
}
.hero-inner {
  min-height: calc(100svh - var(--header-height) - var(--next-section-peek));
  padding-block: 44px;
}
.hero-copy {
  max-width: 760px;
}
.hero-location {
  display: block;
  background: none;
  border: 0;
  padding: 0;
  max-width: none;
  font-size: 15px;
  letter-spacing: 0.025em;
  margin-bottom: 26px;
}
.hero h1 {
  font-size: clamp(42px, 4.1vw, 59px);
  line-height: 1.12;
  margin-bottom: 24px;
}
.hero-copy > p:not(.hero-location) {
  font-size: 18px;
  margin-bottom: 28px;
}
@media (max-width: 800px) {
  .hero-image {
    object-position: 62% center;
  }
  .hero::before {
    background: linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.72) 0%,
      rgba(0, 0, 0, 0.48) 32%,
      rgba(0, 0, 0, 0.08) 65%,
      transparent 100%
    );
  }
  .hero-copy {
    max-width: 600px;
  }
  .hero h1 {
    font-size: 42px;
  }
}
@media (max-width: 540px) {
  .hero-inner {
    align-items: flex-start;
    padding-block: 34px;
  }
  .hero-image {
    object-position: 60% center;
  }
  .hero::before {
    background: linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.72) 0%,
      rgba(0, 0, 0, 0.54) 42%,
      rgba(0, 0, 0, 0.18) 72%,
      rgba(0, 0, 0, 0.06) 100%
    );
  }
  .hero-location {
    display: grid;
    gap: 4px;
    font-size: 12px;
    letter-spacing: 0;
    line-height: 1.5;
    margin-bottom: 24px;
  }
  .hero-brand { font-size: 11px; text-transform: uppercase; letter-spacing: .15em; }
  .hero-region { font-weight: 400; }
  .hero-region::before { content: none; }
  .hero h1 {
    font-size: clamp(36px, 10.7vw, 44px);
    max-width: none;
    line-height: 1.09;
    letter-spacing: -.04em;
    margin-bottom: 22px;
    text-wrap: balance;
  }
  .hero-copy > p:not(.hero-location) {
    font-size: 16px;
    line-height: 1.55;
    max-width: 29ch;
    text-wrap: pretty;
    margin-bottom: 24px;
  }
  .hero-actions { gap: 10px; }
  .hero-actions .btn { width: auto; min-height: 52px; gap: 10px; padding: 13px 20px; border: 1px solid rgba(247,243,232,.7); }
  .hero .hero-chat-icon { display: block; flex-shrink: 0; width: 21px; height: 21px; }
  .hero-explore { gap: 10px; min-height: 44px; font-size: 14px; border: 0; text-decoration: none; }
  .hero-explore span { font-size: 20px; }
}
@media (max-width: 540px) and (max-height: 740px) {
  .hero-inner {
    padding-block: 24px;
  }
  .hero-brand { display: none; }
  .hero-location {
    margin-bottom: 16px;
  }
  .hero h1 {
    font-size: 34px;
    margin-bottom: 16px;
  }
  .hero-copy > p:not(.hero-location) {
    margin-bottom: 18px;
  }
}
@media (max-width: 540px) and (max-height: 620px) {
  .hero-inner {
    padding-block: 20px;
  }
  .hero-location {
    font-size: 12px;
    margin-bottom: 12px;
  }
  .hero h1 {
    font-size: 30px;
    margin-bottom: 14px;
  }
  .hero-copy > p:not(.hero-location) {
    font-size: 15px;
    margin-bottom: 14px;
  }
}

/* Facilities: numbered groups and consistent, labelled line pictograms. */
.facilities-lead {
  max-width: 720px;
  margin-bottom: 28px;
}
.facility-navigation {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  padding: 0 0 26px;
  border-bottom: 2px solid var(--forest);
}
.facility-navigation a {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  min-height: 44px;
  font-size: 16px;
  font-weight: 700;
  color: var(--forest);
  text-decoration: none;
}
.facility-navigation a:hover {
  text-decoration: underline;
  text-underline-offset: 6px;
}
.facility-navigation span {
  color: var(--copper);
  font-size: 22px;
}
.facility-group {
  display: grid;
  grid-template-columns: 1fr 1.7fr;
  gap: 70px;
  padding: 48px 0;
  border-bottom: 1px solid var(--sage);
  scroll-margin-top: 135px;
}
.facility-number {
  font: 700 14px/1 var(--font);
  color: var(--copper);
  display: block;
  margin-bottom: 18px;
  letter-spacing: 0.1em;
}
.facility-group-heading h2 {
  font-size: 32px;
  color: var(--forest);
  margin-bottom: 16px;
  max-width: 300px;
}
.facility-group-heading p {
  font-size: 17px;
  max-width: 310px;
  margin-bottom: 0;
}
.facility-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px 36px;
  align-content: start;
}
.facility-item {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  min-width: 0;
}
.facility-item .facility-icon {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  color: var(--forest);
}
.facility-item h3 {
  font: 700 20px/1.3 var(--font);
  color: var(--forest);
  margin: 2px 0 10px;
  letter-spacing: 0;
}
.facility-item p {
  font-size: 16px;
  line-height: 1.55;
  margin: 0;
  max-width: 300px;
}
.facility-enquiry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 34px;
  margin-top: 40px;
  background: var(--parchment);
  border-left: 4px solid var(--copper);
}
.facility-enquiry h2 {
  font-size: 28px;
  color: var(--forest);
  margin-bottom: 12px;
}
.facility-enquiry p {
  font-size: 17px;
  max-width: 630px;
  margin: 0;
}
.facility-enquiry .btn {
  flex-shrink: 0;
}
@media (max-width: 1000px) {
  .facility-group {
    gap: 35px;
    grid-template-columns: 1fr 2fr;
  }
  .facility-list {
    gap: 28px 24px;
  }
  .facility-item {
    gap: 12px;
  }
  .facility-icon {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }
  .facility-group-heading h2 {
    font-size: 28px;
  }
  .facility-enquiry {
    align-items: flex-start;
    flex-direction: column;
    gap: 24px;
  }
}
@media (max-width: 700px) {
  .facility-group {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 32px 0;
    scroll-margin-top: 110px;
  }
  .facility-group-heading h2,
  .facility-group-heading p {
    max-width: 100%;
  }
  .facility-number {
    margin-bottom: 12px;
  }
  .facility-list {
    gap: 26px;
    grid-template-columns: 1fr;
  }
  .facility-item {
    gap: 20px;
  }
  .facility-icon {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }
  .facility-item p {
    max-width: 100%;
  }
  .facility-navigation {
    gap: 4px 24px;
    padding-bottom: 20px;
  }
  .facility-navigation a {
    font-size: 15px;
    gap: 12px;
  }
  .facility-enquiry {
    padding: 26px 22px;
    margin-top: 30px;
  }
  .facility-enquiry .btn {
    width: 100%;
  }
}

/* Stronger facilities grouping: alternating surfaces and explicit boundaries. */
.facility-navigation {
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 32px;
}
.facility-group {
  padding: 36px;
  margin-bottom: 24px;
  gap: 48px;
  background: #fff;
  border: 2px solid var(--forest);
  border-left: 6px solid var(--copper);
}
.facility-group:nth-of-type(even) {
  background: var(--parchment);
}
.facility-group-heading {
  padding-right: 30px;
  border-right: 1px solid var(--sage);
}
.facility-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background: var(--forest);
  color: var(--cream);
  letter-spacing: 0;
  margin-bottom: 18px;
}
.facility-list {
  gap: 24px 30px;
}
.facility-item {
  padding-bottom: 22px;
  border-bottom: 1px solid var(--sage);
}
.facility-item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.facility-enquiry {
  margin-top: 36px;
}
@media (max-width: 1000px) {
  .facility-group {
    padding: 28px;
    gap: 28px;
  }
  .facility-group-heading {
    padding-right: 24px;
  }
}
@media (max-width: 700px) {
  .facility-group {
    padding: 26px 22px;
    margin-bottom: 20px;
    gap: 26px;
  }
  .facility-group-heading {
    padding-right: 0;
    padding-bottom: 24px;
    border-right: 0;
    border-bottom: 2px solid var(--forest);
  }
  .facility-number {
    width: 34px;
    height: 34px;
    margin-bottom: 16px;
  }
  .facility-list {
    gap: 22px;
  }
  .facility-item {
    padding-bottom: 22px;
  }
  .facility-navigation {
    margin-bottom: 24px;
  }
}

/* Shared travel icons: square grid, uniform stroke, inherited colour. */
.site-icon {
  display: inline-block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  vertical-align: middle;
}
.pitch-icon {
  display: block;
  width: 56px;
  height: 56px;
  color: var(--forest);
  margin-bottom: 22px;
}
@media (max-width: 760px) {
  .pitch-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 18px;
  }
}

/* Four main destinations and one form-first booking action. */
.header-right { gap: 12px; }
.desktop-nav { gap: 16px; }
.desktop-nav .nav-link { font-size: 14px; }
.header-inner { gap: 24px; }
.header-book { white-space: nowrap; }
.contact-arrival { padding-top: 56px; margin-top: 56px; border-top: 1px solid var(--sage); scroll-margin-top: 120px; }
.contact-arrival > h2 { color: var(--forest); font-size: clamp(28px,4vw,42px); }


/* Booking action language: WhatsApp direct = dark; form first = light. */
.btn-whatsapp {
  background: var(--forest);
  color: var(--cream);
  border-color: var(--forest);
}
.btn-whatsapp:hover {
  background: var(--charcoal);
  color: var(--cream);
}
.btn-inquiry {
  background: var(--cream);
  color: var(--forest);
  border-color: var(--forest);
}
.btn-inquiry:hover {
  background: var(--parchment);
  color: var(--forest);
}
.home-contact-inner .btn-whatsapp,
.contact-primary .btn-whatsapp,
.site-footer .btn-whatsapp {
  border-color: var(--cream);
}
.site-footer .btn-inquiry {
  color: var(--forest);
  font-size: 16px;
  line-height: 1.3;
}
.contact-primary .btn-inquiry {
  margin-top: 16px;
}
.pitch-choice .btn-inquiry {
  align-self: flex-start;
  margin-top: auto;
}

/* Legal disclosures remain readable and available on every page. */
/* A quiet utility row separates statutory information from the main footer. */
.footer-disclosures {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 28px 64px;
  border-top: 1px solid var(--sage);
  padding-block: 30px;
}
.footer-legal-identity {
  max-width: 660px;
  font-size: 14px;
  line-height: 1.75;
  overflow-wrap: anywhere;
}
.footer-legal-identity p { margin-bottom: 12px; }
.footer-legal-identity a { text-underline-offset: 5px; }
.consumer-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
}
.consumer-links > a:first-child {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  text-decoration: none;
  text-underline-offset: 5px;
}
.consumer-links > a:first-child:hover { text-decoration: underline; }
.consumer-badge {
  display: block;
  flex: 0 0 auto;
  width: 266px;
  padding: 8px;
  background: #fff;
}
.consumer-badge img { display: block; width: 250px; height: 50px; max-width: none; }
.explore-intro {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  align-items: center;
  gap: 64px;
  margin-bottom: 48px;
}
.explore-eyebrow { font-size: 14px; font-weight: 700; color: var(--forest); }
.explore-intro h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.2; margin-bottom: 24px; }
.explore-intro figure { margin: 0; }
.explore-intro img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.explore-intro figcaption { font-size: 13px; padding-top: 10px; }
.explore-navigation { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--forest); margin-bottom: 72px; }
.explore-navigation a { display: flex; align-items: center; gap: 16px; padding: 22px 18px; text-decoration: none; font-weight: 700; line-height: 1.4; }
.explore-navigation a + a { border-left: 1px solid var(--forest); }
.explore-navigation a span:first-child { color: var(--copper); font-size: 14px; }
.explore-navigation a span:last-child { margin-left: auto; }
.explore-navigation a:hover { background: var(--parchment); }
.explore-group { display: grid; grid-template-columns: 0.8fr 1.5fr; gap: 72px; padding-block: 44px; border-top: 2px solid var(--forest); scroll-margin-top: 140px; }
.explore-group-heading p { font-size: 14px; margin-block: 18px 12px; }
.explore-group-heading h2 { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.2; max-width: 360px; }
.explore-number { color: var(--copper); font-size: 38px; font-family: 'Roboto Slab', serif; }
.explore-place + .explore-place { margin-top: 30px; padding-top: 30px; border-top: 1px solid var(--sage); }
.explore-place h3 { font-size: 24px; line-height: 1.3; margin-bottom: 14px; }
.explore-photo { margin: 0 0 24px; }
.explore-photo img { display: block; width: 100%; height: auto; }
.explore-photo figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 18px; padding-top: 9px; font-size: 12px; line-height: 1.6; }
.explore-photo figcaption a { text-underline-offset: 3px; }
.explore-group-heading { align-self: start; position: sticky; top: 140px; }
.explore-place p { max-width: 690px; }
.explore-note { font-size: 15px; border-left: 2px solid var(--copper); padding-left: 14px; margin-block: 18px 10px; }
.explore-links { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.explore-links a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 15px; font-weight: 700; text-underline-offset: 5px; }
.explore-planning { display: flex; justify-content: space-between; align-items: center; gap: 36px; padding: 36px; background: var(--parchment); margin-top: 28px; }
.explore-planning h2 { font-size: 28px; margin-bottom: 16px; }
.explore-planning p { max-width: 650px; margin-bottom: 0; }
.explore-planning .btn { flex-shrink: 0; }
.explore-disclaimer { font-size: 14px; line-height: 1.6; margin-top: 22px; max-width: 900px; }
@media (max-width: 1000px) {
  .explore-intro { gap: 28px; }
  .explore-group { gap: 36px; }
  .explore-planning { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 700px) {
  .explore-intro, .explore-group { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .explore-intro img { aspect-ratio: 16 / 9; }
  .explore-navigation { grid-template-columns: minmax(0, 1fr); margin-bottom: 40px; }
  .explore-navigation a { padding: 16px 0; }
  .explore-navigation a + a { border-left: 0; border-top: 1px solid var(--sage); }
  .explore-group { padding-block: 30px; scroll-margin-top: 110px; }
  .explore-group-heading h2 { max-width: none; }
  .explore-group-heading { position: static; }
  .explore-planning { padding: 24px; }
}
.site-footer .footer-bottom { border-top-width: 1px; }
@media (max-width: 760px) {
  .footer-disclosures { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
.legal-page{max-width:900px}
.legal-page .legal-date{font-size:15px;color:var(--forest);margin-bottom:16px}
.legal-review{border-left:3px solid var(--copper);padding:14px 18px;background:var(--parchment);font-size:16px;margin-bottom:32px}
.legal-page a{text-underline-offset:4px;overflow-wrap:anywhere}
.legal-page .readable-sections section{scroll-margin-top:140px}
.inquiry-form #inquiry-privacy{margin:0;font-size:15px;line-height:1.6}
.inquiry-form #inquiry-privacy a{font-weight:700;text-underline-offset:3px}
.date-field { min-width: 0; display: grid; gap: 9px; }
.date-control { position: relative; min-width: 0; }
.has-range-calendar .date-control input { min-width: 0; min-height: 56px; padding: 12px 40px 12px 10px; font-size: 16px; }
.has-range-calendar input::-webkit-calendar-picker-indicator { display: none; }
/* Firefox keeps its native icon inside the date field. Clip that end of the
   enhanced input; the separate accessible calendar button occupies this space. */
@supports (-moz-appearance: none) {
  .date-range-row.has-range-calendar .date-control input {
    padding-right: 10px;
    clip-path: inset(0 36px 0 0);
  }
}
.date-toggle { position: absolute; inset: 1px 1px 1px auto; width: 36px; display: grid; place-items: center; border: 0; background: transparent; color: var(--forest); cursor: pointer; }
.date-toggle:hover { background: var(--parchment); }
.date-field-active input { outline: 2px solid var(--forest); outline-offset: -2px; }
body.calendar-open { overflow: hidden; }
.range-calendar {
  position: fixed; inset: 0; margin: auto; width: min(820px, calc(100vw - 48px));
  max-width: none; max-height: calc(100dvh - 48px); padding: 0;
  border: 1px solid var(--sage); background: #fff; color: var(--charcoal);
  box-shadow: 0 18px 60px rgb(30 30 30 / .2); overflow: hidden;
}
.range-calendar:not([open]) { display: none; }
.range-calendar[open] { display: flex; flex-direction: column; }
.range-calendar::backdrop { background: rgb(30 30 30 / .32); }
.calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 28px 8px; flex-shrink: 0; }
.calendar-heading p { margin: 0; font-family: 'Roboto Slab', serif; font-size: 23px; font-weight: 700; color: var(--forest); }
.range-calendar button { font-family: inherit; color: var(--forest); cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.calendar-close { display: grid; place-items: center; width: 44px; height: 44px; border: 0; background: transparent; font-size: 28px; flex-shrink: 0; }
.calendar-selection { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 28px 16px; border: 1px solid var(--sage); flex-shrink: 0; }
.calendar-date-tab { display: grid; gap: 8px; min-width: 0; text-align: left; padding: 13px 18px; border: 0; border-bottom: 3px solid transparent; background: #fff; }
.calendar-date-tab + .calendar-date-tab { border-left: 1px solid var(--sage); }
.calendar-date-tab span { font-size: 13px; }
.calendar-date-tab strong { font-size: 20px; }
.calendar-date-tab[aria-pressed="true"] { border-bottom-color: var(--copper); background: var(--cream); }
.calendar-controls { display: flex; justify-content: space-between; position: relative; z-index: 1; padding: 0 28px; height: 44px; margin-bottom: -44px; flex-shrink: 0; pointer-events: none; }
.calendar-controls button { pointer-events: auto; }
.calendar-arrow { display: grid; place-items: center; height: 44px; width: 44px; border: 0; background: transparent; font-size: 24px; }
.calendar-months { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; padding: 0 28px 16px; overflow: auto; min-height: 0; overscroll-behavior: contain; }
.calendar-month { min-width: 0; }
.calendar-month-title { font: 700 17px Lato, sans-serif; text-align: center; text-transform: capitalize; margin: 0 0 12px; height: 44px; display: flex; align-items: center; justify-content: center; color: var(--forest); }
.calendar-grid { table-layout: fixed; width: 100%; border-spacing: 0; border-collapse: separate; }
.calendar-grid th { padding: 8px 0; font-size: 11px; font-weight: 400; text-transform: uppercase; background: var(--cream); }
.calendar-grid td { position: relative; isolation: isolate; padding: 0; text-align: center; vertical-align: middle; height: 48px; }
.calendar-day { position: static; display: block; width: min(44px, 100%); height: 44px; margin: auto; padding: 0; border: 2px solid transparent; border-radius: 4px; font-size: 15px; background: transparent; font-weight: 700; }
/* Fill each cell's pointer target while retaining the compact visible day block. */
.calendar-day::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.calendar-day:not(:disabled):hover { border-color: var(--copper); }
.calendar-day[aria-current="date"] { border-color: var(--sage); }
.calendar-grid .is-in-range, .calendar-grid .is-preview { background: var(--parchment); }
.calendar-grid .is-range-start::before, .calendar-grid .is-range-end::before { content: ''; position: absolute; z-index: -1; top: 0; bottom: 0; background: var(--parchment); }
.calendar-grid .is-range-start::before { left: 50%; right: 0; }
.calendar-grid .is-range-end::before { left: 0; right: 50%; }
.range-calendar .calendar-day.is-selected { background: var(--forest); color: var(--cream); }
.range-calendar button:disabled { color: #77736c; cursor: default; opacity: .45; }
.range-calendar .calendar-day.is-selected:disabled { color: var(--cream); opacity: 1; }
.calendar-footer { display: grid; gap: 8px; padding: 18px 28px; border-top: 1px solid var(--sage); background: var(--cream); flex-shrink: 0; }
.calendar-summary { margin: 0; font-size: 15px; line-height: 1.5; font-weight: 700; }
.calendar-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.calendar-clear { min-height: 44px; border: 0; padding: 8px 0; background: transparent; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.calendar-apply { border-color: var(--forest); min-height: 46px; transition: none; }
.calendar-note { margin: 0; font-size: 12px; line-height: 1.5; }
@media (max-width: 700px) {
  .range-calendar { inset: auto 0 0; margin: 0; width: 100%; max-height: calc(100dvh - 20px); border: 0; border-top: 3px solid var(--forest); }
  .calendar-heading { padding: 8px 20px; }
  .calendar-heading p { font-size: 21px; }
  .calendar-selection { margin: 0 20px 12px; }
  .calendar-date-tab { padding: 12px; }
  .calendar-date-tab strong { font-size: 17px; }
  .calendar-controls { padding: 0 20px; }
  .calendar-arrow { width: 36px; }
  .calendar-months { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 0 20px 16px; }
  .calendar-footer { padding: 12px 20px; }
  .calendar-summary { font-size: 14px; }
  .calendar-apply { padding-inline: 14px; font-size: 15px; }
}
@media (max-width: 540px) {
  .inquiry-form .date-range-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .inquiry-form .date-control input { font-size: 14px; padding-left: 6px; padding-right: 32px; }
  .date-toggle { width: 30px; }
}
@media (max-width: 360px) {
  .inquiry-form .date-range-row { grid-template-columns: minmax(0, 1fr); }
  .calendar-actions { gap: 8px; }
  .calendar-apply { font-size: 14px; padding-inline: 10px; }
}
/* Airline interaction polish: anchored desktop popover, full-screen mobile picker. */
.has-range-calendar.date-range-row { gap: 0; border: 1px solid var(--forest); background: #fff; }
.has-range-calendar .date-field { position: relative; gap: 0; padding: 10px 16px; transition: background-color .18s ease; }
.has-range-calendar .date-field + .date-field { border-left: 1px solid var(--forest); }
.has-range-calendar .date-field > label { padding: 0; font-size: 11px; line-height: 1.4; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--forest); }
.has-range-calendar .date-control input { border: 0; background: transparent; color: var(--forest); min-height: 44px; padding-block: 6px; padding-left: 0; font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; }
.has-range-calendar .date-toggle { width: 36px; inset: 0 0 0 auto; border-radius: 4px; background: var(--cream); }
.has-range-calendar .date-toggle:hover { background: var(--parchment); }
.has-range-calendar .date-field:hover { background: #fff; }
.has-range-calendar .date-field:focus-within { box-shadow: inset 0 -2px var(--copper); }
.has-range-calendar .date-field-active { outline: 2px solid var(--forest); outline-offset: -2px; background: #fff; }
.has-range-calendar .date-field-active input { outline: 0; }
.has-range-calendar .date-field-active:first-child::after { content: ''; position: absolute; right: -5px; top: calc(50% - 5px); width: 8px; height: 8px; background: #fff; border-top: 2px solid var(--forest); border-right: 2px solid var(--forest); transform: rotate(45deg); z-index: 1; }
.range-calendar.is-desktop { inset: auto; margin: 0; z-index: 60; width: min(760px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); border-radius: 4px; box-shadow: 0 6px 24px rgb(30 30 30 / .16); }
.range-calendar.is-desktop .calendar-heading, .range-calendar.is-desktop .calendar-selection { display: none; }
.range-calendar.is-desktop .calendar-controls { margin-top: 16px; }
.range-calendar.is-desktop .calendar-footer { grid-template-columns: 1fr auto; align-items: center; padding: 8px 24px; gap: 0 18px; background: #fff; }
.range-calendar.is-desktop .calendar-summary { font-size: 13px; font-weight: 400; }
.range-calendar.is-desktop .calendar-apply, .range-calendar.is-desktop .calendar-note { display: none; }
.calendar-month[hidden] { display: none; }
@media (max-width: 700px) {
  .range-calendar.is-mobile { inset: 0; margin: 0; height: 100dvh; width: 100%; max-height: 100dvh; border: 0; box-shadow: none; }
  .range-calendar.is-mobile .calendar-heading { padding-top: max(12px, env(safe-area-inset-top)); }
  .range-calendar.is-mobile .calendar-months { flex: 1 1 auto; align-content: start; }
  .range-calendar.is-mobile .calendar-footer { padding-bottom: max(16px, env(safe-area-inset-bottom)); background: #fff; }
  .range-calendar.is-mobile .calendar-actions { flex-direction: column; align-items: stretch; gap: 4px; }
  .range-calendar.is-mobile .calendar-apply { width: 100%; }
  .range-calendar.is-mobile .calendar-clear { align-self: center; }
  .range-calendar.is-mobile .calendar-note { text-align: center; }
  .range-calendar.is-mobile .calendar-selection { border-radius: 4px; }
  .range-calendar.is-mobile .calendar-date-tab[aria-pressed="true"] { outline: 2px solid var(--forest); outline-offset: -2px; border-bottom-color: transparent; }
}
@media (max-width: 360px) {
  .has-range-calendar .date-field + .date-field { border-left: 0; border-top: 1px solid var(--forest); }
  .has-range-calendar .date-field-active:first-child::after { display: none; }
}
@media (max-width: 540px) {
  .has-range-calendar .date-field { padding: 8px 10px; }
  .has-range-calendar .date-control input { font-size: 14px; }
}
@media(max-width:540px){.footer-legal-identity{font-size:14px}.legal-page .readable-sections section{scroll-margin-top:110px}}

/* Tariffs: editorial introduction, readable package rows, complete service ledger. */
.tariffs { color: var(--forest); }
.tariff-draft { border-left: 3px solid var(--copper); padding: 14px 20px; background: var(--parchment); margin-bottom: 32px; }
.tariff-draft strong { font-size: 14px; }
.tariff-draft p { margin: 4px 0 0; max-width: 85ch; font-size: 14px; line-height: 1.6; }
.tariff-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; margin-bottom: 64px; }
.tariff-intro h2 { font-size: clamp(30px, 3.5vw, 48px); line-height: 1.16; margin: 0 0 20px; max-width: 16ch; }
.tariff-intro p { max-width: 36ch; margin: 0; }
.tariff-intro img { width: 100%; height: 260px; object-fit: cover; }
.tariff-section { margin-bottom: 64px; }
.tariff-section-heading { display: grid; grid-template-columns: 42px 1fr; gap: 16px; margin-bottom: 26px; }
.tariff-section-heading > span { color: var(--copper); font-size: 15px; font-weight: 700; padding-top: 7px; }
.tariff-section-heading h2 { margin: 0 0 10px; font-size: clamp(25px, 2.5vw, 34px); }
.tariff-section-heading p { margin: 0; max-width: 80ch; font-size: 16px; }
.tariff-packages { border-top: 2px solid var(--forest); }
.tariff-package { display: grid; grid-template-columns: 64px minmax(0, 1fr) 150px 170px; align-items: center; gap: 24px; padding: 26px 24px; border-bottom: 1px solid var(--sage); background: #fff; }
.tariff-package:nth-child(even) { background: var(--parchment); }
.tariff-icon { width: 52px; height: 52px; }
.tariff-package h3 { margin: 0 0 8px; font-size: 23px; }
.tariff-package-copy p { margin: 0; max-width: 48ch; font-size: 15px; }
.tariff-amount { margin: 0; display: grid; line-height: 1.1; gap: 6px; }
.tariff-amount strong { font-family: 'Roboto Slab', serif; font-size: 40px; font-variant-numeric: tabular-nums; }
.tariff-amount > span { font-size: 13px; }
.tariff-choose { padding: 12px 0; text-underline-offset: 5px; font-size: 15px; font-weight: 700; }
.tariff-choose span { display: inline-block; transition: transform .18s; }
.tariff-choose:hover span { transform: translateX(4px); }
.tariff-included { background: var(--parchment); padding: 36px; border-left: 3px solid var(--copper); }
.tariff-included ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; }
.tariff-included li { display: flex; gap: 14px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid rgb(21 70 49 / .16); font-size: 16px; }
.tariff-included li > span { color: var(--forest); font-weight: 700; }
.tariff-table { width: 100%; border-collapse: collapse; font-size: 16px; }
.tariff-table th, .tariff-table td { padding: 18px 20px; text-align: left; border-bottom: 1px solid var(--sage); vertical-align: top; }
.tariff-table thead { background: var(--forest); color: var(--cream); font-size: 13px; }
.tariff-table tbody th { width: 36%; font-weight: 700; }
.tariff-table tbody tr:nth-child(odd) { background: #fff; }
.tariff-table tbody tr:nth-child(even) { background: var(--parchment); }
.tariff-table td:last-child { font-size: 14px; width: 43%; }
.tariff-extra-price { white-space: nowrap; font-weight: 700; font-variant-numeric: tabular-nums; }
.tariff-extra-price span { font-size: 12px; font-weight: 400; }
.tariff-example { border-block: 2px solid var(--forest); padding: 30px 0; margin: 0 0 48px; display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.tariff-example h2 { margin: 0 0 12px; font-size: 25px; }
.tariff-example p { margin: 0; font-size: 16px; }
.tariff-example strong { display: block; margin-top: 8px; font-size: 27px; }
.tariff-terms { max-width: 85ch; margin-bottom: 56px; }
.tariff-terms h2 { font-size: 24px; }
.tariff-terms p { font-size: 16px; }
.tariff-final { border-top: 1px solid var(--sage); padding-top: 36px; }
.tariff-final h2 { margin-top: 0; font-size: 30px; }
.tariff-final p { font-size: 16px; max-width: 65ch; }
/* About: a woodland poster, oversized editorial type and asymmetric chapters. */
.about-main { overflow: clip; }
.about-main > .container { width: 100%; max-width: none; padding: 0; }
.about-main .breadcrumbs, .about-main .page-heading { margin-inline: max(24px, calc((100% - 1240px) / 2)); }
.about-main .page-heading { border: 0; padding-bottom: 0; margin-bottom: 24px; }
.about-main .page-heading h1 { font-family: Lato, sans-serif; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.about-page { color: var(--forest); --about-gutter: max(24px, calc((100% - 1240px) / 2)); }
.about-page figure { margin: 0; }
.about-eyebrow { font-family: Lato, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 24px; }
.about-opening { position: relative; isolation: isolate; display: flex; align-items: end; min-height: 660px; min-height: clamp(600px, 78svh, 820px); padding: 72px var(--about-gutter); color: var(--cream); background: var(--charcoal); }
.about-opening::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(0 0 0 / .62), rgb(0 0 0 / .04) 90%), linear-gradient(0deg, rgb(0 0 0 / .46), transparent 70%); }
.about-opening figure { position: absolute; z-index: -2; inset: 0; }
.about-opening figure img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 64%; }
.about-opening figcaption { position: absolute; right: 24px; bottom: 20px; font-size: 11px; color: var(--cream); }
.about-opening-copy { max-width: 900px; animation: about-arrive .7s ease-out both; }
.about-opening h2 { margin: 0 0 30px; font-size: clamp(54px, 7.5vw, 112px); line-height: .99; letter-spacing: -.045em; max-width: 12ch; color: inherit; text-wrap: balance; }
.about-lead { font-size: 19px; line-height: 1.6; max-width: 43ch; margin: 0 0 26px; }
.about-opening .inline-link { color: inherit; font-size: 14px; }
.about-story { display: grid; grid-template-columns: 1.15fr 1fr; gap: 22px 90px; padding: 110px var(--about-gutter); scroll-margin-top: 130px; }
.about-story > div { display: contents; }
.about-story > .about-eyebrow { grid-column: 1 / -1; margin-bottom: 16px; }
.about-story h2 { grid-column: 1; grid-row: 2 / 4; margin: 0; font-size: clamp(38px, 4.5vw, 66px); line-height: 1.08; letter-spacing: -.035em; max-width: 14ch; }
.about-story p:not(.about-eyebrow) { grid-column: 2; margin: 0; font-size: 18px; line-height: 1.8; }
.about-hosts { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 100px; padding: 44px var(--about-gutter) 110px; }
.about-hosts figure { position: relative; width: min(100%, 430px); margin: 0 0 0 18px; transform: rotate(-3deg); }
.about-hosts figure::before { content: ''; position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--copper); z-index: -1; }
.about-hosts figure img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 25%; border: 10px solid #fff; }
.about-hosts h2 { margin: 0 0 24px; font-size: clamp(32px, 4vw, 54px); line-height: 1.1; letter-spacing: -.025em; }
.about-host-names { font-size: 13px; font-weight: 700; border-left: 2px solid var(--copper); padding-left: 16px; margin: 0 0 28px; }
.about-hosts-copy > p:not(.about-eyebrow):not(.about-host-names) { font-size: 17px; line-height: 1.75; }
.about-hosts-copy .btn { margin-top: 16px; }
.about-social { display: grid; grid-template-columns: 1.15fr 1fr; gap: 90px; background: var(--forest); color: var(--cream); padding: 100px var(--about-gutter); position: relative; }
.about-social > div:first-child { position: sticky; top: 150px; align-self: start; }
.about-social .about-eyebrow { color: var(--parchment); }
.about-social h2 { font-size: clamp(42px, 5.7vw, 82px); line-height: 1.02; letter-spacing: -.04em; max-width: 12ch; margin: 0; color: inherit; }
.about-social p:not(.about-eyebrow) { font-size: 20px; line-height: 1.75; }
.about-social > div:last-child { border-top: 1px solid var(--sage); padding-top: 24px; margin-top: 46px; }
.about-social > div:last-child p:first-child { margin-top: 0; }
.about-social > div:last-child p:last-child { margin-bottom: 0; }
.about-values { padding: 90px var(--about-gutter) 110px; background: var(--parchment); }
.about-values ul { list-style: none; margin: 0; padding: 0; }
.about-values li { display: grid; grid-template-columns: 100px 1fr; gap: 32px; border-top: 1px solid rgb(21 70 49 / .3); padding: 32px 0; }
.about-values li:last-child { border-bottom: 1px solid rgb(21 70 49 / .3); }
.about-values li > span { font-family: 'Roboto Slab', serif; font-size: 54px; line-height: 1; color: var(--copper); }
.about-values li > div { display: grid; grid-template-columns: 1.2fr 1fr; gap: 70px; align-items: center; }
.about-values h3 { font-size: clamp(26px, 3vw, 42px); line-height: 1.12; letter-spacing: -.025em; margin: 0; }
.about-values p { font-size: 17px; line-height: 1.7; margin: 0; }
.about-explore { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 74px; padding: 100px var(--about-gutter); }
.about-explore img { width: 100%; height: 490px; object-fit: cover; }
.about-explore > div { margin-left: -135px; background: var(--cream); padding: 44px 0 44px 44px; position: relative; }
.about-explore h2 { font-size: clamp(34px, 4vw, 56px); line-height: 1.1; letter-spacing: -.03em; margin: 0 0 24px; }
.about-explore p { font-size: 17px; line-height: 1.75; margin-bottom: 28px; }
.about-closing { padding: 0 var(--about-gutter) 50px; }
.about-closing h2 { border-top: 2px solid var(--forest); padding-top: 60px; font-size: clamp(40px, 6vw, 88px); line-height: 1.06; letter-spacing: -.04em; margin: 0 0 28px; text-wrap: balance; }
.about-closing > p { font-size: 19px; line-height: 1.7; max-width: 60ch; margin-bottom: 28px; }
.about-page .inline-link span { display: inline-block; transition: transform .2s ease; }
.about-page .inline-link:hover span { transform: translateX(5px); }
@keyframes about-arrive { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 1000px) {
 .about-story, .about-social { column-gap: 40px; }
 .about-hosts { gap: 50px; }
 .about-hosts figure { width: calc(100% - 24px); }
 .about-values li > div { gap: 32px; }
 .about-explore { gap: 36px; }
 .about-explore > div { margin-left: -80px; padding-left: 28px; }
}
@media (max-width: 760px) {
 .about-main { padding-top: 22px; }
 .about-main .breadcrumbs { margin-bottom: 12px; font-size: 14px; }
 .about-main .page-heading { margin-bottom: 18px; }
 .about-page { --about-gutter: 24px; }
 .about-opening { align-items: flex-start; min-height: clamp(460px, calc(100svh - 260px), 620px); padding-block: 34px; }
 .about-opening-copy { width: 100%; max-width: 520px; }
 .about-opening .about-eyebrow { font-size: 11px; line-height: 1.5; letter-spacing: .12em; margin-bottom: 24px; }
 .about-opening h2 { font-size: clamp(36px, 10.7vw, 44px); line-height: 1.09; letter-spacing: -.04em; max-width: none; margin-bottom: 22px; }
 .about-opening::after { background: linear-gradient(180deg, rgb(0 0 0 / .72), rgb(0 0 0 / .54) 42%, rgb(0 0 0 / .18) 72%, rgb(0 0 0 / .06)); }
 .about-opening figure img { object-position: 60% center; }
 .about-opening figcaption { font-size: 10px; right: 24px; bottom: 14px; }
 .about-lead { font-size: 16px; line-height: 1.55; max-width: 32ch; margin-bottom: 24px; text-wrap: pretty; }
 .about-opening .inline-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14px; text-decoration: none; }
 .about-opening .inline-link span { font-size: 20px; line-height: 1; }
 .about-opening .inline-link:hover span { transform: translateY(5px); }
 .about-story { display: block; padding-block: 58px; }
 .about-story h2 { max-width: 18ch; margin-bottom: 28px; }
 .about-story p:not(.about-eyebrow) { margin-top: 20px; font-size: 17px; }
 .about-hosts { grid-template-columns: 1fr; gap: 46px; padding-block: 10px 64px; }
 .about-hosts figure { width: min(85%, 360px); margin-left: 16px; }
 .about-hosts h2 { max-width: 20ch; }
 .about-social { grid-template-columns: 1fr; gap: 30px; padding-block: 58px; }
 .about-social > div:first-child { position: static; }
 .about-social h2 { max-width: 14ch; }
 .about-social > div:last-child { margin-top: 0; }
 .about-social p:not(.about-eyebrow) { font-size: 18px; }
 .about-values { padding-block: 54px; }
 .about-values li { grid-template-columns: 46px 1fr; gap: 18px; padding-block: 26px; }
 .about-values li > span { font-size: 35px; }
 .about-values li > div { display: block; }
 .about-values h3 { margin-bottom: 15px; }
 .about-values p { font-size: 16px; }
 .about-explore { grid-template-columns: 1fr; gap: 0; padding-block: 58px; }
 .about-explore img { height: 330px; }
 .about-explore > div { margin: -48px 0 0 24px; padding: 28px 0 0 24px; }
 .about-explore h2 { font-size: 34px; }
 .about-closing { padding-bottom: 0; }
 .about-closing h2 { padding-top: 40px; }
 .about-closing > p { font-size: 17px; }
}
@media (max-width: 540px) and (max-height: 740px) {
 .about-opening { min-height: 440px; padding-block: 24px; }
 .about-opening .about-eyebrow { margin-bottom: 18px; }
 .about-opening h2 { font-size: 34px; margin-bottom: 16px; }
 .about-lead { margin-bottom: 18px; }
}
@media (max-width: 540px) and (max-height: 620px) {
 .about-opening { min-height: 380px; padding-block: 20px; }
 .about-opening .about-eyebrow { margin-bottom: 16px; }
 .about-opening h2 { font-size: 30px; }
 .about-lead { font-size: 15px; line-height: 1.5; max-width: none; margin-bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
 .about-opening-copy { animation: none; }
 .about-page .inline-link span { transition: none; }
}
@media (max-width: 1000px) {
  .tariff-package { grid-template-columns: 48px minmax(0, 1fr) 130px; gap: 18px; }
  .tariff-choose { grid-column: 2 / -1; justify-self: start; padding: 0; }
  .tariff-icon { width: 42px; height: 42px; }
  .tariff-intro { gap: 30px; }
}
@media (max-width: 600px) {
  .tariff-intro { grid-template-columns: 1fr; gap: 24px; margin-bottom: 42px; }
  .tariff-intro img { height: 180px; }
  .tariff-section { margin-bottom: 42px; }
  .tariff-section-heading { grid-template-columns: 28px 1fr; gap: 10px; }
  .tariff-package { grid-template-columns: 40px minmax(0, 1fr); gap: 12px 16px; padding: 22px 16px; }
  .tariff-package h3 { font-size: 21px; }
  .tariff-package-copy p { font-size: 14px; }
  .tariff-amount { grid-column: 2; display: flex; align-items: baseline; gap: 10px; }
  .tariff-amount strong { font-size: 32px; }
  .tariff-choose { grid-column: 2; padding: 8px 0; }
  .tariff-included { padding: 24px 18px; }
  .tariff-included ul { grid-template-columns: 1fr; }
  .tariff-table th, .tariff-table td { padding: 14px 9px; overflow-wrap: anywhere; }
  .tariff-table { font-size: 14px; }
  .tariff-table td:last-child { font-size: 12px; width: 37%; }
  .tariff-table thead { font-size: 11px; }
  .tariff-example { grid-template-columns: 1fr; gap: 22px; }
  .tariff-final .section-actions { align-items: stretch; flex-direction: column; }
}

/* A quiet detour: the same landscape, palette and way home. */
.error-layout { display: grid; grid-template-columns: 1.08fr 1fr; min-height: 660px; }
.error-copy { padding: clamp(40px, 5vw, 76px) var(--gutter); align-self: center; }
.error-copy .eyebrow { color: var(--forest); margin-bottom: 24px; }
.error-code { font: 700 clamp(88px, 10vw, 152px)/.95 var(--display); letter-spacing: -.07em; color: var(--copper); margin-bottom: 26px; }
.error-code span { font-size: .65em; color: var(--sage); padding-left: 10px; }
.error-page h1 { font-size: clamp(32px, 3.4vw, 52px); line-height: 1.12; color: var(--forest); margin-bottom: 24px; }
.error-description { max-width: 43ch; margin-bottom: 28px; }
.error-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; }
.error-actions .btn { background: var(--forest); color: var(--cream); }
.error-actions .btn span { display: inline-block; margin-left: 16px; transition: transform .2s ease; }
.error-actions .btn:hover span { transform: translateX(5px); }
.error-languages { display: flex; flex-wrap: wrap; gap: 8px 20px; border-top: 1px solid var(--sage); padding-top: 20px; margin-top: 40px; font-size: 14px; }
.error-languages > span { width: 100%; color: var(--forest); }
.error-languages a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 5px; }
.error-landscape { margin: 0; position: relative; background: var(--parchment); overflow: hidden; }
.error-landscape img { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 55% center; }
.error-landscape figcaption { position: absolute; bottom: 28px; left: 28px; right: 28px; padding: 12px 18px; background: var(--cream); color: var(--forest); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
@media (max-width: 760px) {
  .error-layout { grid-template-columns: 1fr; min-height: 0; }
  .error-copy { padding-block: 40px 28px; }
  .error-copy .eyebrow { font-size: 11px; }
  .error-code { font-size: 92px; margin-bottom: 22px; }
  .error-page h1 { font-size: clamp(30px, 7.5vw, 48px); }
  .error-description { font-size: 16px; }
  .error-languages { margin-top: 28px; }
  .error-landscape { height: 260px; }
  .error-landscape figcaption { bottom: 18px; left: var(--gutter); right: var(--gutter); }
}
@media (prefers-reduced-motion: reduce) { .error-actions .btn span { transition: none; } }
.inquiry-memory { border-top: 1px solid var(--sage); padding-top: 18px; }
.inquiry-form .remember-choice { display: flex; flex-direction: row; align-items: flex-start; gap: 10px; font-size: 15px; font-weight: 700; cursor: pointer; }
.inquiry-form .remember-choice input { flex: 0 0 18px; width: 18px; height: 18px; min-height: 18px; padding: 0; margin: 3px 0 0; appearance: auto; accent-color: var(--forest); }
.inquiry-memory .memory-status { font-size: 13px; margin: 6px 0 0; }
.inquiry-memory .memory-status:empty { display: none; }

.booking-number .booking-whatsapp-icon { width: .95em; height: .95em; flex-shrink: 0; }

.stay-summary:empty { display: none; }

/* Direct chat stays easy to reach, including beside the mobile menu. */
.header-whatsapp { gap: 8px; min-height: 48px; padding: 10px 14px; font-size: 15px; white-space: nowrap; }
.header-whatsapp .site-icon { width: 21px; height: 21px; }
.mobile-whatsapp { display: flex; gap: 10px; margin-top: 16px; }
@media (min-width: 1191px) and (max-width: 1390px) {
  .header-whatsapp { width: 44px; padding: 10px; }
  .header-whatsapp .header-whatsapp-label { display: none; }
  .desktop-nav { gap: 12px; }
  .header-inner { gap: 16px; }
}
@media (max-width: 480px) {
  .header-whatsapp { width: 44px; min-height: 44px; padding: 10px; }
  .header-whatsapp .header-whatsapp-label { display: none; }
}

/* Prices first: compact rows, descriptive headings and restrained typography. */
.tariffs .tariff-section { margin-bottom: 32px; }
.tariffs .tariff-section-heading { display: block; margin-bottom: 14px; }
.tariffs .tariff-section-heading h2 { font-size: 23px; margin-bottom: 8px; }
.tariffs .tariff-section-heading p { font-size: 14px; max-width: 92ch; }
.tariffs .tariff-package { grid-template-columns: 38px minmax(0,1fr) 130px 145px; gap: 16px; padding: 15px 16px; }
.tariffs .tariff-icon { width: 32px; height: 32px; }
.tariffs .tariff-package h3 { font: 700 18px/1.3 var(--font); margin-bottom: 5px; }
.tariffs .tariff-package-copy p { font-size: 14px; }
.tariffs .tariff-amount strong { font-size: 28px; }
.tariffs .tariff-choose { font-size: 14px; padding: 8px 0; }
.tariffs .tariff-included { background: transparent; border-left: 0; padding: 0; }
.tariffs .tariff-included li { padding: 8px 0; font-size: 14px; }
.tariffs .tariff-table th, .tariffs .tariff-table td { padding: 11px 14px; }
.tariffs .tariff-table { font-size: 14px; }
.tariffs .tariff-terms { margin-bottom: 28px; }
.tariffs .tariff-terms h2, .tariffs .tariff-final h2 { font-size: 23px; margin-bottom: 12px; }
.tariffs .tariff-final { padding-top: 24px; }
@media (max-width: 1000px) {
  .tariffs .tariff-package { grid-template-columns: 32px minmax(0,1fr) 120px; gap: 10px 14px; }
  .tariffs .tariff-choose { grid-column: 2 / -1; padding: 0; }
}
@media (max-width: 600px) {
  .tariffs .tariff-package { grid-template-columns: 28px minmax(0,1fr); padding: 14px 10px; }
  .tariffs .tariff-icon { width: 26px; height: 26px; }
  .tariffs .tariff-amount { grid-column: 2; }
  .tariffs .tariff-amount strong { font-size: 25px; }
  .tariffs .tariff-table th, .tariffs .tariff-table td { padding: 10px 7px; }
}

body[data-page="rates"] .inner-main { padding-top: 28px; }
body[data-page="rates"] .breadcrumbs { margin-bottom: 16px; font-size: 14px; }
body[data-page="rates"] .page-heading { margin-bottom: 24px; }
body[data-page="rates"] .page-heading h1 { font-size: clamp(32px,3vw,44px); margin-bottom: 16px; }

.booking-package { margin: 0 0 24px; padding: 18px; background: var(--cream); border-left: 3px solid var(--copper); }
.booking-package[hidden] { display: none; }
.booking-package .package-label { font-size: 12px; font-weight: 700; color: var(--forest); margin: 0 0 8px; }
.booking-package .package-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; }
.booking-package h3 { font: 700 20px/1.3 var(--display); color: var(--forest); margin: 0; }
.booking-package .package-heading p { margin: 0; font-size: 14px; white-space: nowrap; }
.booking-package .package-heading strong { font-size: 22px; color: var(--forest); }
.booking-package #package-detail { margin: 10px 0 0; font-size: 14px; }
.booking-package .package-note { margin: 8px 0 0; font-size: 12px; }
/* Inquiry extras: one disclosure, followed by a transparent stay estimate. */
.booking-extras { border: 1px solid var(--sage); background: var(--cream); }
.booking-extras > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 76px; padding: 16px; color: var(--forest); cursor: pointer; list-style: none; }
.booking-extras > summary::-webkit-details-marker { display: none; }
.booking-extras > summary::after { content: "+"; display: grid; place-items: center; flex: 0 0 36px; height: 36px; border: 1px solid var(--sage); font-size: 24px; font-weight: 400; }
.booking-extras[open] > summary::after { content: "−"; }
.booking-extras > summary:hover::after { border-color: var(--forest); background: var(--parchment); }
.extras-summary-copy { flex: 1; min-width: 0; }
.extras-summary-copy strong { display: block; font-size: 16px; line-height: 1.35; }
.extras-summary-copy > span { display: block; margin-top: 4px; font-size: 12px; font-weight: 400; line-height: 1.5; color: var(--charcoal); }
.extras-selection { font-size: 12px; font-weight: 700; white-space: nowrap; }
.extras-selection[hidden], .extras-included[hidden] { display: none; }
.booking-extras-body { padding: 0 16px 8px; }
.extras-group { padding: 20px 0 8px; border-top: 1px solid var(--sage); }
.extras-group-heading { margin-bottom: 12px; }
.extras-group-heading h3 { margin: 0 0 6px; color: var(--forest); font: 700 14px/1.4 var(--font); }
.extras-group-heading p { margin: 0; font-size: 12px; line-height: 1.55; }
.extras-included { display: flex; align-items: baseline; gap: 8px; margin: 0 0 8px; color: var(--forest); font-size: 12px; line-height: 1.55; }
.inquiry-form .booking-extra-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 10px; border-left: 2px solid transparent; border-bottom: 1px solid var(--parchment); }
.inquiry-form .booking-extra-row[hidden] { display: none; }
.inquiry-form .booking-extra-row:last-child { border-bottom: 0; }
.inquiry-form .booking-extra-row.is-selected { border-left-color: var(--copper); background: var(--parchment); }
.inquiry-form .booking-extra-copy { min-width: 0; margin: 0; gap: 0; font-size: 14px; line-height: 1.45; cursor: pointer; }
.booking-extra-copy small { display: block; margin-top: 5px; font-size: 12px; line-height: 1.5; font-weight: 400; }
.extra-quantity { display: flex; align-items: stretch; width: 124px; }
.extra-quantity button { display: none; }
.inquiry-form .extra-quantity input[type="number"] { width: 76px; min-width: 0; min-height: 44px; padding: 6px; text-align: center; color: var(--forest); font-weight: 700; }
.extra-quantity.is-enhanced button { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 1px solid var(--sage); border-radius: 0; background: var(--cream); color: var(--forest); font: 400 22px/1 var(--font); cursor: pointer; }
.extra-quantity.is-enhanced button:hover:not(:disabled) { background: var(--forest); border-color: var(--forest); color: var(--cream); }
.extra-quantity.is-enhanced button:disabled { opacity: .4; cursor: default; }
.inquiry-form .extra-quantity.is-enhanced input[type="number"] { flex: 1 1 36px; width: 36px; padding-inline: 0; border: 1px solid var(--sage); border-inline: 0; border-radius: 0; background: var(--cream); appearance: textfield; -moz-appearance: textfield; }
.extra-quantity.is-enhanced input::-webkit-inner-spin-button, .extra-quantity.is-enhanced input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.inquiry-form .booking-extra-row input[type="checkbox"] { justify-self: end; width: 24px; height: 24px; min-height: 24px; margin: 10px; padding: 0; appearance: auto; accent-color: var(--forest); }
.booking-extras .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 460px) {
  .booking-extras > summary { flex-wrap: wrap; padding: 14px 12px; gap: 8px; }
  .extras-summary-copy { flex-basis: calc(100% - 48px); }
  .booking-extras > summary::after { order: 1; }
  .extras-selection { order: 2; flex-basis: 100%; }
  .booking-extras-body { padding-inline: 12px; }
  .inquiry-form .booking-extra-row { column-gap: 10px; row-gap: 6px; padding: 12px 8px; }
  .inquiry-form .booking-extra-copy { display: contents; }
  .booking-extra-copy > span { grid-column: 1 / -1; font-size: 14px; font-weight: 700; }
  .booking-extra-copy > small { grid-column: 1; margin-top: 0; }
  .booking-extra-row > .extra-quantity, .booking-extra-row > input { grid-column: 2; grid-row: 2; }
}
@media (max-width: 380px) {
  .booking-extra-copy > small { grid-column: 1 / -1; }
  .booking-extra-row > .extra-quantity, .booking-extra-row > input { grid-column: 1 / -1; grid-row: 3; justify-self: end; }
}
@media (prefers-reduced-motion: no-preference) {
  .extra-quantity button, .booking-extras > summary::after { transition: background-color .15s, color .15s, border-color .15s; }
}
.booking-estimate { min-width: 0; padding: 18px; background: var(--cream); border-left: 3px solid var(--copper); }
.booking-estimate h3 { font: 700 20px/1.3 var(--display); margin: 0 0 12px; color: var(--forest); }
.booking-estimate #estimate-prompt { font-size: 14px; margin: 0; }
.booking-estimate ul { list-style: none; padding: 0; margin: 0; }
.booking-estimate li { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-block: 7px; font-size: 14px; line-height: 1.5; }
.booking-estimate li > span:last-child { white-space: nowrap; }
.booking-estimate .estimate-total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border-top: 1px solid var(--sage); padding-top: 14px; margin: 12px 0 0; color: var(--forest); font-weight: 700; }
.booking-estimate .estimate-total strong { font-size: 23px; white-space: nowrap; }
.booking-estimate .estimate-note { font-size: 12px; line-height: 1.5; margin: 12px 0 0; }
@media (max-width: 400px) {
  .booking-estimate { padding: 12px; }
  .booking-estimate li { flex-wrap: wrap; gap: 2px 12px; }
  .booking-estimate .estimate-total { flex-wrap: wrap; }
}
.privacy-page .privacy-lead { font-size: 20px; line-height: 1.6; max-width: 70ch; margin-bottom: 36px; }
.privacy-providers, .privacy-retention { list-style: none; padding: 0; margin: 24px 0 0; }
.privacy-providers > li, .privacy-retention > li { border-top: 1px solid var(--sage); padding: 20px 0; }
.privacy-providers h3, .privacy-retention h3 { font-size: 18px; line-height: 1.4; margin: 0 0 10px; }
.privacy-page .privacy-providers p, .privacy-page .privacy-retention p { font-size: 16px; margin: 0 0 12px; }
.privacy-retention > li { display: grid; grid-template-columns: 1fr 1.5fr; gap: 24px; }
@media (max-width: 600px) { .privacy-retention > li { grid-template-columns: 1fr; gap: 4px; } }

.stay-rules{padding-left:1.4em}.stay-rules li{padding-left:.35em;margin-bottom:1.2em;line-height:1.7;overflow-wrap:anywhere}.stay-rules{scroll-margin-top:140px}

.legal-page .readable-sections{grid-template-columns:minmax(0,1fr)}.legal-page .readable-sections section{min-width:0;overflow-wrap:anywhere}

.camping-rules{margin-top:64px;padding-top:32px;border-top:2px solid var(--forest);max-width:900px;scroll-margin-top:120px}.camping-rules h2{color:var(--forest);margin-bottom:28px}.camping-rules .stay-rules{font-size:18px}.camping-rules .stay-rules li{border-top:1px solid var(--sage);padding:18px 0 18px 8px;margin:0}.camping-rules>p{font-size:18px;line-height:1.7}

.camping-page-links{display:flex;flex-wrap:wrap;gap:16px 28px;margin-bottom:32px}.camping-faq{max-width:900px;margin-top:64px;padding-top:32px;border-top:2px solid var(--forest);scroll-margin-top:120px}.camping-faq h2{color:var(--forest);margin-bottom:28px}.camping-faq .faq-list{width:100%}.camping-faq .faq-list summary{overflow-wrap:anywhere}

.tariff-table .tariff-extra-price .tariff-price-request{display:inline-block;max-width:10ch;font-size:15px;line-height:1.35;white-space:normal;color:var(--forest)}

.site-icon.facility-icon{width:46px;height:46px}@media(max-width:540px){.site-icon.facility-icon{width:42px;height:42px}}

/* Mobile inquiry: start with the task; keep contact alternatives afterwards. */
.booking-fields { grid-column: 2; grid-row: 1; min-width: 0; }
.booking-alternatives { grid-column: 1; grid-row: 1; min-width: 0; }
.guest-field { display: grid; gap: 9px; align-content: start; min-width: 0; }
.guest-stepper { display: flex; align-items: stretch; min-width: 0; }
.guest-stepper button { display: none; }
.guest-stepper.is-enhanced button { display: inline-flex; flex: 0 0 46px; align-items: center; justify-content: center; min-height: 48px; padding: 0; border: 1px solid var(--forest); border-radius: 0; background: var(--cream); color: var(--forest); font: 400 24px/1 var(--font); cursor: pointer; }
.guest-stepper.is-enhanced button:hover:not(:disabled) { background: var(--parchment); }
.guest-stepper.is-enhanced button:disabled { opacity: .45; cursor: default; }
.guest-stepper.is-enhanced input { flex: 1 1 0; min-width: 0; text-align: center; border-inline: 0; padding-inline: 4px; appearance: textfield; -moz-appearance: textfield; }
.guest-stepper.is-enhanced input::-webkit-inner-spin-button, .guest-stepper.is-enhanced input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
@media (max-width: 760px) {
  .booking-fields { grid-column: 1; grid-row: 1; }
  .booking-alternatives { grid-column: 1; grid-row: 2; }
  body[data-page="availability"] .inner-main { padding-top: 22px; }
  body[data-page="availability"] .breadcrumbs { margin-bottom: 12px; font-size: 14px; }
  body[data-page="availability"] .page-heading { margin-bottom: 22px; }
  body[data-page="availability"] .page-heading h1 { font-size: 32px; margin-bottom: 16px; }
  .booking-fields .inquiry-form { padding: 18px; }
  .booking-fields .inquiry-form fieldset { gap: 16px; }
  .booking-fields .inquiry-form legend { font-size: 22px; margin-bottom: 16px; }
  .booking-package { padding: 12px; margin-bottom: 0; }
  .booking-package h3 { font-size: 18px; }
  .booking-package #package-detail { margin-top: 8px; font-size: 13px; }
  .booking-package .package-note { margin-top: 6px; line-height: 1.4; }
  .booking-alternatives .content-lead { font-size: 17px; }
  .booking-alternatives .booking-contact { padding-top: 18px; margin-bottom: 16px; }
  .site-footer { padding-top: 30px; }
  .site-footer .footer-main { grid-template-columns: 1fr; gap: 24px; padding-bottom: 24px; }
  .footer-identity { display: flex; align-items: center; gap: 18px; }
  .footer-identity .footer-brand img { width: 64px; }
  .footer-identity .footer-tagline { font-size: 18px; line-height: 1.4; margin: 0; max-width: 20ch; }
  .site-footer nav.footer-column { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; }
  .site-footer nav.footer-column h2 { grid-column: 1 / -1; margin-bottom: 8px; }
  .site-footer .footer-link { min-height: 44px; display: flex; align-items: center; font-size: 14px; }
  .site-footer .footer-contacts { gap: 6px; }
  .site-footer .footer-contacts h2 { margin-bottom: 8px; }
  .site-footer .footer-contacts > p { font-size: 14px; margin: 4px 0; }
  .site-footer .footer-contacts > a { min-height: 44px; display: inline-flex; align-items: center; font-size: 14px; }
  .site-footer .footer-contacts .footer-phone { font-size: 18px; }
  .site-footer .footer-contacts .btn { margin-top: 6px; }
  .site-footer .footer-disclosures { padding-block: 22px; gap: 22px; }
  .site-footer .footer-bottom { padding-block: 18px; gap: 10px; }
  .site-footer .footer-bottom nav { gap: 0 16px; }
  .site-footer .footer-bottom .legal-link { display: inline-flex; align-items: center; min-height: 44px; }
}
