﻿:root{
  --accent:#d4af37;
  --accent-soft:#f9de8c;
  --muted:#bfa56b;
  --text:#111827;
  --surface:#ffffff;
  --surface-soft:rgba(255,255,255,0.76);
  --surface-strong:rgba(255,255,255,0.92);
  --bg:#f6f4ef;
  --bg-alt:#f8fafc;
  --border:rgba(212,175,55,0.22);
  --shadow:0 30px 80px rgba(15,23,42,0.12);
  --shadow-soft:0 18px 45px rgba(15,23,42,0.08);
}

html{scroll-behavior:smooth; font-size:16px; background:radial-gradient(circle at top, rgba(255,241,207,0.45), rgba(248,250,252,1) 45%);}
*,*::before,*::after{box-sizing:border-box; transition:background-color 0.28s ease, color 0.28s ease, border-color 0.28s ease;}

.max-w-6xl,
.max-w-7xl {
  max-width:1200px;
}
.max-w-6xl.mx-auto,
.max-w-7xl.mx-auto {
  margin-left:auto;
  margin-right:auto;
}
header.site-header .header-inner,
.hero-section .max-w-6xl,
section > .max-w-6xl,
footer .max-w-6xl,
main .max-w-6xl {
  padding-left:1.5rem;
  padding-right:1.5rem;
}
.hero-section .text-white,
.horizontal-card-slider .glass-card .p-6,
.horizontal-card-slider .glass-card .p-5,
.services-card .p-8,
.glass-card .p-6 {
  text-align:left;
}
.hero-section h1,
.hero-section p,
.hero-section a {
  text-align:left;
}
.feature-card-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.9rem;
  height:2.9rem;
  margin-bottom:1rem;
  border-radius:1rem;
  background:rgba(212,175,55,0.16);
  color:#b87f0d;
  font-size:1.35rem;
}
.feature-card-icon + p,
.feature-card-icon + h4 {
  margin-top:0;
}
.amenity-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:3rem;
  height:3rem;
  border-radius:1rem;
  background:rgba(212,175,55,0.16);
  color:#b87f0d;
}
.amenity-icon img {
  width:1.25rem;
  height:1.25rem;
  object-fit:contain;
}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial,sans-serif; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizelegibility; background:radial-gradient(circle at top left, rgba(255,244,211,0.35), transparent 25%), linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%); color:var(--text); margin:0; font-size:1.05rem; line-height:1.6; min-height:100vh; width:100%; overflow-x:hidden;}
main, section, footer, header{width:100%;}

.crystal-btn{background:var(--accent); color:white; padding:.7rem 1.2rem; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(15,23,42,0.12); transition:transform .2s ease, box-shadow .2s ease; text-decoration:none;}
.crystal-btn:hover{transform:translateY(-3px); box-shadow:0 18px 50px rgba(15,23,42,0.18)}

#search-button{background:var(--accent); color:white; box-shadow:0 18px 40px rgba(212,175,55,0.22); transition:transform .2s ease, background .2s ease;}
#search-button:hover{background:#e6b63d; transform:translateY(-1px);}

header{backdrop-filter:blur(18px); background:rgba(0,0,0,0.72); border-bottom:1px solid rgba(255,255,255,0.08); box-shadow:0 16px 40px rgba(15,23,42,0.16);}
header.site-header{padding:0.75rem 0;}
header.site-header .header-inner{max-width:1200px; margin:0 auto; padding:0 1.5rem;}
header.site-header nav{gap:1.5rem;}
header.site-header a, header.site-header button{font-size:0.88rem;}
header a, header select, header button{color:#f8fafc;}
header a:hover, header button:hover{color:var(--accent); transform:translateY(-1px);}
header .nav-link{transition:color .22s ease, transform .22s ease, background .22s ease, border-color .22s ease;}
header .nav-link:hover{color:var(--accent); transform:translateY(-1px);}

.availability-modal{backdrop-filter:blur(4px);}
.availability-dialog{position:relative;}
.availability-dialog::before{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,0.06), transparent); border-radius:2rem; pointer-events:none;}
.availability-dialog button{box-shadow:0 18px 40px rgba(245,158,11,0.22);}

.hero-section{position:relative; overflow:hidden; min-height:56vh; background:radial-gradient(circle at top left, rgba(255,238,190,0.18), transparent 30%), radial-gradient(circle at bottom right, rgba(188,147,71,0.12), transparent 25%);}
.hero-section::before{content:''; position:absolute; inset:0; background:radial-gradient(circle at center, rgba(255,255,255,0.15), transparent 24%), radial-gradient(circle at 18% 20%, rgba(245,158,11,0.1), transparent 18%); pointer-events:none; mix-blend-mode:screen; opacity:0.95;}
.hero-section::after{content:''; position:absolute; inset:0; background:radial-gradient(circle at top right, rgba(249,231,159,0.14), transparent 28%), radial-gradient(circle at bottom left, rgba(15,23,42,0.08), transparent 30%); pointer-events:none;}
.hero-section:hover::before{opacity:1;}
.hero-section img{max-width:100%; max-height:100%; object-fit:cover; transition:transform .45s ease, filter .45s ease; will-change:transform, filter;}
.hero-section:hover img{transform:scale(1.03); filter: brightness(0.7);}

.glass-card{background:rgba(255,255,255,0.82); border:1px solid rgba(212,175,55,0.16); backdrop-filter:blur(16px); box-shadow:var(--shadow); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; color:var(--text);}
.glass-card:hover{transform:translateY(-6px); box-shadow:0 30px 80px rgba(15,23,42,0.18); border-color:rgba(212,175,55,0.24);}

.visual-card{position:relative; overflow:hidden;}

.services-card{display:flex; flex-direction:column; background:linear-gradient(180deg,#ffffff,#fbfbfb); border-radius:22px; overflow:hidden; border:1px solid rgba(212,175,55,0.08);}
.services-card .p-8{padding:2rem !important}
.services-card .uppercase{color:var(--accent); font-weight:700}
.services-card h4{font-size:1.5rem; margin-top:0.25rem; margin-bottom:0.5rem}
.services-card h5{color:#0f172a; font-weight:700}
.services-card .services-cta {margin-top:auto}

.reveal-hidden{opacity:0; transform:translateY(24px) scale(0.98); transition:opacity .9s ease, transform .9s ease;}
.reveal-visible{opacity:1; transform:none;}

.book-now-btn{padding:1rem 1.75rem; font-size:0.95rem; letter-spacing:0.04em; box-shadow:0 20px 46px rgba(212,175,55,0.18); display:inline-flex; align-items:center; justify-content:center; text-decoration:none; background:var(--accent); color:#ffffff; border-radius:999px; transition:transform .25s ease, box-shadow .25s ease, background .25s ease;}
.book-now-btn:hover{transform:translateY(-2px); box-shadow:0 28px 60px rgba(212,175,55,0.26); background:#b88617}

#booking-form button#search-button[aria-disabled="true"]{opacity:0.55; cursor:not-allowed;}

h1.font-serif,h2.font-serif,h3.font-serif{font-family:'Cormorant Garamond', serif;}
#booking form input, #booking form select{background:white}

.glass-card,
.services-card,
.room-card,
.partner-logo-card,
.values-card,
.testimonial-card,
.values-feature {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  min-width:0;
  width:100%;
  padding:1.5rem;
}
.glass-card img,
.room-card img,
.services-card img,
.visual-card img,
.partner-logo img {
  width:100%;
  height:auto;
  max-width:100%;
  max-height:320px;
  object-fit:cover;
  display:block;
}
.services-card > .relative,
.services-card .relative {
  height:auto ;
  max-height:240px;
  aspect-ratio:16/10;
}
.room-card .relative,
.room-card > .relative {
  height:auto;
  max-height:320px;
}
.room-card .p-5,
.services-card .p-8,
.glass-card .p-6 {
  padding:1.5rem;
}
.glass-card p,
.services-card p,
.room-card p,
.room-card h3,
.services-card h4,
.services-card h5 {
  word-break:break-word;
  margin:0 0 0.85rem;
}

#validation-message, #availability-status{display:none }

.partner-grid{display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));}
.partner-logo-card{display:flex; align-items:center; justify-content:center; min-height:120px; border-radius:1.75rem; border:1px solid #e5e7eb; background:#ffffff; transition:transform .3s ease, box-shadow .3s ease, border .3s ease, background .3s ease;}
.partner-logo-card:hover {transform:translateY(-4px); box-shadow:0 20px 50px rgba(15,23,42,0.08); border-color:rgba(156,163,175,0.35);}
.partner-logo{filter:grayscale(100%) brightness(0.72); opacity:0.82; transition:filter .3s ease, opacity .3s ease, transform .3s ease; max-width:140px; max-height:42px; object-fit:contain;}
.partner-logo-card:hover .partner-logo{filter:grayscale(0%) brightness(1); opacity : 1; transform:scale(1.05);}
.partner-fallback{display:none;}
.partner-logo-card.logo-missing .partner-fallback{display:block;}
.partner-logo-card.logo-missing .partner-logo{display:none;}

.bg-white{background:white}
.rounded-2xl{border-radius:16px}
.rounded-3xl{border-radius:24px}

.marquee{overflow:hidden;}
.marquee-track{display:flex; gap:1rem; align-items:center;}
.marquee-track > *{flex:0 0 auto}
@keyframes marquee-left{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.marquee-track.scrolling{animation:marquee-left 30s linear infinite}

section p.uppercase{font-weight:600}
.title-serif{font-family:'Times New Roman', Times, serif; font-weight:700}
body, p, span, a, li, label{font-family:system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial,sans-serif}
.shadow-md{box-shadow:0 10px 30px rgba(15,23,42,0.06)}
.shadow-lg{box-shadow:0 30px 80px rgba(15,23,42,0.12)}
.shadow-sm{box-shadow:0 10px 30px rgba(15,23,42,0.08)}

/* Fix for the badge styling */
.room-price-badge {
    box-shadow: 0 10px 30px rgb(238, 239, 241);
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 10;
    background: rgba(15, 23, 42, 0.9);
    color: #ffffff;
    padding: 0.55rem 0.85rem;
    border-radius: 0px; /* Forced sharp square box */
}

/* Base card container */
.room-card {
    position: relative;
    overflow: hidden;
    border-radius: 0px; /* Forced sharp square box */
    background: rgba(255, 255, 255, 1);
    border: 1px solid rgba(212, 175, 55, 0.14);
    box-shadow: 0 28px 70px rgba(15, 23, 42, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    height: 420px; /* Fixed height protects layout structural bounds */
}

.room-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 34px 90px rgba(15, 23, 42, 0.14);
}

/* Image structure and layer boundary */
.room-card img {
    height: 14rem ; /* Slightly increased to give background space for text overlap */
    max-height: 14rem;
    object-fit: cover;
    transition: transform 0.35s ease;
    width: 100%;
    z-index: 1;
}

.room-card:hover img {
    transform: scale(1.06);
}

/* Text block default layout */
.room-text-area {
    padding: 1.25rem;
    background: #ffffff;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), background-color 0.35s ease;
    z-index: 3; 
    position: relative;
    width: 100%;
}

/* FIX: Forces the entire text area to smoothly glide straight UP inside the image frame area */
.room-card:hover .room-text-area {
    transform: translateY(-4.5rem); /* Pushes text container deep into the image viewport */
    background: rgba(255, 255, 255, 0.92); /* Becomes frosted glass overlay when on top of the image */
    backdrop-filter: blur(4px);
}

/* Hover-reveal details buttons overlay at the absolute bottom */
.room-card-details {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1.25rem;
    background: #ffffff; /* Matches card base canvas */
    border-top: 1px solid rgba(15, 23, 42, 0.05);
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.75rem;
    transform: translateY(100%);
    transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.35s ease;
    opacity: 0;
    pointer-events: none;
    z-index: 4; /* Sits cleanly over text container space */
}

.room-card:hover .room-card-details {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}


#values{background:#f8fafc}
#values .overflow-hidden{border-radius:24px; max-height:360px;}
#values .overflow-hidden img{height:360px; object-fit:cover;}
#values .absolute.bottom-6{left:1.5rem; right:1.5rem; max-width:none;}
#values h4{font-size:1.5rem; line-height:1.4;}
.values-feature{background:#ffffff; border:1px solid rgba(148,163,184,0.18); box-shadow:0 20px 50px rgba(15,23,42,0.08);}
.values-feature p:first-of-type{color:var(--accent); font-weight:700;}
.values-card{background:#ffffff; border:1px solid rgba(148,163,184,0.18);}
.values-card:hover{box-shadow:0 24px 60px rgba(15,23,42,0.12);}

#contact .space-y-4 form{display:grid; grid-template-columns:1fr; gap:0.75rem;}
#contact .space-y-4 form input, #contact .space-y-4 form button{width:100%;}
#contact .space-y-4 form button{padding:.85rem 0.9rem;}
#contact .space-y-4 h4{font-size:1.05rem;}

#testimonials{padding-top:2.5rem; padding-bottom:2.5rem;}
#testimonials .testimonial-card{display:flex; gap:1rem; align-items:stretch;}
#testimonials .testimonial-content{min-height:180px;}
.testimonial-content .quote-mark{position:absolute; left:18px; top:12px; font-size:4.25rem;}
.testimonial-quote{margin-left:18px;}
.testimonial-meta .rating{background:rgba(255,255,255,0.16);}
.testimonial-side .avatar{width:4.5rem; height:4.5rem;}
.testimonial-side .company-badges .text-sm{font-size:0.9rem}

#faq{padding-top:2.5rem; padding-bottom:2.5rem;}
#faq .faq-left img{height:16rem; object-fit:cover}
#about .overflow-hidden{max-height:260px; overflow:hidden;}
#about .overflow-hidden img{height:260px; object-fit:cover;}
#faq .faq-right .faq-item{border-radius:12px; border:1px solid rgba(15,23,42,0.06); background:#ffffff; padding:.75rem 1rem;}
#faq .faq-right .faq-item summary{cursor:pointer; list-style:none; font-size:1rem; font-weight:600; display:block; position:relative; padding-right:2rem;}
#faq .faq-right .faq-item summary::-webkit-details-marker{display:none}
#faq .faq-right .faq-item summary::after{content:'+'; position:absolute; right:0; top:50%; transform:translateY(-50%); font-weight:700; color:rgba(15,23,42,0.6);}
#faq .faq-right .faq-item[open] summary::after{content:'–'}
#faq .faq-right .faq-item div{margin-top:.5rem; color:rgba(15,23,42,0.7); font-size:.95rem;}

footer.bg-neutral-900{padding-top:0.75rem; background-color: #000000; padding-bottom:0.75rem;}
footer.bg-neutral-900 .max-w-6xl{font-size:0.72rem; opacity:0.65;}
.social-icon{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:9999px; color:inherit}
.social-icon svg{opacity:0.95}
.bg-neutral-900{background:#0b0b0b}
.footer-contact .text-neutral-300{color:#cbd5e1}
.footer-contact .text-amber-400{color:#f6ad55}

form input[type="email"], form input[type="text"]{outline:none}
form input[type="email"]:focus, form input[type="text"]:focus{box-shadow:0 6px 18px rgba(2,6,23,0.15); transform:translateY(-1px)}

#chat-open-btn{transition:transform .18s ease, box-shadow .18s ease}
#chat-open-btn:hover{transform:translateY(-4px); box-shadow:0 16px 40px rgba(2,6,23,0.12)}
#chat-widget{border-radius:16px; animation:pop .18s ease}
@keyframes pop{from{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.chat-message{display:flex; margin-bottom:10px}
.chat-message.user{justify-content:flex-end}
.chat-message .bubble{max-width:78%; padding:10px 12px; border-radius:12px; font-size:0.95rem}
.chat-message.bot .bubble{background:#f3f4f6; color:#111827}
.chat-message.user .bubble{background:#10b981; color:white}
.chat-message.typing .bubble{background:#f3f4f6}
.chat-message.typing .dot{display:inline-block; width:6px; height:6px; margin-right:4px; background:#9ca3af; border-radius:9999 px; animation:blink 1s infinite}
.chat-message.typing .dot:nth-child(2){animation-delay:.15s}
.chat-message.typing .dot:nth-child(3){animation-delay:.3s}
@keyframes blink{0%{opacity:.2;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}100%{opacity:.2;transform:translateY(0)}}

.booking-panel{background:rgba(255,255,255,0.72); color:var(--text); backdrop-filter:blur(18px); border:1px solid rgba(212,175,55,0.14); box-shadow:0 28px 80px rgba(15,23,42,0.08);}
.booking-panel input, .booking-panel select{border-radius:14px; background-color:#f8f7f1 ; color:#111827 !important; border:1px solid rgba(148,163,184,0.18); padding:.95rem 1rem;}
.booking-panel input:hover, .booking-panel input:focus, .booking-panel select:hover, .booking-panel select:focus{background-color:white !important; color:#111827 !important; outline:none; box-shadow:0 12px 30px rgba(15,23,42,0.08);}
.booking-panel .bg-white{background:white}
.booking-panel .text-neutral-200{color:#6b7280}
.booking-panel .text-amber-600{color:#d97706}
.booking-panel ::placeholder{color:#9ca3af}
.booking-panel select{background-color:#f8f1d1 !important; color:#111827 !important; border:1px solid rgba(212,175,55,0.28) !important; accent-color:#d4af37; appearance:none; -webkit-appearance:none; -moz-appearance:none;}
.booking-panel select option{background-color:#f8f1d1; color:#111827;}

#booking-form .w-full button[type="submit"],
#booking-form .w-full input[type="submit"] {
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease;
}

#booking-form .w-full button[type="submit"]:hover,
#booking-form .w-full input[type="submit"]:hover {
  transform:translateY(-2px);
}

.booking-panel .guest-button{transition:background .2s ease, transform .2s ease, box-shadow .2s ease;}
.booking-panel .guest-button:hover{background:#e2e8f0; transform:translateY(-1px); box-shadow:0 9px 18px rgba(15,23,42,0.12);}

.guest-counter{display:flex; align-items:center; gap:0.5rem; border:1px solid rgba(148,163,184,0.35); border-radius:1.25rem; background:white; padding:0.3rem 0.4rem; max-width:12rem}
.guest-counter .guest-button{width:2.6rem; height:2.6rem; display:inline-flex; align-items:center; justify-content:center; border:none; border-radius:999px; background:#f8fafc; color:#111827; font-size:1.4rem; transition:background .2s ease, transform .2s ease; cursor:pointer}
.guest-counter .guest-button:hover{background:#e2e8f0; transform:translateY(-1px)}
.guest-counter .guest-value{min-width:2rem; font-weight:700; text-align:center}

.hover-card{overflow:hidden}

.nav-dropdown{min-width:12rem; background:#000; border:none;}
.nav-dropdown a{display:block; padding:0.75rem 1rem; color:#f8fafc; text-decoration:none; transition:background .2s ease;}
.nav-dropdown a:hover{background:rgba(255,255,255,0.08);}
summary{font-family:inherit}
summary::-webkit-details-marker{display:none}
summary::marker{display:none}

.glass-card, .services-card, .room-card, .partner-logo-card, .testimonial-card, .values-card, .values-feature, .partner-grid, .horizontal-card-slider > * { min-width: 0; }
.glass-card p, .glass-card h3, .glass-card h4, .glass-card h5, .room-card p, .services-card p, .testimonial-card p, .values-feature p { word-break: break-word; }
.partner-logo-card img, .partner-logo img, .room-card img, .services-card img, .visual-card img { max-width: 100%; }

.partner-fallback-card{position:relative;}
.partner-fallback-card.logo-missing{background:#f8fafc;}
.partner-fallback-card.logo-missing .partner-fallback{display:block;}
.partner-fallback-card .partner-fallback{display:none;}

.nav-logo{height:40px}

.testimonial-card{opacity:.4; transform:translateY(18px); transition:opacity .4s ease, transform .4s ease; height:auto; min-height:auto;}
.testimonial-card.active{opacity:1; transform:none;}

.faq-card summary{cursor:pointer; list-style:none; font-size:1.05rem; font-weight:600;}
.faq-card summary::-webkit-details-marker{display:none}
.faq-card p{margin-top:1rem;}

.horizontal-card-slider img, .visual-card img, .services-card img, .room-card img {
  width:100%;
  height:auto;
  max-height:220px;
  object-fit:cover;
}

img{max-width:100%; height:auto}
img.h-56, img.h-64, img.h-80, img.h-40, img.h-14 {
  height: auto;
  max-height: 220px;
  object-fit: cover;
}
img[class*="min-h-"] {
  height: auto;
  max-height: 300px;
  object-fit: cover;
}

#chat-messages.h-64, #chat-messages.h-64.p-4 {
  max-height: 240px ;
  overflow: auto;
}

.horizontal-card-slider-wrapper{position:relative; width:100%;}
.horizontal-card-slider{display:flex; flex-wrap:nowrap; gap:1rem; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; -ms-overflow-style:none; scrollbar-width:none; touch-action:pan-x; padding-bottom:1rem; padding-left:1rem; padding-right:1rem; width:100%; box-sizing:border-box;}
.horizontal-card-slider::-webkit-scrollbar{display:none;}
.horizontal-card-slider > *{flex:0 0 clamp(220px, 70vw, 340px); width:clamp(220px, 70vw, 340px); scroll-snap-align:start; font-size:0.94rem;}
.horizontal-card-slider img{width:100%; height:auto; max-width:100%; margin:0 auto; display:block;}
.horizontal-card-slider .glass-card{backdrop-filter:none; background:#ffffff; border:1px solid rgba(148,163,184,0.18); color:#0f172a;}
.horizontal-card-slider.accommodation-slider{touch-action:pan-x; padding-left:0; padding-right:0; scroll-padding-left:1rem; scroll-padding-right:1rem;}
.horizontal-card-slider.accommodation-slider > *{flex:0 0 clamp(200px, 75vw, 280px); width:clamp(200px, 75vw, 280px); max-width:280px; min-width:200px; scroll-snap-align:start;}
.horizontal-card-slider.accommodation-slider > .room-card{max-width:none;}

.carousel-dots{display:flex; justify-content:center; gap:0.65rem; flex-wrap:wrap; margin-top:1rem;}
.carousel-dot{width:12px; height:12px; border-radius:9999px; background:#cbd5e1; transition:transform .2s ease, background-color .2s ease; cursor:pointer;}
.carousel-dot.active{background:var(--accent); transform:scale(1.15); box-shadow:0 0 0 4px rgba(251,191,36,0.14);}
.carousel-nav-btn{transition: all 0.2s ease; cursor: pointer;}
.carousel-nav-btn:hover{box-shadow: 0 4px 12px rgba(217, 119, 6, 0.2);}
.carousel-dot:hover{transform: scale(1.2);}

.testimonial-carousel-wrapper{position: static; height: auto;}
.testimonial-card img{transition: transform 0.3s ease;}
.testimonial-card:hover img{transform: scale(1.05);}

.logo-img{background:transparent; padding:6px; border-radius:8px; display:block; box-shadow:0 6px 18px rgba(2,6,23,0.06)}
.nav-logo-img{height:3.5rem;}

section.py-20{padding-top: 2.4rem; padding-bottom: 2.4rem }
section.py-16{padding-top: 2rem ; padding-bottom: 2rem }
section.py-12{padding-top: 1.6rem ; padding-bottom: 1.6rem }
section.py-10{padding-top: 1.2rem ; padding-bottom: 1.2rem }
section.pt-16{padding-top: 1.75rem }
section.pb-8{padding-bottom: 1.25rem }

input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  border-radius: 4px;
  margin-right: 2px;
  opacity: 0.6;
  filter: invert(0.3);
}
input[type="date"]::-webkit-calendar-picker-indicator:hover { opacity: 1; }
input[type="date"]::-webkit-outer-spin-button,
input[type="date"]::-webkit-inner-spin-button { display: none; }

/* Media Queries arranged logically */
@media (min-width:768px){
  .nav-logo-img{height:4rem;}
}

@media (min-width:1024px){
  #booking-form{flex-wrap:nowrap}
  #booking-form > .min-w-120px{min-width:120px}
  #booking-form > .min-w-140px{min-width:140px}
}

@media (max-width:1024px){
  .partner-logo-card{min-height:110px; padding:1.25rem;}
  #values .overflow-hidden{max-height:280px;}
  #values .overflow-hidden img{height:280px;}
}

@media (max-width:768px){
  .partner-grid{grid-template-columns:1fr;}
  .partner-logo-card{min-height:100px; padding:1rem;}
  .crystal-btn{padding:.55rem .9rem}
  .hero-section{height:55vh }
  .booking-panel{padding: 1.5rem}
  .footer-grid{grid-template-columns:1fr}
  .services-card .p-8{padding:1rem }
  .glass-card{padding:1rem}
  .booking-panel{padding:1rem}
}

@media (max-width: 640px) {
  .horizontal-card-slider.accommodation-slider > * {
    flex:0 0 clamp(180px, 80vw, 260px);
    width:clamp(180px, 80vw, 260px);
  }
  .hero-section{min-height:39vh; height:39vh}
  .crystal-btn, .book-now-btn{padding:1.0rem .9rem; font-size:0.95rem}
  .max-w-6xl{padding-left: 1rem; padding-right: 1rem}
  h1.font-serif{font-size: 2rem}
  h2.font-serif{font-size: 1.75rem}
  h3.font-serif{font-size: 1.875rem}
  .glass-card{padding: 1.5rem}
  .booking-panel input, .booking-panel select{font-size: 16px}
  section{padding-top: 3rem ; padding-bottom: 3rem }
}

/* Helper to center section content on small screens */
.center-mobile{ text-align:left }
@media (max-width: 640px) {
  .center-mobile{ text-align:center }
}

@media (min-width: 768px) and (max-width: 1024px){
  h1.font-serif{font-size: 2.5rem}
  h2.font-serif{font-size: 2rem}
  h3.font-serif{font-size: 1.875rem}
  body{font-size: 1.1rem}
}

@media (min-width: 1025px) {
  .testimonial-carousel-wrapper{height: 340px}
  h1.font-serif{font-size: 3rem}
  h2.font-serif{font-size: 2.25rem}
  h3.font-serif{font-size: 1.95rem}
  body{font-size: 1.1rem}
  p{font-size: 1.05rem}
  .text-sm{font-size: 0.95rem}
  .text-base{font-size: 1.1rem}
}

/* Basic grid + gap helpers for templates using utility-like classes */
.grid{display:grid}

/* gap mapping (approximate sizes used in templates) */
[class*="gap-4"]{gap:1rem}
[class*="gap-6"]{gap:1.5rem}
[class*="gap-8"]{gap:2rem}
[class*="gap-10"]{gap:2.5rem}
[class*="gap-12"]{gap:3rem}

/* Responsive column helpers targeting utility-like class names used in templates */
@media (min-width:640px){
  [class*="sm:grid-cols-2"]{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:768px){
  [class*="md:grid-cols-2"]{grid-template-columns:repeat(2,1fr)}
  [class*="md:grid-cols-3"]{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1024px){
  [class*="lg:grid-cols-2"]{grid-template-columns:repeat(2,1fr)}
  [class*="lg:grid-cols-3"]{grid-template-columns:repeat(3,1fr)}
  /* fallback for custom fractional lg:grid-cols[...] usages: default to two columns */
  [class*="lg:grid-cols["]{grid-template-columns:repeat(2,1fr)}
}

/* Small-screen stacking for commonly used multi-column containers */
@media (max-width: 640px){
  .grid{grid-template-columns:1fr}
}

/* Premium UI helpers */
.reveal-hidden{will-change:opacity,transform;}
.nav-dropdown{background:rgba(10,10,10,0.85); backdrop-filter:blur(18px); border:1px solid rgba(255,255,255,0.08);}
.room-switch{transition:transform .22s ease, box-shadow .22s ease, background .22s ease;}
.room-switch:hover{transform:translateY(-1px); box-shadow:0 18px 40px rgba(15,23,42,0.08);}
.horizontal-card-slider{scrollbar-width:none;}
.horizontal-card-slider::-webkit-scrollbar{display:none;}
.room-details-cta, .room-book-btn{transition:transform .25s ease, box-shadow .25s ease, background .25s ease;}
.room-details-cta:hover, .room-book-btn:hover{transform:translateY(-2px);}
.availability-dialog{border-radius:2rem; box-shadow:0 32px 90px rgba(15,23,42,0.18);}
#booking-form .w-full button[type="submit"], #booking-form .w-full input[type="submit"]{border-radius:999px;}


.no-scrollbar::-webkit-scrollbar {
    display: none;
  }
  /* Hide scrollbar for IE, Edge and Firefox */
  .no-scrollbar {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
  }


