:root{--green:#254b32;--green-2:#3e7044;--gold:#a67c2d;--dark:#243326;--cream:#faf6eb;--ink:#283329;--muted:#627164;--shadow:0 12px 36px #24332618}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;font:16px/1.65 system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:#fffdf8}img,svg{max-width:100%}a{color:inherit;text-decoration:none}button,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.2}h1,h2,.footer-brand{font-family:Georgia,'Times New Roman',serif}.wrap{width:min(1180px,calc(100% - 42px));margin-inline:auto}.skip-link{position:absolute;top:-100px;left:15px;z-index:100;background:#fff;padding:10px}.skip-link:focus{top:10px}.site-header{height:76px;position:relative;z-index:15;background:#fffdf8ed;box-shadow:0 1px 10px #15271a14}.nav{display:flex;align-items:center;justify-content:space-between;gap:30px;height:100%}.brand{display:flex;align-items:center;gap:12px;line-height:1.05}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:50% 50% 10% 10%;font-size:38px;background:#e4ecd8;color:#2e633b}.brand strong{font:700 24px Georgia,serif;color:#6c4726}.brand em{color:#317044;font-style:normal}.brand small{display:block;font-size:10px;letter-spacing:.7px;margin-top:6px;color:#67776b}.nav-links{display:flex;align-items:center;gap:26px;font-size:13px;font-weight:700}.nav-links a:hover,.text-link:hover{color:var(--gold)}.nav-links .nav-cta{background:var(--green);color:#fff;padding:11px 17px;border-radius:8px}.nav-links .nav-cta:hover{background:#346844;color:#fff}.menu-toggle{display:none}.hero{position:relative;min-height:665px;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-scene,.hero-shade{position:absolute;inset:0;z-index:-2}.hero-scene{background:url('../img/kampung-hero.svg') center 52%/cover no-repeat}.hero-shade{z-index:-1;background:linear-gradient(180deg,#ffffff14 0%,#fff7db40 36%,#17351d70 100%)}.hero-content{text-align:center;padding:58px 0 43px}.eyebrow{font-size:12px;letter-spacing:2.2px;color:var(--gold);font-weight:800;margin-bottom:14px}.hero .eyebrow{color:#76561d;text-shadow:0 1px #fff9}.hero-title-frame{position:relative;width:min(780px,100%);margin:0 auto 36px;padding:23px 70px 19px;background:#fff9e9c9;border-radius:16px;backdrop-filter:blur(2px)}.hero-title-frame h1{font-size:clamp(36px,4.8vw,64px);letter-spacing:-1.8px;color:#4e3921;margin-bottom:13px}.hero-title-frame h1 span{display:block;color:#285539}.hero-title-frame p{font-size:16px;color:#4b513e;margin:0;line-height:1.55}.kerawang-corner{position:absolute;pointer-events:none;width:108px;height:auto;object-fit:contain}.kerawang-corner.tl{left:-22px;top:-20px}.kerawang-corner.tr{right:-22px;top:-20px}.bird-flight{position:absolute;left:-190px;top:14%;width:115px;z-index:1;opacity:.7;pointer-events:none;animation:fly-across 22s linear infinite}.bird-flight svg{width:100%;fill:none;stroke:#263b35;stroke-width:3;stroke-linecap:round}.bird-flight-two{top:22%;animation-delay:-9s;animation-duration:28s;transform:scale(.65);opacity:.55}.bird-flight-three{top:10%;animation-delay:-16s;animation-duration:19s;transform:scale(.42);opacity:.5}@keyframes fly-across{from{left:-190px}to{left:calc(100% + 190px)}}.search-panel{background:#fffdf9;box-shadow:0 18px 40px #18251a40;border:1px solid #c9a65f;border-radius:15px;padding:13px 14px 8px;text-align:left;max-width:1050px;margin:auto}.search-form{display:grid;grid-template-columns:1.1fr 1.25fr 1fr .8fr auto;align-items:end;gap:9px}.search-form label{display:flex;flex-direction:column;gap:4px;padding:2px 10px 5px;border-right:1px solid #e6e2d6}.search-form label span{font-size:12px;font-weight:800;color:#344c35}.search-form select{width:100%;border:0;background:transparent;color:#697467;padding:5px 3px 5px 0;outline-offset:3px;font-size:13px;min-width:0}.primary-button{background:#a77b2b;color:#fff;border:0;border-radius:9px;font-weight:800;padding:15px 20px;white-space:nowrap;min-height:49px}.primary-button:hover{background:#825a1d}.primary-button span{font-size:20px;line-height:0}.search-status{font-size:12px;margin:5px 10px 0;color:#536b4b;min-height:12px}.hero-pills{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;color:#fffef5;font-size:13px;font-weight:700;text-shadow:0 2px 6px #163016;margin-top:28px}.section{padding:88px 0}.section-cream{background:var(--cream)}.section-heading{text-align:center;max-width:740px;margin:0 auto 38px}.section-heading h2,.about-copy h2,.offers-grid h2,.owner-grid h2{font-size:clamp(30px,3.2vw,45px);color:#3a3929;margin-bottom:15px}.section-heading>p:last-child{color:var(--muted)}.categories{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.category{min-height:174px;background:#fff;border:1px solid #eee7d5;box-shadow:0 6px 20px #33331109;border-radius:15px;padding:25px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:transform .2s,box-shadow .2s}.category:hover,.category:focus-visible{transform:translateY(-5px);box-shadow:var(--shadow)}.category-icon{font-size:43px;color:#8b702e;line-height:1.1;margin-bottom:14px}.category strong{font-size:15px}.category small{font-size:12px;color:var(--muted);margin-top:5px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.about-art{height:430px;background:url('../img/kampung-hero.svg') 23% 50%/auto 100% no-repeat;border-radius:22px;position:relative;box-shadow:var(--shadow)}.about-art:before,.about-art:after{content:'';position:absolute;width:88px;height:88px;background-size:contain;background-repeat:no-repeat;pointer-events:none}.about-art:before{left:-16px;top:-16px;background-image:url('../img/corner-tl.png')}.about-art:after{right:-15px;bottom:-18px;background-image:url('../img/corner-br.png')}.about-art-label{position:absolute;bottom:24px;left:25px;background:#fff8e5e8;border-radius:8px;padding:9px 16px;color:#654b20;font:italic 18px Georgia,serif}.about-art-label span{color:var(--gold)}.about-copy h2 em,.owner-grid h2 em{font-style:normal;color:#3f7449}.about-copy p,.owner-grid p,.offers-grid p{color:#536456}.text-link{font-weight:800;color:#936e2b}.benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.benefit{background:#fff;border:1px solid #ece4d1;border-radius:15px;padding:26px 23px;box-shadow:0 4px 16px #33331108}.benefit>span{display:grid;place-items:center;background:#eff2e6;color:#8b702e;font-size:35px;width:63px;height:63px;border-radius:50%;margin-bottom:20px}.benefit h3{font-size:18px;color:#344d37}.benefit p{font-size:14px;color:var(--muted);margin:0}.demo-notice{background:#f3f1e9;border:1px solid #d6ccaf;border-radius:8px;padding:11px 15px;color:#5e594a;font-size:13px;margin-bottom:22px}.listing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:19px}.listing-card{background:#fff;border-radius:14px;overflow:hidden;border:1px solid #e8e5dc;box-shadow:0 7px 25px #26342615}.listing-card[hidden]{display:none}.listing-photo{height:165px;position:relative;background-image:url('../img/kampung-hero.svg');background-size:auto 125%}.photo-one{background-position:3% 53%}.photo-two{background-position:65% 55%;filter:none}.photo-three{background-position:15% 85%}.photo-four{background-position:95% 50%}.tag{position:absolute;bottom:12px;right:12px;background:#285b37;color:white;font-size:11px;font-weight:800;padding:5px 11px;border-radius:20px}.listing-body{padding:18px}.listing-location{font-size:12px;color:#a07829;font-weight:700}.listing-body h3{font-size:17px;margin:7px 0}.listing-body p{font-size:13px;color:var(--muted);margin-bottom:13px}.amenities{display:flex;flex-wrap:wrap;gap:5px}.amenities span{font-size:10px;background:#eff3e9;color:#3f6545;padding:4px 7px;border-radius:4px}.results-status{font-size:14px;color:#6a694f;text-align:center;margin:18px 0 0}.offers-section{background:#f2ebda}.offers-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.offers-grid .subtle{font-size:13px;color:#7b7c6e}.offer-frame{aspect-ratio:347/179;background:#101425 url('../img/offer-frame.webp') center/100% 100% no-repeat;display:grid;place-items:center;color:#f7df96;box-shadow:0 12px 30px #14192b38;border-radius:7px}.offer-inner{text-align:center;display:flex;flex-direction:column;gap:7px;padding:15px 22%;line-height:1.3}.offer-inner span{font-size:10px;letter-spacing:2.2px;color:#d6a84c}.offer-inner strong{font:700 clamp(20px,2.5vw,34px) Georgia,serif}.offer-inner small{font-size:11px;color:#d4c49a}.owner-section{background:#f9fbf5}.owner-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:80px;align-items:center}.owner-card{background:#fff;border:1px solid #d7dfcc;padding:35px;border-radius:16px;box-shadow:var(--shadow);text-align:center}.owner-symbol{font-size:58px;color:var(--gold)}.owner-card h3{font:700 25px Georgia,serif}.owner-card p{font-size:14px}.coming-pill{display:inline-block;border-radius:7px;background:#f1eddf;padding:10px 16px;font-size:13px;font-weight:700;color:#76612e}.narrow{max-width:850px}.faq-section details{border-bottom:1px solid #e2ddce;padding:19px 0}.faq-section summary{cursor:pointer;font-weight:750;color:#2b5134;list-style-position:outside}.faq-section details p{color:var(--muted);margin:14px 0 0}.footer{background:#243c2d;color:#e8f0df;padding:0 0 20px}.footer-kerawang{display:flex;justify-content:space-between;align-items:center;overflow:hidden;height:95px;border-top:2px solid #a67c2d}.footer-kerawang img{height:105px;width:auto;object-fit:contain}.footer-kerawang span{color:#c3a253}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:45px;padding:40px 0 35px}.footer-brand{font-size:29px;color:#f1d99a}.footer-grid p,.footer-grid a{font-size:13px;color:#c9d6c9;line-height:1.8}.footer-grid a{display:block;margin-bottom:7px}.footer-grid a:hover{color:#fff}.footer-grid h3{font-size:15px;color:#f0dba8}.copyright{border-top:1px solid #47634d;padding-top:17px;display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#b2c6b3}
@media(max-width:1050px){.nav-links{gap:14px;font-size:12px}.search-form{grid-template-columns:repeat(2,minmax(0,1fr))}.search-form label{border-right:0;border-bottom:1px solid #e6e2d6}.search-form .primary-button{grid-column:span 2}.hero{min-height:730px}.categories{grid-template-columns:repeat(3,1fr)}.listing-grid,.benefits-grid{grid-template-columns:repeat(2,1fr)}.about-grid{gap:30px}.offers-grid{gap:30px}}
@media(max-width:700px){.wrap{width:min(100% - 30px,1180px)}.site-header{height:66px}.brand strong{font-size:21px}.brand-mark{width:39px;height:39px;font-size:31px}.menu-toggle{display:flex;flex-direction:column;gap:5px;background:transparent;border:0;padding:10px}.menu-toggle span{width:25px;height:2px;background:#31583b}.nav-links{display:none;position:absolute;top:66px;left:0;right:0;background:#fffdf8;padding:17px 20px 24px;box-shadow:0 12px 22px #0002;flex-direction:column;align-items:stretch;gap:0}.nav-links.open{display:flex}.nav-links a{padding:10px 8px}.nav-links .nav-cta{text-align:center;margin-top:10px}.hero{min-height:750px;align-items:flex-start}.hero-content{padding:48px 0 34px}.hero-title-frame{padding:27px 22px 24px;margin-bottom:20px}.hero-title-frame h1{font-size:38px;letter-spacing:-1px}.hero-title-frame p{font-size:14px}.kerawang-corner{width:65px}.kerawang-corner.tl{left:-12px;top:-10px}.kerawang-corner.tr{right:-12px;top:-10px}.hero .eyebrow{font-size:10px;letter-spacing:1.3px}.search-form{grid-template-columns:1fr 1fr;gap:5px}.search-form label{padding:5px}.search-form label:first-child{grid-column:span 2}.search-form label span{font-size:11px}.search-form select{font-size:12px}.search-form .primary-button{padding:12px}.hero-pills{gap:6px 12px;font-size:10px;margin-top:16px}.section{padding:62px 0}.categories{grid-template-columns:repeat(2,1fr);gap:10px}.category{min-height:145px}.category-icon{font-size:34px}.category strong{font-size:13px}.category small{font-size:11px}.about-grid,.offers-grid,.owner-grid{grid-template-columns:1fr;gap:30px}.about-art{height:290px}.benefits-grid,.listing-grid{grid-template-columns:1fr 1fr;gap:12px}.benefit{padding:20px 15px}.benefit h3{font-size:16px}.benefit p{font-size:12px}.listing-photo{height:125px}.listing-body{padding:13px}.listing-body h3{font-size:15px}.amenities span{font-size:9px}.footer-grid{grid-template-columns:1fr 1fr;gap:20px}.copyright{flex-direction:column}.bird-flight{width:65px;opacity:.5}.bird-flight-two{top:11%}.bird-flight-three{top:18%}}
@media(max-width:390px){.hero-title-frame h1{font-size:31px}.search-form{grid-template-columns:1fr}.search-form label,.search-form label:first-child,.search-form .primary-button{grid-column:auto}.hero{min-height:810px}.benefits-grid,.listing-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.offer-inner strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.bird-flight{left:40%;top:12%}}

/* BUILD 002: Photorealistic Malaysian kampung design. All rules scoped to existing components. */
.hero-scene{background-image:url('../img/kampung-photoreal.webp');background-position:center center;background-size:cover}
.hero-shade{background:linear-gradient(180deg,rgba(255,248,229,.08) 0%,rgba(255,248,229,.06) 48%,rgba(11,42,21,.67) 100%)}
.hero{min-height:650px}
.hero-content{padding-top:44px;padding-bottom:35px}
.hero-title-frame{background:rgba(255,249,232,.96);box-shadow:0 12px 36px rgba(38,43,21,.15);border:1px solid rgba(190,150,67,.35);max-width:810px;padding:25px 72px 22px}
.hero-title-frame h1{font-size:clamp(36px,4.1vw,60px)}
.hero .eyebrow{color:#573910;background:rgba(255,249,231,.85);display:table;margin:0 auto 10px;padding:4px 12px;border-radius:40px}
.photo-one{background-image:url('../img/stay-1.webp');background-size:cover;background-position:center}
.photo-two{background-image:url('../img/stay-2.webp');background-size:cover;background-position:center}
.photo-three{background-image:url('../img/stay-3.webp');background-size:cover;background-position:center}
.photo-four{background-image:url('../img/stay-4.webp');background-size:cover;background-position:center}
.about-art{background-image:url('../img/kampung-photoreal.webp');background-size:cover;background-position:10% center}
.bird-flight{z-index:0}.hero-content{position:relative;z-index:2}.hero-scene{z-index:-2}
@media(max-width:700px){.hero{min-height:770px}.hero-scene{background-position:43% center}.hero-title-frame{padding:30px 23px 25px;background:rgba(255,249,232,.96)}.hero-title-frame h1{font-size:clamp(30px,8vw,42px)}.hero-content{padding-top:36px}}
@media(max-width:390px){.hero{min-height:840px}}

/* Build 003: naturalistic bird silhouettes, separate from photographic hero */
.bird-flight{display:none!important}
.bird-flock{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.bird-track{position:absolute;left:0;top:11%;width:43px;height:28px;opacity:.75;animation:bird-cross 28s linear infinite;will-change:transform}
.bird-track svg{display:block;width:100%;height:100%;overflow:visible;fill:#2c3934;stroke:none}
.bird-track .wing{transform-box:fill-box;transform-origin:100% 80%;animation:bird-wing 2.6s ease-in-out infinite alternate}
.bird-track .wing-right{transform-origin:0% 80%;animation-name:bird-wing-right}
.bird-track-two{top:17%;width:31px;opacity:.57;animation-duration:34s;animation-delay:-12s}
.bird-track-three{top:8%;width:23px;opacity:.48;animation-duration:31s;animation-delay:-22s}
.bird-track-two .wing{animation-duration:3.1s}
.bird-track-three .wing{animation-duration:2.3s}
@keyframes bird-cross{from{transform:translate3d(-80px,0,0)}to{transform:translate3d(calc(100vw + 80px),-28px,0)}}
@keyframes bird-wing{from{transform:rotate(-10deg) scaleY(.78)}to{transform:rotate(12deg) scaleY(1.15)}}
@keyframes bird-wing-right{from{transform:rotate(10deg) scaleY(.78)}to{transform:rotate(-12deg) scaleY(1.15)}}
@media(max-width:700px){.bird-track{width:28px;top:8%}.bird-track-two{width:23px;top:13%}.bird-track-three{width:18px;top:6%}}
@media(prefers-reduced-motion:reduce){.bird-flock{display:none!important}}

/* Build 004: independently flapping, articulated bird silhouettes. The SVG path
   geometry cycles through upstroke, horizontal, and downstroke while each bird
   travels across the sky. All pointer interactions pass through the layer. */
.bird-flock{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;contain:paint}
.bird-flock .flying-bird{position:absolute;left:0;top:9%;width:46px;height:32px;display:block;opacity:.78;filter:drop-shadow(0 1px 1px #ffffff33);animation:flock-travel 23s linear infinite;will-change:transform}
.bird-flock .flying-bird svg{display:block;width:100%;height:100%;fill:#29342f;stroke:none}
.bird-flock .flying-bird-1{top:9%;width:46px;animation-duration:23s;animation-delay:-7s}
.bird-flock .flying-bird-2{top:12%;width:35px;animation-duration:23s;animation-delay:-6.3s;opacity:.7}
.bird-flock .flying-bird-3{top:7%;width:39px;animation-duration:23s;animation-delay:-5.7s}
.bird-flock .flying-bird-4{top:15%;width:30px;animation-duration:23s;animation-delay:-5.1s;opacity:.65}
.bird-flock .flying-bird-5{top:10%;width:33px;animation-duration:23s;animation-delay:-4.6s}
.bird-flock .flying-bird-6{top:6%;width:25px;animation-duration:23s;animation-delay:-4s;opacity:.6}
.bird-flock .flying-bird-7{top:13%;width:27px;animation-duration:23s;animation-delay:-3.5s;opacity:.68}
.bird-flock .flying-bird-8{top:8%;width:22px;animation-duration:23s;animation-delay:-3s;opacity:.58}
@keyframes flock-travel{from{transform:translate3d(-110px,0,0)}to{transform:translate3d(calc(100vw + 130px),-30px,0)}}
@media(max-width:700px){.bird-flock .flying-bird{width:25px;opacity:.65}.bird-flock .flying-bird:nth-child(n+6){display:none}}
@media(prefers-reduced-motion:reduce){.bird-flock{display:none!important}}

/* Build 005: robust bounded GIF wing cycle, CSS travel; overrides legacy SVG rules. */
.bird-flock-v5{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;contain:layout paint;}
.bird-flock-v5 .bird-v5{position:absolute;left:0;top:9%;width:48px;height:32px;display:block;animation:bird-v5-cross 26s linear infinite;will-change:transform;opacity:.78;}
.bird-flock-v5 .bird-v5 img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain;}
.bird-flock-v5 .bird-v5-1{top:9%;width:43px;animation-delay:-4s}
.bird-flock-v5 .bird-v5-2{top:12%;width:35px;animation-delay:-3.3s;opacity:.64}
.bird-flock-v5 .bird-v5-3{top:7%;width:39px;animation-delay:-2.7s}
.bird-flock-v5 .bird-v5-4{top:15%;width:29px;animation-delay:-2.1s;opacity:.62}
.bird-flock-v5 .bird-v5-5{top:10%;width:33px;animation-delay:-1.5s}
.bird-flock-v5 .bird-v5-6{top:6%;width:25px;animation-delay:-.8s;opacity:.58}
.bird-flock-v5 .bird-v5-7{top:13%;width:28px;animation-delay:0s;opacity:.66}
@keyframes bird-v5-cross{from{transform:translate3d(-100px,0,0)}to{transform:translate3d(calc(100vw + 120px),-25px,0)}}
@media(max-width:700px){.bird-flock-v5 .bird-v5{width:26px}.bird-flock-v5 .bird-v5:nth-child(n+5){display:none}}
@media(prefers-reduced-motion:reduce){.bird-flock-v5{display:none!important}}

/* Build 006: user-supplied transparent animated flock GIF, right to left. */
.bird-flock-v5{display:none!important}
.bird-flock-v6{display:block!important;position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;contain:paint}
.bird-flock-v6 img{position:absolute;top:5%;left:0;display:block;width:clamp(190px,26vw,340px);height:auto;max-width:none;object-fit:contain;opacity:.88;animation:mesra-flock-right-to-left 23s linear infinite;will-change:transform}
@keyframes mesra-flock-right-to-left{0%{transform:translate3d(calc(100vw + 380px),0,0)}100%{transform:translate3d(-420px,-12px,0)}}
@media(max-width:700px){.bird-flock-v6 img{top:4%;width:190px;animation-duration:20s}}
@media(prefers-reduced-motion:reduce){.bird-flock-v6{display:none!important}}

/* Build 010: move the original GIF from right to left without flipping it.
   Keep left free of !important so keyframes can control its position. */
.bird-flock-v6{position:absolute!important;inset:0!important;overflow:hidden!important;pointer-events:none!important;z-index:1!important}
.bird-flock-v6 img{position:absolute!important;top:6%!important;left:100%;width:clamp(190px,26vw,340px)!important;height:auto!important;max-width:none!important;animation:mesra-birds-cross-010 16s linear infinite!important;animation-delay:-7s!important;transform:none!important;will-change:left!important}
@keyframes mesra-birds-cross-010{from{left:100%}to{left:-360px}}
@media(max-width:700px){.bird-flock-v6 img{top:4%!important;width:190px!important;animation-duration:13s!important}}
@media(prefers-reduced-motion:reduce){.bird-flock-v6{display:none!important}}
