:root{--ink:#1d1a16;--sand:#f6f1e8;--gold:#b08d57;--dark:#14120f;--mut:#6b6359;--serif:"Cormorant Garamond",Georgia,serif;--sans:Inter,system-ui,sans-serif}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{font:300 17px/1.7 var(--sans);color:var(--ink);background:#fff}
img{max-width:100%;display:block}a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1}h2{font-size:clamp(2.1rem,4.5vw,3.4rem);margin-bottom:.6em}h2 small{font-size:.5em;color:var(--mut)}
.eyebrow{font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;font-weight:500}
.btn{display:inline-block;background:var(--gold);color:#fff;padding:.95em 2em;text-decoration:none;border:1px solid var(--gold);font:500 .8rem var(--sans);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:.3s;text-align:center}
.btn:hover{background:var(--ink);border-color:var(--ink)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.ghost.light,.hero .btn.ghost{color:#fff;border-color:#fff}.btn.sm{padding:.7em 1.4em}.btn.full{width:100%;margin-top:.6rem}
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1.1rem 4vw;color:#fff;transition:.4s}
.nav.solid{background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 1px 0 #0001;padding:.7rem 4vw;backdrop-filter:blur(8px)}
.brand{font:500 1.35rem var(--serif);letter-spacing:.25em;text-decoration:none}.brand span{color:var(--gold)}
.links a{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;margin:0 .9rem;opacity:.9}.links a:hover{color:var(--gold)}
.navr{display:flex;gap:.8rem;align-items:center}.lang{background:none;border:1px solid currentColor;color:inherit;padding:.45em .8em;font:500 .75rem var(--sans);letter-spacing:.1em;cursor:pointer}
.hero{position:relative;height:100svh;min-height:560px;max-height:980px;overflow:hidden;color:#fff;display:grid;place-items:center;text-align:center}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.veil{position:absolute;inset:0;background:linear-gradient(#0006,#0002 40%,#0008)}
.hero-c{position:relative;padding:0 6vw;animation:up 1.4s ease both}.hero h1{font-size:clamp(2.6rem,7vw,5.6rem);font-weight:400}.hero h1 em{color:#e8d3ab}
.lead{margin:1.2rem 0 2rem;letter-spacing:.12em;font-size:.95rem;text-transform:uppercase}.hero-b{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.scroll{position:absolute;bottom:2rem;left:50%;width:1px;height:60px;background:linear-gradient(#fff,transparent);animation:pulse 2s infinite}
@keyframes up{from{opacity:0;transform:translateY(30px)}}@keyframes pulse{50%{opacity:.3}}
.facts{display:flex;justify-content:center;flex-wrap:wrap;gap:2rem 4rem;padding:2.5rem 4vw;border-bottom:1px solid #0001;text-align:center}
.facts b{display:block;font:500 2.2rem var(--serif);color:var(--gold)}.facts span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.sec{padding:clamp(4rem,10vw,8rem) 6vw}.dark{background:var(--dark);color:#eee}.cream{background:var(--sand)}
.head{text-align:center;max-width:760px;margin:0 auto 3rem}.center{text-align:center;margin-top:2.5rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center}.split .pic{aspect-ratio:4/5;background:#ddd center/cover;min-height:420px}
.txt p{margin-bottom:1.1rem;color:inherit;opacity:.88}.hl{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.5rem;margin:1.5rem 0}
.hl li:before{content:"—";color:var(--gold);margin-right:.6rem}
.filters{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem}.filters button{background:none;border:1px solid #fff4;color:#ddd;padding:.5em 1.1em;font:400 .75rem var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.filters button.on,.filters button:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.masonry{columns:3 320px;column-gap:12px}.masonry figure{break-inside:avoid;margin:0 0 12px;overflow:hidden;cursor:zoom-in;position:relative}
.masonry img{width:100%;transition:transform 1s}.masonry figure:hover img{transform:scale(1.05)}.masonry figure.h{display:none}
.amen{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem 3rem;max-width:1200px;margin:auto}
.amen h3{font-size:1.4rem;margin-bottom:.6rem;display:flex;gap:.6rem;align-items:center}.amen h3 svg{width:26px;height:26px;stroke:var(--gold)}
.amen li{list-style:none;font-size:.92rem;color:var(--mut);padding:.2rem 0;border-bottom:1px solid #0000000d}.amen ul{padding:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;max-width:1200px;margin:auto}
.card{background:#fff;padding:2.5rem 2rem;text-align:center;border:1px solid #0000000f}.card.feat{border-color:var(--gold)}
.card h3{font-size:1.5rem}.price{font:500 2.8rem var(--serif);color:var(--gold);margin:.5rem 0}.price small{font-size:.9rem;color:var(--mut)}
.note{text-align:center;color:var(--mut);font-size:.85rem;margin-top:2rem}
.bookwrap{display:grid;grid-template-columns:1.3fr 1fr;gap:4vw;max-width:1250px;margin:auto;align-items:start}
.calnav{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.calnav button{background:none;border:1px solid #0002;width:40px;height:40px;font-size:1.3rem;cursor:pointer}
#calmsg{font-size:.85rem;color:var(--mut);text-align:center}.cal{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.mo h4{font:500 1.3rem var(--serif);text-align:center;margin-bottom:.6rem}.mo .g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;font-size:.85rem}
.mo .dw{font-size:.68rem;color:var(--mut);text-transform:uppercase}.mo .d{padding:.55em 0;cursor:pointer;border-radius:2px}.mo .d:hover{background:#b08d5733}
.mo .d.bk{color:#bbb;text-decoration:line-through;cursor:not-allowed;background:#f3f3f3}.mo .d.past{color:#ccc;cursor:default}.mo .d.sel{background:var(--gold);color:#fff}.mo .d.rng{background:#b08d5740}
.legend{font-size:.8rem;color:var(--mut);margin-top:1rem}.lg{display:inline-block;width:12px;height:12px;margin:0 .3rem 0 1rem;vertical-align:middle;border:1px solid #0002}.lg.bk{background:#eee}.lg.sel{background:var(--gold)}
.form{display:grid;gap:.8rem;background:#fff;padding:2rem;border:1px solid #0000000f;color:var(--ink)}.form h3{font-size:1.8rem}
.dark .form,.cream .form{margin-top:1.5rem}.form label span{display:block;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--mut);margin-bottom:.25rem}
.form input,.form select,.form textarea{width:100%;padding:.75em;border:1px solid #0002;font:inherit;font-size:.95rem;background:#fff}
.row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.hp{position:absolute;left:-9999px}
.est{background:var(--sand);padding:1rem;font-size:.9rem;display:none}.est.on{display:block}.est b{font:500 1.6rem var(--serif);color:var(--gold)}
.fmsg{font-size:.9rem;min-height:1em}.fmsg.ok{color:#2b7a3d}.fmsg.err{color:#b33}.price-note{font-family:var(--serif);font-size:1.4rem;color:#e8d3ab}
.map iframe{width:100%;height:440px;border:0;filter:grayscale(.3)}
.faq{max-width:820px;margin:auto}.faq details{border-bottom:1px solid #0002;padding:1.2rem 0}.faq summary{font:500 1.35rem var(--serif);cursor:pointer;list-style:none;display:flex;justify-content:space-between}
.faq summary:after{content:"+";color:var(--gold)}.faq details[open] summary:after{content:"–"}.faq p{margin-top:.7rem;color:var(--mut)}
.foot{background:var(--dark);color:#ccc;padding:4rem 6vw 2rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem;font-size:.9rem}.foot a{text-decoration:none}.copy{width:100%;color:#777;font-size:.8rem}
.sticky{position:fixed;bottom:1rem;right:1rem;z-index:40;background:var(--gold);color:#fff;padding:1em 1.8em;text-decoration:none;font:500 .8rem var(--sans);letter-spacing:.18em;text-transform:uppercase;box-shadow:0 8px 30px #0004;opacity:0;transform:translateY(20px);transition:.4s;pointer-events:none}
.sticky.on{opacity:1;transform:none;pointer-events:auto}
.lb{position:fixed;inset:0;z-index:99;background:#000e;display:grid;place-items:center}.lb[hidden]{display:none}.lb img{max-width:92vw;max-height:86vh}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:3rem;cursor:pointer;padding:1rem}.lb .x{top:0;right:1rem}.lb .lp{left:1rem}.lb .ln{right:1rem}.cap{position:absolute;bottom:1rem;color:#ccc;font-size:.85rem}
.reveal{opacity:0;transform:translateY(40px);transition:1s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}
@media(max-width:900px){.links{display:none}.split,.bookwrap{grid-template-columns:1fr}.split .pic{min-height:320px;aspect-ratio:4/3}.rev .pic{order:0}.cal{grid-template-columns:1fr}.cal .mo:nth-child(2){display:none}}
@media(max-width:560px){.row,.hl{grid-template-columns:1fr}.sticky{left:1rem;text-align:center}.nav .btn.sm{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
