/* Global UI/UX polish — loaded on every page after the inline header styles. */
:root { --focus-ring: #e8bd55; --ease: cubic-bezier(.2,.7,.2,1); --smooth: cubic-bezier(.65,0,.35,1); }

html { scroll-padding-top: 6rem; -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: #d8d0c6; color: #1b1410; }
img { max-width: 100%; height: auto; }

/* Accessible focus */
:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; border-radius: 6px; }
input:focus-visible, textarea:focus-visible, select:focus-visible { outline: none; }

/* Skip link */
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 100; background: #e8bd55; color: #1b1410; padding: .75rem 1.25rem; border-radius: 999px; font-weight: 600; transition: top .2s var(--ease); }
.skip-link:focus { top: 1rem; }

/* Dynamic-island navbar: floating glass pill that contracts on scroll */
:root { --nav-h: 6rem; --island-w: 1120px; --island-w-small: 900px; }
header > nav.site-nav { position: fixed; top: .75rem; left: 50%; right: auto; width: min(var(--island-w), calc(100% - 1.5rem)); transform: translateX(-50%); z-index: 50; border-radius: 999px; background: rgba(22,17,13,.62); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%); border: 1px solid rgba(232,189,85,.28); box-shadow: 0 10px 40px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08); will-change: width, top; transition: width .7s var(--smooth), top .7s var(--smooth), background-color .5s var(--smooth), box-shadow .5s var(--smooth); }
header > nav.site-nav.is-scrolled { width: min(var(--island-w-small), calc(100% - 1.5rem)); top: .5rem; background: rgba(22,17,13,.82); box-shadow: 0 14px 44px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.08); }
header:has(> nav.site-nav) { padding-top: var(--nav-h); }
header.site-header-home:has(> nav.site-nav) { padding-top: 0; }
header > nav.site-nav > div:first-child { height: 4.5rem; max-width: none; padding-left: 1.5rem; padding-right: .75rem; transition: height .7s var(--smooth); }
@media (min-width: 1024px) { header > nav.site-nav > div:first-child { padding-right: .6rem; } }
header > nav.site-nav.is-scrolled > div:first-child { height: 3.9rem; }
header > nav.site-nav img { height: 3.6rem; width: auto; max-width: 220px; transition: height .7s var(--smooth); }
header > nav.site-nav.is-scrolled img { height: 3rem; }
header > nav.site-nav .nav-link { transition: color .3s var(--ease), letter-spacing .7s var(--smooth); }
header > nav.site-nav .lg\:flex.gap-9 { transition: gap .7s var(--smooth); }
header > nav.site-nav.is-scrolled .nav-link { letter-spacing: .12em; }
header > nav.site-nav.is-scrolled .lg\:flex.gap-9 { gap: 1.6rem; }

/* Links: small caps, wide tracking, gold underline */
header > nav.site-nav .nav-link { font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.82); padding-bottom: 4px; }
header > nav.site-nav .nav-link:hover, header > nav.site-nav .nav-link[aria-current="page"] { color: #e8bd55; }
header > nav.site-nav .nav-link::after { background-color: #e8bd55; height: 1px; }
header > nav.site-nav .lg\:flex.gap-9 { gap: 2.25rem; }

/* Book Now: slim outlined gold pill that fills on hover */
header > nav.site-nav a[href$="/contact"] { padding: .5rem 1.35rem; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; background: #e8bd55; color: #1b1410; border: 1px solid #e8bd55; box-shadow: none; }
header > nav.site-nav a[href$="/contact"]:hover { background: #f3d078; color: #1b1410; transform: none; box-shadow: 0 6px 18px rgba(232,189,85,.28); }

/* Hamburger menu on phones and tablets (< 1024px) */
#menuBtn { width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border-radius: .75rem; }
#menuBtn:hover { background: rgba(255,255,255,.1); }
@media (max-width: 1023px) {
  #menuBtn { display: inline-flex; }
  #mobileMenu { background: transparent !important; border-top: 1px solid rgba(255,255,255,.1) !important; padding-left: 1.5rem !important; padding-right: 1.5rem !important; border-radius: 0 0 1.75rem 1.75rem; max-height: calc(100vh - 6rem); overflow-y: auto; }
  #mobileMenu a { padding: .65rem 0; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,.08); }
  #mobileMenu a:last-child { border-bottom: 0; text-align: center; }
}

/* Buttons / links: consistent tactile feedback */
a[class*="rounded-full"], button[class*="rounded-full"] { transition: transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease); }
a[class*="rounded-full"]:active, button[class*="rounded-full"]:active { transform: translateY(0) scale(.98); }

/* Cards */
.reserve-card, .blog-card, .team-card, .review-card { transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
@media (hover: hover) { .reserve-card:hover, .blog-card:hover { transform: translateY(-4px); box-shadow: 0 18px 45px rgba(42,31,23,.16); } }

/* Forms */
input, textarea, select { font-size: 16px; } /* prevents iOS zoom on focus */
input, textarea, select { transition: border-color .2s var(--ease), box-shadow .2s var(--ease); }
input:focus, textarea:focus, select:focus { border-color: #77614d; }

/* Photo texture: fine film grain + soft vignette */
.tx-overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: inherit;
  background:
    radial-gradient(120% 120% at 50% 45%, transparent 55%, rgba(27,20,16,.28) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 100% 100%, 240px 240px;
  mix-blend-mode: overlay; opacity: .7; }

/* Reveal on scroll */
.reveal-ready [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal-ready [data-reveal].is-in { opacity: 1; transform: none; }

/* Footer polish */
.site-footer .footer-link { transition: color .2s var(--ease), transform .2s var(--ease); display: inline-block; }
.site-footer .footer-link:hover { transform: translateX(3px); }
.site-footer .social-link { transition: all .25s var(--ease); }
.site-footer .social-link:hover { background: #e8bd55; color: #1b1410; border-color: #e8bd55; transform: translateY(-2px); }

/* Back to top + mobile call/WhatsApp bar */
#backToTop { position: fixed; right: 1rem; bottom: 5.25rem; z-index: 40; width: 2.75rem; height: 2.75rem; border-radius: 999px; background: #4a3a2f; color: #fff; border: 1px solid rgba(255,255,255,.2); box-shadow: 0 10px 25px rgba(0,0,0,.25); opacity: 0; visibility: hidden; transform: translateY(10px); transition: all .3s var(--ease); }
#backToTop.is-visible { opacity: 1; visibility: visible; transform: none; }
#backToTop:hover { background: #5e483a; }
.mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: .6rem .75rem calc(.6rem + env(safe-area-inset-bottom)); background: rgba(27,20,16,.96); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-top: 1px solid rgba(255,255,255,.1); }
.mobile-cta a { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .75rem 1rem; border-radius: 999px; font-weight: 600; font-size: .9rem; }
.mobile-cta .cta-call { background: rgba(255,255,255,.1); color: #fff; }
.mobile-cta .cta-book { background: #dfc590; color: #1b1410; }
@media (min-width: 1024px) { .mobile-cta { display: none; } #backToTop { bottom: 1.5rem; right: 1.5rem; } }

/* Floating sticky quick-contact (WhatsApp + Call) — every page */
.ns-float { position: fixed; right: 1rem; bottom: 4.6rem; z-index: 48; display: flex; flex-direction: column; gap: .6rem; }
.ns-float__btn { position: relative; width: 3rem; height: 3rem; border-radius: 999px; display: grid; place-items: center; color: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.28); transition: transform .2s var(--ease), box-shadow .2s var(--ease); }
.ns-float__btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0,0,0,.34); }
.ns-float__btn i { font-size: 1.3rem; line-height: 1; }
.ns-float__btn--wa { background: #25D366; }
.ns-float__btn--call { background: #34241b; }
.ns-float__btn--wa::after { content: ""; position: absolute; width: 3rem; height: 3rem; border-radius: 999px; box-shadow: 0 0 0 0 rgba(37,211,102,.5); animation: ns-float-pulse 2.4s ease-out infinite; }
@keyframes ns-float-pulse { 0% { box-shadow: 0 0 0 0 rgba(37,211,102,.45); } 70% { box-shadow: 0 0 0 14px rgba(37,211,102,0); } 100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); } }
@media (prefers-reduced-motion: reduce) { .ns-float__btn--wa::after { animation: none; } }
@media (min-width: 1024px) { .ns-float { right: 1.5rem; bottom: 5.5rem; } .ns-float__btn { width: 3.2rem; height: 3.2rem; } }
.ns-float__btn--mail { background: #bc8c3f; }


@media (max-width: 640px) { h1 { overflow-wrap: anywhere; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Photo grain texture (applied by JS to frames whose image fills them; see about.php) */
.has-tex { position: relative; }
.has-tex::after {
  content: ''; position: absolute; inset: 0; z-index: 3; pointer-events: none; border-radius: inherit;
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .22  0 0 0 0 .18  0 0 0 0 .1  0 0 0 1.4 -.15'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),
    radial-gradient(120% 90% at 50% 40%, transparent 55%, rgba(32,24,18,.28) 100%);
  background-size: 220px 220px, 100% 100%;
  mix-blend-mode: multiply; opacity: .75;
}

/* Brush texture: ribbon-style fine lines on every textured photo */
.has-tex::before { content: ''; position: absolute; inset: 0; z-index: 3; pointer-events: none; border-radius: inherit;
  background: repeating-linear-gradient(0deg, rgba(255,255,255,.09) 0 1px, transparent 1px 5px); mix-blend-mode: soft-light; }
/* Organic brush-edge frames on the Mission & Vision photos: clean photo, no grain */
#mission-vision .mv-img { border-radius: 0; box-shadow: none; }
#mission-vision .mv-img::before, #mission-vision .mv-img::after { display: none; }
#mission-vision .mv-img--m { clip-path: polygon(0.0% 6.6%,2.9% 3.3%,5.7% 3.1%,8.6% 2.7%,11.4% 0.7%,14.3% 1.6%,17.1% 1.3%,20.0% 3.6%,22.9% 1.9%,25.7% 3.3%,28.6% 3.7%,31.4% 3.4%,34.3% 3.5%,37.1% 4.5%,40.0% 3.3%,42.9% 3.8%,45.7% 3.5%,48.6% 3.2%,51.4% 5.3%,54.3% 4.4%,57.1% 5.4%,60.0% 4.9%,62.9% 6.9%,65.7% 4.5%,68.6% 6.6%,71.4% 4.4%,74.3% 3.7%,77.1% 5.5%,80.0% 4.0%,82.9% 2.9%,85.7% 3.2%,88.6% 3.2%,91.4% 5.5%,94.3% 6.2%,97.1% 8.7%,87.7% 0.0%,89.9% 2.9%,91.1% 5.7%,92.5% 8.6%,93.9% 11.4%,93.3% 14.3%,94.0% 17.1%,94.6% 20.0%,95.5% 22.9%,95.6% 25.7%,98.1% 28.6%,96.4% 31.4%,97.7% 34.3%,97.6% 37.1%,99.4% 40.0%,99.2% 42.9%,98.2% 45.7%,98.3% 48.6%,99.1% 51.4%,99.2% 54.3%,99.0% 57.1%,98.9% 60.0%,99.6% 62.9%,99.8% 65.7%,99.5% 68.6%,99.9% 71.4%,98.9% 74.3%,98.5% 77.1%,98.2% 80.0%,97.4% 82.9%,95.5% 85.7%,94.8% 88.6%,92.4% 91.4%,91.2% 94.3%,88.5% 97.1%,100.0% 85.6%,97.1% 87.6%,94.3% 90.1%,91.4% 91.4%,88.6% 93.4%,85.7% 93.7%,82.9% 94.2%,80.0% 95.3%,77.1% 96.2%,74.3% 95.3%,71.4% 95.8%,68.6% 94.7%,65.7% 96.0%,62.9% 96.3%,60.0% 95.9%,57.1% 95.9%,54.3% 96.8%,51.4% 97.5%,48.6% 96.7%,45.7% 98.1%,42.9% 98.3%,40.0% 99.2%,37.1% 98.8%,34.3% 97.1%,31.4% 99.0%,28.6% 98.2%,25.7% 98.0%,22.9% 96.4%,20.0% 97.3%,17.1% 96.7%,14.3% 95.6%,11.4% 96.1%,8.6% 95.1%,5.7% 94.9%,2.9% 93.0%,9.3% 100.0%,5.6% 97.1%,3.7% 94.3%,3.1% 91.4%,1.8% 88.6%,1.3% 85.7%,2.1% 82.9%,2.7% 80.0%,2.8% 77.1%,4.1% 74.3%,4.0% 71.4%,5.4% 68.6%,4.8% 65.7%,4.8% 62.9%,5.5% 60.0%,6.0% 57.1%,4.9% 54.3%,5.4% 51.4%,6.6% 48.6%,5.4% 45.7%,5.8% 42.9%,6.3% 40.0%,6.6% 37.1%,6.0% 34.3%,6.3% 31.4%,6.2% 28.6%,6.1% 25.7%,5.3% 22.9%,5.2% 20.0%,3.7% 17.1%,3.4% 14.3%,1.6% 11.4%,2.2% 8.6%,3.3% 5.7%,4.2% 2.9%); }
#mission-vision .mv-img--v { clip-path: polygon(0.0% 7.8%,2.9% 5.3%,5.7% 3.7%,8.6% 2.0%,11.4% 0.6%,14.3% 0.4%,17.1% 0.5%,20.0% 0.9%,22.9% 1.7%,25.7% 2.8%,28.6% 3.0%,31.4% 1.8%,34.3% 3.6%,37.1% 1.7%,40.0% 3.3%,42.9% 2.5%,45.7% 1.8%,48.6% 2.2%,51.4% 3.1%,54.3% 3.3%,57.1% 3.2%,60.0% 3.1%,62.9% 4.2%,65.7% 3.7%,68.6% 4.5%,71.4% 3.3%,74.3% 3.7%,77.1% 3.1%,80.0% 3.1%,82.9% 2.3%,85.7% 2.3%,88.6% 2.5%,91.4% 4.0%,94.3% 5.2%,97.1% 7.8%,88.9% 0.0%,90.5% 2.9%,92.0% 5.7%,91.4% 8.6%,91.7% 11.4%,92.4% 14.3%,93.2% 17.1%,92.8% 20.0%,92.6% 22.9%,94.6% 25.7%,94.1% 28.6%,94.3% 31.4%,96.0% 34.3%,96.9% 37.1%,96.0% 40.0%,96.8% 42.9%,97.0% 45.7%,97.6% 48.6%,98.5% 51.4%,98.7% 54.3%,97.1% 57.1%,98.4% 60.0%,98.6% 62.9%,99.6% 65.7%,99.5% 68.6%,100.0% 71.4%,100.0% 74.3%,100.0% 77.1%,100.0% 80.0%,98.9% 82.9%,98.7% 85.7%,97.3% 88.6%,96.0% 91.4%,93.3% 94.3%,91.2% 97.1%,100.0% 87.5%,97.1% 88.6%,94.3% 90.7%,91.4% 92.6%,88.6% 93.5%,85.7% 94.1%,82.9% 94.2%,80.0% 94.6%,77.1% 94.8%,74.3% 94.7%,71.4% 95.5%,68.6% 94.6%,65.7% 95.4%,62.9% 96.0%,60.0% 95.4%,57.1% 95.8%,54.3% 95.1%,51.4% 95.7%,48.6% 95.0%,45.7% 96.3%,42.9% 95.8%,40.0% 96.3%,37.1% 96.2%,34.3% 96.9%,31.4% 97.0%,28.6% 97.3%,25.7% 97.1%,22.9% 96.8%,20.0% 97.2%,17.1% 96.5%,14.3% 95.8%,11.4% 94.8%,8.6% 93.9%,5.7% 92.9%,2.9% 91.6%,9.8% 100.0%,6.5% 97.1%,3.9% 94.3%,2.7% 91.4%,0.2% 88.6%,0.9% 85.7%,0.1% 82.9%,0.0% 80.0%,1.0% 77.1%,2.3% 74.3%,0.5% 71.4%,1.4% 68.6%,2.9% 65.7%,3.2% 62.9%,4.2% 60.0%,3.5% 57.1%,4.4% 54.3%,4.6% 51.4%,5.2% 48.6%,5.2% 45.7%,5.5% 42.9%,5.5% 40.0%,6.3% 37.1%,7.1% 34.3%,7.4% 31.4%,7.9% 28.6%,7.3% 25.7%,7.6% 22.9%,7.8% 20.0%,6.2% 17.1%,5.6% 14.3%,6.1% 11.4%,6.5% 8.6%,6.5% 5.7%,7.7% 2.9%); }

/* Frosted-glass chip: small uppercase label that sits on photos */
.glass-chip { display: inline-flex; align-items: center; gap: .6rem; padding: .6rem 1.35rem; border-radius: 999px; color: #fff; font-size: .72rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; line-height: 1;
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.34); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%);
  box-shadow: 0 8px 24px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.25); text-shadow: 0 1px 2px rgba(0,0,0,.25); }
.glass-chip i { font-size: .95em; opacity: .95; }
.hero-chip { position: absolute; left: 1.25rem; bottom: 1.75rem; z-index: 25; }
@media (min-width: 1024px) { .hero-chip { left: 2rem; bottom: 2.5rem; } .glass-chip { font-size: .8rem; padding: .7rem 1.5rem; } }

/* Pages with no banner image: the floating nav sits on the page background */
header.site-header-plain { background: transparent !important; }
header.site-header-plain:has(> nav.site-nav) { padding-top: 5.75rem; }

/* Nav over light backgrounds: more solid so it never turns muddy grey; logo stays crisp */
header.site-header-plain > nav.site-nav,
header > nav.site-nav.is-scrolled { background: rgba(36,26,19,.93); }
header.site-header-plain > nav.site-nav { border-color: rgba(232,189,85,.45); box-shadow: 0 14px 36px -12px rgba(36,26,19,.55), inset 0 1px 0 rgba(255,255,255,.08); }

/* Smoothness: image fade-in, eased reveal, softer anchor jumps */
.img-fade { opacity: 0; transition: opacity .7s cubic-bezier(.2,.7,.2,1); }
.img-fade.img-in { opacity: 1; }
.reveal-ready [data-reveal] { transition: opacity .9s cubic-bezier(.2,.7,.2,1) var(--rv, 0ms), transform .9s cubic-bezier(.2,.7,.2,1) var(--rv, 0ms); }
body { animation: page-in .6s cubic-bezier(.2,.7,.2,1) both; }
@keyframes page-in { from { opacity: 0; } to { opacity: 1; } }
a, button, summary { -webkit-tap-highlight-color: transparent; }
details > summary { transition: background-color .25s ease; }
details[open] > div, details[open] > ul { animation: details-in .45s cubic-bezier(.2,.7,.2,1); }
@keyframes details-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { body { animation: none; } .img-fade { opacity: 1; transition: none; } }

/* ===== Mobile polish ===== */
@media (max-width: 639px) {
  #backToTop { width: 2.4rem; height: 2.4rem; right: 1.2rem; bottom: 1.1rem; opacity: 0; font-size: .8rem; }
  #backToTop.is-visible { opacity: .88; }
  .site-footer .border-t.pt-5 > .flex.flex-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1rem; text-align: center; }
  .site-footer .border-t.pt-5 > .flex.flex-wrap > span { display: none; }
  .site-footer .border-t.pt-5 > p { line-height: 1.8; }
  .site-footer .border-t.pt-5 > p > span.mx-2 { display: block; height: .35rem; font-size: 0; overflow: hidden; }
}

/* ===== Mobile-first spacing: tighter sections, compact cards ===== */
@media (max-width: 767px) {
  html body .rp-sec, html body .tr-sec, html body .rs-section { padding-top: 2.25rem; padding-bottom: 2.25rem; }
  html body section[class*="py-1"]:not(footer *), html body section[class*="py-2"]:not(footer *) { padding-top: 2.25rem !important; padding-bottom: 2.25rem !important; }
}

/* ===== Section heading → content gaps: compact and consistent ===== */
html body section .text-center.mb-10, html body section .text-center.mb-12, html body section .text-center.mb-14 { margin-bottom: 1.5rem; }
html body section .text-center.mx-auto > p.mt-4 { margin-top: .625rem; }
html body #stays .st-filter-row { margin-bottom: 14px; }
html body #stays .st-count { margin-bottom: 14px; }
@media (max-width: 767px) {
  html body section .text-center.mb-10, html body section .text-center.mb-12, html body section .text-center.mb-14 { margin-bottom: 1.125rem; }
  html body #stays .st-filter-row { margin-bottom: 10px; }
  html body #stays .st-count { margin-bottom: 12px; }
}

/* Desktop: Tailwind-padded sections follow the same 40px rhythm as the rest of the site */
@media (min-width: 768px) {
  html body section[class*="py-"]:not(footer *):not(#_) { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
}

/* About page: photos stay clean (no grain / vignette / ribbon-line overlays) */
.about-main .tx-overlay, .about-main .has-tex::before, .about-main .has-tex::after, .about-main [class*="mv-img"]::before, .about-main [class*="mv-img"]::after { display: none !important; content: none !important; }

/* No grain / vignette / ribbon-line overlays on photos anywhere */
.tx-overlay, .has-tex::before, .has-tex::after { display: none !important; content: none !important; }
@media (max-width: 1023px) { .ns-float { right: 1rem; bottom: 4.6rem; } .ns-float__btn { width: 3rem; height: 3rem; } #backToTop { right: 1.2rem; bottom: 1.1rem; } }

/* Floating stack: WhatsApp / Call / Email / Back-to-top share one size, one right edge and one gap */
.ns-float { right: 1rem !important; bottom: 4.7rem !important; gap: .6rem !important; }
.ns-float__btn, #backToTop { width: 3rem !important; height: 3rem !important; }
#backToTop { right: 1rem !important; bottom: 1.1rem !important; font-size: .95rem !important; display: grid; place-items: center; padding: 0; }
@media (min-width: 1024px) {
  .ns-float { right: 1.5rem !important; bottom: 5.3rem !important; }
  .ns-float__btn, #backToTop { width: 3.2rem !important; height: 3.2rem !important; }
  #backToTop { right: 1.5rem !important; bottom: 1.5rem !important; }
}

/* arrows are inline SVG (the text arrow glyphs turn into emoji on iOS) */
.ns-arr { display: inline-block; width: 1em; height: 1em; vertical-align: -.14em; flex: none; }

/* Shared desktop navigation dropdowns and mobile destination accordions. */
.ns-nav-label { display:flex; align-items:center; gap:5px; }
.ns-mega-toggle { color:#e8bd55; background:none; border:0; padding:12px 4px; cursor:pointer; font-size:9px; }
.ns-mega-toggle[aria-expanded="true"] i { transform:rotate(180deg); }
.ns-mega-toggle:focus-visible,.ns-mega a:focus-visible,.ns-mobile-group a:focus-visible { outline:2px solid #e8bd55; outline-offset:4px; }
.ns-mobile-group summary { display:flex; justify-content:space-between; cursor:pointer; list-style:none; }
.ns-mobile-group summary span { color:#e8bd55; }
.ns-mobile-group[open] summary span { transform:rotate(45deg); }
.ns-mobile-group > div { display:grid; gap:15px; padding:18px 12px 5px; font-size:13px; color:#d5c7b5; }
#mobileMenu { max-height:calc(100dvh - 100px); overflow-y:auto; }
@media (min-width:1024px) and (max-width:1200px) { header > nav.site-nav .lg\:flex.gap-9 { gap:1rem; } header > nav.site-nav .nav-link { font-size:.65rem; letter-spacing:.1em; } }


/* Simple navbar dropdowns: a small list under the item, no intro text or photo card. */
.ns-nav-item { position: relative; }
.ns-mega[hidden] { display: none; }
.ns-mega { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); min-width: 15rem; max-width: 20rem; padding-top: .75rem; z-index: 60; text-align: left; }
.ns-mega ul { list-style: none; margin: 0; padding: .4rem; background: #30271f; border: 1px solid #67533b; border-radius: 14px; box-shadow: 0 18px 36px rgba(0,0,0,.4); max-height: calc(100dvh - 8rem); overflow-y: auto; }
header.site-header-unified > nav.site-nav .ns-mega a { display: block; padding: .6rem .8rem; border-radius: 8px; font-size: .85rem; line-height: 1.35; letter-spacing: 0; text-transform: none; white-space: normal; color: #faf5eb; flex-shrink: 1; }
header.site-header-unified > nav.site-nav .ns-mega a:hover { background: rgba(232,189,85,.14); color: #e8bd55; }
header.site-header-unified > nav.site-nav .ns-mega .ns-mega-all { color: #e8bd55; font-weight: 600; border-bottom: 1px solid rgba(255,255,255,.1); border-radius: 8px 8px 0 0; margin-bottom: .25rem; }

/* Navbar sizing between phone and desktop */
@media (min-width: 1024px) and (max-width: 1279px) {
  header > nav.site-nav .lg\:flex.gap-9 { gap: .9rem; }
  header > nav.site-nav .nav-link { font-size: .62rem; letter-spacing: .08em; }
  header > nav.site-nav img { height: 3rem; }
}
@media (max-width: 1023px) {
  #mobileMenu a, .ns-mobile-group summary { min-height: 2.75rem; display: flex; align-items: center; }
  .ns-mobile-group summary { justify-content: space-between; padding: .65rem 0; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,.08); }
  .ns-mobile-group > div { gap: 0; padding: .25rem 0 .5rem .9rem; }
  .ns-mobile-group > div a { font-size: .85rem; letter-spacing: 0; text-transform: none; border-bottom: 0; color: #d5c7b5; }
  #mobileMenu a[data-book] { justify-content: center; }
}
@media (max-width: 380px) { header > nav.site-nav img { height: 2.6rem; max-width: 150px; } }
@media (max-width: 1023px) {
  #mobileMenu .ns-mobile-group > div a { min-height: 2.5rem; padding: .45rem 0; font-size: .88rem; letter-spacing: 0; text-transform: none; color: #d5c7b5; border-bottom: 0; }
  #mobileMenu .ns-mobile-group > div a:first-child { color: #e8bd55; font-weight: 600; }
}

/* Mobile + tablet header: Book Now button beside a larger hamburger. */
.ns-mobile-actions { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
.ns-mobile-book { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: 0 1.1rem; border-radius: 999px; background: #e8bd55; color: #1b1410; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; border: 1px solid #e8bd55; }
.ns-mobile-book:hover { background: #f3d078; }
@media (max-width: 1023px) {
  #menuBtn { width: 3.25rem; height: 3.25rem; font-size: 1.75rem !important; border-radius: .9rem; }
}
@media (max-width: 380px) { .ns-mobile-book { padding: 0 .85rem; font-size: .7rem; } #menuBtn { width: 2.9rem; height: 2.9rem; } }

/* Selected menu state: current page in the bar, in the dropdown and in the mobile menu. */
header > nav.site-nav .ns-nav-item.is-current .nav-link { color: #e8bd55; }
header > nav.site-nav .ns-nav-item.is-current .nav-link::after { width: 100%; }
header.site-header-unified > nav.site-nav .ns-mega a[aria-current="page"] { background: rgba(232,189,85,.16); color: #e8bd55; font-weight: 600; box-shadow: inset 3px 0 0 #e8bd55; }
#mobileMenu a[aria-current="page"], #mobileMenu a.text-sand-200 { color: #e8bd55; font-weight: 600; box-shadow: inset 3px 0 0 #e8bd55; padding-left: .75rem; background: rgba(232,189,85,.08); }
#mobileMenu .ns-mobile-group.is-current > summary { color: #e8bd55; font-weight: 600; box-shadow: inset 3px 0 0 #e8bd55; padding-left: .75rem; background: rgba(232,189,85,.08); }
#mobileMenu .ns-mobile-group > div a[aria-current="page"] { color: #e8bd55; font-weight: 600; background: none; box-shadow: none; padding-left: 0; }
#mobileMenu .ns-mobile-group > div a[aria-current="page"]::before { content: "• "; }
