
:root{
  --lux-ease:cubic-bezier(.22,.61,.36,1);
  --lux-ease-in:cubic-bezier(.4,0,.2,1);
  --lux-ease-out:cubic-bezier(.0,.0,.58,1);
  --lux-ease-smooth:cubic-bezier(.34,.69,.66,.99);
  --lux-speed:.8s;
  --lux-speed-slow:1.2s;
  --lux-speed-fast:.5s;
}
html{overflow-x:hidden}
body{overflow-x:hidden}
body:not(.is-loaded){overflow:hidden}
img,video{max-width:100%;height:auto}
.container,.footer-content{width:min(calc(100% - 32px),1280px)!important}
.section,.trophy-section,.dark-banner,.cta-band{position:relative;overflow:hidden}
.section-heading,.split-copy,.feature-card,.team-card,.service-panel,.escape-card,.stat,.panel__content,.hero-static__inner,.hero__content,.footer-section,.gallery-strip img,.mosaic figure,.trophy-grid img{
  will-change:transform,opacity;
}

/* Premium loader with luxury touch */
.site-loader{
  position:fixed;inset:0;z-index:9999;
  display:grid;place-items:center;
  background:radial-gradient(circle at top, rgba(198,164,106,.12), transparent 35%), #050505;
  backdrop-filter:blur(2px);
  transition:opacity .7s var(--lux-ease), visibility .7s var(--lux-ease);
  overflow:hidden;
}
.site-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}

/* Venetian Blind Effect */
.site-loader__blinds {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
}

.site-loader__blind {
  flex: 1;
  background: rgba(5, 5, 5, 0.98);
  transform: translateY(0);
  animation: openBlind 1.8s cubic-bezier(0.34, 0.69, 0.66, 0.99) forwards;
}

@keyframes openBlind {
  0% { transform: translateY(0); will-change: transform; }
  100% { transform: translateY(-100%); }
}

.site-loader__inner{display:grid;justify-items:center;gap:18px;padding:24px;animation:loaderPulse 2s var(--lux-ease-smooth) infinite;position:relative;z-index:10}
.site-loader__mark{width:92px;height:92px;border-radius:50%;border:1px solid rgba(198,164,106,.28);display:grid;place-items:center;position:relative}
.site-loader__mark::before,
.site-loader__mark::after{content:"";position:absolute;inset:10px;border-radius:50%;border-top:2px solid rgba(198,164,106,.95);border-right:2px solid transparent;animation:luxSpin 1.6s linear infinite}
.site-loader__mark::after{inset:22px;border-top-color:rgba(255,255,255,.55);animation-direction:reverse;animation-duration:1.2s;box-shadow:0 0 24px rgba(198,164,106,.2)}
.site-loader__label{font-family:'Alta',serif;letter-spacing:.28em;text-transform:uppercase;color:#f4efe6;font-size:.8rem;animation:fadeInUp .8s var(--lux-ease-out) .12s both}
.site-loader__sub{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,239,230,.52);animation:fadeInUp .8s var(--lux-ease-out) .24s both}
@keyframes luxSpin{to{transform:rotate(360deg)}}
@keyframes loaderPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.98);opacity:.94}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* Premium Motion states with staggered reveals */
.motion-ready [data-reveal]{
  opacity:0;
  transform:translate3d(0,42px,0) scale(.92);
  transition:opacity var(--lux-speed) var(--lux-ease), 
             transform var(--lux-speed) var(--lux-ease), 
             filter var(--lux-speed) var(--lux-ease);
  filter:blur(10px);
}
.motion-ready [data-reveal="left"]{transform:translate3d(-64px,28px,0) scale(.88)}
.motion-ready [data-reveal="right"]{transform:translate3d(64px,28px,0) scale(.88)}
.motion-ready [data-reveal="zoom"]{transform:translate3d(0,32px,0) scale(.85)}
.motion-ready [data-reveal].is-inview{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0);
}
.motion-ready [data-reveal][data-delay="1"]{transition-delay:.12s}
.motion-ready [data-reveal][data-delay="2"]{transition-delay:.24s}
.motion-ready [data-reveal][data-delay="3"]{transition-delay:.36s}
.motion-ready [data-reveal][data-delay="4"]{transition-delay:.48s}

/* Enhanced float / parallax with smoother physics */
[data-float]{transform:translate3d(var(--float-x,0px), var(--float-y,0px), 0)}
.motion-ready .hero-static,
.motion-ready .panel,
.motion-ready .panel-full,
.motion-ready .dark-banner,
.motion-ready .cta-band{background-attachment:scroll}
.hero-static::after,.panel::after,.panel-full::after,.dark-banner::after,.cta-band::after{
  content:"";position:absolute;inset:auto 0 0 0;height:22%;pointer-events:none;
  background:linear-gradient(to top, rgba(0,0,0,.18), transparent);
}

/* Premium hover polish with multiple states */
.feature-card,.team-card,.service-panel,.escape-card,.stat,.split-copy,.panel,.panel-full,.mosaic figure,.gallery-strip img,.trophy-grid img,.faq-question{
  transition:transform .5s var(--lux-ease), 
             box-shadow .5s var(--lux-ease), 
             border-color .5s var(--lux-ease), 
             filter .5s var(--lux-ease),
             background-color .5s var(--lux-ease) !important;
}

@media (hover:hover){
  /* Card hover effects */
  .feature-card:hover,.team-card:hover,.service-panel:hover,.escape-card:hover,.stat:hover,.split-copy:hover,.mosaic figure:hover,.gallery-strip img:hover,.trophy-grid img:hover{
    transform:translateY(-12px);
    box-shadow:0 28px 72px rgba(0,0,0,.35), 0 0 40px rgba(198,164,106,.12);
    border-color:rgba(198,164,106,.42);
    filter:brightness(.96);
  }
  
  /* Image zoom on hover */
  .panel:hover img.panel__bg,.panel-full:hover img.panel__bg{
    transform:scale(1.062)
  }
  .panel img.panel__bg,.panel-full img.panel__bg{
    transition:transform 1.6s var(--lux-ease-smooth)
  }
  
  /* Button animations */
  .btn-static:hover,.btn-panel:hover,.btn:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 42px rgba(0,0,0,.28), 0 0 24px rgba(198,164,106,.18);
    letter-spacing:.06em;
  }
  
  /* FAQ question hover */
  .faq-question:hover{
    color:#c6a46a;
    transform:translateX(6px);
  }
}

/* Button ripple on active */
.btn-static,.btn-panel,.btn{
  position:relative;
  overflow:hidden;
}
.btn-static::before,.btn-panel::before,.btn::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:0;
  height:0;
  border-radius:50%;
  background:rgba(255,255,255,.2);
  transform:translate(-50%,-50%);
  transition:width .6s, height .6s;
}
.btn-static:active::before,.btn-panel:active::before,.btn:active::before{
  width:300px;
  height:300px;
}

/* Progress bar with gradient */
.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  height:3px;
  width:0;
  background:linear-gradient(90deg, #c6a46a 0%, #f4efe6 50%, #c6a46a 100%);
  z-index:9998;
  box-shadow:0 0 24px rgba(198,164,106,.5), inset 0 0 12px rgba(198,164,106,.3);
  transition:width .1s linear;
}

/* Smooth page transitions with fade and blur */
.page-transition-overlay{
  position:fixed;
  inset:0;
  background:radial-gradient(circle at center, rgba(7,7,7,.8), #050505);
  opacity:0;
  pointer-events:none;
  z-index:9997;
  transition:opacity .5s var(--lux-ease);
  backdrop-filter:blur(0px);
}
body.is-transitioning .page-transition-overlay{
  opacity:1;
  pointer-events:auto;
  backdrop-filter:blur(4px);
}
main,header,footer{
  transition:opacity .45s var(--lux-ease), 
             transform .45s var(--lux-ease),
             filter .45s var(--lux-ease);
}
body.is-transitioning main,body.is-transitioning header,body.is-transitioning footer{
  opacity:.08;
  transform:translateY(16px);
  filter:blur(2px);
}

/* Page reveal float-up animation */
body:not(.is-loaded) main{
  opacity:0;
  transform:translateY(48px);
}
body.is-loaded.reveal-content main{
  animation:contentFloatUp .8s var(--lux-ease-out) forwards;
}
@keyframes contentFloatUp{
  from{opacity:0;transform:translateY(48px);filter:blur(6px)}
  to{opacity:1;transform:translateY(0);filter:blur(0)}
}

/* Fixed Header */
header.sticky-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:100;
  width:100%;
  background:rgba(7,7,7,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(198,164,106,.08);
}

/* WhatsApp Floating Action Button */
.whatsapp-fab{
  position:fixed;
  bottom:28px;
  right:28px;
  z-index:90;
  width:60px;
  height:60px;
  border-radius:50%;
  background:url('/images/Icons/WhatsaApp.png') center/60px 60px no-repeat;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  box-shadow:0 8px 28px rgba(37,211,102,.35);
  transition:all .4s var(--lux-ease);
  animation:fabBounceIn .6s var(--lux-ease-out) .8s both;
}
.whatsapp-fab:hover{
  transform:translateY(-8px) scale(1.12);
  box-shadow:0 16px 42px rgba(37,211,102,.5);
}
.whatsapp-fab:active{
  transform:translateY(-4px) scale(1.08);
}

@keyframes fabBounceIn{
  0%{opacity:0;transform:scale(.3) translateY(20px)}
  50%{opacity:1}
  100%{opacity:1;transform:scale(1) translateY(0)}
}

@media (max-width:768px){
  .whatsapp-fab{
    width:56px;
    height:56px;
    bottom:20px;
    right:20px;
  }
  .whatsapp-fab svg{
    width:28px;
    height:28px;
  }
}

/* Enhanced responsive layouts */
main{
  padding-top:80px;
  transition:padding-top .3s var(--lux-ease);
}
.cards-3,.cards-4,.team-grid,.services-grid,.escape-grid,.gallery-strip,.stats-band{
  align-items:stretch;
}
.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards-4,.services-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.team-grid,.escape-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
.stats-band{grid-template-columns:repeat(4,minmax(0,1fr))}
.footer-sections,.footer-bottom{align-items:start}
.nav,.nav--desktop{flex-wrap:wrap}
.panel__content,.split-copy,.feature-card,.team-card .copy,.service-panel .copy,.escape-card .copy{padding:clamp(18px,2vw,38px)}
.hero-static__inner{padding-inline:0}
.hero-static h1,.section-heading h2,.split-copy h2,.dark-banner h2,.cta-band h2{
  text-wrap:balance;
}
.section-heading p,.hero-static p,.split-copy p,.panel__content p,.cta-band p,.dark-banner p{max-width:70ch}

@media (max-width: 1180px){
  .cards-4,.services-grid,.gallery-strip,.stats-band{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-grid,.escape-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .panel-row{grid-template-columns:1fr}
  .panel-stack{display:grid;grid-template-columns:1fr 1fr}
}
@media (max-width: 900px){
  .container,.footer-content{width:min(calc(100% - 24px),1280px)!important}
  .section,.trophy-section,.dark-banner,.cta-band{padding-top:64px!important;padding-bottom:64px!important}
  .split-feature{grid-template-columns:1fr!important}
  .hero-static{min-height:88svh!important}
  .hero-static__inner{padding:92px 0 48px!important}
  .panel,.panel-full{min-height:380px}
  .panel--half{min-height:280px}
  .footer-sections,.footer-bottom{grid-template-columns:1fr!important}
  main{padding-top:72px}
}
@media (max-width: 640px){
  .cards-3,.cards-4,.team-grid,.services-grid,.escape-grid,.gallery-strip,.stats-band,.mosaic,.panel-stack,.trophy-grid{grid-template-columns:1fr!important}
  .hero-static h1{font-size:clamp(2.5rem,12vw,4rem)!important}
  .section-heading h2,.split-copy h2,.dark-banner h2,.cta-band h2{font-size:clamp(1.9rem,8.5vw,3rem)!important}
  .panel__content h2{font-size:clamp(1.5rem,8vw,2.3rem)!important}
  .btn-row{gap:12px}
  .btn-static,.btn-panel,.btn{width:100%;justify-content:center}
  .panel__content p,.split-copy p,.section-heading p,.hero-static p{font-size:.96rem}
  .header__inner{gap:12px}
  main{padding-top:64px}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .site-loader{display:none!important}
  [data-reveal], [data-float], .panel img.panel__bg, .panel-full img.panel__bg, main, header, footer {
    transition:none!important;
    transform:none!important;
    animation:none!important;
    filter:none!important;
    opacity:1!important;
  }
}
