body {
  background: #fff;
  font-family: var(--font-body), arial, sans-serif;
  font-weight: var(--font-body-weight, 400);
  font-size: var(--font-body-size, 1rem);
  line-height: 1.8;
  color: #6c757d;
  position: relative; }

::-moz-selection {
  color: #fff;
  background: var(--brand-primary); }

::selection {
  color: #fff;
  background: var(--brand-primary); }

a {
  -webkit-transition: .3s all ease;
  -o-transition: .3s all ease;
  transition: .3s all ease;
  text-decoration: none; }
  a:hover {
    text-decoration: none; }

h1, h2, h3, h4, h5 {
  color: #000;
  font-family: var(--font-heading), times, serif;
  font-weight: var(--font-heading-weight, 700); }

h1 { font-size: var(--font-h1, 2.5rem); }
h2 { font-size: var(--font-h2, 2rem); }
h3 { font-size: var(--font-h3, 1.5rem); }

.font-family-serif {
  font-family: var(--font-heading), times, serif; }

.font-family-sans-serif {
  font-family: var(--font-body), arial, sans-serif; }

.bg-light {
  background: #f2f4fb !important; }

.container-fluid {
  max-width: 1600px; }

.btn {
  padding-left: 30px;
  padding-right: 30px;
  padding-top: 10px;
  padding-bottom: 10px;
  border-radius: 50px; }
  .btn.btn-outline-white {
    border: 2px solid #fff; }
    .btn.btn-outline-white:hover {
      border: 2px solid transparent;
      background: #000;
      color: #fff; }
  .btn.btn-outline-white-primary {
    border: 2px solid #fff; }
    .btn.btn-outline-white-primary:hover {
      border: 2px solid transparent;
      background: var(--brand-primary);
      color: #fff; }
  .btn.uppercase {
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: .2em; }

.btn, .form-control {
  outline: none;
  -webkit-box-shadow: none !important;
  box-shadow: none !important; }
  .btn:focus, .btn:active, .form-control:focus, .form-control:active {
    outline: none; }

.form-control {
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
  height: 50px;
  border-width: 2px; }
  .form-control:active, .form-control:focus {
    border-color: var(--brand-primary); }

textarea.form-control {
  height: inherit; }

.site-header {
  position: sticky;
  top: 0;
  width: 100%;
  padding: 0;
  z-index: 1000;
  background: var(--nav-bg, #fff);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06); }
  .site-header.scrolled {
    box-shadow: 0 8px 24px -12px rgba(0, 0, 0, 0.18); }

.site-header-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem 2rem;
  min-height: 80px;
  max-width: 1600px;
  margin: 0 auto;
  padding: 12px 40px; }
  @media (max-width: 991.98px) {
    .site-header-bar {
      padding: 10px 20px;
      min-height: 64px; } }

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  text-decoration: none; }

.brand-mark {
  display: block;
  height: 56px;
  width: auto;
  max-width: 160px;
  object-fit: contain; }

.brand-name {
  color: var(--nav-text, #111);
  font-family: var(--font-heading), times, serif;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.04em;
  text-wrap: balance; }

.site-header-end {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px; }

.site-header-utils {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.25rem 1.5rem;
  margin-top: 4px; }

.site-util-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 40px;
  color: var(--nav-text, #555);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase; }
  .site-util-link:hover {
    color: var(--nav-text, #111); }
  .site-util-link .ion-ios-location,
  .site-util-link .ion-ios-telephone {
    color: var(--brand-primary);
    font-size: 14px; }

.menu-open {
  overflow: hidden; }
  .menu-open .site-header {
    z-index: 1001; }
.menu-open .site-logo,
.menu-open .brand-lockup {
  position: relative;
  z-index: 201; }
  .menu-open .site-navbar {
    display: flex; }

.site-logo {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  line-height: 0;
  font-size: 22px;
  color: #1a1a1a;
  font-weight: 700;
  font-family: var(--font-heading), times, serif; }
  .site-logo img {
    height: 72px;
    width: auto;
    max-width: 220px;
    display: block;
    object-fit: contain;
    image-rendering: auto; }
  @media (max-width: 991.98px) {
    .site-logo {
      font-size: 20px; }
      .site-logo img {
        height: 56px;
        max-width: 160px; } }

.site-navbar {
  position: static;
  display: flex;
  background: transparent;
  border: 0;
  min-height: 0;
  overflow: visible; }
  .site-navbar .site-nav-menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.25rem 2rem;
    margin: 0;
    font-family: var(--font-body), arial, sans-serif; }
    .site-navbar .site-nav-menu li {
      margin: 0; }
      .site-navbar .site-nav-menu li a {
        color: var(--nav-text, #2b2b2b);
        font-size: 15px;
        font-weight: 400;
        line-height: 1.2;
        letter-spacing: 0.01em;
        padding: 10px 0 12px;
        position: relative;
        display: inline-block;
        min-height: 40px;
        transition-property: color; }
        .site-navbar .site-nav-menu li a:after {
          content: "";
          position: absolute;
          left: 0;
          right: 0;
          bottom: 6px;
          height: 3px;
          background: var(--brand-primary);
          transform: scaleX(0);
          transform-origin: center;
          transition-property: transform;
          transition-duration: 0.2s;
          transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }
        .site-navbar .site-nav-menu li a:hover {
          color: var(--nav-text, #111); }
        .site-navbar .site-nav-menu li a:hover:after {
          transform: scaleX(1); }
      .site-navbar .site-nav-menu li.active a {
        color: var(--nav-text, #111); }
        .site-navbar .site-nav-menu li.active a:after {
          transform: scaleX(1); }

.site-nav-item--has-children {
  position: relative; }

.site-nav-parent {
  appearance: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  font: inherit;
  color: var(--nav-text, #2b2b2b);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.01em;
  padding: 10px 0 12px;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 40px;
  transition-property: color; }

.site-nav-parent:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 6px;
  height: 3px;
  background: var(--brand-primary);
  transform: scaleX(0);
  transform-origin: center;
  transition-property: transform;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }

.site-nav-item--has-children:hover > .site-nav-parent:after,
.site-nav-item--has-children.is-open > .site-nav-parent:after,
.site-nav-item--has-children.active > .site-nav-parent:after {
  transform: scaleX(1); }

.site-nav-caret {
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-1px) rotate(45deg);
  transition-property: transform;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }

.site-nav-item--has-children.is-open > .site-nav-parent .site-nav-caret {
  transform: translateY(1px) rotate(225deg); }

.site-nav-submenu {
  list-style: none;
  margin: 0;
  padding: 0.45rem 0;
  min-width: 11rem;
  background: var(--brand-card-bg, #fff);
  border: 1px solid var(--border, rgba(0, 0, 0, 0.1));
  border-radius: calc(var(--card-radius, 16px) * 0.5);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
  z-index: 40; }

.site-nav-submenu li a {
  display: block;
  padding: 0.65rem 1rem !important;
  min-height: 40px;
  white-space: nowrap; }

.site-nav-submenu li a:after {
  display: none !important; }

@media (min-width: 992px) {
  .site-nav-submenu {
    position: absolute;
    top: calc(100% - 0.15rem);
    left: 50%;
    transform: translateX(-50%) translateY(0.35rem);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition-property: opacity, transform, visibility;
    transition-duration: 0.18s;
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }

  .site-nav-item--has-children:hover > .site-nav-submenu,
  .site-nav-item--has-children:focus-within > .site-nav-submenu,
  .site-nav-item--has-children.is-open > .site-nav-submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0); }
}

@media (max-width: 991.98px) {
  .site-navbar {
    position: fixed;
    display: none;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99;
    background: var(--nav-bg, #fff);
    overflow-y: auto;
    align-items: center;
    justify-content: center;
    padding: 5rem 1.5rem 2rem; }
    .site-navbar .site-nav-menu {
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
      gap: 0.5rem;
      width: 100%;
      max-width: 28rem; }
      .site-navbar .site-nav-menu li a {
        font-size: 1.75rem;
        padding: 8px 0 14px;
        min-height: 44px; }
        .site-navbar .site-nav-menu li a:after {
          bottom: 6px; }
    .site-navbar .site-nav-parent {
      font-size: 1.75rem;
      padding: 8px 0 14px;
      min-height: 44px;
      width: 100%;
      justify-content: space-between; }
    .site-navbar .site-nav-submenu {
      display: none;
      position: static;
      transform: none;
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      width: 100%;
      margin: 0 0 0.5rem;
      padding: 0.25rem 0 0.25rem 0.75rem;
      border: 0;
      border-left: 2px solid var(--brand-primary, #b08a4f);
      border-radius: 0;
      box-shadow: none;
      background: transparent; }
    .site-navbar .site-nav-item--has-children.is-open > .site-nav-submenu {
      display: block; }
    .site-navbar .site-nav-submenu li a {
      font-size: 1.15rem;
      padding: 0.55rem 0 !important; }
    .site-header-end {
      align-items: flex-start; }
    .site-header-utils {
      margin-top: 1.5rem;
      justify-content: flex-start; } }

.full-height {
  height: 100vh;
  min-height: 700px; }

.site-hero {
  background-size: cover;
  height: 100vh;
  min-height: 700px;
  width: 100%;
  position: relative; }
  .site-hero .heading {
    font-family: var(--font-heading), times, serif;
    font-weight: var(--font-heading-weight, 700); }
  .site-hero .scroll-down {
    position: absolute;
    bottom: 20px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    color: #fff; }
  .site-hero.overlay:before {
    background: rgba(0, 0, 0, 0.45);
    content: "";
    position: absolute;
    height: 100vh;
    min-height: 700px;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0; }
  .site-hero.inner-page {
    height: 50vh;
    min-height: 700px; }
    .site-hero.inner-page.overlay:before {
      height: 50vh;
      min-height: 700px; }

.site-hero-inner {
  height: 100vh;
  min-height: 700px; }
  .site-hero-inner .heading {
    font-size: var(--font-h1, 2.5rem);
    font-family: var(--font-heading), times, serif;
    color: #fff;
    line-height: 1;
    font-weight: var(--font-heading-weight, 700); }
    @media (max-width: 991.98px) {
      .site-hero-inner .heading {
        font-size: calc(var(--font-h1, 2.5rem) * 0.65); } }
  .site-hero-inner .sub-heading {
    font-size: 30px;
    font-weight: 200;
    color: #fff;
    line-height: 1.5; }
    @media (max-width: 991.98px) {
      .site-hero-inner .sub-heading {
        font-size: 18px; } }

.inner-page .site-hero-inner {
  height: 50vh;
  min-height: 700px; }

.page-inside .site-hero-inner, .page-inside {
  height: 70vh;
  min-height: 500px; }

.page-inside.overlay:before {
  height: 70vh;
  min-height: 500px; }

@media (max-width: 991.98px) {
  .full-height,
  .site-hero,
  .site-hero.overlay:before,
  .site-hero-inner {
    min-height: 0; }
  .site-hero.inner-page,
  .site-hero.inner-page.overlay:before,
  .inner-page .site-hero-inner {
    height: auto;
    min-height: 40vh; }
  .page-inside .site-hero-inner,
  .page-inside {
    min-height: 0;
    height: auto; }
  .page-inside.overlay:before {
    min-height: 0;
    height: 100%; } }

.menu-open .site-menu-toggle span {
  background: var(--nav-text, #000); }

.site-menu-toggle {
  display: none;
  top: 0;
  float: none;
  width: 44px;
  height: 44px;
  position: relative;
  margin: 0;
  z-index: 200;
  padding: 0;
  border: 0;
  background: transparent;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: transform .5s ease-in-out;
  -o-transition: transform .5s ease-in-out;
  transition: transform .5s ease-in-out;
  cursor: pointer; }
  @media (max-width: 991.98px) {
    .site-menu-toggle {
      display: block; } }
  .site-menu-toggle span {
    display: block;
    position: absolute;
    height: 2px;
    width: 100%;
    background: var(--nav-text, #1a1a1a);
    border-radius: 9px;
    opacity: 1;
    left: 0;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg);
    -webkit-transition: .25s ease-in-out;
    -moz-transition: .25s ease-in-out;
    -o-transition: .25s ease-in-out;
    transition: .25s ease-in-out; }
  .site-menu-toggle span:nth-child(1) {
    top: 0px; }
  .site-menu-toggle span:nth-child(2) {
    top: 10px; }
  .site-menu-toggle span:nth-child(3) {
    top: 20px; }
  .site-menu-toggle.open span:nth-child(1) {
    top: 13px;
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    transform: rotate(135deg); }
  .site-menu-toggle.open span:nth-child(2) {
    opacity: 0;
    left: -60px; }
  .site-menu-toggle.open span:nth-child(3) {
    top: 13px;
    -webkit-transform: rotate(-135deg);
    -moz-transform: rotate(-135deg);
    -o-transform: rotate(-135deg);
    -ms-transform: rotate(-135deg);
    transform: rotate(-135deg); }

.section {
  padding: 7em 0; }
  @media (max-width: 991.98px) {
    .section {
      padding: 3em 0; } }

@media (max-width: 991.98px) {
  .lead {
    font-size: 16px; } }

.visit-section .heading {
  font-size: 15px;
  text-transform: uppercase;
  font-family: var(--font-body), arial, sans-serif;
  color: #b3b3b3;
  letter-spacing: .2em;
  margin-bottom: 30px; }

.visit-section .visit a {
  color: #000; }
  .visit-section .visit a:hover {
    color: var(--brand-primary); }

.visit-section .visit img {
  -webkit-box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.2);
  box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.2);
  margin-bottom: 15px; }

.visit-section .visit h3 {
  font-size: 20px;
  margin-bottom: 0; }

.visit-section .reviews-star span {
  font-size: 18px;
  color: var(--brand-primary); }

.visit-section .reviews-count {
  color: #adb5bd;
  font-style: italic; }

.heading-serif, .heading, .testimonial-section .heading, .slider-section .heading, .blog-post-entry .heading {
  font-size: var(--font-h1, 2.5rem);
  font-family: var(--font-heading), times, serif;
  font-weight: var(--font-heading-weight, 700); }
  @media (max-width: 991.98px) {
    .heading-serif, .heading, .testimonial-section .heading, .slider-section .heading, .blog-post-entry .heading {
      font-size: calc(var(--font-h1, 2.5rem) * 0.7); } }

.bg-pattern {
  background: #e9ecef url("../img/round.png"); }

.slider-section {
  position: relative; }

.blog-post-entry {
  position: relative; }

.half .image, .half .text {
  width: 50%; }
  @media (max-width: 991.98px) {
    .half .image, .half .text {
      width: 100%; } }

.half .image {
  background-size: cover;
  background-position: center center; }
  @media (max-width: 991.98px) {
    .half .image {
      height: 300px; } }

.half .text {
  padding: 100px 7%; }
  @media (max-width: 991.98px) {
    .half .text {
      padding-top: 50px;
      padding-bottom: 50px; } }
  .half .text h2 {
    font-size: 70px; }
    @media (max-width: 991.98px) {
      .half .text h2 {
        font-size: 40px; } }

.testimonial blockquote {
  padding: 0; }

.testimonial .author-image img {
  width: 70px; }

.post .media-custom {
  background: #fff;
  -webkit-transition: .3s all ease;
  -o-transition: .3s all ease;
  transition: .3s all ease;
  -webkit-box-shadow: 0 2px 5px -2px rgba(0, 0, 0, 0.1);
  box-shadow: 0 2px 5px -2px rgba(0, 0, 0, 0.1); }
  .post .media-custom:hover, .post .media-custom:focus {
    -webkit-box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.1);
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.1); }
  .post .media-custom a {
    color: #000; }
    .post .media-custom a:hover {
      color: var(--brand-primary); }
  .post .media-custom .media-body {
    padding: 10px 30px; }
  .post .media-custom h2 {
    font-size: 26px; }

.media-custom .meta-post {
  color: #adb5bd;
  text-transform: uppercase;
  letter-spacing: .2em;
  font-size: 14px; }

.owl-carousel .owl-item {
  opacity: .4; }
  .owl-carousel .owl-item.active {
    opacity: 1; }

.owl-carousel .owl-nav {
  position: absolute;
  top: 50%;
  width: 100%; }
  .owl-carousel .owl-nav .owl-prev,
  .owl-carousel .owl-nav .owl-next {
    position: absolute;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    margin-top: -10px; }
    .owl-carousel .owl-nav .owl-prev:hover, .owl-carousel .owl-nav .owl-prev:focus, .owl-carousel .owl-nav .owl-prev:active,
    .owl-carousel .owl-nav .owl-next:hover,
    .owl-carousel .owl-nav .owl-next:focus,
    .owl-carousel .owl-nav .owl-next:active {
      outline: none; }
    .owl-carousel .owl-nav .owl-prev span:before,
    .owl-carousel .owl-nav .owl-next span:before {
      font-size: 40px; }
  .owl-carousel .owl-nav .owl-prev {
    left: 30px !important; }
  .owl-carousel .owl-nav .owl-next {
    right: 30px !important; }

.owl-carousel .owl-dots {
  text-align: center; }
  .owl-carousel .owl-dots .owl-dot {
    border-width: 2px !important;
    width: 10px;
    height: 10px;
    margin: 5px;
    border-radius: 50%; }

.owl-carousel.home-slider {
  z-index: 1;
  position: relative; }
  .owl-carousel.home-slider .owl-nav {
    opacity: 0;
    visibility: hidden;
    -webkit-transition: .3s all ease;
    -o-transition: .3s all ease;
    transition: .3s all ease; }
    .owl-carousel.home-slider .owl-nav button {
      color: #fff; }
  .owl-carousel.home-slider:focus .owl-nav, .owl-carousel.home-slider:hover .owl-nav {
    opacity: 1;
    visibility: visible; }
  .owl-carousel.home-slider .slider-item {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    height: calc(100vh - 117px);
    min-height: 700px;
    position: relative; }
    .owl-carousel.home-slider .slider-item .slider-text {
      color: #fff;
      height: calc(100vh - 117px);
      min-height: 700px; }
      .owl-carousel.home-slider .slider-item .slider-text h1 {
        font-size: 40px;
        color: #fff;
        line-height: 1.2;
        font-weight: 800 !important;
        text-transform: uppercase; }
        @media (max-width: 991.98px) {
          .owl-carousel.home-slider .slider-item .slider-text h1 {
            font-size: 40px; } }
      .owl-carousel.home-slider .slider-item .slider-text p {
        font-size: 20px;
        line-height: 1.5;
        font-weight: 300;
        color: white; }
    .owl-carousel.home-slider .slider-item.dark .child-name {
      color: #000; }
    .owl-carousel.home-slider .slider-item.dark h1 {
      color: #000; }
    .owl-carousel.home-slider .slider-item.dark p {
      color: #000; }
  .owl-carousel.home-slider .owl-dots {
    position: absolute;
    bottom: 100px;
    width: 100%; }
    .owl-carousel.home-slider .owl-dots .owl-dot {
      width: 10px;
      height: 10px;
      margin: 5px;
      border-radius: 50%;
      border: 2px solid transparent;
      outline: none !important;
      position: relative;
      -webkit-transition: .3s all ease;
      -o-transition: .3s all ease;
      transition: .3s all ease;
      background: #fff; }
      .owl-carousel.home-slider .owl-dots .owl-dot.active {
        border: 2px solid white;
        background: none; }

.owl-carousel.major-caousel .owl-stage-outer {
  padding-top: 0 !important;
  padding-bottom: 0 !important; }

.owl-carousel.major-caousel .owl-stage-outer {
  padding-top: 30px;
  padding-bottom: 30px; }

.owl-carousel.major-caousel .slider-item {
  height: inherit;
  min-height: inherit; }
  .owl-carousel.major-caousel .slider-item img {
    margin-bottom: 0; }

.owl-carousel.major-caousel .owl-nav {
  opacity: 1;
  visibility: visible; }
  .owl-carousel.major-caousel .owl-nav .owl-prev, .owl-carousel.major-caousel .owl-nav .owl-next {
    -webkit-transition: .3s all ease;
    -o-transition: .3s all ease;
    transition: .3s all ease;
    color: #495057; }
    .owl-carousel.major-caousel .owl-nav .owl-prev:hover, .owl-carousel.major-caousel .owl-nav .owl-prev:focus, .owl-carousel.major-caousel .owl-nav .owl-next:hover, .owl-carousel.major-caousel .owl-nav .owl-next:focus {
      color: #6c757d;
      outline: none; }
    .owl-carousel.major-caousel .owl-nav .owl-prev.disabled, .owl-carousel.major-caousel .owl-nav .owl-next.disabled {
      color: #dee2e6; }
  .owl-carousel.major-caousel .owl-nav .owl-prev {
    left: -60px !important; }
  .owl-carousel.major-caousel .owl-nav .owl-next {
    right: -60px !important; }

.owl-carousel.major-caousel .owl-dots {
  bottom: 50px !important; }
  @media (max-width: 991.98px) {
    .owl-carousel.major-caousel .owl-dots {
      bottom: 10px !important; } }

.owl-carousel.js-carousel-2 .slider-item {
  padding: 0 20px;
  text-align: center; }

.owl-carousel.js-carousel-2 .owl-nav {
  position: absolute;
  top: 50%;
  width: 100%;
  z-index: 299; }
  .owl-carousel.js-carousel-2 .owl-nav .owl-prev,
  .owl-carousel.js-carousel-2 .owl-nav .owl-next {
    position: absolute;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    margin-top: -10px; }
    .owl-carousel.js-carousel-2 .owl-nav .owl-prev:hover, .owl-carousel.js-carousel-2 .owl-nav .owl-prev:focus, .owl-carousel.js-carousel-2 .owl-nav .owl-prev:active,
    .owl-carousel.js-carousel-2 .owl-nav .owl-next:hover,
    .owl-carousel.js-carousel-2 .owl-nav .owl-next:focus,
    .owl-carousel.js-carousel-2 .owl-nav .owl-next:active {
      outline: none; }
    .owl-carousel.js-carousel-2 .owl-nav .owl-prev span:before,
    .owl-carousel.js-carousel-2 .owl-nav .owl-next span:before {
      font-size: 40px; }
  .owl-carousel.js-carousel-2 .owl-nav .owl-prev {
    left: -30px !important; }
  .owl-carousel.js-carousel-2 .owl-nav .owl-next {
    right: -30px !important; }

.owl-carousel.js-carousel-2 .owl-dots .owl-dot {
  display: inline-block;
  border: none; }
  .owl-carousel.js-carousel-2 .owl-dots .owl-dot > span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #e9ecef;
    display: inline-block; }
  .owl-carousel.js-carousel-2 .owl-dots .owl-dot.active > span {
    background: var(--brand-primary); }
  .owl-carousel.js-carousel-2 .owl-dots .owl-dot:active, .owl-carousel.js-carousel-2 .owl-dots .owl-dot:focus, .owl-carousel.js-carousel-2 .owl-dots .owl-dot:hover {
    outline: none; }

.owl-custom-nav {
  float: right;
  position: relative;
  z-index: 10; }
  .owl-custom-nav .owl-custom-prev,
  .owl-custom-nav .owl-custom-next {
    padding: 10px;
    font-size: 30px;
    background: #ccc;
    line-height: 0;
    width: 60px;
    text-align: center;
    display: inline-block; }

.footer-section {
  background: #e9e4d9;
  color: #2b2b2b; }
  .footer-section a {
    color: #4a4a4a; }
    .footer-section a:hover {
      color: var(--brand-primary); }
  .footer-section p {
    color: #6b6b6b; }
  .footer-section .bordertop {
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    padding-top: 20px; }
  .footer-section .contact-info span.d-block {
    font-style: italic;
    color: #111; }
  .footer-section .social a {
    font-size: 18px;
    padding: 10px;
    color: #4a4a4a; }
  .footer-section .link li {
    margin-bottom: 10px; }

.footer-newsletter .form-group {
  position: relative; }

.footer-newsletter .form-control {
  background: none;
  border: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.18);
  border-radius: 0;
  color: #111; }
  .footer-newsletter .form-control::-webkit-input-placeholder {
    /* Chrome/Opera/Safari */
    color: rgba(0, 0, 0, 0.35);
    font-style: italic; }
  .footer-newsletter .form-control::-moz-placeholder {
    /* Firefox 19+ */
    color: rgba(0, 0, 0, 0.35);
    font-style: italic; }
  .footer-newsletter .form-control:-ms-input-placeholder {
    /* IE 10+ */
    color: rgba(0, 0, 0, 0.35);
    font-style: italic; }
  .footer-newsletter .form-control:-moz-placeholder {
    /* Firefox 18- */
    color: rgba(0, 0, 0, 0.35);
    font-style: italic; }
  .footer-newsletter .form-control:active, .footer-newsletter .form-control:focus {
    border-bottom: 1px solid var(--brand-primary); }

.footer-newsletter button[type="submit"] {
  background: none;
  color: #111;
  position: absolute;
  top: 0;
  right: 0; }

.side-box, .sidebar-search {
  padding: 30px;
  background: #fff;
  -webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
  margin-bottom: 30px; }
  .side-box .heading, .sidebar-search .heading {
    font-size: 18px;
    margin-bottom: 30px;
    font-family: var(--font-body), arial, sans-serif; }

.post-list li {
  margin-bottom: 20px; }
  .post-list li a > div {
    margin-top: -10px; }
  .post-list li a .meta {
    font-size: 13px;
    color: #adb5bd; }
  .post-list li a .image {
    width: 150px; }
  .post-list li a h3 {
    font-size: 16px; }
  .post-list li:last-child {
    margin-bottom: 0; }

.sidebar-search .form-group {
  position: relative;
  margin-bottom: 0; }

.sidebar-search .icon-search {
  position: absolute;
  top: 50%;
  left: 15px;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%); }

.sidebar-search .search-input {
  border-color: #dee2e6;
  padding-left: 40px;
  border-radius: 0px; }
  .sidebar-search .search-input:focus, .sidebar-search .search-input:active {
    border-color: #343a40; }

.contact-section .contact-info p {
  font-family: "Playfair Display", times, serif;
  font-size: 30px;
  margin-bottom: 30px; }
  .contact-section .contact-info p .d-block {
    font-size: 14px;
    letter-spacing: .2em;
    font-weight: bold;
    font-family: var(--font-body), arial, sans-serif;
    text-transform: uppercase; }

.post-categories li {
  display: block; }
  .post-categories li a {
    display: block;
    position: relative;
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 1px solid #e9ecef; }
    .post-categories li a .count {
      position: absolute;
      top: 0;
      right: 0;
      color: #6c757d; }

.custom-pagination .page-item .page-link {
  text-align: center;
  border: none;
  background: none;
  border-radius: 50% !important;
  width: 50px;
  height: 50px;
  padding: 0;
  line-height: 50px;
  margin-right: 10px;
  margin-bottom: 10px; }

.custom-pagination .page-item.active .page-link {
  background: var(--brand-primary);
  -webkit-box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.2);
  box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.2); }

.line-height-1-2 {
  line-height: 1.2; }

/* Mouse Animation */
.mouse {
  width: 100px;
  display: inline-block;
  position: absolute;
  left: 50%;
  bottom: 140px;
  z-index: 1;
  -webkit-transform: translateX(-25%);
  -ms-transform: translateX(-25%);
  transform: translateX(-25%); }

.mouse-icon {
  width: 25px;
  height: 45px;
  border: 2px solid white;
  border-radius: 15px;
  cursor: pointer;
  position: relative;
  text-align: center; }

.mouse-wheel {
  height: 6px;
  margin: 2px auto 0;
  display: block;
  width: 3px;
  background-color: white;
  border-radius: 50%;
  -webkit-animation: 1.6s ease infinite wheel-up-down;
  -moz-animation: 1.6s ease infinite wheel-up-down;
  animation: 1.6s ease infinite wheel-up-down; }

@-webkit-keyframes wheel-up-down {
  0% {
    margin-top: 2px;
    opacity: 0; }
  30% {
    opacity: 1; }
  100% {
    margin-top: 20px;
    opacity: 0; } }

@-moz-keyframes wheel-up-down {
  0% {
    margin-top: 2px;
    opacity: 0; }
  30% {
    opacity: 1; }
  100% {
    margin-top: 20px;
    opacity: 0; } }

@keyframes wheel-up-down {
  0% {
    margin-top: 2px;
    opacity: 0; }
  30% {
    opacity: 1; }
  100% {
    margin-top: 20px;
    opacity: 0; } }

.site-block-half .image, .site-block-half .text {
  width: 100%; }
  @media (min-width: 992px) {
    .site-block-half .image, .site-block-half .text {
      width: 50%; } }

@media (max-width: 991.98px) {
  .site-block-half .image {
    margin-bottom: 50px;
    height: 300px; } }

.site-block-half .text {
  padding-left: 15px;
  padding-right: 15px;
  padding-bottom: 15px; }
  @media (min-width: 992px) {
    .site-block-half .text {
      padding: 4rem; } }

.site-block-half .bg-image {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center; }
  @media (max-width: 991.98px) {
    .site-block-half .bg-image {
      height: 400px; } }

.site-block-half.site-block-video .image {
  position: relative; }
  .site-block-half.site-block-video .image .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    font-size: 20px;
    width: 70px;
    height: 70px;
    background: #fff;
    display: block;
    border-radius: 50%;
    opacity: 1;
    color: var(--brand-primary) !important; }
    .site-block-half.site-block-video .image .play-button:hover {
      opacity: 1; }
    .site-block-half.site-block-video .image .play-button > span {
      position: absolute;
      left: 55%;
      top: 50%;
      -webkit-transform: translate(-60%, -50%);
      -ms-transform: translate(-60%, -50%);
      transform: translate(-60%, -50%); }

.field-icon-wrap {
  position: relative; }
  .field-icon-wrap .form-control {
    position: relative;
    padding-right: 40px;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    color: #a6a6a6; }
  .field-icon-wrap .icon {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    right: 15px;
    z-index: 2; }
  .field-icon-wrap select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 100%; }

.block-32 {
  background: #fff;
  padding: 30px;
  -webkit-box-shadow: 0 2px 80px -10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 2px 80px -10px rgba(0, 0, 0, 0.2);
  width: 100%; }
  .block-32 .field-icon-wrap {
    position: relative; }
    .block-32 .field-icon-wrap .form-control {
      position: relative;
      padding-right: 40px;
      -webkit-box-shadow: none !important;
      box-shadow: none !important;
      color: #a6a6a6; }
    .block-32 .field-icon-wrap .icon {
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%);
      right: 15px;
      z-index: 2; }
    .block-32 .field-icon-wrap select {
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
      width: 100%; }

.block-2 {
  margin-bottom: 50px;
  -webkit-perspective: 1000;
  -moz-perspective: 1000;
  -ms-perspective: 1000;
  perspective: 1000;
  -ms-transform: perspective(1000px);
  -moz-transform: perspective(1000px);
  -moz-transform-style: preserve-3d;
  -ms-transform-style: preserve-3d; }
  .block-2:hover .back, .block-2.hover .back {
    -webkit-transform: rotateY(0deg);
    -moz-transform: rotateY(0deg);
    -o-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    transform: rotateY(0deg); }
  .block-2:hover .front, .block-2.hover .front {
    -webkit-transform: rotateY(180deg);
    -moz-transform: rotateY(180deg);
    -o-transform: rotateY(180deg);
    transform: rotateY(180deg); }
  .block-2, .block-2 .front, .block-2 .back {
    width: 100%;
    height: 427px; }
  .block-2 .flipper {
    -webkit-transition: 0.6s;
    -webkit-transform-style: preserve-3d;
    -ms-transition: 0.6s;
    -moz-transition: 0.6s;
    -moz-transform: perspective(1000px);
    -moz-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;
    -o-transition: 0.6s;
    transition: 0.6s;
    transform-style: preserve-3d;
    position: relative; }
  .block-2 .front, .block-2 .back {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: 4px;
    -webkit-transition: 0.6s;
    -webkit-transform-style: preserve-3d;
    -webkit-transform: rotateY(0deg);
    -moz-transition: 0.6s;
    -moz-transform-style: preserve-3d;
    -moz-transform: rotateY(0deg);
    -o-transition: 0.6s;
    -o-transform-style: preserve-3d;
    -o-transform: rotateY(0deg);
    -ms-transition: 0.6s;
    -ms-transform-style: preserve-3d;
    -ms-transform: rotateY(0deg);
    transition: 0.6s;
    transform-style: preserve-3d;
    transform: rotateY(0deg);
    position: absolute;
    top: 0;
    left: 0; }
  .block-2 .front {
    -webkit-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    background: lightgreen;
    z-index: 2;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat; }
    .block-2 .front:before {
      content: '';
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background: -moz-linear-gradient(top, transparent 0%, transparent 18%, rgba(0, 0, 0, 0.8) 99%, rgba(0, 0, 0, 0.8) 100%);
      background: -webkit-linear-gradient(top, transparent 0%, transparent 18%, rgba(0, 0, 0, 0.8) 99%, rgba(0, 0, 0, 0.8) 100%);
      background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(18%, transparent), color-stop(99%, rgba(0, 0, 0, 0.8)), to(rgba(0, 0, 0, 0.8)));
      background: -o-linear-gradient(top, transparent 0%, transparent 18%, rgba(0, 0, 0, 0.8) 99%, rgba(0, 0, 0, 0.8) 100%);
      background: linear-gradient(to bottom, transparent 0%, transparent 18%, rgba(0, 0, 0, 0.8) 99%, rgba(0, 0, 0, 0.8) 100%);
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#cc000000',GradientType=0 ); }
    .block-2 .front .box {
      position: absolute;
      bottom: 0;
      left: 20px;
      right: 20px;
      bottom: 20px; }
      .block-2 .front .box h2, .block-2 .front .box p {
        color: #fff;
        margin: 0;
        padding: 0;
        line-height: 1.5; }
      .block-2 .front .box h2 {
        font-size: 20px; }
      .block-2 .front .box p {
        font-size: 12px; }
  .block-2 .back {
    background: #fff;
    -webkit-box-shadow: 0 0 70px -10px rgba(0, 0, 0, 0.4);
    box-shadow: 0 0 70px -10px rgba(0, 0, 0, 0.4);
    -webkit-transform: rotateY(-180deg);
    -moz-transform: rotateY(-180deg);
    -o-transform: rotateY(-180deg);
    -ms-transform: rotateY(-180deg);
    transform: rotateY(-180deg); }
  .block-2 .back p {
    position: absolute;
    top: 40px;
    left: 0;
    right: 0;
    text-align: center;
    padding: 0 20px;
    font-size: 18px; }
  .block-2 .author {
    bottom: 0;
    position: absolute;
    bottom: 20px;
    left: 20px;
    right: 20px; }
    .block-2 .author .image {
      width: 40px; }
      .block-2 .author .image img {
        border-radius: 50%;
        max-width: 100%; }
    .block-2 .author .position {
      display: block;
      font-size: 12px; }
  @media (max-width: 991.98px) {
    .block-2 .back {
      -webkit-transform: rotateY(0deg);
      -moz-transform: rotateY(0deg);
      -o-transform: rotateY(0deg);
      -ms-transform: rotateY(0deg);
      transform: rotateY(0deg); }
    .block-2 .front {
      -webkit-transform: rotateY(180deg);
      -moz-transform: rotateY(180deg);
      -o-transform: rotateY(180deg);
      transform: rotateY(180deg); } }

.text-black {
  color: #000 !important; }

.check-availabilty {
  margin-top: -170px;
  position: relative; }
  .check-availabilty .block-32 {
    background: #fff;
    border-radius: 10px; }

.room {
  position: relative;
  display: block; }
  .room .img-wrap {
    position: relative;
    overflow: hidden; }
    .room .img-wrap img {
      -webkit-transition: .3s all ease-in-out;
      -o-transition: .3s all ease-in-out;
      transition: .3s all ease-in-out;
      -webkit-transform: scale(1);
      -ms-transform: scale(1);
      transform: scale(1);
      margin-bottom: 0 !important; }
  .room:hover .img-wrap img, .room:focus .img-wrap img {
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    transform: scale(1.05); }

.letter-spacing-1 {
  letter-spacing: .1em; }

.text-opacity-8 {
  opacity: .8; }

.text-opacity-7 {
  opacity: .7; }

.text-opacity-6 {
  opacity: .6; }

.text-opacity-5 {
  opacity: .5; }

.letter-spacing-2 {
  letter-spacing: .2em; }

.bg-image {
  background-size: cover;
  background-attachment: fixed; }

.bg-image-2 {
  background-size: cover;
  background-position: center center; }

.food-menu-tabs {
  text-align: center; }
  .food-menu-tabs .nav-tabs {
    text-align: center;
    display: inline-block;
    text-transform: uppercase;
    border-bottom: none; }
    .food-menu-tabs .nav-tabs li {
      display: inline-block; }
      .food-menu-tabs .nav-tabs li a {
        border: none;
        background: none;
        font-size: 1.2rem;
        font-weight: bold;
        position: relative;
        display: block; }
        .food-menu-tabs .nav-tabs li a:before {
          -webkit-transition: .3s all ease;
          -o-transition: .3s all ease;
          transition: .3s all ease;
          content: "";
          position: absolute;
          bottom: 0;
          left: 16px;
          right: 20px;
          height: 2px;
          background: transparent; }
        .food-menu-tabs .nav-tabs li a.active {
          border: none;
          background: none;
          color: #fff; }
          .food-menu-tabs .nav-tabs li a.active:before {
            background: #fff; }

.custom-caption {
  font-size: 14px;
  letter-spacing: .2em; }

.bg-image {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  position: relative;
  z-index: 1; }
  .bg-image.overlay {
    position: relative; }
    .bg-image.overlay > .container {
      position: relative;
      z-index: 3; }
    .bg-image.overlay:before {
      z-index: 2;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      content: "";
      background: rgba(0, 0, 0, 0.6); }

.img-absolute {
  position: absolute;
  bottom: -100px;
  right: -100px; }
  .img-absolute img {
    max-width: 250px;
    border-radius: 50%;
    border: 10px solid #f2f4fb; }
  @media (max-width: 991.98px) {
    .img-absolute {
      right: 0px; }
      .img-absolute img {
        max-width: 160px; } }

.custom-breadcrumbs {
  list-style: none;
  padding: 0;
  margin: 0; }
  .custom-breadcrumbs li {
    display: inline-block;
    color: #fff;
    margin: 0 4px;
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: .1em;
    font-weight: bold; }
    .custom-breadcrumbs li a {
      font-weight: normal; }
      .custom-breadcrumbs li a:hover {
        color: #fff; }

.timeline-item {
  padding: 3em 2em 2em;
  position: relative;
  border-left: 2px solid #dee2e6; }
  .timeline-item::before {
    content: attr(date-is);
    position: absolute;
    left: 2em;
    font-weight: bold;
    top: 1em;
    display: block;
    font-weight: 700;
    font-size: .785rem; }
  .timeline-item::after {
    width: 10px;
    height: 10px;
    display: block;
    top: 1em;
    position: absolute;
    left: -6px;
    border-radius: 10px;
    content: '';
    border: 2px solid #dee2e6;
    background: white; }
  .timeline-item:last-child {
    -webkit-border-image: -webkit-gradient(linear, left top, left bottom, color-stop(60%, #dee2e6), to(rgba(222, 226, 230, 0))) 1 100%;
    -webkit-border-image: -webkit-linear-gradient(top, #dee2e6 60%, rgba(222, 226, 230, 0)) 1 100%;
    -o-border-image: -o-linear-gradient(top, #dee2e6 60%, rgba(222, 226, 230, 0)) 1 100%;
    border-image: -webkit-gradient(linear, left top, left bottom, color-stop(60%, #dee2e6), to(rgba(222, 226, 230, 0))) 1 100%;
    border-image: linear-gradient(to bottom, #dee2e6 60%, rgba(222, 226, 230, 0)) 1 100%; }

.custom-pagination {
  text-align: center; }
  .custom-pagination ul {
    padding: 0;
    margin: 0; }
    .custom-pagination ul li {
      display: inline-block; }
      .custom-pagination ul li a {
        background: #fff;
        border-radius: 50%;
        border: 1px solid transparent; }
        .custom-pagination ul li a:hover {
          border: 1px solid #d9d9d9;
          -webkit-box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 10px -2px rgba(0, 0, 0, 0.1); }
      .custom-pagination ul li a, .custom-pagination ul li span {
        display: inline-block;
        width: 47px;
        margin: 2px;
        height: 47px;
        font-size: 1.2rem;
        line-height: 47px; }
      .custom-pagination ul li.active span {
        background: var(--brand-primary);
        color: #fff;
        border-radius: 50%; }

/* CMS theme kits — chrome only; colors come from :root tokens */
.theme-gold .heading,
.theme-forest .heading,
.theme-ocean .heading {
  position: relative; }
.theme-gold .heading:after,
.theme-forest .heading:after,
.theme-ocean .heading:after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin-top: 12px;
  background: var(--brand-primary);
  border-radius: 2px; }
.theme-gold .text-center .heading:after,
.theme-forest .text-center .heading:after,
.theme-ocean .text-center .heading:after {
  margin-left: auto;
  margin-right: auto; }
.theme-gold .site-hero .heading:after,
.theme-forest .site-hero .heading:after,
.theme-ocean .site-hero .heading:after {
  display: none; }

.theme-gold .blog-entry,
.theme-gold .room,
.theme-gold .media-custom,
.theme-gold .blog-card,
.theme-gold .room-card,
.theme-gold .testimonial-card {
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
  overflow: hidden; }

.theme-forest .site-hero.overlay:before {
  background: rgba(28, 43, 34, 0.58); }
.theme-forest .footer-section {
  background: var(--brand-band-muted, #e9e4d9);
  color: var(--brand-on-muted, #2b2b2b); }
.theme-forest .blog-entry,
.theme-forest .room,
.theme-forest .media-custom,
.theme-forest .blog-card,
.theme-forest .room-card,
.theme-forest .testimonial-card,
.theme-forest .offers-card,
.theme-forest .facilities-grid-item,
.theme-forest .dual-showcase-panel,
.theme-forest .cards-grid-item {
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(28, 43, 34, 0.12);
  overflow: hidden; }
.theme-forest .heading:after {
  background: var(--brand-accent); }

.theme-ocean .site-hero.overlay:before {
  background: rgba(13, 33, 55, 0.52); }
.theme-ocean .blog-entry,
.theme-ocean .room,
.theme-ocean .media-custom,
.theme-ocean .blog-card,
.theme-ocean .room-card,
.theme-ocean .testimonial-card {
  border-radius: 4px;
  box-shadow: none;
  border: 1px solid rgba(13, 33, 55, 0.08);
  overflow: hidden; }

/* Theme-driven section bands */
.site-band--dark {
  background: var(--brand-band-dark);
  color: var(--brand-on-dark); }

.site-band--light {
  background: var(--brand-band-light);
  color: inherit; }

.site-band--muted {
  background: var(--brand-band-muted);
  color: var(--brand-on-muted); }

.site-band--dark .gallery-section-head h2,
.site-band--dark .gallery-section-head p,
.site-band--dark .testimonials-section-head h2,
.site-band--dark .blog-section-head h2,
.site-band--dark .text-section-inner h2,
.site-band--dark .section-heading,
.site-band--dark .section-eyebrow,
.site-band--dark .section-intro {
  color: var(--brand-on-dark); }

.site-band--dark .gallery-section-head p {
  color: rgba(255, 255, 255, 0.78); }

.site-band--dark .heading:after {
  background: var(--brand-primary); }

.btn.btn-primary {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--brand-on-primary, #fff); }
.btn.btn-primary:hover {
  background: var(--brand-primary-hover);
  border-color: var(--brand-primary-hover);
  color: var(--brand-on-primary, #fff); }

/* Property shell — lockup docks into navbar; service cards are image + copy */
.page-home .b-btn-fix {
  display: none; }

.page-home .site-header {
  position: sticky;
  overflow: visible;
  background: rgba(255, 255, 255, calc(var(--scroll-ui, 0) * 0.98));
  box-shadow: 0 8px 24px -16px rgba(0, 0, 0, calc(var(--scroll-ui, 0) * 0.35));
  pointer-events: auto; }

.page-home .site-menu-toggle,
.page-home .site-header-end,
.page-home .brand-lockup {
  pointer-events: auto; }

.page-home .site-header-bar {
  display: flex;
  align-items: center;
  gap: 1.25rem 1.75rem;
  min-height: 72px; }

.page-home .site-menu-toggle {
  display: block;
  z-index: 1003;
  opacity: 1;
  pointer-events: auto; }
  .page-home .site-menu-toggle span {
    background: #fff; }

.page-home .brand-lockup {
  position: relative;
  left: auto;
  top: auto;
  transform: none;
  flex-direction: row;
  gap: 10px;
  z-index: 1002;
  text-align: left;
  will-change: auto; }

.page-home .brand-mark {
  height: 52px;
  max-width: 160px;
  margin: 0;
  object-fit: contain;
  image-rendering: auto; }

.page-home .brand-name {
  color: color-mix(in srgb, #fff calc((1 - var(--scroll-ui, 0)) * 100%), #111 calc(var(--scroll-ui, 0) * 100%));
  font-size: clamp(0.85rem, 1.6vw, 1.1rem);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-shadow: 0 2px 18px rgba(0, 0, 0, calc(0.4 * (1 - var(--scroll-ui, 0)))); }

.page-home .brand-lockup:has(.brand-mark) .brand-name {
  display: none; }

.page-home .site-header-end {
  opacity: 1; }

.page-home .site-header-utils {
  display: flex; }

.page-home.menu-open .site-header {
  background: var(--nav-bg, #fff);
  pointer-events: auto; }
  .page-home.menu-open .site-menu-toggle {
    opacity: 1; }
  .page-home.menu-open .site-menu-toggle span {
    background: var(--nav-text, #111); }
  .page-home.menu-open .brand-name {
    color: var(--nav-text, #111);
    text-shadow: none; }

@media (min-width: 992px) {
  .page-home .site-navbar {
    position: static;
    display: flex;
    background: transparent;
    overflow: visible;
    padding: 0;
    min-height: 0; }
    .page-home .site-navbar .site-nav-menu {
      flex-direction: row;
      flex-wrap: wrap;
      justify-content: flex-end;
      max-width: none;
      gap: 0.2rem 1.35rem; }
      .page-home .site-navbar .site-nav-menu li a {
        font-size: 14px;
        padding: 8px 0 10px;
        min-height: 40px; } }

.page-home .stay-bar {
  position: relative;
  top: auto;
  max-height: none;
  opacity: 1; }

.service-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 72vh;
  background: var(--brand-band-muted, #e9e4d9); }
.site-band--dark .service-card {
  background: rgba(255, 255, 255, 0.04); }
.site-band--dark .service-card-copy h2,
.site-band--dark .service-card-copy p,
.site-band--dark .service-card-copy .split-story-body {
  color: var(--brand-on-dark); }
.site-band--dark .service-card-link {
  color: var(--brand-on-dark);
  border-bottom-color: rgba(255, 255, 255, 0.65); }
  @media (max-width: 991.98px) {
    .service-card {
      grid-template-columns: 1fr;
      min-height: 0; } }
  .service-card:nth-child(even) .service-card-media {
    order: 2; }
  @media (max-width: 991.98px) {
    .service-card:nth-child(even) .service-card-media {
      order: 0; } }

.service-card-media {
  margin: 0;
  min-height: 420px;
  overflow: hidden;
  background: #e7ddd0; }
  .service-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    outline: 1px solid rgba(0, 0, 0, 0.1);
    outline-offset: -1px; }
  @media (max-width: 991.98px) {
    .service-card-media {
      min-height: 280px;
      aspect-ratio: 4 / 3; } }

.service-card-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8vw 7vw;
  gap: 1.25rem; }

.service-card-copy h2 {
  margin: 0;
  color: #111;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(1.6rem, 2.8vw, 2.35rem);
  line-height: 1.2;
  text-transform: uppercase;
  text-wrap: balance; }

.service-card-copy p,
.service-card-copy .split-story-body {
  margin: 0;
  color: #2b2b2b;
  font-size: 1.05rem;
  line-height: 1.85;
  text-wrap: pretty; }

.service-card-copy .split-story-link,
.service-card-link {
  align-self: flex-start;
  color: #111;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-bottom: 1px solid #111;
  padding-bottom: 4px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 8px; }
  .service-card-link:hover {
    color: var(--brand-primary); }

.services-story {
  /* band color from .site-band--* on section wrapper */ }

.stay-bar {
  position: sticky;
  top: var(--site-header-h, 80px);
  z-index: 900;
  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  max-height: 140px;
  overflow: hidden;
  transition-property: max-height, opacity, border-color;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }
  .stay-bar.is-away {
    max-height: 0;
    opacity: 0;
    pointer-events: none;
    border-top-color: transparent;
    border-bottom-color: transparent; }

.stay-bar-inner {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 40px; }
  @media (max-width: 991.98px) {
    .stay-bar-inner {
      padding: 8px 20px 16px; } }

.stay-bar-inner--external {
  align-items: center;
  justify-content: flex-end;
  gap: 1.5rem;
  min-height: 72px; }

.stay-bar-note {
  margin: 0 auto 0 0;
  color: #555;
  font-size: var(--font-caption, 0.875rem); }

.stay-field {
  flex: 1 1 180px;
  padding: 12px 20px;
  border-right: 1px dashed rgba(0, 0, 0, 0.12); }
  .stay-field label {
    display: block;
    margin: 0 0 4px;
    color: #6b6b6b;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase; }
  .stay-field .form-control {
    height: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: #111;
    font-size: 15px;
    background: transparent; }
  .stay-field--action {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    border-right: 0;
    padding-right: 0; }
  @media (max-width: 991.98px) {
    .stay-field {
      border-right: 0;
      border-bottom: 1px dashed rgba(0, 0, 0, 0.12);
      padding-left: 0;
      padding-right: 0; }
      .stay-field--action {
        border-bottom: 0;
        width: 100%;
        padding-top: 16px; }
    .stay-bar:not(.stay-bar--compact) {
      max-height: none;
      overflow: visible; } }

.stay-field-control {
  display: flex;
  align-items: center;
  gap: 8px; }

.stay-field-icon {
  color: var(--brand-primary);
  font-size: 18px; }

.stay-bar-submit {
  border-radius: 999px;
  min-height: 44px;
  padding: 10px 28px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition-property: background-color, border-color, transform; }
  .stay-bar-submit:active {
    transform: scale(0.96); }
  @media (max-width: 991.98px) {
    .stay-bar-submit {
      width: 100%; } }

.stay-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0; }

.site-hero.site-hero--fullscreen {
  height: 100vh;
  min-height: 100vh;
  width: 100%;
  position: relative;
  background-size: cover;
  background-position: center;
  overflow: hidden; }
  .site-hero.site-hero--fullscreen.overlay:before {
    display: none; }

.site-hero--fullscreen .hero-slider,
.site-hero--fullscreen .owl-stage-outer,
.site-hero--fullscreen .owl-stage,
.site-hero--fullscreen .owl-item,
.site-hero--fullscreen .hero-slide-item {
  height: 100%; }

.hero-slide-item {
  position: relative;
  height: 100%;
  min-height: 480px;
  background-size: cover;
  background-position: center; }

.hero-slide-overlay {
  position: absolute;
  inset: 0;
  background: #000;
  pointer-events: none; }

.hero-slide-caption {
  position: absolute;
  left: 40px;
  bottom: 88px;
  z-index: 2;
  max-width: 36rem;
  color: #fff;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35); }
  @media (max-width: 991.98px) {
    .hero-slide-caption {
      left: 20px;
      right: 20px;
      bottom: 96px; } }

.hero-slide-kicker {
  margin: 0 0 8px;
  font-size: var(--font-caption, 0.875rem);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.9; }

.hero-slide-title {
  margin: 0;
  color: #fff;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.15;
  text-wrap: balance; }

.hero-slide-copy {
  margin: 12px 0 0;
  max-width: 32rem;
  color: rgba(255, 255, 255, 0.92);
  font-size: var(--font-body-size, 1rem); }

.hero-slide-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-top: 16px;
  padding: 0.45rem 1rem;
  border-radius: 2px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-on-primary, #fff);
  background: var(--brand-primary);
  border: 1px solid var(--brand-primary);
  text-decoration: none;
  transition-property: background-color, border-color, transform;
  transition-duration: 0.2s; }
.hero-slide-cta:hover,
.hero-slide-cta:focus {
  background: var(--brand-primary-hover);
  border-color: var(--brand-primary-hover);
  color: var(--brand-on-primary, #fff);
  text-decoration: none; }
.hero-slide-cta:active {
  transform: scale(0.96); }

#hero-section .owl-nav {
  position: absolute;
  left: 50%;
  bottom: 28px;
  transform: translateX(calc(-50% - 72px));
  margin: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  z-index: 3; }
  #hero-section .owl-nav .owl-prev,
  #hero-section .owl-nav .owl-next {
    position: static;
    width: 40px;
    height: 40px;
    margin: 0;
    background: rgba(17, 17, 17, 0.55);
    color: #fff; }
    #hero-section .owl-nav .owl-prev span:before,
    #hero-section .owl-nav .owl-next span:before {
      font-size: 16px; }

#hero-section .owl-dots {
  position: absolute;
  left: 50%;
  bottom: 38px;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 8px; }
  #hero-section .owl-dots .owl-dot span {
    width: 7px;
    height: 7px;
    margin: 0;
    background: rgba(255, 255, 255, 0.45); }
  #hero-section .owl-dots .owl-dot.active span {
    background: #fff; }

.hero-gallery-link {
  position: absolute;
  left: 50%;
  bottom: 28px;
  transform: translateX(92px);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 16px;
  background: rgba(17, 17, 17, 0.55);
  color: #fff;
  font-size: 13px;
  letter-spacing: 0.04em; }
  .hero-gallery-link:hover {
    color: #fff;
    background: rgba(17, 17, 17, 0.75); }

.intro-copy {
  max-width: 44rem;
  margin: 0 auto 3rem;
  text-align: center; }

.intro-kicker {
  margin: 0 0 16px;
  color: #8a8a8a;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase; }

.intro-heading {
  margin: 0 0 20px;
  color: #111;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.25;
  text-wrap: balance; }
  .intro-heading:after {
    content: "";
    display: block;
    width: 48px;
    height: 3px;
    margin: 18px auto 0;
    background: var(--brand-primary); }

.intro-body {
  color: #4a4a4a;
  font-size: var(--font-body-size, 1rem);
  text-wrap: pretty; }
  .intro-body p:last-child {
    margin-bottom: 0; }

.intro-more {
  display: flex;
  justify-content: center;
  gap: 1.75rem;
  margin: 22px 0 0; }
  .intro-more a {
    color: #111;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--brand-primary);
    padding-bottom: 2px; }

.intro-photos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  max-width: 1100px;
  margin: 0 auto; }

.intro-photo {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 16 / 10; }
  .intro-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    outline: 1px solid rgba(0, 0, 0, 0.1);
    outline-offset: -1px; }

.rooms-panels {
  /* band color from .site-band--* on section wrapper */ }

.rooms-panels-head {
  padding: 3.5rem 40px 2rem;
  text-align: center; }
  .rooms-panels-head h2 {
    margin: 0;
    color: #111;
    font-family: var(--font-heading), times, serif;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: var(--font-heading-weight, 700);
    letter-spacing: 0.04em;
    text-transform: none;
    text-wrap: balance; }
  .rooms-panels-head p {
    margin: 12px auto 0;
    max-width: 40rem;
    color: #6b6b6b; }
  @media (max-width: 991.98px) {
    .rooms-panels-head {
      padding: 2.5rem 20px 1.25rem; } }

.rooms-panels-stage {
  position: relative; }

.rooms-panels-grid {
  min-height: 72vh; }
  .rooms-panels-grid .owl-stage-outer,
  .rooms-panels-grid .owl-stage,
  .rooms-panels-grid .owl-item {
    height: 72vh; }
  .rooms-panels-grid .owl-item {
    float: left; }
  @media (max-width: 991.98px) {
    .rooms-panels-grid,
    .rooms-panels-grid .owl-stage-outer,
    .rooms-panels-grid .owl-stage,
    .rooms-panels-grid .owl-item {
      height: auto;
      min-height: 56vh; } }

.rooms-panel-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  min-width: 44px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid #fff;
  background: rgba(0, 0, 0, 0.35);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer; }
  .rooms-panel-nav--prev {
    left: 16px; }
  .rooms-panel-nav--next {
    right: 16px; }
  .rooms-panel-nav:hover {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: var(--brand-on-primary, #111); }

.room-panel {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 72vh;
  padding: 2.5rem 1.5rem;
  overflow: hidden;
  color: #fff;
  text-align: center;
  text-decoration: none;
  background-color: #6d6d6d; }
  .room-panel:hover,
  .room-panel:focus {
    color: #fff;
    text-decoration: none; }
  .room-panel-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block; }
  .room-panel:hover .room-panel-shade {
    background: rgba(0, 0, 0, 0.42); }
  .room-panel:hover .room-panel-btn {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: var(--brand-on-primary, #111); }
  @media (max-width: 991.98px) {
    .room-panel {
      min-height: 56vh; } }

.room-panel-shade {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.32);
  transition-property: background-color;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }

.room-panel-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  max-width: 22rem;
  color: #fff; }

.room-panel-kicker {
  font-family: var(--font-body), arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #fff; }

.room-panel-title {
  font-family: var(--font-heading), times, serif;
  font-size: clamp(1.6rem, 2.6vw, 2.4rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.15;
  text-wrap: balance;
  color: #fff; }

.room-panel:hover .room-panel-copy,
.room-panel:hover .room-panel-kicker,
.room-panel:hover .room-panel-title,
.room-panel:focus .room-panel-copy,
.room-panel:focus .room-panel-kicker,
.room-panel:focus .room-panel-title {
  color: #fff; }

.room-panel-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  min-height: 44px;
  padding: 0 18px;
  margin-top: 8px;
  border: 1px solid #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  transition-property: background-color, color, border-color, transform;
  transition-duration: 0.2s; }
  .room-panel-btn:active {
    transform: scale(0.96); }

/* ── Layout reconstruction tokens ── */
:root {
  --content-max: 1140px;
  --section-x: clamp(1.25rem, 4vw, 2.75rem);
  --section-y: clamp(3.25rem, 6.5vw, 5.5rem);
  --section-gap: clamp(1.5rem, 3vw, 2.5rem);
  --section-head-gap: 1.25rem;
  --card-radius: 16px;
  --card-inner-radius: 8px;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2.5rem;
  --btn-height: 44px;
}

/* Unified section shell (editorial design system) */
.site-section {
  position: relative; }
.site-section__inner {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: var(--section-y) var(--section-x); }
.site-section__inner > .story-section-inner,
.site-section__inner > .venue-block-grid,
.site-section__inner > .dual-showcase-grid,
.site-section__inner > .newsletter-section-inner,
.site-section__inner > .facilities-grid,
.site-section__inner > .offers-grid,
.site-section__inner > .logo-cloud-strip,
.site-section__inner > .benefits-list,
.site-section__inner > .experiences-list,
.site-section__inner > .cards-grid,
.site-section__inner > .stats-grid,
.site-section__inner > .faq-list,
.site-section__inner > .testimonial-cards,
.site-section__inner > .blog-card-grid,
.site-section__inner > .image-text-row,
.site-section__inner > .services-grid {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0; }
.site-section .section-head {
  max-width: none;
  margin: 0 0 var(--section-head-gap);
  padding: 0; }
.site-section .section-head:last-child {
  padding-bottom: 0; }
.site-section--compact .site-section__inner {
  padding-top: calc(var(--section-y) * 0.55);
  padding-bottom: calc(var(--section-y) * 0.55); }
.site-section.site-band--muted + .site-section.site-band--muted .site-section__inner,
.site-section.site-band--light + .site-section.site-band--light .site-section__inner,
.site-section.site-band--dark + .site-section.site-band--dark .site-section__inner {
  padding-top: calc(var(--section-y) * 0.55); }
.site-section.site-band--muted + .gallery-section.site-band--muted .site-section__inner--flush,
.site-section.site-band--light + .gallery-section.site-band--light .site-section__inner--flush,
.site-section.site-band--dark + .gallery-section.site-band--dark .site-section__inner--flush {
  padding-top: var(--section-y); }
.site-section__inner--flush {
  padding-top: 0;
  padding-bottom: 0; }
.site-section__inner--flush:first-child {
  padding-top: var(--section-y); }
.site-section__inner--flush:last-child {
  padding-bottom: var(--section-y); }
.site-section__inner--flush:only-child {
  padding-top: var(--section-y);
  padding-bottom: var(--section-y); }

/* CTA alignment (honors admin alignment prop) */
.cta-section-inner {
  max-width: 720px;
  margin: 0 auto;
  padding: 0; }
.cta-section-inner--center { text-align: center; }
.cta-section-inner--left { text-align: left; }
.cta-section-inner--right { text-align: right; }

/* Section carousels — minimum 44px nav hit area */
.js-section-carousel .owl-nav .owl-prev,
.js-section-carousel .owl-nav .owl-next {
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center; }
.js-section-carousel .owl-dots .owl-dot span {
  min-width: 10px;
  min-height: 10px; }
.js-section-carousel .owl-dots .owl-dot {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center; }

/* Editorial headings — theme kit accent bar */
.theme-gold .section-heading,
.theme-forest .section-heading,
.theme-ocean .section-heading {
  position: relative; }
.theme-gold .section-head--center .section-heading:after,
.theme-forest .section-head--center .section-heading:after,
.theme-ocean .section-head--center .section-heading:after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin: 12px auto 0;
  background: var(--brand-primary);
  border-radius: 2px; }
.theme-forest .section-head--center .section-heading:after {
  background: var(--brand-accent); }
.theme-gold .section-head--left .section-heading:after,
.theme-forest .section-head--left .section-heading:after,
.theme-ocean .section-head--left .section-heading:after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin-top: 12px;
  background: var(--brand-primary);
  border-radius: 2px; }
.theme-forest .section-head--left .section-heading:after {
  background: var(--brand-accent); }

/* Dark / muted band — editorial typography */
.site-band--dark .section-eyebrow,
.site-band--dark .section-heading,
.site-band--dark .section-intro,
.site-band--dark .story-quote,
.site-band--dark .story-quote cite,
.site-band--dark .stats-label,
.site-band--dark .faq-item summary {
  color: var(--brand-on-dark); }
.site-band--dark .section-intro,
.site-band--dark .story-quote cite {
  color: rgba(255, 255, 255, 0.78); }
.site-band--dark .badges-strip-item {
  background: rgba(255, 255, 255, 0.12);
  color: var(--brand-on-dark);
  border: 1px solid rgba(255, 255, 255, 0.18); }
.site-band--dark .faq-item,
.site-band--dark .experiences-item {
  border-color: rgba(255, 255, 255, 0.18); }
.site-band--dark .cards-grid-item,
.site-band--dark .stats-grid-item,
.site-band--dark .facilities-grid-item,
.site-band--dark .offers-card,
.site-band--dark .testimonial-card {
  background: rgba(255, 255, 255, 0.08);
  box-shadow: none;
  border: 1px solid rgba(255, 255, 255, 0.12); }
.site-band--dark .testimonial-card-quote,
.site-band--dark .cards-grid-item h3,
.site-band--dark .stats-value {
  color: var(--brand-on-dark); }
.site-band--dark .logo-cloud-item img {
  outline-color: rgba(255, 255, 255, 0.12); }
.site-band--muted {
  --text: var(--brand-on-muted, #2b2b2b);
  --text-muted: rgba(0, 0, 0, 0.62);
  --border: rgba(0, 0, 0, 0.1);
  --surface: var(--brand-surface);
}

.page-home .site-section:first-of-type {
  margin-top: 0; }

.page-main {
  padding-bottom: 0; }

/* Inner page hero */
.site-hero.site-hero--page {
  position: relative;
  min-height: 40vh;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  overflow: hidden; }

.site-hero--page-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.48);
  pointer-events: none; }

.theme-forest .site-hero--page-overlay {
  background: rgba(28, 43, 34, 0.58); }

.theme-ocean .site-hero--page-overlay {
  background: rgba(13, 33, 55, 0.52); }

.site-hero--page-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  padding: calc(var(--site-header-h, 80px) + 2rem) 40px 3rem;
  color: #fff; }
  @media (max-width: 991.98px) {
    .site-hero--page-inner {
      padding: calc(var(--site-header-h, 80px) + 1.5rem) 20px 2.5rem; } }

.site-hero--page-title {
  margin: 0;
  color: #fff;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(1.75rem, 4vw, var(--font-h1, 2.5rem));
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.15;
  text-wrap: balance; }

.site-hero--page-subtitle {
  margin: 12px 0 0;
  max-width: 36rem;
  color: rgba(255, 255, 255, 0.88);
  font-size: var(--font-body-size, 1rem);
  text-wrap: pretty; }

.page-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
  font-size: var(--font-caption, 0.875rem); }

.page-breadcrumbs li {
  display: inline-flex;
  align-items: center;
  color: rgba(255, 255, 255, 0.75); }

.page-breadcrumbs li:not(:last-child)::after {
  content: "·";
  margin-left: 0.5rem;
  opacity: 0.6; }

.page-breadcrumbs a {
  color: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid transparent;
  transition-property: color, border-color;
  transition-duration: 0.2s; }
  .page-breadcrumbs a:hover {
    color: #fff;
    border-bottom-color: var(--brand-primary); }

/* Prose block for rich CMS HTML */
.cms-prose {
  color: #2b2b2b;
  font-size: var(--font-body-size, 1rem);
  line-height: 1.85;
  text-wrap: pretty; }
  .cms-prose h2,
  .cms-prose h3 {
    font-family: var(--font-heading), times, serif;
    font-weight: var(--font-heading-weight, 700);
    text-wrap: balance;
    margin-top: 2rem;
    margin-bottom: 0.75rem; }
  .cms-prose p:last-child {
    margin-bottom: 0; }
  .cms-prose ul,
  .cms-prose ol {
    margin: 1rem 0 1.25rem;
    padding-left: 1.5rem;
    max-width: 100%;
    overflow-wrap: anywhere; }
  .cms-prose ul {
    list-style-type: disc; }
  .cms-prose ol {
    list-style-type: decimal; }
  .cms-prose li {
    margin-bottom: 0.45rem; }
  .cms-prose li > ul,
  .cms-prose li > ol {
    margin-top: 0.45rem;
    margin-bottom: 0.45rem; }
  .cms-prose table {
    width: 100%;
    max-width: 100%;
    margin: 1.25rem 0;
    border-collapse: collapse; }
  .cms-prose th,
  .cms-prose td {
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(0, 0, 0, 0.12);
    text-align: left;
    vertical-align: top; }
  .cms-prose .table-responsive,
  .cms-prose figure.table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 1.25rem 0; }
  .cms-prose img {
    max-width: 100%;
    height: auto;
    outline: 1px solid rgba(0, 0, 0, 0.1);
    outline-offset: -1px;
    border-radius: var(--card-inner-radius); }

.cms-prose--center {
  max-width: 44rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center; }

.cms-prose--left {
  max-width: 52rem;
  margin-right: auto; }

/* Floating contact icons */
.contact-fab {
  position: fixed;
  right: 0.75rem;
  bottom: calc(1em + 5.5rem);
  z-index: 850;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  pointer-events: none; }

.contact-fab__btn {
  pointer-events: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #fff;
  text-decoration: none;
  font-size: 1.25rem;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
  transition-property: opacity, transform;
  transition-duration: 0.2s; }

.contact-fab__btn:hover {
  opacity: 0.9;
  color: #fff;
  text-decoration: none; }

.contact-fab__btn:active {
  transform: scale(0.96); }

.contact-fab__btn--whatsapp {
  background: #25d366; }

.contact-fab__btn--phone {
  background: var(--brand-primary, #8b3a2b); }

.contact-fab__btn--email {
  background: #2c2620; }

.page-home .contact-fab {
  bottom: calc(1em + 1rem); }

/* Floating book button */
.book-fab.b-btn-fix {
  position: fixed;
  right: 0;
  bottom: 1em;
  z-index: 900;
  width: 4em;
  padding: 10px;
  border: none;
  border-radius: 20px 0 0 20px;
  outline: none;
  text-align: center;
  font-size: 8pt;
  color: var(--brand-on-primary, #111);
  background-color: var(--brand-primary);
  transition-property: opacity, transform;
  transition-duration: 0.2s; }
  .book-fab.b-btn-fix:hover {
    opacity: 0.88; }
  .book-fab.b-btn-fix:active {
    transform: scale(0.96); }

/* Gallery grid + masonry */
.gallery-section {
  padding: 0; }
.gallery-section.site-band--muted,
.gallery-section.site-band--light {
  background: #e9e4d9;
  color: #2b2b2b; }
.gallery-section.site-band--dark {
  background: var(--brand-band-dark);
  color: var(--brand-on-dark); }

.gallery-section-head {
  max-width: 44rem;
  margin: 0 auto var(--section-gap);
  text-align: center; }
  .gallery-section-head h2 {
    margin: 0;
    font-family: var(--font-heading), times, serif;
    font-size: clamp(1.6rem, 3vw, var(--font-h2, 2rem));
    font-weight: var(--font-heading-weight, 700);
    text-wrap: balance; }
  .gallery-section-head p {
    margin: 12px 0 0;
    text-wrap: pretty; }

.gallery-section--layout-grid .gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  max-width: 1400px;
  margin: 0 auto; }
  @media (max-width: 1199.98px) {
    .gallery-section--layout-grid .gallery-grid {
      grid-template-columns: repeat(3, 1fr); } }
  @media (max-width: 767.98px) {
    .gallery-section--layout-grid .gallery-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 8px; } }

.gallery-section--layout-grid .gallery-grid-item {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: var(--card-inner-radius);
  background: #e7ddd0; }

.gallery-masonry {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 72px;
  gap: 8px;
  max-width: 1600px;
  margin: 0 auto; }
  @media (max-width: 991.98px) {
    .gallery-masonry {
      grid-template-columns: repeat(6, 1fr);
      grid-auto-rows: 64px;
      gap: 6px; } }
  @media (max-width: 575.98px) {
    .gallery-masonry {
      grid-template-columns: repeat(4, 1fr);
      grid-auto-rows: 56px; } }

.gallery-masonry__item {
  margin: 0;
  overflow: hidden;
  position: relative;
  background: #e7ddd0; }
  .gallery-masonry__item a {
    display: block;
    width: 100%;
    height: 100%; }
  .gallery-masonry__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    outline: 1px solid rgba(0, 0, 0, 0.1);
    outline-offset: -1px;
    transition-property: transform, filter;
    transition-duration: 0.35s;
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }
  .gallery-masonry__item:hover img {
    transform: scale(1.04);
    filter: brightness(1.05); }
  .gallery-masonry__item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: color-mix(in srgb, var(--brand-primary) 0%, transparent);
    opacity: 0;
    transition-property: opacity;
    transition-duration: 0.3s;
    pointer-events: none; }
  .gallery-masonry__item:hover::after {
    opacity: 0.18;
    background: var(--brand-primary); }

.gallery-masonry__item--a { grid-column: span 4; grid-row: span 4; }
.gallery-masonry__item--b { grid-column: span 3; grid-row: span 5; }
.gallery-masonry__item--c { grid-column: span 5; grid-row: span 3; }
.gallery-masonry__item--d { grid-column: span 3; grid-row: span 3; }
.gallery-masonry__item--e { grid-column: span 4; grid-row: span 3; }
.gallery-masonry__item--f { grid-column: span 5; grid-row: span 4; }
.gallery-masonry__item--g { grid-column: span 4; grid-row: span 5; }
.gallery-masonry__item--h { grid-column: span 4; grid-row: span 3; }
.gallery-masonry__item--i { grid-column: span 3; grid-row: span 4; }
.gallery-masonry__item--j { grid-column: span 5; grid-row: span 3; }
.gallery-masonry__item--k { grid-column: span 3; grid-row: span 3; }
.gallery-masonry__item--l { grid-column: span 4; grid-row: span 4; }

@media (max-width: 991.98px) {
  .gallery-masonry__item--a,
  .gallery-masonry__item--b,
  .gallery-masonry__item--c,
  .gallery-masonry__item--d,
  .gallery-masonry__item--e,
  .gallery-masonry__item--f,
  .gallery-masonry__item--g,
  .gallery-masonry__item--h,
  .gallery-masonry__item--i,
  .gallery-masonry__item--j,
  .gallery-masonry__item--k,
  .gallery-masonry__item--l {
    grid-column: span 3;
    grid-row: span 3; } }

@media (max-width: 575.98px) {
  .gallery-masonry__item--a,
  .gallery-masonry__item--b,
  .gallery-masonry__item--c,
  .gallery-masonry__item--d,
  .gallery-masonry__item--e,
  .gallery-masonry__item--f,
  .gallery-masonry__item--g,
  .gallery-masonry__item--h,
  .gallery-masonry__item--i,
  .gallery-masonry__item--j,
  .gallery-masonry__item--k,
  .gallery-masonry__item--l {
    grid-column: span 2;
    grid-row: span 2; } }

.gallery-section--layout-grid .gallery-grid-item a {
  display: block;
  width: 100%;
  height: 100%; }

.gallery-section--layout-grid .gallery-grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px;
  transition-property: transform;
  transition-duration: 0.35s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }

.gallery-section--layout-grid .gallery-grid-item:hover img {
  transform: scale(1.03); }

.gallery-section--layout-carousel {
  padding: var(--section-y) 0; }

.gallery-section--layout-carousel.site-band--light {
  background: var(--brand-page-bg, #faf8f4); }

.gallery-section--layout-carousel .site-section__inner:not(.site-section__inner--flush) {
  padding-bottom: clamp(1.25rem, 3vw, 2rem); }

.gallery-carousel-wrap {
  position: relative;
  max-width: min(920px, 100%);
  margin: 0 auto;
  padding: 0 clamp(2.75rem, 6vw, 3.75rem); }

.gallery-carousel.owl-carousel {
  position: relative; }

.gallery-carousel-slide {
  margin: 0; }

.gallery-carousel-slide a {
  display: block;
  overflow: hidden;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.gallery-carousel-slide img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block; }

.gallery-carousel .owl-nav {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  margin: 0;
  pointer-events: none; }

.gallery-carousel .owl-nav .owl-prev,
.gallery-carousel .owl-nav .owl-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #2b2b2b;
  font-size: 1.35rem;
  pointer-events: auto;
  transition-property: color, opacity, transform;
  transition-duration: 0.25s;
  transition-timing-function: ease; }

.gallery-carousel .owl-nav .owl-prev:hover,
.gallery-carousel .owl-nav .owl-next:hover {
  color: var(--brand-primary);
  background: transparent; }

.gallery-carousel .owl-nav .owl-prev:active,
.gallery-carousel .owl-nav .owl-next:active {
  transform: translateY(-50%) scale(0.96); }

.gallery-carousel .owl-nav .owl-prev {
  left: clamp(-2.75rem, -6vw, -3.75rem); }

.gallery-carousel .owl-nav .owl-next {
  right: clamp(-2.75rem, -6vw, -3.75rem); }

.gallery-carousel .owl-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 1rem;
  margin: 0;
  z-index: 2; }

.gallery-carousel .owl-dot span {
  width: 7px;
  height: 7px;
  margin: 0 4px;
  background: rgba(255, 255, 255, 0.45);
  transition-property: background-color, transform;
  transition-duration: 0.25s;
  transition-timing-function: ease; }

.gallery-carousel .owl-dot.active span,
.gallery-carousel .owl-dot:hover span {
  background: #fff;
  transform: scale(1.08); }

.gallery-carousel .owl-dot {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center; }

@media (max-width: 767.98px) {
  .gallery-carousel-wrap {
    padding: 0 2.5rem; }
  .gallery-carousel .owl-nav .owl-prev {
    left: -2.25rem; }
  .gallery-carousel .owl-nav .owl-next {
    right: -2.25rem; } }

/* Testimonial cards */
.testimonials-section {
  padding: 0; }

.testimonials-section-head {
  max-width: 44rem;
  margin: 0 auto var(--section-gap);
  text-align: center; }
  .testimonials-section-head h2 {
    margin: 0;
    font-family: var(--font-heading), times, serif;
    font-size: clamp(1.6rem, 3vw, var(--font-h2, 2rem));
    font-weight: var(--font-heading-weight, 700);
    text-wrap: balance; }

.testimonial-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  max-width: var(--content-max);
  margin: 0 auto; }

.testimonial-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
  background: var(--brand-card-bg, #f8f4ec);
  border-radius: var(--card-radius);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.04);
  transition-property: box-shadow, transform;
  transition-duration: 0.25s; }
  .testimonial-card:hover {
    box-shadow: 0 4px 20px color-mix(in srgb, var(--brand-card-hover) 25%, transparent);
    transform: translateY(-2px); }

.testimonial-card-avatar {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.testimonial-card-quote {
  margin: 0;
  color: #2b2b2b;
  font-size: 1.05rem;
  line-height: 1.75;
  text-wrap: pretty; }

.testimonial-card-author {
  margin: 0;
  color: #6b6b6b;
  font-size: var(--font-caption, 0.875rem);
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase; }

.testimonial-cards--carousel.owl-carousel {
  display: block;
  max-width: var(--content-max);
  margin: 0 auto; }

.testimonial-cards--carousel .testimonial-card {
  height: 100%; }

/* Blog cards */
.blog-section {
  padding: 0; }

.blog-section-head {
  max-width: 44rem;
  margin: 0 auto var(--section-gap);
  text-align: center; }
  .blog-section-head h2 {
    margin: 0;
    font-family: var(--font-heading), times, serif;
    font-size: clamp(1.6rem, 3vw, var(--font-h2, 2rem));
    font-weight: var(--font-heading-weight, 700);
    text-wrap: balance; }

/* Blog index (listing page) */
.blog-index {
  background: #fff;
  padding: clamp(2.5rem, 5vw, 4rem) 1rem clamp(3rem, 6vw, 5rem); }

.blog-index__inner {
  max-width: 76rem;
  margin: 0 auto; }

.blog-index__hero {
  max-width: 44rem;
  margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
  text-align: center; }

.blog-index__title {
  margin: 0 0 0.85rem;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.15;
  text-wrap: balance;
  color: #111; }

.blog-index__intro {
  margin: 0;
  color: #667085;
  font-size: 1.05rem;
  line-height: 1.7;
  text-wrap: pretty; }

.blog-index__empty {
  margin: 0;
  text-align: center;
  color: #667085; }

/* Services index (listing page) */
.services-index {
  background: #fff;
  padding: clamp(2.5rem, 5vw, 4rem) 1rem clamp(3rem, 6vw, 5rem); }

.services-index__inner {
  max-width: 76rem;
  margin: 0 auto; }

.services-index__hero {
  max-width: 44rem;
  margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
  text-align: center; }

.services-index__title {
  margin: 0 0 0.85rem;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.15;
  text-wrap: balance;
  color: #111; }

.services-index__intro {
  margin: 0;
  color: #667085;
  font-size: 1.05rem;
  line-height: 1.7;
  text-wrap: pretty; }

.services-index__empty {
  margin: 0;
  text-align: center;
  color: #667085; }

.services-all__grid {
  margin-top: 0; }

.about-page__split .room-detail-carousel-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.about-page__media {
  position: relative;
  min-height: clamp(22rem, 52vh, 36rem); }

.about-page__accent {
  position: absolute;
  right: -1.25rem;
  bottom: -1.25rem;
  width: 38%;
  max-width: 11rem;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 18px 40px -24px rgba(0, 0, 0, 0.35);
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.room-detail-page__body--secondary {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08); }

.about-page__video {
  margin: 1.5rem 0 0; }

.about-page__quote {
  margin: 1.35rem 0 0;
  padding: 0;
  border: 0;
  font-family: var(--font-heading), times, serif;
  font-size: 1.05rem;
  line-height: 1.55;
  color: #333; }

.about-page__quote p {
  margin: 0; }

.about-page__quote cite {
  display: block;
  margin-top: 0.65rem;
  font-style: normal;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #667085; }

.stay-bar--compact {
  position: static;
  max-height: none;
  overflow: visible;
  background: transparent;
  border: 0;
  margin-top: 1rem; }

.stay-bar--compact .stay-bar-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: end;
  max-width: none;
  margin: 0;
  padding: 0.75rem 0.85rem;
  background: var(--brand-surface, #f5f2ea);
  border-radius: 14px;
  outline: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 8px 24px -18px rgba(0, 0, 0, 0.35); }

.stay-bar--compact .stay-bar-inner--external {
  min-height: 0;
  gap: 0.5rem; }

.stay-bar--compact .stay-field {
  flex: none;
  padding: 0;
  border: 0; }

.stay-bar--compact .stay-field label {
  margin-bottom: 0.25rem;
  font-size: 10px;
  letter-spacing: 0.1em; }

.stay-bar--compact .stay-field-control,
.stay-bar--compact .stay-field-control--ghost {
  min-height: 36px;
  padding: 0 0.65rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(0, 0, 0, 0.08); }

.stay-bar--compact .stay-field-control .form-control {
  font-size: 13px; }

.stay-bar--compact .stay-field-placeholder {
  font-size: 0.82rem; }

.stay-bar--compact .stay-field--action {
  padding: 0;
  align-self: end; }

.stay-bar--compact .stay-bar-submit {
  min-height: 36px;
  padding: 0.45rem 1rem;
  font-size: 12px;
  white-space: nowrap; }

@media (max-width: 575.98px) {
  .stay-bar--compact .stay-bar-inner {
    grid-template-columns: 1fr 1fr;
    gap: 0.45rem; }
  .stay-bar--compact .stay-field--action {
    grid-column: 1 / -1; }
  .stay-bar--compact .stay-bar-submit {
    width: 100%; } }

@media (max-width: 991.98px) {
  .about-page__accent {
    right: 0.75rem;
    bottom: 0.75rem;
    width: 32%; } }

.blog-section-label {
  margin: 0 0 1.5rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: #111; }

.blog-recent {
  margin-bottom: clamp(2.5rem, 5vw, 4rem); }

.blog-recent__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start; }

.blog-featured {
  display: flex;
  flex-direction: column;
  gap: 1.25rem; }

.blog-featured__media {
  display: block;
  aspect-ratio: 16 / 10;
  border-radius: 12px;
  overflow: hidden;
  background: #eef1f4; }

.blog-featured__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.blog-recent__side {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

.blog-compact {
  display: grid;
  grid-template-columns: 10rem minmax(0, 1fr);
  gap: 1rem;
  align-items: start; }

.blog-compact__media {
  display: block;
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  overflow: hidden;
  background: #eef1f4; }

.blog-compact__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.blog-compact__body {
  min-width: 0; }

.blog-all__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 2rem); }

.blog-grid-card {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

.blog-grid-card__media {
  display: block;
  aspect-ratio: 16 / 10;
  border-radius: 12px;
  overflow: hidden;
  background: #eef1f4; }

.blog-grid-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.blog-grid-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.65rem; }

.blog-card-meta {
  margin: 0;
  font-size: 0.875rem;
  color: #6941c6;
  font-weight: 600; }

.blog-card-title {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-size: 1.125rem;
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.35;
  text-wrap: balance; }
  .blog-card-title a {
    color: #111;
    text-decoration: none; }
  .blog-card-title a:hover {
    color: #344054; }

.blog-card-arrow {
  display: inline-block;
  margin-left: 0.35rem;
  font-size: 0.95em;
  line-height: 1;
  vertical-align: baseline; }

.blog-card-excerpt {
  margin: 0;
  color: #667085;
  font-size: 0.95rem;
  line-height: 1.65;
  text-wrap: pretty; }

.blog-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.15rem; }

.blog-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.65rem;
  border: 1px solid #d0d5dd;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #344054;
  background: #fff; }

.blog-teaser-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.25rem; }

.blog-teaser-more {
  margin: 1.5rem 0 0;
  text-align: center; }

.blog-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  max-width: var(--content-max);
  margin: 0 auto; }

.blog-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--brand-card-bg, #f8f4ec);
  border-radius: var(--card-radius);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.06);
  transition-property: box-shadow, transform;
  transition-duration: 0.25s; }
  .blog-card:hover {
    box-shadow: 0 8px 28px color-mix(in srgb, var(--brand-card-hover) 22%, transparent);
    transform: translateY(-2px); }

.blog-card-media {
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #e7ddd0; }
  .blog-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    outline: 1px solid rgba(0, 0, 0, 0.1);
    outline-offset: -1px; }

.blog-card-body {
  padding: 1.5rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }
  .blog-card-body h3 {
    margin: 0;
    font-family: var(--font-heading), times, serif;
    font-size: var(--font-h3, 1.5rem);
    font-weight: var(--font-heading-weight, 700);
    line-height: 1.25;
    text-wrap: balance; }
  .blog-card-body p {
    margin: 0;
    color: #555;
    font-size: var(--font-body-size, 1rem);
    line-height: 1.7;
    text-wrap: pretty; }

/* Blog article (detail page) */
.blog-article {
  background: #fff;
  padding: clamp(2rem, 4vw, 3rem) 1rem clamp(3rem, 6vw, 4.5rem); }

.blog-article__inner {
  max-width: 42rem;
  margin: 0 auto; }

.blog-article__back {
  margin: 0 0 1.5rem; }
  .blog-article__back a {
    color: #667085;
    text-decoration: none;
    font-size: 0.95rem; }
  .blog-article__back a:hover {
    color: #111; }

.blog-article__head {
  text-align: center;
  margin-bottom: 2rem; }

.blog-article__date {
  display: block;
  margin: 0 0 1rem;
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  color: #98a2b3;
  font-weight: 600; }

.blog-article__title {
  margin: 0 0 1rem;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(2rem, 4.5vw, 2.75rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.15;
  text-wrap: balance;
  color: #111; }

.blog-article__dek {
  margin: 0 0 1rem;
  color: #667085;
  font-size: 1.125rem;
  line-height: 1.7;
  text-wrap: pretty; }

.blog-article__byline {
  margin: 0 0 1rem;
  color: #475467;
  font-size: 0.95rem; }

.blog-article__head .blog-tags {
  justify-content: center;
  margin-top: 0.5rem; }

.blog-article__cover {
  margin: 0 auto 2rem;
  max-width: 28rem;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow: hidden;
  background: #eef1f4; }
  .blog-article__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    outline: 1px solid rgba(0, 0, 0, 0.1);
    outline-offset: -1px; }

.blog-article__body {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word; }

@media (max-width: 991px) {
  .blog-recent__layout {
    grid-template-columns: 1fr; }
  .blog-all__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (max-width: 640px) {
  .blog-compact {
    grid-template-columns: 5.5rem minmax(0, 1fr); }
  .blog-all__grid {
    grid-template-columns: 1fr; } }

/* Text section */
.text-section {
  padding: 0; }

.custom-html-block a,
.custom-html-block button,
.custom-html-block [role="button"] {
  pointer-events: auto;
  cursor: pointer; }

.custom-html-block__body {
  position: relative;
  z-index: 1; }

.text-section-inner {
  max-width: 52rem;
  margin: 0 auto; }
  .text-section-inner h2 {
    margin: 0 0 1.25rem;
    font-family: var(--font-heading), times, serif;
    font-size: clamp(1.6rem, 3vw, var(--font-h2, 2rem));
    font-weight: var(--font-heading-weight, 700);
    text-wrap: balance; }
  .text-section-inner--center {
    text-align: center; }

/* Reserve now CTA band */
.reserve-cta {
  position: relative;
  padding: var(--section-y) var(--section-x);
  background-size: cover;
  background-position: center;
  overflow: hidden;
  color: var(--brand-on-dark); }

.reserve-cta-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  pointer-events: none; }

.theme-forest .reserve-cta-overlay {
  background: rgba(28, 43, 34, 0.65); }

.theme-ocean .reserve-cta-overlay {
  background: rgba(13, 33, 55, 0.6); }

.reserve-cta-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto; }

.reserve-cta-copy {
  margin: 0;
  flex: 1 1 280px;
  color: #fff;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(1.4rem, 2.5vw, var(--font-h2, 2rem));
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.25;
  text-wrap: balance; }

.reserve-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 32px;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition-property: background-color, color, transform;
  transition-duration: 0.2s; }
  .reserve-cta-btn:hover {
    background: #fff;
    color: #111; }
  .reserve-cta-btn:active {
    transform: scale(0.96); }

/* Contact page split */
.contact-page {
  padding: var(--section-y) 40px;
  background: #fff; }
  @media (max-width: 991.98px) {
    .contact-page {
      padding: var(--section-y) 20px; } }

.contact-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  max-width: 1100px;
  margin: 0 auto; }
  @media (max-width: 991.98px) {
    .contact-split {
      grid-template-columns: 1fr;
      gap: 2rem; } }

.contact-split--info-only {
  grid-template-columns: 1fr;
  max-width: 720px; }

.contact-info-panel {
  width: 100%; }

.contact-form-panel {
  padding: 2rem;
  background: var(--brand-muted, #f5f6f8);
  border-radius: var(--card-radius);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.04); }

.contact-form-panel .form-control {
  border: 0;
  border-radius: var(--card-inner-radius);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
  min-height: 44px; }

.contact-form-panel .btn-primary {
  min-height: 44px;
  border-radius: 999px;
  padding: 10px 28px;
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--brand-on-primary, #111); }
  .contact-form-panel .btn-primary:active {
    transform: scale(0.96); }

.contact-info-panel h2 {
  font-family: var(--font-heading), times, serif;
  font-size: var(--font-h3, 1.5rem);
  margin-bottom: 1.25rem;
  text-wrap: balance; }

.contact-info-tagline {
  margin: -0.5rem 0 1.5rem;
  color: #555;
  font-size: var(--font-body-size, 1rem);
  text-wrap: pretty; }

.contact-info-item {
  margin-bottom: 1.25rem;
  color: #444; }
  .contact-info-item strong {
    display: block;
    margin-bottom: 4px;
    color: #111;
    font-size: var(--font-caption, 0.875rem);
    letter-spacing: 0.08em;
    text-transform: uppercase; }

/* Flash alert banner */
.page-alert {
  padding: 1rem 40px;
  text-align: center;
  font-size: var(--font-body-size, 1rem); }
  @media (max-width: 991.98px) {
    .page-alert {
      padding: 1rem 20px; } }

.page-alert--success {
  background: #d4edda;
  color: #155724; }

.page-alert--error {
  background: #f8d7da;
  color: #721c24; }

/* Static room grid (inner pages) */
.rooms-grid-section {
  padding: var(--section-y) 40px;
  background: #fff; }
  @media (max-width: 991.98px) {
    .rooms-grid-section {
      padding: var(--section-y) 20px; } }

.rooms-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto; }

.room-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border-radius: var(--card-radius);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.06); }

.room-card-media {
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #e7ddd0; }
  .room-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    outline: 1px solid rgba(0, 0, 0, 0.1);
    outline-offset: -1px; }

.room-card-body {
  padding: 1.25rem 1.5rem 1.5rem;
  text-align: center; }
  .room-card-body h2 {
    margin: 0 0 8px;
    font-family: var(--font-heading), times, serif;
    font-size: var(--font-h3, 1.5rem);
    text-wrap: balance; }
  .room-card-price {
    color: var(--brand-primary);
    font-size: var(--font-caption, 0.875rem);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-variant-numeric: tabular-nums; }

.room-detail-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 0;
  background: #fff;
  margin-bottom: 2px; }
  @media (max-width: 991.98px) {
    .room-detail-block {
      grid-template-columns: 1fr; } }
  .room-detail-block:nth-child(even) .room-detail-media {
    order: 2; }
  @media (max-width: 991.98px) {
    .room-detail-block:nth-child(even) .room-detail-media {
      order: 0; } }

.room-detail-media {
  min-height: 320px;
  background-size: cover;
  background-position: center;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.room-detail-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem;
  gap: 1rem; }
  @media (max-width: 991.98px) {
    .room-detail-copy {
      padding: 2rem 1.5rem; } }

/* Service detail back link */
.page-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  margin-bottom: 1.5rem;
  color: #111;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--brand-primary); }

.room-card-link-wrap {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none; }

.room-card-link-wrap:hover {
  color: inherit;
  text-decoration: none; }

.room-card-link-wrap .service-card-link {
  margin-top: 0.75rem; }

/* Room detail page — Nepali Ghar split layout */
.room-detail-page {
  padding: clamp(2.5rem, 5vw, 4rem) var(--section-x); }

.room-detail-page__inner {
  max-width: min(1320px, 100%);
  margin: 0 auto; }

.room-detail-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 4.5vw, 4rem);
  align-items: start; }

.room-detail-split__media {
  position: relative;
  min-width: 0; }

.room-detail-carousel-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.06);
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.room-detail-carousel-wrap--empty {
  min-height: 320px; }

.room-detail-carousel-wrap .owl-carousel,
.room-detail-carousel-wrap .owl-stage-outer,
.room-detail-carousel-wrap .owl-stage,
.room-detail-carousel-wrap .owl-item,
.room-detail-carousel-slide {
  height: 100%; }

.room-detail-carousel-slide {
  margin: 0; }

.room-detail-carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.room-detail-carousel-wrap .owl-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 1.15rem;
  margin: 0;
  z-index: 2; }

.room-detail-carousel-wrap .owl-dot span {
  width: 7px;
  height: 7px;
  margin: 0 5px;
  background: rgba(255, 255, 255, 0.45);
  transition-property: background-color, transform;
  transition-duration: 0.25s;
  transition-timing-function: ease; }

.room-detail-carousel-wrap .owl-dot.active span,
.room-detail-carousel-wrap .owl-dot:hover span {
  background: #fff;
  transform: scale(1.08); }

.room-detail-carousel-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  transition-property: background-color, border-color, transform;
  transition-duration: 0.25s;
  transition-timing-function: ease; }

.room-detail-carousel-nav:hover {
  background: rgba(0, 0, 0, 0.38);
  border-color: rgba(255, 255, 255, 0.72);
  color: #fff; }

.room-detail-carousel-nav:active {
  transform: translateY(-50%) scale(0.96); }

.room-detail-carousel-nav--prev {
  left: clamp(0.75rem, 2vw, 1.25rem); }

.room-detail-carousel-nav--next {
  right: clamp(0.75rem, 2vw, 1.25rem); }

.room-detail-split__copy {
  min-width: 0;
  padding-top: 0.35rem; }

.room-detail-page__tags {
  margin: 0 0 1.35rem;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--brand-primary); }

.room-detail-page__title-wrap {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.15rem;
  align-items: start;
  margin-bottom: 1.35rem; }

.room-detail-page__ornament {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 1.25rem;
  padding-top: 0.4rem;
  color: var(--brand-accent, #c4a035); }

.room-detail-page__ornament-line {
  display: block;
  width: 1px;
  height: 2.75rem;
  margin-bottom: 0.65rem;
  background: currentColor;
  opacity: 0.85; }

.room-detail-page__ornament-icon {
  display: block;
  flex-shrink: 0; }

.room-detail-page__title {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(2rem, 3.8vw, 2.85rem);
  font-weight: var(--font-heading-weight, 500);
  line-height: 1.08;
  letter-spacing: -0.01em;
  text-wrap: balance;
  color: var(--text, #1c1814); }

.room-detail-page__body {
  max-width: 42rem;
  margin: 0 0 1.75rem;
  font-size: 1rem;
  line-height: 1.72;
  color: var(--text-muted, #5a534c); }

.room-detail-page__body p:last-child {
  margin-bottom: 0; }

.room-detail-page__specs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0 0 1.75rem;
  border-top: 1px solid rgba(0, 0, 0, 0.12); }

.room-detail-page__spec {
  padding: 1.15rem 1rem 1.15rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.12); }

.room-detail-page__spec:nth-child(even) {
  padding-left: 1rem;
  padding-right: 0; }

.room-detail-page__spec dt {
  margin: 0 0 0.45rem;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-primary); }

.room-detail-page__spec dd {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-size: 1.05rem;
  line-height: 1.35;
  color: var(--text, #1c1814); }

.room-detail-page__book {
  padding: 1.35rem 1.5rem 1.25rem;
  background: rgba(0, 0, 0, 0.045);
  border: 1px solid rgba(0, 0, 0, 0.06); }

.room-detail-page__book-lede {
  margin: 0 0 1rem;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--text-muted, #5a534c); }

.room-detail-page__book-btn {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 0.95rem 1.25rem;
  margin-bottom: 0.85rem;
  text-align: center; }

.room-detail-page__book-btn:active {
  transform: scale(0.96); }

.room-detail-page__book-note {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.5;
  color: var(--text-muted, #5a534c); }

.room-detail-features {
  margin-top: 3.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08); }

.room-detail-features__eyebrow {
  margin: 0 0 0.75rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted, #5a534c); }

.room-detail-features__heading {
  margin: 0 0 1.75rem;
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--text, #1a1a1a); }

.room-detail-features__heading em {
  font-style: italic;
  color: var(--brand-primary); }

.room-detail-features__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none; }

.room-detail-features__item {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.95rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--text, #1a1a1a); }

.room-detail-features__check {
  flex-shrink: 0;
  line-height: 1.5; }

@media (max-width: 575.98px) {
  .room-detail-features__grid {
    grid-template-columns: 1fr; } }

@media (max-width: 991.98px) {
  .room-detail-split {
    grid-template-columns: 1fr;
    gap: 2rem; }

  .room-detail-carousel-wrap {
    aspect-ratio: 4 / 3; }

  .room-detail-split__copy {
    padding-top: 0; } }

@media (max-width: 575.98px) {
  .room-detail-page__specs {
    grid-template-columns: 1fr; }

  .room-detail-page__spec,
  .room-detail-page__spec:nth-child(even) {
    padding-left: 0;
    padding-right: 0; } }

/* About page dual images */
.about-dual-images {
  position: relative;
  margin: 0;
  min-height: 420px; }
  .about-dual-images .about-dual-main {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--card-radius);
    outline: 1px solid rgba(0, 0, 0, 0.1);
    outline-offset: -1px; }
  .about-dual-images .about-dual-accent {
    position: absolute;
    bottom: -1.5rem;
    left: -1.5rem;
    width: 45%;
    max-width: 220px;
    border-radius: var(--card-inner-radius);
    outline: 1px solid rgba(0, 0, 0, 0.1);
    outline-offset: -1px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); }

/* 404 page */
.page-not-found {
  padding: calc(var(--section-y) * 2) 40px;
  text-align: center;
  min-height: 50vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.5rem; }
  .page-not-found h1 {
    margin: 0;
    font-family: var(--font-heading), times, serif;
    font-size: clamp(2rem, 5vw, 3rem);
    text-wrap: balance; }

/* Footer polish */
.footer-section {
  padding-top: var(--section-y);
  padding-bottom: 2rem;
  background: var(--brand-band-muted, #e9e4d9);
  color: var(--brand-on-muted, #2b2b2b);
  border-top: 1px solid rgba(0, 0, 0, 0.06); }

.site-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 2.5rem 2rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
  @media (max-width: 991.98px) {
    .site-footer-grid {
      grid-template-columns: 1fr 1fr;
      gap: 2rem; } }
  @media (max-width: 575.98px) {
    .site-footer-grid {
      grid-template-columns: 1fr;
      gap: 1.75rem; } }

.site-footer-brand {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

.site-footer-logo img {
  max-height: 56px;
  width: auto;
  outline: 1px solid rgba(0, 0, 0, 0.08);
  outline-offset: -1px;
  border-radius: 4px; }

.site-footer-name {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-size: 1.25rem;
  color: #111;
  text-wrap: balance; }

.site-footer-tagline,
.site-footer-newsletter-note {
  margin: 0;
  color: #6b6b6b;
  font-size: var(--font-body-size, 1rem);
  line-height: 1.6;
  text-wrap: pretty; }

.site-footer-heading {
  margin: 0 0 1rem;
  font-family: var(--font-heading), times, serif;
  font-size: 1rem;
  font-weight: var(--font-heading-weight, 700);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #111;
  text-wrap: balance; }

.site-footer-links li,
.site-footer-contact-list li {
  margin-bottom: 0.55rem; }

.site-footer-links a,
.site-footer-contact-list a {
  color: #4a4a4a;
  font-size: var(--font-body-size, 1rem);
  transition-property: color;
  transition-duration: 0.2s; }
  .site-footer-links a:hover,
  .site-footer-contact-list a:hover {
    color: var(--brand-primary); }

.site-footer-contact-list li {
  display: flex;
  flex-direction: column;
  gap: 0.15rem; }

.site-footer-contact-label {
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #888; }

.site-footer-phones {
  display: flex;
  flex-direction: column;
  gap: 0.15rem; }
  .site-footer-phones a,
  .site-footer-phones span {
    display: block; }

.site-footer-newsletter {
  margin-top: 0.5rem; }

.site-footer-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.25rem; }
  .site-footer-badges img {
    height: 4rem;
    width: 4rem;
    object-fit: cover;
    border-radius: 4px;
    outline: 1px solid rgba(0, 0, 0, 0.08);
    outline-offset: -1px; }

.site-footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1.75rem; }

.site-footer-copy {
  margin: 0;
  color: #888;
  font-size: var(--font-caption, 0.875rem);
  line-height: 1.5; }

.site-footer-social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem; }
  .site-footer-social a {
    color: #4a4a4a; }
    .site-footer-social a:hover {
      color: var(--brand-primary); }

.footer-section .link li {
  margin-bottom: 0.5rem; }

.footer-section .link a {
  color: inherit;
  font-size: var(--font-body-size, 1rem);
  transition-property: color;
  transition-duration: 0.2s; }
  .footer-section .link a:hover {
    color: var(--brand-primary); }

.footer-section .contact-info p {
  margin-bottom: 1rem;
  font-size: var(--font-body-size, 1rem);
  line-height: 1.6; }

.footer-section .social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  margin-left: 0.35rem;
  font-size: 1.1rem;
  transition-property: color, transform;
  transition-duration: 0.2s; }
  .footer-section .social a:hover {
    color: var(--brand-primary); }
  .footer-section .social a:active {
    transform: scale(0.96); }

.footer-section .social a img.site-footer-social-icon-img {
  width: 1.1rem;
  height: 1.1rem;
  object-fit: contain;
  display: block; }

.theme-forest .room-card,
.theme-forest .blog-card,
.theme-forest .testimonial-card,
.theme-forest .offers-card,
.theme-forest .facilities-grid-item,
.theme-forest .dual-showcase-panel,
.theme-forest .cards-grid-item {
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(28, 43, 34, 0.08); }

.theme-ocean .room-card,
.theme-ocean .blog-card,
.theme-ocean .testimonial-card {
  border-radius: 4px;
  box-shadow: none;
  border: 1px solid rgba(0, 0, 0, 0.08); }

.image-text-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center;
  max-width: var(--content-max, 1140px);
  margin: 0 auto;
  padding: 0; }
.image-text-row--reverse .image-text-media { order: 2; }
.image-text-media img {
  width: 100%;
  border-radius: 12px;
  outline: 1px solid rgba(0, 0, 0, 0.1); }
.blog-detail {
  max-width: 820px;
  margin: 0 auto;
  padding: var(--section-y) 1rem; }

.blog-detail-body {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word; }
  .blog-detail-body.cms-prose > * {
    max-width: 100%; }

.blog-detail-media img {
  width: 100%;
  border-radius: 12px;
  outline: 1px solid rgba(0, 0, 0, 0.1); }
.video-embed-wrap {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 12px; }
.video-embed-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0; }
.cards-grid,
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
  max-width: var(--content-max, 1140px);
  margin: 0 auto;
  padding: 0; }
.cards-grid-item {
  padding: 1.25rem;
  border-radius: var(--card-radius);
  background: var(--brand-card-bg, #f8f4ec);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.04); }
.cards-grid-item h3 {
  margin: 0 0 0.75rem;
  font-family: var(--font-heading);
  font-size: var(--font-h3, 1.5rem);
  text-wrap: balance; }
.stats-grid-item {
  padding: 1.25rem;
  border-radius: var(--card-radius);
  background: var(--brand-card-bg, #f8f4ec);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.04);
  text-align: center; }
.faq-list {
  max-width: 760px;
  margin: 0 auto;
  padding: 0; }
.faq-item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  padding: 0.75rem 0; }
.contact-teaser-list {
  list-style: none;
  padding: 0;
  margin: 1rem 0 1.5rem; }

.rooms-detail-section {
  background: var(--brand-muted, #f5f6f8);
  padding-bottom: var(--section-y); }

/* Editorial section typography (Nepali Ghar parity) */
.section-head {
  max-width: var(--content-max, 1140px);
  margin: 0 auto;
  padding: var(--section-y) 1rem 1.5rem;
  text-align: center; }
.section-head--left { text-align: left; }
.section-head--right { text-align: right; }
.section-eyebrow {
  margin: 0 0 0.65rem;
  font-size: var(--font-caption, 0.875rem);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.55); }
.section-heading {
  margin: 0 0 1rem;
  font-family: var(--font-heading);
  font-size: var(--font-h2, 2rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.15;
  text-wrap: balance; }
.section-heading em,
.heading-em {
  font-style: italic;
  font-weight: inherit; }
.section-intro {
  max-width: 42rem;
  margin: 0 auto;
  color: rgba(0, 0, 0, 0.72);
  line-height: 1.65;
  text-wrap: pretty; }
.section-head--left .section-intro { margin-left: 0; }
.story-quote {
  margin: 1.25rem 0 0;
  padding: 0;
  border: 0;
  font-family: var(--font-heading);
  font-size: calc(var(--font-h3, 1.5rem) * 0.95); }
.story-quote cite {
  display: block;
  margin-top: 0.75rem;
  font-family: var(--font-body);
  font-size: var(--font-caption, 0.875rem);
  font-style: normal;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.55); }

/* Trust badges strip */
.badges-section.site-section--compact .site-section__inner {
  padding-top: calc(var(--section-y) * 0.35);
  padding-bottom: calc(var(--section-y) * 0.35); }
.badges-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none; }
.badges-strip--inline { justify-content: flex-start; margin-top: 0.5rem; }
.badges-strip-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 8rem;
  padding: 0.85rem 1.1rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.04); }
.badges-strip-value {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 600; }
.badges-strip-label {
  font-size: var(--font-caption, 0.875rem);
  color: rgba(0, 0, 0, 0.62); }

/* Story section */
.story-section-inner,
.dual-showcase-grid,
.venue-block-grid,
.newsletter-section-inner {
  max-width: var(--content-max, 1140px);
  margin: 0 auto;
  padding: 0; }
.story-section-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center; }
@media (max-width: 991.98px) {
  .story-section-inner { grid-template-columns: 1fr; } }
.story-section-media img {
  width: 100%;
  border-radius: var(--card-radius);
  outline: 1px solid rgba(0, 0, 0, 0.1); }

/* Dual showcase */
.dual-showcase-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem; }
@media (max-width: 991.98px) {
  .dual-showcase-grid { grid-template-columns: 1fr; } }
.dual-showcase-panel {
  background: var(--brand-card-bg, #f8f4ec);
  border-radius: var(--card-radius);
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06); }
.dual-showcase-slide img,
.venue-slide img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, 0.1); }
.dual-showcase-copy { padding: 1.25rem 1.5rem 1.5rem; }

/* Venue blocks */
.venue-block { padding-bottom: 2rem; }
.venue-block-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2rem;
  align-items: center; }
@media (max-width: 991.98px) {
  .venue-block-grid { grid-template-columns: 1fr; } }
.venue-logo { max-height: 3.5rem; width: auto; margin-bottom: 0.75rem; }
.venue-meta {
  margin: 0 0 0.5rem;
  font-size: var(--font-caption, 0.875rem);
  letter-spacing: 0.08em;
  text-transform: uppercase; }
.venue-signatures {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin: 1rem 0;
  padding: 0;
  list-style: none; }
.venue-signatures li {
  font-size: var(--font-caption, 0.875rem);
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.05); }

/* Facilities grid */
.facilities-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  max-width: var(--content-max, 1140px);
  margin: 0 auto;
  padding: 0;
  list-style: none; }
@media (max-width: 991.98px) {
  .facilities-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) {
  .facilities-grid { grid-template-columns: 1fr; } }
.facilities-grid-item {
  display: grid;
  gap: 0.35rem;
  padding: 1.25rem;
  border-radius: var(--card-radius);
  background: var(--brand-card-bg, #f8f4ec);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05); }
.facilities-icon { color: var(--brand-primary); font-size: 1.25rem; }
.facilities-note {
  font-size: var(--font-caption, 0.875rem);
  color: rgba(0, 0, 0, 0.55); }

/* Offers */
.offers-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  max-width: var(--content-max, 1140px);
  margin: 0 auto;
  padding: 0; }
@media (max-width: 991.98px) {
  .offers-grid { grid-template-columns: 1fr; } }
.offers-card {
  border-radius: var(--card-radius);
  overflow: hidden;
  background: var(--brand-card-bg, #f8f4ec);
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06); }
.offers-card-media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover; }
.offers-card-body { padding: 1.25rem; }
.offers-badge {
  display: inline-block;
  margin-bottom: 0.5rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: var(--brand-primary);
  color: var(--brand-on-primary, #111);
  font-size: var(--font-caption, 0.875rem);
  font-weight: 600; }

.offers-card-media {
  position: relative; }

.offers-badge--overlay {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  z-index: 2;
  margin: 0;
  border-radius: 2px;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase; }

.offers-card-cta {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand-primary);
  text-decoration: none; }

.offers-card-cta:hover {
  opacity: 0.75;
  color: var(--brand-primary);
  text-decoration: none; }

/* Benefits numbered list */
.benefits-list {
  max-width: 720px;
  margin: 0 auto;
  padding: 0;
  list-style: none; }
.benefits-list-item {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 1rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.benefits-num {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-variant-numeric: tabular-nums;
  color: rgba(0, 0, 0, 0.35); }
.benefits-cta { text-align: center; padding: 1.5rem 0 0; }
.tabular-nums { font-variant-numeric: tabular-nums; }

/* Experiences accordion */
.experiences-list {
  max-width: 820px;
  margin: 0 auto;
  padding: 0; }
.experiences-item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  padding: 0.35rem 0; }
.experiences-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.85rem 0;
  cursor: pointer;
  list-style: none; }
.experiences-summary::-webkit-details-marker { display: none; }
.experiences-title { font-family: var(--font-heading); font-size: 1.15rem; }
.experiences-schedule {
  font-size: var(--font-caption, 0.875rem);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.55); }
.experiences-body { padding: 0 0 1rem; }

/* Newsletter inline */
.newsletter-inline .form-group {
  display: flex;
  gap: 0.5rem;
  max-width: 520px;
  margin: 0 auto; }
.newsletter-inline .form-control { flex: 1; }

/* Room specs + grid layout */
.room-panel-specs {
  display: block;
  margin-top: 0.35rem;
  font-size: var(--font-caption, 0.875rem);
  opacity: 0.92; }
.rooms-panels-grid--static {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  max-width: var(--content-max, 1140px);
  margin: 0 auto; }
@media (max-width: 991.98px) {
  .rooms-panels-grid--static { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) {
  .rooms-panels-grid--static { grid-template-columns: 1fr; } }

.testimonial-card-location {
  margin: 0.25rem 0 0;
  font-size: var(--font-caption, 0.875rem);
  color: rgba(0, 0, 0, 0.55);
  letter-spacing: 0.04em; }

/* Hero booking + chrome */
.stay-bar--hero {
  margin-top: -2.5rem;
  z-index: 12; }
.stay-bar-inner--external {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  align-items: end; }
@media (max-width: 991.98px) {
  .stay-bar-inner--external { grid-template-columns: 1fr 1fr; } }
.stay-field-control--ghost {
  min-height: 46px;
  display: flex;
  align-items: center;
  padding: 0 0.85rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(0, 0, 0, 0.08); }
.stay-field-control--link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition-property: border-color, box-shadow, background-color;
  transition-duration: 0.2s; }
.stay-field-control--link:hover,
.stay-field-control--link:focus-visible {
  color: inherit;
  text-decoration: none;
  border-color: rgba(0, 0, 0, 0.16);
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.04);
  background: #fff; }
.stay-field-placeholder { color: rgba(0, 0, 0, 0.45); font-size: 0.92rem; }
.hero-scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 1.5rem;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  color: #fff;
  text-decoration: none;
  font-size: var(--font-caption, 0.875rem);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.88;
  transition-property: opacity, transform;
  transition-duration: 0.2s; }
.hero-scroll-cue:hover { color: #fff; opacity: 1; }
.hero-scroll-cue-icon { font-size: 1.1rem; }
.site-header-book {
  margin-left: 0.5rem;
  padding: 0.45rem 1rem;
  border-radius: 999px;
  font-size: 0.875rem;
  white-space: nowrap;
  transition-property: transform;
  transition-duration: 0.2s; }
.site-header-book:active { transform: scale(0.96); }
.promo-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  padding: 0.75rem 1rem;
  text-align: center;
  background: var(--brand-secondary, #2c3e50);
  color: var(--brand-on-dark, #fff);
  box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.12); }
.promo-bar-link,
.promo-bar-text {
  color: inherit;
  font-size: var(--font-caption, 0.875rem);
  letter-spacing: 0.04em;
  text-decoration: none; }
.promo-bar-link:hover { color: var(--brand-primary); text-decoration: none; }
body.has-promo-bar { padding-bottom: 3rem; }

.logo-cloud-section { padding: 0; }
.logo-cloud-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.5rem 2rem;
  max-width: var(--content-max, 1140px);
  margin: 0 auto;
  padding: 0;
  list-style: none; }
.logo-cloud-item img {
  max-height: 3.5rem;
  width: auto;
  opacity: 0.85;
  outline: 1px solid rgba(0, 0, 0, 0.06);
  outline-offset: -1px;
  border-radius: 4px; }
.logo-cloud-item a { text-decoration: none; color: inherit; }

/* ── Section library redesign (tokens, layouts, states) ── */
.site-band--dark {
  --text: var(--brand-on-dark);
  --text-muted: rgba(255, 255, 255, 0.72);
  --border: rgba(255, 255, 255, 0.16);
  --surface: rgba(255, 255, 255, 0.08);
  --muted: rgba(255, 255, 255, 0.08); }

.media-frame {
  position: relative;
  display: block;
  margin: 0;
  overflow: hidden;
  background: var(--muted, var(--brand-muted));
  outline: 1px solid var(--border);
  outline-offset: -1px; }
.media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }
.media-frame--empty::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(135deg, var(--muted, var(--brand-muted)) 0%, var(--surface, var(--brand-surface)) 100%); }
.media-frame--empty { min-height: 12rem; }

.btn {
  min-height: var(--btn-height, 44px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  transition-property: background-color, color, border-color, transform;
  transition-duration: 0.2s; }
.btn:active { transform: scale(0.96); }
.btn-primary {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--brand-on-primary, #fff); }
.btn-primary:hover,
.btn-primary:focus {
  background: var(--brand-primary-hover);
  border-color: var(--brand-primary-hover);
  color: var(--brand-on-primary, #fff); }

.btn:focus-visible,
.form-control:focus-visible,
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--accent, var(--brand-accent)) !important;
  outline-offset: 3px; }

.site-card,
.cards-grid-item,
.offers-card,
.testimonial-card,
.service-tile,
.dual-showcase-panel,
.blog-card {
  background: var(--brand-card-bg, var(--surface));
  border-radius: var(--card-inner-radius);
  outline: 1px solid var(--border);
  box-shadow: none; }

/* Rooms */
.rooms-panels-grid,
.rooms-panels-grid .owl-stage-outer,
.rooms-panels-grid .owl-stage,
.rooms-panels-grid .owl-item {
  min-height: 58vh;
  height: 58vh; }
.room-panel {
  min-height: 58vh;
  background-color: var(--brand-band-dark); }
.room-panel-btn {
  min-height: var(--btn-height);
  border-color: rgba(255, 255, 255, 0.85);
  background: transparent;
  color: #fff; }
.room-panel .room-panel-btn {
  background: transparent; }
.rooms-panel-nav {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.85);
  background: rgba(0, 0, 0, 0.4);
  font-size: 1rem;
  letter-spacing: 0; }
.rooms-panel-nav:focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: 3px; }
@media (max-width: 991.98px) {
  .rooms-panels-grid,
  .rooms-panels-grid .owl-stage-outer,
  .rooms-panels-grid .owl-stage,
  .rooms-panels-grid .owl-item,
  .room-panel {
    height: auto;
    min-height: 48vh; } }

/* Gallery */
.gallery-section.site-band--muted,
.gallery-section.site-band--light {
  background: var(--brand-band-muted);
  color: var(--text); }
.gallery-masonry__item,
.gallery-section--layout-grid .gallery-grid-item {
  background: var(--muted);
  border-radius: var(--card-inner-radius); }
.gallery-masonry__item.media-frame--empty,
.gallery-grid-item.media-frame--empty {
  min-height: 0; }

/* Story */
.story-section-inner { gap: var(--space-6); }
.story-section-media {
  min-height: 22rem;
  border-radius: var(--card-radius);
  align-self: stretch; }
.story-section-media { min-height: 22rem; }
.story-section-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--card-radius); }
.story-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4) var(--space-5);
  margin: var(--space-4) 0 0; }
@media (max-width: 991.98px) {
  .story-section-media { order: -1; min-height: 16rem; } }

/* Venue */
.venue-block { padding-bottom: var(--space-6); }
.venue-block:last-child { padding-bottom: 0; }
.venue-block-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-6);
  align-items: center; }
.venue-block--flip .venue-block-grid { direction: rtl; }
.venue-block--flip .venue-block-grid > * { direction: ltr; }
.venue-media {
  min-height: 18rem;
  border-radius: var(--card-inner-radius); }
.venue-media .venue-slide img,
.venue-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover; }
.venue-block-copy h3 {
  margin: 0 0 var(--space-3);
  font-family: var(--font-heading);
  font-size: var(--font-h3);
  text-wrap: balance; }
.venue-block-copy p {
  color: var(--text-muted);
  line-height: 1.7;
  text-wrap: pretty; }
@media (max-width: 991.98px) {
  .venue-block-grid,
  .venue-block--flip .venue-block-grid {
    grid-template-columns: 1fr;
    direction: ltr; }
  .venue-media { order: -1; } }

/* Facilities — dense amenity grid, not floating cards */
.facilities-grid {
  gap: 0;
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border); }
.facilities-grid-item {
  padding: var(--space-4);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border); }
.facilities-icon { color: var(--brand-primary); }
.facilities-label { font-weight: 600; }

/* Offers */
.offers-grid { gap: var(--space-5); }
@media (max-width: 991.98px) {
  .offers-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) {
  .offers-grid { grid-template-columns: 1fr; } }
.offers-card { overflow: hidden; }
.offers-card-media { aspect-ratio: 16 / 10; }
.offers-card-media.media-frame--empty { min-height: 12rem; }
.offers-card-body { padding: var(--space-4); }
.offers-card-body h3 {
  margin: 0 0 var(--space-2);
  font-family: var(--font-heading);
  font-size: var(--font-h3); }

.offers-section .section-heading em {
  font-style: italic;
  color: var(--brand-primary); }

.offers-card-media {
  position: relative;
  overflow: hidden; }

.offers-badge--overlay {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  z-index: 2;
  margin: 0;
  padding: 0.35rem 0.7rem;
  border-radius: 2px;
  background: var(--brand-primary);
  color: var(--brand-on-primary, #fff);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase; }

.offers-card-body p {
  margin: 0 0 var(--space-3);
  color: var(--text-muted, #5a534c);
  line-height: 1.6; }

.offers-card-cta {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand-primary);
  text-decoration: none;
  transition-property: opacity;
  transition-duration: 0.2s; }

.offers-card-cta:hover {
  opacity: 0.75;
  color: var(--brand-primary);
  text-decoration: none; }

.offers-card-cta:active {
  transform: scale(0.96); }

.offers-stage-wrap {
  position: relative;
  width: min(1320px, 94vw);
  max-width: 100%;
  margin: 0 auto;
  padding: 0 clamp(1rem, 2.5vw, 1.75rem); }

.offers-stage {
  position: relative; }

.offers-track--grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
  max-width: var(--content-max, 1140px);
  margin: 0 auto; }

.offers-track--carousel.owl-carousel .owl-stage-outer {
  overflow: hidden; }

.offers-track--carousel.owl-carousel .owl-stage {
  display: flex;
  align-items: stretch; }

.offers-track--carousel.owl-carousel .owl-item {
  display: flex;
  align-items: stretch; }

.offers-track--carousel .offers-card {
  width: 100%;
  height: 100%; }

.offers-panel-nav {
  position: absolute;
  top: 42%;
  z-index: 2;
  transform: translateY(-50%);
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--text);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
  transition-property: background-color, border-color, color, transform;
  transition-duration: 0.25s; }

.offers-panel-nav--prev { left: 0; }
.offers-panel-nav--next { right: 0; }

.offers-panel-nav:hover {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--brand-on-primary, #fff); }

.offers-panel-nav:active {
  transform: translateY(-50%) scale(0.96); }

@media (max-width: 991.98px) {
  .offers-track--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .offers-stage-wrap {
    width: min(720px, 92vw); } }

@media (max-width: 575.98px) {
  .offers-track--grid {
    grid-template-columns: 1fr;
    max-width: 22rem;
    margin: 0 auto; } }

/* Benefits — horizontal steps on desktop */
.benefits-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: var(--space-5);
  max-width: none; }
.benefits-list-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-3);
  padding: 0;
  border-bottom: 0;
  align-items: start; }
.benefits-num {
  font-size: var(--font-caption);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand-primary);
  padding-top: 0.35rem; }
.benefits-copy h3 {
  margin: 0 0 var(--space-2);
  font-family: var(--font-heading);
  font-size: 1.15rem; }
.benefits-copy p {
  margin: 0;
  color: var(--text-muted);
  line-height: 1.65; }
@media (max-width: 575.98px) {
  .benefits-list { grid-template-columns: 1fr; } }

/* Services tiles */
.services-section {
  position: relative;
  overflow: visible; }

.services-section__head,
.services-section__foot {
  position: relative;
  z-index: 2; }

.services-section__wave {
  position: absolute;
  left: 50%;
  width: 100vw;
  height: clamp(14rem, 38vw, 24rem);
  top: clamp(6rem, 22vw, 13rem);
  transform: translateX(-50%);
  z-index: 0;
  pointer-events: none;
  color: var(--brand-primary);
  opacity: 0.32; }

.site-band--dark.services-section .services-section__wave {
  color: var(--brand-accent, var(--brand-primary));
  opacity: 0.42; }

.services-section__wave-svg {
  display: block;
  width: 100%;
  height: 100%; }

.services-stage-wrap {
  position: relative;
  z-index: 1;
  width: min(1320px, 94vw);
  max-width: 100%;
  margin: 0 auto;
  padding: 0 clamp(1rem, 2.5vw, 1.75rem); }

.services-stage {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0; }

.services-track--grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.75rem, 3.5vw, 2.75rem);
  align-items: stretch; }

.services-track--list {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 3vw, 2.25rem);
  width: min(52rem, 100%);
  margin: 0 auto; }

.services-track--list .service-tile {
  aspect-ratio: auto;
  width: 100%;
  border-radius: 10px;
  overflow: hidden; }

.services-track--list .service-tile-link {
  display: grid;
  grid-template-columns: 10rem minmax(0, 1fr);
  grid-template-rows: auto;
  gap: clamp(1rem, 2vw, 1.35rem);
  align-items: start;
  height: auto;
  padding: clamp(0.85rem, 2vw, 1.1rem); }

.services-track--list .service-tile-media {
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  min-height: 0; }

.services-track--list .service-tile-copy {
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  padding: 0.15rem 0 0;
  gap: 0.55rem; }

.services-track--list .service-tile-copy h3 {
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  -webkit-line-clamp: 3; }

.services-track--list .service-tile-copy p {
  max-width: none;
  font-size: 0.92rem;
  line-height: 1.55;
  -webkit-line-clamp: 3; }

.services-track--list .service-tile-copy .service-card-link {
  margin-top: 0.35rem; }

@media (max-width: 575.98px) {
  .services-track--list .service-tile-link {
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 0.85rem; } }

.services-track--carousel.owl-carousel .owl-stage-outer {
  overflow: hidden; }

.services-track--carousel.owl-carousel .owl-stage {
  display: flex;
  align-items: stretch; }

.services-track--carousel.owl-carousel .owl-item {
  display: flex;
  align-items: stretch;
  float: none; }

.service-tile {
  aspect-ratio: 1 / 1;
  width: 100%;
  overflow: hidden;
  background: var(--brand-card-bg, #f8f4ec);
  border: 1px solid rgba(0, 0, 0, 0.07);
  box-shadow: 0 16px 40px -28px rgba(0, 0, 0, 0.18); }

.services-section .service-tile {
  border-radius: 4px;
  box-shadow: 0 16px 40px -28px rgba(0, 0, 0, 0.18); }

.services-track--carousel .service-tile {
  aspect-ratio: 1 / 1;
  width: 100%; }

.service-tile--empty .service-tile-media {
  background: linear-gradient(160deg, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.1)); }

.service-tile-link {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  height: 100%;
  color: inherit;
  text-decoration: none; }

.service-tile-link:hover {
  color: inherit;
  text-decoration: none; }

.service-tile-media {
  position: relative;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  outline: 1px solid rgba(0, 0, 0, 0.06);
  outline-offset: -1px; }

.service-tile-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.service-tile-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  gap: 0.45rem;
  padding: 0.9rem 1rem 1.05rem;
  min-height: 0; }

.service-tile-kicker {
  margin: 0;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.58rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--brand-primary); }

.service-tile-copy h3 {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(0.95rem, 1.2vw, 1.08rem);
  line-height: 1.28;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden; }

.service-tile-copy p {
  margin: 0;
  max-width: 26ch;
  color: var(--text-muted);
  font-size: 0.78rem;
  line-height: 1.45;
  text-wrap: pretty;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden; }

.service-tile-copy .service-card-link {
  margin-top: 0.35rem;
  align-self: center; }

.services-panel-nav {
  position: absolute;
  top: 42%;
  z-index: 2;
  transform: translateY(-50%);
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--text);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
  transition-property: background-color, border-color, color, transform;
  transition-duration: 0.25s;
  transition-timing-function: ease; }

.services-panel-nav--prev { left: 0; }
.services-panel-nav--next { right: 0; }

.services-panel-nav:hover {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--brand-on-primary, #fff); }

.services-panel-nav:active {
  transform: translateY(-50%) scale(0.96); }

.services-section-foot,
.rooms-section-foot {
  margin: clamp(2rem, 4vw, 2.75rem) 0 0;
  text-align: center; }

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.5rem, 3vw, 2rem); }

.services-section-foot .service-card-link,
.rooms-section-foot .service-card-link {
  align-self: center;
  display: inline-flex; }

@media (max-width: 991.98px) {
  .services-track--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.25rem, 3vw, 2rem); }

  .services-stage-wrap {
    width: min(720px, 92vw); } }

@media (max-width: 575.98px) {
  .services-track--grid {
    grid-template-columns: 1fr;
    max-width: 22rem;
    margin: 0 auto; }

  .services-grid { grid-template-columns: 1fr; } }

/* Testimonials */
.testimonial-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: var(--space-5); }
.testimonial-card {
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-4); }
.testimonial-card-quote {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1.15rem;
  line-height: 1.5;
  text-wrap: pretty;
  color: var(--text); }
.testimonial-card-footer {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-top: auto; }
.testimonial-card-avatar {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  object-fit: cover;
  outline: 1px solid var(--border); }
.testimonial-card-avatar--ph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--muted);
  color: var(--text-muted);
  font-weight: 600; }
.testimonial-card-author { margin: 0; font-weight: 600; }
.testimonial-card-location { margin: 0; color: var(--text-muted); }

/* Badges */
.badges-strip-item {
  background: var(--surface, var(--brand-surface));
  outline: 1px solid var(--border);
  box-shadow: none;
  min-height: 44px;
  justify-content: center; }
.badges-strip-label { color: var(--text-muted); }

/* Contact teaser */
.contact-teaser-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--space-5);
  max-width: 48rem;
  margin: 0 auto var(--space-5);
  text-align: left; }
.contact-teaser-item {
  display: grid;
  gap: var(--space-1); }
.contact-teaser-label {
  font-size: var(--font-caption);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted); }
.contact-teaser-action { text-align: center; margin: 0; }

/* Newsletter */
.newsletter-inline .form-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  max-width: 32rem;
  margin: var(--space-4) auto 0; }
.newsletter-inline .form-control {
  flex: 1 1 14rem;
  min-height: var(--btn-height);
  height: var(--btn-height);
  border-width: 1px;
  border-radius: var(--card-inner-radius); }
@media (max-width: 575.98px) {
  .newsletter-inline .form-group { flex-direction: column; }
  .newsletter-inline .btn { width: 100%; } }

/* Stats — numbers, not cards */
.stats-grid {
  gap: var(--space-5);
  text-align: center; }
.stats-grid-item {
  padding: var(--space-4) 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  outline: none; }
.stats-value {
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  color: var(--text); }
.stats-label {
  display: block;
  margin-top: var(--space-2);
  color: var(--text-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: var(--font-caption); }

/* FAQ / experiences accordion */
.section-accordion .faq-item,
.section-accordion .experiences-item,
.faq-list .faq-item,
.experiences-list .experiences-item {
  border-bottom: 1px solid var(--border); }
.faq-summary,
.experiences-summary {
  min-height: 44px;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  font-weight: 600;
  color: var(--text); }
.faq-summary::-webkit-details-marker,
.experiences-summary::-webkit-details-marker { display: none; }
.faq-summary::after,
.experiences-summary::after {
  content: "";
  flex-shrink: 0;
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid var(--color-primary, var(--brand-primary));
  border-bottom: 2px solid var(--color-primary, var(--brand-primary));
  transform: rotate(45deg);
  transition: transform 0.2s; }
.faq-item[open] .faq-summary::after,
.experiences-item[open] .experiences-summary::after {
  transform: rotate(-135deg); }
.faq-answer,
.experiences-body {
  padding: 0 0 var(--space-4);
  color: var(--text-muted);
  line-height: 1.7; }

/* Logo cloud */
.section-trust-logos.logo-cloud-strip {
  gap: var(--space-5) var(--space-6); }
.logo-cloud-item img {
  outline: 1px solid var(--border);
  max-height: 2.75rem;
  opacity: 0.85;
  transition: opacity 0.2s; }
.logo-cloud-item img:hover,
.logo-cloud-item a:focus-visible img {
  opacity: 1; }
@media (max-width: 575.98px) {
  .logo-cloud-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-items: center;
    gap: var(--space-4); } }

/* Image + text */
.image-text-row { gap: var(--space-6); }
.image-text-media {
  min-height: 16rem;
  border-radius: var(--card-inner-radius); }
.image-text-media img { border-radius: var(--card-inner-radius); }
@media (max-width: 991.98px) {
  .image-text-row { grid-template-columns: 1fr; }
  .image-text-media,
  .image-text-row--reverse .image-text-media { order: -1; } }

/* Dual showcase */
.dual-showcase-media { aspect-ratio: 4 / 3; }
.dual-showcase-media.media-frame--empty { min-height: 16rem; }

/* Blog */
.blog-card { overflow: hidden; display: flex; flex-direction: column; }
.blog-card-media { aspect-ratio: 16 / 10; }
.blog-card-media.media-frame--empty { min-height: 0; }
.blog-card-body { padding: var(--space-4); }
.blog-card-body h3 { font-family: var(--font-heading); margin: 0 0 var(--space-2); }
.blog-card-body p { color: var(--text-muted); margin: 0; }

/* Cards / CTA / text / video */
.cards-grid-item {
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  transition: transform 0.2s, box-shadow 0.2s; }
.cards-grid-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06); }
.cards-grid-item h3 {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--font-h3);
  text-wrap: balance; }
.text-section .section-head {
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto; }
.video-section-inner {
  max-width: 52rem;
  margin: 0 auto; }
.cta-section-inner .btn { margin-top: var(--space-4); }
.btn-section {
  min-height: var(--btn-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 1.5rem;
  border-radius: 999px; }
@media (max-width: 575.98px) {
  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.section-intro { color: var(--text-muted); }
.section-eyebrow { color: var(--text-muted); }
.section-heading { color: var(--text); }

@media (max-width: 575.98px) {
  .site-section__inner { padding-left: var(--section-x); padding-right: var(--section-x); }
  .stay-bar-inner { padding-left: var(--section-x); padding-right: var(--section-x); }
}

/* ── Page composition: sections read as one sequence ── */
html {
  -webkit-font-smoothing: antialiased; }

body {
  background: var(--brand-band-light, #f5f2ea);
  color: var(--text, #1a1a1a); }

.site-band--light {
  --text: #1a1a1a;
  --text-muted: rgba(0, 0, 0, 0.62);
  --border: rgba(0, 0, 0, 0.08);
  --surface: var(--brand-surface, #f5f2ea);
  --muted: var(--brand-muted); }

.site-section {
  scroll-margin-top: calc(var(--site-header-h, 80px) + 0.75rem); }

.site-section + .site-section {
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.04); }

.site-section.site-band--muted + .site-section.site-band--muted,
.site-section.site-band--light + .site-section.site-band--light,
.site-section.site-band--dark + .site-section.site-band--dark {
  box-shadow: none; }

.site-band--light + .site-band--dark,
.site-band--muted + .site-band--dark,
.stay-bar + .site-band--dark {
  box-shadow: 0 -28px 48px -36px rgba(0, 0, 0, 0.28); }

.site-band--dark + .site-band--light,
.site-band--dark + .site-band--muted {
  box-shadow: 0 -20px 40px -32px rgba(0, 0, 0, 0.18); }

.site-section--compact + .site-section:not(.site-section--compact) .site-section__inner {
  padding-top: calc(var(--section-y) * 1.1); }

.section-heading {
  margin: 0 0 0.85rem; }

.section-intro {
  margin-top: 0; }

/* Hero → booking: fade the photo into the docked stay card */
.site-hero--fullscreen::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 32%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.08) 55%, transparent 100%); }

.page-home .hero-slide-caption {
  bottom: 7.5rem; }

.page-home #hero-section .owl-nav,
.page-home #hero-section .owl-dots,
.page-home .hero-gallery-link {
  bottom: 5.25rem; }

.page-home .hero-scroll-cue {
  bottom: 5rem; }

.page-home .stay-bar,
.stay-bar--hero {
  background: transparent;
  border: 0;
  overflow: visible;
  max-height: none;
  margin-top: -3.75rem;
  margin-bottom: 0;
  padding: 0 var(--section-x) 0;
  z-index: 12; }

.stay-bar--hero .stay-bar-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 1.1rem 1.35rem;
  background: var(--brand-surface, #f5f2ea);
  border-radius: 24px;
  outline: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 18px 48px -20px rgba(0, 0, 0, 0.28); }

.stay-bar--hero .stay-field {
  padding: 0.65rem 1.1rem;
  border-right: 1px solid rgba(0, 0, 0, 0.08); }

.stay-bar--hero .stay-field--action {
  padding-right: 0.35rem; }

.stay-bar--hero .stay-field-control--ghost {
  background: var(--brand-muted, #f5f6f8);
  border: 0;
  border-radius: 10px; }

.stay-bar--hero .stay-bar-submit {
  border-radius: 999px;
  min-height: 48px;
  padding-left: 1.35rem;
  padding-right: 1.35rem; }

@media (max-width: 991.98px) {
  .page-home .hero-slide-caption {
    bottom: 6.5rem; }
  .stay-bar--hero {
    margin-top: -2.25rem; }
  .stay-bar--hero .stay-bar-inner {
    border-radius: 20px;
    padding: 1rem; }
  .stay-bar--hero .stay-field {
    border-right: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
  .stay-bar--hero .stay-field--action {
    border-bottom: 0;
    padding-top: 0.75rem; } }

/* Badges: ribbon under the stay card, not a painted cliff */
.stay-bar + .badges-section {
  margin-top: -1.25rem;
  padding-top: 1.25rem;
  position: relative;
  z-index: 1; }

.stay-bar + .site-section:not(.badges-section) .site-section__inner {
  padding-top: calc(var(--section-y) * 1.05); }

.badges-section.site-section--compact .site-section__inner {
  padding-top: calc(var(--section-y) * 0.7);
  padding-bottom: calc(var(--section-y) * 0.7); }

.badges-strip {
  gap: 1rem 1.75rem; }

.badges-strip-item {
  min-width: 9.5rem;
  padding: 1rem 1.35rem;
  border-radius: 999px; }

.site-band--dark .badges-strip-item {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.28);
  outline: 0;
  box-shadow: none; }

/* Rooms: heading sits with the carousel, panels share one frame */
.rooms-panels .section-head {
  margin-bottom: var(--space-5); }

.rooms-panels-stage {
  margin-top: 0;
  border-radius: var(--card-radius);
  overflow: hidden;
  outline: 1px solid rgba(0, 0, 0, 0.08); }

.rooms-panels-grid--static {
  gap: 1px;
  background: rgba(0, 0, 0, 0.08);
  border-radius: var(--card-radius);
  overflow: hidden;
  grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 991.98px) {
  .rooms-panels-grid--static { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) {
  .rooms-panels-grid--static { grid-template-columns: 1fr; } }

.room-panel {
  min-height: 44vh; }

.rooms-panels-grid,
.rooms-panels-grid .owl-stage-outer,
.rooms-panels-grid .owl-stage,
.rooms-panels-grid .owl-item {
  min-height: 44vh;
  height: 44vh; }

.room-panel.media-frame--empty {
  background: var(--brand-band-dark); }

.room-panel-btn,
.room-panel .room-panel-btn {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.88);
  border-radius: 999px; }

.room-panel:hover .room-panel-btn,
.room-panel:focus .room-panel-btn {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--brand-on-primary, #fff); }

@media (max-width: 991.98px) {
  .rooms-panels-grid,
  .rooms-panels-grid .owl-stage-outer,
  .rooms-panels-grid .owl-stage,
  .rooms-panels-grid .owl-item,
  .room-panel {
    height: auto;
    min-height: 44vh; } }

/* Story / about: split editorial with shared media language */
.story-section-inner {
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center; }

.story-section-copy .section-head {
  margin-bottom: var(--space-4); }

.story-section-media {
  min-height: 24rem;
  border-radius: var(--card-radius);
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.story-actions .service-card-link {
  color: var(--text);
  border-bottom-color: var(--brand-primary); }

/* Gallery: same column as editorial, air from the section above */
.gallery-section .site-section__inner--flush {
  padding-top: var(--section-y);
  padding-bottom: var(--section-y); }

.gallery-section .site-section__inner:not(.site-section__inner--flush) {
  padding-bottom: var(--space-5); }

.gallery-section .site-section__inner:not(.site-section__inner--flush) + .site-section__inner--flush {
  padding-top: 0; }

.gallery-masonry {
  max-width: none;
  gap: 12px; }

.gallery-masonry__item,
.gallery-section--layout-grid .gallery-grid-item {
  border-radius: var(--card-inner-radius); }

/* Image + text / dining */
.image-text-row {
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center; }

.image-text-media {
  min-height: 22rem;
  border-radius: var(--card-radius);
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.image-text-copy .section-head {
  margin-bottom: 0; }

.image-text-copy .section-intro {
  max-width: none; }

.image-text-copy .section-heading:after {
  margin-bottom: 0.35rem; }

/* Dual / venue / services share the same split rhythm */
.venue-block-grid,
.dual-showcase-grid,
.services-grid {
  gap: var(--space-6); }

.venue-media,
.dual-showcase-media,
.service-tile-media {
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

/* CTA / reserve: last chapter, not a leftover strip */
.reserve-cta {
  margin-top: 0;
  padding: calc(var(--section-y) * 1.15) var(--section-x); }

.cta-section .site-section__inner {
  padding-top: calc(var(--section-y) * 1.15);
  padding-bottom: calc(var(--section-y) * 1.15); }

/* Text-only chapters stay narrower so they don't feel like leftover CMS blocks */
.text-section .section-head,
.faq-list,
.newsletter-section-inner {
  max-width: 40rem; }

.contact-section .site-section__inner,
.blog-section .site-section__inner {
  max-width: var(--content-max); }

/* Partner logos — image marks and text wordmarks share one tile */
.logo-cloud-section .site-section__inner {
  padding-top: calc(var(--section-y) * 0.55);
  padding-bottom: calc(var(--section-y) * 0.55); }

.logo-cloud-section .section-head {
  margin-bottom: var(--space-4); }

.logo-cloud-strip,
.section-trust-logos.logo-cloud-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
  align-items: stretch;
  justify-content: stretch;
  gap: 0.75rem;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  list-style: none; }

.logo-cloud-item {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  min-height: 5.75rem;
  padding: 1.1rem 1.25rem;
  background: var(--surface, var(--brand-surface, #fff));
  border-radius: var(--card-inner-radius);
  outline: 1px solid var(--border, rgba(0, 0, 0, 0.08)); }

.logo-cloud-item a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  color: inherit;
  text-decoration: none; }

.logo-cloud-item span {
  display: block;
  font-family: var(--font-heading), times, serif;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: center;
  color: var(--text-muted, rgba(0, 0, 0, 0.55));
  transition-property: color, opacity;
  transition-duration: 0.2s; }

.logo-cloud-item img {
  display: block;
  max-height: 2.5rem;
  max-width: 9rem;
  width: auto;
  height: auto;
  object-fit: contain;
  opacity: 0.78;
  outline: none;
  border-radius: 0;
  transition-property: opacity;
  transition-duration: 0.2s; }

.logo-cloud-item:hover span,
.logo-cloud-item a:hover span,
.logo-cloud-item a:focus-visible span {
  color: var(--text, #1a1a1a); }

.logo-cloud-item:hover img,
.logo-cloud-item a:hover img,
.logo-cloud-item a:focus-visible img {
  opacity: 1; }

.site-band--dark .logo-cloud-item {
  background: var(--surface, rgba(255, 255, 255, 0.08));
  outline-color: var(--border, rgba(255, 255, 255, 0.16)); }

.site-band--dark .logo-cloud-item span {
  color: var(--text-muted, rgba(255, 255, 255, 0.72)); }

.site-band--dark .logo-cloud-item:hover span,
.site-band--dark .logo-cloud-item a:hover span {
  color: var(--brand-on-dark, #fff); }

@media (max-width: 575.98px) {
  .logo-cloud-strip,
  .section-trust-logos.logo-cloud-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem; }
  .logo-cloud-item {
    min-height: 4.75rem;
    padding: 0.85rem 0.75rem; } }

/* ── Heritage default chrome (Nepali Ghar–style layout; CMS tokens still color it) ── */
body {
  background: var(--brand-band-light, #f5f2ea);
  color: #3a342e;
  line-height: 1.7; }

h1, h2, h3, h4, h5 {
  color: #1c1814; }

.btn,
.btn-primary,
.btn-section,
.stay-bar-submit,
.site-header-book,
.reserve-cta-btn,
.cta-section-inner .btn {
  border-radius: 2px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.75rem;
  font-weight: 600; }

.site-header {
  background: var(--nav-bg, var(--brand-band-light, #f5f2ea));
  box-shadow: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06); }

.site-header-bar {
  max-width: 1440px;
  min-height: 76px; }

.site-navbar .site-nav-menu li a {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--nav-text, #2c2620); }
.site-navbar .site-nav-menu li a:after {
  height: 1px;
  bottom: 8px;
  background: var(--brand-primary); }

.site-header-end {
  flex-direction: row;
  align-items: center;
  gap: 1.5rem 2rem; }

.site-header-utils {
  margin-top: 0;
  flex-wrap: nowrap; }

.site-header-book {
  margin-left: 0.25rem;
  padding: 0.7rem 1.25rem;
  border-radius: 2px;
  min-height: 40px; }

.site-util-link--phone {
  color: var(--nav-text, #2c2620);
  font-size: 11px; }

/* Home: always-on header, no floating lockup */
.page-home .site-header {
  pointer-events: auto;
  overflow: visible;
  background: color-mix(in srgb, var(--nav-bg, var(--brand-band-light, #f5f2ea)) calc(var(--scroll-ui, 0) * 96%), transparent);
  border-bottom-color: rgba(0, 0, 0, calc(0.06 * var(--scroll-ui, 0)));
  box-shadow: none; }

.page-home .site-header-bar {
  display: flex;
  align-items: center;
  gap: 1.25rem 1.75rem;
  min-height: 84px; }

.page-home .brand-lockup,
.page-home.is-lockup-docked .brand-lockup,
.page-home.menu-open .brand-lockup {
  position: relative;
  left: auto;
  top: auto;
  transform: none;
  flex-direction: row;
  text-align: left;
  gap: 10px;
  will-change: auto; }

.page-home .brand-mark,
.page-home.is-lockup-docked .brand-mark,
.page-home.menu-open .brand-mark {
  height: 52px;
  max-width: 72px;
  margin: 0; }

.page-home .brand-name,
.page-home.menu-open .brand-name {
  color: color-mix(in srgb, #fff calc((1 - var(--scroll-ui, 0)) * 100%), var(--nav-text, #1c1814) calc(var(--scroll-ui, 0) * 100%));
  text-shadow: 0 1px 16px rgba(0, 0, 0, calc(0.35 * (1 - var(--scroll-ui, 0))));
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase; }

.page-home .brand-lockup:has(.brand-mark) .brand-name {
  display: none; }

.page-home .site-header-end,
.page-home.is-lockup-docked .site-header-end {
  opacity: 1;
  flex: 1 1 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end; }

.page-home .site-header-end nav {
  flex: 1 1 auto; }

.page-home .site-header-utils {
  display: flex; }

.page-home .site-menu-toggle span {
  background: color-mix(in srgb, #fff calc((1 - var(--scroll-ui, 0)) * 100%), var(--nav-text, #1c1814) calc(var(--scroll-ui, 0) * 100%)); }

@media (min-width: 992px) {
  .page-home .site-menu-toggle {
    display: none; }
  .page-home .site-navbar {
    position: static;
    display: flex;
    flex: 1 1 auto;
    background: transparent; }
  .page-home .site-navbar .site-nav-menu {
    justify-content: center;
    gap: 0.15rem 1.35rem; }
  .page-home .site-navbar .site-nav-menu li a {
    color: color-mix(in srgb, #fff calc((1 - var(--scroll-ui, 0)) * 100%), var(--nav-text, #2c2620) calc(var(--scroll-ui, 0) * 100%));
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase; }
  .page-home .site-util-link {
    color: color-mix(in srgb, #fff calc((1 - var(--scroll-ui, 0)) * 100%), var(--nav-text, #2c2620) calc(var(--scroll-ui, 0) * 100%)); }
  .page-home .site-navbar .site-nav-menu li a:after {
    background: var(--brand-primary); } }

.page-home.menu-open .site-navbar .site-nav-menu li a,
.page-home.menu-open .site-util-link,
.page-home.menu-open .brand-name {
  color: var(--nav-text, #1c1814);
  text-shadow: none; }

/* Hero: editorial caption, scroll, no gallery chip */
.hero-slide-caption {
  top: 48%;
  bottom: auto;
  left: clamp(1.5rem, 6vw, 4.5rem);
  transform: translateY(-50%);
  max-width: 38rem;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35); }

.hero-slide-title {
  font-size: clamp(2.4rem, 6vw, 4.4rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.08;
  letter-spacing: -0.02em; }

.hero-slide-copy {
  margin-top: 1.1rem;
  font-size: 0.98rem;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.9);
  text-wrap: pretty; }

.hero-slide-kicker {
  letter-spacing: 0.2em;
  font-size: 0.72rem; }

.hero-gallery-link {
  display: none; }

.page-home .hero-scroll-cue {
  bottom: 1.75rem;
  letter-spacing: 0.22em;
  font-size: 0.65rem; }

.page-home #hero-section .owl-nav {
  display: none; }

.page-home #hero-section .owl-dots {
  bottom: 1.85rem; }

.page-home .stay-bar,
.stay-bar--hero {
  margin-top: 0;
  padding: 0;
  background: var(--brand-band-light, #f5f2ea); }

.stay-bar--hero .stay-bar-inner {
  max-width: 1440px;
  border-radius: 0;
  outline: 0;
  box-shadow: none;
  background: transparent;
  padding: 1.15rem 40px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06); }

.stay-bar--hero .stay-field {
  border-right: 1px solid rgba(0, 0, 0, 0.08); }

.stay-bar--hero .stay-bar-submit {
  border-radius: 2px; }

/* Badges: divided columns, not pills */
.stay-bar + .badges-section {
  margin-top: 0;
  padding-top: 0; }

.badges-section.site-section--compact .site-section__inner {
  padding-top: calc(var(--section-y) * 0.7);
  padding-bottom: calc(var(--section-y) * 0.7); }

.badges-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: 100%; }

.badges-strip-item {
  min-width: 0;
  min-height: 0;
  padding: 0.35rem 1.5rem;
  border-radius: 0;
  background: transparent;
  outline: 0;
  box-shadow: none;
  border: 0;
  border-right: 1px solid var(--border, rgba(0, 0, 0, 0.1));
  gap: 0.35rem; }

.badges-strip-item:last-child {
  border-right: 0; }

.badges-strip-value {
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--text, #1c1814); }

.badges-strip-label {
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-muted); }

.site-band--dark .badges-strip-item {
  background: transparent;
  border-right-color: rgba(255, 255, 255, 0.18);
  border-top: 0;
  outline: 0; }

.site-band--dark .badges-strip-value {
  color: var(--brand-on-dark); }

@media (max-width: 991.98px) {
  .badges-strip {
    grid-template-columns: 1fr 1fr; }
  .badges-strip-item {
    padding: 1.1rem 0.85rem;
    border-right: 0;
    border-bottom: 1px solid var(--border, rgba(0, 0, 0, 0.1)); }
  .hero-slide-caption {
    top: auto;
    bottom: 5.5rem;
    transform: none; } }

@media (max-width: 575.98px) {
  .badges-strip {
    grid-template-columns: 1fr; } }

/* Headings: no gold bar; accent italics */
.theme-gold .section-head--center .section-heading:after,
.theme-forest .section-head--center .section-heading:after,
.theme-ocean .section-head--center .section-heading:after,
.theme-gold .section-head--left .section-heading:after,
.theme-forest .section-head--left .section-heading:after,
.theme-ocean .section-head--left .section-heading:after {
  display: none; }

.section-heading {
  font-weight: 400;
  letter-spacing: -0.02em; }

.section-heading em,
.heading-em {
  color: var(--brand-primary);
  font-style: italic;
  font-weight: 400; }

.section-eyebrow {
  letter-spacing: 0.18em;
  font-size: 0.72rem;
  color: var(--brand-primary); }

.section-head--center .section-intro {
  margin-top: 1.1rem; }

/* Page Builder: soften back-to-back bands when hotelier reorders sections */
.site-section.site-band--light + .site-section.site-band--light,
.site-section.site-band--muted + .site-section.site-band--muted {
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.04); }

/* Story: split editorial + quote rule */
.story-section-media,
.story-section-media img {
  border-radius: 2px; }

.story-quote {
  margin: 1.5rem 0 0;
  padding: 0.15rem 0 0.15rem 1.25rem;
  border-left: 2px solid var(--brand-primary);
  font-style: italic;
  color: var(--text); }

.story-actions .service-card-link {
  letter-spacing: 0.14em;
  font-size: 0.72rem;
  border-bottom-width: 1px;
  border-radius: 0; }

/* Dual: full-bleed pair */
.dual-showcase-section .site-section__inner {
  max-width: none;
  padding-left: 0;
  padding-right: 0; }

.dual-showcase-section .section-head {
  padding-left: var(--section-x);
  padding-right: var(--section-x); }

.dual-showcase-grid {
  gap: 0;
  grid-template-columns: 1fr 1fr; }

.dual-showcase-panel {
  position: relative;
  border-radius: 0;
  outline: 0;
  box-shadow: none;
  overflow: hidden; }

.dual-showcase-media {
  aspect-ratio: 4 / 5;
  min-height: 28rem; }

.dual-showcase-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.45), transparent 45%); }

.dual-showcase-copy {
  position: absolute;
  left: 1.35rem;
  right: 1.35rem;
  bottom: 1.35rem;
  z-index: 2;
  padding: 0;
  color: #fff; }

.dual-showcase-copy h3,
.dual-showcase-copy .section-eyebrow,
.dual-showcase-copy p,
.dual-showcase-copy .service-card-link {
  color: #fff; }

.dual-showcase-copy p {
  display: none; }

/* Cards / rooms / media: quieter surfaces */
.site-card,
.cards-grid-item,
.offers-card,
.testimonial-card,
.service-tile,
.blog-card {
  border-radius: 4px;
  box-shadow: none;
  outline: 1px solid rgba(0, 0, 0, 0.06); }

.cards-grid-item:hover {
  transform: none;
  box-shadow: none; }

.rooms-panels-stage {
  border-radius: 0;
  outline: 0; }

.room-panel-btn,
.room-panel .room-panel-btn {
  border-radius: 2px; }

.image-text-media,
.venue-media {
  border-radius: 4px; }

.reserve-cta-btn {
  border-radius: 2px; }

@media (max-width: 991.98px) {
  .stay-bar--hero .stay-bar-inner {
    padding: 1rem 20px; }
  .dual-showcase-grid {
    grid-template-columns: 1fr; }
  .dual-showcase-media {
    min-height: 18rem;
    aspect-ratio: 16 / 10; } }

/* Hero caption alignment (site-wide, all slides share tbl_web_core.hero_text_alignment) */
.site-hero .hero-slide-caption {
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  transform: none;
  text-align: left; }

.site-hero.hero-align--bottom-left .hero-slide-caption {
  left: clamp(1.5rem, 6vw, 4.5rem);
  right: clamp(1.5rem, 4vw, 2rem);
  bottom: clamp(2rem, 8vh, 5rem);
  top: auto;
  transform: none; }

.site-hero.hero-align--bottom-center .hero-slide-caption {
  left: 50%;
  right: auto;
  bottom: clamp(2rem, 8vh, 5rem);
  top: auto;
  transform: translateX(-50%);
  text-align: center; }

.site-hero.hero-align--center-left .hero-slide-caption {
  left: clamp(1.5rem, 6vw, 4.5rem);
  right: clamp(1.5rem, 4vw, 2rem);
  top: 50%;
  bottom: auto;
  transform: translateY(-50%); }

.site-hero.hero-align--center .hero-slide-caption {
  left: 50%;
  right: auto;
  top: 50%;
  bottom: auto;
  transform: translate(-50%, -50%);
  text-align: center;
  max-width: min(38rem, calc(100% - 3rem)); }

.page-home .site-hero.hero-align--bottom-left .hero-slide-caption,
.page-home .site-hero.hero-align--bottom-center .hero-slide-caption {
  bottom: clamp(2.5rem, 10vh, 6rem); }

/* Per-slide caption alignment (class on .hero-slide-caption) */
.hero-slide-caption.hero-align--bottom-left {
  left: clamp(1.5rem, 6vw, 4.5rem);
  right: clamp(1.5rem, 4vw, 2rem);
  bottom: clamp(2rem, 8vh, 5rem);
  top: auto;
  transform: none;
  text-align: left; }

.hero-slide-caption.hero-align--bottom-center {
  left: 50%;
  right: auto;
  bottom: clamp(2rem, 8vh, 5rem);
  top: auto;
  transform: translateX(-50%);
  text-align: center; }

.hero-slide-caption.hero-align--center-left {
  left: clamp(1.5rem, 6vw, 4.5rem);
  right: clamp(1.5rem, 4vw, 2rem);
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  text-align: left; }

.hero-slide-caption.hero-align--center {
  left: 50%;
  right: auto;
  top: 50%;
  bottom: auto;
  transform: translate(-50%, -50%);
  text-align: center;
  max-width: min(38rem, calc(100% - 3rem)); }

.page-home .hero-slide-caption.hero-align--bottom-left,
.page-home .hero-slide-caption.hero-align--bottom-center {
  bottom: clamp(2.5rem, 10vh, 6rem); }

/* About / story: editorial hierarchy, no empty image column */
.about-section .story-section-inner--copy-only {
  grid-template-columns: 1fr;
  max-width: 40rem; }

.about-section .story-section-copy .section-head--left {
  text-align: left; }

.about-section .story-section-copy .section-eyebrow {
  margin-bottom: 0.75rem; }

.about-section .story-section-copy .section-heading {
  margin-bottom: 0.85rem; }

.about-section .story-section-copy .section-intro {
  margin-top: 0;
  max-width: 36rem;
  line-height: 1.75; }

.about-section .story-actions {
  margin-top: 1.35rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.5rem; }

/* Rooms: three-up carousel on desktop */
.rooms-panels-stage {
  width: 100%; }

.rooms-panels-grid,
.rooms-panels-grid .owl-stage-outer,
.rooms-panels-grid .owl-stage,
.rooms-panels-grid .owl-item {
  min-height: 44vh;
  height: 44vh; }

.room-panel {
  min-height: 44vh; }

@media (max-width: 991.98px) {
  .rooms-panels-grid,
  .rooms-panels-grid .owl-stage-outer,
  .rooms-panels-grid .owl-stage,
  .rooms-panels-grid .owl-item,
  .room-panel {
    min-height: 40vh;
    height: auto; } }

.page-home .about-section .site-section__inner {
  padding-top: calc(var(--section-y) * 1.05); }

/* Rooms: full split showcase (two room types, full section width) */
.rooms-section--showcase {
  padding-bottom: 0; }

.rooms-section--showcase .rooms-showcase-head {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: calc(var(--section-y) * 0.55) var(--section-x) var(--space-3);
  text-align: center; }

.rooms-section--showcase .rooms-showcase-head .section-head {
  margin-bottom: 0;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto; }

.rooms-section--showcase .rooms-showcase-head .section-heading {
  margin-bottom: 0; }

.rooms-section--showcase .rooms-showcase-head .section-heading em {
  font-style: italic;
  color: var(--brand-primary); }

.rooms-showcase-stage {
  position: relative;
  width: 100%; }

.rooms-showcase-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  width: 100%; }

.rooms-showcase-grid.owl-carousel {
  display: block; }

.rooms-showcase-grid.owl-carousel .owl-stage-outer,
.rooms-showcase-grid.owl-carousel .owl-stage,
.rooms-showcase-grid.owl-carousel .owl-item {
  height: auto; }

.rooms-showcase-grid:has(.rooms-showcase-panel:only-child) {
  grid-template-columns: 1fr; }

.rooms-showcase-panel {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  min-height: 0;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
  background: var(--brand-band-dark, #2b1e15); }

.rooms-showcase-panel--empty {
  background: linear-gradient(155deg, #5c4128, #2b1e15 68%); }

.rooms-showcase-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-width: 44px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  background: rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition-property: background-color, border-color, color, transform;
  transition-duration: 0.25s;
  transition-timing-function: ease; }

.rooms-showcase-nav:hover {
  background: rgba(0, 0, 0, 0.38);
  border-color: rgba(255, 255, 255, 0.72);
  color: #fff; }

.rooms-showcase-nav:active {
  transform: translateY(-50%) scale(0.96); }

.rooms-showcase-nav--prev {
  left: clamp(0.75rem, 2vw, 1.25rem); }

.rooms-showcase-nav--next {
  right: clamp(0.75rem, 2vw, 1.25rem); }

.rooms-showcase-nav-label {
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.12em; }

.rooms-showcase-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.rooms-showcase-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.18) 42%, transparent 72%);
  transition: background 0.35s ease; }

.rooms-showcase-panel:hover .rooms-showcase-shade,
.rooms-showcase-panel:focus .rooms-showcase-shade {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.72) 0%, rgba(0, 0, 0, 0.28) 48%, transparent 78%); }

.rooms-showcase-copy {
  position: absolute;
  left: clamp(1.25rem, 3vw, 2rem);
  right: clamp(1.25rem, 3vw, 2rem);
  bottom: clamp(1.25rem, 3vw, 2rem);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
  max-width: 26rem;
  color: #fff; }

.rooms-showcase-kicker {
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.88); }

.rooms-showcase-title {
  font-family: var(--font-heading), times, serif;
  font-size: clamp(1.65rem, 2.8vw, 2.35rem);
  font-weight: var(--font-heading-weight, 500);
  line-height: 1.12;
  text-wrap: balance;
  color: #fff; }

.rooms-showcase-desc {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.82);
  text-wrap: pretty;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden; }

.rooms-showcase-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.35rem;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.72);
  padding-bottom: 0.2rem;
  transition-property: gap, border-color;
  transition-duration: 0.3s;
  transition-timing-function: ease; }

.rooms-showcase-panel:hover .rooms-showcase-link,
.rooms-showcase-panel:focus .rooms-showcase-link {
  gap: 0.55rem;
  border-bottom-color: #fff;
  color: #fff;
  text-decoration: none; }

.rooms-section--showcase .rooms-showcase-foot {
  padding-top: calc(var(--section-y) * 0.75);
  padding-bottom: var(--section-y); }

.rooms-section--showcase .rooms-showcase-foot .rooms-section-foot {
  margin-top: 0; }

@media (max-width: 991.98px) {
  .rooms-showcase-grid:not(.owl-carousel) {
    grid-template-columns: 1fr; }

  .rooms-showcase-nav--prev {
    display: none; }

  .rooms-showcase-nav--next {
    right: 0.85rem; } }

/* About / Story — Nepali Ghar editorial split (copy | divider | media) */
.about-section--editorial .about-section__inner {
  max-width: var(--content-max, 1240px); }

.about-editorial-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1.05fr);
  gap: clamp(2.5rem, 5vw, 4rem);
  align-items: center; }

.about-editorial-grid--copy-only {
  grid-template-columns: minmax(0, 1fr);
  max-width: 40rem; }

.about-editorial-copy {
  min-width: 0; }

.about-editorial-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 1.15rem;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--brand-primary); }

.about-editorial-eyebrow::before {
  content: "";
  width: 1.35rem;
  height: 1px;
  background: currentColor;
  flex-shrink: 0; }

.about-editorial-heading {
  margin: 0 0 1.35rem;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(2.35rem, 4.6vw, 3.65rem);
  font-weight: var(--font-heading-weight, 500);
  line-height: 1.08;
  letter-spacing: -0.01em;
  color: var(--text);
  text-wrap: balance; }

.about-editorial-heading em {
  font-style: italic;
  color: var(--brand-primary);
  font-weight: 400; }

.about-editorial-lede {
  max-width: 46ch;
  margin: 0 0 1.35rem;
  color: var(--text-muted);
  font-size: 1.03rem;
  line-height: 1.65; }

.about-editorial-lede p:last-child {
  margin-bottom: 0; }

.about-editorial-quote {
  margin: 0 0 1.35rem;
  padding: 0.1rem 0 0.1rem 1.25rem;
  border-left: 2px solid var(--brand-accent);
  border-radius: 0; }

.about-editorial-quote p {
  margin: 0 0 0.65rem;
  font-family: var(--font-heading), times, serif;
  font-style: italic;
  font-size: 1.08rem;
  line-height: 1.55;
  color: var(--text); }

.about-editorial-quote cite {
  display: block;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-style: normal;
  color: var(--text-muted); }

.about-editorial-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 1.75rem 2.75rem;
  margin: 0.5rem 0 1.35rem;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(0, 0, 0, 0.1); }

.about-editorial-stat b {
  display: block;
  margin-bottom: 0.35rem;
  font-family: var(--font-heading), times, serif;
  font-size: 1.75rem;
  font-weight: var(--font-heading-weight, 600);
  color: var(--brand-primary);
  font-variant-numeric: tabular-nums; }

.about-editorial-stat span {
  display: block;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted); }

.about-editorial-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.5rem;
  margin-top: 0.25rem; }

.about-editorial-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--brand-primary);
  border-bottom: 1px solid var(--brand-primary);
  padding-bottom: 0.25rem;
  transition-property: gap;
  transition-duration: 0.3s;
  transition-timing-function: ease; }

.about-editorial-link:hover {
  gap: 0.85rem;
  color: var(--brand-primary);
  text-decoration: none; }

.about-editorial-divider {
  position: relative;
  align-self: stretch;
  width: 1px;
  min-height: 12rem;
  background: rgba(0, 0, 0, 0.14);
  justify-self: center; }

.about-editorial-divider-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(90deg);
  white-space: nowrap;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-muted); }

.about-editorial-media-wrap {
  min-width: 0; }

.about-editorial-media {
  margin: 0;
  aspect-ratio: 4 / 5;
  border-radius: 2px;
  overflow: hidden;
  box-shadow: 0 1.85rem 3.75rem -1.85rem rgba(0, 0, 0, 0.35);
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px; }

.about-editorial-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; }

.about-editorial-caption {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 0.85rem 0 0;
  font-family: ui-monospace, "IBM Plex Mono", "Cascadia Code", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted); }

.site-band--dark.about-section--editorial .about-editorial-stats {
  border-top-color: rgba(255, 255, 255, 0.14); }

.site-band--dark.about-section--editorial .about-editorial-divider {
  background: rgba(255, 255, 255, 0.18); }

@media (max-width: 991.98px) {
  .about-editorial-grid {
    grid-template-columns: 1fr;
    gap: 2rem; }

  .about-editorial-divider {
    display: none; }

  .about-editorial-media-wrap {
    order: -1; }

  .about-editorial-heading {
    font-size: clamp(2rem, 7vw, 2.75rem); } }

@media (max-width: 640px) {
  .about-editorial-stats {
    gap: 1.25rem 2rem; } }

/* Special offer popup */
.special-offer-popup-wrap {
  position: fixed;
  top: calc(5.5rem + env(safe-area-inset-top, 0px));
  left: 1rem;
  bottom: auto;
  z-index: 1040;
  max-width: min(320px, calc(100vw - 2rem));
  opacity: 0;
  transform: translateY(-10px);
  transition-property: opacity, transform;
  transition-duration: 0.35s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
  pointer-events: none; }
.special-offer-popup-wrap.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto; }
.special-offer-popup {
  position: relative;
  background: var(--so-bg, #1a1a1a);
  color: var(--so-text, #fff);
  padding: 1.25rem 1.35rem 1.15rem 1rem;
  border-left: 3px solid var(--so-accent, #e07a2f);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22); }
.special-offer-popup__close {
  position: absolute;
  top: 0.45rem;
  right: 0.55rem;
  border: 0;
  background: transparent;
  color: var(--so-text, #fff);
  font-size: 1.35rem;
  line-height: 1;
  opacity: 0.55;
  padding: 0.25rem 0.35rem;
  cursor: pointer;
  transition: opacity 0.2s ease; }
.special-offer-popup__close:hover {
  opacity: 0.9; }
.special-offer-popup__eyebrow {
  margin: 0 0 0.5rem;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--so-label, #c4a35a); }
.special-offer-popup__heading {
  margin: 0 0 0.65rem;
  padding-right: 1.25rem;
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  line-height: 1.25;
  font-family: var(--font-serif, Georgia, "Times New Roman", serif);
  color: var(--so-text, #fff); }
.special-offer-popup__body {
  margin: 0 0 0.85rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--so-text, #fff);
  opacity: 0.92; }
.special-offer-popup__cta {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--so-label, #c4a35a);
  font-weight: 600;
  text-decoration: none;
  transition: opacity 0.2s ease; }
.special-offer-popup__cta:hover {
  opacity: 0.85;
  color: var(--so-label, #c4a35a);
  text-decoration: none; }
@media (max-width: 575.98px) {
  .special-offer-popup-wrap {
    top: calc(4.75rem + env(safe-area-inset-top, 0px));
    left: 0.75rem;
    right: 0.75rem;
    max-width: none; } }

/* Offer media popup (homepage promo banner) */
body.offer-media-popup-open {
  overscroll-behavior: none; }
.offer-media-popup-wrap {
  position: fixed;
  inset: 0;
  z-index: 1055;
  display: block;
  padding: 0;
  background: transparent;
  opacity: 0;
  pointer-events: none;
  transition-property: opacity;
  transition-duration: 0.25s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }
.offer-media-popup-wrap.is-visible {
  opacity: 1;
  pointer-events: none; }
.offer-media-popup-wrap .offer-media-popup__backdrop {
  display: none; }
.offer-media-popup-wrap > .offer-media-popup {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 1;
  pointer-events: auto;
  width: min(52rem, calc(100vw - 2rem));
  max-height: min(90vh, 44rem);
  overflow: hidden;
  border-radius: 24px;
  background: #120f0c;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.12),
    0 28px 64px rgba(0, 0, 0, 0.38);
  transform: translate(-50%, -50%) scale(0.98);
  transition-property: transform;
  transition-duration: 0.35s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }
.offer-media-popup-wrap.is-visible > .offer-media-popup {
  transform: translate(-50%, -50%) scale(1); }
.offer-media-popup__stage {
  position: relative;
  display: grid;
  min-height: min(72vh, 36rem); }
.offer-media-popup__media {
  position: absolute;
  inset: 0; }
.offer-media-popup__image,
.offer-media-popup__video,
.offer-media-popup__iframe {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  outline: 1px solid rgba(255, 255, 255, 0.1);
  outline-offset: -1px; }
.offer-media-popup__iframe {
  border: 0;
  background: #000; }
.offer-media-popup__copy {
  position: relative;
  z-index: 1;
  align-self: end;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: linear-gradient(180deg, transparent 0%, rgba(12, 10, 8, 0.15) 28%, rgba(12, 10, 8, 0.78) 100%);
  color: #fff; }
.offer-media-popup__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  color: #e4c98a; }
.offer-media-popup__title {
  margin: 0;
  max-width: 18ch;
  font-size: clamp(1.85rem, 4.5vw, 3rem);
  font-weight: 700;
  line-height: 1.12;
  text-wrap: balance;
  font-family: var(--font-heading), Georgia, "Times New Roman", serif;
  color: #fff !important; }
.offer-media-popup__close {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #1a1612;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
  transition-property: transform, background-color;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }
.offer-media-popup__close:hover {
  background: #fff; }
.offer-media-popup__close:active {
  transform: scale(0.96); }
.offer-media-popup__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: 0.35rem;
  padding: 0.7rem 1.35rem;
  border-radius: 999px;
  background: #fff;
  color: #1a1612 !important;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition-property: transform, background-color, color;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1); }
.offer-media-popup__cta:hover {
  background: #f3eee6;
  color: #1a1612 !important;
  text-decoration: none; }
.offer-media-popup__cta:active {
  transform: scale(0.96); }
.offer-media-popup--video .offer-media-popup__stage {
  min-height: 0;
  display: flex;
  flex-direction: column; }
.offer-media-popup--video .offer-media-popup__media {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000; }
.offer-media-popup--video .offer-media-popup__copy {
  background: #161210;
  padding: 1.15rem 1.35rem 1.35rem; }
@media (max-width: 575.98px) {
  .offer-media-popup-wrap > .offer-media-popup {
    border-radius: 20px;
    width: calc(100vw - 1.5rem); }
  .offer-media-popup__stage {
    min-height: min(68vh, 28rem); }
  .offer-media-popup__title {
    max-width: none; } }

/* ── Mobile + touch polish (site-wide) ── */
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  overflow-x: clip; }
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

@media (max-width: 991.98px) {
  .form-control,
  .stay-field .form-control,
  select.form-control {
    font-size: 16px; }
  .site-navbar {
    flex-direction: column;
    justify-content: flex-start;
    padding-top: calc(var(--site-header-h, 64px) + 1.5rem); }
  .site-header-utils {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem; }
  .site-header-book {
    width: 100%;
    margin-left: 0;
    text-align: center;
    justify-content: center; }
  .site-util-link {
    font-size: 12px;
    letter-spacing: 0.1em; }
  .brand-mark {
    height: 44px;
    max-width: 120px; }
  .brand-name {
    font-size: 1rem; }
  .book-fab.b-btn-fix {
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    width: 3.25rem;
    font-size: 7pt;
    padding: 8px 6px;
    border-radius: 16px 0 0 16px; }
  body.has-promo-bar .book-fab.b-btn-fix {
    bottom: calc(3.5rem + env(safe-area-inset-bottom, 0px)); }
  .contact-fab {
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); }
  body.has-promo-bar .contact-fab {
    bottom: calc(3.5rem + env(safe-area-inset-bottom, 0px)); }
  .page-home .contact-fab {
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); }
  .promo-bar {
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px)); }
  .contact-info-item iframe,
  .cms-prose iframe,
  .contact-page iframe {
    display: block;
    width: 100% !important;
    max-width: 100%;
    min-height: 220px;
    border-radius: var(--card-inner-radius, 8px); }
  .newsletter-inline .form-group {
    flex-direction: column;
    max-width: none; }
  .newsletter-inline .btn {
    width: 100%; }
  .stay-bar-inner--external {
    grid-template-columns: 1fr; }
  .stay-bar--hero {
    margin-top: -1.25rem; } }

@media (max-width: 575.98px) {
  .site-hero--page {
    min-height: 32vh; }
  .site-hero--page-title {
    font-size: clamp(1.5rem, 7vw, 2rem); }
  .page-breadcrumbs {
    font-size: 0.75rem; }
  .contact-form-panel {
    padding: 1.25rem; }
  .reserve-cta-inner {
    flex-direction: column;
    text-align: center;
    gap: 1rem; }
  .reserve-cta-btn {
    width: 100%; } }

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important; } }

/* ── Booking flow (book + reservation pages) ── */
.book-page .custom-list {
  padding: 0;
  margin: 0; }

.book-page .custom-list li {
  padding: 1em;
  border: 0;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.15);
  list-style-type: none; }

.book-page .i-fit {
  width: 100%;
  height: 100%;
  object-fit: cover; }

.book-page .img-cont {
  width: 100%;
  height: 10em;
  position: relative;
  border-radius: var(--card-inner-radius, 8px);
  overflow: hidden; }

.book-page .img-cont > span {
  position: absolute;
  left: 0;
  top: 0;
  background-color: var(--brand-primary, #8b3a2b);
  color: #fff;
  padding: 5px 8px;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase; }

.book-page .book-category-highlight .card {
  box-shadow: 0 0 0 2px var(--brand-primary, #1f3c88), 0 8px 24px rgba(31, 60, 136, 0.15); }

.book-page .card {
  border: 0;
  border-radius: var(--card-radius, 12px);
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); }

.book-page .card-header {
  background-color: var(--brand-secondary, #353839);
  padding: 0.85rem 1rem; }

.book-page .card-header h4 {
  margin: 0;
  color: #fff;
  font-size: 1.05rem; }

.book-page .cat-op {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem 1rem; }

.book-page .book-room-type {
  flex: 1 1 100%;
  font-weight: 600;
  font-size: 0.95rem; }

.book-page .book-room-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  flex: 1 1 auto; }

.book-page .book-room-price {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap; }

.book-page .cat-control {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 4.5rem; }

.book-page .cat-control > b {
  display: block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.5); }

.book-page .cat-control input[type="number"] {
  width: 100%;
  min-width: 3.5rem;
  min-height: 44px;
  padding: 0.35rem 0.5rem;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 8px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  -moz-appearance: textfield; }

.book-page .cat-control input[type="number"]::-webkit-outer-spin-button,
.book-page .cat-control input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0; }

.book-page .custom-sel {
  width: 100%;
  min-width: 0;
  margin-left: 0;
  min-height: 44px; }

.book-page .book-meal-row {
  flex-direction: column;
  align-items: stretch; }

.book-page .book-meal-row .cat-control {
  width: 100%;
  align-items: stretch; }

.book-page .book-child-ages {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.75rem 0 0;
  width: 100%; }

.book-page .book-child-ages-label {
  display: block;
  width: 100%;
  padding: 5px 12px;
  background-color: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 999px;
  width: fit-content;
  margin-bottom: 0.25rem; }

.book-page .book-child-ages select {
  min-height: 44px;
  min-width: 3.5rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 8px;
  font-size: 16px; }

.book-page .book-total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.5rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  font-size: 1.15rem; }

.book-page .book-total-row #all-total {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--brand-primary); }

.book-page .book-submit-btn {
  min-height: 48px;
  min-width: 160px;
  padding: 0.65rem 2rem;
  font-weight: 600; }

.book-page .book-empty-state {
  text-align: center;
  font-weight: 600;
  padding: 2rem 1rem; }

@media (max-width: 991.98px) {
  .book-page .row > [class*="col-md-"] {
    margin-bottom: 0.5rem; }
  .book-page .cat-op {
    flex-direction: column;
    align-items: stretch; }
  .book-page .book-room-controls {
    width: 100%;
    justify-content: space-between; }
  .book-page .book-room-price {
    align-self: flex-end; } }

@media (max-width: 575.98px) {
  .book-page .book-room-controls {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem; }
  .book-page .cat-control {
    min-width: 0; }
  .book-page .book-total-row {
    flex-direction: column;
    align-items: stretch;
    text-align: center; }
  .book-page .book-submit-btn {
    width: 100%; } }

.reservation-page .reservation-form {
  border-radius: var(--card-radius, 12px);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06); }

.reservation-page .reservation-form .form-control {
  min-height: 44px;
  font-size: 16px; }

.reservation-page .reservation-form [type="submit"] {
  width: 100%;
  min-height: 48px; }

@media (min-width: 768px) {
  .reservation-page .reservation-form [type="submit"] {
    width: auto; } }

/* ── Responsive system (site-wide mobile + tablet) ── */
@media (max-width: 991.98px) {
  .container,
  .container-fluid {
    padding-left: var(--section-x, 1.25rem);
    padding-right: var(--section-x, 1.25rem); }

  .site-section__inner,
  .site-section__inner > * {
    min-width: 0; }

  .cms-prose,
  .custom-html-block {
    overflow-wrap: anywhere;
    word-break: break-word; }
  .cms-prose table,
  .custom-html-block table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch; }
  .cms-prose img,
  .cms-prose video,
  .cms-prose iframe,
  .custom-html-block img,
  .custom-html-block video,
  .custom-html-block iframe {
    max-width: 100%;
    height: auto; }

  /* Home: same sticky bar + drawer as every other page (no opacity/fixed closed state) */
  .page-home .site-header {
    pointer-events: auto; }
  .page-home .site-menu-toggle,
  .page-home.is-lockup-docked .site-menu-toggle {
    display: block !important;
    opacity: 1 !important;
    pointer-events: auto !important; }

  nav .dropdown-menu {
    position: static !important;
    float: none;
    width: 100%;
    margin: 0.25rem 0 0.5rem;
    padding: 0.35rem 0 0.35rem 1rem;
    border: 0;
    box-shadow: none;
    background: transparent; }
  nav .dropdown-menu .dropdown-item {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 0.5rem 0;
    font-size: 1.1rem;
    white-space: normal; }

  .stay-bar--hero .stay-bar-inner,
  .stay-bar-inner {
    padding-left: var(--section-x, 1.25rem) !important;
    padding-right: var(--section-x, 1.25rem) !important; }
  .stay-bar-inner {
    grid-template-columns: 1fr !important;
    gap: 0.75rem; }
  .stay-field {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    padding-bottom: 0.75rem; }
  .stay-field:last-of-type {
    border-bottom: 0; }

  .badges-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .facilities-grid,
  .offers-grid,
  .services-grid,
  .cards-grid,
  .blog-card-grid,
  .testimonial-cards {
    grid-template-columns: 1fr !important; }
  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .logo-cloud-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1rem; }

  .room-panel {
    min-height: 42vh !important; }
  .rooms-panels-head {
    padding-left: var(--section-x, 1.25rem);
    padding-right: var(--section-x, 1.25rem); }
  .rooms-panel-nav {
    width: 44px;
    height: 44px; }

  .hero-slide-caption {
    left: var(--section-x, 1.25rem);
    right: var(--section-x, 1.25rem);
    max-width: none; }
  .site-hero--page .site-hero-inner {
    padding-left: var(--section-x, 1.25rem);
    padding-right: var(--section-x, 1.25rem); }

  .experiences-summary,
  .faq-summary {
    min-height: 44px;
    align-items: center; }
  .experiences-schedule {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem; }

  .contact-split,
  .room-detail-split,
  .image-text-row,
  .story-section-inner,
  .venue-block-grid,
  .dual-showcase-grid {
    grid-template-columns: 1fr !important; }
  .contact-teaser-item span,
  .contact-teaser-item a {
    font-size: clamp(1rem, 4vw, 1.25rem);
    word-break: break-word; }

  .site-footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 1.5rem 1rem; }

  .special-offer-popup-wrap {
    left: 0.75rem;
    right: 0.75rem;
    max-width: none; }
  .offer-media-popup-wrap {
    padding: 0.75rem; }
  .offer-media-popup-wrap > .offer-media-popup {
    max-height: min(92vh, 900px); }

  body.has-promo-bar .book-fab.b-btn-fix,
  body.has-promo-bar .contact-fab {
    bottom: calc(3.75rem + env(safe-area-inset-bottom, 0px)); }
  body.has-promo-bar.menu-open .book-fab.b-btn-fix,
  body.has-promo-bar.menu-open .contact-fab {
    opacity: 0;
    pointer-events: none; }
}

@media (max-width: 767.98px) {
  .gallery-masonry {
    grid-template-columns: repeat(4, 1fr) !important;
    grid-auto-rows: 56px !important; }
  .stats-grid,
  .badges-strip {
    grid-template-columns: 1fr !important; }
  .logo-cloud-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .service-card-copy {
    padding: 1.75rem var(--section-x, 1.25rem); }
  .dual-showcase-panel {
    min-height: 240px; }
}

@media (max-width: 575.98px) {
  .site-footer-grid {
    grid-template-columns: 1fr !important; }
  .room-panel {
    min-height: 36vh !important;
    padding: 1.75rem 1rem; }
  .hero-slide-title {
    font-size: clamp(1.75rem, 8vw, 2.5rem); }
  .section-head h2,
  .site-section h2 {
    font-size: clamp(1.5rem, 6.5vw, 2rem); }
  .book-page .book-total-row {
    flex-direction: column;
    align-items: stretch;
    text-align: center; }
  .book-page .book-submit-btn {
    width: 100%; }
  .membership-form .row > [class*="col-"],
  .meal-plans-page .row > [class*="col-"] {
    margin-bottom: 0.75rem; }
  .js-section-carousel .owl-nav {
    display: none; }
}

/* Dining page */
.dining-page {
  background: #f6f3ee;
  padding: clamp(2.75rem, 6vw, 4.75rem) 1.25rem clamp(3.5rem, 8vw, 6rem);
}
.dining-page__inner {
  max-width: 72rem;
  margin: 0 auto;
}
.dining-hero {
  max-width: 40rem;
  margin: 0 auto 2.75rem;
  text-align: center;
}
.dining-hero__eyebrow {
  margin: 0 0 0.65rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--brand-primary, #b08a4f);
}
.dining-hero__title {
  margin: 0 0 0.85rem;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(2.25rem, 5vw, 3.35rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.12;
  text-wrap: balance;
  color: #1a1612;
}
.dining-hero__intro,
.dining-page__empty {
  margin: 0;
  color: #5c564e;
  font-size: 1.05rem;
  line-height: 1.7;
  text-wrap: pretty;
}
.dining-page__empty { text-align: center; }

.dining-list {
  display: grid;
  gap: 1.5rem;
}
.dining-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 12px 32px rgba(26, 22, 18, 0.07);
}
.dining-card--featured {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
}
.dining-card__media {
  position: relative;
  display: block;
  min-height: 16rem;
  overflow: hidden;
  background: #e8e2d8;
}
.dining-card--featured .dining-card__media {
  min-height: 22rem;
}
.dining-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px;
  transition: transform 0.55s cubic-bezier(0.2, 0, 0, 1);
}
.dining-card__media:hover img {
  transform: scale(1.04);
}
.dining-card__media-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(20, 16, 12, 0.28) 100%);
  pointer-events: none;
}
.dining-card__hours {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  z-index: 1;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #1a1612;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.dining-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 1.5rem 1.5rem 1.65rem;
}
.dining-card--featured .dining-card__body {
  padding: 2rem 2rem 2.1rem;
  justify-content: center;
}
.dining-card__kicker {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-primary, #b08a4f);
}
.dining-card__title {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  font-weight: var(--font-heading-weight, 700);
  line-height: 1.2;
  text-wrap: balance;
}
.dining-card__title a {
  color: #1a1612;
  text-decoration: none;
}
.dining-card__title a:hover { color: #3d342c; }
.dining-card__excerpt {
  margin: 0;
  color: #5c564e;
  font-size: 0.98rem;
  line-height: 1.7;
  text-wrap: pretty;
}
.dining-card__signatures {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.15rem 0 0;
  padding: 0;
  list-style: none;
}
.dining-card__signatures li {
  padding: 0.32rem 0.7rem;
  border-radius: 999px;
  background: #f3eee6;
  color: #3d342c;
  font-size: 0.78rem;
  font-weight: 500;
}
.dining-card__cta {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  margin-top: 0.35rem;
  padding: 0.55rem 1.15rem;
  border-radius: 999px;
  background: #1a1612;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition-property: transform, background-color, color, box-shadow;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.dining-card__cta:hover {
  background: #2c241c;
  color: #fff;
}
.dining-card__cta:active { transform: scale(0.96); }
.dining-card__cta--ghost {
  background: transparent;
  color: #1a1612;
  box-shadow: inset 0 0 0 1px rgba(26, 22, 18, 0.18);
}
.dining-card__cta--ghost:hover {
  background: #1a1612;
  color: #fff;
}

.dining-section-foot {
  text-align: center;
  margin: 2.25rem 0 0;
}
.dining-block {
  padding-bottom: 2.75rem;
}
.dining-block:last-of-type { padding-bottom: 0; }
.dining-block-grid {
  gap: 2.25rem;
}
.dining-block__media {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 16px 40px rgba(26, 22, 18, 0.1);
}
.dining-block__media img {
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px;
}
.dining-block__copy h3 {
  letter-spacing: -0.02em;
}
.dining-block__kicker {
  color: var(--brand-primary, #b08a4f);
}

@media (max-width: 991.98px) {
  .dining-card--featured {
    grid-template-columns: 1fr;
  }
  .dining-card--featured .dining-card__media {
    min-height: 16rem;
  }
}
@media (min-width: 768px) {
  .dining-list:not(:has(.dining-card--featured:only-child)) .dining-card:not(.dining-card--featured) {
    grid-template-columns: 0.95fr 1.05fr;
  }
}

/* Dining posts highlights grid (admin-managed, shown on /pages/dining) */
.dining-posts-section {
  padding-block: clamp(3rem, 6vw, 5rem);
}
.dining-list--compact {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.dining-list--compact .dining-card {
  grid-template-columns: minmax(0, 1fr);
}
.dining-list--compact .dining-card__media {
  min-height: 12rem;
}
.dining-list--compact .dining-card__body {
  padding: 1.5rem 1.5rem 1.65rem;
}

/* Editorial Dining page (/pages/dining) */
.dining-editorial {
  background: var(--brand-surface, #fdfbf7);
  color: var(--text, #2b2b2b);
  -webkit-font-smoothing: antialiased;
}

.dining-editorial__inner {
  max-width: var(--content-max, 1140px);
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
}

.dining-editorial__eyebrow {
  margin: 0 0 0.85rem;
  font-family: var(--font-body), system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--brand-primary);
  text-wrap: pretty;
}

.dining-editorial__eyebrow--center {
  text-align: center;
}

.dining-editorial__lede {
  margin: 0;
  max-width: 36rem;
  font-family: var(--font-body), system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--text-muted, #5c534a);
  text-wrap: pretty;
}

.dining-editorial__lede--center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.dining-editorial__hero {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.dining-editorial__hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  align-items: stretch;
  width: 100%;
  min-height: min(78vh, 44rem);
  overflow: hidden;
  background: var(--brand-card-bg, #fff);
  border: 1px solid var(--border, rgba(0, 0, 0, 0.1));
  border-radius: var(--card-radius, 16px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.04);
}

.theme-gold .dining-editorial__hero-panel {
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
}

.theme-forest .dining-editorial__hero-panel {
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
}

.theme-ocean .dining-editorial__hero-panel {
  border-radius: 4px;
  box-shadow: none;
}

.dining-editorial__hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.15rem;
  padding: clamp(2rem, 5vw, 3.5rem) clamp(1.75rem, 4vw, 3.25rem);
  background: var(--brand-card-bg, #fff);
}

.dining-editorial__hero-heading {
  margin: 0;
  font-family: var(--font-heading), Georgia, serif;
  font-size: clamp(2.4rem, 5vw, 3.75rem);
  font-weight: var(--font-heading-weight, 500);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--text, #2b2b2b);
  text-wrap: balance;
}

.dining-editorial__hero-heading em {
  font-style: italic;
  color: var(--brand-primary);
}

.dining-editorial__hero-cta {
  margin: 0.35rem 0 0;
}

.dining-editorial__cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 40px;
  padding: 0.7rem 1.25rem;
  border-radius: calc(var(--card-radius, 16px) * 0.35);
  transition-property: transform, background-color, border-color, color;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}

.dining-editorial__cta-btn:active {
  transform: scale(0.96);
}

.dining-editorial__hero-media {
  position: relative;
  margin: 0;
  min-height: 100%;
  height: 100%;
  overflow: hidden;
  background: color-mix(in srgb, var(--brand-muted, #ebe6dc) 70%, #fff);
}

.dining-editorial__hero-media--empty {
  min-height: clamp(18rem, 48vw, 32rem);
}

.dining-editorial__hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dining-editorial__hero-caption {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  margin: 0;
  max-width: calc(100% - 2rem);
  font-family: var(--font-body), system-ui, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}

.dining-editorial__mid {
  padding: clamp(3rem, 7vw, 5.5rem) 0;
}

.dining-editorial__mid-copy {
  max-width: 40rem;
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
  text-align: center;
}

.dining-editorial__mid-heading {
  margin: 0 0 1rem;
  font-family: var(--font-heading), Georgia, serif;
  font-size: clamp(2rem, 4.2vw, 3.15rem);
  font-weight: var(--font-heading-weight, 500);
  line-height: 1.15;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.dining-editorial__mid-heading em {
  font-style: italic;
  color: var(--brand-primary);
}

.dining-editorial__mid-images {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(1rem, 2.5vw, 1.75rem);
  align-items: start;
  max-width: var(--content-max, 1140px);
  margin: clamp(2.5rem, 5vw, 3.75rem) auto 0;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
}

.dining-editorial__mid-frame {
  margin: 0;
  overflow: hidden;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px;
}

.dining-editorial__mid-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dining-editorial__mid-frame--tall {
  aspect-ratio: 3 / 4;
}

.dining-editorial__mid-frame--wide {
  margin-top: clamp(2rem, 6vw, 4.5rem);
  aspect-ratio: 4 / 3;
}

.dining-editorial__lower {
  padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(4rem, 8vw, 6rem);
}

.dining-editorial__feature-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  margin-bottom: clamp(3rem, 6vw, 4.5rem);
}

.dining-editorial__feature-heading {
  margin: 0 0 1rem;
  font-family: var(--font-heading), Georgia, serif;
  font-size: clamp(1.85rem, 3.2vw, 2.6rem);
  font-weight: var(--font-heading-weight, 500);
  line-height: 1.15;
  text-wrap: balance;
}

.dining-editorial__feature-heading em {
  font-style: italic;
  color: var(--brand-primary);
}

.dining-editorial__feature-subheading {
  margin: 0 0 0.75rem;
  font-family: var(--font-heading), Georgia, serif;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: var(--font-heading-weight, 500);
  line-height: 1.2;
  text-wrap: balance;
}

.dining-editorial__feature-media {
  margin: 0 0 1.15rem;
  aspect-ratio: 16 / 7;
  overflow: hidden;
  outline: 1px solid rgba(0, 0, 0, 0.1);
  outline-offset: -1px;
}

.dining-editorial__feature-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dining-editorial__infos {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

.dining-editorial__infos-heading {
  margin: 0;
  font-family: var(--font-heading), Georgia, serif;
  font-size: clamp(2.2rem, 4.5vw, 3.5rem);
  font-weight: var(--font-heading-weight, 500);
  line-height: 1.08;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.dining-editorial__infos-heading em {
  font-style: italic;
  color: var(--brand-primary);
}

.dining-editorial__info-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.dining-editorial__info-item {
  padding: 1.35rem 0;
  border-top: 1px solid var(--border, rgba(0, 0, 0, 0.1));
}

.dining-editorial__info-item:last-child {
  border-bottom: 1px solid var(--border, rgba(0, 0, 0, 0.1));
}

.dining-editorial__info-item h3 {
  margin: 0 0 0.45rem;
  font-family: var(--font-heading), Georgia, serif;
  font-size: 1.2rem;
  font-weight: var(--font-heading-weight, 500);
  text-wrap: balance;
}

.dining-editorial__info-item p {
  margin: 0;
  font-family: var(--font-body), system-ui, sans-serif;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text-muted, #5c534a);
  text-wrap: pretty;
}

@media (max-width: 991.98px) {
  .dining-editorial__hero-panel,
  .dining-editorial__feature-grid,
  .dining-editorial__infos,
  .dining-editorial__mid-images {
    grid-template-columns: 1fr;
  }

  .dining-editorial__mid-frame--wide {
    margin-top: 0;
  }

  .dining-editorial__hero-panel {
    min-height: 0;
  }

  .dining-editorial__hero-media,
  .dining-editorial__hero-media--empty {
    min-height: 18rem;
  }
}

/* Testimonials */
.testimonials-section .site-section__inner {
  position: relative;
}
.testimonials-stage {
  position: relative;
  max-width: var(--content-max, 1140px);
  margin: 0 auto;
}
.testimonials-stage--carousel {
  padding: 0 3.25rem;
}
.testimonials-section .testimonial-cards:not(.owl-carousel) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
.testimonials-section .testimonial-card,
.site-card.testimonial-card,
.site-band--dark .testimonial-card {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-height: 15.5rem;
  padding: 1.35rem 1.35rem 1.15rem;
  background: #fff;
  border-radius: 22px;
  box-shadow:
    0 1px 2px rgba(26, 22, 18, 0.04),
    0 14px 32px rgba(26, 22, 18, 0.08);
  outline: 0;
  border: 0;
}
.site-band--dark .testimonial-card {
  background: rgba(255, 255, 255, 0.08);
  box-shadow: none;
  outline: 1px solid rgba(255, 255, 255, 0.12);
}
.testimonial-card-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin: 0;
  border-radius: 999px;
  background: rgba(196, 163, 90, 0.14);
  font-family: var(--font-heading), Georgia, serif;
  font-size: 1.35rem;
  line-height: 1;
  color: var(--brand-primary, #c4a35a);
}
.testimonial-card-quote {
  margin: 0;
  flex: 1 1 auto;
  font-family: var(--font-heading), Georgia, serif;
  font-size: 1.12rem;
  font-weight: 500;
  font-style: italic;
  line-height: 1.55;
  text-wrap: pretty;
  color: #2a241c;
}
.site-band--dark .testimonial-card-quote {
  color: #fff;
}
.testimonial-card-footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: auto;
  padding: 0.55rem;
  border-top: 0;
  border-radius: 14px;
  background: #f6f2ea;
  text-align: left;
  min-width: 0;
}
.site-band--dark .testimonial-card-footer {
  background: rgba(255, 255, 255, 0.08);
}
.testimonial-card-avatar-wrap {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
  outline: 1px solid rgba(0, 0, 0, 0.06);
}
.testimonial-card-avatar,
.testimonials-section .owl-carousel .owl-item img.testimonial-card-avatar {
  display: block;
  width: 24px !important;
  height: 24px !important;
  max-width: 24px !important;
  max-height: 24px !important;
  margin: 0;
  border-radius: 0;
  object-fit: contain !important;
  object-position: center;
  background: transparent;
  outline: 0;
}
.testimonial-card-avatar--ph {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: #5c564e;
}
.testimonial-card-byline {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}
.testimonial-card-author {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: #1a1612;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.testimonial-card-location {
  margin: 0.1rem 0 0;
  font-size: 0.75rem;
  color: #6b645c;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.testimonials-section .testimonial-cards--carousel.owl-carousel {
  display: block;
}
.testimonials-section .testimonial-cards--carousel .owl-stage {
  display: flex;
  align-items: stretch;
}
.testimonials-section .testimonial-cards--carousel .owl-item {
  display: flex;
}
.testimonials-section .testimonial-cards--carousel .testimonial-card {
  width: 100%;
  height: auto;
}
.testimonials-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #1a1612;
  box-shadow:
    0 1px 2px rgba(26, 22, 18, 0.06),
    0 10px 24px rgba(26, 22, 18, 0.12);
  cursor: pointer;
  transition-property: transform, background-color, color, box-shadow;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
.testimonials-nav span {
  font-size: 1.15rem;
  line-height: 1;
  transform: translateY(1px);
}
.testimonials-nav:hover {
  background: #1a1612;
  color: #fff;
}
.testimonials-nav:active {
  transform: translateY(-50%) scale(0.96);
}
.testimonials-nav--prev { left: 0; }
.testimonials-nav--next { right: 0; }
.testimonials-section .owl-dots {
  margin-top: 1.15rem;
  text-align: center;
}
.testimonials-section .owl-dots .owl-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin: 0 4px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(26, 22, 18, 0.18);
}
.testimonials-section .owl-dots .owl-dot span { display: none; }
.testimonials-section .owl-dots .owl-dot.active {
  width: 22px;
  background: var(--brand-primary, #c4a35a);
}
@media (max-width: 991.98px) {
  .testimonials-section .testimonial-cards:not(.owl-carousel) {
    grid-template-columns: 1fr;
  }
  .testimonials-stage--carousel {
    padding: 0 2.75rem;
  }
}
@media (max-width: 575.98px) {
  .testimonials-stage--carousel {
    padding: 0 2.5rem;
  }
  .testimonials-nav {
    width: 40px;
    height: 40px;
  }
}

/* Homepage header + hero — editorial overlay; CMS fonts via --font-heading / --font-body */
.page-home .site-header {
  pointer-events: auto;
  background: color-mix(in srgb, var(--nav-bg, var(--brand-band-light, #f5f2ea)) calc(var(--scroll-ui, 0) * 96%), transparent);
  border-bottom: 0;
  box-shadow: none;
}
.page-home .site-header-bar {
  position: relative;
  min-height: 88px;
  padding-left: clamp(1.25rem, 4vw, 2.75rem);
  padding-right: clamp(1.25rem, 4vw, 2.75rem);
}
.page-home .brand-mark,
.page-home.is-lockup-docked .brand-mark,
.page-home.menu-open .brand-mark {
  height: 52px;
  max-width: 220px;
  width: auto;
}
@media (min-width: 992px) {
  .page-home .site-header-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }
  .page-home .brand-lockup {
    justify-self: start;
    z-index: 2;
  }
  .page-home .site-header-end {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
  }
  .page-home .site-header-end nav {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
  }
  .page-home .site-navbar .site-nav-menu {
    justify-content: center;
    flex-wrap: nowrap;
    gap: 0 1.35rem;
  }
  .page-home .site-navbar .site-nav-menu li a {
    color: color-mix(in srgb, #f7f1e6 calc((1 - var(--scroll-ui, 0)) * 100%), var(--nav-text, #2c2620) calc(var(--scroll-ui, 0) * 100%));
    font-family: var(--font-body), arial, sans-serif;
    font-size: 0.92rem;
    font-weight: 400;
    letter-spacing: 0.01em;
    text-transform: none;
    padding: 10px 0 12px;
  }
  .page-home .site-navbar .site-nav-menu li a:after {
    height: 1px;
    bottom: 8px;
    background: color-mix(in srgb, #f7f1e6 calc((1 - var(--scroll-ui, 0)) * 100%), var(--brand-primary) calc(var(--scroll-ui, 0) * 100%));
  }
  .page-home .site-header-utils {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-top: 0;
    z-index: 2;
  }
  .page-home .site-util-link {
    color: color-mix(in srgb, #f7f1e6 calc((1 - var(--scroll-ui, 0)) * 100%), var(--nav-text, #2c2620) calc(var(--scroll-ui, 0) * 100%));
    font-family: var(--font-body), arial, sans-serif;
    font-size: 0.92rem;
    font-weight: 400;
    letter-spacing: 0.01em;
    text-transform: none;
    gap: 8px;
  }
  .page-home .site-util-link .ion-chevron-down {
    font-size: 10px;
    opacity: 0.8;
  }
  .page-home .site-header-book,
  .page-home .site-header-book.btn {
    margin: 0;
    border-radius: 2px;
    padding: 0.7rem 1.15rem;
    font-family: var(--font-body), arial, sans-serif;
    font-size: 0.88rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    text-transform: none;
  }
}

.page-home .site-hero.site-hero--fullscreen {
  min-height: 100svh;
}
.page-home .hero-slider,
.page-home .hero-slider .owl-stage-outer,
.page-home .hero-slider .owl-stage,
.page-home .hero-slider .owl-item,
.page-home .hero-slider .hero-slide-item {
  touch-action: pan-y;
}
.page-home .hero-slide-caption,
.page-home .hero-slide-caption.hero-align--center,
.page-home .hero-slide-caption.hero-align--center-left,
.page-home .hero-slide-caption.hero-align--bottom-left,
.page-home .hero-slide-caption.hero-align--bottom-center,
.page-home .site-hero.hero-align--center .hero-slide-caption,
.page-home .site-hero.hero-align--center-left .hero-slide-caption,
.page-home .site-hero.hero-align--bottom-left .hero-slide-caption,
.page-home .site-hero.hero-align--bottom-center .hero-slide-caption {
  top: 46%;
  bottom: auto;
  left: clamp(1.5rem, 6.5vw, 5.5rem);
  right: auto;
  transform: translateY(-50%);
  text-align: left;
  max-width: min(46rem, 58vw);
  color: color-mix(in srgb, var(--brand-band-light, #f4ead8) 82%, #fff);
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.28);
}
.page-home .hero-slide-kicker {
  margin: 0 0 1.1rem;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--brand-band-light, #f4ead8) 88%, #fff);
  opacity: 0.92;
}
.page-home .hero-slide-title {
  margin: 0;
  color: inherit;
  font-family: var(--font-heading), times, serif;
  font-weight: 400;
  font-size: clamp(2.6rem, 6.4vw, 5.15rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-wrap: balance;
}
.page-home .hero-slide-title em {
  display: block;
  font-style: italic;
  font-weight: 400;
  font-family: inherit;
}
.page-home .hero-slide-copy {
  margin: 1.15rem 0 0;
  max-width: 28rem;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.98rem;
  line-height: 1.7;
  color: color-mix(in srgb, var(--brand-band-light, #f4ead8) 78%, #fff);
  text-wrap: pretty;
}
.page-home .hero-slide-cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-height: 48px;
  margin-top: 1.65rem;
  padding: 0.8rem 1.35rem;
  border-radius: 2px;
  border: 0;
  background: color-mix(in srgb, var(--brand-band-light, #f4ead8) 94%, #fff);
  color: var(--color-text, #2c2620);
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: none;
  text-decoration: none;
  box-shadow: 0 10px 30px -18px rgba(0, 0, 0, 0.45);
}
.page-home .hero-slide-cta:hover,
.page-home .hero-slide-cta:focus {
  background: #fff;
  color: var(--color-text, #2c2620);
  text-decoration: none;
}
.page-home .hero-slide-cta:active {
  transform: scale(0.96);
}
.page-home .hero-scroll-cue {
  left: clamp(1.5rem, 6.5vw, 5.5rem);
  bottom: 1.6rem;
  transform: none;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  z-index: 4;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: none;
  color: color-mix(in srgb, var(--brand-band-light, #f4ead8) 86%, #fff);
  opacity: 0.92;
}
.page-home .hero-scroll-cue-icon {
  font-size: 0.95rem;
}
.page-home .hero-slide-pager {
  position: absolute;
  right: clamp(1.5rem, 5vw, 3.5rem);
  bottom: 1.45rem;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 14px;
  color: color-mix(in srgb, var(--brand-band-light, #f4ead8) 88%, #fff);
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
}
.page-home .hero-slide-pager-index {
  font-variant-numeric: tabular-nums;
  opacity: 0.85;
}
.page-home .hero-slide-pager-name {
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.page-home .hero-slide-pager-next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-left: 6px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: inherit;
  cursor: pointer;
  transition-property: transform, background-color, border-color;
  transition-duration: 0.2s;
}
.page-home .hero-slide-pager-next:hover,
.page-home .hero-slide-pager-next:focus-visible {
  background: rgba(255, 255, 255, 0.18);
}
.page-home .hero-slide-pager-next:active {
  transform: scale(0.96);
}
.page-home #hero-section .owl-nav,
.page-home #hero-section .owl-dots {
  display: none;
}

.owl-carousel .owl-stage-outer {
  touch-action: pan-y;
}
.owl-carousel img,
.service-tile-photo,
.testimonial-card-avatar {
  -webkit-user-drag: none;
  user-select: none;
  touch-action: pan-y;
}

@media (max-width: 991.98px) {
  .page-home .hero-slide-caption,
  .page-home .hero-slide-caption.hero-align--center,
  .page-home .hero-slide-caption.hero-align--center-left,
  .page-home .hero-slide-caption.hero-align--bottom-left,
  .page-home .hero-slide-caption.hero-align--bottom-center {
    top: auto;
    bottom: 6.5rem;
    left: 1.25rem;
    right: 1.25rem;
    transform: none;
    max-width: none;
  }
  .page-home .hero-slide-title {
    font-size: clamp(2.15rem, 11vw, 3.1rem);
  }
  .page-home .hero-scroll-cue {
    left: 1.25rem;
    bottom: 1.15rem;
  }
  .page-home .hero-slide-pager {
    right: 1.15rem;
    bottom: 1.05rem;
  }
  .page-home .hero-slide-pager-name {
    display: none;
  }
  .services-section .owl-carousel .owl-stage-outer,
  .testimonials-section .owl-carousel .owl-stage-outer,
  .offers-section .owl-carousel .owl-stage-outer {
    touch-action: pan-y;
  }
}

/* Why book direct */
.benefits-section__inner {
  max-width: 1120px;
}
.benefits-head {
  max-width: 40rem;
  margin: 0 auto 3.25rem;
  text-align: center;
}
.benefits-head__title {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-weight: 400;
  font-size: clamp(2.1rem, 4.4vw, 3.4rem);
  line-height: 1.12;
  letter-spacing: -0.03em;
  color: var(--color-text, #2c2620);
  text-wrap: balance;
}
.benefits-head__title em {
  display: block;
  font-style: italic;
  font-weight: 400;
  color: var(--brand-primary, #815043);
}
.benefits-head__intro {
  margin: 1rem 0 0;
  color: var(--color-text-secondary, #6b645c);
  font-family: var(--font-body), arial, sans-serif;
  line-height: 1.75;
}
.benefits-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  max-width: none;
  margin: 0;
  padding: 1.5rem 0 0;
  border-top: 1px solid rgba(44, 38, 32, 0.12);
  list-style: none;
}
.benefits-list-item {
  display: block;
  padding: 2.1rem 2rem 0.5rem;
  border-right: 1px solid rgba(44, 38, 32, 0.12);
  border-bottom: 0;
}
.benefits-list-item:last-child {
  border-right: 0;
}
.benefits-num {
  display: block;
  margin-bottom: 1.1rem;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: var(--brand-primary, #815043);
}
.benefits-copy h3 {
  margin: 0 0 0.7rem;
  font-family: var(--font-heading), times, serif;
  font-weight: 400;
  font-size: 1.65rem;
  line-height: 1.2;
  color: var(--color-text, #2c2620);
}
.benefits-copy p {
  margin: 0;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-text-secondary, #6b645c);
}
.benefits-cta {
  text-align: center;
  margin: 2.5rem 0 0;
}
@media (max-width: 767.98px) {
  .benefits-list {
    grid-template-columns: 1fr;
    border-top: 0;
  }
  .benefits-list-item {
    border-right: 0;
    border-top: 1px solid rgba(44, 38, 32, 0.12);
    padding: 1.6rem 0 1.2rem;
  }
}

/* Homepage find-us / contact teaser */
.contact-find {
  padding-block: clamp(3.5rem, 8vw, 6rem);
}
.contact-find__inner {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(2rem, 6vw, 5.5rem);
  align-items: center;
}
.contact-find__inner--flip {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
}
.contact-find__inner--flip .contact-find__media {
  order: 2;
}
.contact-find__media {
  margin: 0;
  overflow: hidden;
  background: var(--brand-muted, #e9e1d1);
}
.contact-find__media img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: cover;
  aspect-ratio: 5 / 4;
  -webkit-user-drag: none;
  outline: 1px solid rgba(0, 0, 0, 0.08);
  outline-offset: -1px;
}
.contact-find__kicker {
  margin: 0 0 1rem;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--brand-primary, #815043);
}
.contact-find__title {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-weight: 400;
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: 1.12;
  letter-spacing: -0.03em;
  color: var(--color-text, #2c2620);
  text-wrap: balance;
}
.contact-find__title em {
  display: block;
  font-style: italic;
  font-weight: 400;
}
.contact-find__intro {
  margin: 1.15rem 0 0;
  max-width: 34rem;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--color-text-secondary, #6b645c);
  text-wrap: pretty;
}
.contact-find__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  margin-top: 1.6rem;
  padding: 0.75rem 1.25rem;
  border: 0;
  border-radius: 2px;
  background: var(--brand-primary, #6d3b32);
  color: var(--brand-on-primary, #fff);
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  text-decoration: none;
}
.contact-find__cta:hover,
.contact-find__cta:focus {
  color: var(--brand-on-primary, #fff);
  filter: brightness(1.06);
  text-decoration: none;
}
.contact-find__cta:active {
  transform: scale(0.96);
}
.contact-find__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 1.35rem 0 0;
  padding: 0.35rem 0 0.65rem;
  border-bottom: 1px solid rgba(44, 38, 32, 0.35);
  color: inherit;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.92rem;
  text-decoration: none;
}
.contact-find__link:hover {
  color: var(--brand-primary, #815043);
}
@media (max-width: 899.98px) {
  .contact-find__inner,
  .contact-find__inner--flip {
    grid-template-columns: 1fr;
    width: calc(100% - 32px);
  }
  .contact-find__inner--flip .contact-find__media {
    order: 0;
  }
}

/* Contact page */
.contact-page-editorial {
  padding-block: clamp(3rem, 7vw, 5.5rem);
}
.contact-page-editorial__inner {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
}
.contact-page-hero {
  max-width: 46rem;
  margin: 0 auto 4rem;
  text-align: center;
}
.contact-page-hero__eyebrow,
.contact-page-kicker {
  margin: 0 0 1rem;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--brand-primary, #815043);
}
.contact-page-hero__title {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-weight: 400;
  font-size: clamp(2.5rem, 6vw, 4.4rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--color-text, #2c2620);
  text-wrap: balance;
}
.contact-page-hero__title em {
  display: block;
  font-style: italic;
  font-weight: 400;
  color: var(--brand-primary, #815043);
}
.contact-page-hero__intro {
  margin: 1.15rem auto 0;
  max-width: 36rem;
  color: var(--color-text-secondary, #6b645c);
  font-family: var(--font-body), arial, sans-serif;
  font-size: 1rem;
  line-height: 1.8;
}
.contact-page-find h2,
.contact-page-talk h2 {
  margin: 0;
  font-family: var(--font-heading), times, serif;
  font-weight: 400;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.15;
  color: var(--color-text, #2c2620);
}
.contact-page-address {
  margin: 0.85rem 0 0;
  font-family: var(--font-body), arial, sans-serif;
  line-height: 1.7;
  color: var(--color-text-secondary, #6b645c);
  white-space: pre-line;
}
.contact-page-body {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 2.5rem 3rem;
  align-items: start;
}
.contact-page-methods {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  padding-top: 0;
}
.contact-page-find {
  margin-bottom: 0.35rem;
}
.contact-page-method-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  padding: 0.2rem 0 0.55rem;
  border-bottom: 1px solid rgba(44, 38, 32, 0.35);
  color: inherit;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.95rem;
  text-decoration: none;
}
.contact-page-method a {
  display: block;
  color: inherit;
  font-family: var(--font-body), arial, sans-serif;
  line-height: 1.7;
}
.contact-page-form-card {
  padding: 1.75rem;
  background: color-mix(in srgb, var(--brand-muted, #eee6d8) 70%, var(--brand-band-light, #f7f4ed));
}
.contact-page-talk {
  margin: 0 0 1.5rem;
  padding: 0;
  background: transparent;
}
.contact-page-talk .contact-page-kicker {
  margin-bottom: 0.75rem;
}
.contact-page-form {
  padding: 0;
  background: transparent;
}
.contact-page-form__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1rem 1.25rem;
}
.contact-page-form label {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0;
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.82rem;
  color: var(--color-text-secondary, #6b645c);
}
.contact-page-form .form-control {
  min-height: 46px;
  border-radius: 2px;
  border: 1px solid rgba(44, 38, 32, 0.16);
  background: color-mix(in srgb, var(--brand-band-light, #f7f4ed) 80%, #fff);
  box-shadow: none;
}
.contact-page-form__message {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 1.1rem 0 0;
}
.contact-page-form__message .form-control {
  min-height: 8.5rem;
}
.contact-page-form__note {
  margin: 0.9rem 0 1.25rem;
  font-size: 0.8rem;
  line-height: 1.6;
  color: var(--color-text-secondary, #6b645c);
}
.contact-page-form__submit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 0.75rem 1.3rem;
  border: 0;
  border-radius: 2px;
  background: var(--brand-primary, #6d3b32);
  color: var(--brand-on-primary, #fff);
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.9rem;
  cursor: pointer;
}
.contact-page-form__submit:active {
  transform: scale(0.96);
}
@media (max-width: 899.98px) {
  .contact-page-editorial__inner {
    width: calc(100% - 32px);
  }
  .contact-page-body,
  .contact-page-form__grid {
    grid-template-columns: 1fr;
  }
  .contact-page-form-card {
    padding: 1.25rem;
  }
}

@media (min-width: 992px) {
  .page-contact .site-header-bar,
  .page-services .site-header-bar {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }
  .page-contact .site-menu-toggle,
  .page-services .site-menu-toggle {
    display: none;
  }
  .page-contact .site-header-end,
  .page-services .site-header-end {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
  }
  .page-contact .site-header-end nav,
  .page-services .site-header-end nav {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
  .page-contact .site-navbar .site-nav-menu,
  .page-services .site-navbar .site-nav-menu {
    justify-content: center;
    flex-wrap: nowrap;
    gap: 0 1.35rem;
  }
  .page-contact .site-navbar .site-nav-menu li a,
  .page-services .site-navbar .site-nav-menu li a {
    font-size: 0.92rem;
    text-transform: none;
    letter-spacing: 0.01em;
  }
  .page-contact .site-header-utils,
  .page-services .site-header-utils {
    display: flex;
    margin-top: 0;
    gap: 1.25rem;
  }
  .page-contact .site-header-book,
  .page-services .site-header-book {
    margin: 0;
    border-radius: 2px;
    text-transform: none;
  }
}

/* -------------------------------------------------------------------------
   Unified site header — same position + layout on every page.
   Overrides page-home / page-contact / page-services special cases that
   moved links (absolute center), heights, and sticky vs fixed chrome.
   ------------------------------------------------------------------------- */
body .site-header,
body.page-home .site-header,
body.page-contact .site-header,
body.page-services .site-header {
  position: sticky;
  top: 0;
  width: 100%;
  z-index: 1000;
  overflow: visible;
  pointer-events: auto;
  background: var(--nav-bg, var(--brand-band-light, #f5f2ea));
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: none;
}

body .site-header-bar,
body.page-home .site-header-bar,
body.page-home.is-lockup-docked .site-header-bar,
body.page-contact .site-header-bar,
body.page-services .site-header-bar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 1.75rem;
  min-height: 76px;
  max-width: 1440px;
  margin: 0 auto;
  padding: 12px 40px;
  grid-template-columns: none;
}

body .brand-lockup,
body.page-home .brand-lockup,
body.page-home.is-lockup-docked .brand-lockup,
body.page-home.menu-open .brand-lockup {
  position: relative;
  left: auto;
  top: auto;
  transform: none;
  flex-direction: row;
  text-align: left;
  gap: 10px;
  will-change: auto;
  justify-self: auto;
  grid-column: auto;
}

body .brand-mark,
body.page-home .brand-mark,
body.page-home.is-lockup-docked .brand-mark,
body.page-home.menu-open .brand-mark {
  height: 52px;
  max-width: 160px;
  width: auto;
  margin: 0;
}

body .brand-name,
body.page-home .brand-name,
body.page-home.menu-open .brand-name {
  color: var(--nav-text, #1c1814);
  text-shadow: none;
}

body .brand-lockup:has(.brand-mark) .brand-name,
body.page-home .brand-lockup:has(.brand-mark) .brand-name,
body.page-home.menu-open .brand-lockup:has(.brand-mark) .brand-name {
  display: none;
}

body .site-header-end,
body.page-home .site-header-end,
body.page-home.is-lockup-docked .site-header-end,
body.page-contact .site-header-end,
body.page-services .site-header-end {
  position: static;
  opacity: 1;
  pointer-events: auto;
  margin-left: auto;
  flex: 0 1 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 1.5rem 2rem;
  width: auto;
  grid-column: auto;
}

body .site-header-end nav,
body.page-home .site-header-end nav,
body.page-contact .site-header-end nav,
body.page-services .site-header-end nav {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  z-index: auto;
  flex: 0 1 auto;
}

body .site-navbar .site-nav-menu,
body.page-home .site-navbar .site-nav-menu,
body.page-contact .site-navbar .site-nav-menu,
body.page-services .site-navbar .site-nav-menu {
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.25rem 1.35rem;
}

body .site-navbar .site-nav-menu li a,
body.page-home .site-navbar .site-nav-menu li a,
body.page-contact .site-navbar .site-nav-menu li a,
body.page-services .site-navbar .site-nav-menu li a,
body .site-nav-parent,
body.page-home .site-nav-parent {
  color: var(--nav-text, #2c2620);
  font-family: var(--font-body), arial, sans-serif;
  font-size: 0.92rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  text-transform: none;
  text-shadow: none;
}

body .site-navbar .site-nav-menu li a:after,
body.page-home .site-navbar .site-nav-menu li a:after {
  background: var(--brand-primary);
}

body .site-header-utils,
body.page-home .site-header-utils,
body.page-contact .site-header-utils,
body.page-services .site-header-utils {
  display: flex;
  align-items: center;
  margin-top: 0;
  gap: 1.25rem;
  z-index: auto;
}

body .site-util-link,
body.page-home .site-util-link {
  color: var(--nav-text, #2c2620);
  text-shadow: none;
}

body .site-menu-toggle span,
body.page-home .site-menu-toggle span {
  background: var(--nav-text, #1c1814);
}

@media (min-width: 992px) {
  body .site-navbar,
  body.page-home .site-navbar,
  body.page-home.is-lockup-docked .site-navbar {
    position: static;
    display: flex;
    flex: 0 1 auto;
    background: transparent;
    opacity: 1;
    transform: none;
    padding: 0;
    overflow: visible;
  }

  body .site-menu-toggle,
  body.page-home .site-menu-toggle,
  body.page-home.is-lockup-docked .site-menu-toggle {
    display: none;
  }
}

@media (max-width: 991.98px) {
  body .site-header-bar,
  body.page-home .site-header-bar,
  body.page-home.is-lockup-docked .site-header-bar {
    padding: 10px 20px;
    min-height: 64px;
  }

  body.page-home .site-menu-toggle,
  body.page-home.is-lockup-docked .site-menu-toggle {
    display: block;
    opacity: 1;
    pointer-events: auto;
  }

  /*
   * Mobile drawer: hide with display (not opacity).
   * .site-header-end and .site-navbar are the same element — unified
   * display:flex above must not keep the drawer open on small screens.
   */
  body .site-header-end,
  body.page-home .site-header-end,
  body.page-home.is-lockup-docked .site-header-end,
  body.page-home:not(.menu-open) .site-header-end,
  body.page-contact .site-header-end,
  body.page-services .site-header-end,
  body .site-navbar,
  body.page-home .site-navbar,
  body.page-home.is-lockup-docked .site-navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99;
    display: none;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    margin-left: 0;
    width: auto;
    gap: 0;
    opacity: 1;
    pointer-events: auto;
    overflow-y: auto;
    background: var(--nav-bg, #fff);
    padding: calc(var(--site-header-h, 64px) + 1.5rem) var(--section-x, 1.25rem) 2rem;
    transform: none;
  }

  body.menu-open .site-header-end,
  body.menu-open .site-navbar,
  body.page-home.menu-open .site-header-end,
  body.page-home.menu-open.is-lockup-docked .site-header-end,
  body.page-home.menu-open .site-navbar,
  body.page-home.menu-open.is-lockup-docked .site-navbar,
  body.page-contact.menu-open .site-header-end,
  body.page-services.menu-open .site-header-end {
    display: flex;
  }

  body .site-header-utils,
  body.page-home .site-header-utils,
  body.page-contact .site-header-utils,
  body.page-services .site-header-utils {
    flex-direction: column;
    align-items: flex-start;
    margin-top: 1.5rem;
    gap: 0.75rem;
  }

  body .site-navbar .site-nav-menu,
  body.page-home .site-navbar .site-nav-menu,
  body.page-contact .site-navbar .site-nav-menu,
  body.page-services .site-navbar .site-nav-menu {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0.35rem;
    width: 100%;
    max-width: 28rem;
  }
}

