:root {
  --main-navy-black: #011627;
  --main-mint-white: #dae8e1;
  --mint-on-hover: #c1d6cc;
  --navy-on-hover: #022949;
  --blue-link: #197dc3;
}

.bvc-layout-blockcontainer {
  max-width: 940px;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

.bvc-layout-vflex {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

.bvc-layout-hflex {
  flex-direction: row;
  align-items: flex-start;
  display: flex;
}

@media screen and (max-width: 991px) {
  .bvc-layout-blockcontainer {
    max-width: 728px;
  }
}

@media screen and (max-width: 767px) {
  .bvc-layout-blockcontainer {
    max-width: none;
  }
}

html {
  height: auto;
  overflow-y: auto;
}

body {
  color: var(--main-navy-black);
  font-family: Poppins, sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.4;
  overflow-x: hidden;
}

h1 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-family: Bitter, serif;
  font-size: 4rem;
  font-weight: 700;
  line-height: 1.2;
}

h2 {
  margin-top: 0;
  margin-bottom: 0;
  font-family: Bitter, serif;
  font-size: 4rem;
  font-weight: 700;
  line-height: 1.2;
}

a {
  color: var(--main-navy-black);
  text-decoration: none;
}

.navbar {
  z-index: 99;
  background-color: var(--main-mint-white);
  position: fixed;
  inset: 0% 0% auto;
}

.navbar:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  background-color: var(--main-navy-black);
}

.navbar-container {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.header-nav-items {
  justify-content: center;
  align-items: center;
  height: 4rem;
  display: flex;
}

.nav-logo-container {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  justify-content: flex-start;
  align-items: center;
}

.nav-logo-img {
  height: 2.75rem;
  width: auto;
  display: block;
}

.chalet-page-header .nav-logo-img {
  height: 3rem;
}

.chalet-navbar-logo .nav-logo-img {
  height: 2.5rem;
}

.footer-logo-column .nav-logo-img {
  height: 2.75rem;
}

.svg-main-logo {
  color: var(--main-navy-black);
  width: 2rem;
  height: 2rem;
}

.svg-main-logo:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  color: var(--main-mint-white);
}

.brand-logo-text {
  color: var(--main-navy-black);
  font-family: Bitter, serif;
  font-size: 2rem;
}

.brand-logo-text:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  color: var(--main-mint-white);
}

.bold {
  font-weight: 700;
}

.svg-1-5rem {
  color: var(--main-navy-black);
  width: 1.5rem;
  height: 1.5rem;
}

.svg-1-5rem:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f), .svg-1-5rem.inverse {
  color: var(--main-mint-white);
}

.dropdown-list {
  z-index: 99;
  background-color: #ddd;
  top: 100%;
  left: 0;
}

.dropdown-list.bvc--open {
  background-color: var(--main-mint-white);
  border-radius: 0;
  flex-flow: wrap;
  display: flex;
}

.dropdown-list.bvc--open:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  background-color: var(--main-navy-black);
}

.dropdown-link {
  min-width: 10rem;
  padding: 1rem 2rem;
  width: 100%;
  box-sizing: border-box;
}

.dropdown-link:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  color: var(--main-mint-white);
}

.dropdown-link:hover {
  background-color: var(--mint-on-hover);
}

.dropdown-link:hover:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  background-color: var(--navy-on-hover);
}

.nav-link {
  grid-column-gap: .3rem;
  grid-row-gap: .3rem;
  justify-content: center;
  align-items: flex-start;
  height: 100%;
  padding: .8rem 1.2rem 0;
  font-size: 1.1rem;
  display: flex;
  position: relative;
  cursor: pointer;
}

.nav-link:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  color: #dae8e1;
}

.nav-link:hover {
  background-color: var(--mint-on-hover);
}

.nav-link:hover:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  background-color: var(--navy-on-hover);
}

.brand {
  height: 5.8rem;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.icon {
  margin-top: 3px;
  margin-bottom: 0;
  margin-right: 0;
  position: relative;
}

.nav-dropdown {
  grid-column-gap: .3rem;
  grid-row-gap: .3rem;
  justify-content: center;
  align-items: flex-start;
  height: 100%;
  padding: 0;
  font-size: 1.1rem;
  display: flex;
}

.nav-dropdown:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  color: var(--main-mint-white);
}

.secondary-btn {
  grid-column-gap: .7rem;
  grid-row-gap: .7rem;
  color: var(--main-navy-black);
  justify-content: center;
  align-items: center;
  padding: .5rem 1.2rem;
  text-decoration: none;
  display: flex;
  position: relative;
}

.secondary-btn.navbar-position-absolute {
  color: var(--main-navy-black);
  position: absolute;
  inset: 1rem 10% auto auto;
}

.secondary-btn.navbar-position-absolute:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f), .secondary-btn.inverse {
  color: var(--main-mint-white);
}

.btn-text {
  color: var(--main-navy-black);
}

.btn-text:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f), .btn-text.inverse {
  color: var(--main-mint-white);
}

.svg-skew-correction {
  justify-content: center;
  align-items: center;
  padding-top: .1rem;
}

.svg-btn-underline {
  position: absolute;
  inset: auto auto 0% 5%;
}

/* Navigation hover interactions */
.header-nav-items {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.3s ease, opacity 0.3s ease;
}

.navbar-container:hover .header-nav-items {
  max-height: 4rem;
  opacity: 1;
  overflow: visible;
}

/* Ensure dropdown can overflow */
.header-nav-items .bvc-dropdown {
  overflow: visible;
}

/* Book Now button underline and arrow animation */
.secondary-btn .svg-btn-underline {
  transition: transform 0.3s ease;
}

.secondary-btn:hover .svg-btn-underline {
  transform: translateX(45px);
}

/* Arrow moves forward on hover */
.secondary-btn .svg-skew-correction {
  transition: transform 0.3s ease;
}

.secondary-btn:hover .svg-skew-correction {
  transform: translateX(4px);
}

/* Chalets dropdown click functionality */
.nav-link.bvc-dropdown {
  position: relative;
  cursor: pointer;
}

.nav-link.bvc-dropdown .dropdown-list {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  flex-direction: column;
  min-width: 12rem;
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  background-color: var(--main-mint-white);
  z-index: 1000;
}

.nav-link.bvc-dropdown .dropdown-list.show {
  display: flex;
}

/* Also support hover for better UX */
.nav-link.bvc-dropdown:hover .dropdown-list {
  display: flex;
}

/* Dropdown icon rotation on hover */
.bvc-icon-dropdown-toggle {
  transition: transform 0.3s ease;
  font-weight: 300;
}

.nav-link.bvc-dropdown:hover .bvc-icon-dropdown-toggle,
.nav-link.bvc-dropdown.dropdown-open .bvc-icon-dropdown-toggle {
  transform: rotate(180deg);
}

/* Logo chevron icon rotation on hover */
.nav-logo-container .svg-1-5rem {
  transition: transform 0.3s ease;
}

/* Rotate chevron when hovering anywhere in the navbar container or its children */
.navbar-container:hover .nav-logo-container .svg-1-5rem,
.navbar-container:has(:hover) .nav-logo-container .svg-1-5rem,
.navbar:has(.header-nav-items:hover) .nav-logo-container .svg-1-5rem,
.navbar:has(.nav-link:hover) .nav-logo-container .svg-1-5rem {
  transform: rotate(180deg);
}

/* Mountain footer SVG positioning */
.svg-mountain-footer {
  width: 100%;
  position: absolute;
  inset: auto 0% -1rem;
}

/* Sticky accordion headers for property sections */
.sticky-accordion-header {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 5rem !important; /* Below the fixed navbar (~80px) */
  z-index: 50 !important;
  box-shadow: none;
  display: block !important;
  width: 100%;
}

/* More specific selector to ensure sticky works */
#mountain-properties > .sticky-accordion-header,
#waterfront-properties > .sticky-accordion-header,
button.sticky-accordion-header {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 5rem !important;
  z-index: 50 !important;
  display: block !important;
}

.sticky-header-mint {
  background-color: var(--main-mint-white);
  box-shadow: none;
}

.sticky-header-navy {
  background-color: var(--main-navy-black);
  box-shadow: none;
}

/* Ensure the section acts as a containing block for sticky - NO overflow hidden */
#mountain-properties,
#waterfront-properties {
  position: relative !important;
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
}

.main-wrapper {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  overflow: visible !important; /* Required for sticky headers */
}

.section-padding-8rem {
  padding-top: 8rem;
  padding-bottom: 8rem;
  position: relative;
}

.section-padding-8rem.homepg-hero {
  background-image: linear-gradient(#dae8e100, #01162714 40%, #01162733 70%), linear-gradient(#01162799, #01162799), url('/images/corona22.webp');
  background-position: 0 0, 0 0, 50%;
  background-repeat: repeat, repeat, no-repeat;
  background-size: auto, auto, cover;
  justify-content: center;
  align-items: flex-end;
  height: 90dvh;
  max-height: 75rem;
  padding-bottom: 4rem;
  display: flex;
}

.section-padding-8rem.background-blue-gradient {
  background-image: linear-gradient(#011627, #032038 52%, #07497e);
  padding-bottom: 15rem;
}

.section-padding-8rem.background-mint {
  background-color: var(--main-mint-white);
  color: var(--main-navy-black);
}

.container-max-w-75rem {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: row;
  justify-content: center;
  align-items: center;
  width: 85%;
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.h1-hero {
  filter: drop-shadow(0 1px 20px #00000080);
  color: var(--main-mint-white);
  text-align: center;
}

.hero-text-wrap {
  justify-content: center;
  align-items: center;
  width: 80%;
}

.v-flex-centered {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  color: var(--main-mint-white);
  text-align: center;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.v-flex-centered.gap-3-rem {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
}

.v-flex-centered.padding-btm-3rem {
  padding-bottom: 3rem;
}

.v-flex-centered.padding-btm-3rem.bottom-line {
  border-bottom: 1px solid var(--main-navy-black);
}

.v-flex-centered.padding-3rem {
  padding-bottom: 3rem;
}

.v-flex-centered.padding-3rem.bottom-line {
  border-bottom: 1px solid var(--main-navy-black);
  padding-top: 3rem;
}

.v-arrow-with-text {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  color: var(--main-mint-white);
  justify-content: center;
  align-items: center;
  min-height: 80px;
  font-size: 1.1rem;
  font-weight: 200;
  position: relative;
}

.h2-mint {
  filter: drop-shadow(0 1px 20px #00000080);
  color: var(--main-mint-white);
  text-align: center;
}

.heading-text-wrap-centered-flex {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  color: var(--main-navy-black);
  justify-content: center;
  align-items: center;
  font-weight: 400;
  line-height: 1.5;
}

.heading-text-wrap-centered-flex.white {
  color: var(--main-mint-white);
}

.heading-text-wrap-centered-flex.padding-1rem {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.heading-text-wrap-centered-flex.padding-1rem.inverse {
  color: var(--main-mint-white);
}

.h-flex-amenities {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
  flex-flow: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
  font-weight: 200;
}

.h-flex-amenities.property-details {
  grid-column-gap: 1.2rem;
  grid-row-gap: 1.2rem;
  justify-content: flex-start;
  align-items: center;
}

.h-flex-icon-with-text {
  grid-column-gap: .7rem;
  grid-row-gap: .7rem;
  justify-content: flex-start;
  align-items: center;
}

.h-flex-icon-with-text.gap-small {
  grid-column-gap: .5rem;
  grid-row-gap: .5rem;
}

.container-max-w-55rem {
  justify-content: center;
  align-items: center;
  width: 70%;
  max-width: 55rem;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.svg-mountains {
  width: 100%;
  position: absolute;
  inset: auto 0% -1rem;
}

.section-padding-top-none {
  padding-top: 8rem;
  padding-bottom: 15rem;
  position: relative;
  overflow: visible;
}

.section-padding-top-none.homepg-hero {
  background-image: linear-gradient(#dae8e100, #01162714 40%, #01162733 70%), linear-gradient(#01162799, #01162799), url('/images/corona22.webp');
  background-position: 0 0, 0 0, 50%;
  background-repeat: repeat, repeat, no-repeat;
  background-size: auto, auto, cover;
  justify-content: center;
  align-items: flex-end;
  height: 90dvh;
  max-height: 75rem;
  padding-bottom: 4rem;
  display: flex;
}

.section-padding-top-none.background-blue-gradient {
  background-image: linear-gradient(#011627, #032038 52%, #07497e);
  padding-bottom: 15rem;
}

.section-padding-top-none.background-mint {
  background-color: var(--main-mint-white);
  color: var(--main-navy-black);
  padding-top: 0;
}

.section-padding-top-none.background-mint.position-sticky {
  height: 500rem;
  position: sticky;
  top: 20rem;
}

.section-padding-top-none.background-navy-inverse-gradient {
  color: var(--main-navy-black);
  background-image: linear-gradient(#02233e 15%, #01111e 81%, #000);
  padding-top: 0;
}

.section-padding-top-none.background-navy-inverse-gradient.position-sticky {
  height: 500rem;
  position: sticky;
  top: 20rem;
}

.h2-navy {
  color: var(--main-navy-black);
  text-align: center;
}

.full-width-accordion-wrapper {
  z-index: 2;
  background-color: var(--main-mint-white);
  color: var(--main-navy-black);
  width: 100%;
  padding-top: 1rem;
  padding-bottom: 1rem;
  text-decoration: none;
  box-shadow: none;
}

/* Ensure sticky behavior when full-width-accordion-wrapper is also sticky */
.full-width-accordion-wrapper.sticky-accordion-header {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 5rem !important;
  z-index: 50 !important;
  display: block !important;
}

.full-width-accordion-wrapper.navy {
  color: var(--main-mint-white);
  background-color: #02233e;
}

.svg-3rem {
  width: 3rem;
  height: 3rem;
  transform: rotate(-180deg);
}

.svg-3rem:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f) {
  color: var(--main-mint-white);
}

.full-width-item-wrapper {
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: none;
  padding-top: 3rem;
  padding-bottom: 3rem;
  display: flex;
}

.full-width-item-wrapper.img-left {
  justify-content: space-between;
  align-items: center;
  margin-left: 0;
  margin-right: 0;
  padding-right: 5%;
  position: relative;
}

.full-width-item-wrapper.img-right {
  justify-content: space-between;
  align-items: center;
  margin-left: 0;
  margin-right: 0;
  padding-left: 5%;
  padding-right: 0%;
  position: relative;
}

.svg-waves {
  width: 100%;
  position: absolute;
  inset: auto 0% -1rem;
}

.accordion-content {
  width: 100%;
  max-width: 1850px;
  overflow: clip;
}

.accordion-content.inverse {
  color: var(--main-mint-white);
}

.img-wrapper {
  flex: none;
  width: 45%;
  height: 23rem;
  position: relative;
}

.hmpg-property-img {
  z-index: 1;
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: relative;
}

.img-left-background-box {
  z-index: 0;
  border: 1px solid var(--main-navy-black);
  background-color: #0116270d;
  position: absolute;
  inset: 2% -2% -2% 2%;
}

.img-left-background-box.mint {
  border-color: var(--main-mint-white);
  background-color: #dae8e10d;
}

.v-line-with-text {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
  color: var(--main-navy-black);
  text-align: center;
  flex: none;
  justify-content: center;
  align-self: center;
  align-items: center;
  min-height: 80px;
  font-size: 1.1rem;
  font-weight: 200;
  position: absolute;
  inset: 30% 45%;
}

.v-line-with-text .chalet-name {
  margin: 0;
  padding: 0.5rem 0;
  font-size: 1.3rem;
  font-weight: 300;
  line-height: 1.3;
}

.v-line-with-text.inverse {
  color: var(--main-mint-white);
}

.heading-text-wrap-centered-flex-copy {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  color: var(--main-navy-black);
  justify-content: center;
  align-items: center;
  font-weight: 400;
  line-height: 1.5;
}

.heading-text-wrap-centered-flex-copy.white {
  color: var(--main-mint-white);
}

.heading-text-wrap-centered-flex-copy.padding-1rem {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.v-flex-property-info {
  grid-column-gap: 1.5rem;
  grid-row-gap: 1.5rem;
  color: var(--main-navy-black);
  text-align: left;
  flex: none;
  justify-content: center;
  align-items: flex-start;
  width: 40%;
}

.v-flex-property-info.gap-3-rem {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
}

.v-flex-property-info.inverse {
  color: var(--main-mint-white);
}

.button-wrapper {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  justify-content: flex-start;
  align-items: center;
}

.primary-btn {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  color: var(--main-navy-black);
  border-radius: 5px;
  justify-content: center;
  align-items: center;
  padding: 1.2rem;
  text-decoration: none;
  transition: all .2s;
  display: flex;
  position: relative;
}

.primary-btn:hover {
  background-color: var(--mint-on-hover);
}

.primary-btn.navbar-position-absolute {
  color: var(--main-navy-black);
  position: absolute;
  inset: 1rem 10% auto auto;
}

.primary-btn.navbar-position-absolute:where(.bvc-variant-b10a3876-35dd-c99b-3f1c-8e7a0e35204f), .primary-btn.inverse {
  color: var(--main-mint-white);
}

.primary-btn.inverse:hover {
  background-color: var(--navy-on-hover);
}

.svg-prim-btn-corner {
  position: absolute;
  transition: inset 0.2s ease;
}

.svg-prim-btn-corner.top-right {
  inset: 0% 0% auto auto;
}

.svg-prim-btn-corner.top-left {
  inset: 0% auto auto 0%;
}

.svg-prim-btn-corner.btm-right {
  inset: auto 0% 0% auto;
}

.svg-prim-btn-corner.btm-left {
  inset: auto auto 0% 0%;
}

/* Corner expansion on hover */
.primary-btn:hover .svg-prim-btn-corner.top-right {
  inset: -3px -3px auto auto;
}

.primary-btn:hover .svg-prim-btn-corner.top-left {
  inset: -3px auto auto -3px;
}

.primary-btn:hover .svg-prim-btn-corner.btm-right {
  inset: auto -3px -3px auto;
}

.primary-btn:hover .svg-prim-btn-corner.btm-left {
  inset: auto auto -3px -3px;
}

.img-right-background-box {
  z-index: 0;
  border: 1px solid var(--main-navy-black);
  background-color: #0116270d;
  position: absolute;
  inset: 2% 2% -2% -2%;
}

.h2-navy-copy {
  color: var(--main-navy-black);
  text-align: center;
}

.svg-mountain-footer {
  width: 100%;
  position: absolute;
  inset: auto 0% -1rem;
}

.section-padding-4rem {
  padding-top: 0.8rem;
  padding-bottom: 0.8rem;
  position: relative;
}

.section-padding-4rem.homepg-hero {
  background-image: linear-gradient(#dae8e100, #01162714 40%, #01162733 70%), linear-gradient(#01162799, #01162799), url('/images/corona22.webp');
  background-position: 0 0, 0 0, 50%;
  background-repeat: repeat, repeat, no-repeat;
  background-size: auto, auto, cover;
  justify-content: center;
  align-items: flex-end;
  height: 90dvh;
  max-height: 75rem;
  padding-bottom: 4rem;
  display: flex;
}

.section-padding-4rem.background-blue-gradient {
  background-image: linear-gradient(#011627, #032038 52%, #07497e);
  padding-bottom: 15rem;
}

.section-padding-4rem.background-mint {
  background-color: var(--main-mint-white);
  color: var(--main-navy-black);
  padding-top: 4rem;
}

.section-padding-4rem.footer {
  background-color: var(--main-mint-white);
}

.footer-cta {
  color: var(--main-navy-black);
  font-size: 1.2rem;
}

/* Reduce gap between footer CTA text and Book Now button */
.section-padding-4rem.footer .v-flex-centered,
.section-padding-4rem.background-mint .v-flex-centered {
  gap: 1rem;
}

.section-padding-4rem.footer .footer-cta,
.section-padding-4rem.background-mint .footer-cta {
  margin-bottom: 0;
  padding-bottom: 0;
}

.footer-grid {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  text-align: left;
  justify-content: center;
  align-items: start;
  width: 100%;
}

.footer-grid.gap-3-rem {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
}

.footer-grid.padding-btm-3rem {
  padding-bottom: 3rem;
}

.footer-grid.padding-btm-3rem.bottom-line {
  border-bottom: 1px solid var(--main-navy-black);
}

.footer-grid.padding-3rem {
  padding-bottom: 3rem;
}

.footer-grid.padding-3rem.bottom-line {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  border-bottom: 1px solid var(--main-navy-black);
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  padding-top: 5rem;
  padding-bottom: 5rem;
  display: grid;
}

.footer-logo-column {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  grid-column: span 2;
}

.link {
  color: var(--blue-link);
  text-decoration: none;
}

.social-icon-wrapper {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  justify-content: flex-start;
  align-items: center;
}

.footer-column {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
}

.footer-links-flex {
  grid-column-gap: .5rem;
  grid-row-gap: .5rem;
}

.footer-link {
  color: var(--main-navy-black);
  text-decoration: none;
}

.footer-link:hover {
  color: var(--blue-link);
}

.footer-address-block {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
}

.footer-fine-print {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  text-align: center;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: .9rem;
}

.footer-fine-print.gap-3-rem {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
}

.footer-fine-print.padding-btm-3rem {
  padding-bottom: 3rem;
}

.footer-fine-print.padding-btm-3rem.bottom-line {
  border-bottom: 1px solid var(--main-navy-black);
}

.footer-fine-print.padding-3rem {
  padding-bottom: 3rem;
}

.footer-fine-print.padding-3rem.bottom-line {
  border-bottom: 1px solid var(--main-navy-black);
  padding-top: 3rem;
}

.text-block {
  color: #011627b3;
}

.link-2 {
  text-decoration: none;
}

.searchpod-link {
  color: #011627a6;
}

.searchpod-link:hover {
  color: #01162780;
}

/* ===================================
   MOBILE MENU STYLES
   =================================== */

/* Mobile hamburger button - hidden by default */
.mobile-menu-btn {
  display: none;
  background: none;
  border: none;
  padding: 0.5rem;
  cursor: pointer;
  color: var(--main-navy-black);
  margin-left: auto;
}

/* Chalet navbar menu button - always visible for minimalist design */
.chalet-menu-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0.5rem;
  cursor: pointer;
  color: var(--main-navy-black);
  margin-left: 1rem;
}

.chalet-menu-btn:hover {
  opacity: 0.7;
}

/* Chalet navbar styles */
.chalet-navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  padding: 1rem 2rem;
  background: var(--main-mint-white);
}

.chalet-nav-container {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.chalet-nav-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--main-navy-black);
}

.chalet-nav-right {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.chalet-nav-book {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Mobile menu overlay */
.mobile-menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--main-mint-white);
  z-index: 98;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  overflow-y: auto;
  padding-top: 100px;
  padding-bottom: 2rem;
  -webkit-overflow-scrolling: touch;
}

.mobile-menu-overlay.open {
  opacity: 1;
  visibility: visible;
}

.mobile-menu-nav {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
  width: 80%;
  max-width: 300px;
}

.mobile-menu-link {
  font-size: 1.25rem;
  color: var(--main-navy-black);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease;
  text-align: left;
}

.mobile-menu-link:hover {
  color: var(--navy-on-hover);
}

.mobile-menu-section-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--navy-on-hover);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
  opacity: 0.7;
}

.mobile-menu-sublink {
  font-size: 1.1rem !important;
}

/* Mobile Menu Accordion */
.mobile-menu-accordion {
  width: 100%;
}

.mobile-menu-accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.25rem;
  color: var(--main-navy-black);
  font-weight: 500;
  font-family: inherit;
  text-align: left;
}

.mobile-menu-accordion-header svg {
  width: 1.25rem;
  height: 1.25rem;
  transition: transform 0.3s ease;
}

.mobile-menu-accordion-header.open svg {
  transform: rotate(180deg);
}

.mobile-menu-accordion-content {
  display: none;
  flex-direction: column;
  gap: 0.5rem;
  padding-top: 0.75rem;
  padding-left: 1rem;
  overflow: hidden;
}

.mobile-menu-accordion-content.open {
  display: flex;
}

.mobile-menu-accordion-content .mobile-menu-link,
.mobile-menu-accordion-content .mobile-menu-sublink {
  font-size: 1.1rem !important;
  font-weight: 400;
  padding: 0;
}

.mobile-menu-book-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1rem;
  padding: 1rem 2rem;
  background-color: var(--main-navy-black);
  color: var(--main-mint-white);
  text-decoration: none;
  font-size: 1.2rem;
  font-weight: 500;
  border-radius: 0;
  transition: background-color 0.2s ease;
}

.mobile-menu-book-btn:hover {
  background-color: var(--navy-on-hover);
}

.mobile-menu-book-btn svg {
  width: 1.2rem;
  height: auto;
}

/* Desktop only utility - visible on desktop, hidden on mobile */
/* Note: This class only controls visibility, doesn't change display type */

/* ===================================
   RESPONSIVE STYLES
   =================================== */

/* Tablet breakpoint (991px and below) */
@media screen and (max-width: 991px) {
  /* Typography scaling */
  h1 {
    font-size: 3rem;
  }

  h2 {
    font-size: 2.5rem;
  }

  /* Section padding reduction */
  .section-padding-8rem {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .section-padding-4rem {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  /* Navbar adjustments */
  .brand {
    height: auto;
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .brand-logo-text {
    font-size: 1.6rem;
  }

  .nav-link {
    font-size: 1rem;
    padding: .6rem 1rem 0;
  }

  /* Container adjustments */
  .container-max-w-75rem {
    width: 90%;
  }

  .hero-text-wrap {
    width: 90%;
  }

  /* Footer grid for tablet - 3 columns */
  .footer-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .footer-logo-column {
    grid-column: span 3;
  }
}

/* Mobile breakpoint (767px and below) */
@media screen and (max-width: 767px) {
  /* Typography scaling */
  h1 {
    font-size: 2.5rem;
  }

  h2 {
    font-size: 2.2rem;
  }

  h3 {
    font-size: 1.4rem;
  }

  body {
    font-size: 0.95rem;
  }

  /* Section padding reduction */
  .section-padding-8rem {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .section-padding-4rem {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  /* Navbar mobile styles */
  .navbar {
    position: fixed;
  }

  .navbar-container {
    padding: 0.5rem 1rem;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }

  .brand {
    height: auto;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
  }

  .brand-logo-text {
    font-size: 1.4rem;
  }

  .svg-main-logo {
    width: 1.5rem;
    height: 1.5rem;
  }

  /* Hide desktop navigation on mobile */
  .header-nav-items {
    display: none !important;
  }

  /* Hide desktop-only elements */
  .desktop-only {
    display: none !important;
  }

  /* Show mobile hamburger button */
  .mobile-menu-btn {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* Book Now button mobile positioning */
  .secondary-btn.navbar-position-absolute {
    position: relative;
    inset: auto;
    margin-left: auto;
  }

  .secondary-btn {
    font-size: 0.9rem;
    padding: 0.4rem;
  }

  .secondary-btn:hover .svg-btn-underline {
    transform: translateX(35px);
  }

  /* Container full width on mobile */
  .container-max-w-75rem {
    width: 95%;
  }

  .hero-text-wrap {
    width: 95%;
  }

  /* Property info sections */
  .full-width-item-wrapper.img-left,
  .full-width-item-wrapper.img-right {
    flex-flow: column;
  }

  .img-wrapper {
    order: 1;
    width: 100%;
  }

  .v-line-with-text {
    order: 2; /* Heading comes right after image */
    position: static;
    inset: 0%;
    flex-direction: row;
    padding: 1rem 0;
    margin-top: 1.5rem;
  }

  .v-line-with-text .chalet-name {
    font-size: 1.2rem;
    padding: 0.4rem 0;
  }

  .v-flex-property-info {
    order: 3; /* Content comes after heading */
  }

  /* Keep sticky headers on mobile - below navbar */
  .sticky-accordion-header {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 4rem !important; /* Below mobile navbar */
    box-shadow: none;
  }

  .full-width-accordion-wrapper.sticky-accordion-header {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 4rem !important; /* Below mobile navbar */
    z-index: 50 !important;
  }

  .v-line-with-text .svg-line {
    transform: rotate(90deg);
  }

  .v-flex-property-info {
    width: 100%;
    padding: 1.5rem;
  }

  /* Footer mobile - single column (rows layout) */
  .footer-grid,
  .footer-grid.padding-3rem.bottom-line {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto;
    text-align: center;
    grid-row-gap: 2rem;
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .footer-logo-column {
    grid-column: span 1;
    align-items: center;
  }

  .footer-column {
    align-items: center;
  }

  .footer-links-flex {
    justify-content: center;
    align-items: center;
  }

  .footer-address-block {
    align-items: center;
    text-align: center;
  }

  .social-icon-wrapper {
    justify-content: center;
  }

  .footer-fine-print {
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
  }

  .footer-fine-print.gap-3-rem {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
  }

  /* Footer CTA section */
  .v-flex-centered {
    align-items: center;
    text-align: center;
  }

  .footer-cta {
    text-align: center;
  }

  /* Button adjustments */
  .primary-btn {
    padding: 1rem;
    font-size: 0.95rem;
  }

  /* Property accordion items */
  .accordion-item {
    padding: 1rem;
  }

  /* Gap reductions */
  .gap-3-rem {
    grid-column-gap: 1.5rem;
    grid-row-gap: 1.5rem;
  }

  .gap-1-5rem {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
  }

  /* Mountain SVG footer */
  .svg-mountain-footer {
    bottom: -0.5rem;
  }

  /* CTA text */
  .footer-cta {
    font-size: 1rem;
  }

  /* Hero section */
  .homepg-hero {
    min-height: 60vh;
  }

  /* Amenities flex wrap better on mobile */
  .h-flex-amenities {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
  }

  .h-flex-icon-with-text {
    font-size: 0.9rem;
  }

  /* Content container for blue gradient section */
  .container-max-w-55rem {
    width: 90%;
  }

  /* Hero section height adjustment */
  .section-padding-top-none.homepg-hero {
    height: 70dvh;
    padding-bottom: 2rem;
  }

  /* Mountain section padding */
  .section-padding-top-none {
    padding-top: 4rem;
    padding-bottom: 8rem;
  }

  .section-padding-top-none.background-blue-gradient {
    padding-bottom: 10rem;
  }

  /* SVG mountains sizing */
  .svg-mountains {
    bottom: -0.5rem;
  }

  /* Centered text sections */
  .heading-text-wrap-centered-flex {
    text-align: center;
  }

  /* Vertical arrow with text */
  .v-arrow-with-text {
    font-size: 1rem;
  }
}

/* Small mobile breakpoint (479px and below) */
@media screen and (max-width: 479px) {
  /* Typography further scaling */
  h1 {
    font-size: 2.2rem;
  }

  h2 {
    font-size: 1.8rem;
  }

  h3 {
    font-size: 1.2rem;
  }

  body {
    font-size: 0.9rem;
  }

  /* Navbar extra small adjustments */
  .brand-logo-text {
    font-size: 1.2rem;
  }

  .svg-main-logo {
    width: 1.3rem;
    height: 1.3rem;
  }

  .secondary-btn {
    font-size: 0.85rem;
  }

  .btn-text {
    font-size: 0.85rem;
  }

  /* Section padding minimal */
  .section-padding-8rem {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .section-padding-4rem {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  /* Container */
  .container-max-w-75rem {
    width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .hero-text-wrap {
    width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Property info */
  .v-flex-property-info {
    padding: 1rem;
  }

  /* Footer fine print */
  .footer-fine-print {
    font-size: 0.8rem;
  }

  /* Primary button */
  .primary-btn {
    padding: 0.8rem;
    font-size: 0.9rem;
  }

  /* SVG icons */
  .svg-3rem {
    width: 2rem;
    height: 2rem;
  }

  .svg-1-5rem {
    width: 1.2rem;
    height: 1.2rem;
  }

  /* Amenities even tighter on small mobile */
  .h-flex-amenities {
    grid-column-gap: 0.75rem;
    grid-row-gap: 0.75rem;
  }

  .h-flex-icon-with-text {
    font-size: 0.85rem;
  }

  /* Container 55rem for blue section */
  .container-max-w-55rem {
    width: 95%;
  }

  /* Mobile menu link sizing */
  .mobile-menu-link {
    font-size: 1.3rem;
  }

  .mobile-menu-book-btn {
    font-size: 1rem;
    padding: 0.8rem 1.5rem;
  }
}

#w-node-_986acd08-a0e3-206e-51e5-69027ff768c6-7ff768ba {
  grid-area: span 1 / span 2 / span 1 / span 2;
  place-self: stretch stretch;
}

#w-node-_986acd08-a0e3-206e-51e5-69027ff768dc-7ff768ba, #w-node-_986acd08-a0e3-206e-51e5-69027ff768f5-7ff768ba, #w-node-_986acd08-a0e3-206e-51e5-69027ff76900-7ff768ba, #w-node-_986acd08-a0e3-206e-51e5-69027ff7690d-7ff768ba {
  grid-area: span 1 / span 1 / span 1 / span 1;
  place-self: stretch stretch;
}

/* ===================================
   CHALET DETAIL PAGE STYLES
   =================================== */

/* Two-tier Navigation Wrapper */
.chalet-nav-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
}

/* Top Bar - Return to table of contents */
.chalet-return-bar {
  background-color: var(--main-mint-white);
  padding: 1.5rem 2rem 0.75rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.625rem;
}

.chalet-return-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--main-navy-black);
  text-decoration: none;
  font-size: 0.8rem;
  font-family: var(--body-font-family);
  transition: opacity 0.2s ease;
}

.chalet-return-link:hover {
  opacity: 0.7;
}

.chalet-return-link svg {
  width: 14px;
  height: 14px;
  color: var(--main-navy-black);
}

/* Chalet Page Header - Transparent navbar matching home page structure */
.chalet-page-header {
  background: rgba(1, 13, 23, 0.60);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0.25rem 0;
  gap: 0.625rem;
  position: relative;
}

/* Book Now button in chalet header */
.chalet-page-header .chalet-book-btn {
  color: #DAE8E1;
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
}

.chalet-page-header .chalet-book-btn .btn-text {
  color: #DAE8E1;
  font-family: Poppins, sans-serif;
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 300;
  line-height: normal;
}

.chalet-page-header .chalet-book-btn .svg-btn-underline {
  color: #DAE8E1;
}

.chalet-page-header .chalet-book-btn .svg-1-5rem {
  color: #DAE8E1;
}

/* Override navbar container styles for chalet page */
.chalet-page-header .navbar-container {
  background-color: transparent;
  padding: 0;
  flex: none;
}

/* Override brand styles for inverse/light text */
.chalet-page-header .brand {
  color: #DAE8E1;
}

.chalet-page-header .nav-logo-container {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  color: #DAE8E1;
}

.chalet-page-header .svg-main-logo {
  width: 30px;
  height: 30px;
  aspect-ratio: 1/1;
  color: #DAE8E1;
  fill: #DAE8E1;
}

.chalet-page-header .svg-main-logo svg {
  width: 100%;
  height: 100%;
}

.chalet-page-header .brand-logo-text {
  color: #DAE8E1;
  font-family: Bitter, serif;
  font-size: 2.25rem;
  font-style: normal;
  font-weight: 200;
  line-height: 30px;
}

.chalet-page-header .brand-logo-text .bold {
  font-weight: 600;
}

/* Chevron arrow next to logo text */
.chalet-page-header .nav-logo-container .svg-1-5rem {
  display: flex;
  align-items: center;
  width: 1.5rem;
  height: 1.5rem;
  color: #DAE8E1;
  transition: transform 0.3s ease;
}

.chalet-page-header .nav-logo-container .svg-1-5rem svg {
  width: 100%;
  height: 100%;
}

/* Rotate chevron on hover for chalet page header */
.chalet-page-header .navbar-container:hover .nav-logo-container .svg-1-5rem,
.chalet-page-header:hover .nav-logo-container .svg-1-5rem {
  transform: rotate(180deg);
}

/* Nav links inverse for chalet page */
.chalet-page-header .nav-link {
  color: var(--main-mint-white);
}

.chalet-page-header .nav-link:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.chalet-page-header .nav-dropdown {
  color: var(--main-mint-white);
}

/* Dropdown list styling for chalet page - light bg with navy text */
.chalet-page-header .dropdown-list,
.chalet-page-header .nav-link.bvc-dropdown .dropdown-list,
.chalet-page-header .bvc-dropdown-list {
  background-color: var(--main-mint-white);
}

.chalet-page-header .dropdown-link,
.chalet-page-header .nav-link.bvc-dropdown .dropdown-link,
.chalet-page-header .bvc-dropdown-link {
  color: var(--main-navy-black) !important;
}

.chalet-page-header .dropdown-link:hover,
.chalet-page-header .bvc-dropdown-link:hover {
  background-color: rgba(1, 22, 39, 0.1);
}

/* Mobile menu button for chalet page */
.chalet-page-header .mobile-menu-btn {
  color: var(--main-mint-white);
}

/* Dropdown toggle icon for chalet page */
.chalet-page-header .bvc-icon-dropdown-toggle {
  border-color: var(--main-mint-white) transparent transparent transparent;
}

/* Chalet Stats Section - Below hero */
.chalet-stats-section {
  background-color: var(--main-mint-white);
  padding: 7rem 2rem 1rem;
  display: flex;
  justify-content: center;
}

/* Inverse navbar styles for chalet pages */
.nav-link.inverse {
  color: var(--main-mint-white);
}

.nav-link.inverse:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.nav-dropdown.inverse {
  color: var(--main-mint-white);
}

.dropdown-list.inverse {
  background-color: var(--main-navy-black);
}

.dropdown-link.inverse {
  color: var(--main-mint-white);
}

.dropdown-link.inverse:hover {
  background-color: var(--navy-on-hover);
}

/* Chalet page dropdown - override default behavior */
.chalet-page-nav .nav-link.bvc-dropdown {
  position: relative;
  cursor: pointer;
}

.chalet-page-nav .nav-link.bvc-dropdown .dropdown-list {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  flex-direction: column;
  min-width: 12rem;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.chalet-page-nav .nav-link.bvc-dropdown:hover .dropdown-list {
  display: flex;
}

.bvc-icon-dropdown-toggle.inverse {
  color: var(--main-mint-white);
}

.mobile-menu-btn.inverse {
  color: var(--main-mint-white);
}

/* Chalet Hero Section */
.chalet-hero-section {
  height: 884px;
  background-size: cover;
  background-position: center 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 4rem 2rem 4rem;
  margin-top: 0;
  position: relative;
}

.chalet-hero-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.15) 41.33%, rgba(0, 0, 0, 0.20) 69.36%), linear-gradient(0deg, rgba(0, 0, 0, 0.40) 0%, rgba(0, 0, 0, 0.40) 100%);
  z-index: 1;
}

.chalet-hero-section > * {
  position: relative;
  z-index: 2;
}

.chalet-hero-content {
  text-align: center;
  color: var(--main-mint-white);
}

.chalet-hero-title {
  font-family: Bitter, serif;
  font-size: 4rem;
  font-weight: 400;
  margin: 0 0 2rem;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.5);
}

.chalet-hero-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.chalet-hero-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  color: var(--main-mint-white);
  text-decoration: none;
  font-size: 1rem;
  transition: opacity 0.2s ease;
}

.chalet-hero-link:hover {
  opacity: 0.8;
}

.chalet-hero-link svg {
  color: var(--main-mint-white);
}

/* Gallery Link at Bottom of Hero */
.chalet-hero-gallery-link {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}

.chalet-hero-gallery-link .chalet-hero-link {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
}

.chalet-hero-gallery-link .chalet-hero-link svg {
  width: 1.25rem;
  height: 1.25rem;
  transition: transform 0.3s ease;
}

.chalet-hero-gallery-link .chalet-hero-link:hover svg {
  transform: translateY(3px);
}

/* Chalet Details Section */
.chalet-details-section {
  background-color: var(--main-mint-white);
  padding: 4rem 2rem;
}

.chalet-details-container {
  max-width: 60rem;
  margin: 0 auto;
  text-align: center;
}

.chalet-stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
}

.chalet-stat {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  color: var(--main-navy-black);
}

.chalet-stat svg {
  width: 1.2rem;
  height: 1.2rem;
}

.chalet-description {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--main-navy-black);
  max-width: 50rem;
  margin: 0 auto 3rem;
}

.chalet-amenities-divider {
  border-top: 1px solid var(--main-navy-black);
  padding-top: 2rem;
}

.chalet-amenities-intro {
  font-size: 0.95rem;
  margin-bottom: 1.5rem;
  color: var(--main-navy-black);
}

.chalet-amenities-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
}

.chalet-amenity {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: var(--main-navy-black);
}

.chalet-amenity svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* Chalet Bedroom Configuration */
.chalet-bedroom-config {
  max-width: 50rem;
  margin: 0 auto 2rem;
}

.chalet-bedroom-config h3 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 0.5rem;
}

.chalet-bedroom-config p {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--main-navy-black);
}

/* Chalet Full Amenities */
.chalet-full-amenities {
  border-top: 1px solid var(--main-navy-black);
  padding-top: 2rem;
  margin-top: 2rem;
  max-width: 50rem;
  margin-left: auto;
  margin-right: auto;
}

.chalet-full-amenities h3 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 1.25rem;
}

.chalet-full-amenities-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}

.chalet-full-amenity-item {
  display: inline-block;
  font-size: 0.85rem;
  color: var(--main-navy-black);
  background-color: var(--main-mint-white);
  padding: 0.4rem 0.85rem;
  border-radius: 1px;
  border: 1px solid rgba(1, 22, 39, 0.12);
}

/* Chalet Policies */
.chalet-policies {
  border-top: 1px solid var(--main-navy-black);
  padding-top: 2rem;
  margin-top: 2rem;
  max-width: 50rem;
  margin-left: auto;
  margin-right: auto;
}

.chalet-policies h3 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 1.25rem;
}

.chalet-policies-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.chalet-policy-item h4 {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 0.5rem;
}

.chalet-policy-item p {
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--main-navy-black);
}

@media screen and (max-width: 767px) {
  .chalet-policies-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

/* Chalet Gallery Section */
.chalet-gallery-section {
  background-color: var(--main-mint-white);
  padding: 2rem;
}

.chalet-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  max-width: 75rem;
  margin: 0 auto;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 4/3;
}

.gallery-item-large {
  grid-column: span 2;
  grid-row: span 2;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.gallery-item {
  cursor: pointer;
}

.gallery-item:hover img {
  transform: scale(1.05);
}

.gallery-item-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(1, 22, 39, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.gallery-item-overlay span {
  color: white;
  font-family: var(--font-family-poppins);
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.gallery-item:hover .gallery-item-overlay {
  opacity: 1;
}

/* Lightbox Modal */
.lightbox-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.95);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

.lightbox-close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  background: none;
  border: none;
  color: white;
  cursor: pointer;
  padding: 0.5rem;
  z-index: 10001;
  transition: opacity 0.2s ease;
}

.lightbox-close:hover {
  opacity: 0.7;
}

.lightbox-content {
  max-width: 90vw;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lightbox-content img {
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  border-radius: 4px;
  cursor: grab;
  user-select: none;
  -webkit-user-drag: none;
}

.lightbox-content.is-dragging img {
  cursor: grabbing;
}

.lightbox-content.is-dragging {
  cursor: grabbing;
}

.lightbox-counter {
  color: white;
  font-family: var(--font-family-poppins);
  font-size: 0.875rem;
  margin-top: 1rem;
  opacity: 0.8;
}

.lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.1);
  border: none;
  color: white;
  cursor: pointer;
  padding: 1rem;
  border-radius: 50%;
  transition: background 0.2s ease;
  z-index: 10001;
}

.lightbox-nav:hover {
  background: rgba(255, 255, 255, 0.2);
}

.lightbox-prev {
  left: 1.5rem;
}

.lightbox-next {
  right: 1.5rem;
}

@media screen and (max-width: 767px) {
  .lightbox-nav {
    padding: 0.5rem;
  }

  .lightbox-prev {
    left: 0.5rem;
  }

  .lightbox-next {
    right: 0.5rem;
  }

  .lightbox-close {
    top: 1rem;
    right: 1rem;
  }
}

/* Chalet CTA Section */
.chalet-cta-section {
  background-color: var(--main-mint-white);
  padding: 3rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.chalet-cta-line svg {
  color: var(--main-navy-black);
}

/* Other Chalets Section */
.chalet-other-section {
  background-color: var(--main-mint-white);
  padding: 5rem 2rem;
}

.chalet-other-title {
  font-family: Bitter, serif;
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  color: var(--main-navy-black);
  margin-bottom: 2.5rem;
  letter-spacing: -0.02em;
}

/* Carousel Container */
.chalet-carousel-container {
  position: relative;
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 3.5rem;
}

.chalet-carousel-track-wrapper {
  overflow: hidden;
  width: 100%;
  --cards-visible: 3;
  --gap: 1.5rem;
}

/* Drag-to-scroll only enabled on mobile/tablet */
.chalet-carousel-track-wrapper.drag-enabled {
  cursor: grab;
  user-select: none;
}

.chalet-carousel-track-wrapper.drag-enabled.is-dragging {
  cursor: grabbing;
}

.chalet-carousel-track-wrapper.drag-enabled.is-dragging .other-chalet-card a {
  pointer-events: none;
}

.chalet-carousel-track {
  display: flex;
  gap: var(--gap);
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.other-chalet-card {
  flex: 0 0 calc((100% - (var(--cards-visible) - 1) * var(--gap)) / var(--cards-visible));
  background: rgba(1, 22, 39, 0.03);
  border-radius: 0;
  overflow: hidden;
  border: 1px solid rgba(1, 22, 39, 0.08);
  transition: all 0.3s ease;
  box-sizing: border-box;
}

.other-chalet-card:hover {
  background: rgba(1, 22, 39, 0.06);
  border-color: rgba(1, 22, 39, 0.15);
  transform: translateY(-4px);
}

/* Carousel Arrows */
.chalet-carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: var(--main-navy-black);
  border: none;
  border-radius: 50%;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  z-index: 10;
}

.chalet-carousel-arrow:hover {
  background: rgba(1, 22, 39, 0.7);
}

.chalet-carousel-arrow:hover svg {
  stroke: white;
}

.chalet-carousel-arrow svg {
  width: 18px;
  height: 18px;
  stroke: white;
  transition: stroke 0.2s ease;
}

.chalet-carousel-prev {
  left: 0;
}

.chalet-carousel-next {
  right: 0;
}

.other-chalet-image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/10;
}

.other-chalet-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.other-chalet-card:hover .other-chalet-image img {
  transform: scale(1.05);
}

.other-chalet-info {
  padding: 1.25rem 1.25rem 1.5rem;
}

.other-chalet-name {
  font-family: Bitter, serif;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 0.6rem;
}

.other-chalet-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  font-size: 0.85rem;
  color: #4a5568;
  margin-bottom: 0.6rem;
}

.other-chalet-stats span {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.other-chalet-stats svg {
  width: 0.9rem;
  height: 0.9rem;
  opacity: 0.7;
}

.other-chalet-pet {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.8rem;
  color: #38a169;
  background: rgba(56, 161, 105, 0.1);
  padding: 0.25rem 0.6rem;
  border-radius: 4px;
  margin-bottom: 0.75rem;
}

.other-chalet-pet svg {
  width: 0.85rem;
  height: 0.85rem;
}

.other-chalet-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  font-size: 0.9rem;
  color: var(--main-navy-black);
  font-weight: 500;
  transition: gap 0.2s ease;
}

.other-chalet-link:hover {
  gap: 0.5rem;
}

.other-chalet-link .btn-text {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.other-chalet-link .svg-1-5rem {
  width: 1rem;
  height: 1rem;
}

.chalet-carousel-dots {
  display: flex;
  justify-content: center;
  gap: 0.6rem;
  margin-top: 2rem;
}

.chalet-carousel-dots .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: rgba(1, 22, 39, 0.2);
  transition: all 0.3s ease;
  border: none;
  padding: 0;
  cursor: pointer;
}

.chalet-carousel-dots .dot:hover {
  background-color: rgba(1, 22, 39, 0.4);
}

.chalet-carousel-dots .dot.active {
  background-color: var(--main-navy-black);
  width: 24px;
  border-radius: 4px;
}

/* Mountains Divider */
.chalet-mountains-divider {
  background-color: var(--main-mint-white);
  margin-bottom: -1px;
}

.chalet-mountains-divider svg {
  display: block;
  width: 100%;
  height: auto;
}

/* Responsive Chalet Page Styles */
@media screen and (max-width: 991px) {
  .chalet-navbar {
    padding: 1rem 2rem;
  }

  .chalet-hero-title {
    font-size: 3rem;
  }

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

  .gallery-item-large {
    grid-column: span 2;
    grid-row: span 1;
  }

  /* Carousel shows 2 cards on tablet */
  .chalet-carousel-track-wrapper {
    --cards-visible: 2;
  }

  .chalet-carousel-container {
    padding: 0 3rem;
  }

  .chalet-carousel-arrow {
    width: 38px;
    height: 38px;
  }

  .chalet-carousel-arrow svg {
    width: 16px;
    height: 16px;
  }

  .chalet-other-section {
    padding: 4rem 1.5rem;
  }
}

@media screen and (max-width: 767px) {
  .chalet-return-bar {
    padding: 0.3rem 1rem;
  }

  .chalet-return-link {
    font-size: 0.75rem;
  }

  /* Hide Book Now button and nav items on mobile */
  .chalet-page-header .chalet-book-btn {
    display: none;
  }

  .chalet-page-header .header-nav-items {
    display: none;
  }

  .chalet-page-header .navbar-container {
    padding: 0.5rem 1rem;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
  }

  /* 4rem gap below header when mobile menu is open on chalet pages */
  .chalet-nav-wrapper ~ .mobile-menu-overlay .mobile-menu-nav {
    margin-top: 4rem;
  }

  .chalet-hero-section {
    min-height: 60vh;
    padding: 3rem 1rem 3rem;
    margin-top: 0;
  }

  .chalet-hero-title {
    font-size: 2.5rem;
  }

  .chalet-hero-gallery-link {
    bottom: 2rem;
  }

  .chalet-stats {
    gap: 1rem;
  }

  .chalet-stat {
    font-size: 0.9rem;
  }

  .chalet-stats-section {
    padding: 4rem 1rem 1rem;
  }

  .chalet-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery-item-large {
    grid-column: span 2;
  }

  /* Carousel shows 1 card on mobile */
  .chalet-carousel-track-wrapper {
    --cards-visible: 1;
    --gap: 1rem;
  }

  .chalet-carousel-container {
    padding: 0 2.5rem;
  }

  .chalet-carousel-arrow {
    width: 32px;
    height: 32px;
  }

  .chalet-carousel-arrow:hover {
    transform: translateY(-50%);
  }

  .chalet-carousel-arrow svg {
    width: 14px;
    height: 14px;
  }

  .chalet-other-section {
    padding: 3rem 1rem;
  }

  .chalet-other-title {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .other-chalet-info {
    padding: 1rem;
  }

  .other-chalet-name {
    font-size: 1.1rem;
  }

  .chalet-amenities-list {
    gap: 1rem;
  }
}

@media screen and (max-width: 479px) {
  .chalet-return-bar {
    padding: 0.25rem 0.75rem;
  }

  .chalet-return-link {
    font-size: 0.7rem;
  }

  .chalet-return-link svg {
    width: 12px;
    height: 12px;
  }

  .chalet-page-header .navbar-container {
    padding: 0.4rem 0.75rem;
  }

  .chalet-hero-section {
    margin-top: 0;
  }

  .chalet-hero-title {
    font-size: 2rem;
  }

  .chalet-hero-gallery-link {
    bottom: 1.5rem;
  }

  .chalet-hero-gallery-link .chalet-hero-link {
    font-size: 0.9rem;
  }

  .chalet-gallery-grid {
    grid-template-columns: 1fr;
  }

  .gallery-item-large {
    grid-column: span 1;
  }

  .chalet-stats {
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
  }
}

/* ===================================
   SIMPLE NAVBAR FOR BLOG/FAQ PAGES
   =================================== */

.chalet-navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2rem;
  max-width: 75rem;
  margin: 0 auto;
  width: 100%;
}

.chalet-navbar-logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--main-mint-white);
  text-decoration: none;
}

.chalet-navbar-logo .svg-main-logo {
  width: 24px;
  height: 24px;
}

.chalet-navbar-logo .svg-main-logo svg {
  width: 100%;
  height: 100%;
  fill: var(--main-mint-white);
}

.chalet-navbar-logo .brand-logo-text {
  font-family: Bitter, serif;
  font-size: 1.5rem;
  font-weight: 200;
  color: var(--main-mint-white);
}

.chalet-navbar-logo .brand-logo-text .bold {
  font-weight: 600;
}

.chalet-navbar-book {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--main-mint-white);
  text-decoration: none;
  font-family: Poppins, sans-serif;
  font-size: 1rem;
  font-weight: 300;
  transition: opacity 0.2s ease;
}

.chalet-navbar-book:hover {
  opacity: 0.8;
}

.chalet-navbar-book svg {
  width: 20px;
  height: 20px;
  color: var(--main-mint-white);
}

.chalet-mobile-btn {
  display: none;
  background: none;
  border: none;
  color: var(--main-mint-white);
  cursor: pointer;
  padding: 0.5rem;
}

.chalet-mobile-btn svg {
  width: 24px;
  height: 24px;
}

@media screen and (max-width: 767px) {
  .chalet-navbar {
    padding: 0 1rem;
  }

  .chalet-navbar-book {
    display: none;
  }

  .chalet-mobile-btn {
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

/* ===================================
   BLOG PAGE STYLES
   =================================== */

/* Blog Hero Section - minimal height, just for navbar */
.blog-hero-section {
  background-color: var(--main-navy-black);
  padding: 1.5rem 0;
  position: relative;
}

.blog-hero-section .chalet-navbar {
  position: relative;
}

/* Blog Post Hero Section */
.blog-post-hero-section {
  background-color: var(--main-navy-black);
  padding: 1.5rem 0;
  position: relative;
}

.blog-post-hero-section .chalet-navbar {
  position: relative;
}

/* Blog Header Section */
.blog-header-section {
  background-color: var(--main-mint-white);
  padding: 12rem 2rem 3rem;
  text-align: center;
}

.blog-header-container {
  max-width: 50rem;
  margin: 0 auto;
}

.blog-title {
  font-family: Bitter, serif;
  font-size: 3.5rem;
  font-weight: 400;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
}

.blog-subtitle {
  font-size: 1.1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0 0 2.5rem;
  line-height: 1.6;
}

/* Blog Search */
.blog-search-wrapper {
  display: flex;
  max-width: 30rem;
  margin: 0 auto;
  background: white;
  border: 1px solid rgba(1, 22, 39, 0.2);
  border-radius: 4px;
  overflow: hidden;
}

.blog-search-input {
  flex: 1;
  padding: 0.8rem 1rem;
  border: none;
  font-size: 0.95rem;
  font-family: Poppins, sans-serif;
  background: transparent;
  color: var(--main-navy-black);
}

.blog-search-input::placeholder {
  color: rgba(1, 22, 39, 0.5);
}

.blog-search-input:focus {
  outline: none;
}

.blog-search-btn {
  padding: 0.8rem 1rem;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--main-navy-black);
  display: flex;
  align-items: center;
  justify-content: center;
}

.blog-search-btn:hover {
  background: rgba(1, 22, 39, 0.05);
}

/* Blog Posts Section */
.blog-posts-section {
  background-color: var(--main-mint-white);
  padding: 2rem;
}

.blog-posts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  max-width: 75rem;
  margin: 0 auto;
}

/* Blog Card */
.blog-card {
  background: transparent;
}

.blog-card-large {
  grid-column: span 1;
}

.blog-card-image-link {
  display: block;
}

.blog-card-image {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 16/10;
  margin-bottom: 1rem;
}

.blog-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.blog-card:hover .blog-card-image img {
  transform: scale(1.05);
}

.blog-card-content {
  padding: 0.5rem 0;
}

.blog-card-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.75rem;
  font-size: 0.85rem;
}

.blog-card-category {
  color: var(--main-navy-black);
  font-weight: 500;
}

.blog-card-date {
  color: rgba(1, 22, 39, 0.6);
}

.blog-card-title {
  font-family: Bitter, serif;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 0.75rem;
  line-height: 1.4;
}

.blog-card-title a {
  color: inherit;
  text-decoration: none;
}

.blog-card-title a:hover {
  color: var(--blue-link);
}

.blog-card-excerpt {
  font-size: 0.9rem;
  color: rgba(1, 22, 39, 0.8);
  line-height: 1.6;
  margin: 0 0 1rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.blog-card-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--main-navy-black);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  transition: color 0.2s ease;
}

.blog-card-link:hover {
  color: var(--blue-link);
}

.blog-card-link svg {
  width: 1rem;
  height: auto;
}

.blog-no-results {
  text-align: center;
  padding: 4rem 2rem;
  color: var(--main-navy-black);
}

/* Blog Post Page Styles */
.blog-post-back-section {
  background-color: var(--main-mint-white);
  padding: 1.5rem 2rem;
}

.blog-post-back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--main-navy-black);
  text-decoration: none;
  font-size: 0.95rem;
  transition: color 0.2s ease;
}

.blog-post-back-link:hover {
  color: var(--blue-link);
}

.blog-post-article {
  background-color: var(--main-mint-white);
  padding: 0 2rem 4rem;
  max-width: 50rem;
  margin: 0 auto;
}

.blog-post-header {
  text-align: center;
  margin-bottom: 0;
}

.blog-post-meta {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  font-size: 0.9rem;
  flex-wrap: wrap;
}

.blog-post-category {
  background: var(--main-navy-black);
  color: var(--main-mint-white);
  padding: 0.3rem 0.8rem;
  border-radius: 3px;
  font-size: 0.8rem;
  font-weight: 500;
}

.blog-post-date {
  color: rgba(1, 22, 39, 0.7);
}

.blog-post-read-time {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  color: rgba(1, 22, 39, 0.7);
}

.blog-post-title {
  font-family: Bitter, serif;
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
  line-height: 1.3;
}

.blog-post-author {
  color: rgba(1, 22, 39, 0.7);
  font-size: 0.95rem;
  margin: 0;
}

.blog-post-featured-image {
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 3rem;
}

.blog-post-featured-image img {
  width: 100%;
  height: auto;
  display: block;
}

/* Blog Post Content */
.blog-post-content {
  color: var(--main-navy-black);
  line-height: 1.8;
}

.blog-post-p {
  margin: 0 0 1.5rem;
  font-size: 1rem;
}

.blog-post-h2 {
  font-family: Bitter, serif;
  font-size: 1.8rem;
  font-weight: 600;
  margin: 2.5rem 0 1rem;
  color: var(--main-navy-black);
}

.blog-post-h3 {
  font-family: Bitter, serif;
  font-size: 1.4rem;
  font-weight: 600;
  margin: 2rem 0 0.75rem;
  color: var(--main-navy-black);
}

.blog-post-bold {
  font-weight: 600;
  margin: 0 0 1rem;
}

.blog-post-ul,
.blog-post-ol {
  margin: 0 0 1.5rem;
  padding-left: 1.5rem;
}

.blog-post-ul li,
.blog-post-ol li {
  margin-bottom: 0.5rem;
}

/* Blog Post CTA */
.blog-post-cta {
  background: linear-gradient(135deg, var(--main-navy-black) 0%, #032038 100%);
  color: var(--main-mint-white);
  padding: 3rem;
  border-radius: 8px;
  text-align: center;
  margin-top: 3rem;
}

.blog-post-cta h3 {
  font-family: Bitter, serif;
  font-size: 1.8rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.blog-post-cta p {
  margin: 0 0 1.5rem;
  opacity: 0.9;
}

.blog-post-cta-btn {
  background: var(--main-mint-white);
  color: var(--main-navy-black);
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2rem;
  border-radius: 5px;
  text-decoration: none;
  font-weight: 500;
  transition: background 0.2s ease;
}

.blog-post-cta-btn:hover {
  background: var(--mint-on-hover);
}

.blog-post-cta-btn svg {
  width: 1.2rem;
  height: auto;
}

/* Related Posts Section */
.blog-related-section {
  background-color: var(--main-mint-white);
  padding: 4rem 2rem;
}

.blog-related-title {
  font-family: Bitter, serif;
  font-size: 2rem;
  font-weight: 600;
  color: var(--main-navy-black);
  text-align: center;
  margin: 0 0 2.5rem;
}

.blog-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  max-width: 75rem;
  margin: 0 auto;
}

.blog-related-card {
  background: transparent;
}

.blog-related-image-link {
  display: block;
}

.blog-related-image {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 16/10;
  margin-bottom: 1rem;
}

.blog-related-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.blog-related-card:hover .blog-related-image img {
  transform: scale(1.05);
}

.blog-related-content {
  padding: 0.5rem 0;
}

.blog-related-category {
  font-size: 0.8rem;
  color: rgba(1, 22, 39, 0.7);
  font-weight: 500;
  display: block;
  margin-bottom: 0.5rem;
}

.blog-related-card-title {
  font-family: Bitter, serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 0.75rem;
  line-height: 1.4;
}

.blog-related-card-title a {
  color: inherit;
  text-decoration: none;
}

.blog-related-card-title a:hover {
  color: var(--blue-link);
}

.blog-related-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--main-navy-black);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
}

.blog-related-link:hover {
  color: var(--blue-link);
}

.blog-related-link svg {
  width: 0.9rem;
  height: auto;
}

/* Blog Not Found */
.blog-not-found {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 2rem;
  background-color: var(--main-mint-white);
}

.blog-not-found h1 {
  font-family: Bitter, serif;
  color: var(--main-navy-black);
}

.blog-not-found p {
  margin-bottom: 2rem;
  color: var(--main-navy-black);
}

.blog-not-found a {
  color: var(--blue-link);
}

/* Blog Responsive Styles */
@media screen and (max-width: 991px) {
  .blog-title {
    font-size: 2.8rem;
  }

  .blog-posts-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .blog-related-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .blog-post-title {
    font-size: 2rem;
  }
}

@media screen and (max-width: 767px) {
  .blog-header-section {
    padding: 10rem 1.5rem 2rem;
  }

  .blog-title {
    font-size: 2.2rem;
  }

  .blog-subtitle {
    font-size: 1rem;
  }

  .blog-posts-grid {
    grid-template-columns: 1fr;
    max-width: 30rem;
  }

  .blog-card-title {
    font-size: 1.1rem;
  }

  .blog-post-article {
    padding: 0 1.5rem 3rem;
  }

  .blog-post-title {
    font-size: 1.6rem;
  }

  .blog-post-meta {
    gap: 1rem;
  }

  .blog-post-h2 {
    font-size: 1.5rem;
  }

  .blog-post-h3 {
    font-size: 1.2rem;
  }

  .blog-post-cta {
    padding: 2rem 1.5rem;
  }

  .blog-post-cta h3 {
    font-size: 1.4rem;
  }

  .blog-related-section {
    padding: 3rem 1.5rem;
  }

  .blog-related-grid {
    grid-template-columns: 1fr;
    max-width: 25rem;
  }

  .blog-related-title {
    font-size: 1.6rem;
  }
}

@media screen and (max-width: 479px) {
  .blog-title {
    font-size: 1.8rem;
  }

  .blog-search-wrapper {
    flex-direction: column;
  }

  .blog-search-input {
    text-align: center;
  }

  .blog-post-title {
    font-size: 1.4rem;
  }

  .blog-post-cta-btn {
    padding: 0.8rem 1.5rem;
    font-size: 0.9rem;
  }
}

/* ===================================
   ABOUT PAGE STYLES
   =================================== */

/* About Hero Section - with background image */
.about-hero-section {
  background: linear-gradient(180deg, rgba(1, 22, 39, 0.7) 0%, rgba(1, 22, 39, 0.5) 100%), url('/images/omega21.webp');
  background-size: cover;
  background-position: center;
  padding: 1.5rem 0 6rem;
  position: relative;
  min-height: 300px;
  display: flex;
  flex-direction: column;
}

.about-hero-section .chalet-navbar {
  position: relative;
}

/* About Header Section */
.about-header-section {
  background-color: var(--main-mint-white);
  padding: 12rem 2rem 3rem; /* Top padding accounts for fixed navbar */
  text-align: center;
  position: relative;
  z-index: 1;
}

.about-header-container {
  max-width: 50rem;
  margin: 0 auto;
}

.about-title {
  font-family: Bitter, serif;
  font-size: 3rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
}

.about-subtitle {
  font-size: 1.2rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
  line-height: 1.6;
}

/* About Content Container */
.about-content-container {
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 2rem;
}

/* About Story Section */
.about-story-section {
  background-color: var(--main-mint-white);
  padding: 4rem 0;
}

.about-story-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}

.about-story-image {
  border-radius: 0;
  overflow: visible;
  position: relative;
}

.about-story-image img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  position: relative;
  z-index: 1;
}

.about-story-content h2 {
  font-family: Bitter, serif;
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 1.5rem;
}

.about-story-content p {
  color: var(--main-navy-black);
  line-height: 1.8;
  margin: 0 0 1rem;
}

.about-story-content p:last-child {
  margin-bottom: 0;
}

/* About Section Titles */
.about-section-title {
  font-family: Bitter, serif;
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
  text-align: center;
}

.about-section-subtitle {
  font-size: 1.1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0 0 3rem;
  text-align: center;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}

/* About Properties Section */
.about-properties-section {
  background-color: var(--main-navy-black);
  padding: 5rem 0;
}

.about-properties-section .about-section-title,
.about-properties-section .about-section-subtitle {
  color: var(--main-mint-white);
}

.about-properties-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.about-property-card {
  background-color: var(--main-mint-white);
  border-radius: 0;
  overflow: hidden;
}

.about-property-image {
  height: 200px;
  overflow: hidden;
}

.about-property-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.about-property-card:hover .about-property-image img {
  transform: scale(1.05);
}

.about-property-card-link {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.about-property-card-link:hover {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
  transform: translateY(-4px);
}

.about-property-content {
  padding: 1.5rem;
}

.about-property-content h3 {
  font-family: Bitter, serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 0.25rem;
}

.about-property-address {
  font-size: 0.85rem;
  color: var(--main-navy-black);
  opacity: 0.7;
  margin: 0 0 1rem;
}

.about-property-content p {
  color: var(--main-navy-black);
  line-height: 1.6;
  margin: 0 0 1rem;
  font-size: 0.95rem;
}

.about-property-features {
  list-style: none;
  padding: 0;
  margin: 0;
}

.about-property-features li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
  color: var(--main-navy-black);
}

.about-property-features li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.5rem;
  width: 6px;
  height: 6px;
  background-color: var(--main-navy-black);
  border-radius: 50%;
}

/* About Features Section */
.about-features-section {
  background-color: var(--main-mint-white);
  padding: 5rem 0;
}

.about-features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}

.about-feature-card {
  text-align: center;
  padding: 2rem 1.5rem;
  background-color: #DAE8E1;
  border-radius: 0;
}

.about-feature-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 auto 1.5rem;
  color: var(--main-navy-black);
}

.about-feature-card h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
}

.about-feature-card p {
  color: var(--main-navy-black);
  line-height: 1.6;
  margin: 0;
  font-size: 0.95rem;
}

/* About Contact Section */
.about-contact-section {
  background-color: var(--main-mint-white);
  padding: 5rem 0;
  border-top: 1px solid rgba(1, 22, 39, 0.1);
}

.about-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-bottom: 3rem;
}

.about-contact-card {
  text-align: center;
  padding: 2rem;
  background-color: #DAE8E1;
  border-radius: 0;
}

.about-contact-card h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 0.75rem;
}

.about-contact-link {
  display: block;
  font-size: 1.1rem;
  color: var(--blue-link);
  text-decoration: none;
  margin-bottom: 0.5rem;
  word-break: break-word;
}

.about-contact-link:hover {
  text-decoration: underline;
}

.about-contact-card p {
  color: var(--main-navy-black);
  opacity: 0.7;
  font-size: 0.9rem;
  margin: 0;
}

.about-cta-wrapper {
  text-align: center;
}

.about-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2rem;
  background-color: var(--main-navy-black);
  color: var(--main-mint-white);
  font-size: 1.1rem;
  font-weight: 500;
  border-radius: 0;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.about-cta-btn:hover {
  background-color: var(--navy-on-hover);
}

.about-cta-btn svg {
  width: 20px;
  height: 20px;
}

/* About Page Responsive Styles */
@media screen and (max-width: 991px) {
  .about-story-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .about-story-image img {
    height: 300px;
  }

  .about-properties-grid {
    grid-template-columns: 1fr;
    max-width: 500px;
    margin: 0 auto;
  }

  .about-features-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .about-contact-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
    margin: 0 auto 3rem;
  }
}

@media screen and (max-width: 767px) {
  .about-title {
    font-size: 2.25rem;
  }

  .about-section-title {
    font-size: 2rem;
  }

  .about-story-content h2 {
    font-size: 2rem;
  }

  .about-features-grid {
    grid-template-columns: 1fr;
    max-width: 350px;
    margin: 0 auto;
  }
}

@media screen and (max-width: 479px) {
  .about-header-section {
    padding: 7rem 1.5rem 2rem; /* Top padding accounts for mobile navbar */
  }

  .about-title {
    font-size: 1.75rem;
  }

  .about-content-container {
    padding: 0 1.5rem;
  }

  .about-story-section,
  .about-properties-section,
  .about-features-section,
  .about-contact-section {
    padding: 3rem 0;
  }
}

/* ===================================
   FAQ PAGE STYLES
   =================================== */

/* FAQ Hero Section - minimal height, just for navbar */
.faq-hero-section {
  background-color: var(--main-navy-black);
  padding: 1.5rem 0;
  position: relative;
}

.faq-hero-section .chalet-navbar {
  position: relative;
}

/* FAQ Header Section with title */
.faq-header-section {
  background-color: var(--main-mint-white);
  padding: 10rem 2rem 3rem;
  text-align: center;
}

.faq-header-container {
  max-width: 50rem;
  margin: 0 auto;
}

.faq-title {
  font-family: Bitter, serif;
  font-size: 3rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
}

.faq-subtitle {
  font-size: 1.1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
  line-height: 1.6;
}

.faq-contact-link {
  color: var(--blue-link);
  text-decoration: none;
}

.faq-contact-link:hover {
  text-decoration: underline;
}

/* FAQ Category Navigation */
.faq-categories-nav {
  background-color: var(--main-mint-white);
  padding: 0 2rem 3rem;
}

.faq-categories-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  max-width: 60rem;
  margin: 0 auto;
}

.faq-category-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 1.5rem;
  background: #DAE8E1;
  border: 1px solid rgba(1, 22, 39, 0.1);
  border-radius: 0;
  cursor: pointer;
  transition: all 0.2s ease;
  min-width: 120px;
}

.faq-category-btn:hover {
  border-color: var(--main-navy-black);
  background: rgba(1, 22, 39, 0.02);
}

.faq-category-btn.active {
  border-color: var(--main-navy-black);
  background: var(--main-navy-black);
  color: var(--main-mint-white);
}

.faq-category-btn.active .faq-category-icon {
  color: var(--main-mint-white);
}

.faq-category-icon {
  color: var(--main-navy-black);
  display: flex;
  align-items: center;
  justify-content: center;
}

.faq-category-label {
  font-size: 0.85rem;
  font-weight: 500;
  text-align: center;
}

/* FAQ Content Wrapper - full width mint background */
.faq-content-wrapper {
  background-color: var(--main-mint-white);
  padding: 2rem 0;
}

/* FAQ Content Section */
.faq-content-section {
  background-color: var(--main-mint-white);
  padding: 2rem;
  max-width: 60rem;
  margin: 0 auto;
}

.faq-category-section {
  margin-bottom: 3rem;
  scroll-margin-top: 100px;
}

.faq-category-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--main-navy-black);
}

.faq-category-header-icon {
  color: var(--main-navy-black);
  display: flex;
  align-items: center;
}

.faq-category-title {
  font-family: Bitter, serif;
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0;
}

/* FAQ Accordion Items */
.faq-items-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.faq-item {
  background: #DAE8E1;
  border: 1px solid rgba(1, 22, 39, 0.1);
  border-radius: 0;
  overflow: hidden;
  transition: border-color 0.2s ease;
}

.faq-item:hover {
  border-color: rgba(1, 22, 39, 0.3);
}

.faq-item.open {
  border-color: var(--main-navy-black);
}

.faq-item-question {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.25rem 1.5rem;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: Poppins, sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: var(--main-navy-black);
  gap: 1rem;
}

.faq-item-question:hover {
  background: rgba(1, 22, 39, 0.02);
}

.faq-item-icon {
  flex-shrink: 0;
  color: var(--main-navy-black);
  transition: transform 0.3s ease;
  display: flex;
  align-items: center;
}

.faq-item-icon.open {
  transform: rotate(180deg);
}

.faq-item-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
}

.faq-item-answer.open {
  max-height: 500px;
}

.faq-item-answer p {
  padding: 0 1.5rem 1.5rem;
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.7;
  color: rgba(1, 22, 39, 0.8);
}

/* FAQ Contact Section */
.faq-contact-section {
  background: linear-gradient(135deg, var(--main-navy-black) 0%, #032038 100%);
  padding: 4rem 2rem;
}

.faq-contact-container {
  max-width: 40rem;
  margin: 0 auto;
  text-align: center;
  color: var(--main-mint-white);
}

.faq-contact-container h2 {
  font-family: Bitter, serif;
  font-size: 2rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.faq-contact-container p {
  margin: 0 0 2rem;
  opacity: 0.9;
  font-size: 1.05rem;
}

.faq-contact-buttons {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.faq-contact-btn {
  background: var(--main-mint-white);
  color: var(--main-navy-black);
  padding: 1rem 2rem;
  border-radius: 5px;
  text-decoration: none;
  font-weight: 500;
  transition: background 0.2s ease;
  display: inline-flex;
  align-items: center;
}

.faq-contact-btn:hover {
  background: var(--mint-on-hover);
}

.faq-contact-btn-secondary {
  background: transparent;
  color: var(--main-mint-white);
  border: 1px solid var(--main-mint-white);
  padding: 1rem 2rem;
  border-radius: 5px;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.faq-contact-btn-secondary:hover {
  background: rgba(255, 255, 255, 0.1);
}

.faq-contact-btn-secondary svg {
  width: 1rem;
  height: auto;
}

/* FAQ Responsive Styles */
@media screen and (max-width: 991px) {
  .faq-title {
    font-size: 2.5rem;
  }

  .faq-categories-grid {
    gap: 0.75rem;
  }

  .faq-category-btn {
    min-width: 100px;
    padding: 0.75rem 1rem;
  }

  .faq-category-label {
    font-size: 0.8rem;
  }

  .faq-category-title {
    font-size: 1.5rem;
  }
}

@media screen and (max-width: 767px) {
  .faq-header-section {
    padding: 3rem 1.5rem 2rem;
  }

  .faq-title {
    font-size: 2rem;
  }

  .faq-subtitle {
    font-size: 1rem;
  }

  .faq-categories-nav {
    padding: 0 1.5rem 2rem;
  }

  .faq-categories-grid {
    gap: 0.5rem;
  }

  .faq-category-btn {
    flex-direction: row;
    min-width: auto;
    padding: 0.6rem 1rem;
    gap: 0.5rem;
  }

  .faq-category-icon svg {
    width: 18px;
    height: 18px;
  }

  .faq-content-section {
    padding: 1.5rem;
  }

  .faq-category-title {
    font-size: 1.3rem;
  }

  .faq-item-question {
    padding: 1rem;
    font-size: 0.95rem;
  }

  .faq-item-answer p {
    padding: 0 1rem 1rem;
    font-size: 0.9rem;
  }

  .faq-contact-section {
    padding: 3rem 1.5rem;
  }

  .faq-contact-container h2 {
    font-size: 1.6rem;
  }

  .faq-contact-buttons {
    flex-direction: column;
    align-items: center;
  }

  .faq-contact-btn,
  .faq-contact-btn-secondary {
    width: 100%;
    max-width: 280px;
    justify-content: center;
  }
}

@media screen and (max-width: 479px) {
  .faq-title {
    font-size: 1.7rem;
  }

  .faq-categories-grid {
    justify-content: flex-start;
  }

  .faq-category-btn {
    font-size: 0.75rem;
    padding: 0.5rem 0.75rem;
  }

  .faq-category-icon svg {
    width: 16px;
    height: 16px;
  }

  .faq-category-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .faq-item-question {
    padding: 0.875rem;
    font-size: 0.9rem;
  }
}

/* ==========================================================================
   POLICIES, PRIVACY, DISCLOSURES PAGES
   ========================================================================== */

.policies-hero-section {
  background: var(--main-navy-black);
  padding: 1.5rem 0;
}

.policies-nav-wrapper {
  position: relative;
  background: var(--main-navy-black);
}

.policies-nav-wrapper .chalet-page-header {
  position: relative;
}

.policies-header-section {
  padding: 4rem 2rem;
  background: var(--main-mint-white);
  text-align: center;
}

.policies-header-container {
  max-width: 50rem;
  margin: 0 auto;
}

.policies-title {
  font-family: Bitter, serif;
  font-size: 3rem;
  font-weight: 700;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
}

.policies-subtitle {
  font-size: 1.1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
}

.policies-date {
  font-size: 0.9rem;
  color: var(--main-navy-black);
  opacity: 0.6;
  margin-top: 1rem;
}

.policies-content-section {
  padding: 4rem 2rem;
}

.policies-content-container {
  max-width: 50rem;
  margin: 0 auto;
}

.policies-block {
  margin-bottom: 3rem;
}

.policies-block h2 {
  font-family: Bitter, serif;
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--main-mint-white);
}

.policies-block h3 {
  font-family: Poppins, sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 1.5rem 0 0.75rem;
}

.policies-block p {
  margin: 0 0 1rem;
  line-height: 1.7;
}

.policies-block ul {
  margin: 0 0 1rem;
  padding-left: 1.5rem;
}

.policies-block li {
  margin-bottom: 0.5rem;
  line-height: 1.6;
}

.policies-highlight-box {
  background: var(--main-mint-white);
  padding: 1.5rem;
  border-radius: 8px;
  margin: 1rem 0;
}

.policies-highlight-box ul {
  margin-bottom: 0;
}

.policies-highlight-box p {
  margin-bottom: 0;
}

.policies-note {
  font-size: 0.9rem;
  font-style: italic;
  margin-top: 1rem !important;
}

.policies-contact-block {
  background: var(--main-navy-black);
  color: var(--main-mint-white);
  padding: 2.5rem;
  border-radius: 12px;
  text-align: center;
  margin-top: 3rem;
}

.policies-contact-block h2 {
  color: var(--main-mint-white);
  border-bottom: none;
  margin-bottom: 1rem;
}

.policies-contact-block p {
  color: var(--main-mint-white);
  opacity: 0.9;
}

.policies-contact-links {
  display: flex;
  gap: 2rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}

.policies-contact-link {
  color: var(--main-mint-white);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.policies-contact-link:hover {
  opacity: 0.8;
}

.policies-address {
  margin-top: 1.5rem;
  font-size: 0.9rem;
  opacity: 0.8;
}

@media (max-width: 768px) {
  .policies-title {
    font-size: 2.25rem;
  }

  .policies-block h2 {
    font-size: 1.5rem;
  }

  .policies-contact-links {
    flex-direction: column;
    gap: 1rem;
  }
}

/* ==========================================================================
   GROUPS / LARGE FAMILY REUNIONS PAGE
   ========================================================================== */

.groups-hero-section {
  background: linear-gradient(180deg, rgba(1, 22, 39, 0.7) 0%, rgba(1, 22, 39, 0.5) 100%), url('/images/chalets/corona/corona3.webp');
  background-size: cover;
  background-position: center;
  padding: 1.5rem 0 6rem;
  min-height: 300px;
}

.groups-header-section {
  padding: 4rem 2rem;
  background: var(--main-mint-white);
  text-align: center;
}

.groups-header-container {
  max-width: 50rem;
  margin: 0 auto;
}

.groups-label {
  display: inline-block;
  background: var(--main-navy-black);
  color: var(--main-mint-white);
  padding: 0.5rem 1rem;
  border-radius: 4px;
  font-size: 0.85rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1.5rem;
}

.groups-title {
  font-family: Bitter, serif;
  font-size: 3rem;
  font-weight: 700;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
  padding-top: 8rem;
}

.groups-subtitle {
  font-size: 1.1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}

.groups-content-container {
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.groups-section-title {
  font-family: Bitter, serif;
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--main-navy-black);
  text-align: center;
  margin: 0 0 0.75rem;
}

.groups-section-subtitle {
  text-align: center;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0 0 3rem;
}

/* Groups Image Showcase */
.groups-image-showcase {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.groups-showcase-item {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}

.groups-showcase-img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.groups-showcase-item:hover .groups-showcase-img {
  transform: scale(1.03);
}

.groups-showcase-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(0,0,0,0.75));
  color: white;
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
}

@media screen and (max-width: 600px) {
  .groups-image-showcase {
    grid-template-columns: 1fr;
  }

  .groups-showcase-img {
    height: 200px;
  }
}

/* Capacity Section */
.groups-capacity-section {
  padding: 4rem 0;
}

.groups-capacity-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}

.groups-capacity-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 0;
  text-align: center;
}

.groups-capacity-number {
  font-family: Bitter, serif;
  font-size: 3.5rem;
  font-weight: 700;
  color: var(--main-navy-black);
  line-height: 1;
}

.groups-capacity-label {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 0.5rem 0;
}

.groups-capacity-card p {
  font-size: 0.9rem;
  color: var(--main-navy-black);
  opacity: 0.7;
  margin: 0;
}

/* Amenities Section */
.groups-amenities-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.groups-amenities-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.groups-amenity-card {
  background: white;
  padding: 2rem;
  border-radius: 0;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.groups-amenity-icon {
  color: var(--main-navy-black);
  margin-bottom: 1rem;
}

.groups-amenity-card h3 {
  font-family: Poppins, sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.groups-amenity-card p {
  font-size: 0.9rem;
  color: var(--main-navy-black);
  opacity: 0.7;
  margin: 0;
}

/* Rooms Section */
.groups-rooms-section {
  padding: 4rem 0;
}

.groups-rooms-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}

.groups-room-card {
  text-align: center;
  padding: 1.5rem;
  border: 2px solid var(--main-mint-white);
  border-radius: 0;
}

.groups-room-number {
  font-family: Bitter, serif;
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--main-navy-black);
}

.groups-room-card h3 {
  font-size: 1rem;
  font-weight: 600;
  margin: 0.5rem 0;
}

.groups-room-card p {
  font-size: 0.85rem;
  opacity: 0.7;
  margin: 0;
}

/* Events Section */
.groups-events-section {
  padding: 4rem 0;
  background: var(--main-mint-white);
}

.groups-events-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

.groups-event-card {
  background: white;
  padding: 2rem;
  border-radius: 0;
}

.groups-event-card h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.groups-event-card p {
  margin: 0;
  line-height: 1.6;
}

/* Location Section */
.groups-location-section {
  padding: 4rem 0;
}

.groups-location-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.groups-location-content h2 {
  font-family: Bitter, serif;
  font-size: 2rem;
  margin: 0 0 1rem;
}

.groups-location-content p {
  margin: 0 0 1.5rem;
}

.groups-location-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.groups-location-list li {
  padding: 0.5rem 0;
  padding-left: 1.5rem;
  position: relative;
}

.groups-location-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--main-navy-black);
  font-weight: 600;
}

.groups-location-image img {
  width: 100%;
  border-radius: 0;
  object-fit: cover;
}

/* Activities Section */
.groups-activities-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.groups-activities-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}

.groups-activities-column h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--main-mint-white);
}

.groups-activities-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.groups-activities-column li {
  padding: 0.5rem 0;
  border-bottom: 1px solid #eee;
}

/* Planning Section */
.groups-planning-section {
  padding: 4rem 0;
}

.groups-services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}

.groups-service-item h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  margin: 0 0 0.75rem;
}

.groups-service-item p {
  margin: 0 0 1rem;
}

.groups-service-item ul {
  margin: 0;
  padding-left: 1.25rem;
}

.groups-service-item li {
  margin-bottom: 0.5rem;
}

/* CTA Section */
.groups-cta-section {
  padding: 4rem 0;
}

.groups-cta-box {
  background: var(--main-navy-black);
  color: var(--main-mint-white);
  padding: 3rem;
  border-radius: 0;
  text-align: center;
}

.groups-cta-box h2 {
  color: var(--main-mint-white);
  font-size: 2rem;
  margin: 0 0 1rem;
}

.groups-cta-box p {
  color: var(--main-mint-white);
  opacity: 0.9;
  margin: 0 0 2rem;
}

.groups-cta-buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

.groups-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--main-mint-white);
  color: var(--main-navy-black);
  border: none;
}

.groups-cta-btn:hover {
  background: var(--mint-on-hover);
  color: var(--main-navy-black);
}

.groups-cta-btn-alt {
  background: transparent;
  border: 2px solid var(--main-mint-white);
  color: var(--main-mint-white);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.groups-cta-btn-alt svg {
  width: 1rem;
  height: 1rem;
  stroke: var(--main-mint-white);
  transition: transform 0.2s ease;
}

.groups-cta-btn-alt:hover {
  border-color: white;
}

.groups-cta-btn-alt:hover svg {
  transform: translateX(4px);
}

.groups-cta-note {
  font-size: 0.85rem;
  opacity: 0.7;
  margin-top: 1.5rem !important;
}

@media (max-width: 992px) {
  .groups-capacity-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .groups-amenities-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .groups-rooms-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .groups-location-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .groups-activities-grid {
    grid-template-columns: 1fr;
  }

  .groups-services-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .groups-title {
    font-size: 2.25rem;
  }

  .groups-capacity-grid {
    grid-template-columns: 1fr 1fr;
  }

  .groups-amenities-grid {
    grid-template-columns: 1fr;
  }

  .groups-events-grid {
    grid-template-columns: 1fr;
  }

  .groups-cta-box {
    padding: 2rem;
  }
}

/* ==========================================================================
   THINGS TO DO PAGE
   ========================================================================== */

.things-hero-section {
  background: linear-gradient(180deg, rgba(1, 22, 39, 0.7) 0%, rgba(1, 22, 39, 0.5) 100%), url('/images/things-to-do/fall-lake-reflection.webp');
  background-size: cover;
  background-position: center;
  padding: 1.5rem 0 6rem;
  min-height: 300px;
}

.things-header-section {
  padding: 12rem 2rem 4rem;
  background: var(--main-mint-white);
  text-align: center;
}

.things-header-container {
  max-width: 50rem;
  margin: 0 auto;
}

.things-title {
  font-family: Bitter, serif;
  font-size: 3rem;
  font-weight: 700;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
}

.things-subtitle {
  font-size: 1.1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
}

/* Things To Do Seasons Showcase */
.things-seasons-showcase {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
}

.season-showcase-item {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}

.season-showcase-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.season-showcase-item:hover .season-showcase-img {
  transform: scale(1.05);
}

.season-showcase-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(0,0,0,0.75));
  color: white;
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .things-seasons-showcase {
    grid-template-columns: 1fr;
  }

  .season-showcase-img {
    height: 180px;
  }
}

.things-content-container {
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.things-section-title {
  font-family: Bitter, serif;
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--main-navy-black);
  text-align: center;
  margin: 0 0 2rem;
}

.things-section-subtitle {
  text-align: center;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0 0 3rem;
}

/* Season Tabs */
.things-seasons-section {
  padding: 4rem 0;
}

.things-season-tabs {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}

.things-season-tab {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  background: white;
  border: 2px solid var(--main-mint-white);
  border-radius: 50px;
  cursor: pointer;
  font-family: Poppins, sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: var(--main-navy-black);
  transition: all 0.2s ease;
}

.things-season-tab:hover {
  background: var(--main-mint-white);
}

.things-season-tab.active {
  background: var(--main-navy-black);
  border-color: var(--main-navy-black);
  color: var(--main-mint-white);
}

.things-season-tab svg {
  flex-shrink: 0;
}

/* Activities Grid */
.things-activities-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.things-activity-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 0;
}

.things-activity-icon {
  color: var(--main-navy-black);
  margin-bottom: 1rem;
}

.things-activity-card h3 {
  font-family: Poppins, sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.things-activity-card p {
  font-size: 0.9rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
  line-height: 1.6;
}

/* Attractions Section */
.things-attractions-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.things-attraction-cards {
  display: grid;
  gap: 2rem;
}

.things-attraction-card {
  display: grid;
  grid-template-columns: 300px 1fr;
  background: white;
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.things-attraction-featured {
  grid-column: 1 / -1;
  grid-template-columns: 1fr;
}

.things-attraction-image {
  overflow: hidden;
}

.things-attraction-card:not(.things-attraction-featured) .things-attraction-image {
  height: 100%;
  min-height: 200px;
}

.things-attraction-featured .things-attraction-image {
  height: 380px;
}

.things-attraction-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.things-attraction-content {
  padding: 2rem;
}

.things-attraction-content h3 {
  font-family: Bitter, serif;
  font-size: 1.5rem;
  margin: 0 0 1rem;
}

.things-attraction-content p {
  margin: 0 0 1rem;
  line-height: 1.6;
}

.things-attraction-content ul {
  margin: 0;
  padding-left: 1.25rem;
}

.things-attraction-content li {
  margin-bottom: 0.5rem;
}

.things-attraction-note {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--main-navy-black);
  opacity: 0.7;
}

/* Day Trips */
.things-daytrips-section {
  padding: 4rem 0;
}

.things-daytrips-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.things-daytrip-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 0;
}

.things-daytrip-card h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  margin: 0 0 0.5rem;
}

.things-daytrip-card p {
  font-size: 0.9rem;
  line-height: 1.6;
  margin: 0 0 1rem;
}

.things-daytrip-distance {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--main-navy-black);
  opacity: 0.7;
}

/* Location Section */
.things-location-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.things-location-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}

.things-location-card {
  background: white;
  padding: 2rem;
  border-radius: 0;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.things-location-card h3 {
  font-family: Poppins, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.things-location-card p {
  font-size: 0.9rem;
  margin: 0;
  opacity: 0.8;
}

/* CTA Section */
.things-cta-section {
  padding: 4rem 0;
}

.things-cta-box {
  background: var(--main-navy-black);
  color: var(--main-mint-white);
  padding: 3rem;
  border-radius: 0;
  text-align: center;
}

.things-cta-box h2 {
  color: var(--main-mint-white);
  font-size: 2rem;
  margin: 0 0 1rem;
}

.things-cta-box p {
  color: var(--main-mint-white);
  opacity: 0.9;
  margin: 0 0 2rem;
}

.things-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background-color: var(--main-mint-white);
  white-space: nowrap;
}

.things-cta-btn svg {
  width: 1.25rem;
  height: auto;
  transition: transform 0.3s ease;
}

.things-cta-btn:hover {
  background-color: var(--mint-on-hover);
}

.things-cta-btn:hover svg {
  transform: translateX(4px);
}

@media (max-width: 992px) {
  .things-activities-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .things-attraction-card {
    grid-template-columns: 1fr;
  }

  .things-attraction-card .things-attraction-image {
    height: 200px;
  }

  .things-attraction-featured .things-attraction-image {
    height: 240px;
  }

  .things-daytrips-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .things-location-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .things-title {
    font-size: 2.25rem;
  }

  .things-season-tabs {
    gap: 0.5rem;
  }

  .things-season-tab {
    padding: 0.75rem 1.25rem;
    font-size: 0.9rem;
  }

  .things-season-tab span {
    display: none;
  }

  .things-activities-grid {
    grid-template-columns: 1fr;
  }

  .things-daytrips-grid {
    grid-template-columns: 1fr;
  }

  .things-location-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   CORPORATE RETREATS PAGE
   ========================================================================== */

.corporate-hero-section {
  background: linear-gradient(180deg, rgba(1, 22, 39, 0.7) 0%, rgba(1, 22, 39, 0.5) 100%), url('/images/chalets/vista/vista17.webp');
  background-size: cover;
  background-position: center;
  padding: 8rem 0 6rem;
  min-height: 300px;
}

.corporate-header-section {
  padding: 12rem 2rem 4rem;
  background: var(--main-mint-white);
  text-align: center;
}

.corporate-header-container {
  max-width: 50rem;
  margin: 0 auto;
}

.corporate-label {
  display: inline-block;
  background: var(--main-navy-black);
  color: var(--main-mint-white);
  padding: 0.5rem 1rem;
  border-radius: 4px;
  font-size: 0.85rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1.5rem;
}

.corporate-title {
  font-family: Bitter, serif;
  font-size: 3rem;
  font-weight: 700;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
}

.corporate-subtitle {
  font-size: 1.1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
}

.corporate-content-container {
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.corporate-section-title {
  font-family: Bitter, serif;
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--main-navy-black);
  text-align: center;
  margin: 0 0 0.75rem;
}

.corporate-section-subtitle {
  text-align: center;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0 0 3rem;
}

/* Corporate Image Showcase */
.corporate-image-showcase {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.corporate-showcase-item {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}

.corporate-showcase-img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.corporate-showcase-item:hover .corporate-showcase-img {
  transform: scale(1.03);
}

.corporate-showcase-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(0,0,0,0.75));
  color: white;
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
}

@media screen and (max-width: 600px) {
  .corporate-image-showcase {
    grid-template-columns: 1fr;
  }

  .corporate-showcase-img {
    height: 200px;
  }
}

/* Features */
.corporate-features-section {
  padding: 4rem 0;
}

.corporate-features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.corporate-feature-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 12px;
  text-align: center;
}

.corporate-feature-icon {
  color: var(--main-navy-black);
  margin-bottom: 1rem;
}

.corporate-feature-card h3 {
  font-family: Poppins, sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.corporate-feature-card p {
  font-size: 0.9rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
  line-height: 1.6;
}

/* Types Section */
.corporate-types-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.corporate-types-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

.corporate-type-card {
  background: white;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.corporate-type-card h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.corporate-type-card p {
  margin: 0 0 1rem;
  line-height: 1.6;
}

.corporate-type-card ul {
  margin: 0;
  padding-left: 1.25rem;
}

.corporate-type-card li {
  margin-bottom: 0.5rem;
}

/* Capacity */
.corporate-capacity-section {
  padding: 4rem 0;
}

.corporate-capacity-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.corporate-capacity-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 12px;
  text-align: center;
}

.corporate-capacity-range {
  font-family: Bitter, serif;
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--main-navy-black);
}

.corporate-capacity-card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0.5rem 0;
}

.corporate-capacity-card p {
  font-size: 0.9rem;
  opacity: 0.7;
  margin: 0;
}

/* Activities */
.corporate-activities-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.corporate-activities-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}

.corporate-activities-column h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--main-mint-white);
}

.corporate-activities-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.corporate-activities-column li {
  padding: 0.5rem 0;
  border-bottom: 1px solid #eee;
}

/* Location */
.corporate-location-section {
  padding: 4rem 0;
}

.corporate-location-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.corporate-location-content h2 {
  font-family: Bitter, serif;
  font-size: 2rem;
  margin: 0 0 1rem;
}

.corporate-location-content p {
  margin: 0 0 1.5rem;
}

.corporate-location-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.corporate-location-list li {
  padding: 0.5rem 0;
  padding-left: 1.5rem;
  position: relative;
}

.corporate-location-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--main-navy-black);
  font-weight: 600;
}

.corporate-location-image img {
  width: 100%;
  border-radius: 12px;
  object-fit: cover;
}

/* Quote */
.corporate-quote-section {
  padding: 4rem 0;
  background: var(--main-mint-white);
}

.corporate-quote-box {
  max-width: 50rem;
  margin: 0 auto;
  text-align: center;
}

.corporate-quote-text {
  font-family: Bitter, serif;
  font-size: 1.5rem;
  font-style: italic;
  line-height: 1.6;
  color: var(--main-navy-black);
  margin: 0;
}

/* CTA */
.corporate-cta-section {
  padding: 4rem 0;
}

.corporate-cta-box {
  background: var(--main-navy-black);
  color: var(--main-mint-white);
  padding: 3rem;
  border-radius: 12px;
  text-align: center;
}

.corporate-cta-box h2 {
  color: var(--main-mint-white);
  font-size: 2rem;
  margin: 0 0 1rem;
}

.corporate-cta-box p {
  color: var(--main-mint-white);
  opacity: 0.9;
  margin: 0 0 2rem;
}

.corporate-cta-buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

.corporate-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background-color: var(--main-mint-white);
}

.corporate-cta-btn:hover {
  background-color: var(--mint-on-hover);
}

.corporate-cta-btn-alt {
  background: transparent;
  border: 2px solid var(--main-mint-white);
  color: var(--main-mint-white);
}

.corporate-cta-note {
  font-size: 0.85rem;
  opacity: 0.7;
  margin-top: 1.5rem !important;
}

@media (max-width: 992px) {
  .corporate-features-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .corporate-types-grid {
    grid-template-columns: 1fr;
  }

  .corporate-capacity-grid {
    grid-template-columns: 1fr;
  }

  .corporate-activities-grid {
    grid-template-columns: 1fr;
  }

  .corporate-location-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

@media (max-width: 768px) {
  .corporate-title {
    font-size: 2.25rem;
  }

  .corporate-features-grid {
    grid-template-columns: 1fr;
  }

  .corporate-quote-text {
    font-size: 1.25rem;
  }

  .corporate-cta-box {
    padding: 2rem;
  }
}

/* ==========================================================================
   WEDDINGS PAGE
   ========================================================================== */

.weddings-hero-section {
  background: linear-gradient(180deg, rgba(1, 22, 39, 0.7) 0%, rgba(1, 22, 39, 0.5) 100%), url('/images/chalets/stella/stella6.webp');
  background-size: cover;
  background-position: center;
  padding: 1.5rem 0 6rem;
  min-height: 300px;
}

.weddings-header-section {
  padding: 12rem 2rem 4rem 2rem;
  background: var(--main-mint-white);
  text-align: center;
}

.weddings-header-container {
  max-width: 50rem;
  margin: 0 auto;
}

.weddings-label {
  display: inline-block;
  background: var(--main-navy-black);
  color: var(--main-mint-white);
  padding: 0.5rem 1rem;
  border-radius: 4px;
  font-size: 0.85rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1.5rem;
}

.weddings-title {
  font-family: Bitter, serif;
  font-size: 3rem;
  font-weight: 700;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
}

.weddings-subtitle {
  font-size: 1.1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
}

.weddings-content-container {
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.weddings-section-title {
  font-family: Bitter, serif;
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--main-navy-black);
  text-align: center;
  margin: 0 0 0.75rem;
}

.weddings-section-subtitle {
  text-align: center;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0 0 3rem;
}

/* Weddings Image Showcase */
.weddings-image-showcase {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.weddings-showcase-item {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}

.weddings-showcase-img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.weddings-showcase-item:hover .weddings-showcase-img {
  transform: scale(1.03);
}

.weddings-showcase-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(0,0,0,0.75));
  color: white;
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
}

@media screen and (max-width: 600px) {
  .weddings-image-showcase {
    grid-template-columns: 1fr;
  }

  .weddings-showcase-img {
    height: 200px;
  }
}

/* Events Section */
.weddings-events-section {
  padding: 4rem 0;
}

.weddings-events-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.weddings-event-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 12px;
}

.weddings-event-featured {
  grid-column: 1 / -1;
}

.weddings-event-icon {
  color: var(--main-navy-black);
  margin-bottom: 1rem;
}

.weddings-event-card h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.weddings-event-card p {
  margin: 0 0 1rem;
  line-height: 1.6;
}

.weddings-event-card ul {
  margin: 0;
  padding-left: 1.25rem;
}

.weddings-event-card li {
  margin-bottom: 0.5rem;
}

/* Features */
.weddings-features-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.weddings-features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}

.weddings-feature-card {
  background: white;
  padding: 2rem;
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.weddings-feature-icon {
  color: var(--main-navy-black);
  margin-bottom: 1rem;
}

.weddings-feature-card h3 {
  font-family: Poppins, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.weddings-feature-card p {
  font-size: 0.9rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
  line-height: 1.5;
}

/* Activities */
.weddings-activities-section {
  padding: 4rem 0;
}

.weddings-activities-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}

.weddings-activity-column h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--main-mint-white);
}

.weddings-activity-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.weddings-activity-column li {
  padding: 0.5rem 0;
  border-bottom: 1px solid #eee;
}

/* Image Section */
.weddings-image-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.weddings-image-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.weddings-image-content h2 {
  font-family: Bitter, serif;
  font-size: 2rem;
  margin: 0 0 1rem;
}

.weddings-image-content p {
  margin: 0 0 1rem;
  line-height: 1.7;
}

.weddings-image-photo img {
  width: 100%;
  border-radius: 12px;
  object-fit: cover;
}

/* Venues Note */
.weddings-venues-section {
  padding: 4rem 0;
}

.weddings-venues-box {
  max-width: 50rem;
  margin: 0 auto;
  text-align: center;
  background: var(--main-mint-white);
  padding: 3rem;
  border-radius: 12px;
}

.weddings-venues-box h2 {
  font-family: Bitter, serif;
  font-size: 1.5rem;
  margin: 0 0 1rem;
}

.weddings-venues-box p {
  margin: 0 0 1rem;
  line-height: 1.7;
}

.weddings-venues-box p:last-child {
  margin-bottom: 0;
}

/* CTA */
.weddings-cta-section {
  padding: 4rem 0;
}

.weddings-cta-box {
  background: var(--main-navy-black);
  color: var(--main-mint-white);
  padding: 3rem;
  border-radius: 12px;
  text-align: center;
}

.weddings-cta-box h2 {
  color: var(--main-mint-white);
  font-size: 2rem;
  margin: 0 0 1rem;
}

.weddings-cta-box p {
  color: var(--main-mint-white);
  opacity: 0.9;
  margin: 0 0 2rem;
}

.weddings-cta-buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

.weddings-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background-color: var(--main-mint-white);
}

.weddings-cta-btn:hover {
  background-color: var(--mint-on-hover);
}

.weddings-cta-btn-alt {
  background: transparent;
  border: 2px solid var(--main-mint-white);
  color: var(--main-mint-white);
}

.weddings-cta-note {
  font-size: 0.85rem;
  opacity: 0.7;
  margin-top: 1.5rem !important;
}

@media (max-width: 992px) {
  .weddings-events-grid {
    grid-template-columns: 1fr;
  }

  .weddings-event-featured {
    grid-column: auto;
  }

  .weddings-features-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .weddings-activities-grid {
    grid-template-columns: 1fr;
  }

  .weddings-image-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

@media (max-width: 768px) {
  .weddings-title {
    font-size: 2.25rem;
  }

  .weddings-features-grid {
    grid-template-columns: 1fr;
  }

  .weddings-cta-box {
    padding: 2rem;
  }
}

/* ==========================================================================
   CONTACT PAGE
   ========================================================================== */

.contact-hero-section {
  background: var(--main-navy-black);
  padding: 1.5rem 0;
}

.contact-header-section {
  padding: 12rem 2rem 4rem;
  background: var(--main-mint-white);
  text-align: center;
}

.contact-header-container {
  max-width: 50rem;
  margin: 0 auto;
}

.contact-title {
  font-family: Bitter, serif;
  font-size: 3rem;
  font-weight: 700;
  color: var(--main-navy-black);
  margin: 0 0 1rem;
}

.contact-subtitle {
  font-size: 1.1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0;
}

.contact-content-container {
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.contact-section-title {
  font-family: Bitter, serif;
  font-size: 2rem;
  font-weight: 700;
  color: var(--main-navy-black);
  text-align: center;
  margin: 0 0 0.75rem;
}

.contact-section-subtitle {
  text-align: center;
  color: var(--main-navy-black);
  opacity: 0.8;
  margin: 0 0 2rem;
}

/* Contact Cards */
.contact-cards-section {
  padding: 4rem 0;
}

.contact-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.contact-card {
  background: var(--main-mint-white);
  padding: 2.5rem;
  border-radius: 12px;
  text-align: center;
}

.contact-card-icon {
  color: var(--main-navy-black);
  margin-bottom: 1rem;
}

.contact-card h3 {
  font-family: Poppins, sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.contact-card-link {
  display: block;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 0.5rem;
}

.contact-card-link:hover {
  color: var(--navy-on-hover);
}

.contact-card p {
  font-size: 0.9rem;
  color: var(--main-navy-black);
  opacity: 0.7;
  margin: 0;
}

/* Properties Section */
.contact-properties-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.contact-properties-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.contact-property-card {
  background: white;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.contact-property-icon {
  color: var(--main-navy-black);
  margin-bottom: 1rem;
}

.contact-property-card h3 {
  font-family: Bitter, serif;
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 1rem;
}

.contact-property-address {
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0 0 1rem;
}

.contact-property-chalets {
  font-size: 0.9rem;
  margin: 0 0 1rem;
  color: var(--main-navy-black);
  opacity: 0.8;
}

.contact-property-link {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--blue-link);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Check-in Section */
.contact-checkin-section {
  padding: 4rem 0;
}

.contact-checkin-box {
  display: flex;
  align-items: center;
  gap: 2rem;
  background: var(--main-mint-white);
  padding: 3rem;
  border-radius: 12px;
  max-width: 50rem;
  margin: 0 auto;
}

.contact-checkin-icon {
  flex-shrink: 0;
  color: var(--main-navy-black);
}

.contact-checkin-content h2 {
  font-family: Bitter, serif;
  font-size: 1.5rem;
  margin: 0 0 1.5rem;
}

.contact-checkin-times {
  display: flex;
  gap: 3rem;
  margin-bottom: 1rem;
}

.contact-checkin-time {
  display: flex;
  flex-direction: column;
}

.contact-checkin-label {
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.7;
}

.contact-checkin-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--main-navy-black);
}

.contact-checkin-content p {
  margin: 0;
  font-size: 0.9rem;
}

.contact-checkin-content a {
  font-weight: 600;
  color: var(--main-navy-black);
}

/* FAQ Link Section */
.contact-faq-section {
  padding: 4rem 0;
  background: #f8faf9;
}

.contact-faq-box {
  text-align: center;
  max-width: 40rem;
  margin: 0 auto;
}

.contact-faq-box h2 {
  font-family: Bitter, serif;
  font-size: 1.75rem;
  margin: 0 0 0.75rem;
}

.contact-faq-box p {
  margin: 0 0 1.5rem;
}

.contact-faq-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

/* Social Section */
.contact-social-section {
  padding: 4rem 0;
}

.contact-social-links {
  display: flex;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
}

.contact-social-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2rem;
  background: var(--main-mint-white);
  border-radius: 50px;
  font-weight: 500;
  color: var(--main-navy-black);
  transition: background 0.2s ease;
}

.contact-social-link:hover {
  background: var(--mint-on-hover);
}

.contact-social-link svg {
  width: 24px;
  height: 24px;
}

@media (max-width: 992px) {
  .contact-cards-grid {
    grid-template-columns: 1fr;
  }

  .contact-properties-grid {
    grid-template-columns: 1fr;
  }

  .contact-checkin-box {
    flex-direction: column;
    text-align: center;
  }

  .contact-checkin-times {
    justify-content: center;
  }
}

@media (max-width: 768px) {
  .contact-title {
    font-size: 2.25rem;
  }

  .contact-checkin-box {
    padding: 2rem;
  }

  .contact-checkin-times {
    flex-direction: column;
    gap: 1rem;
  }
}

/* ===========================================
   VILLAGE PAGE STYLES
   =========================================== */

.village-page {
  background-color: var(--main-mint-white);
}

.village-hero {
  position: relative;
  min-height: 60vh;
  background: linear-gradient(135deg, var(--main-navy-black) 0%, #0a3d5c 100%);
  display: flex;
  flex-direction: column;
}

.village-hero-overlay {
  position: absolute;
  inset: 0;
  background: url('/images/village/village-street-summer.webp') center/cover no-repeat;
  opacity: 0.35;
}

.village-hero-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.village-hero-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 4rem 2rem;
  color: white;
}

.village-hero-text h1 {
  font-size: 3.5rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.village-hero-text p {
  font-size: 1.25rem;
  opacity: 0.9;
  max-width: 600px;
}

.village-overview {
  padding: 5rem 2rem;
}

.village-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.village-subtitle {
  display: block;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 2px;
  color: var(--main-navy-black);
  opacity: 0.7;
  margin-bottom: 1rem;
}

.village-header h2 {
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 1.5rem;
}

.village-header p {
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--main-navy-black);
  opacity: 0.85;
}

.village-attractions {
  padding: 5rem 2rem;
  background-color: white;
}

.village-attractions h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.village-attractions .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.attractions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.attraction-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 0;
}

.attraction-category {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: white;
  background: var(--main-navy-black);
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  margin-bottom: 1rem;
}

.attraction-card h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

.attraction-card p {
  font-size: 0.95rem;
  line-height: 1.6;
  opacity: 0.85;
}

.village-shopping {
  padding: 5rem 2rem;
}

.shopping-content {
  max-width: 900px;
  margin: 0 auto;
}

.shopping-info h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
  text-align: center;
}

.shopping-info > p {
  font-size: 1.1rem;
  line-height: 1.7;
  margin-bottom: 2rem;
  opacity: 0.85;
}

.shops-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.shop-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.5rem;
  background: white;
  border-radius: 0;
}

.shop-item strong {
  font-weight: 500;
}

.shop-item span {
  font-size: 0.9rem;
  opacity: 0.7;
}

.village-dining {
  padding: 5rem 2rem;
  background-color: white;
}

.village-dining h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.village-dining .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.dining-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1000px;
  margin: 0 auto;
}

.dining-card {
  background: var(--main-mint-white);
  padding: 1.5rem;
  border-radius: 0;
  text-align: center;
}

.dining-card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.dining-card p {
  font-size: 0.9rem;
  opacity: 0.75;
  margin-bottom: 0.5rem;
}

.dining-card .price-range {
  font-weight: 600;
  color: var(--main-navy-black);
}

.village-dining .dining-cta {
  text-align: center;
  margin-top: 2.5rem;
  background: none;
  padding: 0;
  color: inherit;
}

.village-dining .dining-cta .btn-primary svg {
  width: 1rem;
  height: 1rem;
}

.village-events {
  padding: 5rem 2rem;
}

.village-events h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.village-events .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.events-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.events-card {
  background: white;
  padding: 2rem;
  border-radius: 0;
}

.events-card h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: var(--main-navy-black);
}

.events-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.events-card li {
  padding: 0.5rem 0;
  font-size: 0.9rem;
  border-bottom: 1px solid rgba(0,0,0,0.05);
}

.events-card li:last-child {
  border-bottom: none;
}

.village-access {
  padding: 5rem 2rem;
  background-color: white;
}

.access-content {
  max-width: 900px;
  margin: 0 auto;
}

.access-info h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
  text-align: center;
}

.access-info > p {
  font-size: 1.1rem;
  line-height: 1.7;
  margin-bottom: 2rem;
  opacity: 0.85;
}

.access-details {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.access-item {
  background: var(--main-mint-white);
  padding: 1.5rem;
  border-radius: 0;
  text-align: center;
}

.access-item h4 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.access-item p {
  font-size: 0.9rem;
  opacity: 0.8;
}

/* Village Image Grids */
.village-image-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
}

.village-image-item {
  position: relative;
  border-radius: 0;
  overflow: hidden;
  aspect-ratio: 4/3;
}

.village-image-item.large {
  /* Remove the spanning - all items are same size now */
}

.village-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.image-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(0,0,0,0.7));
  color: white;
  font-size: 0.9rem;
  font-weight: 500;
}

/* Village Seasons Section */
.village-seasons {
  padding: 5rem 2rem;
  background-color: #f8faf9;
}

.village-seasons h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.village-seasons .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.seasons-image-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-top: 3rem;
}

.season-card {
  border-radius: 0;
  overflow: hidden;
  background: white;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.season-img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  display: block;
}

.season-info {
  padding: 1.5rem;
}

.season-info h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--main-navy-black);
}

.season-info p {
  font-size: 0.95rem;
  color: var(--main-navy-black);
  opacity: 0.8;
  line-height: 1.5;
}

.village-cta {
  background-color: var(--main-navy-black);
  color: white;
  padding: 5rem 2rem;
  text-align: center;
}

.village-cta h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.village-cta p {
  font-size: 1.1rem;
  opacity: 0.9;
  margin-bottom: 2rem;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Village Page Responsive */
@media screen and (max-width: 992px) {
  .village-hero-text h1 {
    font-size: 2.75rem;
  }

  .attractions-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .dining-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .events-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .access-details {
    grid-template-columns: 1fr;
  }

  .village-image-grid {
    grid-template-columns: 1fr 1fr;
  }

  .seasons-image-grid {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 768px) {
  .village-hero-text h1 {
    font-size: 2.25rem;
  }

  .village-header h2,
  .village-attractions h2,
  .shopping-info h2,
  .village-dining h2,
  .village-events h2,
  .access-info h2,
  .village-cta h2 {
    font-size: 1.75rem;
  }

  .attractions-grid,
  .dining-grid,
  .events-grid,
  .shops-list {
    grid-template-columns: 1fr;
  }

  .village-image-grid {
    grid-template-columns: 1fr;
  }
}

/* ===========================================
   LOCATION PAGE STYLES
   =========================================== */

.location-page {
  background-color: var(--main-mint-white);
}

.location-hero {
  position: relative;
  min-height: 60vh;
  background: linear-gradient(135deg, var(--main-navy-black) 0%, #0a3d5c 100%);
  display: flex;
  flex-direction: column;
}

.location-hero-overlay {
  position: absolute;
  inset: 0;
  background: url('/images/things-to-do/blue-mountain-aerial-summer.webp') center/cover no-repeat;
  opacity: 0.35;
}

.location-hero-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.location-hero-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 4rem 2rem;
  color: white;
}

.location-hero-text h1 {
  font-size: 3.5rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.location-hero-text p {
  font-size: 1.25rem;
  opacity: 0.9;
  max-width: 600px;
}

.location-overview {
  padding: 5rem 2rem;
}

.location-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 3rem;
}

.location-subtitle {
  display: block;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 2px;
  color: var(--main-navy-black);
  opacity: 0.7;
  margin-bottom: 1rem;
}

.location-header h2 {
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 1.5rem;
}

.location-header p {
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--main-navy-black);
  opacity: 0.85;
}

/* Location Image Showcase */
.location-image-showcase {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.location-showcase-main {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}

.location-showcase-main .location-showcase-img {
  width: 100%;
  height: 100%;
  min-height: 350px;
  object-fit: cover;
  display: block;
}

.location-showcase-side {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.location-showcase-item {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  flex: 1;
}

.location-showcase-item .location-showcase-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.location-showcase-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(0,0,0,0.75));
  color: white;
  font-size: 0.9rem;
  font-weight: 600;
}

@media screen and (max-width: 768px) {
  .location-image-showcase {
    grid-template-columns: 1fr;
  }

  .location-showcase-main .location-showcase-img {
    min-height: 250px;
  }

  .location-showcase-side {
    flex-direction: row;
  }
}

@media screen and (max-width: 480px) {
  .location-showcase-side {
    flex-direction: column;
  }
}

.location-map {
  max-width: 1000px;
  margin: 0 auto;
}

.location-map iframe {
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

.location-directions {
  padding: 5rem 2rem;
  background-color: white;
}

.location-directions h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.location-directions .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.directions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.direction-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 12px;
}

.direction-header {
  margin-bottom: 1rem;
}

.direction-card h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.direction-stats {
  display: flex;
  gap: 1rem;
}

.direction-stats .distance,
.direction-stats .time {
  font-size: 0.85rem;
  font-weight: 500;
  background: var(--main-navy-black);
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
}

.direction-card p {
  font-size: 0.95rem;
  line-height: 1.6;
  opacity: 0.85;
}

.location-transport {
  padding: 5rem 2rem;
}

.location-transport h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 3rem;
}

.transport-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.transport-card {
  background: white;
  padding: 2rem;
  border-radius: 12px;
  text-align: center;
}

.transport-icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
  display: block;
}

.transport-card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

.transport-card p {
  font-size: 0.9rem;
  line-height: 1.5;
  opacity: 0.8;
}

.location-amenities {
  padding: 5rem 2rem;
  background-color: white;
}

.location-amenities h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.location-amenities .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.amenities-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.amenity-category {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 12px;
}

.amenity-category h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--main-navy-black);
}

.amenity-category ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.amenity-category li {
  display: flex;
  justify-content: space-between;
  padding: 0.5rem 0;
  font-size: 0.9rem;
  border-bottom: 1px solid rgba(0,0,0,0.05);
}

.amenity-category li:last-child {
  border-bottom: none;
}

.place-name {
  font-weight: 500;
}

.place-distance {
  opacity: 0.7;
  font-size: 0.85rem;
}

.location-tips {
  padding: 5rem 2rem;
}

.tips-content {
  max-width: 800px;
  margin: 0 auto;
}

.tips-info h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.tips-info > p {
  font-size: 1.1rem;
  margin-bottom: 2rem;
  opacity: 0.85;
}

.tips-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.tips-list li {
  padding: 1rem 1.5rem;
  background: white;
  border-radius: 8px;
  margin-bottom: 1rem;
  font-size: 0.95rem;
  line-height: 1.6;
}

.tips-list li strong {
  color: var(--main-navy-black);
}

.location-checkin {
  padding: 5rem 2rem;
  background-color: white;
}

.location-checkin h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 3rem;
}

.checkin-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  max-width: 1000px;
  margin: 0 auto;
}

.checkin-card {
  background: var(--main-mint-white);
  padding: 2.5rem;
  border-radius: 12px;
  text-align: center;
}

.checkin-card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

.checkin-card .time {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--main-navy-black);
  margin-bottom: 0.75rem;
}

.checkin-card p {
  font-size: 0.9rem;
  opacity: 0.8;
  line-height: 1.5;
}

.location-cta {
  background-color: var(--main-navy-black);
  color: white;
  padding: 5rem 2rem;
  text-align: center;
}

.location-cta h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.location-cta p {
  font-size: 1.1rem;
  opacity: 0.9;
  margin-bottom: 2rem;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Location Page Responsive */
@media screen and (max-width: 992px) {
  .location-hero-text h1 {
    font-size: 2.75rem;
  }

  .directions-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .transport-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .amenities-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .checkin-grid {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 768px) {
  .location-hero-text h1 {
    font-size: 2.25rem;
  }

  .location-header h2,
  .location-directions h2,
  .location-transport h2,
  .location-amenities h2,
  .tips-info h2,
  .location-checkin h2,
  .location-cta h2 {
    font-size: 1.75rem;
  }

  .directions-grid,
  .transport-grid,
  .amenities-grid {
    grid-template-columns: 1fr;
  }

  .direction-stats {
    flex-direction: column;
    gap: 0.5rem;
  }
}

/* ===========================================
   ATTRACTIONS PAGE STYLES
   =========================================== */

.attractions-page {
  background-color: var(--main-mint-white);
}

.attractions-hero {
  position: relative;
  min-height: 60vh;
  background: linear-gradient(135deg, var(--main-navy-black) 0%, #0a3d5c 100%);
  display: flex;
  flex-direction: column;
}

.attractions-hero-overlay {
  position: absolute;
  inset: 0;
  background: url('/images/attractions/spa-sauna-relax.webp') center/cover no-repeat;
  opacity: 0.35;
}

.attractions-hero-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.attractions-hero-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 4rem 2rem;
  color: white;
}

.attractions-hero-text h1 {
  font-size: 3.5rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.attractions-hero-text p {
  font-size: 1.25rem;
  opacity: 0.9;
  max-width: 600px;
}

.attractions-intro {
  padding: 5rem 2rem;
}

.attractions-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.attractions-subtitle {
  display: block;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 2px;
  color: var(--main-navy-black);
  opacity: 0.7;
  margin-bottom: 1rem;
}

.attractions-header h2 {
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 1.5rem;
}

.attractions-header p {
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--main-navy-black);
  opacity: 0.85;
}

.attractions-top {
  padding: 5rem 2rem;
  background-color: white;
}

.attractions-top h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 3rem;
}

.top-attractions-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.top-attraction-card {
  background: var(--main-mint-white);
  padding: 2.5rem;
  border-radius: 12px;
}

.attraction-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.top-attraction-card .attraction-category {
  margin-bottom: 0;
}

.attraction-distance {
  font-size: 0.85rem;
  font-weight: 500;
  opacity: 0.7;
}

.top-attraction-card h3 {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.top-attraction-card > p {
  font-size: 1rem;
  line-height: 1.7;
  margin-bottom: 1.5rem;
  opacity: 0.85;
}

.attraction-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.highlight-tag {
  font-size: 0.8rem;
  background: white;
  padding: 0.35rem 0.75rem;
  border-radius: 20px;
  font-weight: 500;
}

.attractions-outdoor {
  padding: 5rem 2rem;
}

.attractions-outdoor h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.attractions-outdoor .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.outdoor-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.outdoor-card {
  background: white;
  padding: 2rem;
  border-radius: 12px;
}

.activity-type {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--main-navy-black);
  opacity: 0.6;
  margin-bottom: 0.75rem;
}

.outdoor-card h3 {
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

.outdoor-card p {
  font-size: 0.9rem;
  line-height: 1.6;
  opacity: 0.85;
}

.attractions-family {
  padding: 5rem 2rem;
  background-color: white;
}

.attractions-family h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.attractions-family .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.family-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.family-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 12px;
}

.family-card h3 {
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

.family-card p {
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: 1rem;
  opacity: 0.85;
}

.age-range {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 600;
  background: var(--main-navy-black);
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
}

.attractions-wineries {
  padding: 5rem 2rem;
}

.wineries-content {
  max-width: 900px;
  margin: 0 auto;
}

.wineries-info h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.wineries-info > p {
  font-size: 1.1rem;
  line-height: 1.7;
  margin-bottom: 2rem;
  opacity: 0.85;
}

.wineries-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.winery-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.5rem;
  background: white;
  border-radius: 8px;
}

.winery-item strong {
  font-weight: 500;
}

.winery-item span {
  font-size: 0.9rem;
  opacity: 0.7;
}

.attractions-daytrips {
  padding: 5rem 2rem;
  background-color: white;
}

.attractions-daytrips h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.attractions-daytrips .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.daytrips-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.daytrip-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 12px;
}

.daytrip-card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

.daytrip-card p {
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: 1rem;
  opacity: 0.85;
}

.drive-time {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 600;
  background: var(--main-navy-black);
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
}

/* Attractions Image Grid */
.attractions-image-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
}

.attractions-image-card {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}

.attractions-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.attractions-image-card:hover .attractions-img {
  transform: scale(1.05);
}

.attractions-img-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(0,0,0,0.75));
  color: white;
  font-size: 0.9rem;
  font-weight: 600;
  text-align: center;
}

/* Day Trip Cards with Images */
.daytrip-card.with-image {
  padding: 0;
  overflow: hidden;
}

.daytrip-img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  display: block;
}

.daytrip-content {
  padding: 1.5rem;
}

.daytrip-content h3 {
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

.daytrip-content p {
  font-size: 0.95rem;
  opacity: 0.85;
  line-height: 1.5;
  margin-bottom: 0.75rem;
}

@media screen and (max-width: 992px) {
  .attractions-image-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 600px) {
  .attractions-image-grid {
    grid-template-columns: 1fr;
  }

  .attractions-img {
    height: 180px;
  }
}

.attractions-cta {
  background-color: var(--main-navy-black);
  color: white;
  padding: 5rem 2rem;
  text-align: center;
}

.attractions-cta h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.attractions-cta p {
  font-size: 1.1rem;
  opacity: 0.9;
  margin-bottom: 2rem;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Attractions Page Responsive */
@media screen and (max-width: 992px) {
  .attractions-hero-text h1 {
    font-size: 2.75rem;
  }

  .top-attractions-grid {
    grid-template-columns: 1fr;
  }

  .outdoor-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .family-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .daytrips-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 768px) {
  .attractions-hero-text h1 {
    font-size: 2.25rem;
  }

  .attractions-header h2,
  .attractions-top h2,
  .attractions-outdoor h2,
  .attractions-family h2,
  .wineries-info h2,
  .attractions-daytrips h2,
  .attractions-cta h2 {
    font-size: 1.75rem;
  }

  .outdoor-grid,
  .family-grid,
  .daytrips-grid,
  .wineries-list {
    grid-template-columns: 1fr;
  }
}

/* ===========================================
   DINING PAGE STYLES
   =========================================== */

.dining-page {
  background-color: var(--main-mint-white);
}

.dining-hero {
  position: relative;
  min-height: 60vh;
  background: linear-gradient(135deg, var(--main-navy-black) 0%, #0a3d5c 100%);
  display: flex;
  flex-direction: column;
}

.dining-hero-overlay {
  position: absolute;
  inset: 0;
  background: url('/images/dining/restaurant-spread.webp') center/cover no-repeat;
  opacity: 0.35;
}

.dining-hero-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.dining-hero-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 4rem 2rem;
  color: white;
}

.dining-hero-text h1 {
  font-size: 3.5rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.dining-hero-text p {
  font-size: 1.25rem;
  opacity: 0.9;
  max-width: 600px;
}

.dining-overview {
  padding: 5rem 2rem;
}

.dining-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.dining-subtitle {
  display: block;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 2px;
  color: var(--main-navy-black);
  opacity: 0.7;
  margin-bottom: 1rem;
}

.dining-header h2 {
  font-size: 2.5rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 1.5rem;
}

.dining-header p {
  font-size: 1.1rem;
  line-height: 1.7;
  color: var(--main-navy-black);
  opacity: 0.85;
}

.dining-restaurants {
  padding: 5rem 2rem;
  background-color: white;
}

.dining-filter {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}

.filter-btn {
  padding: 0.75rem 1.5rem;
  border: 2px solid var(--main-navy-black);
  background: transparent;
  color: var(--main-navy-black);
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 500;
  border-radius: 30px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.filter-btn:hover {
  background: var(--main-navy-black);
  color: white;
}

.filter-btn.active {
  background: var(--main-navy-black);
  color: white;
}

.restaurants-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.restaurant-card {
  background: var(--main-mint-white);
  padding: 2rem;
  border-radius: 12px;
  text-align: center;
}

.restaurant-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.restaurant-card h3 {
  font-size: 1.15rem;
  font-weight: 600;
  margin: 0;
}

.restaurant-card .price-range {
  font-weight: 700;
  color: var(--main-navy-black);
}

.restaurant-meta {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.restaurant-meta .cuisine {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--main-navy-black);
}

.restaurant-meta .location {
  font-size: 0.85rem;
  opacity: 0.7;
}

.restaurant-card > p {
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: 1.25rem;
  opacity: 0.85;
}

.restaurant-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.feature-tag {
  font-size: 0.75rem;
  background: white;
  padding: 0.3rem 0.65rem;
  border-radius: 15px;
  font-weight: 500;
}

/* Dining Image Showcase */
.dining-image-showcase {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  margin-top: 3rem;
}

.dining-showcase-item {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  flex: 0 0 280px;
}

.dining-showcase-item.featured {
  flex: 0 0 350px;
}

.dining-showcase-img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.dining-showcase-item.featured .dining-showcase-img {
  height: 280px;
}

.dining-showcase-item:hover .dining-showcase-img {
  transform: scale(1.05);
}

.showcase-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(0,0,0,0.75));
  color: white;
  font-size: 0.9rem;
  font-weight: 600;
  text-align: center;
}

@media screen and (max-width: 992px) {
  .dining-image-showcase {
    flex-wrap: wrap;
  }

  .dining-showcase-item,
  .dining-showcase-item.featured {
    flex: 0 0 calc(50% - 0.75rem);
  }
}

@media screen and (max-width: 600px) {
  .dining-showcase-item,
  .dining-showcase-item.featured {
    flex: 0 0 100%;
  }

  .dining-showcase-img,
  .dining-showcase-item.featured .dining-showcase-img {
    height: 200px;
  }
}

.dining-groceries {
  padding: 5rem 2rem;
}

.groceries-content {
  max-width: 900px;
  margin: 0 auto;
}

.groceries-info h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.groceries-info > p {
  font-size: 1.1rem;
  line-height: 1.7;
  margin-bottom: 2rem;
  opacity: 0.85;
}

.groceries-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.grocery-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.25rem 1.5rem;
  background: white;
  border-radius: 8px;
}

.grocery-name {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.grocery-name strong {
  font-weight: 600;
}

.grocery-location {
  font-size: 0.85rem;
  opacity: 0.7;
}

.grocery-features {
  font-size: 0.9rem;
  opacity: 0.75;
  text-align: right;
}

.dining-coffee {
  padding: 5rem 2rem;
  background-color: white;
}

.dining-coffee h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1rem;
}

.dining-coffee .section-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 3rem;
  opacity: 0.85;
}

.coffee-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
  max-width: 1200px;
  margin: 0 auto;
}

.coffee-card {
  background: var(--main-mint-white);
  padding: 1.5rem;
  border-radius: 10px;
  text-align: center;
}

.coffee-card h3 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.coffee-type {
  display: block;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--main-navy-black);
  margin-bottom: 0.25rem;
}

.coffee-location {
  font-size: 0.8rem;
  opacity: 0.7;
}

.dining-tips {
  padding: 5rem 2rem;
}

.dining-tips h2 {
  font-size: 2.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 3rem;
}

.tips-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.tip-card {
  background: white;
  padding: 2rem;
  border-radius: 12px;
}

.tip-card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

.tip-card p {
  font-size: 0.9rem;
  line-height: 1.6;
  opacity: 0.85;
}

.dining-chalets {
  padding: 5rem 2rem;
  background-color: white;
}

.chalets-promo {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

.chalets-promo h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1.5rem;
}

.chalets-promo > p {
  font-size: 1.1rem;
  line-height: 1.7;
  margin-bottom: 2rem;
  opacity: 0.85;
}

.kitchen-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.kitchen-features li {
  background: var(--main-mint-white);
  padding: 1rem 1.5rem;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 500;
}

.dining-cta {
  background-color: var(--main-navy-black);
  color: white;
  padding: 5rem 2rem;
  text-align: center;
}

.dining-cta h2 {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.dining-cta p {
  font-size: 1.1rem;
  opacity: 0.9;
  margin-bottom: 2rem;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Dining Page Responsive */
@media screen and (max-width: 992px) {
  .dining-hero-text h1 {
    font-size: 2.75rem;
  }

  .restaurants-grid {
    grid-template-columns: repeat(2, 1fr);
  }

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

  .tips-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .kitchen-features {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 768px) {
  .dining-hero-text h1 {
    font-size: 2.25rem;
  }

  .dining-header h2,
  .groceries-info h2,
  .dining-coffee h2,
  .dining-tips h2,
  .chalets-promo h2,
  .dining-cta h2 {
    font-size: 1.75rem;
  }

  .dining-filter {
    gap: 0.5rem;
  }

  .filter-btn {
    padding: 0.5rem 1rem;
    font-size: 0.85rem;
  }

  .restaurants-grid,
  .coffee-grid,
  .tips-grid,
  .kitchen-features {
    grid-template-columns: 1fr;
  }

  .grocery-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .grocery-features {
    text-align: left;
  }
}

/* ===========================================
   SHARED FOOTER COMPONENT STYLES
   =========================================== */

.site-footer {
  background-color: var(--main-navy-black);
  color: white;
  position: relative;
}

.footer-mountains {
  position: relative;
  margin-top: -1px;
  line-height: 0;
  background-color: var(--main-mint-white);
}

.footer-mountains svg {
  display: block;
  width: 100%;
  height: auto;
}

.footer-mountains svg path {
  fill: var(--main-navy-black);
}

/* Navy variant footer - for groups page */
.footer-mountains-navy {
  background-color: var(--main-mint-white);
}

.footer-mountains-navy svg path {
  fill: var(--main-navy-black);
}

/* Reversed variant - navy background, green mountain */
.footer-mountains-reversed {
  background-color: var(--main-navy-black);
}

.footer-mountains-reversed svg path {
  fill: var(--main-mint-white);
}

/* Blog post footer - small navy strip above mint mountains */
.blog-post-content ~ .footer-mountains {
  background-color: var(--main-navy-black);
  padding-top: 4rem;
}

.blog-post-content ~ .footer-mountains svg path {
  fill: var(--main-mint-white);
}

/* Footer Navy variant - comprehensive styles */
.footer-navy {
  background-color: var(--main-navy-black) !important;
}

.footer-navy .footer-cta-heading {
  font-size: 2rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: var(--main-mint-white);
}

.footer-navy .footer-cta-subtext {
  font-size: 1.1rem;
  opacity: 0.9;
  margin-bottom: 1.5rem;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  color: var(--main-mint-white);
}

.footer-navy .footer-cta-navy {
  text-align: center;
}

.footer-navy .secondary-btn .btn-text {
  color: var(--main-mint-white);
}

.footer-navy .secondary-btn svg path,
.footer-navy .secondary-btn svg line {
  stroke: var(--main-mint-white);
}

.footer-navy .svg-btn-underline svg path {
  stroke: var(--main-mint-white);
}

/* Logo mint in navy footer */
.footer-navy .nav-logo-container,
.footer-navy .brand-logo-text {
  color: var(--main-mint-white);
}

.footer-navy .svg-main-logo svg {
  fill: var(--main-mint-white);
}

.footer-navy .svg-main-logo svg path {
  fill: var(--main-mint-white);
}

/* Footer grid content - mint colors in navy footer */
.footer-navy .footer-logo-column,
.footer-navy .footer-logo-column div,
.footer-navy .footer-logo-column p,
.footer-navy .footer-logo-column strong {
  color: var(--main-mint-white);
}

.footer-navy .footer-column,
.footer-navy .footer-column div,
.footer-navy .footer-column strong {
  color: var(--main-mint-white);
}

.footer-navy .footer-link {
  color: var(--main-mint-white);
}

.footer-navy .footer-link:hover {
  color: var(--main-mint-white);
  opacity: 0.8;
}

.footer-navy .link,
.footer-navy .link strong {
  color: var(--main-mint-white) !important;
}

.footer-navy .footer-fine-print,
.footer-navy .footer-fine-print .text-block {
  color: var(--main-mint-white);
}

.footer-navy .searchpod-link {
  color: var(--main-mint-white);
}

/* Social icons mint in navy footer */
.footer-navy .svg-social-icon svg {
  fill: var(--main-mint-white);
}

.footer-navy .svg-social-icon svg path {
  fill: var(--main-mint-white);
}

/* Divider lines mint in navy footer */
.footer-navy .bottom-line {
  border-bottom-color: var(--main-mint-white) !important;
}

.footer-content {
  padding: 4rem 2rem 2rem;
}

.footer-content .container {
  max-width: 1200px;
  margin: 0 auto;
}

.footer-cta {
  text-align: center;
  padding-bottom: 3rem;
  margin-bottom: 3rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.footer-cta h2 {
  font-size: 2rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: var(--main-mint-white);
}

.footer-cta p {
  font-size: 1.1rem;
  opacity: 0.9;
  margin-bottom: 1.5rem;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  color: var(--main-mint-white);
}

.footer-cta .secondary-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--main-mint-white);
  text-decoration: none;
  font-weight: 500;
  transition: opacity 0.3s ease;
}

.footer-cta .secondary-btn:hover {
  opacity: 0.8;
}

.footer-cta .secondary-btn .svg-1-5rem {
  width: 1.5rem;
  height: auto;
}

.footer-cta .secondary-btn svg path,
.footer-cta .secondary-btn svg line {
  stroke: var(--main-mint-white);
}

.footer-cta .svg-btn-underline svg path {
  stroke: var(--main-mint-white);
}

.footer-cta .btn-text {
  color: var(--main-mint-white);
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr repeat(5, 1fr);
  gap: 2rem;
  padding-bottom: 3rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.footer-logo-column {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: var(--main-mint-white);
}

.footer-brand .svg-main-logo svg path {
  fill: var(--main-mint-white);
}

.footer-brand .svg-main-logo {
  width: 2.5rem;
  height: 2.5rem;
}

.footer-brand .brand-logo-text {
  font-size: 1.5rem;
  font-weight: 300;
}

.footer-brand .brand-logo-text .bold {
  font-weight: 600;
}

.footer-logo-column p {
  font-size: 0.9rem;
  line-height: 1.6;
  opacity: 0.9;
}

.footer-logo-column .link,
.footer-logo-column a.link,
.site-footer .footer-logo-column .link {
  color: var(--main-mint-white) !important;
  text-decoration: none;
}

.footer-logo-column .link:hover {
  text-decoration: underline;
}

.social-icons {
  display: flex;
  gap: 1rem;
  margin-top: 0.5rem;
}

.social-icons a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,0.1);
  border-radius: 50%;
  color: white;
  transition: background 0.3s ease;
}

.social-icons a:hover {
  background: rgba(255,255,255,0.2);
}

.social-icons svg {
  width: 18px;
  height: 18px;
}

.footer-column h4 {
  font-size: 0.9rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 1.25rem;
  color: white;
}

.footer-links {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.footer-links a {
  color: rgba(255,255,255,0.8);
  text-decoration: none;
  font-size: 0.9rem;
  transition: color 0.3s ease;
}

.footer-links a:hover {
  color: white;
}

.footer-links .view-all-link {
  color: var(--main-mint-white);
  font-weight: 500;
  margin-top: 0.5rem;
}

.footer-contact-bar {
  display: flex;
  justify-content: center;
  gap: 3rem;
  padding: 1.5rem 0;
  flex-wrap: wrap;
}

.footer-contact-bar .contact-item {
  font-size: 0.9rem;
}

.footer-contact-bar .contact-item strong {
  color: white;
}

.footer-contact-bar .contact-item a {
  color: var(--main-mint-white);
  text-decoration: none;
}

.footer-contact-bar .contact-item a:hover {
  text-decoration: underline;
}

.footer-bottom {
  text-align: center;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.footer-bottom p {
  font-size: 0.85rem;
  opacity: 0.7;
}

.footer-bottom a {
  color: var(--main-mint-white);
  text-decoration: none;
}

.footer-bottom a:hover {
  text-decoration: underline;
}

/* Footer Responsive */
@media screen and (max-width: 1024px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 2rem;
  }

  .footer-logo-column {
    grid-column: 1 / -1;
    text-align: center;
    align-items: center;
  }
}

@media screen and (max-width: 768px) {
  .footer-content {
    padding: 3rem 1.5rem 1.5rem;
  }

  .footer-cta h2 {
    font-size: 1.5rem;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }

  .footer-contact-bar {
    flex-direction: column;
    align-items: center;
    gap: 1rem;
  }
}

@media screen and (max-width: 480px) {
  .footer-grid {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .footer-column {
    align-items: center;
  }

  .footer-links {
    align-items: center;
  }
}

/* ===========================================
   BVC SHARED NAVBAR STYLES
   =========================================== */

.bvc-navbar {
  padding: 1rem 2rem;
  position: relative;
  z-index: 100;
}

.bvc-navbar-container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.bvc-navbar-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: white;
}

.bvc-navbar-logo svg {
  width: 40px;
  height: 40px;
}

.bvc-navbar-links {
  display: flex;
  align-items: center;
  gap: 2rem;
}

/* bvc-nav-link styles only within bvc-navbar (dark hero backgrounds) */
.bvc-navbar .bvc-nav-link {
  color: rgba(255,255,255,0.9);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  padding: 0.75rem 0.25rem;
  transition: color 0.3s ease;
}

.bvc-navbar .bvc-nav-link:hover,
.bvc-navbar .bvc-nav-link.active {
  color: white;
}

.bvc-mobile-menu-btn {
  display: none;
  background: none;
  border: none;
  padding: 0.5rem;
  cursor: pointer;
}

.hamburger {
  display: block;
  width: 24px;
  height: 2px;
  background: white;
  position: relative;
  transition: background 0.3s ease;
}

.hamburger::before,
.hamburger::after {
  content: '';
  position: absolute;
  left: 0;
  width: 24px;
  height: 2px;
  background: white;
  transition: transform 0.3s ease;
}

.hamburger::before {
  top: -7px;
}

.hamburger::after {
  top: 7px;
}

.hamburger.open {
  background: transparent;
}

.hamburger.open::before {
  transform: rotate(45deg);
  top: 0;
}

.hamburger.open::after {
  transform: rotate(-45deg);
  top: 0;
}

.bvc-mobile-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--main-navy-black);
  padding: 1rem 2rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  z-index: 99;
}

.bvc-mobile-link {
  color: rgba(255,255,255,0.9);
  text-decoration: none;
  font-size: 1rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.bvc-mobile-link:hover {
  color: white;
}

@media screen and (max-width: 992px) {
  .bvc-navbar-links {
    display: none;
  }

  .bvc-mobile-menu-btn {
    display: block;
  }
}

@media screen and (max-width: 768px) {
  .bvc-navbar {
    padding: 1rem 1.5rem;
  }
}

/* ===========================================
   GLOBAL BUTTON STYLES
   =========================================== */

.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background-color: var(--main-navy-black);
  color: white;
  padding: 0.875rem 1.75rem;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  font-size: 1rem;
  transition: all 0.3s ease;
  border: none;
  cursor: pointer;
}

.btn-primary:hover {
  background-color: #0a3d5c;
  transform: translateY(-2px);
}

.btn-primary svg {
  width: 1rem;
  height: 1rem;
}

/* Button styles for dark backgrounds (CTA sections) */
.village-cta .btn-primary,
.location-cta .btn-primary,
.attractions-cta .btn-primary,
.dining-cta .btn-primary {
  background-color: var(--main-mint-white);
  color: var(--main-navy-black);
}

.village-cta .btn-primary:hover,
.location-cta .btn-primary:hover,
.attractions-cta .btn-primary:hover,
.dining-cta .btn-primary:hover {
  background-color: white;
}

/* Bottom border line for CTA sections above footer */
.village-cta,
.location-cta,
.attractions-cta,
.dining-cta {
  border-bottom: 1px solid var(--main-mint-white);
}

.things-cta-section,
.groups-cta-section,
.weddings-cta-section,
.corporate-cta-section {
  border-bottom: 1px solid var(--main-navy-black);
}

/* ===========================================
   BLOG POST PAGE STYLES
   =========================================== */

.blog-post-page {
  background-color: var(--main-mint-white);
}

.blog-post-hero {
  position: relative;
  min-height: 50vh;
  background: linear-gradient(135deg, var(--main-navy-black) 0%, #0a3d5c 100%);
  display: flex;
  flex-direction: column;
}

.blog-post-hero-overlay {
  position: absolute;
  inset: 0;
  background: url('/images/things-to-do/blue-mountain-aerial-summer.webp') center/cover no-repeat;
  opacity: 0.25;
}

.blog-post-hero-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.blog-post-hero-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 4rem 2rem;
  color: white;
}

.blog-category {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  background: rgba(255,255,255,0.2);
  padding: 0.5rem 1rem;
  border-radius: 20px;
  margin-bottom: 1rem;
}

.blog-post-hero-text h1 {
  font-size: 2.75rem;
  font-weight: 600;
  margin-bottom: 1rem;
  max-width: 900px;
}

.blog-meta {
  font-size: 0.95rem;
  opacity: 0.8;
}

.blog-post-content {
  padding: 4rem 2rem;
}

.blog-post-content .container {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
}

.blog-post-body {
  background: white;
  padding: 3rem;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

.blog-post-body .intro {
  font-size: 1.2rem;
  line-height: 1.8;
  color: var(--main-navy-black);
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

.blog-post-body h2 {
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 2rem 0 1rem;
}

.blog-post-body h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin: 1.5rem 0 0.75rem;
}

.blog-post-body p {
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--main-navy-black);
  margin-bottom: 1rem;
}

.blog-post-body ul {
  margin: 1rem 0 1.5rem 1.5rem;
}

.blog-post-body li {
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--main-navy-black);
  margin-bottom: 0.5rem;
}

.tip-box,
.safety-box {
  background: #f0f7f4;
  border-left: 4px solid var(--main-navy-black);
  padding: 1.5rem;
  margin: 2rem 0;
  border-radius: 0 8px 8px 0;
}

.tip-box h3,
.safety-box h3 {
  font-size: 1.1rem;
  margin: 0 0 0.5rem;
}

.tip-box p {
  margin: 0;
}

.safety-box ul {
  margin: 0;
  padding-left: 1.25rem;
}

.cta-box {
  background: var(--main-navy-black);
  color: white;
  padding: 2rem;
  border-radius: 12px;
  text-align: center;
  margin-top: 2rem;
}

.cta-box .btn-primary {
  background: var(--main-mint-white);
  color: var(--main-navy-black);
  margin-bottom: 1rem;
}

.cta-box p {
  color: white;
  margin: 0;
}

.cta-box a:not(.btn-primary) {
  color: var(--main-mint-white);
}

.ranking-table {
  margin: 1.5rem 0;
  overflow-x: auto;
}

.ranking-table table {
  width: 100%;
  border-collapse: collapse;
}

.ranking-table th,
.ranking-table td {
  padding: 1rem;
  text-align: left;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

.ranking-table th {
  background: var(--main-navy-black);
  color: white;
  font-weight: 600;
}

.ranking-table tr:hover {
  background: #f8faf9;
}

.beach-list {
  display: grid;
  gap: 1rem;
  margin: 1.5rem 0;
}

.beach-item {
  background: #f8faf9;
  padding: 1.5rem;
  border-radius: 8px;
}

.beach-item h3 {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
}

.beach-item p {
  margin: 0;
  font-size: 0.95rem;
}

.reasons-grid,
.runs-grid,
.activities-grid-blog {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin: 1.5rem 0;
}

.reason-item,
.run-item,
.activity-item-blog {
  background: #f8faf9;
  padding: 1rem;
  border-radius: 8px;
  text-align: center;
  font-size: 0.95rem;
}

/* Pet-Friendly Blog Styles */
.pet-chalets-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin: 1.5rem 0 2rem;
}

.pet-chalet-card {
  display: block;
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-decoration: none;
}

.pet-chalet-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.pet-chalet-card img {
  width: 100%;
  height: 160px;
  object-fit: cover;
}

.pet-chalet-info {
  padding: 1rem;
}

.pet-chalet-info h4 {
  margin: 0 0 0.25rem;
  font-size: 1rem;
  color: var(--main-navy-black);
}

.pet-chalet-info span {
  font-size: 0.85rem;
  color: #666;
}

.restaurants-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin: 1.5rem auto 2rem;
  max-width: 1200px;
}

.restaurant-card {
  background: #f8faf9;
  padding: 1.25rem;
  border-radius: 12px;
  border-left: 4px solid var(--main-mint-white);
}

.restaurant-card h4 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  color: var(--main-navy-black);
}

.restaurant-location {
  font-size: 0.85rem;
  color: #666;
  margin: 0 0 0.25rem;
}

.restaurant-note {
  font-size: 0.85rem;
  color: var(--main-navy-black);
  font-style: italic;
  margin: 0;
}

@media screen and (max-width: 991px) {
  .pet-chalets-grid,
  .restaurants-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 600px) {
  .pet-chalets-grid,
  .restaurants-grid {
    grid-template-columns: 1fr;
  }
}

/* Venue Cards (Wineries/Breweries Blog) */
.venue-cards {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin: 1.5rem 0 2.5rem;
}

.venue-card {
  background: white;
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border-left: 4px solid var(--main-mint-white);
}

.venue-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.5rem;
  flex-wrap: wrap;
}

.venue-header h3 {
  margin: 0;
  font-size: 1.2rem;
  color: var(--main-navy-black);
}

.venue-type {
  background: #f0f4f2;
  color: var(--main-navy-black);
  font-size: 0.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  white-space: nowrap;
}

.venue-location {
  font-size: 0.9rem;
  color: #666;
  margin: 0 0 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.dog-friendly-badge {
  background: #e8f5e9;
  color: #2e7d32;
  font-size: 0.75rem;
  padding: 0.2rem 0.6rem;
  border-radius: 12px;
}

.venue-card p {
  margin: 0 0 1rem;
  line-height: 1.6;
}

.venue-highlight {
  background: #f8faf9;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  font-size: 0.95rem;
}

.venue-note {
  font-size: 0.85rem;
  color: #666;
  font-style: italic;
  margin: 0 0 1rem !important;
}

/* Activities Table (Group Getaway Blog) */
.activities-table {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 1.5rem 0 2rem;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  overflow: hidden;
}

.activity-row {
  display: grid;
  grid-template-columns: 1fr 2fr auto;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: white;
  border-bottom: 1px solid #e0e0e0;
  align-items: center;
}

.activity-row:last-child {
  border-bottom: none;
}

.activity-row:nth-child(even) {
  background: #f8faf9;
}

.activity-name {
  font-weight: 600;
  color: var(--main-navy-black);
}

.activity-desc {
  color: #555;
  font-size: 0.95rem;
}

.activity-ages {
  background: #e8f5e9;
  color: #2e7d32;
  font-size: 0.8rem;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  white-space: nowrap;
}

/* Checklist Grid (Group Getaway Blog) */
.checklist-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin: 1.5rem 0 2rem;
}

.checklist-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  background: white;
  padding: 1rem 1.25rem;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
  border-left: 3px solid var(--main-mint-white);
}

.checklist-task {
  font-size: 0.95rem;
  color: var(--main-navy-black);
}

.checklist-timing {
  font-size: 0.8rem;
  color: #666;
  white-space: nowrap;
}

@media screen and (max-width: 768px) {
  .activity-row {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .activity-ages {
    justify-self: start;
  }

  .checklist-grid {
    grid-template-columns: 1fr;
  }

  .checklist-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
}

/* Summer Activities Blog Styles */
.summer-activities-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin: 1.5rem 0 2rem;
}

.summer-activity-card {
  background: white;
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.summer-activity-card h3 {
  margin: 0 0 0.75rem;
  font-size: 1.1rem;
  color: var(--main-navy-black);
}

.summer-activity-card p {
  margin: 0 0 1rem;
  line-height: 1.6;
  color: #444;
}

.activity-meta {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.activity-tip {
  font-size: 0.85rem;
  color: #666;
  font-style: italic;
}

.activity-age {
  font-size: 0.8rem;
  background: #e8f5e9;
  color: #2e7d32;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  display: inline-block;
  width: fit-content;
}

/* Beaches Grid */
.beaches-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin: 1.5rem 0 2rem;
}

.beach-card {
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border-radius: 12px;
  padding: 1.5rem;
  border-left: 4px solid #0ea5e9;
}

.beach-card h3 {
  margin: 0 0 0.75rem;
  font-size: 1.1rem;
  color: var(--main-navy-black);
}

.beach-card p {
  margin: 0 0 1rem;
  line-height: 1.6;
  color: #444;
}

.beach-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.beach-drive {
  font-size: 0.85rem;
  color: #666;
}

.beach-highlight {
  font-size: 0.8rem;
  background: #0ea5e9;
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
}

/* Adventures List */
.adventures-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 1.5rem 0 2rem;
}

.adventure-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
  background: white;
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.adventure-content {
  flex: 1;
}

.adventure-content h3 {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
  color: var(--main-navy-black);
}

.adventure-content p {
  margin: 0 0 0.75rem;
  line-height: 1.6;
  color: #444;
}

.adventure-tip {
  font-size: 0.85rem;
  color: #666;
  font-style: italic;
}

.adventure-drive {
  font-size: 0.85rem;
  color: var(--main-navy-black);
  background: #f0f4f2;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  white-space: nowrap;
  height: fit-content;
}

@media screen and (max-width: 768px) {
  .summer-activities-grid,
  .beaches-grid {
    grid-template-columns: 1fr;
  }

  .adventure-item {
    flex-direction: column;
    gap: 1rem;
  }

  .adventure-drive {
    align-self: flex-start;
  }
}

/* Blog Sidebar */
.blog-sidebar {
  position: sticky;
  top: 2rem;
  height: fit-content;
}

.sidebar-section {
  background: white;
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

.sidebar-section h3 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--main-navy-black);
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--main-navy-black);
}

.sidebar-section ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar-section li {
  margin-bottom: 0.75rem;
}

.sidebar-section a {
  color: var(--main-navy-black);
  text-decoration: none;
  font-size: 0.95rem;
  transition: color 0.3s ease;
}

.sidebar-section a:hover {
  color: #0a3d5c;
  text-decoration: underline;
}

/* Blog Featured Image */
.blog-featured-image {
  width: 100%;
  margin: 0;
  padding: 0;
}

.blog-featured-image img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-fit: cover;
}

/* Sidebar Related Posts with Thumbnails */
.sidebar-related-posts {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.sidebar-related-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: var(--main-navy-black);
  transition: color 0.3s ease;
}

.sidebar-related-item:hover {
  color: #0a3d5c;
}

.sidebar-related-item:hover .sidebar-related-thumb img {
  transform: scale(1.05);
}

.sidebar-related-thumb {
  flex-shrink: 0;
  width: 60px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
}

.sidebar-related-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.sidebar-related-item span {
  font-size: 0.9rem;
  line-height: 1.4;
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .blog-featured-image {
    padding: 0;
    margin: 0;
  }
}

/* Blog Post Header (for pages using shared Navbar) */
.blog-post-header {
  background: linear-gradient(135deg, var(--main-navy-black) 0%, #0a3d5c 100%);
  padding: 10rem 2rem 2rem;
  margin-top: 0;
  margin-bottom: 0;
}

.blog-post-header-container {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
  color: white;
}

.blog-post-header-container .blog-category {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  background: rgba(255,255,255,0.2);
  padding: 0.5rem 1rem;
  border-radius: 20px;
  margin-bottom: 1rem;
  color: white;
}

.blog-post-header-container h1 {
  font-size: 2.5rem;
  font-weight: 600;
  margin-bottom: 1rem;
  line-height: 1.3;
  color: white;
}

.blog-post-header-container .blog-meta {
  font-size: 0.95rem;
  opacity: 0.8;
  color: white;
}

@media screen and (max-width: 768px) {
  .blog-post-header {
    padding: 6rem 1.5rem 1.5rem;
  }

  .blog-post-header-container h1 {
    font-size: 1.75rem;
  }
}

/* Blog Post Responsive */
@media screen and (max-width: 992px) {
  .blog-post-content .container {
    grid-template-columns: 1fr;
  }

  .blog-sidebar {
    position: static;
  }

  .blog-post-hero-text h1 {
    font-size: 2.25rem;
  }

  .reasons-grid,
  .runs-grid,
  .activities-grid-blog {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 768px) {
  .blog-post-body {
    padding: 2rem;
  }

  .blog-post-hero-text h1 {
    font-size: 1.75rem;
  }

  .blog-post-body h2 {
    font-size: 1.5rem;
  }

  .reasons-grid,
  .runs-grid,
  .activities-grid-blog {
    grid-template-columns: 1fr;
  }
}

/* ========================================
   SECONDARY NAVBAR - For Attractions & Location Pages
   Transparent navbar with logo left, menu items + Book Now right aligned
   ======================================== */

.secondary-nav-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
}

.secondary-nav-header {
  background: rgba(1, 13, 23, 0.60);
  padding: 0.5rem 0;
}

.secondary-nav-container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 2rem;
}

/* Logo on far left - no chevron icon */
.secondary-nav-logo {
  color: #DAE8E1;
  margin-top: 0.5rem;
}

.secondary-nav-logo .nav-logo-container {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  color: #DAE8E1;
}

.secondary-nav-logo .svg-main-logo {
  width: 30px;
  height: 30px;
  aspect-ratio: 1/1;
  color: #DAE8E1;
  fill: #DAE8E1;
}

.secondary-nav-logo .svg-main-logo svg {
  width: 100%;
  height: 100%;
}

.secondary-nav-logo .brand-logo-text {
  color: #DAE8E1;
  font-family: Bitter, serif;
  font-size: 2.25rem;
  font-style: normal;
  font-weight: 200;
  line-height: 30px;
}

.secondary-nav-logo .brand-logo-text .bold {
  font-weight: 600;
}

/* Right side container: menu items + Book Now button aligned */
.secondary-nav-right {
  display: flex;
  align-items: center;
  gap: 1rem;
}

/* Nav menu in secondary navbar - override the hover-reveal behavior from main navbar */
.secondary-nav-menu {
  display: flex;
  align-items: center;
  height: auto;
  max-height: none !important;
  opacity: 1 !important;
  overflow: visible !important;
}

.secondary-nav-menu .nav-link {
  color: var(--main-mint-white);
  padding-bottom: 1rem;
}

.secondary-nav-menu .nav-link:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.secondary-nav-menu .nav-dropdown {
  color: var(--main-mint-white);
}

/* Dropdown list styling for secondary navbar - light bg with navy text */
.secondary-nav-menu .dropdown-list,
.secondary-nav-menu .nav-link.bvc-dropdown .dropdown-list,
.secondary-nav-menu .bvc-dropdown-list {
  background-color: var(--main-mint-white);
}

.secondary-nav-menu .dropdown-link,
.secondary-nav-menu .nav-link.bvc-dropdown .dropdown-link,
.secondary-nav-menu .bvc-dropdown-link {
  color: var(--main-navy-black) !important;
}

.secondary-nav-menu .dropdown-link:hover,
.secondary-nav-menu .bvc-dropdown-link:hover {
  background-color: rgba(1, 22, 39, 0.1);
}

/* Dropdown toggle icon for secondary navbar */
.secondary-nav-menu .bvc-icon-dropdown-toggle {
  border-color: var(--main-mint-white) transparent transparent transparent;
}

/* Book Now button in secondary navbar - same level as menu items */
.secondary-nav-book-btn {
  color: #DAE8E1;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: 1rem;
}

.secondary-nav-book-btn .btn-text {
  color: #DAE8E1;
  font-family: Poppins, sans-serif;
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 300;
  line-height: normal;
}

.secondary-nav-book-btn .svg-btn-underline {
  color: #DAE8E1;
}

.secondary-nav-book-btn .svg-1-5rem {
  color: #DAE8E1;
}

/* Mobile styles for secondary navbar */
.secondary-nav-header .mobile-menu-btn {
  color: var(--main-mint-white);
}

@media screen and (max-width: 991px) {
  .secondary-nav-right {
    display: none;
  }

  .secondary-nav-container {
    justify-content: space-between;
    padding: 0.5rem 1rem;
  }
}

@media screen and (max-width: 767px) {
  .secondary-nav-container {
    padding: 0.4rem 0.75rem;
  }
}

/* Mobile menu open state - header bg matches menu green, logo/burger turn navy */
@media screen and (max-width: 991px) {
  .secondary-nav-wrapper.menu-open .secondary-nav-header {
    background: var(--main-mint-white);
  }

  .secondary-nav-wrapper.menu-open .secondary-nav-logo,
  .secondary-nav-wrapper.menu-open .secondary-nav-logo .nav-logo-container,
  .secondary-nav-wrapper.menu-open .secondary-nav-logo .brand-logo-text,
  .secondary-nav-wrapper.menu-open .secondary-nav-logo .svg-main-logo,
  .secondary-nav-wrapper.menu-open .mobile-menu-btn {
    color: var(--main-navy-black);
  }
}

/* Mobile menu items left-aligned with logo */
@media screen and (max-width: 991px) {
  .mobile-menu-nav {
    align-items: flex-start;
    width: 100%;
    max-width: none;
    padding-left: 3rem;
    padding-right: 3rem;
  }

  .mobile-menu-accordion {
    text-align: left;
  }

  .mobile-menu-accordion-header {
    text-align: left;
  }
}

@media screen and (max-width: 767px) {
  .mobile-menu-nav {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}

