/* ============================================================
   Hotel Amar Palace — Main Stylesheet
   ============================================================ */

:root {
  --rust:        #8B3A1E;
  --rust-deep:   #5C2210;
  --rust-mid:    #A8491F;
  --rust-light:  #C46840;
  --rust-glow:   #D4824A;
  --sand:        #F5EDE0;
  --sand-deep:   #EDD9BE;
  --sand-warm:   #FAF4EC;
  --black:       #0A0604;
  --black-rich:  #110806;
  --text-dark:   #1C0D06;
  --text-mid:    #5A3525;
  --text-muted:  #9A7060;
  --white:       #FFFFFF;

  --radius-sm:  10px;
  --radius-md:  18px;
  --radius-lg:  28px;
  --shadow-rust:  0 8px 40px rgba(139,58,30,0.22);
  --shadow-deep:  0 24px 80px rgba(0,0,0,0.32);
  --shadow-card:  0 4px 28px rgba(92,34,16,0.10);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body { font-family: 'Jost', sans-serif; background: var(--sand-warm); color: var(--text-dark); overflow-x: hidden; }

::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--sand); }
::-webkit-scrollbar-thumb { background: var(--rust); border-radius: 3px; }

img { max-width: 100%; display: block; }
a { text-decoration: none; }

/* ── HEADER ── */
header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  padding: 0 56px; height: 76px;
  display: flex; align-items: center; justify-content: space-between;
  transition: all 0.4s ease;
  background: var(--white);
  border-bottom: 1px solid rgba(139,58,30,0.12);
}
header.scrolled {
  background: var(--white);
  box-shadow: 0 4px 24px rgba(92,34,16,0.10);
  border-bottom: 1px solid rgba(139,58,30,0.15); height: 64px;
}
.logo {
  font-family: 'Cinzel', serif; font-size: 22px; font-weight: 600;
  color: var(--rust-deep); letter-spacing: 0.12em; text-transform: uppercase;
  flex-shrink: 0; transition: color 0.3s;
  display: flex; align-items: center;
}
.logo-img { height: 60px; width: auto; object-fit: contain; }
.logo:hover { color: var(--rust); }

nav { display: flex; gap: 34px; align-items: center; }
nav a {
  font-size: 11.5px; font-weight: 500; color: var(--text-mid);
  letter-spacing: 0.18em; text-transform: uppercase;
  position: relative; padding-bottom: 3px; transition: color 0.3s;
}
nav a::after { content:''; position:absolute; bottom:0; left:50%; right:50%; height:1px; background:var(--rust-glow); transition:left .3s,right .3s; }
nav a:hover, nav a.active { color: var(--rust); }
nav a:hover::after, nav a.active::after { left:0; right:0; }

.header-right { display: flex; align-items: center; gap: 18px; }
.header-phone { font-size: 12px; color: var(--text-muted); letter-spacing: 0.04em; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.header-phone svg { width: 13px; height: 13px; stroke: var(--rust); fill: none; stroke-width: 2; }

.btn-book {
  padding: 10px 22px; background: var(--rust); color: var(--white);
  font-size: 11.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  border: none; border-radius: var(--radius-sm); cursor: pointer; white-space: nowrap; transition: all 0.3s;
}
.btn-book:hover { background: var(--rust-mid); transform: translateY(-1px); box-shadow: var(--shadow-rust); }

.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
.hamburger span { display: block; width: 24px; height: 1.5px; background: var(--rust-deep); transition: all 0.3s; }

/* MOBILE NAV */
.mobile-nav {
  display: none; position: fixed; inset: 0; background: var(--black-rich); z-index: 2000;
  flex-direction: column; align-items: center; justify-content: center; gap: 32px;
}
.mobile-nav.open { display: flex; }
.mobile-nav a { font-family: 'Cinzel', serif; font-size: 28px; color: var(--white); letter-spacing: 0.1em; transition: color 0.3s; }
.mobile-nav a:hover { color: var(--rust-glow); }
.mobile-close { position: absolute; top: 22px; right: 22px; background: none; border: none; cursor: pointer; }
.mobile-close svg { width: 28px; height: 28px; stroke: var(--rust-glow); fill: none; stroke-width: 1.5; }

/* ── BUTTONS ── */
.btn-primary {
  padding: 14px 34px; background: var(--rust); color: var(--white);
  font-family: 'Jost', sans-serif; font-size: 11.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
  border: none; border-radius: var(--radius-sm); cursor: pointer;
  display: inline-flex; align-items: center; gap: 8px; transition: all 0.3s;
}
.btn-primary:hover { background: var(--rust-mid); transform: translateY(-2px); box-shadow: 0 12px 36px rgba(139,58,30,0.36); }
.btn-primary svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform 0.3s; }
.btn-primary:hover svg { transform: translateX(3px); }

.btn-outline {
  padding: 14px 34px; background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.82);
  font-size: 11.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
  border: 1px solid rgba(255,255,255,0.28); border-radius: var(--radius-sm);
  cursor: pointer; backdrop-filter: blur(6px); transition: all 0.3s;
  display: inline-flex; align-items: center; gap: 8px;
}
.btn-outline:hover { border-color: var(--rust-glow); color: var(--rust-glow); background: rgba(139,58,30,0.12); }

.btn-learn { display: inline-flex; align-items: center; gap: 10px; padding: 13px 30px; border: 1.5px solid var(--rust); border-radius: var(--radius-sm); color: var(--rust); font-size: 11.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; transition: all 0.3s; }
.btn-learn:hover { background: var(--rust); color: var(--white); }
.btn-learn svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform 0.3s; }
.btn-learn:hover svg { transform: translateX(4px); }

.hero {
    height: 760px;
    min-height: 520px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;

    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}
.hero::before {
  content:''; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(5,2,1,0.55) 0%, rgba(5,2,1,0.72) 100%);
  pointer-events:none; z-index:1;
}
.hero-content { position:relative; z-index:2; max-width:760px; padding:0 24px; }
.hero-tag {
  display:inline-flex; align-items:center; gap:14px;
  font-size:10.5px; font-weight:600; color:var(--rust-glow); letter-spacing:0.34em; text-transform:uppercase; margin-bottom:22px;
}
.hero-tag::before,.hero-tag::after { content:''; display:inline-block; width:32px; height:1px; background:var(--rust-glow); opacity:.7; }
.hero-title { font-family:'Cinzel',serif; font-size:clamp(44px,7vw,90px); font-weight:600; line-height:1.05; color:var(--white); margin-bottom:6px; letter-spacing:.04em; }
.hero-title-sub { font-family:'EB Garamond',serif; font-size:clamp(16px,2.5vw,26px); font-style:italic; color:var(--rust-glow); letter-spacing:.06em; margin-bottom:22px; }
.hero-divider { width:52px; height:1px; background:var(--rust-glow); opacity:.5; margin:0 auto 26px; }
.hero-desc { font-size:15.5px; font-weight:300; color:rgba(255,255,255,0.58); line-height:1.8; margin-bottom:40px; max-width:500px; margin-left:auto; margin-right:auto; }
.hero-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.hero-scroll { position:absolute; bottom:32px; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:6px; opacity:.65; }
.hero-scroll span { font-size:9px; letter-spacing:.28em; text-transform:uppercase; color:var(--rust-glow); }
.scroll-line { width:1px; height:36px; background:linear-gradient(to bottom,var(--rust-glow),transparent); animation:scrollPulse 2s ease-in-out infinite; }
@keyframes scrollPulse{0%,100%{opacity:.4;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.15)}}

/* ── INFO BAR ── */
.info-bar { background:var(--rust-deep); display:flex; align-items:stretch; justify-content:center; flex-wrap:wrap; }
.info-item { display:flex; align-items:center; gap:10px; padding:18px 28px; color:rgba(255,255,255,.75); font-size:13px; border-right:1px solid rgba(255,255,255,.1); flex:1; justify-content:center; transition:background .3s; min-width:200px; }
.info-item:last-child { border-right:none; }
.info-item:hover { background:rgba(255,255,255,.05); }
.info-item svg { width:15px; height:15px; fill:none; stroke:var(--rust-glow); stroke-width:1.8; flex-shrink:0; }
.info-item strong { color:var(--white); font-weight:500; }

/* ── SECTION COMMON ── */
.section-tag { font-size:10px; font-weight:700; color:var(--rust); letter-spacing:.28em; text-transform:uppercase; margin-bottom:16px; display:flex; align-items:center; gap:10px; }
.section-tag::before { content:''; width:22px; height:1px; background:var(--rust); }
.section-tag.center { justify-content:center; }
.section-tag.light { color:var(--rust-glow); }
.section-tag.light::before { background:var(--rust-glow); }
.section-header { text-align:center; margin-bottom:60px; }
.section-title { font-family:'Cinzel',serif; font-size:clamp(32px,4vw,52px); font-weight:600; line-height:1.1; margin-bottom:14px; letter-spacing:.04em; }
.section-title.dark { color:var(--rust-deep); }
.section-title.light { color:var(--white); }
.section-desc { font-size:15px; max-width:520px; margin:0 auto; line-height:1.8; font-weight:300; }
.section-desc.dark { color:var(--text-muted); }
.section-desc.light { color:rgba(255,255,255,.45); }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s ease,transform .75s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── ABOUT ── */
#about { padding:110px 56px; max-width:1380px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.about-images { position:relative; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:280px 200px; gap:14px; }
.about-img { border-radius:var(--radius-md); overflow:hidden; }
.about-img:nth-child(1) { grid-column:1/3; }
.about-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.about-img:hover img { transform:scale(1.05); }
.about-badge { position:absolute; bottom:-22px; right:-22px; background:var(--rust); border-radius:var(--radius-md); padding:22px 26px; box-shadow:var(--shadow-rust); z-index:2; text-align:center; }
.about-badge-num { font-family:'Cinzel',serif; font-size:38px; font-weight:700; color:var(--white); line-height:1; }
.about-badge-label { font-size:11px; color:rgba(255,255,255,.75); font-weight:500; letter-spacing:.08em; margin-top:4px; }
.about-title { font-family:'Cinzel',serif; font-size:clamp(30px,3.5vw,48px); font-weight:600; line-height:1.15; color:var(--rust-deep); margin-bottom:18px; letter-spacing:.03em; }
.about-title em { font-style:italic; color:var(--rust); font-family:'EB Garamond',serif; font-size:1.1em; }
.about-desc { font-size:15px; line-height:1.85; color:var(--text-mid); margin-bottom:36px; font-weight:300; }
.counters { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:36px; }
.counter-item { padding:18px 22px; border:1px solid rgba(139,58,30,.15); border-radius:var(--radius-md); background:var(--white); transition:all .3s; box-shadow:var(--shadow-card); }
.counter-item:hover { border-color:var(--rust); transform:translateY(-2px); }
.counter-num { font-family:'Cinzel',serif; font-size:32px; font-weight:700; color:var(--rust-deep); line-height:1; }
.counter-label { font-size:11.5px; color:var(--text-muted); font-weight:400; margin-top:4px; }

/* ── AMENITIES ── */
#amenities { background:var(--black-rich); padding:100px 56px; position:relative; overflow:hidden; }
#amenities::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 15% 50%,rgba(139,58,30,.12) 0%,transparent 55%),radial-gradient(circle at 85% 30%,rgba(139,58,30,.08) 0%,transparent 50%); }
.amenities-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:1200px; margin:0 auto; position:relative; }
.amenity-card { background:rgba(255,255,255,.04); border-radius:var(--radius-lg); padding:34px 20px; text-align:center; border:1px solid rgba(139,58,30,.2); transition:all .35s ease; cursor:default; }
.amenity-card:hover { transform:translateY(-7px); border-color:var(--rust-glow); background:rgba(139,58,30,.08); box-shadow:0 16px 48px rgba(139,58,30,.22); }
.amenity-icon { width:60px; height:60px; border-radius:50%; border:1px solid rgba(139,58,30,.5); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; transition:all .35s; }
.amenity-card:hover .amenity-icon { background:var(--rust); border-color:var(--rust); }
.amenity-icon svg { width:24px; height:24px; fill:none; stroke:var(--rust-glow); stroke-width:1.5; transition:stroke .35s; }
.amenity-card:hover .amenity-icon svg { stroke:var(--white); }
.amenity-name { font-family:'Cinzel',serif; font-size:14.5px; font-weight:500; color:var(--white); margin-bottom:6px; letter-spacing:.05em; }
.amenity-desc { font-size:12px; color:rgba(255,255,255,.4); line-height:1.65; }

/* ── ROOMS ── */
#rooms { padding:100px 56px; background:var(--sand-warm); }
.rooms-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; max-width:1200px; margin:0 auto; }
/* Center 2 room categories */
.rooms-grid-two {
  grid-template-columns: repeat(2, 396px);
  justify-content: center;
}
.room-card { border-radius:var(--radius-lg); overflow:hidden; background:var(--white); border:1px solid rgba(139,58,30,.1); transition:all .35s ease; box-shadow:var(--shadow-card); }
.room-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-deep); }
.room-img { height:255px; overflow:hidden; position:relative; }
.room-img img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.room-card:hover .room-img img { transform:scale(1.07); }

/* ── Room Image Slider ── */
.rslider { position:relative; overflow:hidden; width:100%; height:100%; min-height:inherit; }
.rslider-track { display:flex; height:100%; transition:transform .45s cubic-bezier(.4,0,.2,1); will-change:transform; }
.rslider-slide { flex:0 0 100%; height:100%; min-height:inherit; overflow:hidden; }
.rslider-slide img { width:100%; height:100%; object-fit:cover; display:block; transition:none; }
.rslider-btn { position:absolute; top:50%; transform:translateY(-50%); width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.88); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:3; transition:all .2s; box-shadow:0 2px 8px rgba(0,0,0,.2); opacity:0; }
.room-img:hover .rslider-btn,
.room-detail-img:hover .rslider-btn { opacity:1; }
.rslider-btn:hover { background:#fff; transform:translateY(-50%) scale(1.1); }
.rslider-btn svg { width:14px; height:14px; fill:none; stroke:var(--rust); stroke-width:2.5; }
.rslider-prev { left:8px; }
.rslider-next { right:8px; }
.rslider-dots { position:absolute; bottom:8px; left:50%; transform:translateX(-50%); display:flex; gap:5px; z-index:3; }
.rslider-dot { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.55); border:none; cursor:pointer; padding:0; transition:all .25s; }
.rslider-dot.active { background:#fff; width:16px; border-radius:3px; }
.room-badge { position:absolute; top:14px; left:14px; background:var(--rust); color:var(--white); font-size:9.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; padding:5px 12px; border-radius:100px; }
.room-body { padding:26px 26px 30px; }
.room-name { font-family:'Cinzel',serif; font-size:20px; font-weight:600; color:var(--rust-deep); margin-bottom:10px; letter-spacing:.04em; }
.room-features { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.room-feat { display:flex; align-items:center; gap:5px; font-size:12px; color:var(--text-muted); }
.room-feat svg { width:12px; height:12px; fill:none; stroke:var(--rust); stroke-width:2; }
.room-price { display:flex; align-items:baseline; gap:4px; margin-bottom:18px; }
.room-from { font-size:11px; color:var(--text-muted); }
.room-price-num { font-family:'Cinzel',serif; font-size:28px; font-weight:600; color:var(--rust-deep); }
.room-price-per { font-size:11.5px; color:var(--text-muted); }
.room-divider { height:1px; background:rgba(139,58,30,.1); margin-bottom:18px; }
.btn-room { display:block; text-align:center; padding:12px; border:1.5px solid var(--rust); border-radius:var(--radius-sm); color:var(--rust); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; transition:all .3s; }
.btn-room:hover { background:var(--rust); color:var(--white); }

/* ── DINING ── */
#dining { background:var(--sand); padding:100px 56px; position:relative; overflow:hidden; }
.dining-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; position:relative; }
.dining-images { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:300px 190px; gap:12px; }
.dining-img { border-radius:var(--radius-md); overflow:hidden; }
.dining-img:first-child { grid-row:1/3; }
.dining-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.dining-img:hover img { transform:scale(1.04); }
.dining-title { font-family:'Cinzel',serif; font-size:clamp(30px,3.5vw,46px); font-weight:600; color:var(--rust-deep); line-height:1.15; margin-bottom:18px; letter-spacing:.03em; }
.dining-title em { font-style:italic; color:var(--rust); font-family:'EB Garamond',serif; font-size:1.1em; }
.dining-desc { font-size:15px; line-height:1.85; color:var(--text-mid); margin-bottom:32px; font-weight:300; }
.dining-features { display:flex; flex-direction:column; gap:12px; margin-bottom:36px; }
.dining-feat { display:flex; align-items:center; gap:12px; font-size:14px; color:var(--text-mid); }
.dining-feat-dot { width:5px; height:5px; border-radius:50%; background:var(--rust); flex-shrink:0; }
.btn-reserve { display:inline-flex; align-items:center; gap:10px; padding:14px 32px; background:var(--rust); color:var(--white); font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; border:none; border-radius:var(--radius-sm); cursor:pointer; transition:all .3s; }
.btn-reserve:hover { background:var(--rust-mid); transform:translateY(-2px); box-shadow:var(--shadow-rust); }

/* ── TESTIMONIALS ── */
#testimonials { padding:100px 56px; background:var(--black-rich); position:relative; overflow:hidden; }
#testimonials::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%,rgba(139,58,30,.1) 0%,transparent 60%); }
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:1200px; margin:0 auto; position:relative; }
.testi-card { padding:34px 28px; border-radius:var(--radius-lg); border:1px solid rgba(139,58,30,.2); background:rgba(255,255,255,.03); transition:all .3s; }
.testi-card:hover { transform:translateY(-4px); border-color:rgba(196,104,64,.4); box-shadow:0 16px 48px rgba(139,58,30,.18); }
.testi-stars { display:flex; gap:3px; margin-bottom:18px; }
.testi-star { width:13px; height:13px; fill:var(--rust-glow); }
.testi-quote { font-family:'EB Garamond',serif; font-size:18px; line-height:1.65; color:rgba(255,255,255,.8); font-style:italic; margin-bottom:24px; }
.testi-quote::before { content:'\201C'; color:var(--rust-glow); font-size:44px; line-height:0; vertical-align:-.38em; margin-right:4px; }
.testi-author { display:flex; align-items:center; gap:13px; }
.testi-avatar { width:44px; height:44px; border-radius:50%; background:var(--rust-deep); display:flex; align-items:center; justify-content:center; flex-shrink:0; border:1.5px solid var(--rust-glow); }
.testi-avatar span { font-family:'Cinzel',serif; font-size:17px; font-weight:600; color:var(--rust-glow); }
.testi-name { font-size:13.5px; font-weight:600; color:var(--white); }
.testi-loc { font-size:11.5px; color:rgba(255,255,255,.35); margin-top:2px; }

/* ── GALLERY PAGE ── */
.gallery-page { padding:100px 56px; background:var(--sand-warm); min-height:60vh; }
.gallery-filter { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:40px; }
.filter-btn { padding:8px 20px; border:1.5px solid rgba(139,58,30,.3); border-radius:100px; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--rust); background:none; cursor:pointer; transition:all .3s; }
.filter-btn.active,.filter-btn:hover { background:var(--rust); color:var(--white); border-color:var(--rust); }
.gallery-masonry { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; max-width:1200px; margin:0 auto 40px; }
.gallery-item { border-radius:var(--radius-md); overflow:hidden; position:relative; cursor:pointer; aspect-ratio:4/3; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-item:hover img { transform:scale(1.07); }
.gallery-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(92,34,16,.82),transparent 55%); opacity:0; transition:opacity .3s; display:flex; align-items:flex-end; padding:18px; }
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-overlay span { font-family:'Cinzel',serif; font-size:12px; color:var(--white); letter-spacing:.08em; }

/* ── GALLERY SECTION ON HOME ── */
.gallery-section { padding:100px 56px; background:var(--sand-warm); }
.gallery-grid-home { max-width:1200px; margin:0 auto 36px; display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.gallery-grid-home .gallery-item { height:250px; aspect-ratio:unset; }

/* ── LIGHTBOX ── */
.lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,.95); z-index:9999; align-items:center; justify-content:center; }
.lightbox.open { display:flex; }
.lightbox-inner { position:relative; max-width:90vw; max-height:90vh; }
.lightbox-inner img { max-width:90vw; max-height:85vh; border-radius:var(--radius-md); object-fit:contain; }
.lightbox-close { position:absolute; top:-40px; right:0; background:none; border:none; cursor:pointer; color:var(--white); font-size:28px; line-height:1; }
.lightbox-prev,.lightbox-next { position:fixed; top:50%; transform:translateY(-50%); background:rgba(139,58,30,.7); border:none; color:var(--white); width:48px; height:48px; border-radius:50%; cursor:pointer; font-size:20px; transition:background .3s; display:flex; align-items:center; justify-content:center; }
.lightbox-prev { left:20px; }
.lightbox-next { right:20px; }
.lightbox-prev:hover,.lightbox-next:hover { background:var(--rust); }
.lightbox-caption { position:absolute; bottom:-36px; left:0; right:0; text-align:center; color:rgba(255,255,255,.6); font-size:13px; font-family:'Cinzel',serif; letter-spacing:.08em; }

/* ── CTA BAND ── */
.cta-section { background:var(--rust); padding:80px 56px; text-align:center; position:relative; overflow:hidden; }
.cta-section::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,var(--rust-deep) 0%,var(--rust) 50%,var(--rust-mid) 100%); }
.cta-inner { position:relative; z-index:1; max-width:700px; margin:0 auto; }
.cta-title { font-family:'Cinzel',serif; font-size:clamp(28px,4vw,48px); font-weight:600; color:var(--white); line-height:1.15; margin-bottom:16px; letter-spacing:.04em; }
.cta-desc { font-size:15px; color:rgba(255,255,255,.7); line-height:1.8; margin-bottom:36px; font-weight:300; }
.btn-cta { display:inline-flex; align-items:center; gap:10px; padding:16px 40px; background:var(--white); color:var(--rust-deep); font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; border:none; border-radius:var(--radius-sm); cursor:pointer; transition:all .3s; }
.btn-cta:hover { background:var(--sand); transform:translateY(-2px); box-shadow:0 12px 36px rgba(0,0,0,.25); }

/* ── CONTACT PAGE ── */
.contact-page { padding:120px 56px 80px; max-width:1200px; margin:0 auto; }
.contact-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:60px; }
.contact-info-box { padding:40px; background:var(--black-rich); border-radius:var(--radius-lg); }
.contact-info-box h3 { font-family:'Cinzel',serif; font-size:24px; color:var(--white); margin-bottom:28px; letter-spacing:.06em; }
.contact-detail { display:flex; align-items:flex-start; gap:14px; margin-bottom:22px; }
.contact-detail svg { width:18px; height:18px; fill:none; stroke:var(--rust-glow); stroke-width:1.5; flex-shrink:0; margin-top:2px; }
.contact-detail-text strong { font-size:12px; color:var(--rust-glow); font-weight:600; letter-spacing:.12em; text-transform:uppercase; display:block; margin-bottom:4px; }
.contact-detail-text span { font-size:14px; color:rgba(255,255,255,.6); line-height:1.6; }
.contact-map { margin-top:24px; border-radius:var(--radius-md); overflow:hidden; height:200px; background:rgba(255,255,255,.05); display:flex; align-items:center; justify-content:center; }
.contact-map iframe { width:100%; height:100%; border:0; }
.contact-form-box { background:var(--white); padding:48px; border-radius:var(--radius-lg); box-shadow:var(--shadow-card); }
.contact-form-box h3 { font-family:'Cinzel',serif; font-size:24px; color:var(--rust-deep); margin-bottom:28px; letter-spacing:.06em; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:11.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--rust); margin-bottom:8px; }
.form-group input,.form-group textarea,.form-group select { width:100%; padding:13px 16px; background:var(--sand-warm); border:1.5px solid rgba(139,58,30,.2); border-radius:var(--radius-sm); font-family:'Jost',sans-serif; font-size:14px; color:var(--text-dark); outline:none; transition:border-color .3s; }
.form-group input:focus,.form-group textarea:focus,.form-group select:focus { border-color:var(--rust); }
.form-group textarea { resize:vertical; min-height:130px; }
.btn-submit { width:100%; padding:16px; background:var(--rust); color:var(--white); font-family:'Jost',sans-serif; font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; border:none; border-radius:var(--radius-sm); cursor:pointer; transition:all .3s; }
.btn-submit:hover { background:var(--rust-mid); transform:translateY(-1px); }
.form-msg { padding:12px 16px; border-radius:var(--radius-sm); font-size:14px; margin-top:16px; display:none; }
.form-msg.success { background:#f0fff4; color:#276749; border:1px solid #9ae6b4; display:block; }
.form-msg.error   { background:#fff5f5; color:#c53030; border:1px solid #fed7d7; display:block; }

/* ── PAGE HERO (inner pages) ── */
.page-hero {
  height:340px; position:relative; display:flex; align-items:center; justify-content:center; text-align:center;
  background-size:cover; background-position:center;
}
.page-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,2,1,.6) 0%,rgba(5,2,1,.75) 100%); }
.page-hero-content { position:relative; z-index:1; padding:0 56px; max-width:1100px; width:100%; }
.page-hero-title { font-family:'Cinzel',serif; font-size:clamp(28px,4vw,58px); font-weight:600; color:var(--white); letter-spacing:.06em; margin-bottom:12px; line-height:1.15; }
.breadcrumb { display:flex; align-items:center; justify-content:center; gap:8px; font-size:13px; color:rgba(255,255,255,.6); }
.breadcrumb a { color:var(--rust-glow); }
.breadcrumb span { color:rgba(255,255,255,.4); }

/* ── ROOMS PAGE ── */
.rooms-page { padding:80px 56px; max-width:1380px; margin:0 auto; }
.room-detail-card { display:grid; grid-template-columns:1.2fr 1fr; gap:60px; align-items:start; margin-bottom:80px; background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); }
.room-detail-card:nth-child(even) { direction:rtl; }
.room-detail-card:nth-child(even) > * { direction:ltr; }
.room-detail-img { height:440px; overflow:hidden; position:relative; }
.room-detail-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.room-detail-body { padding:48px 48px 48px 0; }
.room-detail-card:nth-child(even) .room-detail-body { padding:48px 0 48px 48px; }

/* ── ABOUT PAGE ── */
.about-page { padding:80px 56px; max-width:1380px; margin:0 auto; }
.about-full-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; margin-bottom:80px; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.service-card { padding:36px 28px; background:var(--white); border-radius:var(--radius-lg); border:1px solid rgba(139,58,30,.12); text-align:center; transition:all .3s; box-shadow:var(--shadow-card); }
.service-card:hover { transform:translateY(-6px); border-color:var(--rust); box-shadow:var(--shadow-rust); }
.service-icon { width:64px; height:64px; border-radius:50%; border:1.5px solid var(--rust); display:flex; align-items:center; justify-content:center; margin:0 auto 20px; transition:all .35s; }
.service-card:hover .service-icon { background:var(--rust); }
.service-icon svg { width:26px; height:26px; fill:none; stroke:var(--rust); stroke-width:1.5; transition:stroke .35s; }
.service-card:hover .service-icon svg { stroke:var(--white); }
.service-name { font-family:'Cinzel',serif; font-size:16px; font-weight:600; color:var(--rust-deep); margin-bottom:10px; }
.service-desc { font-size:13.5px; color:var(--text-muted); line-height:1.7; }

/* ── FOOTER ── */
footer { background:var(--black); border-top:1px solid rgba(139,58,30,.2); }
.footer-main { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:48px; max-width:1380px; margin:0 auto; padding:68px 56px 52px; }
.footer-desc { font-size:13.5px; line-height:1.8; color:rgba(255,255,255,.38); margin-bottom:26px; font-weight:300; margin-top:14px; }
.footer-social { display:flex; gap:10px; }
.social-btn { width:36px; height:36px; border-radius:50%; border:1px solid rgba(139,58,30,.4); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.45); transition:all .3s; }
.social-btn:hover { border-color:var(--rust-glow); color:var(--rust-glow); }
.social-btn svg { width:14px; height:14px; fill:currentColor; }
.footer-col h4 { font-family:'Cinzel',serif; font-size:14px; font-weight:600; color:var(--white); letter-spacing:.08em; margin-bottom:22px; padding-bottom:10px; border-bottom:1px solid rgba(139,58,30,.25); }
.footer-links { display:flex; flex-direction:column; gap:11px; }
.footer-links a { font-size:13px; color:rgba(255,255,255,.4); letter-spacing:.02em; transition:color .3s; display:flex; align-items:center; gap:8px; }
.footer-links a:hover { color:var(--rust-glow); }
.footer-links a::before { content:'–'; color:rgba(139,58,30,.4); font-size:12px; }
.footer-contact-item { display:flex; align-items:flex-start; gap:11px; margin-bottom:13px; }
.footer-contact-item svg { width:14px; height:14px; fill:none; stroke:var(--rust-glow); stroke-width:1.5; flex-shrink:0; margin-top:2px; }
.footer-contact-item span { font-size:13px; color:rgba(255,255,255,.4); line-height:1.55; }
.footer-newsletter-label { font-size:11.5px; color:rgba(196,104,64,.7); margin-bottom:12px; margin-top:4px; letter-spacing:.04em; }
.newsletter-form { display:flex; flex-direction:column; gap:10px; }
.newsletter-input { padding:12px 14px; background:rgba(255,255,255,.05); border:1px solid rgba(139,58,30,.25); border-radius:var(--radius-sm); font-family:'Jost',sans-serif; font-size:13.5px; color:var(--white); outline:none; transition:border-color .3s; }
.newsletter-input::placeholder { color:rgba(255,255,255,.22); }
.newsletter-input:focus { border-color:var(--rust-glow); }
.btn-subscribe { padding:12px 18px; background:var(--rust); color:var(--white); font-family:'Jost',sans-serif; font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; border:none; border-radius:var(--radius-sm); cursor:pointer; transition:all .3s; }
.btn-subscribe:hover { background:var(--rust-mid); }
.nl-msg { font-size:13px; margin-top:6px; }
.footer-partners { border-top:1px solid rgba(139,58,30,.15); padding:48px 0; }
.partners-label { text-align:center; font-size:10px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.25); margin-bottom:28px; }
.partners-track { display:flex; max-width:1000px; margin:0 auto; overflow:hidden; -webkit-mask-image:linear-gradient(to right,transparent 0%,black 15%,black 85%,transparent 100%); mask-image:linear-gradient(to right,transparent 0%,black 15%,black 85%,transparent 100%); }
.partners-slide { display:flex; animation:slide 22s linear infinite; }
@keyframes slide{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.partner-item { flex-shrink:0; width:160px; height:64px; display:flex; align-items:center; justify-content:center; padding:0 20px; filter:grayscale(1) opacity(.3); transition:filter .3s; }
.partner-item:hover { filter:grayscale(0) opacity(1); }
.partner-item span { font-family:'Cinzel',serif; font-size:13.5px; color:var(--rust-glow); letter-spacing:.06em; }
.footer-bottom-wrap { border-top:1px solid rgba(255,255,255,.05); }
.footer-bottom { padding:18px 56px; max-width:1380px; margin:0 auto; display:flex; justify-content:center; align-items:center; text-align:center; }
.footer-copy { font-size:11.5px; color:rgba(255,255,255,.22); letter-spacing:.04em; }
.footer-bottom-links { display:flex; gap:18px; }
.footer-bottom-links a { font-size:11.5px; color:rgba(255,255,255,.22); transition:color .3s; }
.footer-bottom-links a:hover { color:var(--rust-glow); }

/* Footer logo (smaller text, bigger image, sits on dark background) */
.footer-col .logo { color: var(--white); font-size: 15px; letter-spacing: 0.1em; }
.footer-col .logo:hover { color: var(--rust-glow); }
.footer-col .logo-img { height: 70px; }

/* ── ALERT MESSAGES ── */
.alert { padding:14px 20px; border-radius:var(--radius-sm); font-size:14px; margin-bottom:20px; }
.alert-success { background:#f0fff4; color:#276749; border:1px solid #9ae6b4; }
.alert-error   { background:#fff5f5; color:#c53030; border:1px solid #fed7d7; }

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  nav { display:none; }
  .hamburger { display:flex; }
  .header-phone { display:none; }
  header { padding:0 24px; }
  #about { grid-template-columns:1fr; padding:80px 28px; gap:56px; }
  .about-badge { right:0; }
  .amenities-grid { grid-template-columns:repeat(2,1fr); }
  .rooms-grid { grid-template-columns:1fr 1fr; }
  .dining-inner { grid-template-columns:1fr; gap:48px; }
  .testi-grid { grid-template-columns:1fr 1fr; }
  .gallery-masonry { grid-template-columns:repeat(3,1fr); }
  .gallery-grid-home { grid-template-columns:repeat(3,1fr); }
  .footer-main { grid-template-columns:1fr 1fr; gap:36px; padding:52px 28px 40px; }
  .footer-bottom { padding:16px 28px; }
  .contact-grid { grid-template-columns:1fr; }
  .about-full-grid { grid-template-columns:1fr; }
  .services-grid { grid-template-columns:1fr 1fr; }
  .room-detail-card { grid-template-columns:1fr; direction:ltr !important; }
  .room-detail-body,.room-detail-card:nth-child(even) .room-detail-body { padding:32px; }
  .room-detail-img { height:300px; }
  #amenities,#rooms,#dining,.gallery-page,.gallery-section,#testimonials,.cta-section,.contact-page,.about-page,.rooms-page { padding-left:28px; padding-right:28px; }
  .info-bar { display:none; }
}
@media(max-width:768px){
  .amenities-grid { grid-template-columns:repeat(2,1fr); gap:12px; }
  .testi-grid { grid-template-columns:1fr; }
  .gallery-masonry { grid-template-columns:repeat(2,1fr); }
  .gallery-grid-home { grid-template-columns:repeat(2,1fr); }
  .gallery-grid-home .gallery-item { height:180px; }
  .dining-images { grid-template-columns:1fr; grid-template-rows:220px 160px 160px; }
  .dining-img:first-child { grid-row:auto; }
  .services-grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
}
@media(max-width:600px){
  header { padding:0 18px; height:68px; }
  .logo { font-size:18px; }
  .logo-img { height:44px; }
  .hero-btns { flex-direction:column; align-items:center; }
  .btn-primary,.btn-outline { width:100%; max-width:280px; justify-content:center; }
  .counters { grid-template-columns:1fr 1fr; gap:12px; }
  .rooms-grid { grid-template-columns:1fr; }
  .gallery-masonry { grid-template-columns:repeat(2,1fr); gap:8px; }
  .gallery-grid-home { grid-template-columns:repeat(2,1fr); gap:8px; }
  .footer-main { grid-template-columns:1fr; padding:44px 18px 32px; }
  .footer-bottom { padding:14px 18px; flex-direction:column; text-align:center; }
  #amenities,#rooms,#dining,.gallery-page,.gallery-section,#testimonials,.cta-section,.contact-page,.about-page,.rooms-page { padding-left:18px; padding-right:18px; }
  #about { padding:60px 18px; }
  .contact-form-box { padding:28px 20px; }
  .contact-page { padding:100px 18px 60px; }
  .footer-col .logo-img { height:56px; }
}

/* ── ADDITIONAL RESPONSIVE FIXES ─────────────────────────── */

/* Page hero on mobile */
@media(max-width:600px){
  .page-hero { height:260px; }
  .page-hero-content { padding:0 24px; }
  .page-hero-title { font-size:clamp(22px,6vw,36px); }
  .breadcrumb { font-size:12px; gap:5px; flex-wrap:wrap; justify-content:center; }
}

/* About page */
@media(max-width:768px){
  .about-images { grid-template-columns:1fr; grid-template-rows:220px 160px 160px; }
  .about-images .about-img:nth-child(1) { grid-column:1; }
  .about-badge { bottom:-16px; right:0; padding:16px 20px; }
  .about-badge-num { font-size:28px; }
  .about-page { padding:60px 18px; }
}
@media(max-width:600px){
  .about-title { font-size:28px; }
  .counters { grid-template-columns:1fr 1fr; }
  .counter-num { font-size:26px; }
}

/* Rooms listing page */
@media(max-width:768px){
  .rooms-page { padding:52px 18px; }
  .room-detail-card { flex-direction:column; }
  .room-detail-img { height:220px; }
  .room-detail-body { padding:22px 18px; }
  .room-detail-card:nth-child(even) .room-detail-body { padding:22px 18px; }
}
@media(max-width:600px){
  .rooms-grid { grid-template-columns:1fr; }
  .room-img { height:200px; }
}

/* Gallery page */
@media(max-width:600px){
  .gallery-page { padding:60px 18px; }
  .gallery-masonry { grid-template-columns:repeat(2,1fr); gap:8px; }
  .gallery-item { aspect-ratio:1; }
  .gallery-filter { gap:6px; }
  .filter-btn { padding:7px 14px; font-size:11px; }
}

/* Contact page */
@media(max-width:600px){
  .contact-page { padding:90px 18px 48px; }
  .contact-grid { gap:24px; }
  .contact-info-box { padding:24px 18px; }
  .contact-info-box h3 { font-size:18px; }
  .contact-form-box h3 { font-size:18px; }
  .contact-map { height:160px; }
}

/* CTA section */
@media(max-width:600px){
  .cta-section { padding:56px 18px; }
  .btn-cta { padding:14px 28px; font-size:11.5px; }
}

/* Hero section */
@media(max-width:480px){
  .hero-tag { font-size:9px; letter-spacing:.2em; }
  .hero-tag::before,.hero-tag::after { width:20px; }
  .hero-desc { font-size:14px; }
}

/* Amenities section */
@media(max-width:480px){
  #amenities { padding:60px 16px; }
  .amenities-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .amenity-card { padding:22px 12px; }
  .amenity-icon { width:50px; height:50px; }
  .amenity-name { font-size:13px; }
  .amenity-desc { font-size:11px; }
}

/* Testimonials */
@media(max-width:600px){
  #testimonials { padding:60px 18px; }
  .testi-quote { font-size:16px; }
}

/* Dining section */
@media(max-width:600px){
  #dining { padding:60px 18px; }
  .dining-title { font-size:26px; }
}

/* Rooms section on homepage */
@media(max-width:600px){
  #rooms { padding:60px 18px; }
}

/* Gallery section on homepage */
@media(max-width:600px){
  .gallery-section { padding:60px 18px; }
  .gallery-grid-home { grid-template-columns:repeat(2,1fr); gap:8px; }
  .gallery-grid-home .gallery-item { height:150px; }
}

/* Footer */
@media(max-width:480px){
  .footer-main { gap:28px; }
  .footer-col h4 { font-size:13px; }
  .footer-links a { font-size:12px; }
  .footer-desc { font-size:12.5px; }
  .footer-bottom { flex-direction:column; text-align:center; gap:8px; }
  .footer-bottom-links { flex-wrap:wrap; justify-content:center; gap:12px; }
}

/* Info bar */
@media(max-width:1024px){
  .info-bar { display:none; }
}

/* Lightbox on mobile */
@media(max-width:600px){
  .lightbox-inner img { max-width:95vw; }
  .lightbox-prev { left:8px; width:38px; height:38px; font-size:16px; }
  .lightbox-next { right:8px; width:38px; height:38px; font-size:16px; }
}

/* Button full width on mobile */
@media(max-width:480px){
  .btn-primary,.btn-outline,.btn-learn,.btn-reserve,.btn-cta {
    width:100%; max-width:100%; justify-content:center;
  }
  .hero-btns .btn-primary,
  .hero-btns .btn-outline { max-width:280px; }
}