/* ==========================================================================
   MIGNON HOTEL — KALULE
   Executive White & Gold theme
   ========================================================================== */


@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');


:root{
  --white:#ffffff;
  --ivory:#faf8f4;
  --ivory-deep:#f2ede2;
  --charcoal:#161513;
  --charcoal-soft:#2b2823;
  --gold:#b08d3e;
  --gold-deep:#8a6d2a;
  --gold-pale:#e8dcb8;
  --grey:#6e6a62;
  --line:#e5decb;
  --shadow: 0 18px 40px -22px rgba(22,21,19,0.35);
  --maxw: 1240px;
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  color:var(--charcoal);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; margin:0 0 .5em; letter-spacing:-.01em; color:var(--charcoal); }
p{ margin:0 0 1em; color:var(--grey); max-width:62ch; }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
section{ padding:96px 0; }
@media(max-width:780px){ section{ padding:64px 0; } .container{ padding:0 20px; } }

::selection{ background:var(--gold-pale); color:var(--charcoal); }

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

:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:3px; }

/* ---------- utility ---------- */
.rule{ width:64px; height:2px; background:var(--gold); border:none; margin:0 0 22px; }
.rule.center{ margin-left:auto; margin-right:auto; }
.eyebrow{
  font-family:var(--sans); font-size:13px; font-weight:600; color:var(--gold-deep);
  letter-spacing:.04em; margin-bottom:10px; display:block;
}
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 30px; border:1px solid var(--charcoal); background:var(--charcoal); color:var(--white);
  font-size:14px; font-weight:500; letter-spacing:.02em; transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.btn:hover{ background:var(--gold-deep); border-color:var(--gold-deep); }
.btn.gold{ background:var(--gold); border-color:var(--gold); color:var(--charcoal); }
.btn.gold:hover{ background:var(--gold-deep); color:var(--white); }
.btn.ghost{ background:transparent; color:var(--charcoal); }
.btn.ghost:hover{ background:var(--charcoal); color:var(--white); }
.btn.on-dark{ border-color:var(--white); color:var(--white); background:transparent; }
.btn.on-dark:hover{ background:var(--gold); border-color:var(--gold); color:var(--charcoal); }

.tag{
  display:inline-block; font-size:12px; font-weight:600; letter-spacing:.03em;
  color:var(--gold-deep); border:1px solid var(--gold-pale); background:var(--ivory);
  padding:5px 12px;
}

/* ==========================================================================
   HEADER / NAV
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:500; background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line);
}
.nav-wrap{
  max-width:var(--maxw); margin:0 auto; padding:0 32px;
  display:flex; align-items:center; justify-content:space-between; height:88px;
}
.brand{ display:flex; align-items:center; gap:14px; }
.brand-mark{
  width:50px; height:50px; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:20px; color:var(--gold-deep); flex-shrink:0; background:var(--ivory);
  overflow:hidden;
}
.brand-mark img{ width:100%; height:100%; object-fit:cover; }
.brand-name{ display:flex; flex-direction:column; line-height:1.15; }
.brand-name strong{ font-family:var(--serif); font-size:20px; letter-spacing:.01em; }
.brand-name span{ font-size:11px; letter-spacing:.14em; color:var(--gold-deep); text-transform:uppercase; }

.main-nav{ display:flex; align-items:center; gap:34px; }
.main-nav > ul{ display:flex; align-items:center; gap:30px; }
.main-nav a{ font-size:14.5px; font-weight:500; color:var(--charcoal-soft); position:relative; padding:6px 0; }
.main-nav a:hover{ color:var(--gold-deep); }
.main-nav li.current > a{ color:var(--gold-deep); }
.main-nav li.current > a::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--gold); }

.has-dropdown{ position:relative; }
.dropdown{
  position:absolute; top:calc(100% + 18px); left:50%; transform:translateX(-50%);
  background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow);
  min-width:220px; padding:10px; opacity:0; visibility:hidden; transition:opacity .2s ease, transform .2s ease;
}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
.dropdown a{ display:block; padding:10px 12px; font-size:14px; }
.dropdown a:hover{ background:var(--ivory); color:var(--gold-deep); }

.nav-cta{ display:flex; align-items:center; gap:16px; }
.nav-cta .btn{ padding:12px 22px; }
.nav-toggle{ display:none; background:none; border:none; flex-direction:column; gap:5px; padding:6px; }
.nav-toggle span{ width:26px; height:2px; background:var(--charcoal); display:block; }

@media(max-width:980px){
  .main-nav > ul{ display:none; }
  .nav-wrap{ padding:0 20px; height:76px; }
  .nav-toggle{ display:flex; }
  .nav-cta .btn span.label{ display:none; }
  .brand-name strong{ font-size:17px; }
}

/* Mobile drawer */
.mobile-drawer{
  position:fixed; inset:0; background:var(--charcoal); z-index:900;
  transform:translateX(100%); transition:transform .35s ease; display:flex; flex-direction:column;
  padding:28px 26px; overflow-y:auto;
}
.mobile-drawer.open{ transform:translateX(0); }
.mobile-drawer .close-drawer{ align-self:flex-end; background:none; border:1px solid var(--gold); color:var(--gold); width:40px; height:40px; font-size:18px; }
.mobile-drawer ul{ margin-top:40px; display:flex; flex-direction:column; gap:6px; }
.mobile-drawer a{ color:var(--white); font-family:var(--serif); font-size:24px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.1); display:block; }
.mobile-drawer .sub-list{ padding-left:16px; }
.mobile-drawer .sub-list a{ color:var(--gold-pale); font-family:var(--sans); font-size:15px; padding:10px 0; border:none; }
.mobile-drawer .drawer-cta{ margin-top:30px; display:flex; flex-direction:column; gap:12px; }

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:flex-end;
  background:linear-gradient(180deg, rgba(22,21,19,.35), rgba(22,21,19,.75)),
    url("../images/Mignon_Hotel_Entrance.jpeg") center/cover no-repeat;
  color:var(--white); overflow:hidden;
}
.hero-inner{ position:relative; z-index:2; padding-bottom:88px; max-width:760px; }
.hero .eyebrow{ color:var(--gold-pale); }
.hero h1{
  color:var(--white); font-size:clamp(42px,6.2vw,74px); line-height:1.02; margin-bottom:22px;
  opacity:0; transform:translateY(24px); animation:heroUp .9s .15s ease forwards;
}
.hero p.lead{ color:#ece7da; font-size:18px; max-width:52ch; opacity:0; transform:translateY(20px); animation:heroUp .9s .35s ease forwards; }
.hero-ctas{ display:flex; gap:16px; margin-top:30px; flex-wrap:wrap; opacity:0; transform:translateY(20px); animation:heroUp .9s .55s ease forwards; }
@keyframes heroUp{ to{ opacity:1; transform:translateY(0); } }

.hero-strip{
  position:relative; z-index:2; border-top:1px solid rgba(255,255,255,.25);
  display:grid; grid-template-columns:repeat(4,1fr);
}
.hero-strip div{ padding:22px 32px; border-right:1px solid rgba(255,255,255,.18); }
.hero-strip div:last-child{ border-right:none; }
.hero-strip strong{ display:block; font-family:var(--serif); font-size:15px; color:var(--gold-pale); margin-bottom:3px; }
.hero-strip span{ font-size:13.5px; color:#d9d4c6; }
@media(max-width:780px){ .hero-strip{ grid-template-columns:1fr 1fr; } .hero-strip div{ padding:16px 18px; border-bottom:1px solid rgba(255,255,255,.18);} }

/* generic page hero (inner pages) */
.page-hero{
  position:relative; padding:150px 0 70px; color:var(--white);
  background:linear-gradient(180deg, rgba(22,21,19,.55), rgba(22,21,19,.78)), var(--img) center/cover no-repeat;
}
.page-hero h1{ color:var(--white); font-size:clamp(36px,5vw,56px); margin-bottom:12px; }
.page-hero .eyebrow{ color:var(--gold-pale); }
.breadcrumb{ font-size:13px; color:#d9d4c6; }
.breadcrumb a{ color:var(--gold-pale); }

/* ==========================================================================
   SECTIONS — shared components
   ========================================================================== */
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head.split{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; max-width:none; }
@media(max-width:780px){ .section-head.split{ flex-direction:column; align-items:flex-start; } }

.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
@media(max-width:900px){ .two-col{ grid-template-columns:1fr; gap:40px; } }

.stat-row{ display:flex; gap:50px; margin-top:30px; flex-wrap:wrap; }
.stat-row div strong{ display:block; font-family:var(--serif); font-size:34px; color:var(--gold-deep); }
.stat-row div span{ font-size:13px; color:var(--grey); }

.frame-img{ border:1px solid var(--line); padding:10px; background:var(--white); box-shadow:var(--shadow); }
.frame-img img{ width:100%; height:100%; object-fit:cover; }

/* Amenities / icon grid */
.icon-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.icon-grid .cell{ background:var(--white); padding:36px 30px; }
.icon-grid .cell .ico{ font-size:26px; color:var(--gold); margin-bottom:16px; }
.icon-grid .cell h4{ font-size:17px; margin-bottom:8px; }
.icon-grid .cell p{ font-size:14px; margin:0; }
@media(max-width:900px){ .icon-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .icon-grid{ grid-template-columns:1fr; } }

/* Room cards */
.room-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:38px; }
@media(max-width:900px){ .room-grid{ grid-template-columns:1fr; } }
.room-card{ border:1px solid var(--line); background:var(--white); display:flex; flex-direction:column; }
.room-card .thumb{ position:relative; height:280px; overflow:hidden; }
.room-card .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.room-card:hover .thumb img{ transform:scale(1.05); }
.room-card .thumb .badge{
  position:absolute; top:16px; left:16px; background:var(--charcoal); color:var(--white);
  font-size:12px; letter-spacing:.03em; padding:6px 12px;
}
.room-card .body{ padding:30px; display:flex; flex-direction:column; gap:14px; flex:1; }
.room-card h3{ font-size:22px; margin-bottom:2px; }
.room-card .price{ font-family:var(--serif); font-size:24px; color:var(--gold-deep); }
.room-card .price span{ font-family:var(--sans); font-size:13px; color:var(--grey); font-weight:400; }
.room-card ul.feat{ display:flex; flex-wrap:wrap; gap:8px 16px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.room-card ul.feat li{ font-size:13.5px; color:var(--charcoal-soft); display:flex; align-items:center; gap:6px; }
.room-card ul.feat li::before{ content:'—'; color:var(--gold); }
.room-card .actions{ display:flex; gap:12px; margin-top:auto; }
.room-card .actions .btn{ padding:12px 18px; font-size:13.5px; flex:1; justify-content:center; }

/* Gallery */
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:170px; gap:8px; }
.gallery-grid a{ overflow:hidden; position:relative; display:block; }
.gallery-grid a::after{ content:''; position:absolute; inset:0; background:rgba(22,21,19,0); transition:background .3s ease; }
.gallery-grid a:hover::after{ background:rgba(22,21,19,.15); }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-grid a:hover img{ transform:scale(1.08); }
.gallery-grid .tall{ grid-row:span 2; }
.gallery-grid .wide{ grid-column:span 2; }
@media(max-width:900px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); } .gallery-grid .wide{ grid-column:span 2; } }
@media(max-width:560px){ .gallery-grid{ grid-template-columns:1fr; grid-auto-rows:220px; } .gallery-grid .wide, .gallery-grid .tall{ grid-column:span 1; grid-row:span 1; } }

.lightbox{ position:fixed; inset:0; background:rgba(15,14,12,.94); z-index:2000; display:none; align-items:center; justify-content:center; padding:30px; }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:90vw; max-height:85vh; object-fit:contain; border:1px solid var(--gold); }
.lightbox button{ position:absolute; top:26px; right:34px; background:none; border:1px solid var(--gold); color:var(--gold); width:44px; height:44px; font-size:18px; }
.lightbox .lb-nav{ position:absolute; top:50%; transform:translateY(-50%); background:none; border:1px solid rgba(255,255,255,.4); color:var(--white); width:46px; height:46px; font-size:20px; }
.lightbox .lb-prev{ left:24px; } .lightbox .lb-next{ right:24px; }

/* Filter tabs (rooms/gallery/blog) */
.filter-tabs{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:44px; }
.filter-tabs button{
  background:var(--white); border:1px solid var(--line); padding:10px 20px; font-size:13.5px; font-weight:500;
  color:var(--charcoal-soft); transition:all .2s ease;
}
.filter-tabs button.active, .filter-tabs button:hover{ background:var(--charcoal); color:var(--white); border-color:var(--charcoal); }

/* Testimonials */
.testimonial-wrap{ position:relative; background:var(--charcoal); color:var(--white); padding:90px 0; }
.testimonial-wrap .container{ max-width:820px; text-align:center; }
.testimonial-wrap .eyebrow{ color:var(--gold-pale); }
.t-slide{ display:none; }
.t-slide.active{ display:block; animation:fadeIn .5s ease; }
@keyframes fadeIn{ from{opacity:0} to{opacity:1} }
.t-quote{ font-family:var(--serif); font-size:clamp(22px,3vw,30px); line-height:1.5; color:var(--white); margin-bottom:26px; }
.t-stars{ color:var(--gold); font-size:16px; letter-spacing:3px; margin-bottom:20px; }
.t-name{ font-weight:600; }
.t-role{ font-size:13px; color:#bdb8ab; }
.t-dots{ display:flex; gap:9px; justify-content:center; margin-top:36px; }
.t-dots button{ width:9px; height:9px; border-radius:50%; border:1px solid var(--gold); background:transparent; padding:0; }
.t-dots button.active{ background:var(--gold); }

/* Blog */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
@media(max-width:960px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .blog-grid{ grid-template-columns:1fr; } }
.post-card{ border:1px solid var(--line); background:var(--white); }
.post-card .thumb{ height:200px; overflow:hidden; }
.post-card .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.post-card:hover .thumb img{ transform:scale(1.06); }
.post-card .body{ padding:26px; }
.post-meta{ font-size:12.5px; color:var(--gold-deep); font-weight:600; margin-bottom:10px; display:flex; gap:10px; }
.post-card h3{ font-size:19px; margin-bottom:10px; }
.post-card p{ font-size:14.5px; margin-bottom:16px; }
.read-more{ font-size:13.5px; font-weight:600; color:var(--charcoal); border-bottom:1px solid var(--gold); padding-bottom:2px; }

/* Menu (restaurant) */
.menu-tabs{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:50px; border-bottom:1px solid var(--line); padding-bottom:0; }
.menu-tabs button{
  background:none; border:none; padding:14px 6px; margin-right:26px; font-family:var(--serif); font-size:17px;
  color:var(--grey); border-bottom:2px solid transparent; position:relative; top:1px;
}
.menu-tabs button.active{ color:var(--charcoal); border-bottom-color:var(--gold); }
.menu-panel{ display:none; }
.menu-panel.active{ display:block; animation:fadeIn .4s ease; }
.menu-list{ display:grid; grid-template-columns:1fr 1fr; gap:34px 60px; }
@media(max-width:780px){ .menu-list{ grid-template-columns:1fr; } }
.menu-item{ display:flex; justify-content:space-between; gap:16px; padding-bottom:16px; border-bottom:1px dotted var(--line); }
.menu-item .mi-name{ font-family:var(--serif); font-size:17px; margin-bottom:4px; color:var(--charcoal); }
.menu-item .mi-desc{ font-size:13.5px; color:var(--grey); margin:0; }
.menu-item .mi-price{ font-family:var(--serif); font-size:16px; color:var(--gold-deep); white-space:nowrap; }

/* Events */
.event-list{ display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.event-row{ display:grid; grid-template-columns:130px 1fr auto; gap:30px; align-items:center; padding:28px 0; border-bottom:1px solid var(--line); }
.event-row .date-block{ text-align:center; border-right:1px solid var(--line); padding-right:28px; }
.event-row .date-block strong{ display:block; font-family:var(--serif); font-size:30px; color:var(--gold-deep); }
.event-row .date-block span{ font-size:12.5px; letter-spacing:.05em; color:var(--grey); text-transform:uppercase; }
.event-row h3{ font-size:19px; margin-bottom:6px; }
.event-row p{ font-size:14px; margin:0; }
@media(max-width:700px){ .event-row{ grid-template-columns:1fr; text-align:left; } .event-row .date-block{ border-right:none; border-bottom:1px solid var(--line); padding-bottom:14px; text-align:left; display:flex; gap:10px; align-items:baseline; } }

/* Conference */
.package-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.package-card{ background:var(--white); padding:40px 32px; display:flex; flex-direction:column; }
.package-card h3{ font-size:20px; }
.package-card .price{ font-family:var(--serif); font-size:30px; color:var(--gold-deep); margin-bottom:18px; }
.package-card ul{ display:flex; flex-direction:column; gap:10px; margin-bottom:26px; flex:1; }
.package-card ul li{ font-size:14px; color:var(--charcoal-soft); padding-left:18px; position:relative; }
.package-card ul li::before{ content:'✓'; position:absolute; left:0; color:var(--gold-deep); }
@media(max-width:900px){ .package-grid{ grid-template-columns:1fr; } }

/* Contact */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; }
@media(max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-detail{ display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }
.contact-detail .ico{ color:var(--gold-deep); font-size:20px; width:26px; flex-shrink:0; }
.contact-detail h4{ font-size:15px; margin-bottom:4px; }
.contact-detail p{ margin:0; font-size:14.5px; }
.map-frame{ border:1px solid var(--line); height:340px; width:100%; }
.map-frame iframe{ width:100%; height:100%; border:0; }
.social-row{ display:flex; gap:14px; margin-top:20px; }
.social-row a{
  width:42px; height:42px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
  font-size:16px; transition:all .2s ease;
}
.social-row a:hover{ background:var(--gold); border-color:var(--gold); color:var(--white); }

/* Forms */
.form-panel{ background:var(--ivory); border:1px solid var(--line); padding:40px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.form-grid.full, .form-field.span2{ grid-column:1/-1; }
@media(max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.form-field{ display:flex; flex-direction:column; gap:8px; }
.form-field label{ font-size:12.5px; font-weight:600; letter-spacing:.03em; color:var(--charcoal-soft); }
.form-field input, .form-field select, .form-field textarea{
  border:1px solid var(--line); background:var(--white); padding:13px 14px; font-family:var(--sans); font-size:14.5px; color:var(--charcoal);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ border-color:var(--gold); outline:none; }
.form-field textarea{ resize:vertical; min-height:110px; }
.form-note{ font-size:12.5px; color:var(--grey); margin-top:14px; }
.form-success{ display:none; background:var(--ivory-deep); border:1px solid var(--gold-pale); padding:20px 24px; margin-top:18px; font-size:14px; }
.form-success.show{ display:block; }

/* Booking summary card */
.book-summary{ border:1px solid var(--line); background:var(--charcoal); color:var(--white); padding:36px; height:fit-content; position:sticky; top:110px; }
.book-summary h4{ color:var(--white); font-size:18px; }
.book-summary .line{ display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.14); font-size:14px; color:#d9d4c6; }
.book-summary .total{ display:flex; justify-content:space-between; padding-top:18px; font-family:var(--serif); font-size:20px; color:var(--gold-pale); }

/* CTA band */
.cta-band{
  background:linear-gradient(120deg, var(--charcoal), var(--charcoal-soft)); color:var(--white);
  padding:80px 0; text-align:center;
}
.cta-band h2{ color:var(--white); }
.cta-band p{ color:#d9d4c6; margin-left:auto; margin-right:auto; }
.cta-band .hero-ctas{ justify-content:center; opacity:1; transform:none; animation:none; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{ background:var(--charcoal); color:#cfc9ba; padding:80px 0 0; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:50px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,.12); }
@media(max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
.site-footer h4{ color:var(--gold-pale); font-size:14px; letter-spacing:.03em; margin-bottom:20px; font-family:var(--sans); font-weight:600; }
.site-footer .foot-brand strong{ font-family:var(--serif); font-size:24px; color:var(--white); }
.site-footer .foot-brand p{ color:#a9a396; font-size:14px; margin-top:14px; }
.site-footer ul li{ margin-bottom:12px; font-size:14px; }
.site-footer ul a:hover{ color:var(--gold); }
.foot-bottom{ padding:26px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:12.5px; color:#8a8579; }
.foot-bottom a{ color:#8a8579; }
.foot-social{ display:flex; gap:12px; }
.foot-social a{ width:36px; height:36px; border:1px solid rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; }
.foot-social a:hover{ border-color:var(--gold); color:var(--gold); }

/* ==========================================================================
   FLOATING WIDGETS — Book Now / Call pill, WhatsApp, Chatbot
   ========================================================================== */
.float-stack{ position:fixed; right:26px; bottom:26px; z-index:800; display:flex; flex-direction:column; align-items:flex-end; gap:14px; }

.float-book{
  display:flex; align-items:center; gap:10px; background:var(--gold); color:var(--charcoal);
  padding:16px 22px; border:1px solid var(--gold-deep); font-weight:600; font-size:14.5px;
  box-shadow:0 14px 30px -10px rgba(138,109,42,.55);
  animation:breathe 2.8s ease-in-out infinite;
}
.float-book:hover{ background:var(--gold-deep); color:var(--white); }
@keyframes breathe{
  0%,100%{ transform:scale(1); box-shadow:0 14px 30px -10px rgba(138,109,42,.55); }
  50%{ transform:scale(1.045); box-shadow:0 18px 36px -8px rgba(138,109,42,.7); }
}

.float-call{
  display:flex; align-items:center; gap:10px; background:var(--charcoal); color:var(--white);
  padding:13px 20px; font-size:13.5px; font-weight:500; border:1px solid var(--charcoal);
}
.float-call:hover{ background:var(--white); color:var(--charcoal); border-color:var(--charcoal); }

.float-whatsapp{
  width:58px; height:58px; border-radius:50%; background:#25D366; color:var(--white);
  display:flex; align-items:center; justify-content:center; font-size:28px; box-shadow:0 12px 26px -8px rgba(37,211,102,.6);
  position:relative;
}
.float-whatsapp .ping{
  position:absolute; inset:0; border-radius:50%; border:2px solid #25D366; animation:ping 2.2s ease-out infinite;
}
@keyframes ping{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(1.7); opacity:0; } }

/* Chatbot launcher + window */
.chatbot-launcher{
  width:58px; height:58px; border-radius:50%; background:var(--charcoal); color:var(--gold);
  display:flex; align-items:center; justify-content:center; font-size:24px; border:1px solid var(--gold);
}
.chat-window{
  position:fixed; right:26px; bottom:100px; width:340px; max-width:88vw; height:460px; max-height:70vh;
  background:var(--white); border:1px solid var(--line); box-shadow:0 30px 60px -20px rgba(0,0,0,.4);
  display:none; flex-direction:column; z-index:850; overflow:hidden;
}
.chat-window.open{ display:flex; }
.chat-head{ background:var(--charcoal); color:var(--white); padding:16px 18px; display:flex; align-items:center; justify-content:space-between; }
.chat-head .who{ display:flex; align-items:center; gap:10px; }
.chat-head .dot{ width:8px; height:8px; border-radius:50%; background:#5CD65C; }
.chat-head strong{ font-family:var(--serif); font-size:16px; }
.chat-head span{ font-size:11.5px; color:#c9c3b5; }
.chat-head button{ background:none; border:none; color:var(--white); font-size:18px; }
.chat-body{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:var(--ivory); }
.chat-msg{ max-width:82%; padding:10px 13px; font-size:13.5px; line-height:1.5; }
.chat-msg.bot{ background:var(--white); border:1px solid var(--line); align-self:flex-start; }
.chat-msg.user{ background:var(--charcoal); color:var(--white); align-self:flex-end; }
.chat-quick{ display:flex; flex-wrap:wrap; gap:8px; padding:0 16px 12px; background:var(--ivory); }
.chat-quick button{ font-size:12px; border:1px solid var(--gold-pale); background:var(--white); padding:7px 11px; color:var(--gold-deep); }
.chat-quick button:hover{ background:var(--gold-pale); }
.chat-input{ display:flex; border-top:1px solid var(--line); }
.chat-input input{ flex:1; border:none; padding:14px; font-size:13.5px; font-family:var(--sans); }
.chat-input input:focus{ outline:none; }
.chat-input button{ width:52px; background:var(--gold); border:none; color:var(--charcoal); font-size:16px; }

@media(max-width:560px){
  .float-stack{ right:16px; bottom:16px; }
  .chat-window{ right:12px; left:12px; width:auto; bottom:88px; }
}

/* preloader-free simple fade-in for content blocks on scroll (single orchestrated use) */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }
