@charset "UTF-8";
@font-face{font-family:Cinzel;src:url('assets/cinzel-variable.ttf') format('truetype');font-weight:400 900;font-display:swap}
:root{--ink:#4a2f21;--muted:#776556;--paper:#faf6ef;--warm:#f0e9df;--line:#ddcdbb;--green:#583b29;--hover:#3d291e;--serif:Cinzel,Georgia,serif;--sans:'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--ink);background:var(--paper);font:17px/1.65 var(--sans)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;letter-spacing:-.035em}h1{font-size:clamp(32px,3.8vw,58px)}h2{font-size:clamp(29px,3vw,43px)}h3{font-size:27px}p{color:var(--muted)}:focus-visible{outline:3px solid #aa783b;outline-offset:5px}.skip{position:fixed;top:-100px;left:16px;padding:12px;background:white;z-index:30}.skip:focus{top:10px}
.header{display:flex;flex-direction:column;align-items:center;padding:20px 24px 12px;gap:13px}.brand{display:flex;flex-direction:column;align-items:center;gap:8px}.brand img{width:78px;height:78px;border-radius:50%}.brand span{font:500 26px/1.2 var(--serif);letter-spacing:.045em}.brand-rule,.section-rule{display:block;width:150px;height:1px;background:var(--line);position:relative}.brand-rule:after,.section-rule:after{content:'';position:absolute;left:calc(50% - 3px);top:-3px;width:6px;height:6px;transform:rotate(45deg);background:#bc9163}nav{display:flex;justify-content:center;gap:40px}nav a{font-size:12px;text-transform:uppercase;letter-spacing:.17em;padding:8px 0}nav a:hover{color:#9b6d42}nav a:focus-visible{outline-offset:2px}.menu-toggle{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:46px;border:1px solid var(--green);background:var(--green);color:var(--paper);padding:12px 26px;border-radius:4px;font-size:13px;line-height:1.4;letter-spacing:.12em;text-transform:uppercase;font-weight:500;transition:background .2s}.button:hover{background:var(--hover)}.button span{font-size:18px}
.hero{max-width:1600px;margin:0 auto;padding:15px 2.4% 0}.hero-copy{text-align:center;padding:12px 12px 22px}.hero-copy h1{max-width:1100px;margin:0 auto}.hero-copy p{font-size:12px;letter-spacing:.18em;text-transform:uppercase;margin:15px 0 12px}.hero-photo{position:relative;overflow:hidden;height:clamp(230px,42svh,470px);border-radius:15px;background:var(--warm);box-shadow:0 8px 24px #4a2f210c}.hero-photo>.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 78%;opacity:0;transition:opacity 1s}.hero-photo>.hero-slide.active{opacity:1}.slideshow-controls{position:absolute;bottom:14px;right:15px;display:flex;gap:6px}.slideshow-controls button{width:40px;height:40px;border-radius:50%;border:1px solid #fff9;background:#faf6efed;color:var(--ink);font-size:20px;display:grid;place-items:center}.slideshow-controls button:hover{background:white}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.section{max-width:1440px;padding:80px 6%;margin:0 auto}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}.section-heading p{max-width:440px;font-size:16px}.section-heading.centered{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;margin-bottom:42px}.centered p{max-width:600px}.centered .section-rule{margin-bottom:0}.celebrations{padding-top:30px}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.event-grid article{min-width:0}.event-grid article>img{width:100%;aspect-ratio:3/2;max-height:360px;object-fit:cover;border-radius:14px;box-shadow:0 9px 24px #4a2f2110}.event-grid h3{margin:23px 0 12px}.event-grid p{max-width:470px;font-size:16px}.text-link{display:inline-flex;align-items:center;gap:24px;padding-bottom:5px;border-bottom:1px solid #a38c74;font-size:15px;font-weight:500}.event-grid .text-link{margin-top:20px}.text-link:hover{color:#9b6d42}
.proposal,.space{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;background:var(--warm)}.proposal-photo,.space-photo,.proposal-copy,.space-copy{min-width:0}.proposal-photo img,.space-photo img{width:100%;aspect-ratio:4/3;max-height:460px;object-fit:cover;border-radius:14px;box-shadow:0 8px 25px #4a2f2110}.proposal-photo img{object-position:50% 50%}.space{background:var(--paper)}.proposal-copy p,.space-copy>p{margin-top:22px}.proposal-copy .text-link{margin-top:26px}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:28px 0}.amenities dt{font-size:16px;font-weight:600}.amenities dd{margin:4px 0 0;color:var(--muted);font-size:14px}.gallery{border-top:1px solid var(--line)}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gallery-item{border:0;padding:0;border-radius:12px;overflow:hidden;aspect-ratio:3/2;background:var(--warm);cursor:zoom-in;box-shadow:0 6px 20px #4a2f210b}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.gallery-item:hover img{transform:scale(1.035)}.gallery-item:nth-child(5) img{object-position:center 46%}
.video-section{display:grid;grid-template-columns:.8fr 1.5fr;gap:55px;align-items:center;background:var(--warm)}.video-section p{margin-top:22px;max-width:330px}.video-section video{width:100%;aspect-ratio:20/9;object-fit:cover;border-radius:14px;background:transparent}.film-toggle{display:inline-grid;place-items:center;width:46px;height:46px;border:1px solid #aa9278;border-radius:50%;background:transparent;color:var(--ink);padding:0;margin-top:24px;font-size:21px}.film-toggle:hover{background:#e7dccc}
.contact{display:grid;grid-template-columns:1fr 1.25fr;gap:8%}.contact-copy,.contact form{min-width:0}.contact-copy>p{margin:25px 0;max-width:360px}.contact-copy .text-link{font-size:23px}.contact-copy .contact-note{font-size:14px;margin:30px 0 8px}.instagram-link{font-size:15px}.instagram-link:hover{text-decoration:underline}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.form-row>label{min-width:0}form label{display:block;font-size:14px;font-weight:500}form label span{font-size:12px;font-weight:400;color:var(--muted)}input,select,textarea{display:block;width:100%;max-width:100%;min-width:0;min-height:48px;margin-top:8px;padding:12px;color:var(--ink);background:#fffcf7;border:1px solid #cdbca8;border-radius:4px;font-size:16px}textarea{resize:vertical}form>.button{width:100%;margin-top:24px}.form-help,#form-status{font-size:12px;line-height:1.6;margin-top:14px}.location{display:flex;justify-content:space-between;align-items:center;gap:30px;background:var(--warm);padding-top:48px;padding-bottom:48px}.location h2{font-size:31px}.location p{margin-top:17px;font-size:15px}.outline{background:transparent;color:var(--ink)}.outline:hover{background:#e6dbcd}footer{max-width:1440px;margin:auto;padding:32px 6%;display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:14px}.full-brand img{width:135px;height:100px;object-fit:contain;border-radius:0}footer p{font-size:14px}
dialog{border:0;padding:52px 14px 14px;background:var(--paper);max-width:94vw;max-height:94dvh;border-radius:8px;color:var(--ink)}dialog::backdrop{background:#241a15e8}dialog img{max-height:78dvh;max-width:85vw;width:auto;margin:auto;object-fit:contain}.close-dialog{position:absolute;right:14px;top:10px;border:0;padding:5px 10px;background:transparent;color:var(--ink);min-height:36px}body.modal-open{overflow:hidden}
@media(min-width:761px) and (max-height:650px){.header{padding-top:10px;gap:7px}.brand{gap:4px}.brand img{width:43px;height:43px}.brand span{font-size:19px}nav a{font-size:11px;padding:5px 0}.hero{padding-top:3px}.hero-copy{padding-top:5px;padding-bottom:16px}.hero-copy h1{font-size:clamp(29px,3.7vw,43px)}.hero-copy p{font-size:10px;margin:9px 0}.hero-copy .button{min-height:39px;padding:9px 22px;font-size:11px}.hero-photo{height:39svh;min-height:190px}.section{padding-top:48px;padding-bottom:48px}.celebrations{padding-top:26px}}
@media(max-width:900px){.section{padding-left:5%;padding-right:5%}.proposal,.space{gap:5%}.event-grid{gap:26px}.video-section{gap:30px}.contact{gap:5%}}
@media(max-width:760px){body{font-size:16px}.header{padding:15px 20px 12px;gap:11px}.brand img{width:60px;height:60px}.brand span{font-size:22px}nav{gap:23px}nav a{font-size:10px;letter-spacing:.11em}.hero{padding:6px 16px 0}.hero-copy{padding:14px 0 22px}.hero-copy h1{font-size:clamp(25px,5.4vw,39px);letter-spacing:-.04em}.hero-copy p{font-size:10px;letter-spacing:.1em;margin:15px 0}.hero-photo{height:clamp(220px,35svh,330px);border-radius:12px}.hero-photo>.hero-slide{object-position:50% 66%}.hero-copy .button{font-size:11px;padding:12px 22px}.section{padding:52px 6%}.celebrations{padding-top:30px}.section-heading,.section-heading.centered{display:flex;flex-direction:column;align-items:start;gap:18px;margin-bottom:28px}.section-heading.centered{align-items:center}h2{font-size:29px}.section-heading p br{display:none}.event-grid{grid-template-columns:1fr;gap:36px}.event-grid article>img{max-height:330px}.event-grid h3{margin-top:18px}.event-grid .text-link{margin-top:14px}.proposal,.space,.video-section,.contact{grid-template-columns:1fr;gap:30px}.proposal-photo img,.space-photo img{aspect-ratio:4/3;max-height:350px}.proposal-copy p,.space-copy>p{margin-top:19px}.gallery-grid{grid-template-columns:1fr 1fr;gap:12px}.gallery-item{aspect-ratio:4/3}.video-section p{max-width:none}.location{display:block}.location .button{margin-top:24px}.location h2{font-size:28px}footer{padding:26px 6%;flex-wrap:wrap}footer p{display:none}.full-brand img{width:115px;height:85px}.form-row{gap:14px}}
@media(max-width:480px){.header{position:relative}.brand span{font-size:20px}.menu-toggle{display:flex;align-items:center;justify-content:center;gap:12px;background:transparent;border:0;color:var(--ink);min-height:40px;padding:5px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.menu-toggle span{font-size:20px}nav{display:none;padding:8px 0 4px;gap:12px;flex-wrap:wrap}nav.open{display:flex}.brand-rule{width:115px}.header{gap:6px}.hero-copy h1{font-size:clamp(23px,5.9vw,28px)}.hero-copy p{font-size:9px;letter-spacing:.08em}.slideshow-controls{right:10px;bottom:10px}.slideshow-controls button{width:38px;height:38px}.form-row{grid-template-columns:1fr}.gallery-grid{gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Fotografías fijas: portada panorámica y vista de la alberca. */
.hero-photo>.hero-slide{object-position:50% 50%}
.pool-still{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px;box-shadow:0 8px 24px #4a2f2112}
@media(max-width:760px){.hero-photo{height:auto;aspect-ratio:2/1}.hero-photo>.hero-slide{object-position:57% 50%}.pool-still{aspect-ratio:3/2}}

.social-links{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.social-links a{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:13px}.social-links svg{width:21px;height:21px;flex:none}.social-links a:hover{color:#9b6d42}@media(max-width:480px){footer{justify-content:center;flex-direction:column;gap:12px}.social-links{justify-content:center;gap:16px}.social-links a{font-size:12px}}

/* Acceso a la agenda siempre disponible, también en teléfonos. */
body{padding-bottom:90px}
.floating-booking{position:fixed;right:24px;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:20;display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:54px;max-width:calc(100vw - 32px);padding:14px 23px;border:1px solid #927258;border-radius:30px;background:#583b29;color:#fffaf2;font:500 14px/1.4 var(--sans);letter-spacing:.025em;box-shadow:0 6px 22px #3d291e33;text-decoration:none;transition:background .2s,box-shadow .2s}
.floating-booking svg{width:22px;height:22px;flex:none}
.floating-booking:hover{background:#3d291e;box-shadow:0 8px 26px #3d291e44}
body.modal-open .floating-booking{visibility:hidden}
@media(max-width:480px){.floating-booking{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));min-height:50px;padding:12px 19px;font-size:13px}body{padding-bottom:86px}}
@media print{.floating-booking{display:none}body{padding-bottom:0}}