html { -webkit-font-smoothing: antialiased; }
body { margin: 0; background: #f5f2eb; color: #1f1e1b; font-family: Figtree, system-ui, sans-serif; }
* { box-sizing: border-box; }
a { color: #1d6b5a; text-decoration: none; }
a:hover { color: #1f1e1b; text-decoration: underline; text-underline-offset: 3px; }
[data-media-link]:hover h2 { text-decoration: underline; }
[data-sublink]:hover { text-decoration: underline; }
[data-media-link]:hover [data-cta] { border-color: #1f1e1b; text-decoration: underline; }
h1, h2, h3, p, figure { margin: 0; }
[data-lang]:hover { text-decoration: underline; text-underline-offset: 3px; }
[data-lang][data-active="true"]:hover { text-decoration: none; }
a[aria-expanded="true"] [data-chev] { transform: rotate(180deg); }
table { border-collapse: collapse; }
[data-row] { cursor: pointer; }
[data-row]:hover { background: #f5f2eb; }
[data-row]:hover [data-cta] { background: #1d5c4d !important; border-color: #1d5c4d !important; color: #f5f2eb !important; text-decoration: underline; text-underline-offset: 3px; }
[data-row]:hover [data-cta][data-full] { background: transparent !important; border-color: #1f1e1b !important; color: #1f1e1b !important; }
[data-own-group]:hover > div > div:first-child { text-decoration: underline; }
[data-own-group]:hover { border-color: #1f1e1b; color: #1f1e1b; text-decoration: none; }
[data-card] > [data-card-link] { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
[data-card] > [data-sublink] { position: relative; z-index: 2; }
[data-card]:hover :is(h3, p),
[data-card]:hover > div { text-decoration: underline; text-underline-offset: 3px; }
[data-card]:has([data-sublink]:hover) :is(h3, p),
[data-card]:has([data-sublink]:hover) > div { text-decoration: none; }
button { font-family: inherit; }

.page { max-width: 100%; overflow-x: hidden; }
.wrap { max-width: 1240px; margin: 0 auto; padding-left: 32px; padding-right: 32px; }

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: #f5f2eb;
}
.site-header--home {
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s;
  transform: translateZ(0);
  backface-visibility: hidden;
}
.header-bar {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 32px;
  height: 68px;
  display: flex;
  align-items: center;
  gap: 40px;
}
.brand {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: none;
  color: #1f1e1b;
}
.brand--home { gap: 0; }
.brand-name {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
}
.tagline {
  display: block;
  font-size: 12px;
  color: #7d7a72;
  line-height: 16px;
}
.brand--home .tagline {
  overflow: hidden;
  transition: max-height 0.35s ease, opacity 0.25s ease, margin-top 0.35s ease;
  max-height: 16px;
  margin-top: 2px;
  opacity: 1;
}
.site-header--home[data-scrolled] .tagline {
  max-height: 0;
  margin-top: 0;
  opacity: 0;
}

.nav {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  font-weight: 400;
}
.nav-item { position: relative; }
.nav-link {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 9px 12px;
  border-radius: 999px;
  white-space: nowrap;
  color: #1f1e1b;
  background: transparent;
}
.nav-link[aria-expanded="true"],
.nav-link.is-active { background: #ece8de; }
.nav-link [data-chev] { margin-left: 1px; flex: none; transition: transform 0.3s ease; }

.menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 290px;
  background: #fff;
  border: 1px solid #e3ded3;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.09);
  padding: 8px;
  border-radius: 16px;
  display: none;
}
.menu.is-open { display: block; }
.menu a {
  display: block;
  padding: 11px 14px;
  color: #1f1e1b;
  font-size: 13.5px;
  border-radius: 10px;
}
.menu a:hover { background: #ece8de; color: #1f1e1b; }
.menu a.is-current { background: #f5f2eb; }

.burger {
  display: none;
  align-items: center;
  gap: 9px;
  margin-right: 0;
  padding: 10px 14px;
  background: transparent;
  border: 1px solid #d8d6d1;
  border-radius: 999px;
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #1f1e1b;
  cursor: pointer;
}
.burger-icon { display: flex; flex-direction: column; gap: 3px; }
.burger-icon span { width: 15px; height: 1.5px; background: #1f1e1b; }

.lang {
  display: flex;
  gap: 2px;
  margin: 0 8px 0 6px;
  font-size: 13px;
  font-weight: 600;
}
.lang-btn {
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  padding: 6px 9px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  background: transparent;
  color: #7d7a72;
}
.lang-btn[data-active="true"] { background: #e3ded3; color: #1f1e1b; }

.mobile-panel {
  display: none;
  border-top: 1px solid #e3ded3;
  background: #f5f2eb;
  max-height: calc(100vh - 68px);
  overflow-y: auto;
}
.mobile-panel.is-open { display: block; }
.mobile-panel-inner { max-width: 1240px; margin: 0 auto; padding: 8px 32px 28px; }
.mobile-label {
  font-weight: 600;
  font-size: 9.5px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #7d7a72;
  padding: 14px 0 10px;
  border-bottom: 1px solid #e3ded3;
}
.mobile-label--next { padding-top: 22px; }
.mobile-links { display: flex; flex-direction: column; }
.mobile-links--split { margin-top: 22px; padding-top: 10px; border-top: 1px solid #e3ded3; }
.mobile-link {
  padding: 13px 0;
  border-bottom: 1px solid #ebe6db;
  color: #1f1e1b;
  font-size: 15px;
}
.mobile-link:hover { color: #1f1e1b; }
.mobile-link--strong { font-weight: 600; }
.mobile-link--last { border-bottom: none; }

.btn-book {
  padding: 12px 22px;
  background: #1d5c4d;
  color: #f5f2eb;
  border-radius: 999px;
  font-weight: 500;
  font-size: 15px;
  white-space: nowrap;
}
a.btn-book:hover { background: #1f1e1b; color: #f5f2eb; }

.btn {
  display: inline-block;
  padding: 15px 26px;
  background: #1f1e1b;
  color: #f5f2eb;
  font-size: 15px;
  font-weight: 600;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}
a.btn:hover,
button.btn:hover { background: #1d5c4d; color: #f5f2eb; }
button.btn-send:hover { text-decoration: underline; text-underline-offset: 3px; }

.btn-outline {
  display: inline-block;
  padding: 15px 26px;
  border: 1px solid #cbc4b5;
  color: #1f1e1b;
  font-size: 15px;
  font-weight: 600;
  border-radius: 10px;
  background: transparent;
}
a.btn-outline:hover { border-color: #1f1e1b; color: #1f1e1b; }

.btn-pill {
  padding: 14px 26px;
  background: #1f1e1b;
  color: #f5f2eb;
  border: none;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s;
}
button.btn-pill:hover {
  background: #1d5c4d;
  color: #f5f2eb;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.card {
  background: #fdfcf8;
  border: 1px solid #e3ded3;
  border-radius: 20px;
}
.panel { border-radius: 20px; }
.panel-green { background: #e6efe9; }

.faq-item { padding: 22px 0; border-bottom: 1px solid #e3ded3; }
.faq-item h3 {
  font-weight: 600;
  font-size: 18px;
  letter-spacing: -0.01em;
  margin-bottom: 8px;
}
.faq-item p {
  font-family: Newsreader, Georgia, serif;
  font-weight: 500;
  font-size: 17.5px;
  line-height: 1.45;
  color: #3b3935;
}

a.link-quiet {
  color: #1f1e1b;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: #bfb9ab;
}
a.link-quiet:hover { color: #1f1e1b; text-decoration-color: #1f1e1b; }

.field,
.field-home,
.field-news,
.field-pill {
  width: 100%;
  border: 1px solid #d8d6d1;
  color: #1f1e1b;
  outline: none;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.field {
  font: inherit;
  font-weight: 400;
  font-size: 15px;
  padding: 13px 16px;
  border-radius: 10px;
  background: #fdfcf8;
}
.field:hover { border-color: #1d6b5a; }
.field:focus {
  border-color: #1d6b5a;
  box-shadow: 0 0 0 3px rgba(29, 107, 90, 0.15);
  outline: none;
}
.field-tight { padding: 13px 14px; }
.field-tight:hover { background: #fdfcf8; }
.field-tight:focus { background: #fdfcf8; }
textarea.field { line-height: 1.5; resize: vertical; }

.field-home {
  padding: 13px 16px;
  border-radius: 12px;
  font-family: Figtree, system-ui, sans-serif;
  font-size: 14px;
  background: #f5f2eb;
}
textarea.field-home { line-height: 1.5; resize: vertical; }
select.field-home {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  color: #7d7a72;
}
select.field-home.has-value { color: #1f1e1b; }
.field-home:hover,
.field-pill:hover { border-color: #1d6b5a; background: #fdfcf8; }
.field-home:focus,
.field-pill:focus {
  border-color: #1d6b5a;
  background: #fdfcf8;
  box-shadow: 0 0 0 3px rgba(29, 107, 90, 0.15);
  outline: none;
}

.field-pill {
  flex: 1;
  min-width: 200px;
  width: auto;
  padding: 13px 14px;
  border-radius: 999px;
  font-family: Figtree, system-ui, sans-serif;
  font-size: 14px;
  background: #f5f2eb;
}

.field-news {
  flex: 1 1 220px;
  width: auto;
  font: inherit;
  font-weight: 400;
  font-size: 15px;
  padding: 14px 16px;
  border-radius: 10px;
  background: #fdfcf8;
}
.field-news:focus { border-color: #1d6b5a; outline: none; }

.field-label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  color: #3b3935;
}

.site-footer {
  margin-top: 96px;
  background: #1f1e1b;
  color: #d8d7d4;
}
.site-footer-grid {
  max-width: 1240px;
  margin: 0 auto;
  padding: 60px 32px 40px;
  display: grid;
  grid-template-columns: 1fr 0.8fr 1.2fr;
  gap: 48px;
}
.footer-label {
  font-weight: 600;
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #82848a;
  margin-bottom: 18px;
}
.footer-venue {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.footer-venue p { font-size: 15px; line-height: 1.7; color: #f4f3f1; }
.footer-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 14px;
}
.footer-links a { color: #d8d7d4; }
.footer-links a:hover { color: #d8d7d4; }
.footer-company { font-size: 15px; line-height: 1.7; color: #f4f3f1; margin-bottom: 14px; }
.footer-address { font-size: 14px; line-height: 1.7; color: #d8d7d4; margin-bottom: 14px; }
.footer-note { color: #8a877f; }
.footer-contact { font-size: 14px; line-height: 1.7; }
.footer-contact a { color: #8fc4b3; }
.footer-contact a:hover { color: #8fc4b3; }
.site-footer-bar { border-top: 1px solid #26282c; }
.site-footer-bar-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 20px 32px 40px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-weight: 600;
  font-size: 10.5px;
  color: #82848a;
}
.site-footer-bar a { color: #82848a; }
.site-footer-bar a:hover { color: #d8d7d4; }
.legal-copy {
  font-family: Newsreader, Georgia, serif;
  font-weight: 500;
  font-size: 18.5px;
  line-height: 1.55;
  color: #3b3935;
  text-wrap: pretty;
}

@media (max-width: 1080px) {
  [data-stack] { grid-template-columns: 1fr !important; }
  [data-stack][data-cols4] { grid-template-columns: 1fr 1fr !important; }
  [data-media] { height: 440px !important; border-radius: 20px !important; }
  [data-hero] { min-height: 0 !important; }
  [data-stack] > a, [data-stack] > article, [data-stack] > div { min-height: 0 !important; }
  [data-cell] { border-right: none !important; border-bottom: 1px solid #e3ded3; padding-left: 0 !important; padding-right: 0 !important; }
  [data-cell-last] { padding-left: 0 !important; }
  [data-heropad] { padding: 76px 0 64px !important; }
  [data-herotext] { min-height: 0 !important; padding: 120px 0 48px !important; }
  [data-h1] { font-size: 46px !important; }
  [data-h2] { font-size: 30px !important; }
  [data-row] { grid-template-columns: 1fr 1fr !important; }
  [data-row] > [data-cta] { grid-column: 1 / -1; justify-self: start; }
  [data-sticky] { position: static !important; }
  [data-navlink] { display: none !important; }
  [data-burger],
  .burger { display: flex !important; }
}
@media (max-width: 640px) {
  .burger > span:not(.burger-icon) { display: none; }
}
@media (max-width: 580px) {
  .tagline { display: none; }
}
@media (max-width: 900px) {
  header[data-scrolled] { border-bottom-color: #e3ded3 !important; }
  [data-cols4] { grid-template-columns: 1fr 1fr !important; }
  [data-stack][data-cols4] { grid-template-columns: 1fr !important; }
  [data-h1] { font-size: 38px !important; }
  [data-h2] { font-size: 27px !important; }
  [data-facts] { grid-template-columns: 1fr 1fr !important; }
  [data-steps] { grid-template-columns: 1fr !important; }
}
@media (max-width: 500px) {
  [data-cols4] { grid-template-columns: 1fr !important; }
  [data-h1] { font-size: 31px !important; }
  [data-row] { grid-template-columns: 1fr !important; }
  .btn-book { display: none; }
}

@keyframes cloudDriftA {
  0% { transform: translate(-5%, 0) scale(1); }
  50% { transform: translate(5%, -3%) scale(1.08); }
  100% { transform: translate(-5%, 0) scale(1); }
}
@keyframes cloudDriftB {
  0% { transform: translate(4%, 2%) scale(1.05); }
  50% { transform: translate(-5%, -2.5%) scale(1); }
  100% { transform: translate(4%, 2%) scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
  [data-cloud] { animation: none !important; }
}
