:root{
  --sky-blue:#8ECAE6;
  --blue-green:#219EBC;
  --prussian-blue:#023047;
  --selective-yellow:#FFB703;
  --ut-orange:#FB8500;
  --white:#ffffff;
  --light-bg:#f8fafc;
  --text-dark:#1f2937;
  --gray:#6b7280;
  --shadow:0 24px 60px rgba(2,48,71,.14);
  --radius:8px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Inter","Segoe UI",Arial,sans-serif;
  color:var(--text-dark);
  background:var(--white);
  line-height:1.7;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.section{padding:96px 0}
.section-sm{padding:64px 0}
.bg-soft{background:var(--light-bg)}
.kicker{color:var(--ut-orange);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.section-title{font-family:"Playfair Display",Georgia,serif;color:var(--prussian-blue);font-size:clamp(2rem,4vw,3.6rem);line-height:1.08;margin:8px 0 18px}
.lead-muted{color:var(--gray);max-width:760px}
.btn-luxury{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:46px;padding:12px 22px;border-radius:var(--radius);
  border:1px solid var(--selective-yellow);background:var(--selective-yellow);
  color:var(--prussian-blue);font-weight:800;transition:.25s ease;
}
.btn-luxury:hover{background:var(--ut-orange);border-color:var(--ut-orange);color:var(--white);transform:translateY(-2px)}
.btn-outline-luxury{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:46px;padding:12px 22px;border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.75);color:var(--white);font-weight:800;transition:.25s ease;
}
.btn-outline-luxury:hover{background:var(--white);color:var(--prussian-blue)}

.preloader{position:fixed;inset:0;background:var(--prussian-blue);display:grid;place-items:center;z-index:9999;transition:.35s}
.preloader.hide{opacity:0;visibility:hidden}
.loader-mark{width:58px;height:58px;border:4px solid rgba(255,255,255,.18);border-top-color:var(--selective-yellow);border-radius:50%;animation:spin .8s linear infinite}

.topbar{background:var(--prussian-blue);color:rgba(255,255,255,.86);font-size:.88rem;padding:8px 0}
.navbar{background:rgba(255,255,255,.92);backdrop-filter:blur(14px);box-shadow:0 8px 28px rgba(2,48,71,.08)}
.navbar-brand{font-family:"Playfair Display",Georgia,serif;font-size:1.65rem;color:var(--prussian-blue);font-weight:800}
.navbar-brand span{color:var(--ut-orange)}
.nav-link{font-weight:700;color:var(--prussian-blue)!important;font-size:.94rem}
.nav-link:hover,.nav-link.active{color:var(--ut-orange)!important}
.mega-menu{min-width:620px;border:0;border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}
.search-popup{position:fixed;inset:0;background:rgba(2,48,71,.88);z-index:9998;display:none;place-items:center;padding:24px}
.search-popup.open{display:grid}
.search-box{width:min(680px,100%);background:var(--white);padding:28px;border-radius:var(--radius)}

.hero{position:relative;min-height:calc(100vh - 88px);color:var(--white);overflow:hidden}
.hero .swiper,.hero .swiper-wrapper,.hero .swiper-slide{min-height:calc(100vh - 88px)}
.hero-slide{position:relative;display:flex;align-items:center;background-size:cover;background-position:center}
.hero-slide:before,.page-hero:before,.parallax:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,48,71,.82),rgba(2,48,71,.34))}
.hero-content{position:relative;z-index:1;max-width:760px}
.hero h1,.page-hero h1{font-family:"Playfair Display",Georgia,serif;font-size:clamp(3rem,8vw,6.8rem);line-height:.95;margin-bottom:22px}
.hero p{font-size:1.15rem;max-width:680px;color:rgba(255,255,255,.9)}
.booking-widget{
  position:relative;z-index:5;margin-top:-74px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);
  box-shadow:var(--shadow);border-radius:var(--radius);padding:22px;
}
.form-label{font-weight:800;color:var(--prussian-blue)}
.form-control,.form-select{min-height:48px;border-radius:var(--radius);border:1px solid #dbe4ea}
.form-control:focus,.form-select:focus{border-color:var(--blue-green);box-shadow:0 0 0 .2rem rgba(33,158,188,.15)}

.feature-card,.room-card,.offer-card,.blog-card,.event-card,.testimonial-card,.price-card,.info-card{
  background:var(--white);border:1px solid #e8eef3;border-radius:var(--radius);box-shadow:0 12px 36px rgba(2,48,71,.07);
  overflow:hidden;transition:.25s ease;height:100%;
}
.feature-card:hover,.room-card:hover,.offer-card:hover,.blog-card:hover,.event-card:hover,.price-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.feature-card{padding:28px}
.feature-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:rgba(33,158,188,.12);color:var(--blue-green);font-size:1.25rem;margin-bottom:18px}
.card-body-spacious{padding:26px}
.room-card img,.blog-card img,.event-card img{height:245px;width:100%;object-fit:cover}
.amenities{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.amenities span{background:#edf7fa;color:var(--prussian-blue);padding:6px 10px;border-radius:999px;font-size:.82rem;font-weight:700}
.image-tile{position:relative;overflow:hidden;border-radius:var(--radius);min-height:330px;background-size:cover;background-position:center;color:var(--white)}
.image-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(2,48,71,.84))}
.image-tile-content{position:absolute;left:24px;right:24px;bottom:24px;z-index:1}

.parallax{position:relative;background-attachment:fixed;background-size:cover;background-position:center;color:var(--white)}
.stat{padding:24px;text-align:center}
.stat strong{display:block;font-family:"Playfair Display",Georgia,serif;font-size:3rem;color:var(--selective-yellow)}
.gallery-filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:28px}
.filter-btn{border:1px solid #dbe4ea;background:var(--white);border-radius:999px;padding:9px 16px;font-weight:800;color:var(--prussian-blue)}
.filter-btn.active,.filter-btn:hover{background:var(--prussian-blue);color:var(--white)}
.gallery-item{cursor:pointer}
.gallery-item img{height:260px;width:100%;object-fit:cover;border-radius:var(--radius)}
.lightbox{position:fixed;inset:0;background:rgba(2,48,71,.92);z-index:9997;display:none;place-items:center;padding:24px}
.lightbox.open{display:grid}
.lightbox img{max-height:84vh;border-radius:var(--radius);box-shadow:var(--shadow)}

.page-hero{position:relative;min-height:460px;display:flex;align-items:center;color:var(--white);background-size:cover;background-position:center}
.page-hero .container{position:relative;z-index:1}
.breadcrumb-custom{display:flex;gap:8px;flex-wrap:wrap;color:rgba(255,255,255,.82);font-weight:700}
.timeline{border-left:3px solid var(--blue-green);padding-left:26px}
.timeline-item{position:relative;margin-bottom:28px}
.timeline-item:before{content:"";position:absolute;left:-36px;top:8px;width:17px;height:17px;border-radius:50%;background:var(--selective-yellow);border:3px solid var(--white);box-shadow:0 0 0 4px rgba(255,183,3,.24)}
.sidebar-box{border:1px solid #e8eef3;border-radius:var(--radius);padding:24px;margin-bottom:22px;background:var(--white)}

.footer{background:#031f2f;color:rgba(255,255,255,.76);padding-top:72px}
.footer h5{color:var(--white);font-weight:800;margin-bottom:20px}
.footer a{display:block;margin-bottom:10px;color:rgba(255,255,255,.76)}
.footer a:hover{color:var(--selective-yellow)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:22px 0;margin-top:46px}
.floating-actions{position:fixed;right:18px;bottom:18px;z-index:990;display:flex;flex-direction:column;gap:10px}
.float-btn{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:var(--white);box-shadow:0 10px 26px rgba(0,0,0,.22)}
.float-whatsapp{background:#25d366}.float-call{background:var(--ut-orange)}.back-top{background:var(--prussian-blue);border:0}

@keyframes spin{to{transform:rotate(360deg)}}
