@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600&display=swap";:root{--bg: #0f0f0f;--bg-2: #161616;--bg-3: #1c1c1c;--gold: #c8a96e;--gold-light: #e0c99a;--gold-dim: rgba(200,169,110,.35);--cream: #f5f0e8;--text: #e8e2d8;--text-muted: #9e9589;--border: rgba(200,169,110,.25);--font-serif: "Playfair Display", Georgia, serif;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--ease: cubic-bezier(.22,.61,.36,1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);line-height:1.65;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font-family:inherit}input,textarea,select{font-family:inherit}h1,h2,h3,h4{font-family:var(--font-serif);line-height:1.15}::selection{background:var(--gold);color:var(--bg)}.container{width:min(1160px,calc(100% - 48px));margin:auto}.section{padding:120px 0}.eyebrow{display:inline-block;font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}.gold-rule{width:48px;height:1px;background:var(--gold);margin:18px 0 26px}.section-title{font-size:clamp(2.4rem,4.5vw,3.8rem);font-weight:500;color:var(--cream);letter-spacing:-.01em}.section-lead{color:var(--text-muted);font-size:1rem;max-width:520px;margin-top:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 28px;font-size:.72rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;transition:all .3s var(--ease);border-radius:0;white-space:nowrap}.btn-gold{background:var(--gold);color:var(--bg)}.btn-gold:hover{background:var(--gold-light)}.btn-outline{border:1px solid var(--gold);color:var(--gold)}.btn-outline:hover{background:var(--gold);color:var(--bg)}.btn-pill{background:var(--gold);color:var(--bg);border-radius:100px;padding:11px 22px;font-size:.7rem}.btn-pill:hover{background:var(--gold-light);transform:translateY(-1px)}.reveal{opacity:0;transform:translateY(30px);transition:opacity .75s var(--ease),transform .75s var(--ease)}.reveal.visible{opacity:1;transform:none}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.site-nav{position:fixed;z-index:100;width:100%;top:0;padding:28px 0;transition:background .4s,padding .4s,backdrop-filter .4s}.site-nav.scrolled{background:#0a0a0aeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:16px 0;border-bottom:1px solid var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between}.nav-logo{font-family:var(--font-serif);font-size:1.3rem;letter-spacing:.18em;color:var(--cream);text-transform:uppercase;line-height:1}.nav-logo span{display:block;font-family:var(--font-sans);font-size:.6rem;letter-spacing:.28em;color:var(--gold);margin-top:3px;font-weight:500}.nav-right{display:flex;align-items:center;gap:18px}.nav-links-desktop{display:flex;gap:28px;align-items:center}.nav-links-desktop a{font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#f5f0e8bf;transition:color .25s}.nav-links-desktop a:hover{color:var(--gold)}.hamburger{width:36px;height:36px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:4px;color:var(--cream)}.hamburger span{display:block;width:100%;height:1.5px;background:currentColor;transition:transform .35s var(--ease),opacity .35s;transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:#080808f7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}.nav-overlay.open{opacity:1;pointer-events:all}.nav-overlay a{font-family:var(--font-serif);font-size:clamp(2.2rem,5vw,3.6rem);color:var(--cream);letter-spacing:.05em;transition:color .25s;padding:6px 0;text-align:center}.nav-overlay a:hover{color:var(--gold)}.nav-overlay-rule{width:1px;height:40px;background:var(--border);margin:8px 0}.nav-overlay-contact{margin-top:24px;font-size:.78rem;letter-spacing:.12em;color:var(--text-muted);text-transform:uppercase}.hero{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--cream);overflow:hidden}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/images/villa-hero.jpg) center/cover no-repeat;transform:scale(1.05);animation:heroZoom 18s ease-in-out infinite alternate}@keyframes heroZoom{0%{transform:scale(1.05)}to{transform:scale(1.12)}}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0000008c,#0000004d 40%,#000000a6 75%,#000000d9)}.hero-content{position:relative;z-index:2;max-width:900px;padding:0 24px;animation:heroRise .9s var(--ease) both}@keyframes heroRise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}.hero-label{font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:22px}.hero h1{font-size:clamp(3rem,7.5vw,6.8rem);font-weight:500;line-height:.95;letter-spacing:.02em;text-transform:uppercase;color:#fff;text-shadow:0 2px 40px rgba(0,0,0,.4);margin-bottom:28px}.hero-sub{font-size:1rem;color:#f5f0e8bf;max-width:560px;margin:0 auto 44px;font-weight:300;letter-spacing:.02em}.hero-rating{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;color:var(--gold-light);border:1px solid var(--gold-dim);padding:8px 16px;letter-spacing:.1em;margin-bottom:34px}.hero-booking-bar{position:relative;z-index:2;width:min(900px,calc(100% - 48px));margin-top:-2px;animation:heroRise .9s .15s var(--ease) both}.booking-bar{display:flex;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:stretch;box-shadow:0 20px 60px #00000073}.bar-field{flex:1;display:flex;flex-direction:column;padding:14px 20px;border-right:1px solid #e0d9d0;position:relative;cursor:pointer}.bar-field:last-of-type{border-right:none}.bar-field label{font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#666;margin-bottom:4px}.bar-field input[type=date]{border:none;outline:none;background:transparent;font-size:.88rem;color:#1a1a1a;font-weight:500;width:100%;cursor:pointer}.bar-field input[type=date]::-webkit-calendar-picker-indicator{opacity:.4;cursor:pointer}.bar-counter{display:flex;align-items:center;gap:12px}.bar-counter span{font-size:.88rem;font-weight:500;color:#1a1a1a;min-width:18px;text-align:center}.bar-counter button{width:26px;height:26px;border:1px solid #c8a96e;color:#c8a96e;border-radius:50%;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s;cursor:pointer;background:transparent}.bar-counter button:hover{background:#c8a96e;color:#fff}.bar-search{background:#1a1a1a;color:#fff;padding:0 32px;font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;border:none;cursor:pointer;transition:background .25s;white-space:nowrap}.bar-search:hover{background:var(--gold);color:var(--bg)}.scroll-hint{position:absolute;bottom:32px;left:50%;transform:translate(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--gold-light);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;animation:bob 2.5s ease-in-out infinite}.scroll-hint svg{width:18px;opacity:.7}@keyframes bob{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(8px)}}.about{background:var(--bg-2)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.about-image-wrap{position:relative}.about-image-wrap:before{content:"";position:absolute;top:20px;right:-20px;bottom:-20px;left:20px;border:1px solid var(--border);z-index:0}.about-image{position:relative;z-index:1;width:100%;height:580px;object-fit:cover}.about-copy{max-width:520px}.about-copy p{color:var(--text-muted);font-size:.97rem;line-height:1.8;margin-bottom:18px}.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:40px}.about-stat{background:var(--bg-2);padding:22px 16px;text-align:center}.about-stat strong{display:block;font-family:var(--font-serif);font-size:2rem;color:var(--gold);font-weight:400}.about-stat span{display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-top:5px}.gallery{background:var(--bg)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto;gap:3px;margin-top:50px}.gallery-item{position:relative;overflow:hidden;cursor:zoom-in}.gallery-item:nth-child(1){grid-column:1 / 3;grid-row:1 / 3}.gallery-item img{width:100%;height:100%;object-fit:cover;min-height:260px;transition:transform .8s var(--ease);display:block}.gallery-item:hover img{transform:scale(1.06)}.gallery-caption{position:absolute;inset:auto 0 0;padding:30px 20px 18px;background:linear-gradient(transparent,#000000bf);color:var(--cream);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;opacity:0;transition:opacity .35s}.gallery-item:hover .gallery-caption{opacity:1}.services{background:var(--bg-2)}.services-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;margin-bottom:60px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.service-card{background:var(--bg-3);padding:32px 28px;border:1px solid transparent;transition:border-color .3s,background .3s;position:relative}.service-card:before{content:"";position:absolute;left:0;top:0;width:2px;height:0;background:var(--gold);transition:height .35s var(--ease)}.service-card:hover{background:#202020;border-color:var(--border)}.service-card:hover:before{height:100%}.service-icon{font-size:1.6rem;margin-bottom:16px;display:block}.service-name{font-family:var(--font-serif);font-size:1.25rem;color:var(--cream);margin-bottom:10px;font-weight:500}.service-desc{font-size:.84rem;color:var(--text-muted);line-height:1.65;margin-bottom:18px}.service-price-block{margin-top:auto;padding-top:16px;border-top:1px solid var(--border)}.service-price-idr{font-family:var(--font-serif);font-size:1.1rem;color:var(--gold);font-weight:500}.service-price-usd{font-size:.72rem;color:var(--text-muted);margin-top:2px;letter-spacing:.06em}.service-note{font-size:.7rem;color:var(--gold);margin-top:5px;font-style:italic}.services-cta{margin-top:50px;text-align:center}.testimonials{background:var(--bg)}.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:50px}.testi-card{background:var(--bg-2);padding:36px 30px;position:relative}.testi-stars{display:flex;gap:3px;margin-bottom:20px;color:var(--gold);font-size:.9rem}.testi-text{font-family:var(--font-serif);font-size:1.08rem;color:var(--cream);line-height:1.65;font-style:italic;margin-bottom:24px}.testi-author{display:flex;flex-direction:column;gap:3px}.testi-author strong{font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.testi-author span{font-size:.72rem;color:var(--text-muted)}.testi-quote-mark{position:absolute;top:24px;right:28px;font-family:var(--font-serif);font-size:4rem;color:var(--gold-dim);line-height:1;pointer-events:none}.airbnb-badge{display:inline-flex;align-items:center;gap:8px;margin-top:50px;border:1px solid var(--border);padding:14px 24px;font-size:.75rem;color:var(--text-muted);letter-spacing:.08em}.airbnb-badge strong{color:var(--gold)}.booking{background:var(--bg-2)}.booking-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start}.booking-info h2{margin-bottom:12px}.booking-info p{color:var(--text-muted);font-size:.95rem;margin-bottom:32px}.booking-features{display:flex;flex-direction:column;gap:14px;margin-top:32px}.booking-feature{display:flex;align-items:center;gap:14px;font-size:.85rem;color:var(--text-muted)}.booking-feature-icon{width:36px;height:36px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}.booking-form-wrap{background:var(--bg-3);padding:40px;border:1px solid var(--border)}.booking-form-wrap h3{font-size:1.6rem;color:var(--cream);margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--border)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row.single{grid-template-columns:1fr}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field label{font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}.field input,.field textarea,.field select{background:var(--bg-2);border:1px solid var(--border);color:var(--text);padding:13px 16px;font-size:.9rem;outline:none;transition:border-color .25s;width:100%}.field input[type=date]{color-scheme:dark}.field input:focus,.field textarea:focus{border-color:var(--gold)}.field textarea{min-height:90px;resize:vertical}.whatsapp-note{font-size:.78rem;color:var(--text-muted);margin-bottom:22px;display:flex;align-items:center;gap:8px}.form-success{background:#c8a96e1a;border:1px solid var(--gold-dim);color:var(--gold-light);padding:18px 22px;font-size:.9rem;margin-top:16px}.form-error{color:#e07070;font-size:.85rem;margin-top:10px}.contact{background:var(--bg-3)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.contact-detail{display:flex;align-items:flex-start;gap:18px;margin-bottom:28px}.contact-icon{width:44px;height:44px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;margin-top:2px}.contact-detail-text strong{display:block;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:5px}.contact-detail-text span{color:var(--text-muted);font-size:.95rem;line-height:1.55}.contact-detail-text a{color:var(--cream);transition:color .2s}.contact-detail-text a:hover{color:var(--gold)}.contact-map{position:relative;height:420px;overflow:hidden}.contact-map iframe{width:100%;height:100%;border:none;filter:grayscale(1) invert(1) contrast(.8) sepia(.2);opacity:.8}.map-overlay-label{position:absolute;bottom:20px;left:20px;background:var(--bg);border:1px solid var(--border);padding:12px 18px;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.footer{background:#080808;padding:64px 0 28px;border-top:1px solid var(--border)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:60px;padding-bottom:50px;border-bottom:1px solid var(--border)}.footer-brand .nav-logo{margin-bottom:16px;display:block}.footer-brand p{font-size:.83rem;color:var(--text-muted);line-height:1.7;max-width:300px;margin-bottom:22px}.footer-col h4{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;font-family:var(--font-sans);font-weight:600}.footer-col a{display:block;font-size:.83rem;color:var(--text-muted);margin-bottom:10px;transition:color .22s}.footer-col a:hover{color:var(--cream)}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;font-size:.72rem;color:var(--text-muted);gap:16px;flex-wrap:wrap}.footer-bottom a{color:var(--gold)}.admin-shell{min-height:100dvh;background:#f5f6f2;color:#23362a;padding:40px}.admin-card{background:#fff;max-width:440px;margin:10vh auto;padding:42px;box-shadow:0 18px 50px #1a3a0a16}.admin-card h1{font-family:var(--font-serif);font-size:2.4rem;margin-bottom:8px;color:#1a3a0a}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap}.admin-tab{padding:10px 16px;border:1px solid #ccd6c9;color:#45614d;font-size:.82rem;cursor:pointer}.admin-tab.active{background:#1a3a0a;color:#fff}.admin-table{width:100%;border-collapse:collapse;background:#fff}.admin-table th,.admin-table td{padding:14px;border-bottom:1px solid #e2e8df;text-align:left;font-size:.83rem}.admin-table th{color:#66796a;text-transform:uppercase;font-size:.67rem;letter-spacing:.08em}.admin-main{max-width:1250px;margin:auto}.admin-form{max-width:640px;background:#fff;padding:28px}.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.admin-section-header h2{font-family:var(--font-serif);color:#1a3a0a}.admin-actions{display:flex;gap:8px}.admin-actions button{padding:6px 12px;border:1px solid #ccd6c9;color:#45614d;font-size:.8rem;cursor:pointer;background:#fff}.admin-actions button:hover{background:#1a3a0a;color:#fff;border-color:#1a3a0a}.form-actions{display:flex;gap:8px;margin-top:8px}.status{padding:5px 9px;border-radius:20px;font-size:.7rem;text-transform:capitalize}.status-new{background:#fff0d7;color:#a46113}.status-confirmed{background:#e2f3e1;color:#32703b}.status-cancelled{background:#ececea;color:#70746f}.error-text,.form-error-admin{color:#a94835;font-size:.85rem;margin:10px 0}.success-text{color:#2d6e2d;font-size:.85rem;margin:10px 0}.loading{padding:100px;text-align:center;color:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-form .field label{color:#66796a;font-size:.67rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600}.admin-form .field input,.admin-form .field textarea,.admin-form .field select{background:#fafaf8;border:1px solid #d8e4d4;color:#23362a;padding:11px 14px;font-size:.9rem;outline:none}.admin-form .field input:focus,.admin-form .field textarea:focus{border-color:#4a7c2a}.admin-form .btn-primary{background:#1a3a0a;color:#fff;padding:12px 24px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:none}.admin-form .btn-primary:hover{background:#2d5016}.admin-eyebrow{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:#4a7c2a;display:block;margin-bottom:8px}.admin-login-sub{color:#66796a;font-size:.9rem;margin-bottom:28px}@media (max-width: 1024px){.services-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-item:nth-child(1){grid-column:1 / 3;grid-row:auto}}@media (max-width: 860px){.about-grid,.booking-grid,.contact-grid{grid-template-columns:1fr;gap:50px}.about-image{height:360px}.about-stats{grid-template-columns:repeat(3,1fr)}.testimonials-grid{grid-template-columns:1fr}.booking-form-wrap{padding:28px 22px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1 / -1}.nav-links-desktop{display:none}.admin-shell{padding:20px}.admin-header{flex-direction:column;align-items:flex-start;gap:20px}.admin-table{display:block;overflow-x:auto;white-space:nowrap}}@media (max-width: 640px){.container{width:calc(100% - 32px)}.section{padding:80px 0}.hero h1{font-size:clamp(2.4rem,10vw,3.8rem)}.booking-bar{flex-direction:column}.bar-field{border-right:none;border-bottom:1px solid #e0d9d0}.bar-search{padding:18px;width:100%}.services-grid,.gallery-grid{grid-template-columns:1fr}.gallery-item:nth-child(1){grid-column:auto}.about-stats{grid-template-columns:repeat(3,1fr)}.form-row,.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;text-align:center}}
