/* assets/css/website.css — Nova Palace PUBLIC WEBSITE design system
   (dedicated to the guest-facing site only — the PMS/admin panel
   keeps its own existing assets untouched: custom.css, main.css.)
   ================================================================
   Direction: this is a highway hotel + multicuisine restaurant on
   Likabali Road in Silapathar, Assam. The signature motif is drawn
   from the gamosa — the red-and-white woven cotton cloth Assamese
   households keep for guests, offered as the first gesture of
   hospitality. Its woven temple/zigzag border ("kalka") is the one
   graphic device this design allows itself; everywhere else is
   quiet paper, ink and two restrained accents (thread red, tea
   green). Numerals run in a mono face, like guesthouse ledger
   entries — this is a place with a real register at the desk. */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,650&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --paper:#F7F1E4;
  --paper-alt:#EEE4CE;
  --card:#FFFDF8;
  --ink:#211C16;
  --ink-dim:#756A57;
  --thread:#A32A26;
  --thread-deep:#7A1E1B;
  --tea:#3E5A45;
  --tea-deep:#2C4132;
  --line: rgba(33,28,22,0.15);
  --line-strong: rgba(33,28,22,0.30);
  --shadow-soft: 0 1px 2px rgba(33,28,22,0.05), 0 8px 22px rgba(33,28,22,0.06);
  --shadow-lift: 0 6px 10px rgba(33,28,22,0.06), 0 18px 40px rgba(33,28,22,0.10);
  --ease: cubic-bezier(.2,.7,.3,1);

  --gold: var(--thread); --gold-bright: var(--thread); --gold-dim: var(--thread-deep);
  --brass: var(--thread); --brass-pale: var(--paper-alt);
  --mustard: var(--thread);
  --cream: var(--ink); --cream-dim: var(--ink-dim); --cream-soft: var(--paper-alt);
  --emerald: var(--tea); --emerald-light: var(--tea-deep); --emerald-deep: var(--tea-deep);
  --forest: var(--tea); --forest-pale: var(--paper-alt); --forest-deep: var(--tea-deep);
  --teal: var(--tea); --teal-pale: var(--paper-alt); --teal-deep: var(--tea-deep);
  --rust: var(--thread); --rust-deep: var(--thread-deep); --rust-pale: var(--paper-alt);
  --marigold: var(--thread); --marigold-deep: var(--thread-deep); --marigold-pale: var(--paper-alt);
  --maroon: var(--thread); --maroon-deep: var(--thread-deep); --maroon-pale: var(--paper-alt);
  --sage: var(--ink-dim); --sage-deep: var(--ink);
  --noir: var(--paper); --noir-soft: var(--paper-alt);
}

*{box-sizing:border-box;}

body.luxe{
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans',sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.luxe h1,.luxe h2,.luxe h3,.luxe h4,.luxe .font-serif{
  font-family:'Fraunces',serif;
  font-optical-sizing:auto;
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--ink);
}

.luxe .eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--thread);
  font-weight:500;
}

.luxe a{ color:inherit; text-decoration:none; }

/* ---------- Signature: the gamosa border ----------
   A woven zigzag/temple band — the one graphic flourish this
   design spends. Used at exactly two seams: under the hero, and
   above the footer. CSS-only, no image request. */
.woven-strip{
  --thread-motif: var(--thread);
  height:22px; width:100%;
  position:relative;
  background:var(--paper);
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
}
.woven-strip::before{
  content:"";
  position:absolute; inset:3px 0;
  background-image:
    linear-gradient(135deg, var(--thread-motif) 0 50%, transparent 51%),
    linear-gradient(-135deg, var(--thread-motif) 0 50%, transparent 51%);
  background-size:16px 16px;
  background-position:0 0, 0 0;
  background-repeat:repeat-x;
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
}
.woven-strip.teal{ --thread-motif: var(--tea); }

/* ---------- Navbar ---------- */
.luxe-nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:1.5rem 0;
  transition:all .3s var(--ease);
  background:transparent;
}
.luxe-nav.scrolled{
  padding:1rem 0;
  background:rgba(247,241,228,0.94);
  border-bottom:1px solid var(--line);
}
.luxe-nav .container{display:flex;align-items:center;justify-content:space-between;}
.luxe-brand{display:flex;align-items:center;gap:.75rem;}

.luxe-brand .mark{
  width:26px;height:26px;
  position:relative;
  border:2px solid var(--ink);
  color:transparent;
  background:var(--card);
  flex-shrink:0;
  transform:rotate(45deg);
  margin:0 4px;
  transition:border-color .25s;
}
.luxe-brand .mark::after{
  content:"";
  position:absolute; left:-2px; right:-2px; bottom:-2px;
  height:9px;
  background:var(--thread);
}
.luxe-brand:hover .mark{ border-color:var(--thread); }
.luxe-brand .name{font-family:'Fraunces',serif;font-size:1.2rem;color:var(--ink);line-height:1;font-weight:600;}
.luxe-brand .name small{display:block;font-family:'IBM Plex Mono';font-size:.56rem;letter-spacing:.15em;color:var(--ink-dim);margin-top:.35rem;font-weight:500;text-transform:uppercase;}

.luxe-links{display:flex;align-items:center;gap:2.2rem;}
.luxe-links a{
  font-size:.85rem; color:var(--ink-dim); font-weight:500; position:relative; padding:.3rem 0;
  transition:color .2s;
}
.luxe-links a:hover, .luxe-links a.active{color:var(--ink);}
.luxe-links a.active{ color:var(--thread); }

.btn-luxe{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.8rem 1.7rem;
  border:1.5px solid var(--ink);
  color:var(--ink)!important;
  font-family:'IBM Plex Sans',sans-serif;
  font-size:.8rem; font-weight:600;
  letter-spacing:.02em;
  background:transparent; border-radius:0;
  transition:all .2s var(--ease);
}
.btn-luxe:hover{ background:var(--ink); color:var(--paper)!important; }
.btn-luxe-solid{
  background:var(--thread);
  border:1.5px solid var(--thread);
  color:#fff!important;
}
.btn-luxe-solid:hover{ background:var(--thread-deep); border-color:var(--thread-deep); color:#fff!important; }

.navToggle{display:none;background:transparent;border:1.5px solid var(--ink);width:40px;height:40px;color:var(--ink);align-items:center;justify-content:center;}

/* ---------- Hero ---------- */
.luxe-hero{
  position:relative; min-height:82vh;
  display:flex; align-items:center;
  background:var(--paper);
  overflow:hidden;
}
.luxe-hero .scene,.luxe-hero .orb,.luxe-hero .grid-lines{ display:none; }

.luxe-hero-content{position:relative; z-index:3; width:100%; padding-top:6rem;}
.luxe-hero .eyebrow{display:flex;align-items:center;gap:.7rem;margin-bottom:1.5rem;}
.luxe-hero .eyebrow .line{width:24px;height:1px;background:var(--thread);}
.luxe-hero h1{
  font-size:clamp(2.5rem,5.6vw,4.4rem);
  line-height:1.08;
  color:var(--ink);
  font-weight:600;
  margin-bottom:1.6rem;
  max-width:840px;
}
.luxe-hero h1 em{font-style:italic;color:var(--thread);font-weight:500;}
.luxe-hero p.lead-luxe{
  font-size:1.08rem; color:var(--ink-dim); max-width:520px; line-height:1.75; margin-bottom:2.4rem; font-weight:400;
}
.hero-cta{display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:3rem;}

.hero-card3d{
  position:relative; margin-top:2.5rem; padding-top:1.8rem;
  border-top:1px solid var(--line);
  width:100%; max-width:640px;
}
.hero-card3d .panel{ background:transparent; border:none; padding:0; box-shadow:none; }
.hero-card3d .room-thumb{ display:none; }
.hero-card3d .eyebrow{ margin-bottom:.5rem; }
.hero-card3d h4{ display:none; }
.hero-card3d > .panel > p{ display:none; }
.hero-stat-row{display:flex;gap:2.6rem;padding-top:0;margin-top:0;border-top:none;}
.hero-stat-row div{text-align:left;}
.hero-stat-row .num{font-family:'IBM Plex Mono',monospace;font-size:1.5rem;color:var(--ink);font-weight:600;}
.hero-stat-row .lbl{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-top:.3rem;}

.scroll-cue{ display:none; }

/* ---------- Booking Bar ---------- */
.book-bar{ position:relative; z-index:5; margin-top:0; }
.book-bar .panel{
  background:var(--card);
  border:1px solid var(--line);
  padding:1.7rem 2rem;
  box-shadow:var(--shadow-soft);
  border-left:3px solid var(--thread);
}
.book-bar label{font-family:'IBM Plex Mono';font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-weight:500;margin-bottom:.4rem;display:block;}
.book-bar .form-control,.book-bar .form-select{
  background:transparent; border:none; border-bottom:1px solid var(--line);
  color:var(--ink); border-radius:0; padding:.4rem 0; font-size:.95rem;
}
.book-bar .form-control:focus,.book-bar .form-select:focus{
  box-shadow:none; border-bottom-color:var(--thread); background:transparent; color:var(--ink);
}
.book-bar .form-select option{background:#fff; color:var(--ink);}

/* ---------- Section Framing ---------- */
.luxe-section{ padding:6.5rem 0; position:relative; }
.luxe-section.tight{padding:4.5rem 0;}
.luxe-section.alt{background:var(--paper-alt);}
.sec-head{margin-bottom:3.5rem;}
.sec-head .eyebrow-row{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;}
.sec-head .eyebrow-row .line{width:24px;height:1px;background:var(--thread);}
.sec-head h2{font-size:clamp(1.9rem,3vw,2.7rem);color:var(--ink);line-height:1.2;font-weight:600;}
.sec-head p{color:var(--ink-dim);max-width:540px;font-weight:400;line-height:1.75;margin-top:.9rem;}

/* ---------- Rooms: register rows, not cards ---------- */
.room-luxe{
  position:relative; overflow:hidden;
  background:var(--card); border:1px solid var(--line);
  box-shadow:none;
  transition:border-color .25s var(--ease), transform .25s var(--ease);
  height:100%;
}
.room-luxe:hover{ border-color:var(--thread); transform:translateY(-2px); }
.room-luxe .media{
  height:210px; position:relative; overflow:hidden;
  background:var(--paper-alt);
  border-bottom:1px solid var(--line);
}
.room-luxe .media .ico-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:3.2rem;color:rgba(33,28,22,0.14);}
.room-luxe .media::after{ display:none; }
.room-luxe .tag{
  position:absolute; top:0; left:0; z-index:2;
  background:var(--ink); color:var(--paper);
  font-family:'IBM Plex Mono',monospace;
  font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; padding:.4rem .75rem;
  font-weight:500;
}
.room-luxe .price-tag{
  position:absolute; bottom:0; right:0; z-index:2; text-align:right;
}
.room-luxe .price-tag .amt{font-family:'IBM Plex Mono',monospace;font-size:1.2rem;color:#fff;font-weight:600;background:var(--thread);padding:.35rem .8rem;}
.room-luxe .price-tag .per{display:none;}
.room-luxe .body{padding:1.6rem;}
.room-luxe h3{font-size:1.28rem;color:var(--ink);margin-bottom:.5rem;font-weight:600;font-family:'Fraunces',serif;}
.room-luxe p{color:var(--ink-dim);font-size:.87rem;font-weight:400;line-height:1.65;margin-bottom:1rem;}
.room-luxe .meta{display:flex;gap:1.1rem;font-size:.72rem;color:var(--ink-dim);padding-top:.9rem;border-top:1px solid var(--line);font-family:'IBM Plex Mono',monospace;}
.room-luxe .meta span{display:flex;align-items:center;gap:.4rem;}
.room-luxe .meta i{color:var(--thread);}

/* ---------- Amenity list: no numbered sequence ---------- */
.feat-luxe{ padding:1.7rem 0; border-top:1px solid var(--line);}
.feat-luxe:first-child{border-top:none;}
.feat-row{display:flex;gap:1.3rem;align-items:flex-start;}
.feat-num{ display:none; }
.feat-icon{
  width:42px;height:42px;border:1.5px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--thread);font-size:1.05rem;
  flex-shrink:0; transition:border-color .25s; background:transparent;
}
.feat-row:hover .feat-icon{border-color:var(--thread);}
.feat-row h4{color:var(--ink);font-size:1.08rem;margin-bottom:.4rem;font-weight:600;font-family:'Fraunces',serif;}
.feat-row p{color:var(--ink-dim);font-size:.86rem;font-weight:400;margin:0;line-height:1.65;}

/* ---------- Stats Strip ---------- */
.stat-strip{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:2.6rem 0; background:var(--paper);
}
.stat-strip .num{font-family:'IBM Plex Mono',monospace;font-size:2rem;color:var(--ink);line-height:1;font-weight:600;}
.stat-strip .lbl{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-top:.5rem;}

/* ---------- Testimonial: guestbook entry ---------- */
.testi-luxe{
  background:var(--card); border:1px solid var(--line);
  padding:2rem; height:100%; position:relative;
  box-shadow:none; border-left:3px solid var(--tea);
}
.testi-luxe .quote-mark{display:none;}
.testi-luxe p{color:var(--ink);font-style:italic;font-weight:400;line-height:1.7;margin-bottom:1.3rem;font-size:1.02rem;font-family:'Fraunces',serif;}
.testi-luxe .stars{color:var(--thread);margin-bottom:.7rem;font-size:.75rem;letter-spacing:.1em;}
.testi-luxe .who{display:flex;align-items:center;gap:.8rem;padding-top:1rem;border-top:1px solid var(--line);}
.testi-luxe .av{width:28px;height:28px;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono';color:var(--ink);background:var(--paper-alt);font-weight:600;font-size:.78rem;transform:rotate(45deg);flex-shrink:0;}
.testi-luxe .av span{transform:rotate(-45deg);display:block;}
.testi-luxe .name{color:var(--ink);font-weight:600;font-size:.88rem;font-family:'IBM Plex Sans';}
.testi-luxe .role{color:var(--ink-dim);font-size:.72rem;}

/* ---------- CTA Band ---------- */
.cta-luxe{
  position:relative; padding:5.5rem 0; text-align:center; overflow:hidden;
  background:var(--ink);
  border-top:none; border-bottom:none;
}
.cta-luxe .grid-lines{ display:none; }
.cta-luxe h2{font-size:clamp(1.9rem,3.6vw,2.8rem);color:var(--paper);margin-bottom:1.1rem;position:relative;font-weight:600;}
.cta-luxe p{color:rgba(247,241,228,0.68);font-weight:400;margin-bottom:2rem;position:relative;}
.cta-luxe .btn-luxe{border-color:var(--paper);color:var(--paper)!important; background:transparent;}
.cta-luxe .btn-luxe:hover{ background:var(--thread); border-color:var(--thread); color:#fff!important; }

/* ---------- Footer ---------- */
.luxe-footer{background:var(--paper-alt); border-top:none; padding:0 0 2rem; color:var(--ink);}
.luxe-footer .container{padding-top:4.5rem;}
.luxe-footer h5{font-family:'IBM Plex Mono';font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--thread);margin-bottom:1.3rem;font-weight:500;}
.luxe-footer ul{list-style:none;padding:0;margin:0;}
.luxe-footer ul li{margin-bottom:.6rem;}
.luxe-footer a{color:var(--ink-dim);font-size:.87rem;font-weight:400;transition:color .2s;}
.luxe-footer a:hover{color:var(--ink);}
.luxe-footer .social{width:30px;height:30px;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink-dim);transition:all .2s;background:transparent;transform:rotate(45deg);}
.luxe-footer .social i{transform:rotate(-45deg);}
.luxe-footer .social:hover{border-color:var(--thread);color:var(--thread);}
.luxe-footer .bottom{border-top:1px solid var(--line);margin-top:2.8rem;padding-top:1.8rem;font-size:.78rem;color:var(--ink-dim);font-family:'IBM Plex Mono';}
.luxe-footer .luxe-brand .name{color:var(--ink);}
.luxe-footer .luxe-brand .mark{border-color:var(--ink);}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .5s var(--ease), transform .5s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
}

/* ---------- Page Hero (inner pages) ---------- */
.page-hero-luxe{
  position:relative; padding:8.5rem 0 4rem; text-align:center; overflow:hidden;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.page-hero-luxe .grid-lines{ display:none; }
.page-hero-luxe h1{font-size:clamp(2.2rem,4.2vw,3.2rem);color:var(--ink);position:relative;font-weight:600;}
.page-hero-luxe p{color:var(--ink-dim);font-weight:400;max-width:540px;margin:1rem auto 0;position:relative;}

/* generic luxe form elements (contact/booking pages) */
.luxe-card{background:var(--card);border:1px solid var(--line);box-shadow:none;}
.luxe-input-group label{font-family:'IBM Plex Mono';font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-weight:500;margin-bottom:.5rem;display:block;}
.luxe-input{background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:0;padding:.7rem .9rem;width:100%;font-size:.92rem;transition:border-color .2s;}
.luxe-input:focus{outline:2px solid var(--thread);outline-offset:1px;border-color:var(--thread);background:#fff;}
.luxe-input::placeholder{color:rgba(117,106,87,0.65);}
textarea.luxe-input{resize:vertical;}

.luxe a:focus-visible, .luxe button:focus-visible{
  outline:2px solid var(--thread); outline-offset:2px;
}

/* ---------- Legal / policy page prose ---------- */
.legal-content{ max-width:760px; }
.legal-content h2{
  font-size:1.4rem; font-weight:600; color:var(--ink);
  margin:2.6rem 0 1rem; padding-top:1.8rem; border-top:1px solid var(--line);
}
.legal-content h2:first-child{ margin-top:0; padding-top:0; border-top:none; }
.legal-content p{ color:var(--ink-dim); line-height:1.85; margin-bottom:1.1rem; font-size:.96rem; }
.legal-content ul{ color:var(--ink-dim); line-height:1.85; font-size:.96rem; padding-left:1.3rem; margin-bottom:1.1rem; }
.legal-content li{ margin-bottom:.5rem; }
.legal-content strong{ color:var(--ink); font-weight:600; }
.legal-content .updated{
  font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--thread); margin-bottom:2.5rem; display:block;
}
.legal-nav{
  display:flex; gap:1.5rem; flex-wrap:wrap; margin-bottom:3rem; padding-bottom:2rem;
  border-bottom:1px solid var(--line);
}
.legal-nav a{ font-size:.82rem; font-weight:600; color:var(--ink-dim); padding-bottom:.3rem; border-bottom:2px solid transparent; }
.legal-nav a:hover, .legal-nav a.active{ color:var(--thread); border-bottom-color:var(--thread); }
.legal-links-inline{ display:flex; gap:1.2rem; flex-wrap:wrap; }
.legal-links-inline a{ font-size:.75rem; color:var(--ink-dim); }
.legal-links-inline a:hover{ color:var(--thread); }
@media (max-width: 768px){
  .luxe-links{position:absolute;top:100%;left:0;right:0;width:100%;max-width:none;height:auto;max-height:0;overflow:hidden;background:var(--paper);flex-direction:column;align-items:stretch;padding:0 2rem;gap:0;transition:max-height .3s var(--ease),padding .3s var(--ease);border-left:none;border-bottom:3px solid var(--thread);box-shadow:var(--shadow-lift);}
  .luxe-links a, .luxe-links .btn-luxe{width:100%;text-align:left;}
  .luxe-links.open{max-height:80vh;padding:1.4rem 2rem 1.8rem;gap:1.1rem;overflow-y:auto;}
  .navToggle{display:flex;}
  .luxe-hero h1{font-size:clamp(2.1rem,8vw,2.8rem);}
}
