:root{--g:#2f4a3a;--g2:#3d5e4a;--stone:#e7dfd2;--bg:#faf7f2;--ink:#2b2a27;--mut:#6d6a63;--acc:#b7743b;--err:#b3261e;--ok:#2e7d4f;--r:10px;--sh:0 8px 30px rgba(30,30,20,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:500;line-height:1.2;margin:0 0 .5em}
h2{font-size:clamp(1.7rem,3vw,2.3rem)}a{color:var(--g)}img{max-width:100%;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}.sec{padding:72px 0}.sec.alt{background:#fff}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;border-radius:999px;padding:14px 28px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:.15s}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.btn.ghost{background:transparent;border:1.5px solid #fff}.btn.block{display:block;width:100%;text-align:center}
/* nav + hero */
.nav{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 24px;color:#fff;transition:.25s}
.nav.solid{background:rgba(47,74,58,.97);box-shadow:0 2px 14px rgba(0,0,0,.2)}.nav a{color:#fff;text-decoration:none;font-weight:500}.nav .logo{font-family:Georgia,serif;font-size:1.25rem}
.nav .links{display:flex;gap:22px;align-items:center}@media(max-width:700px){.nav .links a:not(.btn){display:none}}
.hero{position:relative;height:100vh;height:100svh;min-height:520px;color:#fff;display:flex;align-items:flex-end;overflow:hidden;background:#2b2a27}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35) 0,rgba(0,0,0,0) 30%,rgba(0,0,0,.65) 100%)}
.hero .in{position:relative;z-index:2;padding-bottom:clamp(40px,9vh,90px)}.hero h1{font-size:clamp(2.4rem,7vw,5rem);margin:0 0 .2em;text-shadow:0 2px 20px rgba(0,0,0,.4)}
.hero p{font-size:clamp(1.05rem,2vw,1.35rem);max-width:640px;margin:0 0 1.4em}.hero .cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.from{font-size:.95rem;opacity:.95}
/* facts */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin:0 0 34px}
.fact{background:#fff;border:1px solid var(--stone);border-radius:var(--r);padding:18px;text-align:center}.fact b{display:block;font:500 1.9rem Georgia,serif;color:var(--g)}.fact span{color:var(--mut);font-size:.9rem}
.cols{display:grid;grid-template-columns:1.2fr 1fr;gap:48px}@media(max-width:860px){.cols{grid-template-columns:1fr;gap:28px}}
.prose p{margin:0 0 1em}.beds{list-style:none;padding:0;margin:0}.beds li{padding:12px 0;border-bottom:1px solid var(--stone);display:flex;justify-content:space-between;gap:12px}
.am{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px 24px}.am li{padding-left:28px;position:relative}
.am li:before{content:"";position:absolute;left:4px;top:.5em;width:9px;height:15px;border:solid var(--g);border-width:0 2.5px 2.5px 0;transform:rotate(40deg) scale(.7)}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.gal a{display:block;overflow:hidden;border-radius:8px;aspect-ratio:4/3;background:var(--stone)}.gal a:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.gal img{width:100%;height:100%;object-fit:cover;transition:.4s}.gal a:hover img{transform:scale(1.04)}@media(max-width:700px){.gal{grid-template-columns:1fr 1fr}.gal a:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:4/3}}
dialog.lb{border:0;padding:0;background:transparent;max-width:96vw;max-height:96vh}dialog.lb::backdrop{background:rgba(0,0,0,.88)}dialog.lb img{max-height:92vh;border-radius:6px}
/* booking card */
.book{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:start}@media(max-width:900px){.book{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--stone);border-radius:14px;padding:22px;box-shadow:var(--sh)}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.cal-head button{background:none;border:1px solid var(--stone);border-radius:50%;width:36px;height:36px;font-size:1.1rem;cursor:pointer}
.months{display:grid;grid-template-columns:1fr 1fr;gap:22px}@media(max-width:620px){.months{grid-template-columns:1fr}.months .m:nth-child(2){display:none}}
.m h4{text-align:center;margin:0 0 8px;text-transform:capitalize;font-weight:600}.dow,.days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.dow span{font-size:.75rem;color:var(--mut);padding:4px 0}
.d{aspect-ratio:1;border:0;background:none;font:inherit;font-size:.95rem;cursor:pointer;border-radius:8px;margin:1px;color:var(--ink)}.d:hover:not([disabled]){background:var(--stone)}
.d[disabled]{color:#bbb;text-decoration:line-through;cursor:not-allowed}.d.dim{color:#aaa}.d.rng{background:#dfe9e1;border-radius:0}.d.sel{background:var(--g);color:#fff}.d.empty{visibility:hidden}
.legend{font-size:.82rem;color:var(--mut);margin-top:10px}.msg{margin:10px 0;font-size:.95rem}.msg.err{color:var(--err)}.msg.ok{color:var(--ok)}
.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1 1 140px}label{display:block;font-size:.85rem;font-weight:600;margin:12px 0 4px}
input,select,textarea{width:100%;font:inherit;padding:11px 12px;border:1px solid #cfc7b8;border-radius:8px;background:#fff}input:focus,select:focus{outline:2px solid var(--g2);border-color:transparent}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;font-weight:400;margin:10px 0}.chk input{width:auto;margin-top:4px}
.sum table{width:100%;border-collapse:collapse;font-size:.95rem}.sum td{padding:6px 0;vertical-align:top}.sum td:last-child{text-align:right;white-space:nowrap}.sum .tot td{border-top:1.5px solid var(--ink);font-weight:700;font-size:1.05rem;padding-top:10px}
.sum .sch td{color:var(--mut);font-size:.88rem}.sum .now td{color:var(--g);font-weight:600}.note{font-size:.84rem;color:var(--mut);margin-top:10px}
.hold{background:#fff6e5;border:1px solid #f0d9a8;border-radius:8px;padding:8px 12px;font-size:.9rem;margin-bottom:12px}
#pay-el{margin:14px 0}.hidden{display:none!important}.steps{display:flex;gap:6px;margin-bottom:14px;font-size:.8rem;color:var(--mut)}.steps b{color:var(--g)}
.rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.rules .card{box-shadow:none}.rules ul{padding-left:18px;margin:6px 0}
footer{background:#23312a;color:#cfd8d2;padding:44px 0;font-size:.9rem}footer a{color:#fff}footer .wrap{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between}
.page{max-width:760px;margin:0 auto;padding:110px 20px 60px}.page .card{margin:18px 0}.okbox{background:#e8f4ec;border:1px solid #b9dcc5}.warn{background:#fdecea;border:1px solid #f0b8b3}
.topbar{background:var(--g);color:#fff;padding:14px 24px}.topbar a{color:#fff;text-decoration:none;font-family:Georgia,serif;font-size:1.2rem}
/* vídeo */
.vsec{background:#efe8dc}
.vid{position:relative;aspect-ratio:16/9;max-width:960px;margin:0 auto;border-radius:14px;overflow:hidden;background:#2b2a27;box-shadow:var(--sh)}
.vid img,.vid iframe,.vid video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.vid .play{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;border:0;background:rgba(183,116,59,.95);color:#fff;display:grid;place-items:center;cursor:pointer;transition:.15s}
.vid .play:hover{transform:scale(1.07)}.vid .play svg{margin-left:4px}#video .note{text-align:center}
/* visor de fotos: flechas */
dialog.lb{overflow:visible}dialog.lb img{max-width:92vw;object-fit:contain;margin:auto}
.lb-n,.lb-x{position:fixed;z-index:2;border:0;background:rgba(0,0,0,.45);color:#fff;cursor:pointer;line-height:1;display:grid;place-items:center;transition:.15s}
.lb-n:hover,.lb-x:hover{background:rgba(0,0,0,.75)}
.lb-n{top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;font-size:2rem;padding:0 0 4px}
.lb-prev{left:14px}.lb-next{right:14px}
.lb-x{top:14px;right:14px;width:44px;height:44px;border-radius:50%;font-size:1.8rem;padding:0 0 3px}
.lb-c{position:fixed;bottom:16px;left:0;right:0;text-align:center;color:#fff;font-size:.9rem;text-shadow:0 1px 4px #000}
@media(max-width:700px){.lb-n{width:42px;height:42px;font-size:1.6rem}.lb-prev{left:6px}.lb-next{right:6px}}
/* calendario: libre vs ocupado */
.d.av{background:#eef5f0}
.d.occ[disabled]{background:#f6dedb;color:#a2473e;text-decoration:line-through;opacity:1}
.legend .lg{display:inline-flex;align-items:center;gap:6px;margin-right:14px}
.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.08)}
.legend i.av{background:#eef5f0}.legend i.occ{background:#f6dedb}.legend i.sel{background:var(--g)}
