:root{--ink:#1e3329;--paper:#faf8f3;--warm:#eee8dd;--green:#6f846f;--gold:#bb9257;--line:#ddd7cc;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.65 'DM Sans',sans-serif}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand{font-family:'Playfair Display',serif;font-weight:500;letter-spacing:-.055em}h1{font-size:clamp(3.05rem,7vw,6.2rem);line-height:1.02}h2{font-size:clamp(2.35rem,4.8vw,4.5rem);line-height:1.08}h1 em,h2 em{font-style:italic;color:var(--gold)}.kicker{margin-bottom:18px;color:#6d796d;font-size:10px;font-weight:700;letter-spacing:.17em}.header{height:78px;padding:0 6%;display:flex;align-items:center;gap:25px;border-bottom:1px solid #e6e1d7;background:#fffdf9;position:sticky;top:0;z-index:10}.brand{line-height:.9;color:var(--ink);text-decoration:none;display:grid}.brand strong{font-size:17px;letter-spacing:.08em}.brand span{font:700 8px 'DM Sans';letter-spacing:.15em;margin-top:8px}.navigation{margin-left:auto;display:none}.navigation a{color:var(--ink);font-size:12px;font-weight:600;text-decoration:none;margin:0 11px}.navigation a:hover{color:var(--gold)}.menu-button{background:none;border:0;color:var(--ink);font:600 12px 'DM Sans';margin-left:auto}.header-cta{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:17px;border:1px solid var(--ink);background:var(--ink);color:#fff;padding:15px 19px;text-decoration:none;font:700 12px 'DM Sans';cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s}.button:hover{background:#314d3e;transform:translateY(-3px);box-shadow:0 12px 22px #1834272c}.button-light{background:#fff;color:var(--ink);border-color:#fff}.hero{min-height:590px;display:flex;align-items:center;padding:80px 8%;position:relative;color:#fff;background:linear-gradient(90deg,#132b20e8,#18302496 48%,#18302422),url('assets/piscina-casa-bella.jpg') center/cover}.hero-content{max-width:600px}.hero .kicker{color:#dce6d6}.hero-content>p:not(.kicker){max-width:415px;margin:24px 0 31px;font-size:17px}.scroll-cue{color:#fff;text-decoration:none;position:absolute;bottom:28px;right:8%;font-size:11px;font-weight:600}.scroll-cue span{font-size:17px;margin-left:7px}.section{padding:78px 7%}.welcome{display:grid;gap:30px}.welcome-copy{max-width:520px}.welcome-copy>p{font-size:17px;margin-bottom:27px}.welcome dl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}.welcome dt{font:500 26px 'Playfair Display';color:var(--gold)}.welcome dd{margin:4px 0 0;font-size:11px;line-height:1.35}.gallery{background:#fff}.section-header{display:grid;gap:20px;margin-bottom:34px}.section-header>p{max-width:340px;color:#68746a}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.gallery-item{height:185px;border:0;padding:0;position:relative;overflow:hidden;cursor:zoom-in;background:#2d493a}.gallery-main{grid-column:span 2;height:315px}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.2,.75,.25,1),filter .35s}.gallery-item:hover img{transform:scale(1.08);filter:brightness(.75)}.gallery-item span{position:absolute;bottom:0;left:0;right:0;padding:31px 14px 13px;background:linear-gradient(transparent,#000b);color:#fff;text-align:left;font-size:12px;font-weight:600;transition:padding .3s}.gallery-item:hover span{padding-bottom:19px}.services{background:var(--warm)}.services-grid{display:grid;gap:1px;margin-top:35px}.services-grid article{padding:23px;background:#f7f3ec;transition:transform .25s,background .25s}.services-grid article:hover{background:#fff;transform:translateX(6px)}.services-grid b{color:var(--gold);font-size:11px}.services-grid h3{font-size:22px;margin:8px 0}.services-grid p{max-width:280px;color:#657168;font-size:13px;margin-bottom:0}.booking{background:#eef1e9;display:grid;gap:30px}.booking-intro>p:not(.kicker){max-width:355px}.legend{display:flex;gap:16px;font-size:11px;margin-top:25px}.legend i{width:10px;height:10px;display:inline-block;margin-right:5px}.available{background:#b9d1b7}.occupied{background:#e8c7c0}.booking-card,.booking-form{background:#fff;padding:22px;box-shadow:0 12px 30px #1c382010}.calendar-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px}.calendar-top h3{font-size:18px;margin:0;text-transform:capitalize}.calendar-top button{border:0;background:none;color:var(--ink);font-size:20px;cursor:pointer}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.weekdays{padding:18px 0 7px;color:#7e877d;font-size:10px}.days span,.calendar-day{aspect-ratio:1;display:grid;place-items:center;margin:2px;border:0;background:none;font:500 12px 'DM Sans'}.calendar-day:not(:disabled){background:#dcebd9;cursor:pointer;transition:transform .18s,background .18s}.calendar-day:not(:disabled):hover{background:#abc6a8;transform:scale(1.08)}.calendar-day:disabled{background:#f3e0dc;color:#a16c62}.calendar-day.selected{background:var(--ink);color:#fff}.calendar-day.between{background:#bcd5ba}.calendar-status{text-align:center;color:#6e786f;font-size:11px;margin:17px 0 0}.booking-form{border-top:4px solid var(--ink)}.booking-form h3{font-size:25px;margin-bottom:18px}.form-grid{display:grid;gap:13px}.form-grid label{display:grid;gap:5px;font-size:11px;font-weight:700}.form-grid input,.form-grid select{height:43px;width:100%;padding:0 10px;border:1px solid var(--line);background:#fff;color:var(--ink);font:400 13px 'DM Sans'}.summary{background:#f1f4ee;margin:20px 0;padding:13px;display:flex;justify-content:space-between;align-items:center;font-size:12px}.summary strong{font:500 18px 'Playfair Display'}.booking-form .button{width:100%}.booking-form small{display:block;margin-top:10px;color:#758075;font-size:10px;text-align:center}.quote{padding:80px 9%;background:var(--ink);color:#fff;text-align:center}.quote p{max-width:770px;margin:auto;font:italic clamp(1.7rem,4vw,3.5rem)/1.3 'Playfair Display'}.contact{display:grid;gap:35px;background:#fff}.contact-links{display:grid;gap:16px}.contact-links a,.contact-links p{display:grid;color:var(--ink);text-decoration:none;font-size:15px;margin:0}.contact-links small{font-size:10px;color:#748074;font-weight:700;letter-spacing:.13em;text-transform:uppercase;margin-bottom:2px}footer{padding:30px 7%;display:flex;flex-direction:column;gap:20px;background:#12271d;color:#e4e9dd}footer .brand{color:#fff}footer p{font-size:10px;margin:0}dialog{max-width:min(900px,94vw);background:#13271de8;border:0;padding:20px;color:#fff}dialog::backdrop{background:#000b}dialog img{display:block;max-width:100%;max-height:76vh;margin:auto}dialog p{text-align:center;font-size:12px;margin:12px 0 0}.close-lightbox{position:absolute;right:5px;top:-3px;border:0;background:none;color:#fff;font-size:30px;cursor:pointer}.toast{position:fixed;left:50%;bottom:20px;z-index:20;transform:translate(-50%,120px);opacity:0;background:var(--ink);color:#fff;padding:14px 19px;font-size:13px;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:760px){.header{height:86px;padding:0 7%}.menu-button{display:none}.navigation{display:block}.header-cta{display:inline-flex;border:1px solid var(--ink);padding:10px 14px;color:var(--ink);font-size:11px;font-weight:700;text-decoration:none}.hero{min-height:650px;padding:100px 12%}.section{padding:110px 9%}.welcome{grid-template-columns:1.1fr .9fr;gap:7vw;align-items:end}.section-header{grid-template-columns:1fr .5fr;align-items:end}.gallery-grid{grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:230px 230px;gap:12px}.gallery-item{height:auto}.gallery-main{grid-column:auto;grid-row:span 2}.services{display:grid;grid-template-columns:.75fr 1.25fr;gap:7vw}.services-grid{margin:0;grid-template-columns:1fr 1fr}.booking{grid-template-columns:.7fr 1fr;gap:25px}.booking-form{grid-column:span 2}.form-grid{grid-template-columns:repeat(3,1fr)}.contact{grid-template-columns:1.1fr .9fr;align-items:end}.contact-links{grid-template-columns:1fr 1fr}footer{padding:35px 9%;flex-direction:row;justify-content:space-between;align-items:center}}
