.section-title{text-align:center; font-size:clamp(24px,4vw,38px); margin-bottom:14px;}
.section-sub{text-align:center; color:var(--muted); max-width:560px; margin:0 auto 44px; font-size:15px;}

/* Hero */
.hero{position:relative; min-height:96vh; display:flex; align-items:flex-end; background:#000;}
.hero img.bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.7;}
.hero::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,9,6,.35) 0%, rgba(10,9,6,.55) 45%, var(--bg) 100%);}
.hero-inner{position:relative; z-index:2; width:100%; padding-top:150px;}
.hero-text{max-width:640px; margin-right:0;}
.hero-text h1{font-size:clamp(34px,6vw,58px); line-height:1.25; margin-bottom:16px;}
.hero-text h1 .gold{color:var(--gold-light);}
.hero-text p.lead{color:var(--muted); font-size:16px; max-width:480px; margin-bottom:30px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:60px;}
.amenity-strip{display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.08); padding:26px 0;}
.amenity{display:flex; align-items:center; gap:10px; flex:1 1 140px; min-width:140px;}
.amenity .ico{width:42px; height:42px; border-radius:50%; border:1px solid var(--gold-dim); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:17px; flex-shrink:0;}
.amenity .t{font-size:13px; color:var(--ivory); font-weight:600;}
.amenity .d{font-size:11px; color:var(--muted);}

/* Availability card */
.avail-card{position:relative; z-index:5; background:var(--bg-panel-2); border:1px solid var(--divider); border-radius:var(--radius); padding:26px; max-width:1000px; box-shadow:0 30px 60px rgba(0,0,0,.45);}
.avail-card h3{font-size:16px; text-align:center; margin-bottom:20px; display:flex; align-items:center; justify-content:center; gap:10px;}
.avail-card h3 .ico{color:var(--gold);}
.avail-grid{display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:14px; align-items:end;}
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-size:12px; color:var(--muted);}
.field .box{background:var(--bg); border:1px solid var(--divider); border-radius:var(--radius); padding:12px 14px; font-size:14px; color:var(--ivory); display:flex; align-items:center; justify-content:space-between; font-family:inherit;}
.avail-grid .btn{height:46px; white-space:nowrap;}
.avail-note{text-align:center; font-size:12px; color:var(--muted); margin-top:16px;}
#availResults{margin-top:6px;}

/* Rooms preview grid */
.rooms-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.room-card{background:var(--bg-panel); border:1px solid var(--divider); border-radius:var(--radius); overflow:hidden; transition:.3s;}
.room-card:hover{transform:translateY(-4px); border-color:var(--gold-dim);}
.room-card .img-wrap{position:relative; aspect-ratio:4/3; overflow:hidden;}
.room-card .img-wrap img{width:100%; height:100%; object-fit:cover;}
.room-card .badge{position:absolute; top:12px; right:12px; background:rgba(10,9,6,.75); color:var(--gold-light); font-size:11px; padding:5px 10px; border:1px solid var(--gold-dim); border-radius:20px;}
.room-card .status{position:absolute; bottom:12px; left:12px; background:rgba(10,9,6,.75);}
.room-card .body{padding:18px;}
.room-card .title{font-size:16px; font-weight:700; margin-bottom:8px;}
.room-meta{display:flex; gap:14px; color:var(--muted); font-size:12px; margin-bottom:14px;}
.room-price{display:flex; align-items:baseline; justify-content:space-between; border-top:1px solid var(--divider); padding-top:14px;}
.room-price .from{font-size:11px; color:var(--muted);}
.room-price .amount{font-size:15px; color:var(--gold-light); font-weight:700;}
.room-card .btn{width:100%; margin-top:14px; padding:11px;}

/* Split sections */
.split{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
.split img{border-radius:var(--radius); aspect-ratio:4/3; object-fit:cover; width:100%;}
.split .content h2{font-size:clamp(22px,4vw,30px); margin-bottom:18px;}
.split .content p{color:var(--muted); font-size:14.5px; margin-bottom:26px;}
.feature-list{list-style:none; display:flex; flex-direction:column; gap:12px; margin-bottom:26px;}
.feature-list li{display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--ivory);}
.feature-list li::before{content:"✦"; color:var(--gold);}

/* Gallery */
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:150px; gap:12px;}
.gallery-grid a{grid-column:span 1; grid-row:span 1; overflow:hidden; border-radius:var(--radius); position:relative;}
.gallery-grid a:first-child{grid-column:span 2; grid-row:span 2;}
.gallery-grid img{width:100%; height:100%; object-fit:cover; transition:.4s;}
.gallery-grid a:hover img{transform:scale(1.06);}

/* Reviews */
.review-card{max-width:620px; margin:0 auto; text-align:center; background:var(--bg-panel); border:1px solid var(--divider); padding:40px; border-radius:var(--radius); position:relative;}
.review-card .quote-mark{font-size:44px; color:var(--gold-dim); font-family:serif; line-height:1;}
.review-card p{color:var(--ivory); font-size:15px; margin:14px 0 22px;}
.review-card .stars{color:var(--gold); letter-spacing:3px; margin-bottom:14px;}
.review-card .who{display:flex; flex-direction:column; align-items:center; gap:2px;}
.review-card .who .n{font-weight:700; font-size:14px;}
.review-card .who .c{font-size:12px; color:var(--muted);}
.review-dots{display:flex; justify-content:center; gap:8px; margin-top:24px;}
.review-dots span{width:7px; height:7px; border-radius:50%; background:var(--divider); cursor:pointer;}
.review-dots span.active{background:var(--gold);}

/* Attractions */
.attractions-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
.attraction{position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:3/4;}
.attraction img{width:100%; height:100%; object-fit:cover;}
.attraction::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.85),transparent 60%);}
.attraction .info{position:absolute; bottom:12px; right:12px; left:12px; z-index:2;}
.attraction .info .n{font-size:13px; font-weight:700;}
.attraction .info .d{font-size:11px; color:var(--gold-light);}

/* Newsletter */
.newsletter{background:var(--bg-panel); border:1px solid var(--divider); border-radius:var(--radius); padding:44px; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;}
.newsletter h3{font-size:20px; margin-bottom:8px;}
.newsletter p{color:var(--muted); font-size:13.5px;}
.newsletter form{display:flex; gap:0; flex:1 1 360px; max-width:420px;}
.newsletter input{flex:1; background:var(--bg); border:1px solid var(--divider); border-left:none; color:var(--ivory); padding:0 16px; font-family:inherit; border-radius:0 var(--radius) var(--radius) 0; font-size:13px;}
.newsletter button{border-radius:var(--radius) 0 0 var(--radius); padding:0 22px;}

@media (max-width:1024px){ .rooms-grid{grid-template-columns:repeat(2,1fr);} .attractions-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:860px){
  .avail-grid{grid-template-columns:1fr 1fr;} .avail-grid .btn{grid-column:1/-1;}
  .split{grid-template-columns:1fr; gap:30px;} .split .img-order-2{order:-1;}
  .gallery-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:130px;} .gallery-grid a:first-child{grid-column:span 2;}
}
@media (max-width:640px){
  .rooms-grid{grid-template-columns:1fr;} .attractions-grid{grid-template-columns:repeat(2,1fr);}
  .amenity-strip{justify-content:flex-start;} .hero-inner{padding-top:120px;} .avail-card{padding:20px;}
}
