:root{--ink:#143b37;--deep:#103f3a;--sun:#dba74d;--sand:#f7f2e9;--paper:#fffdfa;--coral:#c7684f;--muted:#687876;--line:#dce3df;--shadow:0 18px 50px rgba(16,63,58,.17)}*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;background:linear-gradient(135deg,#f8f4ec,#eef5f1);color:var(--ink);font:400 1rem/1.55 Jost,system-ui,sans-serif;min-height:100dvh}button,a,input{font:inherit}button{cursor:pointer}.topbar{height:76px;padding:12px max(18px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:30;background:rgba(248,244,236,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(20,59,55,.08)}.brand img{display:block;width:158px;max-height:50px;object-fit:contain}.topbar nav{display:flex;gap:10px}.icon-btn,.close-btn{border:1px solid var(--line);background:var(--paper);color:var(--deep);border-radius:50%;width:46px;height:46px;display:grid;place-items:center;font-size:1.3rem;position:relative}.icon-btn b{position:absolute;right:-4px;top:-4px;background:var(--sun);font-size:.7rem;min-width:20px;height:20px;border-radius:12px;display:grid;place-items:center}.discover{max-width:1180px;margin:auto;padding:22px 18px 40px}.flow-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:8px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.73rem;font-weight:600;color:var(--coral);margin:0 0 4px}.flow-heading h1,.sheet h2{font:700 clamp(1.75rem,5vw,3.2rem)/1 Playfair Display,serif;margin:0}.counter{font-weight:600}.gesture-hint{font-size:.8rem;color:var(--muted);margin:0 0 14px}.card-stage{touch-action:pan-y;max-width:940px;margin:auto;position:relative}.villa-card{background:var(--paper);border-radius:28px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(20,59,55,.1);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);min-height:570px;transform-origin:center;transition:transform .25s,opacity .25s}.villa-card.depart-left{transform:translateX(-110%) rotate(-5deg);opacity:0}.villa-card.depart-right{transform:translateX(110%) rotate(5deg);opacity:0}.gallery{position:relative;background:#dfe7e2;min-height:420px;overflow:hidden;touch-action:none}.gallery img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;transition:opacity .28s,transform .35s}.gallery img.loading{opacity:.25}.gallery .photo-status{position:absolute;bottom:16px;left:16px;color:white;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);border-radius:999px;padding:7px 12px;font-size:.8rem;z-index:2}.gallery .photo-dots{position:absolute;right:16px;bottom:18px;display:flex;gap:6px;z-index:2}.photo-dots i{width:7px;height:7px;background:rgba(255,255,255,.55);border-radius:50%}.photo-dots i.active{background:#fff;width:19px;border-radius:5px}.card-copy{padding:32px;display:flex;flex-direction:column}.location{margin:0;color:var(--coral);font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em}.card-copy h2{font:700 clamp(2rem,4vw,3.15rem)/1 Playfair Display,serif;margin:9px 0 15px}.description{color:#405653;margin:0 0 20px}.facts{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-wrap:wrap;gap:8px}.facts li{background:#edf4f0;border-radius:99px;padding:6px 10px;font-size:.82rem}.price{margin-top:auto;padding-top:15px;border-top:1px solid var(--line)}.price strong{display:block}.price span{font-size:.8rem;color:var(--muted)}.inline-detail{margin-top:16px;border:0;border-radius:12px;background:var(--deep);color:white;padding:13px;width:100%;font-weight:600}.desktop-controls{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:20px}.round-action{border:1px solid var(--line);background:white;color:var(--deep);width:50px;height:50px;border-radius:50%;font-size:1.4rem}.round-action.like{color:var(--coral)}.round-action.reject{font-size:1.8rem}.detail-action,.primary,.secondary{border:0;border-radius:999px;padding:14px 24px;font-weight:600}.detail-action,.primary{background:var(--deep);color:white}.secondary{background:#e8eeeb;color:var(--deep)}.sheet-backdrop{position:fixed;inset:0;background:rgba(4,22,20,.46);z-index:39}.sheet{position:fixed;right:0;top:0;bottom:0;width:min(440px,100%);background:var(--paper);z-index:40;padding:24px;transform:translateX(102%);transition:transform .25s;overflow:auto;box-shadow:var(--shadow)}.sheet.open{transform:translateX(0)}.sheet-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:34px}.sheet h2{font-size:2.4rem}.range-label{display:flex;justify-content:space-between;font-weight:600}.range-label strong{color:var(--coral)}input[type=range]{width:100%;accent-color:var(--coral);margin:18px 0 2px}.range-scale{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted)}.filter-note{font-size:.85rem;color:var(--muted);padding:14px;background:var(--sand);border-radius:12px}fieldset{border:0;padding:0;margin:28px 0}legend{font-weight:600;margin-bottom:10px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips button{border:1px solid var(--line);background:white;border-radius:999px;padding:9px 14px}.chips button.active{background:var(--deep);color:white;border-color:var(--deep)}.sheet-actions{display:flex;gap:10px;position:sticky;bottom:0;background:var(--paper);padding:16px 0}.sheet-actions button{flex:1}.favorite-row{display:grid;grid-template-columns:82px 1fr auto;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}.favorite-row img{width:82px;height:76px;object-fit:cover;border-radius:10px}.favorite-row h3{font-family:Playfair Display,serif;margin:0}.favorite-row button{border:0;background:none;color:var(--coral);font-size:1.4rem}.empty-state{text-align:center;background:white;border-radius:28px;padding:70px 24px;box-shadow:var(--shadow)}.empty-state>span{font-size:3rem;color:var(--sun)}.detail-dialog{width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;padding:0;background:var(--paper);color:var(--ink)}.detail-dialog::backdrop{background:rgba(0,0,0,.4)}.detail-close,.floating-filter{position:fixed;z-index:55;top:18px;border:0;background:rgba(255,255,255,.9);color:var(--deep);box-shadow:0 4px 20px rgba(0,0,0,.12)}.detail-close{right:18px;width:46px;height:46px;border-radius:50%;font-size:1.5rem}.floating-filter{left:18px;border-radius:99px;padding:12px 17px}.detail-hero{height:66vh;min-height:420px;position:relative;touch-action:none;background:#dfe7e2;overflow:hidden}.detail-hero img{width:100%;height:100%;object-fit:cover}.detail-hero .photo-status{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.55);color:white;border-radius:99px;padding:8px 14px}.content-switch{position:absolute;top:50%;left:0;right:0;display:flex;justify-content:space-between;padding:0 22px;pointer-events:none}.content-switch button{pointer-events:auto;border:0;width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--deep);font-size:1.3rem}.detail-body{max-width:900px;margin:auto;padding:36px 24px 80px}.detail-body h1{font:700 clamp(2.5rem,6vw,4.8rem)/1 Playfair Display,serif;margin:8px 0 18px}.detail-body h2{font:700 1.7rem Playfair Display,serif;margin-top:38px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.amenities{columns:2;padding-left:20px}.reserve-box{background:var(--deep);color:white;border-radius:22px;padding:24px;margin-top:35px;display:flex;justify-content:space-between;align-items:center;gap:20px}.reserve-box a{background:var(--sun);color:#173b37;text-decoration:none;font-weight:700;border-radius:99px;padding:13px 20px;white-space:nowrap}.end-note{text-align:center;color:var(--muted);font-size:.85rem;margin-top:10px}@media(max-width:760px){.topbar{height:66px}.brand img{width:135px}.discover{padding:16px 12px 28px}.flow-heading h1{font-size:1.75rem}.gesture-hint{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.villa-card{display:block;min-height:0;border-radius:22px}.gallery{height:54vh;min-height:340px}.card-copy{padding:22px}.card-copy h2{font-size:2.2rem}.desktop-controls{position:sticky;bottom:10px;z-index:5;background:rgba(248,244,236,.82);backdrop-filter:blur(10px);border-radius:99px;padding:8px;gap:7px}.round-action{width:44px;height:44px}.detail-action{padding:12px 16px}.detail-grid{grid-template-columns:1fr}.amenities{columns:1}.reserve-box{align-items:flex-start;flex-direction:column}.detail-hero{height:58vh}.floating-filter span{display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
