/*
Theme Name: WS Hotel Booking
Theme URI: https://grouperlogic.com
Author: Malik Safdar Abbas Rid
Author URI: https://grouperlogic.com
Description: A moody, editorial WordPress hotel booking theme with a complete on-site room booking flow (real availability checking, no double-bookings, admin management, email notifications), a Contact Us template with a leads dashboard, 12 color schemes plus a fully custom color builder — header/footer/body/section backgrounds, text, headings, links, buttons, font size — a 5-effect animated slider, a freeform hero content banner, curated stay listings, a categorized food menu module, a photo gallery module with lightbox, a tasting-rooms dining showcase, and a command-bar hero search. Support: safdar@grouperlogic.com.
Version: 3.21.1
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: ws-hotel-booking
*/

/* =========================================================
   0. TOKENS
   ========================================================= */
:root{
  --lh-bg: #14110d;
  --lh-bg-alt: #1c1811;
  --lh-bg-raise: #241f16;
  --lh-cream: #f5efe2;
  --lh-cream-dim: #d9d1bd;
  --lh-muted: #a49a83;
  --lh-gold: #c9a24d;
  --lh-gold-bright: #e2bd6c;
  --lh-gold-dim: #8a6f34;
  --lh-line: rgba(245,239,226,0.14);
  --lh-line-strong: rgba(245,239,226,0.26);

  /* Semantic roles — schemes can override these directly for finer control,
     but by default they simply derive from the palette above, so any
     existing scheme that only sets bg/gold values still looks consistent. */
  --lh-heading: var(--lh-cream);
  --lh-text: var(--lh-cream-dim);
  --lh-link: var(--lh-gold-bright);
  --lh-link-hover: var(--lh-gold);
  --lh-hover: var(--lh-gold-bright);
  --lh-btn-bg: var(--lh-gold);
  --lh-btn-text: #1a1508;
  --lh-btn-hover-bg: var(--lh-gold-bright);
  --lh-btn-outline-border: var(--lh-line-strong);
  --lh-btn-outline-hover: var(--lh-gold-bright);
  --lh-input-bg: var(--lh-bg);
  --lh-input-border: var(--lh-line-strong);
  --lh-input-text: var(--lh-cream);
  --lh-input-focus: var(--lh-gold-bright);

  --lh-header-bg: var(--lh-bg);
  --lh-footer-bg: var(--lh-bg);
  --lh-font-size-base: 16px;

  --lh-shadow: 0 30px 60px -20px rgba(0,0,0,0.55);
  --lh-radius-sm: 3px;
  --lh-radius: 6px;
  --lh-radius-lg: 14px;
  --lh-font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --lh-font-body: "Jost", -apple-system, "Segoe UI", sans-serif;
  --lh-container: 1240px;
  --lh-gutter: clamp(20px, 5vw, 64px);
  --lh-ease: cubic-bezier(.22,.61,.36,1);
}

/* =========================================================
   1. RESET
   ========================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}
body{ margin:0; background: var(--lh-bg); color: var(--lh-text); font-family: var(--lh-font-body); font-size: var(--lh-font-size-base); line-height: 1.6; -webkit-font-smoothing: antialiased; }
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family: inherit; cursor:pointer; }
input, select, button, textarea{ font-family: inherit; color: inherit; }
h1,h2,h3,h4,h5{ font-family: var(--lh-font-display); font-weight: 500; margin: 0; line-height: 1.08; letter-spacing: -0.01em; color: var(--lh-heading); }
p{ margin: 0; }
.screen-reader-text{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }
:focus-visible{ outline: 2px solid var(--lh-gold-bright); outline-offset: 3px; }

.lh-container{ max-width: var(--lh-container); margin: 0 auto; padding-left: var(--lh-gutter); padding-right: var(--lh-gutter); }
.lh-eyebrow{ font-family: var(--lh-font-body); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--lh-gold); font-weight: 500; }
.lh-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding: 14px 28px; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 500; border-radius: var(--lh-radius-sm); border: 1px solid transparent; transition: all .25s var(--lh-ease); white-space: nowrap; }
.lh-btn-solid{ background: var(--lh-btn-bg); color: var(--lh-btn-text); }
.lh-btn-solid:hover{ background: var(--lh-btn-hover-bg); transform: translateY(-1px); }
.lh-btn-outline{ border-color: var(--lh-btn-outline-border); color: var(--lh-heading); }
.lh-btn-outline:hover{ border-color: var(--lh-btn-outline-hover); color: var(--lh-btn-outline-hover); }
.lh-btn-ghost{ color: var(--lh-cream-dim); text-transform:none; letter-spacing:0; font-size:14px; padding: 10px 6px; }
.lh-btn-ghost:hover{ color: var(--lh-gold-bright); }

/* =========================================================
   2. HEADER
   ========================================================= */
/* =========================================================
   1b. TOP STRIP
   ========================================================= */
.lh-topstrip{ background: var(--lh-bg-alt); border-bottom: 1px solid var(--lh-line); position: relative; z-index: 61; }
.lh-topstrip-inner{ display:flex; align-items:center; justify-content:space-between; gap: 20px; padding: 9px var(--lh-gutter); }
.lh-topstrip-item{ flex: 1 1 0; display:flex; min-width:0; }
.lh-topstrip-email{ justify-content:flex-start; }
.lh-topstrip-phone{ justify-content:center; }
.lh-topstrip-mobile{ justify-content:flex-end; }
.lh-topstrip-item a{ display:flex; align-items:center; gap: 7px; font-size: 12px; letter-spacing: 0.02em; color: var(--lh-cream-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition: color .2s; }
.lh-topstrip-item a:hover{ color: var(--lh-hover); }
.lh-topstrip-item svg{ flex-shrink:0; opacity: .8; }

@media (max-width: 700px){
  .lh-topstrip-inner{ flex-wrap: wrap; justify-content:center; gap: 6px 20px; padding: 8px var(--lh-gutter); }
  .lh-topstrip-item{ flex: 0 0 auto; justify-content:center !important; }
  .lh-topstrip-item a span{ max-width: 160px; overflow:hidden; text-overflow:ellipsis; }
  body.lh-topstrip-hide-mobile .lh-topstrip{ display:none; }
}

.lh-header{ position: sticky; top:0; z-index: 60; background: linear-gradient(to bottom, color-mix(in srgb, var(--lh-header-bg) 92%, transparent), color-mix(in srgb, var(--lh-header-bg) 75%, transparent) 70%, transparent); backdrop-filter: blur(6px); border-bottom: 1px solid transparent; transition: background .3s var(--lh-ease), border-color .3s var(--lh-ease); }
.lh-header.is-scrolled{ background: color-mix(in srgb, var(--lh-header-bg) 96%, transparent); border-bottom-color: var(--lh-line); }
.lh-header-inner{ display:flex; align-items:center; justify-content:space-between; gap: 24px; padding: 22px var(--lh-gutter); max-width: var(--lh-container); margin:0 auto; }
.lh-logo{ font-family: var(--lh-font-display); font-size: 22px; letter-spacing: 0.02em; color: var(--lh-cream); }
.lh-logo img{ max-height: 40px; max-width: 100%; width:auto; height:auto; display:block; }
.lh-nav{ display:flex; align-items:center; }
.lh-nav-menu{ display:flex; align-items:center; gap: 40px; list-style:none; margin:0; padding:0; }
.lh-nav-menu li{ position:relative; }
.lh-nav-menu > li > a{ display:flex; align-items:center; gap:6px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lh-cream-dim); transition: color .2s; padding: 10px 0; }
.lh-nav-menu > li > a:hover{ color: var(--lh-hover); }
.lh-nav-menu li.current-menu-item > a, .lh-nav-menu li.current_page_item > a, .lh-nav-menu li.current-menu-ancestor > a{ color: var(--lh-hover); }
.lh-nav-menu li.menu-item-has-children > a::after{ content:""; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity:.65; transition: transform .2s var(--lh-ease); }
.lh-nav-menu li.menu-item-has-children:hover > a::after{ transform: rotate(225deg) translateY(1px); }

/* Dropdown submenus — hover or keyboard-focus reveal */
.lh-nav-menu .sub-menu{ list-style:none; margin:0; padding:10px; position:absolute; top:100%; left:0; min-width:220px; background: var(--lh-bg-alt); border:1px solid var(--lh-line); border-radius: var(--lh-radius); box-shadow: var(--lh-shadow); display:flex; flex-direction:column; gap:2px; opacity:0; visibility:hidden; transform: translateY(6px); transition: opacity .22s var(--lh-ease), transform .22s var(--lh-ease), visibility 0s linear .22s; z-index: 70; }
.lh-nav-menu li:hover > .sub-menu, .lh-nav-menu li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:none; transition: opacity .22s var(--lh-ease), transform .22s var(--lh-ease), visibility 0s linear 0s; }
.lh-nav-menu .sub-menu li{ width:100%; }
.lh-nav-menu .sub-menu a{ display:block; padding: 10px 12px; font-size: 12px; letter-spacing: 0.08em; text-transform: none; white-space:nowrap; border-radius: var(--lh-radius-sm); }
.lh-nav-menu .sub-menu a:hover{ background: var(--lh-bg-raise); color: var(--lh-hover); }
.lh-nav-menu .sub-menu .sub-menu{ top:-10px; left: calc(100% + 8px); }

.lh-header-actions{ display:flex; align-items:center; gap: 22px; }
.lh-header-actions .lh-login{ font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lh-cream-dim); }
.lh-header-actions .lh-login:hover{ color: var(--lh-gold-bright); }
.lh-menu-toggle{ display:none; background:none; border: 1px solid var(--lh-line-strong); border-radius: var(--lh-radius-sm); width: 42px; height: 42px; align-items:center; justify-content:center; color: var(--lh-cream); }

.lh-mobile-nav-backdrop{ position: fixed; inset:0; z-index: 88; background: rgba(8,6,4,0.65); opacity:0; visibility:hidden; pointer-events:none; transition: opacity .3s var(--lh-ease), visibility 0s linear .3s; }
.lh-mobile-nav-backdrop.is-open{ opacity:1; visibility:visible; pointer-events:auto; transition: opacity .3s var(--lh-ease), visibility 0s linear 0s; }

.lh-mobile-nav{ position: fixed; inset:0; z-index: 90; background: var(--lh-bg); display:flex; flex-direction:column; padding: 26px var(--lh-gutter); opacity:0; visibility:hidden; pointer-events:none; transform: translateY(-16px) scale(0.99); transition: opacity .38s var(--lh-ease), transform .38s var(--lh-ease), visibility 0s linear .38s; }
.lh-mobile-nav.is-open{ opacity:1; visibility:visible; pointer-events:auto; transform:none; transition: opacity .38s var(--lh-ease), transform .38s var(--lh-ease), visibility 0s linear 0s; }
.lh-mobile-nav-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 40px; }
.lh-mobile-nav ul{ display:flex; flex-direction:column; gap: 22px; list-style:none; margin:0; padding:0; }
.lh-mobile-nav a{ font-family: var(--lh-font-display); font-size: 30px; color: var(--lh-cream); }
.lh-mobile-nav .sub-menu{ gap: 14px; margin-top: 14px; padding-left: 20px; border-left: 1px solid var(--lh-line); }
.lh-mobile-nav .sub-menu a{ font-size: 19px; color: var(--lh-cream-dim); }
.lh-mobile-nav-actions{ margin-top: auto; display:flex; flex-direction:column; gap: 14px; padding-top: 30px; border-top: 1px solid var(--lh-line); }

/* Staggered link reveal — each item cascades in slightly after the last */
.lh-mobile-nav ul li{ opacity:0; transform: translateY(16px); transition: opacity .4s var(--lh-ease), transform .4s var(--lh-ease); transition-delay: 0s; }
.lh-mobile-nav.is-open ul li{ opacity:1; transform:none; }
.lh-mobile-nav.is-open ul li:nth-child(1){ transition-delay: .10s; }
.lh-mobile-nav.is-open ul li:nth-child(2){ transition-delay: .16s; }
.lh-mobile-nav.is-open ul li:nth-child(3){ transition-delay: .22s; }
.lh-mobile-nav.is-open ul li:nth-child(4){ transition-delay: .28s; }
.lh-mobile-nav.is-open ul li:nth-child(5){ transition-delay: .34s; }
.lh-mobile-nav.is-open ul li:nth-child(6){ transition-delay: .40s; }

@media (max-width: 900px){
  .lh-nav{ display:none; }
  .lh-header-actions .lh-login{ display:none; }
  .lh-menu-toggle{ display:flex; }
}

/* Header variants — set via body classes from Theme Options */
body.lh-no-sticky-header .lh-header{ position: relative; }
body.lh-sticky-smart .lh-header{ transition: transform .35s var(--lh-ease), background .3s var(--lh-ease), border-color .3s var(--lh-ease); }
body.lh-sticky-smart .lh-header.lh-header-hidden{ transform: translateY(-100%); }
body.lh-header-fullscreen .lh-header-inner{ max-width: none; }
body.lh-footer-fullscreen .lh-footer > .lh-container{ max-width: none; }
body.lh-logo-center .lh-header-inner{ flex-wrap: wrap; justify-content:center; text-align:center; row-gap: 14px; }
body.lh-logo-center .lh-logo{ width:100%; text-align:center; }
body.lh-logo-center .lh-nav{ order:3; width:100%; justify-content:center; }
body.lh-logo-center .lh-header-actions{ order:2; }

/* Mobile menu style variants — each gets a distinct entrance motion.
   Every rule below targets .is-open explicitly so specificity never
   fights the base open/closed state. */
body.lh-menu-style-slide .lh-mobile-nav{ left:auto; width: min(380px, 88vw); border-left: 1px solid var(--lh-line-strong); box-shadow: var(--lh-shadow); transform: translateX(100%); }
body.lh-menu-style-slide .lh-mobile-nav.is-open{ transform: translateX(0); }

body.lh-menu-style-drawer .lh-mobile-nav{ top:auto; height: auto; max-height: 82vh; border-radius: 20px 20px 0 0; border-top: 1px solid var(--lh-line-strong); box-shadow: var(--lh-shadow); overflow-y:auto; transform: translateY(100%); }
body.lh-menu-style-drawer .lh-mobile-nav.is-open{ transform: translateY(0); }

/* Menu Animation toggle (Theme Options → Header & Footer) */
body.lh-menu-no-animation .lh-mobile-nav,
body.lh-menu-no-animation .lh-mobile-nav-backdrop,
body.lh-menu-no-animation .lh-mobile-nav ul li{ transition-duration: 0.001ms !important; transition-delay: 0s !important; }

/* =========================================================
   3. HERO
   ========================================================= */
.lh-hero{ position: relative; min-height: 92vh; display:flex; align-items:center; margin-top: -86px; padding-top: 86px; }
.lh-hero-media{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.lh-hero-media img{ width:100%; height:100%; object-fit:cover; }
.lh-hero-media::after{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(15,12,8,0.55) 0%, rgba(15,12,8,0.35) 40%, rgba(15,12,8,0.85) 100%); }
.lh-hero-inner{ position:relative; z-index:2; width:100%; padding: 120px var(--lh-gutter) 0; max-width: var(--lh-container); margin: 0 auto; }
.lh-hero-eyebrow{ display:flex; gap: 28px; margin-bottom: 26px; }
.lh-hero-eyebrow span{ font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--lh-cream-dim); padding-bottom: 8px; border-bottom: 2px solid transparent; }
.lh-hero-eyebrow span.is-active{ color: var(--lh-gold-bright); border-color: var(--lh-gold); }
.lh-hero-title{ font-size: clamp(40px, 7vw, 84px); color: var(--lh-cream); max-width: 15ch; font-weight: 400; }
.lh-hero-title em{ font-style: italic; color: var(--lh-gold-bright); }
.lh-hero-sub{ margin-top: 22px; max-width: 46ch; font-size: 17px; color: var(--lh-cream-dim); }

/* Command bar search — a slim, icon-led strip rather than a tall padded card */
.lh-search{ position: relative; z-index: 3; margin-top: 40px; background: rgba(28,24,17,0.86); border: 1px solid var(--lh-line-strong); backdrop-filter: blur(10px); border-radius: 999px; box-shadow: var(--lh-shadow); padding: 6px; display:flex; flex-wrap:wrap; align-items:stretch; transition: box-shadow .3s var(--lh-ease), border-color .3s var(--lh-ease); }
.lh-search:hover, .lh-search:focus-within{ border-color: var(--lh-gold-dim); box-shadow: var(--lh-shadow), 0 0 0 1px rgba(201,162,77,0.25); }
.lh-search-field{ flex: 1 1 150px; display:flex; flex-direction:row; align-items:center; gap: 12px; padding: 11px 20px; min-width: 130px; }
.lh-search-field + .lh-search-field{ border-left: 1px solid var(--lh-line); }
.lh-search-field-icon{ flex-shrink:0; width: 17px; height: 17px; color: var(--lh-gold); opacity: .85; }
.lh-search-field-body{ display:flex; flex-direction:column; gap: 2px; flex:1; min-width:0; }
.lh-search-field label{ font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--lh-gold); }
.lh-search-field input, .lh-search-field select{ background:none; border:none; color: var(--lh-input-text); font-size: 14px; padding: 1px 0; width:100%; }
.lh-search-field input::placeholder{ color: var(--lh-muted); }
.lh-search-field input:focus, .lh-search-field select:focus{ outline:none; }
.lh-search-field input:focus-visible, .lh-search-field select:focus-visible{ outline: 2px solid var(--lh-input-focus); outline-offset: 3px; border-radius: 2px; }
.lh-search-submit{ flex: 0 0 auto; display:flex; align-items:center; padding: 6px; }
.lh-search-submit button{ height:100%; width: 100%; min-width: 136px; background: var(--lh-btn-bg); color: var(--lh-btn-text); border:none; border-radius: 999px; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600; padding: 0 26px; transition: background .2s, transform .2s; }
.lh-search-submit button:hover{ background: var(--lh-btn-hover-bg); transform: translateY(-1px); }

/* Date range picker */
.lh-datepicker-field{ position: relative; }
.lh-datepicker-trigger{ background:none; border:none; color: var(--lh-input-text); font-size: 14px; padding: 1px 0; width:100%; text-align:left; cursor:pointer; font-family: inherit; }
.lh-datepicker-trigger span{ color: inherit; }
.lh-datepicker-field.is-empty .lh-datepicker-trigger span{ color: var(--lh-muted); }
.lh-datepicker-trigger:focus-visible{ outline: 2px solid var(--lh-input-focus); outline-offset: 3px; border-radius: 2px; }

.lh-datepicker-panel{ position:absolute; top: calc(100% + 16px); left:0; z-index: 999; width: 320px; max-width: calc(100vw - 40px); background: var(--lh-bg-alt); border: 1px solid var(--lh-line-strong); border-radius: var(--lh-radius); box-shadow: var(--lh-shadow); padding: 20px; }
.lh-datepicker-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 16px; }
.lh-datepicker-month{ font-family: var(--lh-font-display); font-size: 16px; color: var(--lh-heading); }
.lh-datepicker-nav{ background:none; border: 1px solid var(--lh-line-strong); border-radius: var(--lh-radius-sm); width: 30px; height:30px; display:flex; align-items:center; justify-content:center; color: var(--lh-cream); cursor:pointer; transition: border-color .2s, color .2s; }
.lh-datepicker-nav:hover{ border-color: var(--lh-hover); color: var(--lh-hover); }
.lh-datepicker-weekdays{ display:grid; grid-template-columns: repeat(7, 1fr); text-align:center; font-size: 10px; letter-spacing: 0.08em; text-transform:uppercase; color: var(--lh-muted); margin-bottom: 6px; }
.lh-datepicker-grid{ display:grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.lh-datepicker-day{ aspect-ratio: 1/1; display:flex; align-items:center; justify-content:center; font-size: 13px; color: var(--lh-cream-dim); background:none; border:none; border-radius: var(--lh-radius-sm); cursor:pointer; transition: background .15s, color .15s; }
.lh-datepicker-day:hover:not(:disabled){ background: var(--lh-bg-raise); color: var(--lh-cream); }
.lh-datepicker-day:disabled{ color: var(--lh-line-strong); cursor:default; opacity:.4; }
.lh-datepicker-day.is-empty{ visibility:hidden; }
.lh-datepicker-day.is-today{ font-weight:700; }
.lh-datepicker-day.is-selected{ background: var(--lh-btn-bg); color: var(--lh-btn-text); }
.lh-datepicker-day.is-in-range{ background: rgba(245,239,226,0.08); color: var(--lh-cream); border-radius:0; }
.lh-datepicker-footer{ display:flex; align-items:center; justify-content:space-between; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--lh-line); }
.lh-datepicker-hint{ font-size: 12px; color: var(--lh-muted); }
.lh-datepicker-footer-actions{ display:flex; gap: 8px; }
.lh-datepicker-footer-actions .lh-btn{ padding: 10px 16px; font-size: 11px; }

@media (max-width: 480px){
  .lh-datepicker-panel{ width: min(320px, 90vw); left: 50%; transform: translateX(-50%); }
}

@media (max-width: 780px){
  .lh-search{ border-radius: var(--lh-radius-lg); flex-direction: column; }
  .lh-search-field{ padding: 13px 20px; border-bottom: 1px solid var(--lh-line); }
  .lh-search-field + .lh-search-field{ border-left:none; }
  .lh-search-submit{ padding: 10px 6px 6px; }
  .lh-search-submit button{ min-width: 0; padding: 16px; }
}

.lh-destinations{ margin-top: 26px; display:flex; flex-wrap:wrap; gap: 12px 28px; align-items:center; }
.lh-destinations span.lh-dest-label{ font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lh-muted); }
.lh-destinations a{ font-size: 13px; color: var(--lh-cream-dim); border-bottom: 1px solid transparent; padding-bottom: 2px; transition: color .2s, border-color .2s; }
.lh-destinations a:hover{ color: var(--lh-hover); border-color: var(--lh-hover); }

/* =========================================================
   4. SECTION HEADS
   ========================================================= */
.lh-section{ padding: 108px 0; }
.lh-section-alt{ background: var(--lh-bg-alt); }
.lh-section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap: 30px; margin-bottom: 56px; flex-wrap: wrap; }
.lh-section-head h2{ font-size: clamp(30px, 4vw, 46px); color: var(--lh-cream); margin-top: 10px; max-width: 20ch; }
.lh-section-head p{ color: var(--lh-cream-dim); margin-top: 12px; max-width: 52ch; font-size: 15px; }

/* =========================================================
   5. STAY CARDS
   ========================================================= */
.lh-stay-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.lh-stay-card{ display:block; position:relative; transition: transform .35s var(--lh-ease); }
.lh-stay-card:hover{ transform: translateY(-6px); }
.lh-stay-media{ position:relative; border-radius: var(--lh-radius); overflow:hidden; aspect-ratio: 4/5; background: var(--lh-bg-raise); }
.lh-stay-media img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--lh-ease); }
.lh-stay-card:hover .lh-stay-media img{ transform: scale(1.05); }
.lh-stay-rating{ position:absolute; top:16px; left:16px; background: rgba(20,17,13,0.78); backdrop-filter: blur(4px); border: 1px solid var(--lh-line-strong); color: var(--lh-cream); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; padding: 7px 12px; border-radius: 999px; display:flex; align-items:center; gap:6px; }
.lh-stay-rating svg{ width:11px; height:11px; fill: var(--lh-gold-bright); }
.lh-stay-body{ padding-top: 18px; display:flex; align-items:baseline; justify-content:space-between; gap: 14px; }
.lh-stay-body h3{ font-size: 21px; color: var(--lh-cream); }
.lh-stay-location{ font-size: 13px; color: var(--lh-muted); margin-top: 6px; }
.lh-stay-price{ font-size: 14px; color: var(--lh-gold-bright); white-space: nowrap; }
.lh-stay-price span{ color: var(--lh-muted); font-size: 12px; }

@media (max-width: 980px){ .lh-stay-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px){ .lh-stay-grid{ grid-template-columns: 1fr; } }

/* =========================================================
   6. DINING / TASTING ROOMS
   ========================================================= */
.lh-dining-block{ display:grid; grid-template-columns: 1.35fr 0.85fr; gap: 26px; margin-bottom: 26px; }
.lh-dining-block:last-child{ margin-bottom:0; }
.lh-dining-block.is-reverse{ direction: rtl; }
.lh-dining-block.is-reverse > *{ direction: ltr; }
.lh-dining-feature{ position:relative; border-radius: var(--lh-radius); overflow:hidden; min-height: 480px; background: var(--lh-bg-raise); }
.lh-dining-feature img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition: transform .6s var(--lh-ease); }
.lh-dining-feature:hover img{ transform: scale(1.05); }
.lh-dining-feature::before{ content:""; position:absolute; inset:0; background: linear-gradient(0deg, rgba(10,8,5,0.9) 0%, rgba(10,8,5,0.15) 55%); }
.lh-dining-feature-copy{ position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding: 40px; }
.lh-dining-feature-copy h3{ font-size: 30px; color: var(--lh-cream); }
.lh-dining-feature-copy p{ color: var(--lh-cream-dim); margin-top: 10px; max-width: 40ch; font-size: 14px; }
.lh-dining-feature-copy .lh-btn{ margin-top: 22px; align-self: flex-start; }
.lh-dining-side{ display:flex; flex-direction:column; gap: 26px; }
.lh-dining-side-media{ position:relative; border-radius: var(--lh-radius); overflow:hidden; flex: 1; min-height: 120px; background: var(--lh-bg-raise); }
.lh-dining-side-media img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition: transform .6s var(--lh-ease); }
.lh-dining-side-media:hover img{ transform: scale(1.05); }
.lh-dining-side-cta{ border-radius: var(--lh-radius); border: 1px solid var(--lh-line-strong); flex:1; min-height:120px; display:flex; align-items:center; justify-content:center; }

@media (max-width: 900px){
  .lh-dining-block, .lh-dining-block.is-reverse{ grid-template-columns: 1fr; direction: ltr; }
  .lh-dining-feature{ min-height: 340px; }
  .lh-dining-side{ flex-direction: row; }
}
@media (max-width: 560px){ .lh-dining-side{ flex-direction: column; } }

/* =========================================================
   7. PRESS STRIP
   ========================================================= */
.lh-press{ padding: 56px 0; border-top: 1px solid var(--lh-line); border-bottom: 1px solid var(--lh-line); }
.lh-press-row{ display:flex; flex-wrap:wrap; align-items:center; justify-content: space-between; gap: 30px; }
.lh-press-row span{ font-family: var(--lh-font-display); font-size: 15px; letter-spacing: 0.06em; color: var(--lh-muted); opacity: .85; transition: opacity .25s var(--lh-ease), transform .25s var(--lh-ease); display:inline-block; }
.lh-press-row span:hover{ opacity: 1; transform: scale(1.06); color: var(--lh-cream); }

/* =========================================================
   8. FOOTER
   ========================================================= */
.lh-footer{ padding: 90px 0 34px; background-color: var(--lh-footer-bg); }
.lh-footer-top{ display:grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 50px; padding-bottom: 60px; border-bottom: 1px solid var(--lh-line); }
.lh-footer-brand .lh-logo{ margin-bottom: 18px; display:inline-block; }
.lh-footer-brand p{ color: var(--lh-cream-dim); font-size: 14px; max-width: 40ch; }
.lh-footer-social{ display:flex; gap: 14px; margin-top: 24px; }
.lh-footer-social a{ width: 38px; height:38px; border: 1px solid var(--lh-line-strong); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size: 11px; letter-spacing:.05em; color: var(--lh-cream-dim); transition: all .2s; }
.lh-footer-social a:hover{ border-color: var(--lh-gold); color: var(--lh-gold-bright); }
.lh-footer-social a.lh-social-icon{ color: var(--lh-social-color, var(--lh-cream-dim)); }
.lh-footer-social a.lh-social-icon:hover{ border-color: var(--lh-social-hover, var(--lh-gold)); color: var(--lh-social-hover, var(--lh-gold-bright)); }
.lh-social-icon svg{ display:block; }
.lh-footer-col h5{ font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--lh-cream); margin-bottom: 20px; }
.lh-footer-col ul{ display:flex; flex-direction:column; gap: 13px; }
.lh-footer-col a{ font-size: 14px; color: var(--lh-cream-dim); transition: color .2s; }
.lh-footer-col a:hover{ color: var(--lh-gold-bright); }
.lh-footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap: 12px; padding-top: 28px; font-size: 12px; letter-spacing: 0.04em; color: var(--lh-muted); }

@media (max-width: 820px){
  .lh-footer-top{ grid-template-columns: 1fr 1fr; }
  .lh-footer-brand{ grid-column: 1 / -1; }
}
@media (max-width: 520px){ .lh-footer-top{ grid-template-columns: 1fr; } }

/* =========================================================
   9. GENERIC PAGE / SINGLE / ARCHIVE CHROME
   ========================================================= */
.lh-page-header{ padding: 60px 0; border-bottom: 1px solid var(--lh-line); }
.lh-page-header h1{ font-size: clamp(34px, 5vw, 58px); }
.lh-page-header .lh-eyebrow{ display:block; margin-bottom: 16px; }
.lh-content{ padding: 70px 0; }
.lh-prose{ max-width: 74ch; font-size: 16px; color: var(--lh-cream-dim); }
.lh-prose-full{ max-width: none; }
.lh-prose h2, .lh-prose h3{ color: var(--lh-cream); margin-top: 2em; margin-bottom: 0.6em; }
.lh-prose p{ margin-bottom: 1.2em; }
.lh-prose a{ color: var(--lh-link); text-decoration: underline; text-underline-offset: 3px; }
.lh-prose a:hover{ color: var(--lh-link-hover); }
.lh-prose img{ border-radius: var(--lh-radius); margin: 1.5em 0; }

.lh-single-hero{ position:relative; height: 60vh; min-height: 380px; }
.lh-single-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lh-single-hero::after{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(15,12,8,0.25), rgba(15,12,8,0.95)); }
.lh-single-hero-copy{ position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding-bottom: 46px; }
.lh-single-meta{ display:flex; flex-wrap:wrap; gap: 26px; margin: 28px 0 42px; padding: 26px 0; border-top: 1px solid var(--lh-line); border-bottom: 1px solid var(--lh-line); }
.lh-single-meta div span{ display:block; }
.lh-single-meta .lh-meta-label{ font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lh-muted); margin-bottom: 6px; }
.lh-single-meta .lh-meta-value{ font-size: 18px; color: var(--lh-gold-bright); font-family: var(--lh-font-display); }
.lh-single-gallery{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 40px 0; }
.lh-single-gallery img{ border-radius: var(--lh-radius); aspect-ratio: 4/3; object-fit:cover; }
@media (max-width: 700px){ .lh-single-gallery{ grid-template-columns: 1fr; } }

.lh-empty{ padding: 60px 0; color: var(--lh-cream-dim); }

/* =========================================================
   13. NEWS PAGE TEMPLATE (with right sidebar)
   ========================================================= */
.lh-two-col{ display:grid; grid-template-columns: 1fr 320px; gap: 64px; align-items:start; }
.lh-two-col-sidebar{ position: sticky; top: 110px; }
.lh-news-item{ display:flex; gap: 26px; margin-bottom: 44px; padding-bottom: 44px; border-bottom: 1px solid var(--lh-line); transition: transform .3s var(--lh-ease); }
.lh-news-item:hover{ transform: translateX(6px); }
.lh-news-item:last-child{ border-bottom:none; }
.lh-news-thumb{ flex: 0 0 220px; border-radius: var(--lh-radius); overflow:hidden; aspect-ratio: 4/3; background: var(--lh-bg-raise); }
.lh-news-thumb img{ width:100%; height:100%; object-fit:cover; }
.lh-news-body{ flex:1; min-width:0; }
.lh-news-date{ font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--lh-muted); }
.lh-news-body h2{ font-size: 24px; margin-top: 8px; color: var(--lh-cream); }
.lh-news-body h2 a{ color:inherit; }
.lh-news-body h2 a:hover{ color: var(--lh-gold-bright); }
.lh-news-body p{ margin-top: 10px; color: var(--lh-cream-dim); font-size: 14px; }
.lh-news-body .lh-btn{ margin-top: 18px; }
.lh-news-pagination{ display:flex; flex-wrap:wrap; gap: 8px; margin-top: 20px; }

.lh-sidebar-widget{ background: var(--lh-bg-alt); border: 1px solid var(--lh-line); border-radius: var(--lh-radius); padding: 26px; margin-bottom: 26px; }
.lh-sidebar-widget h4, .lh-sidebar-widget .widgettitle, .lh-sidebar-widget .widget-title{ font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lh-cream); margin-bottom: 18px; }
.lh-sidebar-widget ul{ display:flex; flex-direction:column; gap: 10px; }
.lh-sidebar-widget a{ color: var(--lh-cream-dim); font-size: 14px; }
.lh-sidebar-widget a:hover{ color: var(--lh-gold-bright); }
.lh-sidebar-widget input[type="search"], .lh-sidebar-widget input[type="text"]{ width:100%; background: var(--lh-input-bg); border: 1px solid var(--lh-input-border); border-radius: var(--lh-radius-sm); padding: 10px 14px; color: var(--lh-input-text); font-size: 14px; }
.lh-sidebar-widget input[type="search"]:focus-visible, .lh-sidebar-widget input[type="text"]:focus-visible{ outline: 2px solid var(--lh-input-focus); outline-offset: 2px; }
.lh-sidebar-widget input[type="submit"]{ margin-top: 10px; background: var(--lh-btn-bg); color: var(--lh-btn-text); border:none; border-radius: var(--lh-radius-sm); padding: 10px 18px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; cursor:pointer; }
.lh-sidebar-widget input[type="submit"]:hover{ background: var(--lh-btn-hover-bg); }

.page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px; padding:0 10px; border:1px solid var(--lh-line-strong); border-radius: var(--lh-radius-sm); color: var(--lh-cream-dim); font-size: 13px; }
a.page-numbers:hover{ border-color: var(--lh-gold); color: var(--lh-gold-bright); }
.page-numbers.current{ background: var(--lh-gold); color:#1a1508; border-color: var(--lh-gold); }
.page-numbers.dots{ border-color: transparent; }

@media (max-width: 900px){
  .lh-two-col{ grid-template-columns: 1fr; }
  .lh-two-col-sidebar{ position: static; }
  .lh-news-item{ flex-direction: column; }
  .lh-news-thumb{ flex: none; width:100%; }
}

/* =========================================================
   10. HOTEL ROOMING MODULE
   ========================================================= */
.lh-room-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.lh-room-card{ background: var(--lh-bg-alt); border: 1px solid var(--lh-line); border-radius: var(--lh-radius); overflow:hidden; display:flex; flex-direction:column; transition: transform .35s var(--lh-ease), box-shadow .35s var(--lh-ease), border-color .35s var(--lh-ease); }
.lh-room-card:hover{ transform: translateY(-6px); box-shadow: 0 26px 50px -20px rgba(0,0,0,0.5); border-color: var(--lh-gold-dim); }
.lh-room-card.is-sold-out{ opacity: .72; }
.lh-room-media{ position:relative; aspect-ratio: 4/3; background: var(--lh-bg-raise); }
.lh-room-media img{ width:100%; height:100%; object-fit:cover; }
.lh-room-status-badge{ position:absolute; top:14px; right:14px; background: rgba(20,17,13,0.85); border:1px solid var(--lh-line-strong); color: var(--lh-cream); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; padding: 6px 12px; border-radius: 999px; }
.lh-room-body{ padding: 22px; display:flex; flex-direction:column; gap: 12px; flex:1; }
.lh-room-body h3{ font-size: 19px; color: var(--lh-cream); }
.lh-room-meta-row{ display:flex; flex-wrap:wrap; gap: 8px 14px; }
.lh-room-meta-row span{ font-size: 12px; color: var(--lh-muted); position:relative; padding-right:14px; }
.lh-room-meta-row span:not(:last-child)::after{ content:"·"; position:absolute; right:0; color: var(--lh-line-strong); }
.lh-room-amenities{ display:flex; flex-wrap:wrap; gap: 6px; }
.lh-room-amenities span{ font-size: 11px; letter-spacing: 0.03em; color: var(--lh-cream-dim); border: 1px solid var(--lh-line); border-radius: 999px; padding: 4px 10px; }
.lh-room-footer{ margin-top:auto; padding-top: 14px; border-top: 1px solid var(--lh-line); display:flex; align-items:center; justify-content:space-between; gap: 12px; flex-wrap:wrap; }

@media (max-width: 980px){ .lh-room-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px){ .lh-room-grid{ grid-template-columns: 1fr; } }

/* =========================================================
   11. FOOD MENU MODULE
   ========================================================= */
.lh-menu-category{ margin-bottom: 54px; }
.lh-menu-category:last-child{ margin-bottom: 0; }
.lh-menu-category-title{ font-size: 22px; color: var(--lh-gold-bright); margin-bottom: 26px; padding-bottom: 14px; border-bottom: 1px solid var(--lh-line); }

/* List layout */
.lh-menu-list{ display:flex; flex-direction:column; gap: 26px; }
.lh-menu-row-top{ display:flex; align-items:baseline; gap: 10px; }
.lh-menu-name{ font-family: var(--lh-font-display); font-size: 18px; color: var(--lh-cream); white-space: nowrap; }
.lh-menu-leader{ flex:1; border-bottom: 1px dotted var(--lh-line-strong); transform: translateY(-4px); }
.lh-menu-price{ font-size: 15px; color: var(--lh-gold-bright); white-space: nowrap; font-family: var(--lh-font-display); }
.lh-menu-sold-out{ font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lh-muted); white-space: nowrap; }
.lh-menu-desc{ margin-top: 6px; font-size: 14px; color: var(--lh-cream-dim); max-width: 60ch; }
.lh-menu-dietary{ display:flex; flex-wrap:wrap; gap: 6px; margin-top: 8px; }
.lh-menu-dietary span{ font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lh-cream-dim); border: 1px solid var(--lh-line); border-radius: 999px; padding: 3px 10px; }
.lh-menu-row.is-unavailable{ opacity: .5; }
.lh-menu-row.is-unavailable .lh-menu-name{ text-decoration: line-through; }

/* Grid layout */
.lh-menu-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.lh-menu-card{ background: var(--lh-bg-alt); border: 1px solid var(--lh-line); border-radius: var(--lh-radius); overflow:hidden; transition: transform .35s var(--lh-ease), box-shadow .35s var(--lh-ease), border-color .35s var(--lh-ease); }
.lh-menu-card:hover{ transform: translateY(-6px); box-shadow: 0 26px 50px -20px rgba(0,0,0,0.5); border-color: var(--lh-gold-dim); }
.lh-menu-card.is-unavailable{ opacity: .55; }
.lh-menu-card-media{ aspect-ratio: 4/3; background: var(--lh-bg-raise); }
.lh-menu-card-media img{ width:100%; height:100%; object-fit:cover; }
.lh-menu-card-body{ padding: 18px 20px; }
.lh-menu-card-top{ display:flex; align-items:baseline; justify-content:space-between; gap: 10px; }
.lh-menu-card-top h4{ font-size: 16px; color: var(--lh-cream); }
@media (max-width: 980px){ .lh-menu-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px){ .lh-menu-grid{ grid-template-columns: 1fr; } .lh-menu-row-top{ flex-wrap: wrap; } .lh-menu-leader{ display:none; } }

/* =========================================================
   12. GALLERY MODULE
   ========================================================= */
.lh-gallery-grid{ display:grid; gap: 18px; }
.lh-gallery-cols-2{ grid-template-columns: repeat(2, 1fr); }
.lh-gallery-cols-3{ grid-template-columns: repeat(3, 1fr); }
.lh-gallery-cols-4{ grid-template-columns: repeat(4, 1fr); }
.lh-gallery-item{ position:relative; aspect-ratio: 1/1; border-radius: var(--lh-radius); overflow:hidden; background: var(--lh-bg-raise); cursor: pointer; transition: transform .35s var(--lh-ease), box-shadow .35s var(--lh-ease); }
.lh-gallery-item:hover{ transform: translateY(-4px); box-shadow: 0 22px 44px -20px rgba(0,0,0,0.5); }
.lh-gallery-item img{ width:100%; height:100%; object-fit:cover; transition: transform .5s var(--lh-ease); }
.lh-gallery-item:hover img{ transform: scale(1.06); }
.lh-gallery-caption{ position:absolute; left:0; right:0; bottom:0; padding: 10px 14px; font-size: 12px; color: var(--lh-cream); background: linear-gradient(0deg, rgba(10,8,5,0.85), transparent); opacity:0; transition: opacity .2s; }
.lh-gallery-item:hover .lh-gallery-caption, .lh-gallery-item:focus-visible .lh-gallery-caption{ opacity:1; }
@media (max-width: 980px){ .lh-gallery-cols-3, .lh-gallery-cols-4{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .lh-gallery-grid{ grid-template-columns: repeat(2, 1fr) !important; } }

/* Lightbox */
.lh-lightbox{ position: fixed; inset:0; z-index: 200; background: rgba(10,8,5,0.94); display:none; align-items:center; justify-content:center; padding: 40px; flex-direction:column; gap: 16px; }
.lh-lightbox.is-open{ display:flex; }
.lh-lightbox img{ max-width: min(1100px, 92vw); max-height: 80vh; object-fit:contain; border-radius: var(--lh-radius); }
.lh-lightbox-caption{ color: var(--lh-cream-dim); font-size: 14px; text-align:center; }
.lh-lightbox-close{ position:absolute; top: 24px; right: 24px; background: none; border: 1px solid var(--lh-line-strong); border-radius: var(--lh-radius-sm); width: 42px; height:42px; display:flex; align-items:center; justify-content:center; color: var(--lh-cream); }

/* =========================================================
   14. SLIDER MODULE
   ========================================================= */
.lh-slider{ position:relative; height: var(--lh-slider-height, 80vh); min-height: 380px; overflow:hidden; background: var(--lh-bg); }
.lh-slider-track{ position:relative; width:100%; height:100%; }

.lh-slide{ position:absolute; inset:0; opacity:0; pointer-events:none; z-index:1; }
.lh-slide.is-active{ opacity:1; pointer-events:auto; z-index:2; }
.lh-slide-bg{ position:absolute; inset:0; overflow:hidden; }
.lh-slide-bg img{ width:100%; height:100%; object-fit:cover; }
.lh-slide-overlay{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(15,12,8,0.5) 0%, rgba(15,12,8,0.3) 45%, rgba(15,12,8,0.88) 100%); }
.lh-slide-content{ position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:center; max-width: 720px; }
.lh-slide-content h2{ font-size: clamp(32px, 5vw, 62px); color: var(--lh-heading); margin-top: 14px; max-width: 16ch; }
.lh-slide-content p{ margin-top: 18px; color: var(--lh-cream-dim); font-size: 16px; max-width: 54ch; }
.lh-slide-content .lh-btn{ margin-top: 28px; align-self:flex-start; }

/* Animation effect 1: Fade — pure opacity crossfade */
.lh-slider[data-animation="fade"] .lh-slide{ transition: opacity 1s var(--lh-ease); }

/* Animation effect 2: Slide — subtle horizontal drift + fade */
.lh-slider[data-animation="slide"] .lh-slide{ transform: translateX(4%); transition: opacity .9s var(--lh-ease), transform .9s var(--lh-ease); }
.lh-slider[data-animation="slide"] .lh-slide.is-active{ transform: translateX(0); }

/* Animation effect 3: Zoom — scales in from slightly enlarged while fading */
.lh-slider[data-animation="zoom"] .lh-slide{ transform: scale(1.12); transition: opacity 1s var(--lh-ease), transform 1.5s var(--lh-ease); }
.lh-slider[data-animation="zoom"] .lh-slide.is-active{ transform: scale(1); }

/* Animation effect 4: Flip — a subtle 3D rotation on entry */
.lh-slider[data-animation="flip"]{ perspective: 1400px; }
.lh-slider[data-animation="flip"] .lh-slide{ transform: rotateY(10deg); transition: opacity .8s var(--lh-ease), transform .8s var(--lh-ease); }
.lh-slider[data-animation="flip"] .lh-slide.is-active{ transform: rotateY(0deg); }

/* Animation effect 5: Ken Burns — continuous slow pan/zoom while displayed */
.lh-slider[data-animation="kenburns"] .lh-slide{ transition: opacity 1.2s var(--lh-ease); }
.lh-slider[data-animation="kenburns"] .lh-slide-bg img{ transform: scale(1.05); transition: transform 8s linear; }
.lh-slider[data-animation="kenburns"] .lh-slide.is-active .lh-slide-bg img{ transform: scale(1.18) translate(-1%, -1%); }

/* Arrows — hidden until hover/focus */
.lh-slider-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:52px; height:52px; border-radius:50%; border:1px solid var(--lh-line-strong); background: rgba(20,17,13,0.55); backdrop-filter: blur(4px); color: var(--lh-cream); display:flex; align-items:center; justify-content:center; opacity:0; transition: opacity .25s var(--lh-ease), background .2s, color .2s; cursor:pointer; }
.lh-slider:hover .lh-slider-arrow, .lh-slider:focus-within .lh-slider-arrow{ opacity:1; }
.lh-slider-arrow:hover{ background: var(--lh-btn-bg); color: var(--lh-btn-text); border-color: transparent; }
.lh-slider-prev{ left:24px; }
.lh-slider-next{ right:24px; }

.lh-slider-dots{ position:absolute; bottom:26px; left:0; right:0; display:flex; justify-content:center; gap:10px; z-index:5; }
.lh-slider-dot{ width:9px; height:9px; border-radius:50%; background: rgba(245,239,226,0.35); border:none; cursor:pointer; padding:0; transition: background .2s, transform .2s; }
.lh-slider-dot:hover{ background: rgba(245,239,226,0.6); }
.lh-slider-dot.is-active{ background: var(--lh-gold-bright); transform: scale(1.3); }

@media (max-width: 700px){
  .lh-slider-arrow{ width:40px; height:40px; }
  .lh-slider-prev{ left:12px; }
  .lh-slider-next{ right:12px; }
}

/* =========================================================
   15. HERO CONTENT MODULE
   ========================================================= */
.lh-herocontent{ position:relative; display:flex; align-items:center; justify-content:center; text-align:center; padding: 40px var(--lh-gutter); overflow:hidden; background-color: var(--hc-bg, var(--lh-bg-alt)); }
.lh-herocontent-fullscreen{ min-height: 100vh; }
.lh-herocontent-media{ position:absolute; inset:0; z-index:0; }
.lh-herocontent-media img{ width:100%; height:100%; object-fit:cover; }
.lh-herocontent-overlay{ position:absolute; inset:0; background: rgba(0,0,0, var(--hc-overlay, 0.4)); }
.lh-herocontent-inner{ position:relative; z-index:2; max-width: 760px; }
.lh-herocontent-inner h2{ color: var(--hc-heading, var(--lh-heading)); font-size: clamp(32px, 5vw, 54px); }
.lh-herocontent-inner p{ color: var(--hc-text, var(--lh-text)); margin-top: 20px; font-size: 16px; }
.lh-herocontent-inner .lh-btn{ margin-top: 28px; }

/* Boxed layout gets a visible card so it reads distinctly from fullscreen bleed */
.lh-herocontent-boxed .lh-herocontent-inner{ background: var(--lh-bg-raise); border: 1px solid var(--lh-line); border-radius: var(--lh-radius-lg); padding: 60px 54px; box-shadow: var(--lh-shadow); }
@media (max-width: 600px){ .lh-herocontent-boxed .lh-herocontent-inner{ padding: 40px 26px; } }

/* =========================================================
   16. ROOM BOOKING MODAL
   ========================================================= */
.lh-booking-modal{ position: fixed; inset:0; z-index: 220; background: rgba(10,8,5,0.88); display:none; align-items:center; justify-content:center; padding: 30px 20px; }
.lh-booking-modal.is-open{ display:flex; }
.lh-booking-modal-inner{ position:relative; width: 100%; max-width: 460px; max-height: 90vh; overflow-y:auto; background: var(--lh-bg-alt); border: 1px solid var(--lh-line-strong); border-radius: var(--lh-radius-lg); box-shadow: var(--lh-shadow); padding: 34px; }
.lh-booking-modal-close{ position:absolute; top: 18px; right: 18px; background:none; border: 1px solid var(--lh-line-strong); border-radius: var(--lh-radius-sm); width: 36px; height:36px; display:flex; align-items:center; justify-content:center; color: var(--lh-cream); cursor:pointer; }

.lh-booking-dates-row{ display:flex; gap: 20px; margin-bottom: 14px; }
.lh-booking-dates-row > div{ flex:1; background: var(--lh-bg-raise); border: 1px solid var(--lh-line); border-radius: var(--lh-radius-sm); padding: 10px 14px; }
.lh-booking-dates-row .lh-meta-label{ display:block; margin-bottom: 3px; }
.lh-booking-dates-row span:last-child{ font-size: 14px; color: var(--lh-cream); }

.lh-booking-datepicker{ background: var(--lh-bg); border: 1px solid var(--lh-line); border-radius: var(--lh-radius); padding: 16px; margin-bottom: 20px; }
.lh-booking-datepicker .lh-datepicker-grid .lh-datepicker-day.is-booked{ text-decoration: line-through; opacity:.35; }

.lh-booking-field{ margin-bottom: 14px; }
.lh-booking-field label{ display:block; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lh-gold); margin-bottom: 6px; }
.lh-booking-field input, .lh-booking-field select, .lh-booking-field textarea{ width:100%; background: var(--lh-input-bg); border: 1px solid var(--lh-input-border); border-radius: var(--lh-radius-sm); padding: 11px 14px; color: var(--lh-input-text); font-size: 14px; font-family: inherit; }
.lh-booking-field textarea{ resize: vertical; }
.lh-booking-field input:focus-visible, .lh-booking-field select:focus-visible, .lh-booking-field textarea:focus-visible{ outline: 2px solid var(--lh-input-focus); outline-offset: 2px; }
.lh-booking-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }

.lh-booking-summary{ display:flex; align-items:center; justify-content:space-between; background: var(--lh-bg-raise); border: 1px solid var(--lh-line); border-radius: var(--lh-radius-sm); padding: 12px 16px; margin-bottom: 16px; font-size: 14px; }
#lh-booking-total{ color: var(--lh-gold-bright); font-family: var(--lh-font-display); font-size: 17px; }
.lh-booking-error{ background: rgba(255,80,80,0.1); border: 1px solid rgba(255,80,80,0.35); color: #ff9d9d; font-size: 13px; border-radius: var(--lh-radius-sm); padding: 10px 14px; margin-bottom: 14px; }

@media (max-width: 500px){
  .lh-booking-modal-inner{ padding: 26px 20px; }
  .lh-booking-dates-row{ flex-direction: column; gap: 10px; }
}

/* =========================================================
   17. CONTACT US PAGE TEMPLATE
   ========================================================= */
.lh-contact-map{ width:100%; aspect-ratio: 21/6; min-height: 260px; border-bottom: 1px solid var(--lh-line); background: var(--lh-bg-raise); }
.lh-contact-map iframe{ width:100%; height:100%; border:0; display:block; filter: grayscale(0.15) contrast(1.05); }

.lh-contact-grid{ display:grid; grid-template-columns: 0.85fr 1.15fr; gap: 60px; align-items:start; }
.lh-contact-info h3, .lh-contact-form-wrap h3{ font-size: 22px; margin-bottom: 26px; }
.lh-contact-row{ margin-bottom: 22px; }
.lh-contact-row p{ margin-top: 6px; font-size: 15px; color: var(--lh-cream-dim); }
.lh-contact-row p a{ color: var(--lh-link); }
.lh-contact-row p a:hover{ color: var(--lh-link-hover); }

.lh-contact-form-wrap{ background: var(--lh-bg-alt); border: 1px solid var(--lh-line); border-radius: var(--lh-radius); padding: 34px; }
.lh-contact-success{ background: rgba(120,200,140,0.12); border: 1px solid rgba(120,200,140,0.35); color: #9fe3ae; font-size: 13px; border-radius: var(--lh-radius-sm); padding: 10px 14px; margin-bottom: 14px; }

@media (max-width: 860px){
  .lh-contact-grid{ grid-template-columns: 1fr; }
  .lh-contact-form-wrap{ padding: 26px 22px; }
}

/* Scroll reveal */
.lh-reveal{ opacity:0; transform: translateY(24px); transition: opacity .7s var(--lh-ease), transform .7s var(--lh-ease); }
.lh-reveal.is-visible{ opacity:1; transform:none; }

/* Global "Enable Animation Effects" toggle (Theme Options → General Settings) —
   neutralizes both the scroll-reveal system and every hover lift/zoom effect
   added above, leaving simple instant color/background hover feedback intact. */
body.lh-animations-disabled .lh-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
body.lh-animations-disabled .lh-stay-card,
body.lh-animations-disabled .lh-room-card,
body.lh-animations-disabled .lh-menu-card,
body.lh-animations-disabled .lh-gallery-item,
body.lh-animations-disabled .lh-news-item,
body.lh-animations-disabled .lh-press-row span,
body.lh-animations-disabled .lh-dining-feature img,
body.lh-animations-disabled .lh-dining-side-media img,
body.lh-animations-disabled .lh-stay-media .ph,
body.lh-animations-disabled .lh-btn-solid{ transition:none !important; }
body.lh-animations-disabled .lh-stay-card:hover,
body.lh-animations-disabled .lh-room-card:hover,
body.lh-animations-disabled .lh-menu-card:hover,
body.lh-animations-disabled .lh-gallery-item:hover,
body.lh-animations-disabled .lh-news-item:hover,
body.lh-animations-disabled .lh-press-row span:hover,
body.lh-animations-disabled .lh-dining-feature:hover img,
body.lh-animations-disabled .lh-dining-side-media:hover img,
body.lh-animations-disabled .lh-btn-solid:hover{ transform:none !important; }

/* WP core alignments/utilities */
.alignwide{ max-width: 1100px; margin-left:auto; margin-right:auto; }
.alignfull{ width:100%; max-width:none; }

/* =========================================================
   18. CUSTOMER PORTAL (My Account)
   ========================================================= */
.lh-account-grid{ display:grid; grid-template-columns: 1.4fr 1fr; gap: 60px; align-items:start; }
.lh-account-main h3{ font-size: 22px; margin-bottom: 26px; }
.lh-account-bookings{ display:flex; flex-direction:column; gap: 18px; }
.lh-account-booking-row{ display:flex; align-items:center; justify-content:space-between; gap: 20px; background: var(--lh-bg-alt); border: 1px solid var(--lh-line); border-radius: var(--lh-radius); padding: 20px 24px; flex-wrap:wrap; }
.lh-account-booking-row h4{ font-size: 17px; color: var(--lh-heading); margin-top: 4px; }
.lh-account-booking-meta{ display:flex; flex-direction:column; align-items:flex-end; gap: 8px; }
.lh-account-status{ font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; border: 1px solid; }
.lh-account-status-pending{ color: #d4a94a; border-color: #d4a94a; }
.lh-account-status-confirmed{ color: #4caf6e; border-color: #4caf6e; }
.lh-account-status-cancelled{ color: #d46a6a; border-color: #d46a6a; }

.lh-account-sidebar .lh-sidebar-widget{ margin-bottom: 20px; }

.lh-account-auth{ max-width: 460px; margin: 0 auto; }
.lh-account-auth-tabs{ display:flex; border: 1px solid var(--lh-line-strong); border-radius: 999px; padding: 4px; margin-bottom: 30px; }
.lh-account-tab{ flex:1; background:none; border:none; padding: 12px; border-radius: 999px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lh-cream-dim); cursor:pointer; transition: background .2s, color .2s; }
.lh-account-tab.is-active{ background: var(--lh-btn-bg); color: var(--lh-btn-text); }
.lh-account-panel{ display:none; }
.lh-account-panel.is-active{ display:block; }

@media (max-width: 860px){
  .lh-account-grid{ grid-template-columns: 1fr; }
}

/* =========================================================
   19. FAQ MODULE
   ========================================================= */
.lh-faq-wrap{ max-width: 820px; margin: 0 auto; }
.lh-faq-accordion{ display:flex; flex-direction:column; gap: 14px; }
.lh-faq-item{ background: var(--lh-bg-alt); border: 1px solid var(--lh-line); border-radius: var(--lh-radius); overflow:hidden; }
.lh-faq-question{ width:100%; display:flex; align-items:center; justify-content:space-between; gap: 16px; background:none; border:none; padding: 20px 24px; text-align:left; font-family: var(--lh-font-display); font-size: 17px; color: var(--lh-heading); cursor:pointer; }
.lh-faq-chevron{ flex-shrink:0; color: var(--lh-gold); transition: transform .3s var(--lh-ease); }
.lh-faq-question[aria-expanded="true"] .lh-faq-chevron{ transform: rotate(180deg); }
.lh-faq-answer{ max-height:0; overflow:hidden; transition: max-height .35s var(--lh-ease); }
.lh-faq-answer-inner{ padding: 0 24px 22px; color: var(--lh-cream-dim); font-size: 15px; line-height: 1.7; }
.lh-faq-answer-inner p{ margin-bottom: 1em; }
.lh-faq-answer-inner p:last-child{ margin-bottom: 0; }

/* Compact variant used in the My Account sidebar */
.lh-faq-compact .lh-faq-question{ padding: 14px 4px; font-size: 14px; font-family: var(--lh-font-body); font-weight: 500; }
.lh-faq-compact .lh-faq-answer-inner{ padding: 0 4px 16px; font-size: 13px; }
.lh-faq-compact .lh-faq-item{ background:none; border:none; border-bottom: 1px solid var(--lh-line); border-radius:0; }
.lh-faq-compact .lh-faq-item:last-child{ border-bottom:none; }
