:root{
  --midnight:#0B1E33;
  --midnight-2:#071727;
  --gold:#C5A46D;
  --gold-2:#D6B25A;
  --ivory:#F7F1E8;
  --stone:#EFE3D2;
  --slate:#4E7A82;
  --terracotta:#A85F44;
  --charcoal:#232323;
  --white:#fff;
  --muted:#6f6a63;
  --line:rgba(197,164,109,.35);
  --shadow:0 24px 70px rgba(11,30,51,.16);
  --shadow-dark:0 28px 80px rgba(0,0,0,.34);
  --radius:26px;
  --font-head:'Playfair Display', Georgia, serif;
  --font-body:'Montserrat', Arial, sans-serif;
  --font-accent:'Cinzel', Georgia, serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);color:var(--charcoal);background:var(--ivory);line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background:
  radial-gradient(circle at 7% 2%, rgba(197,164,109,.20), transparent 25rem),
  radial-gradient(circle at 98% 18%, rgba(78,122,130,.18), transparent 26rem),
  linear-gradient(180deg,#fffaf1 0%,#f7f1e8 45%,#efe3d2 100%)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.32;z-index:-1;background-image:url('../images/african-pattern.svg');background-size:440px;background-position:right top;mix-blend-mode:multiply}
.container{width:min(1180px,92vw);margin-inline:auto}
.section{padding:92px 0;position:relative}
.section.tight{padding:58px 0}
.section.dark{background:var(--midnight);color:var(--ivory)}
.eyebrow{font-family:var(--font-accent);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-size:.75rem;font-weight:700;display:block;margin-bottom:.65rem}
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.04;margin:0 0 1rem;color:inherit;font-weight:700}
h1{font-size:clamp(3rem,7vw,6.8rem);letter-spacing:-.055em}
h2{font-size:clamp(2.25rem,4.2vw,4.7rem);letter-spacing:-.035em}
h3{font-size:clamp(1.5rem,2.2vw,2.35rem)}
h4{font-size:1.35rem}
p{margin:0 0 1.15rem}.lead{font-size:clamp(1.06rem,1.55vw,1.3rem);max-width:760px;color:rgba(35,35,35,.78)}.dark .lead{color:rgba(247,241,232,.76)}
.gold{color:var(--gold)}.slate{color:var(--slate)}.terracotta{color:var(--terracotta)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;border:1px solid transparent;min-height:48px;padding:.88rem 1.35rem;border-radius:2px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:.76rem;cursor:pointer;transition:.25s ease;white-space:nowrap;box-shadow:none;text-align:center}
.btn:hover{transform:translateY(-2px)}.btn:focus-visible{outline:3px solid rgba(197,164,109,.5);outline-offset:3px}
.btn.gold{background:linear-gradient(135deg,#d6b25a,#b58b45);color:#112333;box-shadow:0 14px 32px rgba(197,164,109,.23)}
.btn.navy{background:var(--midnight);color:var(--ivory);border-color:rgba(247,241,232,.16)}
.btn.slate{background:var(--slate);color:#fff}.btn.terra{background:var(--terracotta);color:#fff}
.btn.ghost{background:rgba(247,241,232,.06);border-color:rgba(247,241,232,.42);color:var(--ivory)}
.btn.ghost-dark{background:transparent;border-color:rgba(11,30,51,.28);color:var(--midnight)}
.btn.text{padding:0;border:0;min-height:0;color:var(--gold);background:transparent;box-shadow:none}.btn.text:hover{transform:none;color:var(--terracotta)}
.btn.full{width:100%}.button-row{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}.center{text-align:center}.center .lead{margin-inline:auto}
.topbar{background:var(--midnight-2);color:rgba(247,241,232,.9);font-size:.82rem;border-bottom:1px solid rgba(197,164,109,.18)}
.topbar .container{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.55rem 0}.topbar a{color:var(--ivory)}.topbar .toplinks{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.topbar .dot{color:var(--gold)}
.site-header{position:sticky;top:0;z-index:100;background:rgba(11,30,51,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(197,164,109,.22);transition:.3s ease}
.nav-wrap{width:min(1240px,94vw);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;min-height:86px}
.logo{display:flex;align-items:center;gap:.8rem;min-width:240px}.logo img{width:232px;height:auto}.logo.small img{width:190px}.nav{display:flex;align-items:center;gap:1.05rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:rgba(247,241,232,.9)}.nav a{position:relative;padding:.45rem .1rem}.nav a::after{content:"";position:absolute;height:1px;background:var(--gold);width:0;left:0;bottom:0;transition:.22s ease}.nav a:hover::after,.nav a.active::after{width:100%}.header-actions{display:flex;align-items:center;gap:.7rem}.menu-toggle{display:none;background:transparent;border:1px solid rgba(197,164,109,.35);color:var(--ivory);border-radius:100px;width:44px;height:44px;font-size:1.4rem;cursor:pointer}
.hero{position:relative;min-height:760px;background:var(--midnight);color:var(--ivory);overflow:hidden;isolation:isolate}.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,17,31,.88) 0%,rgba(5,17,31,.68) 34%,rgba(5,17,31,.18) 75%,rgba(5,17,31,.50) 100%),linear-gradient(0deg,rgba(11,30,51,.95) 0%,rgba(11,30,51,.15) 28%,rgba(11,30,51,.28) 100%),url('../images/hero-grand-house.jpg') center/cover no-repeat;z-index:-2}.hero::after{content:"";position:absolute;inset:0;background:url('../images/african-pattern.svg') right 3rem top 8rem/420px repeat-y;opacity:.22;z-index:-1}.hero-inner{width:min(1240px,94vw);min-height:760px;margin:auto;display:grid;grid-template-columns:minmax(0,710px) minmax(280px,390px);align-items:end;gap:3rem;padding:5rem 0 3.2rem}.hero-content{padding-bottom:2.4rem}.hero h1 span{display:block}.hero h1 .accent{color:var(--gold)}.hero .lead{color:rgba(247,241,232,.83);font-size:1.15rem;max-width:620px}.hero-location{display:flex;align-items:center;gap:.6rem;margin:1.1rem 0 0;color:rgba(247,241,232,.82);font-size:.83rem;text-transform:uppercase;letter-spacing:.08em}.hero-card{align-self:end;background:rgba(247,241,232,.95);color:var(--midnight);padding:1.4rem;border-radius:var(--radius);box-shadow:var(--shadow-dark);border:1px solid rgba(255,255,255,.5);margin-bottom:2.4rem;position:relative;overflow:hidden}.hero-card::before{content:"";position:absolute;inset:0;background:url('../images/african-pattern.svg') right bottom/240px no-repeat;opacity:.12}.hero-card>*{position:relative}.hero-card .mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem}.mini-stat{background:#fff;padding:1rem;border:1px solid rgba(11,30,51,.08)}.mini-stat strong{font-family:var(--font-accent);font-size:1.4rem;color:var(--gold);display:block;line-height:1}.mini-stat span{font-size:.75rem;color:var(--muted);font-weight:700;text-transform:uppercase}.hero-card h3{font-size:1.8rem}.hero-wave{position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(180deg,transparent 0%,var(--midnight) 100%)}
.quick-strip{margin-top:-1px;background:var(--midnight);color:var(--ivory);border-top:1px solid rgba(197,164,109,.25);border-bottom:1px solid rgba(197,164,109,.25)}.quick-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0}.quick-item{padding:1.4rem 1.2rem;display:flex;gap:.85rem;align-items:center;border-right:1px solid rgba(197,164,109,.25)}.quick-item:last-child{border-right:0}.quick-item .icon{color:var(--gold);font-size:1.5rem}.quick-item strong{display:block;font-size:.82rem;text-transform:uppercase;letter-spacing:.07em}.quick-item span{font-size:.78rem;color:rgba(247,241,232,.7)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.split.three{grid-template-columns:.9fr 1.1fr}.image-stack{position:relative}.image-stack .main-img{border-radius:var(--radius);box-shadow:var(--shadow);border:8px solid #fff}.image-stack .float-img{position:absolute;right:-2rem;bottom:-2rem;width:45%;border-radius:18px;border:8px solid var(--ivory);box-shadow:var(--shadow)}.ornament-card{position:absolute;left:-1.6rem;bottom:2.4rem;background:var(--midnight);color:var(--ivory);padding:1rem 1.2rem;border-left:4px solid var(--gold);box-shadow:var(--shadow);max-width:240px}.ornament-card strong{font-family:var(--font-head);font-size:1.25rem;color:var(--gold);display:block}.feature-list{display:grid;gap:.85rem;margin:1.5rem 0}.feature-list li{list-style:none;display:flex;gap:.8rem;align-items:flex-start}.feature-list li::before{content:"✦";color:var(--gold);font-size:1rem;margin-top:.1rem}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.35rem;margin-top:2.2rem}.pillar-card{background:#fff;border:1px solid rgba(11,30,51,.1);box-shadow:var(--shadow);overflow:hidden;border-radius:18px;display:flex;flex-direction:column;position:relative}.pillar-card:hover .pillar-img img{transform:scale(1.06)}.pillar-img{height:235px;overflow:hidden;position:relative}.pillar-img img{width:100%;height:100%;object-fit:cover;transition:.6s ease}.pillar-img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,30,51,.55),transparent 55%)}.pillar-icon{position:absolute;left:50%;top:210px;transform:translateX(-50%);width:68px;height:68px;border-radius:50%;background:var(--midnight);color:var(--gold);display:grid;place-items:center;font-size:1.8rem;border:3px solid var(--gold);z-index:2;box-shadow:0 10px 30px rgba(11,30,51,.2)}.pillar-content{padding:3.1rem 1.6rem 1.7rem;text-align:center;flex:1}.pillar-content h3{font-size:1.7rem;text-transform:uppercase;letter-spacing:.04em}.pillar-content p{font-size:.95rem;color:var(--muted)}
.luxury-panel{background:linear-gradient(135deg,var(--midnight),#102940);color:var(--ivory);border-radius:var(--radius);padding:3rem;position:relative;overflow:hidden;box-shadow:var(--shadow-dark)}.luxury-panel::after{content:"";position:absolute;inset:0;background:url('../images/african-pattern.svg') right top/420px no-repeat;opacity:.15}.luxury-panel>*{position:relative}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem}.service-card{background:rgba(247,241,232,.08);border:1px solid rgba(197,164,109,.2);padding:1.4rem;border-radius:16px}.service-card .icon{font-size:1.55rem;color:var(--gold)}.service-card h4{font-size:1.15rem;margin:.6rem 0 .4rem}.service-card p{font-size:.88rem;color:rgba(247,241,232,.72)}
.room-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.5rem 0}.tab-btn{border:1px solid rgba(11,30,51,.18);background:#fff;color:var(--midnight);padding:.85rem 1.1rem;border-radius:100px;cursor:pointer;font-weight:800;text-transform:uppercase;font-size:.72rem;letter-spacing:.04em}.tab-btn.active{background:var(--midnight);color:var(--ivory);border-color:var(--midnight)}.tab-panel{display:none}.tab-panel.active{display:block}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.room-card{background:#fff;border:1px solid rgba(11,30,51,.1);border-radius:18px;overflow:hidden;box-shadow:0 12px 36px rgba(11,30,51,.09)}.room-card img{height:220px;width:100%;object-fit:cover}.room-card .room-body{padding:1.3rem}.room-card h3{font-size:1.45rem}.badge-row{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.badge{background:rgba(197,164,109,.13);color:var(--midnight);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;padding:.35rem .55rem;border-radius:100px}
.band{background:linear-gradient(90deg,var(--midnight),#11334b);color:var(--ivory);padding:2.4rem 0;position:relative;overflow:hidden}.band::after{content:"";position:absolute;inset:0;background:url('../images/african-pattern.svg') right center/360px no-repeat;opacity:.16}.band .container{position:relative;display:flex;justify-content:space-between;gap:1.5rem;align-items:center}.band h2{font-size:clamp(1.8rem,3vw,3rem);margin:0}.band p{color:rgba(247,241,232,.75);margin:0}
.gallery-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;grid-auto-rows:230px;gap:1rem;margin-top:2rem}.gallery-item{position:relative;overflow:hidden;border-radius:18px;box-shadow:0 14px 36px rgba(11,30,51,.12);cursor:pointer;background:var(--midnight);border:1px solid rgba(197,164,109,.22)}.gallery-item.big{grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.5s ease}.gallery-item:hover img{transform:scale(1.06);opacity:.82}.gallery-item span{position:absolute;left:1rem;bottom:1rem;color:#fff;background:rgba(11,30,51,.75);padding:.45rem .7rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;border-left:2px solid var(--gold)}
.review-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:2rem;align-items:stretch}.review-card{background:var(--midnight);color:var(--ivory);padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow-dark);position:relative;overflow:hidden}.review-card::after{content:'“';position:absolute;right:1.5rem;top:-1.2rem;font-family:var(--font-head);font-size:10rem;color:rgba(197,164,109,.14)}.review-card .stars{color:var(--gold);letter-spacing:.15em;margin:1rem 0}.review-slide{display:none}.review-slide.active{display:block}.review-controls{display:flex;gap:.6rem;margin-top:1.2rem}.circle-btn{width:42px;height:42px;border-radius:50%;border:1px solid rgba(197,164,109,.45);background:transparent;color:var(--gold);cursor:pointer}.ratings{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.rating{border:1px solid rgba(11,30,51,.1);padding:1.2rem;border-radius:16px;background:linear-gradient(180deg,#fff,#fbf7ef)}.rating strong{font-family:var(--font-head);font-size:2.4rem;color:var(--midnight);display:block;line-height:1}.rating span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--gold)}
.location-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-columns:1fr 1fr}.map-box{min-height:420px;background:#dde5e1;position:relative}.map-box iframe{width:100%;height:100%;border:0;display:block}.location-info{padding:2.2rem}.contact-lines{display:grid;gap:.8rem;margin:1.2rem 0}.contact-line{display:flex;gap:.85rem;align-items:flex-start}.contact-line .icon{color:var(--gold);font-size:1.25rem;width:28px}
.form-card{background:#fff;border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow);border:1px solid rgba(11,30,51,.08)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.field{display:flex;flex-direction:column;gap:.35rem}.field.full{grid-column:1/-1}.field label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--midnight)}.field input,.field select,.field textarea{border:1px solid rgba(11,30,51,.18);border-radius:2px;padding:.9rem 1rem;background:#fff;color:var(--charcoal);font-size:.95rem}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(197,164,109,.32);border-color:var(--gold)}.field textarea{min-height:130px;resize:vertical}.form-note{font-size:.78rem;color:var(--muted);margin:.9rem 0 0}.hp{position:absolute;left:-9999px;opacity:0}
.page-hero{position:relative;min-height:470px;background:var(--midnight);color:var(--ivory);display:grid;align-items:end;padding:8rem 0 4rem;overflow:hidden;isolation:isolate}.page-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(11,30,51,.82) 0%, rgba(11,30,51,.48) 38%, rgba(11,30,51,.32) 100%), var(--page-bg);background-position:center center, center center;background-size:cover, cover;background-repeat:no-repeat, no-repeat;z-index:-2}.page-hero::after{content:"";position:absolute;inset:0;background:url('../images/african-pattern.svg') right top/450px repeat-y;opacity:.14;z-index:-1}.page-hero .container{position:relative;z-index:1}.page-hero h1{max-width:760px}.page-hero .lead{max-width:760px;color:rgba(247,241,232,.88);text-shadow:0 2px 12px rgba(0,0,0,.22)}.crumb{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(247,241,232,.82);margin-bottom:1rem}.crumb a{color:var(--gold)}
.menu-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:2rem}.menu-card{background:#fff;border-left:5px solid var(--gold);padding:1.6rem;box-shadow:0 10px 30px rgba(11,30,51,.08)}.menu-card h3{font-size:1.6rem}.menu-list{display:grid;gap:1rem}.menu-row{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dotted rgba(11,30,51,.22);padding-bottom:.7rem}.menu-row strong{font-family:var(--font-head);font-size:1.15rem}.menu-row span{color:var(--gold);font-weight:800;white-space:nowrap}.event-packages{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.package{background:#fff;border-radius:18px;box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(11,30,51,.1)}.package img{height:220px;width:100%;object-fit:cover}.package-body{padding:1.5rem}.package ul{padding-left:1.1rem;margin:1rem 0;color:var(--muted)}
.faq{display:grid;gap:.8rem}.faq-item{background:#fff;border:1px solid rgba(11,30,51,.1);border-radius:14px;overflow:hidden}.faq-q{width:100%;background:#fff;border:0;padding:1.1rem 1.3rem;text-align:left;font-weight:800;color:var(--midnight);display:flex;justify-content:space-between;cursor:pointer}.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 1.3rem;color:var(--muted)}.faq-item.open .faq-a{max-height:240px;padding-bottom:1.2rem}
.site-footer{background:var(--midnight-2);color:var(--ivory);padding:4rem 0 1.5rem;position:relative;overflow:hidden}.site-footer::before{content:"";position:absolute;inset:0;background:url('../images/african-pattern.svg') right bottom/420px no-repeat;opacity:.12}.footer-grid{position:relative;display:grid;grid-template-columns:1.2fr .8fr .8fr 1fr;gap:2rem}.footer-logo img{width:260px}.footer-grid h4{font-family:var(--font-accent);font-size:1rem;color:var(--gold);letter-spacing:.1em;text-transform:uppercase}.footer-grid a,.footer-grid p{color:rgba(247,241,232,.74);font-size:.92rem}.footer-links{display:grid;gap:.5rem}.socials{display:flex;gap:.7rem;margin-top:1rem}.socials a{width:42px;height:42px;border-radius:50%;border:1px solid rgba(197,164,109,.35);display:grid;place-items:center;color:var(--gold)}.copyright{position:relative;border-top:1px solid rgba(197,164,109,.2);margin-top:2.5rem;padding-top:1rem;display:flex;justify-content:space-between;gap:1rem;color:rgba(247,241,232,.55);font-size:.8rem;flex-wrap:wrap}
.float-whatsapp{position:fixed;right:18px;bottom:20px;z-index:90;background:#25D366;color:white;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:1.7rem;box-shadow:0 15px 34px rgba(0,0,0,.25)}.mobile-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:89;background:rgba(11,30,51,.97);border-top:1px solid rgba(197,164,109,.3);padding:.55rem;gap:.5rem}.mobile-cta .btn{flex:1;min-height:44px;font-size:.62rem;padding:.65rem .5rem}.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%) translateY(30px);background:var(--midnight);color:#fff;padding:1rem 1.25rem;border-left:4px solid var(--gold);box-shadow:var(--shadow-dark);opacity:0;pointer-events:none;transition:.25s ease;z-index:200}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.modal{position:fixed;inset:0;z-index:180;display:none;align-items:center;justify-content:center;padding:1rem;background:rgba(5,13,23,.72);backdrop-filter:blur(8px)}.modal.open{display:flex}.modal-dialog{width:min(720px,96vw);max-height:92vh;overflow:auto;background:var(--ivory);border-radius:var(--radius);box-shadow:var(--shadow-dark);position:relative;border:1px solid rgba(197,164,109,.32)}.modal-head{padding:1.5rem 1.6rem;background:var(--midnight);color:var(--ivory);display:flex;justify-content:space-between;gap:1rem;align-items:center}.modal-head h3{margin:0;font-size:1.85rem}.modal-close{background:transparent;color:var(--ivory);border:1px solid rgba(197,164,109,.5);width:42px;height:42px;border-radius:50%;font-size:1.3rem;cursor:pointer}.modal-body{padding:1.6rem}.lightbox{position:fixed;inset:0;z-index:190;background:rgba(0,0,0,.86);display:none;align-items:center;justify-content:center;padding:1rem}.lightbox.open{display:flex}.lightbox img{max-height:84vh;max-width:92vw;border:8px solid var(--ivory);box-shadow:var(--shadow-dark)}.lightbox button{position:absolute;top:1rem;right:1rem}
@media (max-width:1080px){.nav{position:fixed;top:86px;right:0;width:min(380px,100vw);height:calc(100vh - 86px);background:var(--midnight);display:flex;flex-direction:column;align-items:flex-start;padding:2rem;transform:translateX(100%);transition:.3s ease;box-shadow:var(--shadow-dark);z-index:98}.nav.open{transform:translateX(0)}.menu-toggle{display:grid;place-items:center}.header-actions .btn{display:none}.hero-inner{grid-template-columns:1fr;align-items:end}.hero-card{max-width:500px;margin-bottom:0}.quick-grid{grid-template-columns:repeat(3,1fr)}.quick-item:nth-child(3){border-right:0}.quick-item:nth-child(n+4){border-top:1px solid rgba(197,164,109,.25)}.split,.split.three,.menu-section,.location-card{grid-template-columns:1fr}.pillar-grid,.room-grid,.event-packages{grid-template-columns:1fr 1fr}.service-grid{grid-template-columns:1fr 1fr}.review-wrap{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){h1{font-size:3.2rem}.hero,.hero-inner{min-height:690px}.hero-inner{padding:4rem 0 2rem}.hero::before{background:linear-gradient(90deg,rgba(5,17,31,.93),rgba(5,17,31,.62)),linear-gradient(0deg,rgba(11,30,51,.92),rgba(11,30,51,.1)),url('../images/hero-grand-house.jpg') center/cover no-repeat}.hero-card{display:none}.quick-grid{grid-template-columns:1fr}.quick-item{border-right:0;border-top:1px solid rgba(197,164,109,.18)}.section{padding:66px 0}.pillar-grid,.room-grid,.event-packages,.service-grid,.ratings,.form-grid,.footer-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:240px}.gallery-item.big{grid-row:span 1}.band .container{display:block}.band .button-row{margin-top:1rem}.topbar .container{justify-content:center;text-align:center}.topbar .toplinks{display:none}.logo img{width:210px}.nav{top:86px}.mobile-cta{display:flex}.float-whatsapp{bottom:74px}.image-stack .float-img,.ornament-card{position:relative;left:auto;right:auto;bottom:auto;width:100%;margin-top:1rem}.location-info{padding:1.4rem}.footer-logo img{width:230px}.copyright{padding-bottom:4.5rem}.modal-body{padding:1rem}.hero .button-row .btn{width:100%}}


/* ---- Direction A refinement pass ---- */
.topbar{display:none}
.site-header{top:0;background:#0B1E33;border-bottom:1px solid rgba(197,164,109,.18)}
.nav-wrap{min-height:78px;width:min(1220px,94vw)}
.logo{min-width:210px}.logo img{width:230px}.logo.small img{width:205px}
.nav{gap:1rem;font-size:.68rem;letter-spacing:.07em}
.header-actions .btn{min-height:46px;padding:.82rem 1.25rem}
.hero{min-height:620px;color:var(--ivory)}
.hero::before{background:linear-gradient(90deg,rgba(7,23,39,.58) 0%,rgba(7,23,39,.40) 30%,rgba(7,23,39,.10) 67%,rgba(7,23,39,.24) 100%),linear-gradient(0deg,rgba(11,30,51,.52) 0%,rgba(11,30,51,.05) 32%,rgba(11,30,51,.12) 100%),url('../images/hero-grand-house.jpg') center center/cover no-repeat;z-index:-2}
.hero::after{background:url('../images/african-pattern.svg') right 2rem top 5.4rem/360px repeat-y;opacity:.18}
.hero-inner{width:min(1240px,94vw);min-height:620px;display:grid;grid-template-columns:minmax(0,620px);align-items:end;gap:1rem;padding:3.3rem 0 2rem}
.hero-content{padding-bottom:1rem;max-width:560px}
.hero h1{font-size:clamp(3.6rem,6vw,5.5rem);line-height:.92;letter-spacing:-.05em;max-width:620px;text-shadow:0 10px 30px rgba(0,0,0,.16)}
.hero .lead{font-size:1.06rem;max-width:460px;color:rgba(247,241,232,.92);text-shadow:0 4px 20px rgba(0,0,0,.2)}
.hero .button-row{margin-top:1.15rem}.hero .button-row .btn{min-height:44px;padding:.75rem 1.15rem;font-size:.72rem}
.hero-location{margin-top:1rem;font-size:.78rem;letter-spacing:.05em;color:rgba(247,241,232,.86)}
.hero-card{display:none!important}
.hero-wave{height:22px;background:linear-gradient(180deg,transparent 0%, rgba(247,241,232,.92) 100%)}
.home-pillars{padding:18px 0 30px}.home-pillars .pillar-grid{margin-top:0}
.pillar-card{border-radius:10px;box-shadow:0 12px 34px rgba(11,30,51,.12)}
.pillar-img{height:220px}.pillar-icon{top:190px;width:64px;height:64px;font-size:1.55rem}.pillar-content{padding:2.8rem 1.5rem 1.5rem}.pillar-content h3{font-size:1.55rem;margin-bottom:.45rem}
.section.tight{padding-top:26px}
.image-stack .main-img{border-width:6px;border-radius:18px}.image-stack .float-img{border-width:6px}
.ornament-card{display:none}
@media (max-width:1080px){.hero-inner{grid-template-columns:1fr;min-height:580px}.hero{min-height:580px}.logo img{width:220px}}
@media (max-width:760px){.site-header{position:sticky}.nav-wrap{min-height:74px}.logo img{width:200px}.hero,.hero-inner{min-height:560px}.hero::before{background:linear-gradient(90deg,rgba(7,23,39,.76),rgba(7,23,39,.44) 44%,rgba(7,23,39,.26)),linear-gradient(0deg,rgba(11,30,51,.58),rgba(11,30,51,.08)),url('../images/hero-grand-house.jpg') center/cover no-repeat}.hero-inner{padding:3rem 0 1.8rem}.hero h1{font-size:3.4rem}.hero .lead{max-width:100%}.home-pillars{padding-top:14px}}


/* ---- live-site polish pass ---- */
.section.tight .container.split.three{align-items:center}
.section.tight .lead{font-size:1.02rem;max-width:650px;color:rgba(35,35,35,.82)}
.feature-list{gap:1rem}.feature-list li{font-size:1rem;color:#3c3a36}.feature-list li::before{content:"✦";font-size:.8rem;margin-top:.35rem}
.room-grid{margin-top:1.6rem}
.deep-experience{background:linear-gradient(180deg,#09192b 0%, #0b2339 100%);color:var(--ivory);padding:86px 0 92px;position:relative;overflow:hidden}.deep-experience::before{content:"";position:absolute;inset:0;background:url('../images/african-pattern.svg') right 4rem top 3rem/380px repeat-y;opacity:.12}.deep-experience .container{position:relative}.experience-intro{margin-bottom:2rem}.experience-intro .lead{color:rgba(247,241,232,.78);max-width:760px;margin-inline:auto}.experience-image-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.15rem}.experience-card.rich{background:rgba(255,255,255,.06);border:1px solid rgba(197,164,109,.24);border-radius:20px;overflow:hidden;box-shadow:0 16px 44px rgba(0,0,0,.18);backdrop-filter:blur(3px)}.experience-card.rich img{width:100%;height:220px;object-fit:cover;display:block}.experience-card-body{padding:1.2rem 1.25rem 1.35rem}.experience-card-body .eyebrow{margin-bottom:.45rem;font-size:.66rem}.experience-card-body h3{font-size:1.55rem;margin-bottom:.45rem;color:#fff}.experience-card-body p{color:rgba(247,241,232,.78);font-size:.95rem;line-height:1.7;min-height:112px}.experience-card.rich .btn.text{color:#d7b56a}.experience-card.rich .btn.text:hover{color:#f1c97a}
.band h2{font-size:2.15rem}.review-wrap{align-items:start}.review-card p{font-size:1.02rem;line-height:1.8}.ratings p{font-size:.92rem;line-height:1.65}
@media (max-width:1080px){.experience-image-grid{grid-template-columns:1fr 1fr}.experience-card-body p{min-height:0}}
@media (max-width:760px){.deep-experience{padding:68px 0}.experience-image-grid{grid-template-columns:1fr}.experience-card.rich img{height:210px}}

.page-hero{box-shadow:inset 0 -1px 0 rgba(197,164,109,.15)}
.menu-card,.package,.service-card,.form-card,.location-card{box-shadow:0 16px 44px rgba(11,30,51,.10)}
.package-body p,.menu-section .lead,.location-card p,.form-note{line-height:1.75}
.location-visuals{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.4rem}.location-visuals img{width:100%;height:240px;object-fit:cover;border-radius:16px;box-shadow:var(--shadow)}
.contact-split{align-items:start}.contact-aside-card{grid-column:1/-1;background:#fff;border:1px solid rgba(11,30,51,.08);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);margin-top:1.5rem}.contact-aside-card img{width:100%;height:220px;object-fit:cover;display:block}.contact-aside-card .inner{padding:1.2rem 1.25rem}.contact-aside-card h3{font-size:1.6rem;margin-bottom:.35rem}.contact-aside-card p{color:var(--muted)}
@media (max-width:760px){.page-hero{min-height:400px;padding:7rem 0 3rem}.page-hero::before{background-image:linear-gradient(90deg,rgba(11,30,51,.86),rgba(11,30,51,.48)), var(--page-bg)}.location-visuals{grid-template-columns:1fr}}


/* ---- full tab luxury rebuild ---- */
.luxury-page-hero{min-height:520px;padding:9rem 0 4.6rem}.luxury-page-hero::before{background-image:linear-gradient(90deg,rgba(7,23,39,.88) 0%,rgba(7,23,39,.64) 36%,rgba(7,23,39,.26) 72%,rgba(7,23,39,.46) 100%),var(--page-bg);background-size:cover,cover;background-position:center center,center center}.luxury-page-hero h1{font-size:clamp(4rem,7vw,7.4rem);letter-spacing:-.06em}.luxury-page-hero .lead{font-size:1.14rem;max-width:680px;color:rgba(247,241,232,.92)}
.luxury-intro{padding:88px 0;background:linear-gradient(180deg,rgba(255,250,241,.96),rgba(247,241,232,.96))}.luxury-intro .split{gap:4.5rem}.luxury-stack .main-img{border-radius:18px;border:7px solid #fff;box-shadow:0 20px 60px rgba(11,30,51,.17)}.luxury-stack .float-img{border:7px solid var(--ivory);border-radius:14px;width:46%;right:-1.4rem;bottom:-1.4rem}.rooms-luxury{padding-top:72px}.premium-room-grid{margin-top:2rem}.premium-card{border-radius:20px;background:linear-gradient(180deg,#fff,#fbf7ef)}.premium-card img{height:250px}.premium-card .eyebrow{font-size:.62rem;margin-bottom:.35rem}.deep-experience .feature-list li{color:rgba(247,241,232,.84)}.two-up{grid-template-columns:1fr 1fr!important}.restaurant-menu-luxury{background:var(--midnight);color:var(--ivory)}.restaurant-menu-luxury .lead{color:rgba(247,241,232,.82)}.luxury-menu-list .menu-card{background:rgba(255,255,255,.95);color:var(--midnight);border-left:5px solid var(--gold);box-shadow:0 18px 50px rgba(0,0,0,.18)}.luxury-menu-list .menu-row strong{color:var(--midnight)}.deep-experience .package{background:#fff;color:var(--charcoal)}.deep-experience .package h3{color:var(--midnight)}.deep-experience .package img{height:240px}.luxury-location-card{margin-top:0}.location-visuals img{border:6px solid rgba(247,241,232,.92)}
.contact-aside-card{grid-column:1/-1;background:#fff;border:1px solid rgba(11,30,51,.08);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);margin-top:1.5rem}.contact-aside-card img{width:100%;height:260px;object-fit:cover;display:block}.contact-aside-card .inner{padding:1.25rem 1.35rem}.contact-aside-card h3{font-size:1.6rem;margin-bottom:.35rem}.contact-aside-card p{color:var(--muted)}.luxury-form-card{border-top:5px solid var(--gold)}.curated-gallery{margin-top:2rem}.curated-gallery .gallery-item img{filter:saturate(1.04) contrast(1.03)}.page-hero .lead{color:rgba(247,241,232,.92)!important}
@media (max-width:1080px){.luxury-page-hero{min-height:460px}.two-up{grid-template-columns:1fr!important}}@media (max-width:760px){.luxury-page-hero{min-height:430px;padding:7.2rem 0 3.2rem}.luxury-page-hero h1{font-size:3.8rem}.premium-card img{height:220px}}


/* ---- page hero fix: real image backgrounds + tighter height ---- */
.page-hero,
.luxury-page-hero{
  min-height:380px !important;
  padding:6.4rem 0 3.1rem !important;
  background:#0B1E33;
}
.page-hero::before,
.luxury-page-hero::before{
  background-image:
    linear-gradient(90deg, rgba(7,23,39,.82) 0%, rgba(7,23,39,.55) 42%, rgba(7,23,39,.28) 100%),
    var(--page-bg) !important;
  background-size:cover, cover !important;
  background-position:center center, center center !important;
  background-repeat:no-repeat, no-repeat !important;
  opacity:1 !important;
}
.page-hero::after,
.luxury-page-hero::after{opacity:.08 !important}
.luxury-page-hero h1{font-size:clamp(3.6rem,5.6vw,6rem) !important;line-height:.96}
.luxury-page-hero .lead{max-width:720px;font-size:1.06rem !important;color:rgba(247,241,232,.92) !important}
.crumb{margin-bottom:.9rem !important}
@media (max-width:760px){
  .page-hero,.luxury-page-hero{min-height:340px !important;padding:5.8rem 0 2.5rem !important}
  .luxury-page-hero h1{font-size:3.25rem !important}
}


/* ---- mobile compatibility + overflow hardening ---- */
html, body { width:100%; max-width:100%; overflow-x:hidden; }
body { -webkit-text-size-adjust:100%; }
*, *::before, *::after { min-width:0; }
img, video, iframe, svg { max-width:100%; height:auto; }
.container, .nav-wrap, .hero-inner { width:min(1180px, calc(100% - 32px)); max-width:100%; }
.nav-wrap { min-width:0; }
.logo { min-width:0; flex:0 1 auto; }
.logo img { max-width:220px; }
.header-actions { flex:0 0 auto; }
.split, .split.three, .menu-section, .location-card, .contact-split { min-width:0; }
.field input, .field select, .field textarea { width:100%; min-width:0; }
.map-box iframe { min-width:0; }
.button-row { min-width:0; }
.btn { max-width:100%; }

@media (max-width: 980px){
  .topbar { display:none !important; }
  .site-header { position:sticky; top:0; }
  .nav-wrap { min-height:72px; width:calc(100% - 24px); gap:.75rem; }
  .logo img { width:190px; max-width:58vw; }
  .header-actions > .btn { display:none !important; }
  .menu-toggle { display:grid !important; place-items:center; flex:0 0 44px; }
  .nav { top:72px !important; right:0; width:min(360px,100vw) !important; max-width:100vw; height:calc(100vh - 72px) !important; overflow-y:auto; padding:1.4rem 1.25rem !important; }
  .hero, .hero-inner { min-height:560px !important; }
  .hero-inner { grid-template-columns:1fr !important; padding:3rem 0 1.7rem !important; }
  .hero h1 { font-size:clamp(3rem,12vw,4.3rem) !important; }
  .hero .lead { font-size:1rem !important; max-width:100%; }
  .hero .button-row .btn { flex:1 1 100%; width:100%; }
  .page-hero, .luxury-page-hero { min-height:330px !important; padding:5.4rem 0 2.4rem !important; }
  .page-hero h1, .luxury-page-hero h1 { font-size:clamp(3rem,13vw,4rem) !important; }
  .page-hero .lead, .luxury-page-hero .lead { font-size:1rem !important; max-width:100%; }
  .section, .luxury-intro { padding:56px 0 !important; }
  .section.tight { padding:42px 0 !important; }
  .split, .split.three, .menu-section, .location-card, .contact-split { grid-template-columns:1fr !important; gap:2rem !important; }
  .pillar-grid, .room-grid, .premium-room-grid, .event-packages, .service-grid, .experience-image-grid, .two-up, .ratings, .form-grid, .footer-grid, .location-visuals { grid-template-columns:1fr !important; }
  .quick-grid { grid-template-columns:1fr !important; }
  .quick-item { border-right:0 !important; border-top:1px solid rgba(197,164,109,.20); padding:1rem .2rem; }
  .image-stack .float-img, .luxury-stack .float-img { position:relative !important; left:auto !important; right:auto !important; bottom:auto !important; width:100% !important; margin-top:1rem; border-width:5px !important; }
  .image-stack .main-img, .luxury-stack .main-img { width:100%; border-width:5px !important; }
  .pillar-img { height:210px !important; }
  .pillar-icon { top:182px !important; }
  .experience-card.rich img, .package img, .room-card img { height:220px !important; }
  .gallery-grid { grid-template-columns:1fr !important; grid-auto-rows:auto !important; }
  .gallery-item, .gallery-item.big { min-height:230px !important; grid-row:span 1 !important; }
  .gallery-item img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .location-card { border-radius:18px !important; }
  .map-box { min-height:330px !important; }
  .location-info, .form-card, .modal-body { padding:1.25rem !important; }
  .band .container { display:block !important; }
  .band .button-row { margin-top:1rem; }
  .band .btn { width:100%; }
  .footer-grid { gap:1.4rem !important; }
  .footer-logo img { width:210px !important; }
  .copyright { padding-bottom:4.5rem; }
  .mobile-cta { display:flex !important; }
  .float-whatsapp { width:54px !important; height:54px !important; right:14px !important; bottom:72px !important; }
  .modal { padding:.75rem !important; align-items:flex-start !important; overflow-y:auto; }
  .modal-dialog { width:calc(100vw - 24px) !important; max-width:calc(100vw - 24px) !important; margin:1rem auto; max-height:none !important; }
  .modal-head { padding:1rem 1.1rem !important; }
  .modal-head h3 { font-size:1.55rem !important; }
  .field.full { grid-column:auto !important; }
  h2 { font-size:clamp(2.15rem,11vw,3.1rem) !important; }
  h3 { overflow-wrap:break-word; }
}

@media (max-width: 420px){
  .container, .hero-inner, .nav-wrap { width:calc(100% - 22px); }
  .logo img { width:175px; max-width:62vw; }
  .nav-wrap { min-height:68px; }
  .nav { top:68px !important; height:calc(100vh - 68px) !important; }
  .btn { min-height:46px; padding:.78rem .9rem; font-size:.68rem; white-space:normal; }
  .hero h1 { font-size:3rem !important; }
  .page-hero h1, .luxury-page-hero h1 { font-size:2.75rem !important; }
  .page-hero, .luxury-page-hero { min-height:310px !important; }
  .pillar-content, .room-card .room-body, .package-body { padding:1.25rem !important; }
  .mobile-cta .btn { font-size:.58rem; padding:.55rem .35rem; }
}
