/* Hotel Pinecone Core PHP compatibility + final visual fixes. */
body { overflow-x:hidden; }
.ck-content img, .page-editor-preview img { max-width:100%; height:auto; }

:root {
  --pinecone-green: #5b866f;
  --pinecone-green-hover: #4d745f;
  --pinecone-blue: #3f63df;
}

/* The live Hotel Pinecone design uses the green primary buttons. */
.knsl-btn,
.knsl-btn-md,
a.knsl-btn,
button.knsl-btn,
.mphb-book-button,
.button.mphb-book-button {
  background: var(--pinecone-green) !important;
  border-color: var(--pinecone-green) !important;
  color:#fff !important;
}
.knsl-btn:hover,
.knsl-btn-md:hover,
a.knsl-btn:hover,
button.knsl-btn:hover,
.mphb-book-button:hover,
.button.mphb-book-button:hover {
  background: var(--pinecone-green-hover) !important;
  border-color: var(--pinecone-green-hover) !important;
  color:#fff !important;
}

/* Header: keep both supplied logos visible and close to the original layout. */
.knsl-top-bar .elementor-column:first-child .elementor-widget-image img,
.knsl-top-bar .elementor-column:first-child img {
  width:180px !important;
  max-width:180px !important;
  height:auto !important;
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
.knsl-top-bar .elementor-column:last-child .elementor-widget-image img,
.knsl-top-bar .elementor-column:last-child img {
  width:210px !important;
  max-width:210px !important;
  height:auto !important;
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
.knsl-top-bar .elementor-column:first-child .elementor-widget-container,
.knsl-top-bar .elementor-column:last-child .elementor-widget-container { display:flex; align-items:center; }

/* Do not depend on Pinecone's scroll animation JS. */
.knsl-scroll-animation,
.knsl-scroll-animation.knsl-active-el {
  opacity:1 !important;
  transform:none !important;
}

/* Home room carousel: match the original Elementor 3-column room view.
   There are currently two room records, so the third column intentionally
   remains empty just like the reference website screenshot. */
.corephp-page .knsl-uni-slider .swiper-wrapper {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:20px !important;
  transform:none !important;
  width:100% !important;
}
.corephp-page .knsl-uni-slider .swiper-slide {
  width:auto !important;
  height:auto !important;
  flex-shrink:1 !important;
  margin-right:0 !important;
}
.corephp-page .knsl-uni-slider .mphb_sc_room-wrapper,
.corephp-page .knsl-uni-slider .mphb-room-type { height:100%; }
.corephp-page .knsl-uni-slider .mphb-loop-room-thumbnail img {
  display:block !important;
  width:100% !important;
  height:100% !important;
  position:absolute !important;
  top:0 !important;
  left:0 !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
}
.corephp-page .knsl-uni-slider-nav-panel {
  display:flex !important;
  justify-content:space-between;
  align-items:center;
  margin-top:20px;
}
@media (max-width:1199px) and (min-width:768px) {
  .corephp-page .knsl-uni-slider .swiper-wrapper { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width:767px) {
  .corephp-page .knsl-uni-slider .swiper-wrapper { grid-template-columns:1fr !important; }
}

/* Floating contact: collapsed green chat button; click opens Call/WhatsApp/Close. */
.pinecone-floating-contact {
  position:fixed;
  right:22px;
  bottom:24px;
  z-index:99999;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
.pinecone-floating-main,
.pinecone-floating-actions a,
.pinecone-floating-actions button {
  width:54px;
  height:54px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  text-decoration:none;
  color:#fff !important;
  box-shadow:0 5px 18px rgba(0,0,0,.20);
  cursor:pointer;
  font-size:24px;
  position:relative;
}
.pinecone-floating-main { background:#5b866f !important; }
.pinecone-floating-actions {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px) scale(.96);
  pointer-events:none;
  transition:.22s ease;
}
.pinecone-floating-contact.is-open .pinecone-floating-actions {
  opacity:1;
  visibility:visible;
  transform:none;
  pointer-events:auto;
}
.pinecone-floating-contact.is-open .pinecone-floating-main { background:#777f89 !important; }
.pinecone-call-button { background:#5b866f !important; }
.pinecone-whatsapp-button { background:#20c76a !important; }
.pinecone-floating-close { background:#777f89 !important; font-size:20px !important; }
.pinecone-floating-main:hover,
.pinecone-floating-actions a:hover,
.pinecone-floating-actions button:hover { transform:translateY(-2px); }
.pinecone-float-label {
  position:absolute;
  right:66px;
  top:50%;
  transform:translateY(-50%);
  background:#fff;
  color:#333;
  border-radius:8px;
  padding:7px 12px;
  white-space:nowrap;
  font:500 14px/1.1 Arial,sans-serif;
  box-shadow:0 3px 14px rgba(0,0,0,.15);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.pinecone-floating-actions a:hover .pinecone-float-label,
.pinecone-floating-actions button:hover .pinecone-float-label { opacity:1; visibility:visible; }
@media (max-width:767px) {
  .knsl-top-bar .elementor-column:first-child .elementor-widget-image img,
  .knsl-top-bar .elementor-column:first-child img { width:130px !important; max-width:130px !important; }
  .knsl-top-bar .elementor-column:last-child .elementor-widget-image img,
  .knsl-top-bar .elementor-column:last-child img { width:145px !important; max-width:145px !important; }
  .pinecone-floating-contact { right:12px; bottom:14px; gap:8px; }
  .pinecone-floating-main,
  .pinecone-floating-actions a,
  .pinecone-floating-actions button { width:48px; height:48px; font-size:21px; }
  .pinecone-float-label { right:58px; }
}


/* V4.5 - Rooms page filter buttons use the same Pinecone green as the site. */
.knsl-filter .knsl-work-category.knsl-current,
.knsl-filter .knsl-work-category.knsl-current:hover,
.knsl-filter .knsl-work-category.knsl-current:focus {
  background-color: var(--pinecone-green) !important;
  border-color: var(--pinecone-green) !important;
  color: #fff !important;
}
.knsl-filter .knsl-work-category:not(.knsl-current):hover {
  color: var(--pinecone-green) !important;
}


/* V4.6 - Gallery/video category filters stay on the current page and use Pinecone green. */
.knsl-filter .knsl-work-category {
  cursor: pointer;
}
.knsl-filter .knsl-work-category.knsl-current,
.knsl-filter .knsl-work-category.knsl-current:hover,
.knsl-filter .knsl-work-category.knsl-current:focus {
  background-color: var(--pinecone-green) !important;
  border-color: var(--pinecone-green) !important;
  color: #fff !important;
}
.knsl-filter .knsl-work-category:not(.knsl-current):hover,
.knsl-filter .knsl-work-category:not(.knsl-current):focus {
  color: var(--pinecone-green) !important;
}


/* V4.8 - Gallery masonry: let Isotope determine the grid height after filtering. */
.corephp-gallery-grid {
  min-height: 0 !important;
}

/* Keep the original three-column masonry widths on the gallery page. */
.corephp-gallery-grid .knsl-grid-sizer,
.corephp-gallery-grid .knsl-masonry-grid-item {
  width: 33.3333%;
}
@media (max-width: 992px) {
  .corephp-gallery-grid .knsl-grid-sizer,
  .corephp-gallery-grid .knsl-masonry-grid-item {
    width: 50% !important;
  }
}
@media (max-width: 768px) {
  .corephp-gallery-grid .knsl-grid-sizer,
  .corephp-gallery-grid .knsl-masonry-grid-item {
    width: 100% !important;
  }
}

/* V4.8 - Original Pinecone-style gallery popup. */
.mfp-fade.mfp-bg { opacity: .86; }
.mfp-fade.mfp-wrap .mfp-content { opacity: 0; transition: opacity .16s ease-out; }
.mfp-fade.mfp-wrap.mfp-ready .mfp-content { opacity: 1; }
.mfp-fade.mfp-wrap.mfp-removing .mfp-content { opacity: 0; }
.mfp-image-holder .mfp-img { max-height: 86vh !important; }
.mfp-image-holder .mfp-figure:after { box-shadow: 0 20px 70px rgba(0,0,0,.45); }
.mfp-image-holder .mfp-close { right: 8px; top: -42px; }
.mfp-counter { font-size: 15px; font-weight: 600; }

/* V4.10 - Dynamic active navigation indicator. The PHP header now assigns
 * current-menu-item/current-menu-parent from the actual Core PHP route. Keep
 * the original Pinecone orange underline visible on the active page. */
/* V4.11 - Active navigation indicator. Header is outside <main class="corephp-page">, so this rule must NOT be scoped to .corephp-page. */
.knsl-menu nav ul li.current-menu-item:after,
.knsl-menu nav ul li.current-menu-parent:after,
.knsl-menu nav ul li.current-item:after {
  width: calc(100% - 40px) !important;
  background-color: #EBA744 !important;
  opacity: 1 !important;
}
.knsl-menu nav ul li.current-menu-item > a,
.knsl-menu nav ul li.current-menu-parent > a,
.knsl-menu nav ul li.current-item > a {
  color: #383A4E !important;
}
.knsl-menu nav > ul > li.current-menu-item::after,
.knsl-menu nav > ul > li.current-menu-parent::after {
  display: block !important;
  height: 4px !important;
  left: 20px !important;
  bottom: 0 !important;
  border-radius: 10px !important;
}


/* V4.14 - Mobile header/menu rebuild.
 * Keep the original desktop Elementor header, but make the mobile header a
 * deterministic 50/50 two-logo layout with the hamburger at the far right.
 * The menu opens from directly below the header with a smooth slide/fade.
 */
@media (max-width: 992px) {
  .knsl-top-bar {
    min-height: 80px !important;
    height: 80px !important;
    overflow: visible !important;
  }

  .knsl-top-bar > .elementor {
    width: 100% !important;
    height: 80px !important;
  }

  .knsl-top-bar > .elementor > .elementor-section,
  .knsl-top-bar > .elementor > .elementor-container {
    width: 100% !important;
    height: 80px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  /* Left 50%: Pinecone logo */
  .knsl-top-bar .pinecone-header-left {
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
    padding: 0 0 0 16px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }

  .knsl-top-bar .pinecone-header-left .elementor-widget-wrap {
    width: 100% !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }

  .knsl-top-bar .pinecone-header-left .knsl-logo-frame,
  .knsl-top-bar .pinecone-header-left .elementor-widget-image {
    margin: 0 !important;
  }

  .knsl-top-bar .pinecone-header-left .elementor-widget-image img {
    width: 130px !important;
    max-width: 130px !important;
    height: auto !important;
  }

  /* Middle column becomes only the menu panel; it does not consume header width. */
  .knsl-top-bar .pinecone-header-menu-col {
    width: 0 !important;
    max-width: 0 !important;
    flex: 0 0 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    position: static !important;
  }

  .knsl-top-bar .pinecone-header-menu-col > .elementor-widget-wrap {
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
  }

  /* Right 50%: Cafe Amigos + hamburger */
  .knsl-top-bar .pinecone-header-right {
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
    padding: 0 14px 0 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  .knsl-top-bar .pinecone-header-right .elementor-widget-wrap {
    width: 100% !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
  }

  .knsl-top-bar .pinecone-header-right .elementor-widget-image {
    order: 1 !important;
    flex: 0 0 auto !important;
    width: auto !important;
    margin: 0 !important;
  }

  .knsl-top-bar .pinecone-header-right .elementor-widget-image img {
    width: 142px !important;
    max-width: 142px !important;
    height: auto !important;
    display: block !important;
  }

  .knsl-top-bar .pinecone-header-right .elementor-widget-kinsley-header-buttons {
    order: 2 !important;
    flex: 0 0 34px !important;
    width: 34px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .knsl-top-bar .pinecone-header-right .elementor-widget-kinsley-header-buttons .elementor-widget-container {
    width: 34px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .knsl-top-bar .pinecone-header-right .knsl-menu-btn {
    display: flex !important;
    width: 30px !important;
    height: 30px !important;
    padding: 7px 5px !important;
    margin: 0 !important;
    transform: none !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
  }

  .knsl-top-bar .pinecone-header-right .knsl-menu-btn span,
  .knsl-top-bar .pinecone-header-right .knsl-menu-btn span:before,
  .knsl-top-bar .pinecone-header-right .knsl-menu-btn span:after {
    width: 19px !important;
    height: 2px !important;
    background: #383A4E !important;
  }

  /* Menu panel: smooth open/close, independent of the hidden middle column. */
  .knsl-top-bar .pinecone-header-menu-col .elementor-widget-kinsley-header-menu {
    position: absolute !important;
    top: 80px !important;
    left: 50% !important;
    width: calc(100vw - 28px) !important;
    max-width: 430px !important;
    margin-left: 0 !important;
    padding: 0 0 24px !important;
    background: #fff !important;
    border-radius: 0 0 10px 10px !important;
    box-shadow: 0 12px 35px rgba(0,0,0,.10) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate(-50%, -18px) !important;
    transition: opacity .38s ease, transform .48s cubic-bezier(.22,.61,.36,1), visibility 0s linear .48s !important;
    z-index: 99999 !important;
    display: block !important;
    overflow: hidden !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .elementor-widget-kinsley-header-menu.knsl-active {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate(-50%, 0) !important;
    transition: opacity .38s ease, transform .48s cubic-bezier(.22,.61,.36,1), visibility 0s linear 0s !important;
    z-index: 99999 !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .elementor-widget-kinsley-header-menu .elementor-widget-container {
    width: 100% !important;
    padding: 8px 0 0 !important;
    display: block !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu {
    width: 100% !important;
    margin: 0 !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav,
  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li {
    width: 100% !important;
    height: 58px !important;
    min-height: 58px !important;
    padding: 0 28px !important;
    margin: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    border: 0 !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li > a {
    width: 100% !important;
    text-align: center !important;
    padding: 0 !important;
    color: #383A4E !important;
    font-size: 15px !important;
    letter-spacing: 1px !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.current-menu-item > a,
  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.current-menu-parent > a {
    color: #5b866f !important;
  }

  /* Do not show the desktop orange underline inside the mobile dropdown. */
  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li:after {
    display: none !important;
  }

  /* Gallery submenu */
  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.menu-item-has-children {
    position: relative !important;
    flex-wrap: wrap !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.menu-item-has-children > i {
    position: absolute !important;
    right: 26px !important;
    top: 0 !important;
    width: 42px !important;
    height: 58px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 3 !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.menu-item-has-children > i:before {
    content: '⌄' !important;
    font-style: normal !important;
    font-size: 18px !important;
    color: #383A4E !important;
    transition: transform .25s ease !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.menu-item-has-children > i.active:before {
    transform: rotate(180deg) !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.menu-item-has-children > ul.sub-menu {
    display: none;
    width: 100% !important;
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 0 8px !important;
    background: #f8fbfb !important;
    box-shadow: none !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.menu-item-has-children.active > ul.sub-menu {
    display: block !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.menu-item-has-children > ul.sub-menu > li {
    width: 100% !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .knsl-top-bar .pinecone-header-menu-col .knsl-menu nav > ul > li.menu-item-has-children > ul.sub-menu > li > a {
    text-align: center !important;
    font-size: 14px !important;
  }
}

/* Small phones: slightly reduce the Cafe logo so the hamburger never gets pushed out. */
@media (max-width: 420px) {
  .knsl-top-bar .pinecone-header-left .elementor-widget-image img {
    width: 120px !important;
    max-width: 120px !important;
  }
  .knsl-top-bar .pinecone-header-right .elementor-widget-image img {
    width: 128px !important;
    max-width: 128px !important;
  }
  .knsl-top-bar .pinecone-header-right .elementor-widget-wrap {
    gap: 7px !important;
  }
}

/* V4.15 - Deterministic mobile header.
 * The imported Elementor mobile header is hidden below 767px and replaced
 * with a simple three-part header. This prevents the original theme's mobile
 * column rules from stacking Cafe Amigos above the Pinecone logo. */
.pinecone-mobile-header,
.pinecone-mobile-menu { display:none; }

@media (max-width: 767px) {
  /* Do not let the original Elementor/mobile header participate on phones. */
  .knsl-top-bar { display:none !important; }

  .pinecone-mobile-header {
    position:relative;
    z-index:100000;
    width:100%;
    height:100px;
    min-height:100px;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto 42px;
    align-items:center;
    column-gap:8px;
    padding:0 14px 0 18px;
    background:#fff;
    border-radius:0 0 10px 10px;
    box-sizing:border-box;
    box-shadow:0 1px 0 rgba(0,0,0,.02);
  }

  .pinecone-mobile-brand,
  .pinecone-mobile-cafe {
    min-width:0;
    display:flex;
    align-items:center;
    height:100%;
  }
  .pinecone-mobile-brand { justify-content:flex-start; }
  .pinecone-mobile-cafe { justify-content:flex-end; }
  .pinecone-mobile-brand a,
  .pinecone-mobile-cafe a { display:flex; align-items:center; }
  .pinecone-mobile-brand img {
    display:block;
    width:138px;
    max-width:138px;
    height:auto;
  }
  .pinecone-mobile-cafe img {
    display:block;
    width:150px;
    max-width:150px;
    height:auto;
  }

  .pinecone-mobile-toggle {
    width:34px;
    height:34px;
    padding:5px;
    margin:0;
    border:0;
    background:transparent;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:4px;
    cursor:pointer;
    box-sizing:border-box;
  }
  .pinecone-mobile-toggle span {
    display:block;
    width:20px;
    height:2px;
    border-radius:2px;
    background:#383a4e;
    transition:transform .28s ease, opacity .2s ease;
  }
  .pinecone-mobile-header.is-open .pinecone-mobile-toggle span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  .pinecone-mobile-header.is-open .pinecone-mobile-toggle span:nth-child(2) { opacity:0; }
  .pinecone-mobile-header.is-open .pinecone-mobile-toggle span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

  .pinecone-mobile-menu {
    display:block !important;
    position:absolute;
    left:50%;
    top:100px;
    z-index:99999;
    width:calc(100% - 28px);
    max-width:430px;
    max-height:0;
    overflow:hidden;
    opacity:0;
    visibility:hidden;
    transform:translate(-50%, -10px);
    transform-origin:top center;
    background:#fff;
    border-radius:0 0 10px 10px;
    box-shadow:0 12px 35px rgba(0,0,0,.12);
    transition:max-height .48s cubic-bezier(.22,.61,.36,1), opacity .28s ease, transform .42s cubic-bezier(.22,.61,.36,1), visibility 0s linear .48s;
  }
  .pinecone-mobile-menu.is-open {
    max-height:620px;
    opacity:1;
    visibility:visible;
    transform:translate(-50%,0);
    transition:max-height .55s cubic-bezier(.22,.61,.36,1), opacity .32s ease, transform .48s cubic-bezier(.22,.61,.36,1), visibility 0s linear 0s;
  }
  .pinecone-mobile-menu nav { padding:8px 0 12px; }
  .pinecone-mobile-menu nav > a,
  .pinecone-mobile-subtoggle {
    width:100%;
    height:58px;
    min-height:58px;
    padding:0 28px;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    border:0;
    background:transparent;
    color:#383a4e;
    font:500 15px/1.2 Arial,sans-serif;
    letter-spacing:1px;
    cursor:pointer;
  }
  .pinecone-mobile-menu nav > a.is-active,
  .pinecone-mobile-menu-group.is-active > .pinecone-mobile-subtoggle { color:#5b866f; }
  .pinecone-mobile-subtoggle { position:relative; gap:8px; }
  .pinecone-mobile-chevron { font-size:18px; line-height:1; transition:transform .25s ease; }
  .pinecone-mobile-menu-group.submenu-open .pinecone-mobile-chevron { transform:rotate(180deg); }
  .pinecone-mobile-submenu {
    max-height:0;
    overflow:hidden;
    opacity:0;
    background:#f8fbfb;
    transition:max-height .35s ease, opacity .25s ease;
  }
  .pinecone-mobile-menu-group.submenu-open .pinecone-mobile-submenu {
    max-height:110px;
    opacity:1;
  }
  .pinecone-mobile-submenu a {
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    color:#383a4e;
    font:400 14px/1.2 Arial,sans-serif;
    letter-spacing:.8px;
  }
}

@media (max-width: 420px) {
  .pinecone-mobile-header {
    grid-template-columns:minmax(0,1fr) auto 36px;
    column-gap:4px;
    padding-left:14px;
    padding-right:8px;
  }
  .pinecone-mobile-brand img { width:122px; max-width:122px; }
  .pinecone-mobile-cafe img { width:130px; max-width:130px; }
  .pinecone-mobile-toggle { width:30px; height:30px; }
  .pinecone-mobile-toggle span { width:18px; }
}


/* V4.16 - Mobile inner-page banner spacing.
 * The imported theme uses 160px top padding on simple inner-page banners.
 * That is correct for the desktop composition, but on phones it leaves an
 * unnecessary large blank area below the mobile header. Home keeps its hero
 * unchanged; only non-home simple page banners are tightened. */
@media (max-width: 767px) {
  .corephp-page .knsl-banner-simple {
    padding-top: 60px !important;
    padding-bottom: 40px !important;
    min-height: 0 !important;
  }
  .corephp-page .knsl-banner-simple.knsl-transition-bottom {
    margin-bottom: 80px !important;
  }
}


/* V4.18 - Rooms page thumbnail frame. Keep the original Pinecone positioning
   model so desktop and mobile both render the room photos reliably. */
.corephp-page .knsl-masonry-grid .mphb-room-type .mphb-loop-room-thumbnail {
  position: relative !important;
  width: calc(100% + 40px) !important;
  height: 0 !important;
  padding-bottom: 72.8% !important;
  overflow: hidden !important;
  margin: -20px -20px 30px -20px !important;
}
.corephp-page .knsl-masonry-grid .mphb-room-type .mphb-loop-room-thumbnail a {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
}
.corephp-page .knsl-masonry-grid .mphb-room-type .mphb-loop-room-thumbnail img {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  visibility: visible !important;
  opacity: 1 !important;
}


/* V4.18.5 - Mobile HOME room carousel only. Existing V4.18 Rooms-grid rules remain untouched. */
@media (max-width: 767px) {
  .corephp-page .knsl-uni-slider .mphb_sc_room-wrapper.knsl-scroll-animation {
    opacity:1 !important; transform:none !important; visibility:visible !important;
  }
  .corephp-page .knsl-uni-slider .mphb-loop-room-thumbnail {
    position:relative !important; display:block !important; width:100% !important;
    height:auto !important; min-height:220px !important; padding:0 !important;
    margin:0 0 30px !important; overflow:hidden !important;
  }
  .corephp-page .knsl-uni-slider .mphb-loop-room-thumbnail a {
    display:block !important; position:relative !important; width:100% !important; height:100% !important;
  }
  .corephp-page .knsl-uni-slider .mphb-loop-room-thumbnail img {
    display:block !important; position:relative !important; inset:auto !important;
    width:100% !important; height:auto !important; min-height:220px !important;
    max-width:none !important; object-fit:cover !important; visibility:visible !important; opacity:1 !important;
  }
}

/* V4.19 - Mobile viewport/layout correction.
 * The imported Elementor/Pinecone styles contain desktop-oriented container
 * constraints. On narrow screens those constraints can leave the rendered
 * page narrower than the device viewport, which makes the page appear
 * zoomed-out and leaves a blank strip on the right. Keep the desktop CSS
 * untouched and normalize only the mobile layout.
 */
@media (max-width: 767px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  .corephp-page {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: clip !important;
  }

  .corephp-page > .elementor-section,
  .corephp-page > section,
  .corephp-page .elementor-section,
  .corephp-page .elementor-container,
  .corephp-page .elementor-column,
  .corephp-page .elementor-widget-wrap,
  .corephp-page .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .corephp-page .elementor-section-boxed > .elementor-container {
    width: 100% !important;
    max-width: 100% !important;
  }

  .corephp-page .knsl-banner,
  .corephp-page .knsl-banner .knsl-banner-content,
  .corephp-page .knsl-banner .knsl-cover-frame,
  .corephp-page .knsl-banner .knsl-overlay {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .corephp-page .knsl-banner .knsl-banner-content .container,
  .corephp-page .container {
    width: 100% !important;
    max-width: 100% !important;
  }

  .corephp-page img,
  .corephp-page video,
  .corephp-page iframe {
    max-width: 100%;
  }

  /* Keep only the single persistent mobile contact control. */
  .pinecone-floating-contact,
  .pinecone-v4185-mobile-float {
    display: none !important;
  }

  #pinecone-v4188-mobile-contact {
    right: 12px !important;
    bottom: 14px !important;
  }
}

