:root{
  --cream:#F3F2ED;
  --green:#275F49;
  --green-98:rgba(39,95,73,.98);
  --ink:#275F49;
  --head:'Poppins',sans-serif;
  --body:'Wix Madefor Text','Helvetica Neue',Arial,sans-serif;
  --ease:cubic-bezier(.645,.045,.355,1);
  --max:1185px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.3;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--head);font-weight:600;margin:0;letter-spacing:-.02em}
h2{font-size:64px;line-height:1.1}
h3{font-size:26px;line-height:1.3}
p{margin:0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:10px;top:10px;z-index:999;background:#fff;padding:8px 12px}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--cream);height:80px}
.site-header .inner{position:relative;height:80px;display:flex;align-items:center;padding:0 25px 0 25px}
.logo{position:absolute;left:25px;top:0;width:250px;z-index:2}
.logo img{width:250px;height:auto}
.nav{display:flex;gap:20px;margin-left:452px}
.nav a{font-family:var(--head);font-size:14px;font-weight:500;letter-spacing:.02em;padding:10px;position:relative}
.nav a::after{content:"";position:absolute;left:10px;right:10px;bottom:6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover::after,.nav a[aria-current=page]::after{transform:scaleX(1)}
.btn-pill{display:inline-flex;align-items:center;justify-content:center;width:160px;height:44px;border:1px solid var(--green);border-radius:100px;font-family:var(--head);font-size:14px;color:var(--green);background:transparent;transition:background .3s,color .3s}
.btn-pill:hover{background:var(--green);color:var(--cream)}
.site-header .btn-pill{margin-left:auto}
.menu-toggle{display:none;margin-left:auto;background:none;border:0;width:44px;height:44px;cursor:pointer;color:var(--green)}
.menu-toggle span{display:block;height:2px;background:currentColor;margin:6px 8px;transition:transform .3s}

/* ---------- hero ---------- */
.hero{position:relative;height:670px;padding:59px 50px 0}
.hero h1{font-size:176px;line-height:.9;color:var(--green);max-width:700px}
.hero .tag{font-family:var(--head);font-size:20px;line-height:1.1;font-weight:500;margin-top:10px;max-width:320px}
.hero .btn-pill{position:absolute;left:54px;top:459px}
.badge{position:absolute;right:44px;top:248px;width:153px;height:155px;animation:spin 7s linear infinite}
.badge svg{width:100%;height:100%}
@keyframes spin{to{rotate:360deg}}

/* ---------- gallery (fixed reveal) ---------- */
.gallery{position:relative;height:737px;display:grid;grid-template-columns:398fr 386fr 386fr;gap:8px;padding:0 40px 0 40px}
.gallery .col{position:relative;height:660px;clip-path:inset(0);overflow:hidden}
.gallery .col:nth-child(2){margin-top:77px}
.gallery .col img{position:fixed;top:0;height:100vh;width:inherit;object-fit:cover}
.gallery .col .fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- stats ---------- */
.stats{padding:97px 40px 100px;text-align:center}
.stats h2{margin-bottom:98px}
.stat-row{display:grid;grid-template-columns:396fr 381fr 381fr;gap:12px;max-width:var(--max);margin:0 auto}
.stat{background:var(--green-98);color:var(--cream);height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.stat b{font-family:var(--head);font-size:64px;line-height:1.1;font-weight:600;letter-spacing:-.02em}
.stat span{font-family:var(--head);font-size:24px;line-height:1.5;font-weight:500;letter-spacing:-.02em}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:521px 1fr;gap:0;padding:40px 0 40px 50px;min-height:831px}
.about h2{font-size:64px;line-height:1.1;max-width:430px}
.about p{margin:32px 0 0;max-width:380px}
.about .small{width:380px;height:375px;object-fit:cover;margin-top:40px}
.about .large{width:100%;height:751px;object-fit:cover}

/* ---------- bespoke ---------- */
.bespoke{padding:57px 40px 76px}
.bespoke h2{margin-bottom:104px}
.grid4{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--green);max-width:var(--max)}
.grid4 .cell{height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 60px;border-right:1px solid var(--green);border-bottom:1px solid var(--green)}
.grid4 .cell:nth-child(2n){border-right:0}
.grid4 .cell:nth-last-child(-n+2){border-bottom:0}
.grid4 hr{width:100%;border:0;border-top:2px dashed var(--green);margin:28px 0 30px}

/* ---------- experience ---------- */
.experience{background:var(--green);color:var(--cream);padding:80px 0 60px}
.experience .head{padding:0 52px 100px}
.experience h2{font-size:64px;max-width:950px}
.experience .head p{max-width:553px;margin-top:30px}
.svc{border-top:2px dashed var(--cream);padding:40px 72px 44px}
.svc h3{max-width:535px}
.svc p{max-width:600px;margin-top:29px}
.svc:last-child{border-bottom:0}

/* ---------- testimonials ---------- */
.testi{padding:76px 40px 120px;text-align:center}
.testi h2{margin-bottom:66px}
.testi .row{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--green);max-width:var(--max);margin:0 auto}
.testi .q{padding:40px 54px;height:346px;display:flex;flex-direction:column;justify-content:flex-start;border-right:1px solid var(--green)}
.testi .q:last-child{border-right:0}
.testi .q hr{border:0;border-top:2px dashed var(--green);margin:auto 0 20px;width:100%}

/* ---------- contact ---------- */
.contact{position:relative;min-height:833px;padding:101px 62px 76px 0;display:flex;justify-content:flex-end}
.contact .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.contact form{width:639px;background:var(--cream);padding:0 0 0 0;position:relative}
.contact h2{font-size:64px;line-height:1.5;padding:0 0 0 0}
.contact .fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 33px;padding:20px 12px 0 1px}
.contact label{display:flex;flex-direction:column;gap:6px;font-size:14px}
.contact label.full{grid-column:1/-1}
.contact input,.contact textarea{font:inherit;color:var(--ink);background:transparent;border:1px solid var(--green);border-radius:8px;height:40px;padding:0 12px;outline:none;transition:box-shadow .2s}
.contact textarea{height:75px;padding:10px 12px;resize:vertical}
.contact input:focus,.contact textarea:focus{box-shadow:0 0 0 2px rgba(39,95,73,.25)}
.contact button{grid-column:1/-1;height:45px;border:0;border-radius:8px;background:var(--green);color:var(--cream);font-family:var(--head);font-size:16px;cursor:pointer;margin-top:8px;transition:opacity .3s}
.contact button:hover{opacity:.85}
.contact .msg{grid-column:1/-1;min-height:20px;font-size:14px}

/* ---------- footer ---------- */
.site-footer{background:var(--green);color:var(--cream);padding:85px 45px 40px}
.site-footer .cols{display:grid;grid-template-columns:195px 390px 1fr;gap:82px;align-items:start}
.site-footer .logos img{width:195px;margin-bottom:32px}
.site-footer iframe{width:390px;height:408px;border:0}
.site-footer .info{font-size:14px;line-height:1.6;max-width:330px}
.site-footer .info p{margin-bottom:24px}
.site-footer .info hr{border:0;border-top:1px solid rgba(243,242,237,.5);margin:26px 0}
.site-footer a:hover{text-decoration:underline}

/* ---------- whatsapp ---------- */
.wa{position:fixed;right:20px;bottom:20px;z-index:60;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25);animation:bounceIn 5s 1s both}
.wa svg{width:30px;height:30px;fill:#fff}
@keyframes bounceIn{0%{transform:scale(0)}4%{transform:scale(1.15)}6%{transform:scale(.95)}8%,100%{transform:scale(1)}}

/* ---------- destinations ---------- */
.dest-grid{display:grid;grid-template-columns:repeat(2,474px);gap:30px;justify-content:center;padding:48px 20px 120px}
.dcard{display:grid;grid-template-columns:1fr 1fr;height:360px;overflow:hidden}
.dcard .txt{background:#5E8B74;color:#fff;padding:16px 18px;font-family:var(--head);font-weight:600;display:flex;flex-direction:column;gap:40px}
.dcard .txt .n{font-size:12px;letter-spacing:.02em}
.dcard .txt .s{font-size:14px}
.dcard .txt .d{font-size:12px;font-weight:500;line-height:1.5}
.dcard .ph{overflow:hidden}
.dcard img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.dcard:hover img{transform:scale(1.08)}

/* ---------- legal ---------- */
.legal{max-width:880px;margin:0 auto;padding:80px 20px 120px}
.legal h1{font-size:64px;line-height:1.1;margin-bottom:40px}
.legal h2{font-size:26px;margin:36px 0 12px}
.legal p,.legal li{line-height:1.6}
.legal .todo{background:#fff3cd;color:#5c4400;padding:12px 16px;border-radius:6px;margin-bottom:30px;font-size:14px}

/* ---------- scroll animations (Wix "revealIn" / "fadeIn+expandIn") ---------- */
.js [data-anim]{opacity:0}
.js [data-anim].in{opacity:1}
.js [data-anim=reveal].in{animation:revealIn 1.2s var(--ease) both}
.js [data-anim=expand].in{animation:fadeIn 1.2s linear both,expandIn 1.2s var(--ease) both}
.js [data-anim=fade].in{animation:fadeIn 1.2s linear both}
@keyframes revealIn{0%{clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}100%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes expandIn{from{transform:scale(.85)}to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .js [data-anim]{opacity:1!important;animation:none!important}
  .badge,.wa{animation:none}
}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .nav{margin-left:300px}
  .hero h1{font-size:130px}
  .about{grid-template-columns:1fr 1fr;padding-right:0}
  .dest-grid{grid-template-columns:repeat(2,minmax(0,474px))}
}
@media (max-width:860px){
  h2,.about h2,.experience h2,.contact h2{font-size:40px;line-height:1.1}
  h3{font-size:22px}
  .site-header,.site-header .inner{height:70px}
  .logo,.logo img{width:150px}
  .menu-toggle{display:block}
  .site-header .btn-pill{display:none}
  .nav{position:fixed;inset:70px 0 auto 0;margin:0;flex-direction:column;align-items:center;gap:6px;background:var(--cream);padding:24px 0;transform:translateY(-120%);transition:transform .4s var(--ease);z-index:-1}
  .nav.open{transform:none}
  .hero{height:auto;padding:70px 20px 40px}
  .hero h1{font-size:68px}
  .hero .btn-pill{position:static;margin-top:28px}
  .badge{width:90px;height:90px;right:16px;top:auto;bottom:20px}
  .gallery{height:auto;grid-template-columns:1fr;gap:8px;padding:0 16px}
  .gallery .col{height:420px}
  .gallery .col:nth-child(2){margin-top:0}
  .gallery .col img{width:calc(100vw - 32px)}
  .stats{padding:60px 16px}
  .stats h2{margin-bottom:40px}
  .stat-row{grid-template-columns:1fr}
  .stat{height:200px}
  .about{grid-template-columns:1fr;padding:40px 16px;min-height:0}
  .about .small{width:100%;height:auto;aspect-ratio:1}
  .about .large{height:auto;aspect-ratio:3/4;margin-top:24px}
  .bespoke{padding:40px 16px}
  .bespoke h2{margin-bottom:40px}
  .grid4{grid-template-columns:1fr}
  .grid4 .cell{height:auto;padding:40px 20px;border-right:0!important;border-bottom:1px solid var(--green)!important}
  .grid4 .cell:last-child{border-bottom:0!important}
  .experience .head{padding:0 16px 50px}
  .svc{padding:32px 16px}
  .testi{padding:50px 16px 70px}
  .testi .row{grid-template-columns:1fr}
  .testi .q{height:auto;border-right:0;border-bottom:1px solid var(--green);padding:32px 24px}
  .testi .q:last-child{border-bottom:0}
  .testi .q hr{margin:24px 0 16px}
  .contact{padding:60px 16px;justify-content:center;min-height:0}
  .contact form{width:100%;padding:16px}
  .contact .fields{grid-template-columns:1fr;padding:12px 0 0}
  .site-footer{padding:50px 16px 30px}
  .site-footer .cols{grid-template-columns:1fr;gap:30px}
  .site-footer iframe{width:100%;height:300px}
  .dest-grid{grid-template-columns:1fr;padding:30px 16px 80px;gap:16px}
  .dcard{height:300px}
  .legal h1{font-size:40px}
}
