:root{--bg:#faf7f2;--paper:#fff;--ink:#1c1b19;--ink2:#4a4741;--mut:#837d72;--line:#e8e2d6;--gold:#a8823f;--gold2:#8a6a30;--soft:#f3eee4;--ok:#2f6b3f;--err:#a3321f;
 --fs:'Cormorant Garamond',Georgia,serif;--fb:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--r:6px;--sh:0 1px 2px rgba(40,30,10,.04),0 8px 30px rgba(40,30,10,.06)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:15.5px/1.65 var(--fb);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit}h1,h2,h3{font-family:var(--fs);font-weight:600;line-height:1.12;letter-spacing:-.01em;margin:0 0 .4em}
h1{font-size:clamp(38px,5vw,62px)}h2{font-size:clamp(28px,3vw,36px);margin-top:1.6em}h3{font-size:24px}h4{font:600 12px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 12px}
em{font-style:italic;color:var(--gold)}.mut{color:var(--mut)}.sm{font-size:13px}
.wrap{max-width:1200px;margin:0 auto;padding:0 28px}.narrow{max-width:820px}.pad{padding-top:72px;padding-bottom:72px}.pad2{padding:26px}.center{text-align:center}.left{text-align:left}
.kick{font:600 12px var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}.lead{font-size:18px;color:var(--ink2);max-width:640px}
.ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}.ic.sm{width:16px;height:16px;vertical-align:-3px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--ink);background:var(--ink);color:#fff;font:500 14px var(--fb);letter-spacing:.02em;padding:13px 24px;border-radius:var(--r);cursor:pointer;text-decoration:none;transition:.2s}
.btn:hover{background:var(--gold2);border-color:var(--gold2)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ghost:hover{border-color:var(--ink)}.btn.sm{padding:8px 14px;font-size:13px}.btn.wide{width:100%}.btn[disabled]{opacity:.45;cursor:not-allowed}
/* cabecera */
.hd{position:sticky;top:0;z-index:30;background:rgba(250,247,242,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hd.over{position:absolute;left:0;right:0;background:transparent;border-color:transparent;color:#fff}.hdin{display:flex;align-items:center;height:76px;gap:24px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}.logo svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.4}
.logo span{font:600 17px var(--fb);letter-spacing:.32em;line-height:1}.logo small{display:block;font:500 10px var(--fb);letter-spacing:.3em;text-transform:uppercase;opacity:.65;margin-top:5px}
.nav{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:14px}.nav a{text-decoration:none;opacity:.88}.nav a:hover{opacity:1;color:var(--gold)}
.langs{display:flex;gap:2px;border:1px solid currentColor;border-radius:var(--r);padding:2px;opacity:.85}.langs a{padding:2px 8px;font-size:12px;border-radius:4px}.langs a.on{background:var(--ink);color:#fff!important}
.hd.over .langs a.on{color:#1c1b19!important;background:#fff}
.burger{display:none;margin-left:auto;background:none;border:0;width:40px;height:40px;cursor:pointer;color:inherit}.burger span{display:block;height:1.5px;background:currentColor;margin:7px 8px}
/* hero */
.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:#222}
.heroimg{position:absolute;inset:0}.heroimg img{width:100%;height:100%;object-fit:cover}.heroimg.b{animation:fade 18s ease-in-out infinite;opacity:0}@keyframes fade{0%,40%{opacity:0}50%,90%{opacity:1}100%{opacity:0}}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,12,8,.45),rgba(15,12,8,.15) 35%,rgba(15,12,8,.72))}
.herotx{position:relative;z-index:2;padding-top:140px;padding-bottom:56px;width:100%}.herotx .kick{color:#e9d3a5}.herotx em{color:#ecd29b}.herotx .lead{color:rgba(255,255,255,.88)}
.box{margin-top:30px;background:var(--paper);color:var(--ink);border-radius:var(--r);padding:10px;box-shadow:0 20px 60px rgba(0,0,0,.25);max-width:920px}
.perk{margin-top:20px;font-size:13.5px;color:rgba(255,255,255,.9)}
/* buscador */
.search{display:grid;grid-template-columns:1fr 1fr .8fr auto;gap:8px;align-items:stretch}.search label{min-width:0;display:flex;flex-direction:column;padding:8px 14px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.search label span{font:600 10.5px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}.search input,.search select{border:0;font:500 15px var(--fb);padding:4px 0;background:transparent;color:var(--ink);outline:none;width:100%}
.results{display:grid;gap:10px}.results:empty{display:none}.box .results{margin-top:10px}
.res{display:flex;gap:16px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:#fff}.res img{width:110px;height:78px;object-fit:cover;border-radius:4px}
.res .rb{flex:1}.res h3{font-size:21px;margin:0}.res .pr{text-align:right}.res .pr b{font:600 26px var(--fs);display:block}.res .pr s{color:var(--mut);font-size:13px}.res .no{color:var(--err);font-size:14px}.res .ok{color:var(--ok);font-size:12.5px}
.loading{padding:14px;color:var(--mut);font-size:14px}
/* tarjetas */
.sh{margin-bottom:34px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.card{display:block;background:var(--paper);border-radius:var(--r);overflow:hidden;text-decoration:none;box-shadow:var(--sh);border:1px solid var(--line)}
.ci{position:relative;aspect-ratio:4/3;overflow:hidden}.ci img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.rt{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.92);font-size:12.5px;padding:5px 10px;border-radius:4px}.cb{padding:24px 26px}.facts{font-size:14px;color:var(--ink2)}.more{font-size:14px;color:var(--gold2);font-weight:500}
.card.row{display:flex;align-items:center;gap:24px}.card.row img{width:260px;height:170px;object-fit:cover}.card.row picture{flex:none}.card.row div{padding:20px}
.band{background:var(--soft)}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.g3 .ic{width:30px;height:30px;color:var(--gold)}.g3 h3{margin-top:14px;font-size:24px}.g3 p{color:var(--ink2);margin:0}
/* ficha */
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:240px 240px;gap:8px;margin-top:28px;position:relative}.gal a{overflow:hidden;border-radius:4px}.gal img{width:100%;height:100%;object-fit:cover;transition:.6s}
.gal .g0{grid-row:1/3}.allph{position:absolute;right:16px;bottom:16px;background:#fff!important}
.pdp>*,.bookg>*{min-width:0}.pdp{display:grid;grid-template-columns:1fr 380px;gap:64px;padding-top:44px;padding-bottom:40px}.pmain h1{margin-bottom:.15em}.facts.big{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.facts.big span{border:1px solid var(--line);padding:6px 12px;border-radius:var(--r);font-size:14px}
.rates{display:flex;gap:28px;margin:22px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.rates div{display:flex;gap:12px;align-items:center}.rates b{font:600 36px var(--fs)}.rates span{font-size:12.5px;color:var(--mut);line-height:1.35}
.hl{display:flex;flex-wrap:wrap;gap:8px 22px;margin:8px 0 6px}.hl span{font-size:14px;display:flex;gap:6px;align-items:center}.hl .ic{color:var(--gold)}
.prose p{font-size:16.5px;color:var(--ink2)}
.beds,.amen,.rules{list-style:none;padding:0;margin:0;display:grid;gap:12px 24px}.amen{grid-template-columns:repeat(2,1fr)}.beds li,.amen li{display:flex;gap:12px;align-items:center;font-size:15px}.beds .ic,.amen .ic{color:var(--gold2)}
.rules li{padding-left:22px;position:relative}.rules li::before{content:'';position:absolute;left:4px;top:11px;width:6px;height:1px;background:var(--gold)}
.reg{font-size:12.5px;color:var(--mut);margin-top:28px;word-break:break-all}.ft .reg{word-break:break-all}
.pside .sticky{position:sticky;top:96px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--sh)}
.pside .search{grid-template-columns:1fr 1fr}.pside .search label:nth-child(3),.pside .search .btn{grid-column:1/-1}.pside .results{margin-top:12px}.pside .res{flex-direction:column;align-items:stretch}.pside .res img,.pside .res h3{display:none}.pside .res .pr{text-align:left}
.pricehd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.pricehd b{font:600 26px var(--fs);color:var(--gold2)}
/* calendario */
.cal{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:12px 0;position:relative}.cal .mh{display:flex;justify-content:space-between;align-items:center;font:600 20px var(--fs);margin-bottom:8px;text-transform:capitalize}
.cal .nv{background:none;border:1px solid var(--line);width:32px;height:32px;border-radius:var(--r);cursor:pointer}.cal .nv:disabled{opacity:.3}
.cal .gd{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal .dw{font-size:11px;color:var(--mut);text-align:center;text-transform:uppercase}
.cal .d{aspect-ratio:1/1.05;border:1px solid transparent;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13.5px;cursor:pointer;background:#fff;line-height:1.1}
.cal .d small{font-size:10px;color:var(--mut)}.cal .d.x{background:transparent;color:#c9c2b5;text-decoration:line-through;cursor:default}.cal .d.x small{display:none}.cal .d.e{visibility:hidden}
.cal .d:not(.x):hover{border-color:var(--ink)}.cal .d.s,.cal .d.f{background:var(--ink);color:#fff}.cal .d.s small,.cal .d.f small{color:#ddd}.cal .d.in{background:var(--soft)}
/* mapa */
.map{height:380px;border-radius:var(--r);overflow:hidden;background:var(--soft);border:1px solid var(--line)}.mapph{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;text-align:center;color:var(--mut)}
/* lightbox */
.lb{position:fixed;inset:0;z-index:60;background:rgba(14,12,9,.96);display:flex;align-items:center;justify-content:center}.lb[hidden]{display:none}.lb img{max-width:92vw;max-height:86vh;object-fit:contain}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:44px;cursor:pointer;padding:10px 18px;opacity:.8}.lb button:hover{opacity:1}.lbx{top:10px;right:10px}.lbp{left:10px}.lbn{right:10px}.lbc{position:absolute;bottom:18px;color:#bbb;font-size:13px}
/* reserva */
.book h1{font-size:44px}.back{font-size:14px;color:var(--mut);text-decoration:none}.bookg{display:grid;grid-template-columns:1fr 400px;gap:32px;align-items:start;margin-top:20px}
.form{display:grid;gap:14px}.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--ink2)}.form input,.form textarea{font:inherit;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r);background:#fdfcf9}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--gold)}.form .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form .three{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px}
.form label.chk{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}.form label.chk input{margin-top:4px;accent-color:var(--ink)}
.sum{position:sticky;top:96px}.sum img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto}.dates{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dates span{border:1px solid var(--line);padding:8px 12px;border-radius:var(--r);font-size:14px}.dates small{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.tot{width:100%;border-collapse:collapse;font-size:14px;margin:12px 0}.tot td{padding:7px 0;border-bottom:1px solid var(--line)}.tot td:last-child{text-align:right}.tot tr.t td{font:600 22px var(--fs);border:0;padding-top:12px}
.ok{color:var(--ok);font-size:14px}.note{padding:12px 16px;border-radius:var(--r);font-size:14px;margin:12px 0}.note.warn{background:#fbf3e2;border:1px solid #efdcae}.note.err{background:#fbecea;border:1px solid #f0c9c2;color:var(--err)}
.tick{width:70px;height:70px;border-radius:50%;background:var(--soft);display:grid;place-items:center;margin:0 auto 20px}.tick .ic{width:34px;height:34px;color:var(--gold2)}
.legal h2{font-size:26px}.legal li{margin:4px 0}
/* pie */
.ft{background:#1d1b18;color:#d9d3c7;padding:64px 0 0;margin-top:40px}.ft .mut{color:#9b9488}.ft a{color:#e9dfcc}.ftg{display:grid;grid-template-columns:1.3fr 1fr 1.4fr .8fr;gap:40px}.ft p{font-size:14px}.ft .reg{color:#9b9488;font-size:12px;margin-top:0}
.ftb{display:flex;justify-content:space-between;border-top:1px solid #34302a;margin-top:40px;padding:18px 28px;font-size:12.5px;color:#8a8478}.logo.light{color:#fff;margin-bottom:16px}
.ck{position:fixed;left:20px;right:20px;bottom:20px;z-index:50;max-width:560px;background:var(--paper);border:1px solid var(--line);box-shadow:0 10px 40px rgba(0,0,0,.18);border-radius:var(--r);padding:18px 20px;font-size:13.5px}.ck[hidden]{display:none}.ck div{display:flex;gap:8px;justify-content:flex-end}
@media(max-width:960px){.nav{position:fixed;inset:76px 0 auto 0;background:var(--bg);color:var(--ink);flex-direction:column;align-items:flex-start;padding:20px 28px;gap:16px;border-bottom:1px solid var(--line);display:none}body.menu .nav{display:flex}.burger{display:block}
 .search{grid-template-columns:1fr 1fr}.search .btn{grid-column:1/-1}.cards,.g3,.bookg,.pdp{grid-template-columns:1fr}.pdp{gap:28px}.pside{order:-1}.pside .sticky,.sum{position:static}
 .gal{grid-template-columns:1fr 1fr;grid-template-rows:260px 130px}.gal .g0{grid-column:1/3;grid-row:1}.gal .g3,.gal .g4{display:none}.cal{grid-template-columns:1fr;gap:18px}.ftg{grid-template-columns:1fr 1fr}.card.row{flex-direction:column;align-items:stretch}.card.row img{width:100%}}
@media(max-width:560px){.wrap{padding:0 18px}.hero{min-height:100svh}.amen{grid-template-columns:1fr}.res{flex-wrap:wrap}.res img{width:100%;height:150px}.res .pr{text-align:left}.form .two,.form .three{grid-template-columns:1fr}.ftg{grid-template-columns:1fr}.rates{gap:16px}.rates b{font-size:30px}.pad{padding-top:52px;padding-bottom:52px}}

picture{display:contents}.gal picture,.ci picture{display:block;width:100%;height:100%}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form select{font:inherit;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r);background:#fdfcf9}
