:root{--sand:#f6f0e6;--cream:#fbf8f2;--ink:#2d2a26;--muted:#6f675d;--terra:#b0704a;--terra-d:#8f5636;--sea:#3f6f6a;--line:#e4dbcd;--wa:#25a35a}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:16px/1.65 Inter,system-ui,sans-serif;color:var(--ink);background:var(--cream)}
img{max-width:100%;display:block}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;line-height:1.1;margin:0 0 .5em}
h2{font-size:clamp(2rem,6vw,3rem)}h3{font-size:1.5rem}
.wrap{max-width:1140px;margin:0 auto;padding:4.5rem 1.25rem}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;color:var(--terra);margin:0 0 .6rem;font-weight:600}
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:1rem;padding:.8rem 1.25rem;background:rgba(251,248,242,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.35rem;letter-spacing:.12em;color:var(--ink);text-decoration:none}
.logo span{color:var(--terra);margin-left:.35em}
.nav nav{display:none;gap:1.5rem;margin-left:auto}.nav nav a{color:var(--ink);text-decoration:none;font-size:.9rem}
.lang{margin-left:auto;display:flex;border:1px solid var(--line);border-radius:99px;overflow:hidden}
.lang button{border:0;background:none;padding:.35rem .7rem;font:600 .78rem Inter;cursor:pointer;color:var(--muted)}
.lang button.on{background:var(--ink);color:#fff}
@media(min-width:820px){.nav nav{display:flex}.lang{margin-left:1rem}}
.hero{position:relative;min-height:92svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:center/cover;filter:saturate(.85)}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,25,20,.15) 30%,rgba(30,25,20,.7))}
.hero-in{position:relative;z-index:1;padding:0 1.25rem 4rem;max-width:1140px;margin:0 auto;width:100%}
.hero .eyebrow{color:#f1dcc8}
.hero h1{font-size:clamp(3rem,13vw,6.5rem);letter-spacing:.08em}.hero h1 em{font-style:normal;color:#f1dcc8}
.lead{font-size:1.15rem;max-width:34rem;margin:0 0 1.6rem}
.btns{display:flex;flex-wrap:wrap;gap:.75rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.4rem;border-radius:99px;background:var(--terra);color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;cursor:pointer}
.btn:hover{background:var(--terra-d)}.btn.ghost{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.6)}
.btn svg{width:1.3em;height:1.3em}
.intro{text-align:center;max-width:46rem;font-family:"Cormorant Garamond",serif;font-size:1.55rem;line-height:1.4;padding-bottom:1rem}
.villa{margin:3rem 0 4rem;border-top:1px solid var(--line);padding-top:3rem}
.villa-head{display:grid;gap:2rem}
@media(min-width:900px){.villa-head{grid-template-columns:1.2fr 1fr;align-items:start}}
.villa-cover{border-radius:14px;overflow:hidden;aspect-ratio:4/3;cursor:zoom-in}
.villa-cover img{width:100%;height:100%;object-fit:cover}
.tag{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .7rem;border-radius:99px;background:var(--sand);color:var(--sea);margin:0 .4rem .8rem 0}
.tag.sale{background:var(--terra);color:#fff}
.facts{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0;padding:0;list-style:none}
.facts li{border:1px solid var(--line);border-radius:8px;padding:.4rem .75rem;font-size:.88rem;background:#fff}
.villa h4{margin:1.2rem 0 .3rem;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.villa ul.svc{padding-left:1.1rem;margin:0}
.rate{font-weight:600;color:var(--sea)}
.sale-box{margin-top:1.4rem;padding:1.1rem 1.2rem;border-radius:12px;background:var(--sand);border-left:4px solid var(--terra)}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:1.5rem}
@media(min-width:700px){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery img{aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:zoom-in;width:100%}
.band{background:var(--sand)}.sub{color:var(--muted);max-width:40rem}
.safaris{display:grid;gap:1rem;margin:2rem 0}
@media(min-width:820px){.safaris{grid-template-columns:1fr 1fr}}
.saf{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.4rem}
.saf .dur{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--terra);font-weight:600}
.prices{display:flex;gap:.5rem;margin:.8rem 0}.prices div{flex:1;background:var(--cream);border-radius:10px;padding:.6rem .8rem}
.prices small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.prices b{font-size:1.35rem;font-family:"Cormorant Garamond",serif}
.saf details{margin-top:.6rem;font-size:.92rem}.saf summary{cursor:pointer;color:var(--sea);font-weight:600}
.saf details p{margin:.6rem 0}.saf .lodge{color:var(--muted);font-size:.85rem}
.incl{display:grid;gap:1.5rem}@media(min-width:820px){.incl{grid-template-columns:repeat(3,1fr)}}
.incl ul{padding-left:1.1rem;margin:0;font-size:.93rem}.incl p{font-size:.93rem}
.note{color:var(--muted);font-size:.85rem;margin-top:1.5rem}
.watamu{display:grid;gap:2rem;align-items:center}@media(min-width:820px){.watamu{grid-template-columns:1fr 1fr}}
.watamu img{border-radius:14px;aspect-ratio:4/3;object-fit:cover;width:100%}
.contact{background:var(--sea);color:#fff;text-align:center}.contact p{max-width:36rem;margin:0 auto 1.5rem}
.btn.wa{background:var(--wa);font-size:1.05rem}.small{font-size:.85rem;opacity:.8;margin-top:1.2rem!important}
footer{text-align:center;padding:1.5rem;font-size:.82rem;color:var(--muted);padding-bottom:6.5rem}
.wa-float{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:60;width:58px;height:58px;border-radius:50%;background:var(--wa);color:#fff;display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.wa-float svg{width:32px;height:32px}
#lightbox{position:fixed;inset:0;z-index:100;background:rgba(20,18,15,.94);display:flex;align-items:center;justify-content:center}
#lightbox[hidden]{display:none}#lightbox img{max-width:94vw;max-height:86vh;border-radius:6px}
#lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:2.6rem;cursor:pointer;padding:1rem}
.lb-x{top:0;right:0}.lb-p{left:0}.lb-n{right:0}
video.hero-bg{width:100%;height:100%;object-fit:cover}
.villa-cover video{width:100%;height:100%;object-fit:cover}
.avail{background:#fff;color:var(--ink);text-align:left;max-width:560px;margin:0 auto 2rem;padding:1.4rem;border-radius:14px;display:grid;gap:.8rem}
.avail label{display:grid;gap:.25rem;font-size:.8rem;font-weight:600;color:var(--muted);flex:1}
.avail input,.avail select,.avail textarea{font:16px Inter,sans-serif;padding:.65rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--cream);color:var(--ink);width:100%}
.avail .row{display:flex;gap:.7rem}.avail button{border:0;justify-content:center}
.map iframe{width:100%;height:360px;border:0;border-radius:14px}
.avail .row label{min-width:0}.avail input{min-width:0}
/* safari redesign */
.saf-band{background:#211a14;color:#f3ebe0}
.saf-band .wrap{padding-top:2rem}
.saf-hero{position:relative;min-height:78svh;background:center 35%/cover;display:flex;align-items:flex-end}
.saf-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(33,26,20,.05) 30%,rgba(33,26,20,.75) 75%,#211a14)}
.saf-hero-in{position:relative;max-width:1140px;margin:0 auto;width:100%;padding:0 1.25rem 2rem}
.saf-hero h2{font-size:clamp(2.6rem,10vw,4.8rem);color:#fff}
.saf-band .eyebrow{color:#e0a46f}.saf-band .sub{color:#e6dccd;font-size:1.05rem}
.saf-band .saf{background:#2d241c;border:1px solid #43372b;padding:0;overflow:hidden;color:#f3ebe0}
.saf-img{position:relative;aspect-ratio:16/7;overflow:hidden}.saf-img img{width:100%;height:100%;object-fit:cover}
.saf-img .dur{position:absolute;left:12px;bottom:10px;background:rgba(33,26,20,.8);color:#f1dcc8;padding:.3rem .7rem;border-radius:99px;font-size:.72rem}
.saf-body{padding:1.2rem 1.3rem 1.4rem}.saf-body h3{font-size:1.8rem;margin-bottom:.3rem}
.from{margin:.2rem 0 .6rem;color:#d9cbb8}.from b{font-family:"Cormorant Garamond",serif;font-size:2.1rem;color:#e0a46f}.from small{font-size:.75rem}
.saf-band .prices div{background:#3a2f25}.saf-band .prices small{color:#bfae98}
.hl{list-style:none;padding:0;margin:.6rem 0}.hl li{padding-left:1.3rem;position:relative;margin:.2rem 0;font-size:.93rem}.hl li:before{content:"✦";position:absolute;left:0;color:#e0a46f}
.saf-band .saf summary{color:#e0a46f}.saf-band .lodge,.saf-band .note{color:#bfae98}
.btn.big{width:100%;justify-content:center;margin-top:1rem;padding:1rem;font-size:1.05rem}
.saf-band .incl h3{color:#fff}
.teaser{display:grid;gap:0;margin:0 1.25rem 1rem;border-radius:16px;overflow:hidden;background:#211a14;color:#f3ebe0;text-decoration:none;max-width:1100px}
@media(min-width:1180px){.teaser{margin:0 auto 1rem}}
@media(min-width:820px){.teaser{grid-template-columns:1.1fr 1fr;align-items:center}}
.teaser img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/8}
.teaser>div{padding:1.4rem}.teaser h3{font-size:2rem;color:#fff}.teaser .eyebrow{color:#e0a46f}
.pkg-card{background:var(--sand);border-radius:18px;padding:1.6rem;border:1px solid var(--line)}
.pkg-grid{display:grid;gap:1.2rem;margin:1rem 0}@media(min-width:820px){.pkg-grid{grid-template-columns:1fr 1.4fr}}
.pkg h4{margin:0 0 .4rem;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
#pkg-saf{list-style:none;padding:0;margin:0}#pkg-saf li{display:flex;flex-direction:column;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
#pkg-saf small{color:var(--muted)}#pkg-saf b{color:var(--terra-d);font-weight:600}
.revs{display:grid;gap:1rem}@media(min-width:820px){.revs{grid-template-columns:repeat(3,1fr)}}
.rev{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.2rem}.rev cite{color:var(--muted);font-size:.85rem}
.teaser img{aspect-ratio:4/3;object-position:center}
.intro p{white-space:pre-line}
/* ---- intro short + fx ---- */
.intro{max-width:38rem;font-size:1.15rem;line-height:1.6;padding:3rem 1.25rem 1.5rem;color:#5a4a3c}
.intro p{white-space:pre-line;margin:0}
.intro p{font-size:1em}.intro .k1{display:block;font-size:1.4rem;color:var(--terra);font-style:italic;margin-bottom:.5rem}
@media(max-width:640px){.intro{font-size:1.05rem;padding-left:3.6rem;padding-right:3.6rem}.wa-float{width:52px;height:52px;right:12px}}
.rv{transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.fx .rv:not(.in){opacity:0;transform:translateY(28px)}
.hero-bg{animation:kzoom 22s ease-in-out infinite alternate;will-change:transform}
@keyframes kzoom{from{transform:scale(1)}to{transform:scale(1.12)}}
.hero-in>*{opacity:0;transform:translateY(22px);animation:hup 1s cubic-bezier(.2,.7,.2,1) forwards}
.hero-in>*:nth-child(2){animation-delay:.25s}.hero-in>*:nth-child(3){animation-delay:.5s}.hero-in>*:nth-child(4){animation-delay:.75s}
@keyframes hup{to{opacity:1;transform:none}}
h2{position:relative;padding-bottom:.35em}
h2:after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;border-radius:3px;background:linear-gradient(90deg,var(--terra),#e0b98f,var(--sea),var(--terra));background-size:300% 100%;transition:width 1.2s ease .2s;animation:gmove 6s linear infinite}
.contact h2:after,.map h2:after{left:50%;transform:translateX(-50%)}
h2.in:after,.in h2:after{width:72px}
@keyframes gmove{to{background-position:300% 0}}
.saf,.villa-cover,.teaser,.pkg-card{transition:transform .45s ease,box-shadow .45s ease}
.saf:hover,.teaser:hover,.pkg-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(60,40,20,.18)}
.villa-cover:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(60,40,20,.2)}
.saf-img,.villa-cover,.teaser{overflow:hidden}
.saf-img img,.villa-cover img,.villa-cover video,.teaser img,.gallery img{transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.saf:hover .saf-img img,.villa-cover:hover img,.villa-cover:hover video,.teaser:hover img,.gallery img:hover{transform:scale(1.07)}
.wa-float{animation:wapulse 2.6s ease-out infinite}
@keyframes wapulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.55),0 6px 20px rgba(0,0,0,.25)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0),0 6px 20px rgba(0,0,0,.25)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0),0 6px 20px rgba(0,0,0,.25)}}
.fx .rv li{transition:opacity .6s ease,transform .6s ease}
.fx .rv:not(.in) li{opacity:0;transform:translateX(-10px)}
.fx .rv li:nth-child(2){transition-delay:.08s}.fx .rv li:nth-child(3){transition-delay:.16s}.fx .rv li:nth-child(4){transition-delay:.24s}.fx .rv li:nth-child(5){transition-delay:.32s}.fx .rv li:nth-child(n+6){transition-delay:.4s}
.saf-hero{background-attachment:scroll}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.rv,.rv li,.hero-in>*{opacity:1!important;transform:none!important}h2:after{width:72px}}

.logo img{display:block;height:44px;width:auto}@media(min-width:820px){.logo img{height:52px}}
.foot-logo{display:block;width:220px;height:auto;margin:1rem auto .8rem;opacity:.9}
.disc-sub{color:var(--muted);max-width:36rem;margin:0 0 1.5rem}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;grid-auto-flow:dense}
@media(min-width:820px){.dgrid{grid-template-columns:repeat(3,1fr);gap:1rem}.dw.tall2{grid-row:span 2}}
.dw{position:relative;margin:0;border-radius:12px;overflow:hidden;aspect-ratio:3/4;background:#e9dfd2}
.dw.wide{grid-column:span 2;aspect-ratio:16/9}
@media(min-width:820px){.dw.tall2{aspect-ratio:auto}}
.dw picture,.dw img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.dw:hover img{transform:scale(1.07)}
.dw figcaption{position:absolute;inset:auto 0 0;padding:2rem .8rem .7rem;color:#fff;font-family:"Cormorant Garamond",serif;font-size:1.05rem;font-style:italic;line-height:1.2;background:linear-gradient(transparent,rgba(30,22,15,.7))}
.saf-duo{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:1rem 0 2rem}
.saf-duo .dw{aspect-ratio:4/5}
@media(min-width:820px){.saf-duo{gap:1rem}}
.dw.rv:nth-child(3n+2){transition-delay:.12s}.dw.rv:nth-child(3n){transition-delay:.24s}
.sgrid{margin:0 0 2rem}.sgrid .dw{background:#2b231b}
.dw.small{aspect-ratio:3/4}@media(min-width:820px){.dw.small{grid-column:span 1;aspect-ratio:4/3}}
.about{display:grid;gap:1.8rem;align-items:center;justify-items:center;text-align:center;padding-top:3rem;padding-bottom:3rem}
@media(min-width:820px){.about{grid-template-columns:320px 1fr;justify-items:start;text-align:left}}
.about-ph{display:block;width:min(260px,70vw);aspect-ratio:1;border-radius:50%;overflow:hidden;box-shadow:0 0 0 6px #fbf8f2,0 0 0 7px var(--terra),0 18px 40px rgba(60,40,20,.18)}
.about-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.about-p{font-family:"Cormorant Garamond",serif;font-size:1.3rem;line-height:1.5;max-width:34rem}
@media(max-width:640px){.about{padding-left:3.6rem;padding-right:3.6rem}}

.about-mark{background:#fbf8f2;display:flex;align-items:center;justify-content:center}.about-mark img{width:62%!important;height:62%!important;object-fit:contain!important}

.about-card{display:block;width:100%;max-width:420px;border-radius:18px;overflow:hidden;box-shadow:0 18px 40px rgba(60,40,20,.2),0 2px 6px rgba(60,40,20,.1)}
.about-card img{display:block;width:100%;height:auto}
@media(min-width:820px){.about{grid-template-columns:minmax(260px,380px) 1fr}}
@media(max-width:640px){.about{padding-left:1.2rem;padding-right:1.2rem}}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
