:root{--bg: #faf9f6;--ink: #1e211f;--muted: #63665f;--sage: #d8e5de;--sage-deep: #9dbcac;--line: #e6e3dc;--white: #ffffff;--serif: "Cormorant Garamond", Georgia, serif;--sans: "Inter", -apple-system, sans-serif;--ease: cubic-bezier(.25, .6, .3, 1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-y:scroll}#root{display:flex;flex-direction:column;min-height:100vh}#root>main{flex:1 0 auto}body{font-family:var(--sans);font-size:16px;font-weight:400;color:var(--ink);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--sans);font-size:15px;color:var(--ink);background-color:var(--white);border:1px solid var(--line);border-radius:0;padding:11px 42px 11px 14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2363665f' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;cursor:pointer;transition:border-color .4s var(--ease),background-color .4s var(--ease)}select:hover{border-color:var(--sage-deep)}select:focus{border-color:var(--sage-deep);outline:none}select option{font-family:var(--sans);color:var(--ink);background:var(--white)}img{display:block;max-width:100%}button{font-family:inherit}.container{max-width:1240px;margin:0 auto;padding:0 32px}h1,h2,h3,.serif{font-family:var(--serif);font-weight:500;line-height:1.15}.display{text-transform:uppercase;letter-spacing:.18em}.eyebrow{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}.header{position:sticky;top:0;z-index:50;background:#faf9f6eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:76px}.logo{font-family:var(--serif);font-size:21px;letter-spacing:.22em;text-transform:uppercase}.logo span{color:var(--sage-deep)}.nav{display:flex;gap:36px;align-items:center}.nav a{font-size:15px;font-weight:500;letter-spacing:.06em;position:relative;padding:4px 0;transition:color .4s var(--ease)}.nav a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}.nav a:hover:after,.nav a.active:after{transform:scaleX(1);transform-origin:left}.header-actions{display:flex;gap:12px;align-items:center}.header-user{font-size:13px;color:var(--muted)}.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:0 8px;background:none;border:none;cursor:pointer}.burger span{display:block;height:1.5px;background:var(--ink);transition:transform .45s var(--ease),opacity .35s var(--ease)}.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.burger.open span:nth-child(2){opacity:0}.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-menu{display:none;flex-direction:column;gap:4px;padding:0 24px;max-height:0;overflow:hidden;transition:max-height .55s var(--ease),padding .55s var(--ease)}.mobile-menu.open{max-height:420px;padding:12px 24px 24px;border-top:1px solid var(--line)}.mobile-menu a,.mobile-menu>button{padding:12px 0;font-size:16px;font-weight:500;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);cursor:pointer}.mobile-menu>button{width:100%;margin-top:12px;border:1px solid var(--ink);padding:12px;text-align:center;font-size:13px;letter-spacing:.18em;text-transform:uppercase}.mobile-menu-actions{display:flex;gap:10px;margin-top:16px}.mobile-menu-actions .btn{flex:1;text-align:center;border-bottom:1px solid var(--ink)}.mobile-menu-actions .btn.sage{border-bottom-color:var(--sage)}.btn{display:inline-block;border:1px solid var(--ink);background:transparent;color:var(--ink);padding:13px 34px;font-size:13px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:background .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease)}.btn:hover,.btn.solid{background:var(--ink);color:var(--bg)}.btn.solid:hover{background:#4a4a46;border-color:#4a4a46}.btn.sage{background:var(--sage);border-color:var(--sage);color:var(--ink)}.btn.sage:hover{background:var(--sage-deep);border-color:var(--sage-deep);color:var(--white)}.btn.sm{padding:9px 20px;font-size:12px}.btn:disabled{opacity:.45;cursor:default}.hero{position:relative;height:86vh;min-height:560px;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--white)}.hero img.hero-slide{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity 1.8s var(--ease),transform 7s var(--ease)}.hero img.hero-slide.on{opacity:1;transform:scale(1)}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#14181c47,#14181c73)}.hero-content{position:relative;z-index:2;padding:0 24px}.hero-content .eyebrow{color:#ffffffd9}.hero-content h1{font-size:clamp(44px,7vw,92px);margin:18px 0 22px}.hero-content p{max-width:560px;margin:0 auto 36px;font-size:17px;color:#ffffffe6}.hero .btn{border-color:#fffc;color:var(--white)}.hero .btn:hover{background:var(--white);color:var(--ink)}.hero-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:0 auto 32px;max-width:640px}.hero-fact{padding:10px 22px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:#14181c47;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fffffff2;font-size:14px;letter-spacing:.02em;white-space:nowrap}.hero-nav{position:absolute;left:40px;bottom:36px;z-index:3;display:flex;gap:10px}.hero-nav button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:#14181c40;color:var(--white);font-size:16px;cursor:pointer;transition:background .5s var(--ease),color .5s var(--ease)}.hero-nav button:hover{background:var(--white);color:var(--ink)}.hero-dots{position:absolute;right:40px;bottom:52px;z-index:3;display:flex;gap:8px}.hero-dots button{width:9px;height:9px;border-radius:50%;border:none;background:#ffffff73;cursor:pointer;transition:background .5s var(--ease),transform .5s var(--ease)}.hero-dots button.on{background:var(--white);transform:scale(1.25)}.section{padding:96px 0}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:48px}.section-head h2{font-size:clamp(30px,4vw,46px)}.link-more{font-size:13px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:3px;transition:opacity .4s var(--ease)}.link-more:hover{opacity:.55}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.visible{opacity:1;transform:none}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:32px}.card{background:var(--white);border:1px solid var(--line);transition:box-shadow .6s var(--ease),transform .6s var(--ease)}.card:hover{box-shadow:0 24px 48px -24px #2d2d2d2e;transform:translateY(-4px)}.card-img{position:relative;overflow:hidden;aspect-ratio:4 / 3;background:var(--sage)}.card-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}.card:hover .card-img img{transform:scale(1.012)}.card-tag{position:absolute;top:16px;left:16px;background:#faf9f6eb;padding:6px 14px;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase}.fav-btn{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;border:none;background:#faf9f6eb;cursor:pointer;font-size:16px;color:var(--ink);transition:background .4s var(--ease),color .4s var(--ease)}.fav-btn:hover{background:var(--white)}.fav-btn.on{color:#b4574e}.card-body{padding:24px 26px 28px}.card-body h3{font-size:23px;margin-bottom:6px}.card-meta{font-size:14px;color:var(--muted);margin-bottom:14px}.card-price{font-size:18px;font-weight:600;letter-spacing:.02em}.mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.mosaic-item{position:relative;overflow:hidden;min-height:300px;display:flex;align-items:flex-end;color:var(--white)}.mosaic-item.wide{grid-column:span 2}.mosaic-item img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}.mosaic-item:hover img{transform:scale(1.012)}.mosaic-item:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 40%,#14181ca6)}.mosaic-label{position:relative;z-index:2;padding:28px}.mosaic-label .eyebrow{color:#ffffffbf}.mosaic-label h3{font-size:26px;margin-top:8px}.sage-band{background:var(--sage)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center}.stats h3{font-size:48px}.stats p{font-size:14px;font-weight:500;color:#47584f;letter-spacing:.06em}.filters{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:44px;align-items:flex-end}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.field select,.field input,.field textarea{font-family:var(--sans);font-size:15px;font-weight:400;padding:11px 14px;border:1px solid var(--line);background:var(--white);color:var(--ink);outline:none;min-width:150px;transition:border-color .4s var(--ease)}.field select:focus,.field input:focus,.field textarea:focus{border-color:var(--sage-deep)}.field select{padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2363665f' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center}.lf{background:var(--white);border:1px solid var(--line);padding:28px;margin-bottom:44px}.lf-row{display:flex;flex-wrap:wrap;gap:28px 36px;align-items:flex-end}.lf-block{display:flex;flex-direction:column;gap:10px}.lf-block>label,.range-field>label{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.lf-submit{margin-left:auto}.lf-submit .btn{white-space:nowrap}.range-field{display:flex;flex-direction:column;gap:10px;min-width:220px}.range-inputs{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--white);padding:10px 14px;transition:border-color .4s var(--ease)}.range-inputs:focus-within{border-color:var(--sage-deep)}.range-inputs span{font-size:13px;color:var(--muted)}.range-inputs .range-sep{width:1px;height:18px;background:var(--line);margin:0 4px}.range-inputs input{width:72px;border:none;outline:none;font-family:var(--sans);font-size:15px;color:var(--ink);background:transparent;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.range-inputs input::-webkit-outer-spin-button,.range-inputs input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.range-slider{position:relative;height:18px;margin:0 2px}.range-slider .range-track{position:absolute;top:8px;left:0;right:0;height:2px;background:var(--line)}.range-slider .range-track.fill{background:var(--sage-deep);right:auto}.range-slider input[type=range]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;margin:0;background:none;pointer-events:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.range-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:auto;width:16px;height:16px;margin-top:1px;border-radius:50%;background:var(--white);border:1.5px solid var(--sage-deep);cursor:pointer;transition:background .3s var(--ease)}.range-slider input[type=range]::-webkit-slider-thumb:hover{background:var(--sage)}.range-slider input[type=range]::-moz-range-thumb{pointer-events:auto;width:14px;height:14px;border-radius:50%;background:var(--white);border:1.5px solid var(--sage-deep);cursor:pointer}.range-slider input[type=range]::-moz-range-track{background:transparent}.room-pills{display:flex;gap:8px}.room-pill{min-width:44px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:var(--white);font-family:var(--sans);font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;transition:background .4s var(--ease),border-color .4s var(--ease),color .4s var(--ease)}.room-pill:hover{border-color:var(--sage-deep)}.room-pill.on{background:var(--sage);border-color:var(--sage-deep)}@media (max-width: 900px){.lf-row{gap:20px}.lf-submit{margin-left:0;width:100%}.lf-submit .btn{width:100%}}@media (max-width: 640px){.lf{padding:20px}.lf-block,.range-field{width:100%;min-width:0}.range-inputs input{width:100%}.room-pills{flex-wrap:wrap}}.listing-hero{position:relative;height:62vh;min-height:420px;overflow:hidden}.listing-hero img{width:100%;height:100%;object-fit:cover}.listing-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:64px}.spec-list{display:grid;grid-template-columns:1fr 1fr;gap:18px 32px;margin:32px 0}.spec-list div{border-bottom:1px solid var(--line);padding-bottom:12px}.spec-list dt{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.spec-list dd{font-size:18px;margin-top:4px}.side-card{background:var(--white);border:1px solid var(--line);padding:36px;position:sticky;top:108px}.side-card .price{font-family:var(--serif);font-size:36px;margin-bottom:20px}.tour-frame{width:100%;aspect-ratio:16 / 9;border:none;margin-top:24px}.auth-wrap{max-width:460px;margin:80px auto;background:var(--white);border:1px solid var(--line);padding:52px}.auth-wrap h1{font-size:34px;margin-bottom:28px}.form{display:flex;flex-direction:column;gap:18px}.form .field input,.form .field select,.form .field textarea{min-width:0;width:100%}.error{background:#f7e8e6;color:#8c4740;padding:12px 16px;font-size:14px}.notice{background:var(--sage);padding:12px 16px;font-size:14px}.role-pills{display:flex;gap:10px}.role-pill{flex:1;border:1px solid var(--line);background:var(--white);padding:12px 8px;font-size:13px;font-weight:500;cursor:pointer;text-align:center;transition:background .4s var(--ease),border-color .4s var(--ease)}.role-pill.on{background:var(--sage);border-color:var(--sage-deep)}.account{display:grid;grid-template-columns:240px 1fr;gap:56px;align-items:start}.account-nav{display:flex;flex-direction:column;gap:4px;position:sticky;top:108px}.account-nav button{text-align:left;background:none;border:none;padding:12px 16px;font-size:15px;font-weight:500;cursor:pointer;border-left:2px solid transparent;transition:border-color .4s var(--ease),background .4s var(--ease)}.account-nav button.on{border-left-color:var(--ink);background:var(--white)}.panel{background:var(--white);border:1px solid var(--line);padding:40px}.panel+.panel{margin-top:28px}.panel h2{font-size:28px;margin-bottom:24px}.row-list{display:flex;flex-direction:column}.row-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.row-item:last-child{border-bottom:none}.badge{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:5px 12px;background:var(--sage)}.badge.draft{background:#eee9dd}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1 / -1}.footer{border-top:1px solid var(--line);padding:64px 0 48px;margin-top:40px}.footer-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}.footer small{display:block;margin-top:28px;color:var(--muted);font-size:13px;max-width:640px;line-height:1.7}.footer .links{display:flex;flex-direction:column;gap:10px;font-size:14px}.footer .links a:hover{opacity:.6}@media (max-width: 900px){.nav,.header-actions{display:none}.burger,.mobile-menu{display:flex}.mosaic{grid-template-columns:1fr}.mosaic-item.wide{grid-column:span 1}.listing-grid,.account{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.account-nav{position:static;flex-direction:row;overflow-x:auto}.side-card{position:static}}@media (max-width: 640px){.container{padding:0 20px}.header-inner{height:64px}.logo{font-size:17px}.section{padding:56px 0}.section-head{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:32px}.grid{grid-template-columns:1fr;gap:24px}.hero{height:78vh;min-height:480px}.hero-content h1{font-size:clamp(32px,10vw,44px);letter-spacing:.12em}.hero-content p{font-size:15px;margin-bottom:26px}.hero-facts{gap:8px;margin-bottom:26px}.hero-fact{padding:8px 16px;font-size:12px}.hero-nav{left:20px;bottom:24px}.hero-nav button{width:38px;height:38px}.hero-dots{right:20px;bottom:38px}.filters{gap:12px}.filters .field{width:100%}.filters .field .select,.filters .field input{width:100%;min-width:0}.listing-hero{height:40vh;min-height:260px}.listing-grid{gap:36px}.spec-list{grid-template-columns:1fr;gap:14px}.side-card{padding:24px}.side-card .price{font-size:30px}.auth-wrap{margin:40px auto;padding:32px 24px}.panel{padding:24px 20px}.row-item{flex-wrap:wrap}.stats{grid-template-columns:1fr 1fr;gap:24px}.stats h3{font-size:36px}.modal{padding:32px 22px}.footer{padding:44px 0 36px}.footer-grid{flex-direction:column;gap:28px}}.lead-form label>span{display:block;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.lead-form input,.lead-form select,.lead-form textarea{font-family:var(--sans);font-size:15px;width:100%;padding:11px 14px;border:1px solid var(--line);background:var(--white);color:var(--ink);transition:border-color .4s var(--ease)}.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{border-color:var(--sage-deep);outline:none}.lead-form select{padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2363665f' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center}.lead-form .consent{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:13px;color:var(--muted);cursor:pointer}.lead-form .consent input{width:auto;margin-top:3px}.lead-form .consent a{text-decoration:underline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#1c1e1a73;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .5s var(--ease)}.modal{position:relative;background:var(--white);border:1px solid var(--line);padding:40px;max-width:480px;width:100%;max-height:90vh;overflow-y:auto}.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer}.modal-close:hover{color:var(--ink)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.privacy p,.privacy li{font-size:15px;line-height:1.7;color:var(--ink)}.privacy h2{font-size:22px;margin:32px 0 12px}.privacy ul{padding-left:22px;margin:10px 0 18px}.privacy li{margin-bottom:6px}.select{position:relative;min-width:150px}.select-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--sans);font-size:15px;color:var(--ink);background:var(--white);border:1px solid var(--line);padding:11px 14px;cursor:pointer;text-align:left;transition:border-color .4s var(--ease)}.select-btn:hover,.select-btn.open{border-color:var(--sage-deep)}.select-btn svg{color:var(--muted);flex:none;transition:transform .35s var(--ease)}.select-btn.open svg{transform:rotate(180deg)}.select-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:var(--white);border:1px solid var(--line);box-shadow:0 20px 40px -20px #2d2d2d40;max-height:280px;overflow-y:auto;animation:selectIn .3s var(--ease)}.select-menu.closing{animation:selectOut .28s var(--ease) forwards}.select-option{display:block;width:100%;text-align:left;font-family:var(--sans);font-size:15px;color:var(--ink);background:none;border:none;padding:11px 14px;cursor:pointer;transition:background-color .3s var(--ease)}.select-option:hover{background:var(--sage)}.select-option.on{background:var(--bg);font-weight:500}@keyframes selectIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes selectOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}
