/* ==========================================================
   Final cleanup layer — loaded last
   Purpose: lock visual consistency after style.css + luxury-theme.css
   ========================================================== */

:root{
  --final-header-height: 76px;
  --final-container-pad: clamp(18px, 3vw, 32px);
}

html{scroll-behavior:smooth;overflow-x:hidden;}
body{overflow-x:hidden;text-rendering:optimizeLegibility;}
img,video,iframe{max-width:100%;height:auto;}

/* Header / navigation */
.header{
  position:sticky;
  top:0;
  z-index:1000;
  min-height:var(--final-header-height);
  background:rgba(255,255,255,.92) !important;
  border-bottom:1px solid rgba(22,34,51,.08) !important;
  box-shadow:0 10px 28px rgba(15,26,39,.05) !important;
  backdrop-filter:blur(18px);
}
.home .header,
body:has(.hero-home-refined) .header{
  background:rgba(255,255,255,.92) !important;
  border-bottom-color:rgba(255,255,255,.12) !important;
  box-shadow:none !important;
  position:absolute;
  left:0;
  right:0;
  top:0;
}
.header .container{
  min-height:var(--final-header-height);
  display:flex;
  align-items:center;
  gap:24px;
}
.logo{min-width:0;}
.logo strong,.logo span{white-space:nowrap;}
.menu{display:flex;align-items:center;gap:clamp(14px,1.8vw,26px);}
.menu>a,.dropdown>a{white-space:nowrap;}
.header-actions{display:flex;align-items:center;gap:10px;}
.mobile-toggle{flex:0 0 auto;}

/* Hero / slider */
.hero-home-refined{
  min-height:min(860px,100svh);
  padding-top:0 !important;
  isolation:isolate;
}
.hero-home-refined .refined-grid{
  min-height:min(860px,100svh);
  padding-top:calc(var(--final-header-height) + 0px) !important;
  padding-bottom:clamp(72px,9vw,54px) !important;
  align-items:center;
}
.hero-slider-shell{
  min-height:clamp(420px,54vh,560px) !important;
  display:grid;
  align-content:center;
}
.hero-slide h1{
  max-width:820px;
  font-size:var(--font-size-4xl);
  line-height:1.02 !important;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.hero-slide p{
  max-width:680px;
  font-size:var(--font-size-base);
  line-height:1.78 !important;
}
.hero-trust-list{max-width:680px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:5px;align-items:center;}
.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-width:760px;}
.hero-slider-controls{align-items:center;gap:5px;margin-top:24px !important;}
.hero-slider-progress{
  height:2px !important;
  min-height:2px !important;
  max-height:2px !important;
  width:min(240px,100%) !important;
  max-width:240px !important;
  margin-top:12px !important;
  border-radius:999px;
  background:rgba(255,255,255,.18) !important;
  box-shadow:none !important;
}
.hero-slider-progress span{
  height:2px !important;
  min-height:2px !important;
  max-height:2px !important;
  border-radius:999px;
}
.hero-booking-panel{
  position:relative;
  max-width:440px !important;
  width:100%;
  margin-left:auto;
}
.quick-grid{gap:12px !important;}
.quick-grid .field input,
.quick-grid .field select,
.booking-form-pro input,
.booking-form-pro select,
.booking-form-pro textarea{
  min-height:46px;
}

/* Sections */
section{position:relative;padding-top:clamp(58px,7vw,86px) !important;padding-bottom:clamp(58px,7vw,86px) !important;}
.section-head{gap:24px;align-items:flex-end;}
.section-head h2,.page-hero h1,.content-box h2,.cta-band h2,.post-content h2{text-wrap:balance;}
.card,.content-box,.room-card-pro,.news-card,.offer-card-home,.service-feature-card,.mini-info-card,.policy-card,.testimonial-card,.booking-summary-pro{
  max-width:100%;
}
.home-room-grid,.news-grid,.offer-grid-home,.testimonial-grid,.policy-grid,.quick-benefit-grid,.feature-strip-grid,.journey-grid,.footer-grid{
  gap:clamp(18px,2.5vw,28px) !important;
}
.home-room-card.featured{will-change:transform;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;}

/* Page hero */
.page-hero{padding-top:clamp(96px,12vw,138px) !important;padding-bottom:clamp(64px,8vw,98px) !important;}
.page-hero .container{position:relative;z-index:2;}
.page-meta-grid{gap:16px !important;}

/* Footer */
.footer{position:relative;}
.footer-grid{align-items:start;}
.footer a{word-break:break-word;}
.copy{gap:16px;flex-wrap:wrap;}
.copy-links{display:flex;gap:12px;flex-wrap:wrap;}

/* Mobile nav */
.mobile-nav{z-index:3000;}
.mobile-nav-panel{max-width:min(420px,88vw);}
.mobile-nav-body a{min-height:42px;display:flex;align-items:center;}
body.nav-open{overflow:hidden;}

@media (max-width:1180px){
  .menu{gap:14px;}
  .header-actions>a.btn{display:none;}
  .hero-home-refined .refined-grid{grid-template-columns:minmax(0,1fr);gap:34px;min-height:auto;}
  .hero-booking-panel{max-width:760px !important;margin-left:0;}
}

@media (max-width:980px){
  :root{--final-header-height:70px;}
  .topbar{display:none !important;}
  .header,.home .header,body:has(.hero-home-refined) .header{
    position:sticky;
    background:rgba(255,255,255,.92) !important;
    border-bottom:1px solid rgba(22,34,51,.08) !important;
    box-shadow:0 10px 24px rgba(15,26,39,.06) !important;
  }
  .header .container{min-height:var(--final-header-height);}
  .menu,.header-actions{display:none !important;}
  .mobile-toggle{display:inline-flex !important;}
  .hero-home-refined{min-height:auto;}
  .hero-home-refined .refined-grid{
    padding-top:clamp(42px,8vw,64px) !important;
    padding-bottom:clamp(64px,10vw,96px) !important;
  }
  .hero-slider-shell{min-height:auto !important;}
  .hero-slider-controls{justify-content:space-between;width:100%;}
  .hero-slider-progress{flex:1 1 180px;width:auto !important;max-width:none !important;}
  .hero-stats,.feature-strip-grid,.journey-grid,.offer-grid-home,.page-meta-grid,.home-room-grid,.news-grid,.testimonial-grid,.policy-grid,.quick-benefit-grid,.footer-grid{
    grid-template-columns:1fr 1fr !important;
  }
  .booking-layout-pro,.contact-layout-pro,.room-detail-pro,.room-card-pro{grid-template-columns:1fr !important;}
  .sticky-box{position:static !important;}
}

@media (max-width:680px){
  :root{--final-header-height:66px;}
  .container{padding-left:var(--final-container-pad) !important;padding-right:var(--final-container-pad) !important;}
  .logo-mark{width:42px !important;height:42px !important;border-radius:13px !important;}
  .logo span{font-size:var(--font-size-2xs);}
  .logo strong{font-size:var(--font-size-lg);}
  .hero-slide h1{font-size:var(--font-size-4xl);line-height:1.04 !important;}
  .hero-slide p{font-size:var(--font-size-md);line-height:1.72 !important;}
  .hero-actions .btn{width:100%;}
  .hero-trust-list{display:grid;grid-template-columns:1fr;}
  .hero-stats,.feature-strip-grid,.journey-grid,.offer-grid-home,.page-meta-grid,.home-room-grid,.news-grid,.testimonial-grid,.policy-grid,.quick-benefit-grid,.footer-grid,.detail-grid-2,.detail-specs-grid,.booking-summary-pro .summary-lines{
    grid-template-columns:1fr !important;
  }
  .stat-card,.trust-pill{padding:13px 14px !important;}
  .hero-slider-controls{gap:10px;}
  .hero-slider-btn{width:42px !important;height:42px !important;}
  .hero-slider-dots{gap:8px;padding:7px 9px;}
  .hero-slider-dot{width:11px !important;height:11px !important;}
  .hero-slider-dot.active{width:26px !important;}
  .hero-booking-panel{padding:18px !important;border-radius:18px !important;}
  .booking-panel-head{display:block !important;}
  .quick-grid{grid-template-columns:1fr !important;}
  .section-head{display:block !important;}
  .section-head .btn,.section-head a.btn{margin-top:16px;}
  section{padding-top:54px !important;padding-bottom:54px !important;}
  .page-hero{padding-top:82px !important;padding-bottom:64px !important;}
  .page-hero h1{font-size:var(--font-size-3xl);}
  .content-box{padding:18px !important;border-radius:18px !important;}
  .home-room-card .card-media,.news-card .media{height:220px !important;}
  .footer-grid{gap:28px !important;}
  .copy,.copy-links{display:grid;grid-template-columns:1fr;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;scroll-behavior:auto !important;transition-duration:.01ms !important;}
}


/* ==========================================================
   Booking popup, working room filter, premium booking page
   ========================================================== */
.room-filter-pills{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.room-filter-pills .pill{border:1px solid rgba(181,138,82,.18);background:rgba(255,255,255,.82);cursor:pointer;font:inherit;}
.room-filter-pills .pill.active{background:linear-gradient(135deg,#c19863,#8f683a);color:#fff;border-color:transparent;box-shadow:0 12px 24px rgba(143,104,58,.18);}
.room-showcase-grid-enhanced{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch;}
.room-card-pro-premium{display:flex;flex-direction:column;border:1px solid rgba(16,26,39,.08);background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.94));box-shadow:0 16px 34px rgba(15,26,39,.05);transition:.28s ease;}
.room-card-pro-premium.filtered-out{display:none!important;}
.room-card-media-wrap{position:relative;overflow:hidden;border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;}
.room-card-pro-premium .room-card-media{height:250px;transition:.6s ease;}
.room-card-pro-premium:hover .room-card-media{transform:scale(1.04);}
.room-card-floating-tags{position:absolute;left:16px;right:16px;bottom:14px;display:flex;flex-wrap:wrap;gap:8px;z-index:2;}
.room-card-floating-tags span{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:rgba(10,18,29,.62);color:#fff;font-size:var(--font-size-xs);font-weight:700;backdrop-filter:blur(8px);}
.room-card-pro-premium .room-card-body{display:flex;flex-direction:column;gap:16px;padding:22px!important;flex:1 1 auto;}
.room-card-sub{margin:8px 0 0;color:var(--muted);line-height:1.7;}
.room-quick-specs{display:flex;flex-wrap:wrap;gap:10px;}
.room-quick-specs span{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:999px;background:rgba(181,138,82,.10);color:var(--heading);font-weight:700;font-size:var(--font-size-base);}
.room-quick-specs i{color:var(--gold);}
.room-feature-checks{display:grid;gap:10px;margin:0;}
.room-card-bottom{margin-top:auto;display:grid;gap:14px;}
.room-benefit-note{padding:14px 16px;border-radius:16px;background:linear-gradient(180deg,rgba(245,237,223,.72),rgba(255,255,255,.92));border:1px solid rgba(181,138,82,.16);}
.room-benefit-note strong{display:block;color:var(--heading);margin-bottom:4px;}
.room-benefit-note span{display:block;color:var(--text);line-height:1.65;}
.room-card-pro-premium .room-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.room-card-pro-premium .room-actions .btn{width:100%;}
.room-empty-state{margin-top:22px;padding:28px;border-radius:22px;text-align:center;background:rgba(255,255,255,.86);border:1px solid rgba(16,26,39,.08);box-shadow:0 12px 24px rgba(15,26,39,.05);}
.room-empty-state i{font-size:30px;color:var(--gold);}
.room-empty-state strong{display:block;margin-top:8px;color:var(--heading);}
.room-empty-state span{display:block;margin-top:6px;color:var(--muted);}
.room-assurance-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px;}
.room-assurance-strip>div{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.72);border:1px solid rgba(16,26,39,.08);box-shadow:0 12px 24px rgba(15,26,39,.04);}
.room-assurance-strip i{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(181,138,82,.12);color:var(--gold);font-size:var(--font-size-2xl);flex:0 0 auto;}
.room-assurance-strip span{color:var(--heading);font-weight:700;line-height:1.5;}

.booking-modal-open{overflow:hidden;}
.booking-modal{position:fixed;inset:0;z-index:5000;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(8,14,24,.62);backdrop-filter:blur(10px);}
.booking-modal.open{display:flex;}
.booking-modal-dialog{width:min(980px,100%);max-height:min(88vh,820px);overflow:auto;border-radius:28px;background:linear-gradient(180deg,#fff,#fbf7f0);box-shadow:0 36px 90px rgba(0,0,0,.28);position:relative;border:1px solid rgba(255,255,255,.38);}
.booking-modal-close{position:absolute;right:16px;top:16px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(16,26,39,.08);background:rgba(255,255,255,.88);display:grid;place-items:center;cursor:pointer;z-index:2;}
.booking-modal-grid{display:grid;grid-template-columns:.92fr 1.08fr;min-height:560px;}
.booking-modal-visual{padding:28px;background:linear-gradient(140deg,rgba(14,24,37,.82),rgba(14,24,37,.48)),url('/website-assets/website-visual-fallback.svg') center/cover;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;gap:18px;}
.booking-modal-visual .modal-room-kicker{display:inline-flex;width:max-content;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#f8e9c8;font-weight:700;}
.booking-modal-visual h3{font-size:var(--font-size-xl);line-height:1.08;margin:0;color:#fff;}
.booking-modal-visual p{color:rgba(255,255,255,.86);line-height:1.8;margin:0;}
.booking-modal-benefits{display:grid;gap:10px;}
.booking-modal-benefits span{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.9);}
.booking-modal-form{padding:34px;}
.booking-modal-form h3{font-size:var(--font-size-xl);margin:0 0 8px;color:var(--heading);}
.booking-modal-form p{margin:0 0 18px;color:var(--muted);line-height:1.7;}
.modal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.modal-form-grid .field.full{grid-column:1/-1;}
.modal-form-grid input,.modal-form-grid select,.modal-form-grid textarea{width:100%;}
.booking-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}
.booking-success-message{display:none;margin-top:14px;padding:13px 14px;border-radius:16px;background:rgba(58,138,92,.10);border:1px solid rgba(58,138,92,.20);color:#285b3f;font-weight:700;}
.booking-success-message.show{display:block;}

.booking-progress-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px;}
.booking-progress-item{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.74);border:1px solid rgba(16,26,39,.08);box-shadow:0 12px 24px rgba(15,26,39,.04);}
.booking-progress-item i{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(181,138,82,.12);color:var(--gold);font-size:var(--font-size-2xl);}
.booking-progress-item span{font-weight:700;color:var(--heading);line-height:1.5;}
.booking-progress-item.active{background:linear-gradient(180deg,rgba(244,234,217,.78),rgba(255,255,255,.92));border-color:rgba(181,138,82,.18);}
.booking-layout-premium{align-items:start;}
.booking-form-card-premium,.booking-summary-premium,.booking-policy-premium,.booking-contact-premium{border-radius:26px!important;}
.premium-booking-form{margin-top:20px;}
.premium-booking-form .field label{font-weight:800;color:var(--heading);}
.booking-submit-row{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;}
.premium-note{display:flex;gap:10px;align-items:flex-start;}
.premium-note i{color:var(--gold);font-size:var(--font-size-2xl);flex:0 0 auto;}
.booking-benefit-list{display:grid;gap:12px;margin-top:16px;}
.booking-benefit-list>div{display:flex;gap:10px;align-items:flex-start;padding:13px 14px;border-radius:16px;background:rgba(255,255,255,.88);border:1px solid rgba(16,26,39,.08);}
.booking-benefit-list i{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:12px;background:rgba(181,138,82,.12);color:var(--gold);flex:0 0 auto;}
.booking-benefit-list span{line-height:1.6;color:var(--text);font-weight:650;}
.policy-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}
.policy-mini-grid>div{padding:13px;border-radius:14px;background:rgba(248,250,252,.94);border:1px solid rgba(16,26,39,.08);}
.policy-mini-grid span{display:block;font-size:var(--font-size-xs);font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#8a95a5;}
.policy-mini-grid strong{display:block;margin-top:4px;color:var(--heading);}
.premium-support-stack{display:grid!important;gap:10px!important;margin-top:14px!important;}
.premium-support-stack a{display:flex!important;align-items:center;gap:10px;padding:13px 14px;border-radius:16px;background:rgba(255,255,255,.88);border:1px solid rgba(16,26,39,.08);}
.premium-support-stack i{color:var(--gold);font-size:var(--font-size-2xl);}

@media (max-width:1180px){
  .room-showcase-grid-enhanced{grid-template-columns:1fr 1fr;}
  .booking-modal-grid{grid-template-columns:1fr;}
  .booking-modal-visual{min-height:320px;}
}
@media (max-width:980px){
  .room-assurance-strip,.booking-progress-strip{grid-template-columns:1fr;}
  .booking-submit-row{grid-template-columns:1fr;}
}
@media (max-width:680px){
  .room-showcase-grid-enhanced{grid-template-columns:1fr;}
  .room-card-pro-premium .room-card-media{height:230px;}
  .room-card-pro-premium .room-actions,.booking-modal-actions,.modal-form-grid,.policy-mini-grid{grid-template-columns:1fr;}
  .room-card-floating-tags{left:12px;right:12px;bottom:12px;}
  .booking-modal{padding:12px;}
  .booking-modal-dialog{border-radius:22px;max-height:92vh;}
  .booking-modal-form{padding:24px 18px;}
  .booking-modal-visual{padding:24px 18px;min-height:280px;}
}
