:root{--forest:#153b33;--forest2:#0d2a25;--cream:#f7f1e7;--sand:#e9dfd0;--white:#fff;--ink:#17342e;--muted:#64736e;--gold:#d3a457;--line:#ded4c6;--shadow:0 18px 50px #17342e16}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 Arial,sans-serif}
img{display:block;width:100%;object-fit:cover}
a{color:inherit}
.wrap{width:min(1180px,calc(100% - 40px));margin:auto}
.site-header{background:var(--forest2);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 6px 22px #071d1840}
.nav{min-height:88px;display:flex;align-items:center;gap:26px}
.logo{flex:0 0 auto}
.logo img{width:158px;height:58px;object-fit:contain}
.menu{margin-left:auto;display:flex;align-items:center;gap:22px}
.menu a{text-decoration:none;font-size:14px;white-space:nowrap;padding:8px 0;border-bottom:2px solid transparent}
.menu a:hover,.menu a.active{border-color:var(--gold)}
.button,.button-light,.button-outline{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border-radius:999px;text-decoration:none;font-weight:800;border:0;cursor:pointer;font:700 16px Arial,sans-serif}
.button{background:var(--gold);color:var(--forest2)}
.button-light{background:#fff;color:var(--forest2)}
.button-outline{border:1px solid currentColor;background:transparent}
.button:hover,.button-light:hover{transform:translateY(-1px)}
.hero,.visual-hero{background-position:center;background-size:cover;color:#fff;overflow:hidden}
.hero{min-height:690px;border-radius:0 0 34px 34px;display:flex;align-items:flex-end}
.hero-inner{width:100%;padding:90px 0}
.visual-hero{min-height:650px;display:flex;align-items:center}
.visual-hero .wrap{width:min(1180px,calc(100% - 40px))}
.hero-copy{max-width:760px}
.kicker,.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;color:var(--gold)}
h1,h2,h3{font-family:Georgia,serif}
h1{font-size:clamp(46px,7vw,84px);line-height:.98;margin:12px 0 24px}
h2{font-size:clamp(34px,5vw,55px);line-height:1.08;margin:0 0 18px}
h3{font-size:29px;line-height:1.15;margin:0 0 12px}
.hero p,.visual-hero p,.lead{font-size:20px}
.hero p,.visual-hero p{max-width:680px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.section{padding:84px 0}
.section-tight{padding:55px 0}
.intro-grid,.split{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.lead{color:var(--muted)}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.fact{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}
.fact strong{display:block;font:24px Georgia,serif}
.stay-grid,.three-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.stay-card,.card{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.stay-card>img{height:430px}
.stay-card.compact>img{height:300px}
.stay-card .body,.card .body{padding:30px}
.stay-card p,.card p{color:var(--muted)}
.text-link{font-weight:800;text-decoration:none}
.dark{background:var(--forest);color:#fff}
.dark .lead,.dark p{color:#dce5e1}
.rounded-tall{height:560px;border-radius:24px}
.family-strip{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.family-strip img{height:520px;border-radius:24px}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.photo-grid img{height:270px;border-radius:16px}
.portrait-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.portrait{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.portrait img{height:270px}
.portrait .body{padding:20px}
.quote{font:italic 28px/1.35 Georgia,serif}
.banner{background:var(--forest2);color:#fff;border-radius:28px;padding:48px}
.page-hero{padding:88px 0 60px;position:relative;z-index:1}
.page-hero h1{color:var(--ink);max-width:900px}
.page-hero .lead{max-width:820px}
.image-hero{min-height:560px;border-radius:28px;background-size:cover;background-position:center;display:flex;align-items:flex-end;color:#fff;padding:60px}
.amenities{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.amenity{padding:22px;border-top:1px solid var(--line)}
.note{background:#fff8e8;border-left:4px solid var(--gold);padding:22px;border-radius:8px}
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px}
.package-visual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:42px;align-items:start}
.package-visual{position:relative;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.package-visual.featured{border:2px solid var(--gold);transform:translateY(-12px)}
.package-visual>img{height:250px}
.package-visual .body{padding:28px}
.package-visual p,.package-visual li{color:var(--muted)}
.package-visual ul{padding-left:20px;min-height:150px}
.package-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px;margin-bottom:12px}
.package-top span{background:var(--sand);padding:5px 10px;border-radius:999px;font-weight:800;color:var(--forest)}
.popular{position:absolute;z-index:2;top:18px;right:18px;background:var(--gold);padding:7px 12px;border-radius:999px;font-weight:800;font-size:12px}
.booking-promo{background:var(--forest2);color:#fff;border-radius:28px;padding:44px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.booking-promo h2{max-width:780px;margin-bottom:8px}
.menu-toggle{display:none;width:46px;height:46px;border:1px solid #ffffff42;border-radius:50%;background:transparent;padding:11px;cursor:pointer}
.menu-toggle span{display:block;height:2px;background:#fff;margin:5px 0;border-radius:4px;transition:.2s}
.footer{background:var(--forest2);color:#fff;padding:68px 0 26px}
.footer-main{display:grid;grid-template-columns:1.05fr 1fr;gap:90px;align-items:start}
.footer-brand img{width:180px;height:70px;object-fit:contain;object-position:left center}
.footer-brand p{max-width:430px;color:#becdc8;font-size:17px}
.footer-whatsapp{display:inline-flex;background:var(--gold);color:var(--forest2);padding:11px 18px;border-radius:999px;font-weight:800;margin-top:6px}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:45px;padding-top:12px}
.footer-links strong{display:block;color:var(--gold);text-transform:uppercase;letter-spacing:.14em;font-size:12px;margin-bottom:15px}
.footer-links a{display:block;padding:5px 0;color:#fff}
.footer a{text-decoration:none}
.footer-bottom{border-top:1px solid #ffffff24;margin-top:48px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;color:#94aaa3;font-size:12px}
.small{font-size:13px;color:#aebdb8}
.mobile-cta{display:none}
@media(max-width:920px){
  .nav{min-height:74px;gap:14px;padding:10px 0}
  .nav>.button{margin-left:auto}
  .menu-toggle{display:block;order:4}
  .menu{display:none;position:absolute;top:100%;left:0;right:0;background:var(--forest2);padding:12px 20px 24px;margin:0;box-shadow:0 18px 26px #071d1855}
  .menu a{display:block;padding:12px 0;border-bottom:1px solid #ffffff20;font-size:16px}
  .site-header.menu-open .menu{display:block}
  .site-header.menu-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .site-header.menu-open .menu-toggle span:nth-child(2){opacity:0}
  .site-header.menu-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .hero{min-height:620px}
  .stay-grid,.three-grid,.portrait-grid{grid-template-columns:1fr 1fr}
  .package-visual-grid{grid-template-columns:1fr}.package-visual.featured{transform:none}
  .intro-grid,.split,.family-strip,.contact-grid{grid-template-columns:1fr}
  .photo-grid{grid-template-columns:1fr 1fr}.family-strip img{height:400px}
  .footer-main{grid-template-columns:1fr;gap:35px}
}
@media(max-width:640px){
  .wrap{width:min(100% - 28px,1180px)}
  .site-header .nav>.button{display:none}
  .menu-toggle{margin-left:auto}
  .logo img{width:125px;height:48px}
  .hero{min-height:580px}.visual-hero{min-height:620px}
  .hero-inner{padding:64px 0}.hero p,.visual-hero p,.lead{font-size:18px}
  .section{padding:60px 0}.section-tight{padding:42px 0}
  .facts,.stay-grid,.three-grid,.portrait-grid,.amenities,.photo-grid{grid-template-columns:1fr}
  .hero{background-position:62% center}.visual-hero{background-position:58% center}
  .packages-hero{background-position:left center}
  .package-visual img[alt*="Putra" i],.result-image img[alt*="Putra" i]{object-position:left center}
  .stay-card>img{height:auto;aspect-ratio:4/3;object-fit:cover}.photo-grid img{height:auto;aspect-ratio:4/3;object-fit:cover}
  .photo-grid img[alt*="room" i],.stay-card img[alt*="room" i]{object-position:center 58%}
  .photo-grid img[alt*="pool" i],.stay-card img[alt*="pool" i]{object-position:center 62%}
  .photo-grid img[alt*="Putra" i],img[alt="Putra"]{object-position:center 25%}
  .split>img,.intro-grid>img{height:auto!important;aspect-ratio:4/5;object-fit:cover}
  .split>img[alt*="Putra" i],.intro-grid>img[alt*="Putra" i]{object-position:center 22%}
  .split>img[alt*="offering" i],.intro-grid>img[alt*="temple" i]{object-position:center 45%}
  .rounded-tall{height:auto;aspect-ratio:4/5;object-position:center 22%}
  .image-hero{min-height:460px;padding:30px;background-position:center}
  .banner{padding:32px 24px}.booking-promo{padding:32px 24px;display:block}.booking-promo .button-light{margin-top:18px}
  .footer{padding:52px 0 100px}.footer-brand img{width:155px}.footer-links{grid-template-columns:1fr;gap:28px}.footer-bottom{display:grid;margin-top:36px}
  .mobile-cta{display:block;position:fixed;left:14px;right:14px;bottom:14px;z-index:60;background:var(--gold);color:var(--forest2);text-align:center;padding:15px;border-radius:999px;text-decoration:none;font-weight:800;box-shadow:0 10px 35px #0005}
  body{padding-bottom:76px}
}
