:root{
  --cream:#F9F5EE;--cream-dark:#F2EDE2;--cream-mid:#EDE6D6;
  --gold:#B8954A;--gold-light:#D4B06A;--gold-pale:#E8D5A8;--gold-deep:#8A6D2F;
  --ink:#1C1912;--ink-mid:#3D3828;--ink-soft:#6B6250;--ink-ghost:#A09880;
  --serif:'Cormorant Garamond',serif;--sans:'Jost',sans-serif;
}

/* Reveal */
.kl-reveal,.kl-reveal-l,.kl-reveal-r{opacity:0;transition:opacity .8s ease,transform .8s ease;}
.kl-reveal{transform:translateY(28px);}
.kl-reveal-l{transform:translateX(-28px);}
.kl-reveal-r{transform:translateX(28px);}
.kl-reveal.in,.kl-reveal-l.in,.kl-reveal-r.in{opacity:1;transform:none;}

/* Common */
.kl-villa-kicker{font-size:10px;letter-spacing:3.5px;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:16px;}
.kl-villa-kicker--light{color:var(--gold);}
.kl-villa-h2{font-family:var(--serif);font-weight:300;font-size:clamp(36px,5vw,60px);line-height:1.08;color:var(--ink);letter-spacing:-.5px;}
.kl-villa-h2 em{color:var(--gold);font-style:italic;}
.kl-villa-h2--light{color:var(--cream);}
.kl-villa-body{font-size:15px;line-height:1.8;color:var(--ink-soft);font-weight:300;max-width:520px;}
.kl-villa-body--light{color:rgba(249,245,238,.6);}
.kl-villa-gold-rule{width:48px;height:1px;background:var(--gold);margin:24px 0;}

/* Buttons */
.kl-btn-gold{display:inline-block;background:var(--gold);color:#fff;padding:14px 36px;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;text-decoration:none;font-weight:500;font-family:var(--sans);transition:background .3s;}
.kl-btn-gold:hover{background:var(--gold-deep);color:#fff;}
.kl-btn-outline-dark{display:inline-block;border:1px solid rgba(184,149,74,.5);color:var(--gold-light);padding:14px 36px;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;text-decoration:none;font-weight:400;font-family:var(--sans);transition:all .3s;}
.kl-btn-outline-dark:hover{border-color:var(--gold);color:var(--gold);}
.kl-btn-outline-cta{display:inline-block;border:1px solid rgba(184,149,74,.5);color:var(--cream);padding:14px 36px;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;text-decoration:none;font-weight:400;font-family:var(--sans);transition:all .3s;}
.kl-btn-outline-cta:hover{border-color:var(--gold);color:var(--gold);}

/* ── HERO ── */
.kl-villa-hero{min-height:100vh;padding-top:76px;position:relative;overflow:hidden;display:flex;align-items:flex-end;background:var(--ink);}
.kl-villa-hero__bg{position:absolute;inset:0;background:linear-gradient(155deg,rgba(46,36,25,0.3) 0%,rgba(28,25,18,0.4) 55%,rgba(17,15,12,0.5) 100%);}
.kl-villa-hero__grid{position:absolute;inset:0;opacity:.05;background-image:repeating-linear-gradient(0deg,#B8954A 0,#B8954A 1px,transparent 1px,transparent 80px),repeating-linear-gradient(90deg,#B8954A 0,#B8954A 1px,transparent 1px,transparent 80px);}
.kl-villa-hero__art{position:absolute;right:8%;top:50%;transform:translateY(-50%);width:380px;height:500px;opacity:.65;pointer-events:none;}
.kl-villa-hero__content{position:relative;z-index:10;padding:80px 64px 96px;max-width:700px;}
.kl-villa-hero__eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:28px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);}
.kl-villa-hero__eyebrow-line{width:40px;height:1px;background:var(--gold);}
.kl-villa-hero__h1{font-family:var(--serif);font-weight:300;font-size:clamp(52px,7vw,88px);line-height:1.02;color:var(--cream);margin-bottom:28px;letter-spacing:-1px;}
.kl-villa-hero__h1 em{color:var(--gold);font-style:italic;}
.kl-villa-hero__sub{font-size:15px;line-height:1.7;color:rgba(249,245,238,.65);max-width:480px;margin-bottom:48px;font-weight:300;}
.kl-villa-hero__ctas{display:flex;gap:16px;flex-wrap:wrap;}
.kl-villa-hero__scroll{position:absolute;bottom:36px;left:64px;display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(184,149,74,.5);z-index:10;}
.kl-villa-hero__scroll-line{width:36px;height:1px;background:rgba(184,149,74,.4);}

/* ── MOODS ── */
.kl-villa-moods{padding:120px 0;}
.kl-villa-moods__header{max-width:1200px;margin:0 auto;padding:0 64px 72px;display:flex;gap:80px;align-items:flex-end;}
.kl-villa-moods__header-left{flex:1;}
.kl-villa-moods__header-right{flex:0 0 340px;}
.kl-villa-moods__header-right p{font-size:15px;line-height:1.8;color:var(--ink-soft);font-weight:300;}

.kl-villa-scene{max-width:1200px;margin:0 auto 100px;padding:0 64px;}
.kl-villa-scene:last-child{margin-bottom:0;}
.kl-villa-scene__inner{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:center;}
.kl-villa-scene__inner--reverse{direction:rtl;}
.kl-villa-scene__inner--reverse>*{direction:ltr;}

.kl-villa-scene__visual{aspect-ratio:4/3;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.kl-villa-scene__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.kl-villa-scene__visual--v1 .kl-villa-scene__glow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(184,149,74,.35) 0%,rgba(44,34,20,.9) 65%),#1a140e;}
.kl-villa-scene__visual--v2 .kl-villa-scene__glow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 60%,rgba(184,149,74,.28) 0%,rgba(30,25,18,.92) 65%),#161310;}
.kl-villa-scene__visual--v3 .kl-villa-scene__glow{position:absolute;inset:0;background:radial-gradient(ellipse at 60% 40%,rgba(184,149,74,.22) 0%,rgba(20,16,12,.95) 65%),#131009;}
.kl-villa-scene__visual--v4 .kl-villa-scene__glow{position:absolute;inset:0;background:radial-gradient(ellipse at 40% 50%,rgba(184,149,74,.30) 0%,rgba(35,28,18,.90) 65%),#181310;}
.kl-villa-scene__badge{position:absolute;top:28px;left:28px;z-index:2;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);border:1px solid rgba(184,149,74,.4);padding:6px 14px;background:rgba(28,25,18,.6);}
.kl-villa-scene__art{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:100%;height:100%;}

.kl-villa-scene__text{padding:64px;background:var(--cream-dark);height:100%;display:flex;flex-direction:column;justify-content:center;}
.kl-villa-scene__num{font-family:var(--serif);font-size:80px;font-weight:300;color:rgba(184,149,74,.12);line-height:1;margin-bottom:-20px;letter-spacing:-2px;}
.kl-villa-scene__mood{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:12px;}
.kl-villa-scene__title{font-family:var(--serif);font-size:clamp(28px,3.5vw,42px);font-weight:400;color:var(--ink);line-height:1.1;margin-bottom:20px;}
.kl-villa-scene__title em{color:var(--gold);font-style:italic;}
.kl-villa-scene__desc{font-size:14px;line-height:1.8;color:var(--ink-soft);font-weight:300;margin-bottom:28px;}
.kl-villa-scene__recommend{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-deep);font-weight:500;}
.kl-villa-scene__recommend::before{content:'';width:24px;height:1px;background:var(--gold);flex-shrink:0;}
.kl-villa-scene__link{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);text-decoration:none;font-weight:500;border-bottom:1px solid rgba(184,149,74,.3);padding-bottom:4px;transition:border-color .25s;align-self:flex-start;}
.kl-villa-scene__link:hover{border-color:var(--gold);}

/* ── MOFUN ── */
.kl-villa-mofun{background:var(--ink);padding:120px 64px;position:relative;overflow:hidden;}
.kl-villa-mofun__bg{position:absolute;inset:0;background:radial-gradient(ellipse at 80% 40%,rgba(184,149,74,.12) 0%,transparent 55%),radial-gradient(ellipse at 10% 80%,rgba(184,149,74,.07) 0%,transparent 50%);}
.kl-villa-mofun__grid{position:absolute;inset:0;opacity:.04;background-image:repeating-linear-gradient(0deg,#B8954A 0,#B8954A 1px,transparent 1px,transparent 64px),repeating-linear-gradient(90deg,#B8954A 0,#B8954A 1px,transparent 1px,transparent 64px);}
.kl-villa-mofun__inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;position:relative;z-index:2;}
.kl-villa-mofun__steps{margin:40px 0;display:flex;flex-direction:column;gap:0;}
.kl-villa-mofun__step{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid rgba(184,149,74,.12);}
.kl-villa-mofun__step:last-child{border-bottom:none;}
.kl-villa-mofun__step-num{font-family:var(--serif);font-size:32px;font-weight:300;color:rgba(184,149,74,.25);line-height:1;flex-shrink:0;width:48px;}
.kl-villa-mofun__step-info h4{font-family:var(--serif);font-size:18px;font-weight:400;color:var(--cream);margin-bottom:6px;}
.kl-villa-mofun__step-info p{font-size:13px;line-height:1.7;color:rgba(249,245,238,.55);}
.kl-villa-mofun__ctas{display:flex;gap:16px;flex-wrap:wrap;margin-top:40px;}

/* Mofun visual */
.kl-villa-mofun__visual{position:relative;width:100%;aspect-ratio:4/5;}
.kl-villa-mofun__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}

/* ── SIGNATURE ── */
.kl-villa-signature{padding:120px 64px;background:var(--cream-dark);}
.kl-villa-signature__header{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:72px;align-items:end;}
.kl-villa-signature__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;}
.kl-villa-sig-card__link{display:block;text-decoration:none;}
.kl-villa-sig-card__img{width:100%;aspect-ratio:3/4;position:relative;overflow:hidden;background:var(--ink-mid);}
.kl-villa-sig-card__img--v1{background:linear-gradient(160deg,#2A2316,#1C1912);}
.kl-villa-sig-card__img--v2{background:linear-gradient(160deg,#1E1B14,#1C1912);}
.kl-villa-sig-card__img--v3{background:linear-gradient(160deg,#201D16,#1A1812);}
.kl-villa-sig-card__img--v4{background:linear-gradient(160deg,#242018,#1C1912);}
.kl-villa-sig-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(28,25,18,.9) 0%,rgba(28,25,18,.1) 50%,transparent 100%);}
.kl-villa-sig-card__inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;padding:28px 24px;}
.kl-villa-sig-card__tag{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.kl-villa-sig-card__title{font-family:var(--serif);font-size:20px;font-weight:400;color:var(--cream);line-height:1.2;margin-bottom:8px;}
.kl-villa-sig-card__desc{font-size:12px;line-height:1.7;color:rgba(249,245,238,.6);}
.kl-villa-sig-card__cta{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);transition:gap .3s;}
.kl-villa-sig-card__link:hover .kl-villa-sig-card__cta{gap:14px;}

/* ── BESPOKE ── */
.kl-villa-bespoke{padding:120px 64px;background:var(--cream);}
.kl-villa-bespoke__inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;max-width:1200px;margin:0 auto;}
.kl-villa-bespoke__flow{margin-top:36px;display:flex;flex-direction:column;gap:0;border-left:2px solid rgba(184,149,74,.2);}
.kl-villa-bespoke__flow-item{display:flex;gap:20px;padding:16px 0 16px 24px;position:relative;}
.kl-villa-bespoke__flow-item::before{content:'';position:absolute;left:-7px;top:24px;width:12px;height:12px;border-radius:50%;background:rgba(184,149,74,.3);border:1.5px solid var(--gold);}
.kl-villa-bespoke__flow-num{font-family:var(--serif);font-size:28px;font-weight:300;color:rgba(184,149,74,.2);flex-shrink:0;width:36px;line-height:1;}
.kl-villa-bespoke__flow-item h5{font-family:var(--serif);font-size:16px;font-weight:400;color:var(--ink);margin-bottom:4px;}
.kl-villa-bespoke__flow-item p{font-size:13px;color:var(--ink-soft);}
.kl-villa-bespoke__visual{width:100%;aspect-ratio:4/5;position:relative;overflow:hidden;}
.kl-villa-bespoke__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}

/* ── PROCESS ── */
.kl-villa-process{padding:100px 64px;background:var(--cream-dark);}
.kl-villa-process__inner{max-width:1200px;margin:0 auto;}
.kl-villa-process__header{margin-bottom:64px;}
.kl-villa-process__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:48px;position:relative;}
.kl-villa-process__steps::before{content:'';position:absolute;top:20px;left:0;right:0;height:1px;background:rgba(184,149,74,.15);}
.kl-villa-process__step-num{font-family:var(--serif);font-size:48px;font-weight:300;color:rgba(184,149,74,.18);line-height:1;margin-bottom:20px;}
.kl-villa-process__step h4{font-family:var(--serif);font-size:20px;font-weight:400;color:var(--ink);margin-bottom:12px;}
.kl-villa-process__step p{font-size:13px;line-height:1.8;color:var(--ink-soft);}

/* ── CTA ── */
.kl-villa-cta{padding:140px 64px;position:relative;overflow:hidden;text-align:center;}
.kl-villa-cta__bg{position:absolute;inset:0;background:linear-gradient(155deg,#2E2419 0%,#1C1912 55%,#110F0C 100%);}
.kl-villa-cta__inner{position:relative;z-index:2;max-width:680px;margin:0 auto;}
.kl-villa-cta__eyebrow{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);margin-bottom:24px;}
.kl-villa-cta__h2{font-family:var(--serif);font-size:clamp(42px,5vw,72px);font-weight:300;color:var(--cream);line-height:1.05;margin-bottom:28px;}
.kl-villa-cta__h2 em{font-style:italic;color:var(--gold);}
.kl-villa-cta__sub{font-size:15px;line-height:1.8;color:rgba(249,245,238,.6);margin-bottom:48px;font-weight:300;}
.kl-villa-cta__btns{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;}

/* ── RESPONSIVE ── */
@media(max-width:1200px){
  .kl-villa-hero__art{display:none;}
  .kl-villa-mofun__inner,.kl-villa-bespoke__inner{grid-template-columns:1fr;}
  .kl-villa-signature__grid{grid-template-columns:repeat(2,1fr);}
  .kl-villa-process__steps{grid-template-columns:repeat(2,1fr);}
  .kl-villa-process__steps::before{display:none;}
}
@media(max-width:1024px){
  .kl-villa-moods__header,.kl-villa-scene{padding:0 36px;}
  .kl-villa-moods{padding:80px 0;}
  .kl-villa-mofun,.kl-villa-bespoke,.kl-villa-process,.kl-villa-signature,.kl-villa-cta{padding:80px 36px;}
  .kl-villa-scene__inner{grid-template-columns:1fr;direction:ltr!important;}
  .kl-villa-scene__inner>*{direction:ltr!important;}
  .kl-villa-signature__header{grid-template-columns:1fr;gap:24px;}
}
@media(max-width:768px){
  .kl-villa-hero__content{padding:60px 24px 80px;}
  .kl-villa-hero__ctas{flex-direction:column;align-items:flex-start;}
  .kl-villa-moods__header{flex-direction:column;gap:32px;padding:0 24px 48px;}
  .kl-villa-scene{padding:0 24px;margin-bottom:60px;}
  .kl-villa-signature__grid{grid-template-columns:1fr 1fr;}
  .kl-villa-process__steps{grid-template-columns:1fr;}
  .kl-villa-mofun,.kl-villa-bespoke,.kl-villa-process,.kl-villa-signature,.kl-villa-cta{padding:64px 24px;}
  .kl-villa-cta__btns{flex-direction:column;align-items:center;}
}
