:root{--cacao:#5c3d2c;--cacao-deep:#33231c;--sand:#eee5d7;--cream:#f8f3ea;--clay:#b86545;--ink:#25211e;--line:rgba(37,33,30,.2)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}.site-header{position:absolute;z-index:10;top:0;left:0;width:100%;height:96px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4vw;color:#fff;border-bottom:1px solid rgba(255,255,255,.25)}a{color:inherit;text-decoration:none}.brand{display:inline-flex;align-items:center}.brand img{display:block;width:168px;height:auto}.site-header nav{display:flex;align-items:center;gap:26px;font-size:12px;text-transform:uppercase;letter-spacing:.14em}.language-switch{display:inline-flex;align-items:center;gap:5px;margin-left:2px;font-size:10px;letter-spacing:.08em}.language-switch button{border:0;padding:5px 2px;background:transparent;color:inherit;font:600 10px "DM Sans",sans-serif;cursor:pointer;opacity:.55}.language-switch button[aria-pressed="true"]{opacity:1;border-bottom:1px solid currentColor}.language-switch span{opacity:.45}.site-header .button{justify-self:end}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:17px 23px;border:1px solid currentColor;text-transform:uppercase;font-size:11px;font-weight:600;letter-spacing:.12em;transition:.25s}.button:hover{transform:translateY(-2px)}.button-small{padding:12px 21px}.button-light{background:#fff;color:var(--ink);border-color:#fff}.button-dark{background:var(--cacao-deep);color:#fff;border-color:var(--cacao-deep)}.menu-toggle{display:none;background:none;border:0}.hero{height:max(760px,100vh);position:relative;background:url("assets/airbnb/hero-beachfront.jpg") center 58%/cover no-repeat;color:#fff;display:flex;align-items:center;padding:120px 8vw 40px}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,15,12,.84) 0%,rgba(31,22,16,.59) 42%,rgba(30,22,17,.12) 76%),linear-gradient(0deg,rgba(17,12,9,.57),transparent 55%)}.hero-content{position:relative;max-width:760px}.eyebrow,.overline{font-size:11px;text-transform:uppercase;letter-spacing:.23em;font-weight:600}.hero h1,.intro h2,.experience-card h2,.location h2{font:500 clamp(64px,8vw,132px)/.86 "Playfair Display",serif;letter-spacing:-.055em;margin:28px 0}.hero h1 em,.quote em{font-weight:500}.hero-copy{font-size:18px;max-width:440px;line-height:1.55;margin:0 0 28px}.hero-actions{display:flex;gap:30px;align-items:center}.text-link{display:inline-flex;gap:22px;align-items:center;border-bottom:1px solid currentColor;padding:12px 0;text-transform:uppercase;font-size:11px;letter-spacing:.14em}.platform-proof{display:flex;align-items:center;gap:24px;margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.3);max-width:650px}.platform-proof>p{margin:0;max-width:110px;font-size:9px;line-height:1.5;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.72)}.platform-list{display:flex;align-items:center;gap:22px}.platform{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.platform img{width:20px;height:20px;object-fit:contain}.platform strong{font-size:12px;letter-spacing:-.02em}.real-photo-label{position:absolute;z-index:1;right:4vw;top:125px;margin:0;font-size:9px;text-transform:uppercase;letter-spacing:.17em;color:rgba(255,255,255,.75)}.scroll-cue{position:absolute;right:4vw;bottom:35px;display:flex;align-items:center;gap:24px;font-size:11px;text-transform:uppercase;letter-spacing:.18em}.scroll-cue i{font-style:normal;border:1px solid rgba(255,255,255,.45);border-radius:50%;width:43px;height:43px;display:grid;place-items:center}.section{padding:140px 8vw}.intro{display:grid;grid-template-columns:1fr 2.3fr;gap:8vw;background:var(--sand)}.section-kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase}.intro-copy{max-width:950px}.intro h2{font-size:clamp(47px,6vw,92px);margin:30px 0}.intro-copy>p:last-child{max-width:570px;margin-left:auto;font-size:16px;line-height:1.7}.split-cards{display:grid;grid-template-columns:1fr 1fr}.experience-card{min-height:720px;padding:55px 5vw;display:flex;flex-direction:column;justify-content:space-between}.restaurant-card{background:var(--clay);color:#fff}.stay-card{background:var(--cacao);color:#fff}.card-number{font-size:11px;border:1px solid rgba(255,255,255,.35);width:43px;height:43px;border-radius:50%;display:grid;place-items:center}.card-body{max-width:500px}.experience-card h2{font-size:clamp(60px,6vw,96px);margin:25px 0}.card-body>p:not(.overline){line-height:1.65;max-width:430px;margin-bottom:35px}.card-meta{padding-top:25px;border-top:1px solid rgba(255,255,255,.35);display:flex;justify-content:space-between;text-transform:uppercase;font-size:10px;letter-spacing:.14em}.details{background:var(--cream);display:grid;grid-template-columns:1.1fr 1fr;gap:10vw}.quote blockquote{font:500 clamp(38px,4vw,65px)/1.08 "Playfair Display",serif;margin:35px 0 0}.amenities{display:grid;grid-template-columns:1fr 1fr}.amenities div{padding:22px;border-top:1px solid var(--line);min-height:150px}.amenities span{font-size:10px}.amenities p{font-family:"Playfair Display",serif;font-size:23px}.location{display:grid;grid-template-columns:1.2fr .8fr;background:var(--cacao-deep);color:#fff}.location-copy{padding:120px 8vw;background:linear-gradient(90deg,rgba(31,22,17,.86),rgba(31,22,17,.53)),url("assets/current-site/beach-view.jpg") center/cover no-repeat}.location h2{font-size:clamp(58px,6vw,100px)}.location-copy>p:not(.overline){line-height:1.7;color:rgba(255,255,255,.8)}.dark-link{margin-top:20px}.location-panel{background:var(--sand);color:var(--ink);padding:120px 6vw}.location-panel>p{text-transform:uppercase;letter-spacing:.2em;font-size:11px}.location-panel dl{margin:35px 0 60px}.location-panel dl div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0}.location-panel dt,.location-panel dd{margin:0;font-size:13px}.contact-links{display:flex;flex-direction:column;gap:15px;text-decoration:underline;text-underline-offset:5px}footer{background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;padding:55px 4vw}footer p{font-size:10px;text-transform:uppercase;letter-spacing:.14em;margin:0}footer p:last-child{text-align:right}.footer-brand img{width:190px}.reveal{opacity:0;transform:translateY(25px);transition:opacity .7s,transform .7s}.reveal.visible{opacity:1;transform:none}
@media (max-width:800px){.site-header{height:76px;grid-template-columns:1fr auto;padding:0 20px}.site-header nav,.site-header>.button{display:none}.menu-toggle{display:flex;flex-direction:column;gap:6px;padding:10px}.menu-toggle span{display:block;width:26px;height:1px;background:#fff}.site-header.open{position:fixed;background:var(--cacao-deep);height:auto;min-height:100vh;align-content:start;padding-top:25px}.site-header.open nav{display:flex;grid-column:1/-1;flex-direction:column;font:500 38px "Playfair Display",serif;text-transform:none;letter-spacing:0;margin-top:70px}.hero{padding:105px 20px 35px;min-height:740px;background-position:62% center}.hero h1{font-size:65px}.hero-copy{font-size:16px}.hero-actions{align-items:flex-start;flex-direction:column;gap:12px}.scroll-cue{display:none}.section{padding:85px 22px}.intro{grid-template-columns:1fr;gap:50px}.intro h2{font-size:49px}.intro-copy>p:last-child{margin-left:0}.split-cards{grid-template-columns:1fr}.experience-card{min-height:650px;padding:42px 24px}.experience-card h2{font-size:62px}.details{grid-template-columns:1fr;gap:70px}.amenities div{padding:15px}.location{grid-template-columns:1fr}.location-copy,.location-panel{padding:85px 24px}.location h2{font-size:58px}footer{grid-template-columns:1fr;gap:25px}footer p:last-child{text-align:left}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

.intro-visual{display:flex;flex-direction:column}.intro-dish{position:relative;height:560px;margin:38px 0 0;overflow:hidden;background:var(--cacao)}.intro-dish img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 73%;transition:transform .7s ease}.intro-dish:hover img{transform:scale(1.025)}.intro-dish::after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(transparent,rgba(22,14,10,.65));pointer-events:none}.intro-dish figcaption{position:absolute;z-index:1;left:20px;bottom:18px;color:#fff;font-size:9px;text-transform:uppercase;letter-spacing:.16em}

/* Linked booking platform proof */
.platform{transition:opacity .2s,transform .2s}.platform:hover{opacity:.72;transform:translateY(-1px)}

/* Three reservation journeys */
.reservation-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:10vw;align-items:end;background:var(--cream)}
.gallery{background:#ded0bd}
.gallery-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:10vw;align-items:end;margin-bottom:60px}
.gallery-heading h2{font:500 clamp(56px,6vw,96px)/.92 "Playfair Display",serif;letter-spacing:-.055em;margin:25px 0 0}
.gallery-heading h2 em{font-weight:500}.gallery-heading>p{max-width:420px;line-height:1.7;margin:0}
.gallery-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;grid-template-rows:340px 340px;gap:16px}
.gallery-item{position:relative;overflow:hidden;margin:0;min-height:0;background:var(--cacao)}
.gallery-item-tall{grid-row:span 2}.gallery-item-wide{grid-column:span 1}
.gallery-item img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .7s ease}
.gallery-item:nth-child(2) img{object-position:center 56%}.gallery-item:nth-child(3) img{object-position:center 52%}.gallery-item:nth-child(4) img{object-position:center 48%}.gallery-item:nth-child(5) img{object-position:center 43%}
.gallery-item::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(22,14,10,.72));pointer-events:none}
.gallery-item:hover img{transform:scale(1.025)}
.gallery-item figcaption{position:absolute;z-index:1;left:22px;right:22px;bottom:20px;color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.16em}
.gallery-link{margin-top:40px}
.sunset-story{display:grid;grid-template-columns:.82fr 1.18fr;min-height:760px;background:var(--cacao-deep);color:#fff}
.sunset-photo{position:relative;margin:0;overflow:hidden;min-height:760px}
.sunset-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 46%}
.sunset-photo::after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(22,14,10,.65));pointer-events:none}
.sunset-photo figcaption{position:absolute;z-index:1;left:34px;bottom:30px;margin:0;font-size:9px;text-transform:uppercase;letter-spacing:.17em;color:rgba(255,255,255,.8)}
.sunset-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:110px 9vw}
.sunset-copy h2{font:500 clamp(55px,6vw,94px)/.94 "Playfair Display",serif;letter-spacing:-.055em;margin:28px 0}
.sunset-copy h2 em{font-weight:500}.sunset-copy>p:not(.overline){max-width:500px;margin:0 0 34px;line-height:1.75;color:rgba(255,255,255,.78)}
.apartments{background:var(--sand)}
.apartments-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:10vw;align-items:end;margin-bottom:60px}
.apartments-heading h2{font:500 clamp(56px,6vw,96px)/.92 "Playfair Display",serif;letter-spacing:-.055em;margin:25px 0 0}.apartments-heading h2 em{font-weight:500}
.apartments-copy>p{line-height:1.7;max-width:440px;margin:0 0 28px}.apartments-copy .button{font-family:inherit;cursor:pointer}
.apartments-gallery{display:grid;grid-template-columns:1.35fr .8fr .8fr;grid-template-rows:340px 340px;gap:16px}
.apartment-photo{position:relative;overflow:hidden;margin:0;background:var(--cacao)}.apartment-photo-main{grid-row:1/-1}.apartment-photo-wide{grid-column:2/-1}
.apartment-photo img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .7s ease}.apartment-photo-main img{object-position:center 48%}.apartment-photo-wide img{object-position:center 38%}
.apartment-photo::after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(22,14,10,.75));pointer-events:none}.apartment-photo:hover img{transform:scale(1.025)}
.apartment-photo figcaption{position:absolute;z-index:1;left:22px;right:22px;bottom:20px;color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.16em}.photo-source{margin:20px 0 0;font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:#776b61}
.reservation-intro h2{font:500 clamp(56px,6vw,96px)/.92 "Playfair Display",serif;letter-spacing:-.055em;margin:25px 0 0}
.reservation-intro em{font-weight:500}.reservation-intro>p{max-width:430px;line-height:1.7}
.reservation-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.reservation-grid .experience-card{min-height:720px;padding:48px 3.5vw}
.event-card{background:#9d765d;color:#fff}
.reservation-grid .experience-card h2{font-size:clamp(52px,4.7vw,78px)}
.experience-card button{font-family:inherit;cursor:pointer}
.secondary-link{display:inline-block;margin-top:20px;font-size:11px;text-transform:uppercase;letter-spacing:.09em;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:6px}

.modal{position:fixed;inset:0;z-index:100;display:none}.modal.open{display:block}
.modal-backdrop{position:absolute;inset:0;background:rgba(23,15,11,.72);backdrop-filter:blur(8px)}
.modal-panel{position:absolute;right:0;top:0;height:100%;width:min(700px,100%);overflow-y:auto;background:var(--cream);padding:70px clamp(24px,6vw,80px)}
.modal-close{position:absolute;right:28px;top:22px;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:26px;cursor:pointer}
.modal-panel h2{font:500 clamp(45px,5vw,70px)/.95 "Playfair Display",serif;letter-spacing:-.04em;margin:20px 0 45px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}
.form-grid label{display:flex;flex-direction:column;gap:9px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:600}
.form-grid .wide{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:11px 2px;font:15px "DM Sans",sans-serif;color:var(--ink);outline:none}
.form-grid textarea{border:1px solid var(--line);padding:14px;resize:vertical}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--clay)}
.form-note{font-size:12px;line-height:1.5;color:#6c625d;margin:25px 0}.submit-button{width:100%;font-family:inherit;cursor:pointer}
.availability-status{margin-top:28px;padding:16px;border:1px solid var(--line);font-size:12px}
.availability-status span{display:inline-block;width:8px;height:8px;background:#d79a4b;border-radius:50%;margin-right:8px}
body.modal-open{overflow:hidden}

/* Square editorial food feature */
.intro{grid-template-columns:minmax(330px,.95fr) minmax(0,1.85fr);gap:7vw;align-items:start}
.intro-dish{width:100%;height:auto;aspect-ratio:1/1}
.intro-dish img{object-position:center 54%}

@media (max-width:1100px){.site-header nav{gap:20px}.reservation-grid{grid-template-columns:1fr}.reservation-grid .experience-card{min-height:620px}.reservation-grid .experience-card h2{font-size:72px}}
@media (max-width:800px){.brand img{width:135px}.hero{min-height:850px;background-position:54% center}.real-photo-label{display:none}.platform-proof{align-items:flex-start;flex-direction:column;gap:12px;margin-top:26px}.platform-proof>p{max-width:none}.platform-list{gap:14px;flex-wrap:wrap}.platform strong{font-size:11px}.intro-dish{height:auto;margin-top:28px}.gallery-heading,.apartments-heading,.reservation-intro{grid-template-columns:1fr;gap:35px}.gallery-heading,.apartments-heading{margin-bottom:38px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:420px 250px 250px}.gallery-item-tall{grid-column:1/-1;grid-row:auto}.gallery-item-wide{grid-column:auto}.sunset-story{grid-template-columns:1fr;min-height:0}.sunset-photo{min-height:620px}.sunset-copy{padding:85px 24px}.sunset-copy h2{font-size:52px}.apartments-gallery{grid-template-columns:1fr 1fr;grid-template-rows:430px 250px 280px}.apartment-photo-main{grid-column:1/-1;grid-row:auto}.apartment-photo-wide{grid-column:1/-1}.footer-brand img{width:170px}.modal-panel{padding:65px 22px 40px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}
@media (max-width:800px){.intro{grid-template-columns:1fr;gap:50px}}

/* Experience-led reservation cards */
.reservation-intro{position:relative;overflow:hidden;padding-top:95px;padding-bottom:72px;min-height:0}
.reservation-intro h2{font-size:clamp(54px,5.4vw,84px)}
.reservation-intro>p{position:relative;z-index:1}
.reservation-sun{position:absolute;right:5vw;top:42px;width:76px;height:76px;color:rgba(184,101,69,.25);fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round}
.reservation-wave{position:absolute;left:8vw;right:8vw;bottom:20px;width:84vw;height:20px;fill:none;stroke:rgba(184,101,69,.35);stroke-width:1.3}
.reservation-grid .experience-card{display:grid;grid-template-rows:270px 1fr;min-height:780px;padding:0;justify-content:stretch;overflow:hidden}
.experience-media{position:relative;overflow:hidden;margin:0;background:var(--cacao-deep)}
.experience-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,17,13,.08),rgba(25,17,13,.32))}
.experience-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
#restaurante .experience-media img{object-position:center 58%}#eventos .experience-media img{object-position:center 80%}#hospedaje .experience-media img{object-position:center 48%}
.experience-card:hover .experience-media img{transform:scale(1.055)}
.experience-media .card-number{position:absolute;z-index:2;left:28px;top:26px;background:rgba(35,25,20,.32);backdrop-filter:blur(7px);color:#fff}
.experience-icon{position:absolute;z-index:2;right:26px;bottom:22px;width:58px;height:58px;padding:13px;border:1px solid rgba(255,255,255,.65);border-radius:50%;color:#fff;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.card-content{display:flex;flex-direction:column;justify-content:space-between;padding:42px 3.5vw 34px;min-width:0}
.reservation-grid .card-body{max-width:none}.reservation-grid .experience-card h2{font-size:clamp(48px,4.2vw,70px);margin:20px 0}
.reservation-grid .card-body>p:not(.overline){min-height:78px;margin-bottom:28px}
.reservation-grid .card-meta{margin-top:34px}
.experience-card .button{transition:transform .25s,background-color .25s,color .25s}.experience-card .button:hover{transform:translateY(-3px)}

/* Three distinct stays */
.stay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:60px}
.stay-card-detail{background:var(--cream);border:1px solid rgba(37,33,30,.12);transition:transform .35s,box-shadow .35s}
.stay-card-detail:hover{transform:translateY(-7px);box-shadow:0 22px 55px rgba(70,45,32,.13)}
.stay-card-detail figure{position:relative;overflow:hidden;margin:0;aspect-ratio:4/3;background:var(--cacao)}
.stay-card-detail figure img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .8s ease}
.stay-card-detail:nth-child(1) figure img{object-position:center 62%}.stay-card-detail:nth-child(2) figure img{object-position:center 48%}.stay-card-detail:nth-child(3) figure img{object-position:center 58%}
.stay-card-detail:hover figure img{transform:scale(1.035)}
.stay-card-detail figure span{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(35,25,20,.58);backdrop-filter:blur(6px);color:#fff;font-size:10px;letter-spacing:.08em}
.stay-card-copy{padding:30px 28px 28px}.stay-card-copy h3{font:500 clamp(34px,3vw,49px)/1 "Playfair Display",serif;letter-spacing:-.045em;margin:12px 0 18px}.stay-facts{min-height:46px;font-size:13px;line-height:1.55;color:#62584f}
.amenity-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:23px}.amenity-chips span{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:999px;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.amenity-chips svg{width:15px;height:15px;color:var(--clay);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Verified social proof */
.social-proof{position:relative;background:var(--cacao-deep);color:#fff;overflow:hidden}
.social-proof::before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(238,229,215,.12);border-radius:50%;right:-180px;top:-230px}
.social-proof-heading{display:grid;grid-template-columns:.75fr 1.25fr;gap:6vw;align-items:start;margin-bottom:62px}.social-proof-heading h2{font:500 clamp(48px,5.6vw,88px)/.94 "Playfair Display",serif;letter-spacing:-.055em;margin:0}.social-proof-heading h2 em{font-weight:500}
.proof-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative;z-index:1}.proof-card{min-height:310px;padding:32px;background:var(--sand);color:var(--ink);display:flex;flex-direction:column;border:1px solid transparent;transition:transform .3s,background-color .3s}.proof-card:hover{transform:translateY(-6px);background:#f5ede2}.proof-platform{display:flex;align-items:center;gap:10px;font-size:11px;text-transform:uppercase;letter-spacing:.13em}.proof-platform img,.proof-platform svg{width:25px;height:25px}.proof-platform svg{color:var(--clay);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}.proof-card>strong{font:500 clamp(65px,6vw,96px)/1 "Playfair Display",serif;letter-spacing:-.06em;margin:42px 0 8px}.proof-card>strong span{font:500 20px "DM Sans",sans-serif;letter-spacing:0}.proof-card>p{margin:0 0 auto;font-size:13px}.proof-card small{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);font-size:9px;text-transform:uppercase;letter-spacing:.12em}.proof-topics ul{list-style:none;display:flex;flex-wrap:wrap;gap:9px;padding:0;margin:48px 0 auto}.proof-topics li{padding:10px 13px;border:1px solid var(--line);border-radius:999px;font:500 12px "DM Sans",sans-serif}
.proof-card{position:relative;overflow:hidden}.proof-card:nth-child(1){background:#f1ddd6;border-top:4px solid #e66b63}.proof-card:nth-child(2){background:#dfeaf2;border-top:4px solid #2469a0}.proof-card:nth-child(3){background:#efe1b9;border-top:4px solid #d39b3a}.proof-card:nth-child(1):hover{background:#f6e5df}.proof-card:nth-child(2):hover{background:#e8f1f7}.proof-card:nth-child(3):hover{background:#f5e8c5}
.proof-card::after{content:"";position:absolute;right:-42px;bottom:-54px;width:140px;height:140px;border:1px solid rgba(37,33,30,.1);border-radius:50%;pointer-events:none}.proof-brand-mark{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;box-shadow:0 7px 18px rgba(37,33,30,.13)}.proof-brand-mark img{width:21px;height:21px}.proof-brand-airbnb{background:#e66b63}.proof-brand-booking{background:#1769aa}.proof-badge{position:absolute;right:28px;top:31px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.55);font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.12em}.proof-card>strong{margin:34px 0 4px}.rating-stars{display:flex;gap:4px;margin:3px 0 12px;color:#c98e26}.rating-stars svg{width:17px;height:17px;fill:currentColor;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}.rating-stars .star-soft{fill:none;opacity:.55}.proof-topics .proof-platform>svg{width:34px;height:34px;color:#b97522}.proof-topics ul{margin-top:38px}.proof-topics li{display:inline-flex;align-items:center;gap:7px;border:0}.proof-topics li:nth-child(1){background:#d9e6ee}.proof-topics li:nth-child(2){background:#cfe5df}.proof-topics li:nth-child(3){background:#f2c98a}.proof-topics li:nth-child(4){background:#ead4cd}.proof-topics li svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

/* Custom service and contact iconography */
.amenities .service-tile{position:relative;overflow:hidden;transition:background-color .3s,transform .3s}.amenities .service-tile:hover{transform:translateY(-4px)}
.service-icon{display:block;width:62px;height:62px;margin-bottom:24px;padding:12px;border-radius:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s,rotate .35s}.service-tile:hover .service-icon{transform:scale(1.08);rotate:-3deg}.amenities span{position:absolute;right:20px;top:22px;color:#9b8d80}
.service-tile-ocean{background:#dcebec}.service-tile-ocean .service-icon{background:#bcdde0;color:#2d747a}.service-tile-cocktail{background:#f3dfc2}.service-tile-cocktail .service-icon{background:#efc982;color:#9e5b26}.service-tile-party{background:#ead9df}.service-tile-party .service-icon{background:#dcb9c6;color:#934e67}.service-tile-stay{background:#e2dfd1}.service-tile-stay .service-icon{background:#c9c5af;color:#5d6249}
.amenities .service-sports{font-size:21px;line-height:1.18}
.location-panel-title{display:flex;align-items:center;gap:13px}.location-panel-title svg{width:28px;height:28px;color:#b78c49;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.location-panel-title p{margin:0;text-transform:uppercase;letter-spacing:.2em;font-size:11px}
.contact-links{gap:0;text-decoration:none}.contact-links a{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line);transition:color .2s,padding-left .2s}.contact-links a:hover{color:var(--clay);padding-left:5px}.contact-links svg{flex:0 0 auto;width:22px;height:22px;color:#b78c49;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.location-cta{margin-top:32px;width:100%}

/* Quiet, practical payment rail */
.payment-strip{display:grid;grid-template-columns:.65fr 1.35fr;align-items:center;gap:5vw;padding:30px 8vw;background:#e5d6c2;color:var(--ink);border-top:1px solid rgba(37,33,30,.12);border-bottom:1px solid rgba(37,33,30,.12)}
.payment-heading{display:flex;align-items:center;gap:16px}.payment-heading>svg{width:34px;height:34px;color:#a67b3c;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.payment-heading div{display:flex;flex-direction:column;gap:4px}.payment-heading span{font-size:8px;text-transform:uppercase;letter-spacing:.18em;color:#74685e}.payment-heading strong{font:500 24px "Playfair Display",serif}
.payment-methods{display:grid;grid-template-columns:repeat(5,1fr);align-items:center}.payment-methods>span{min-height:48px;padding:0 20px;border-left:1px solid rgba(37,33,30,.15);display:flex;align-items:center;justify-content:center;white-space:nowrap}
.payment-visa{color:#183d74;font:italic 800 22px "DM Sans",sans-serif;letter-spacing:-.07em}.payment-clave{color:#a9473e;font:700 18px "DM Sans",sans-serif;letter-spacing:-.04em}.payment-yappy{color:#315fa5;font:700 18px "DM Sans",sans-serif;letter-spacing:-.04em}
.payment-mastercard{gap:0;position:relative}.payment-mastercard i{display:block;width:22px;height:22px;border-radius:50%;background:#d95443;opacity:.92}.payment-mastercard i+ i{margin-left:-8px;background:#dda33a}.payment-mastercard b{margin-left:8px;font:600 9px "DM Sans",sans-serif;letter-spacing:-.02em}.payment-cash{gap:8px}.payment-cash svg{width:23px;height:23px;color:#9b763d;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round}.payment-cash b{font:600 11px "DM Sans",sans-serif}

/* Restrained motion and tropical character */
@keyframes vista-soft-zoom{from{transform:scale(1)}to{transform:scale(1.035)}}
.sunset-photo img{animation:vista-soft-zoom 16s ease-in-out infinite alternate}.reservation-sun{animation:vista-soft-zoom 5s ease-in-out infinite alternate}
@media (prefers-reduced-motion:reduce){.sunset-photo img,.reservation-sun{animation:none}.experience-media img,.stay-card-detail figure img{transition:none}}

@media (max-width:1100px){.reservation-grid .experience-card{grid-template-columns:.9fr 1.1fr;grid-template-rows:1fr;min-height:580px}.experience-media{min-height:580px}.card-content{padding:50px 7vw}.reservation-grid .card-body>p:not(.overline){min-height:0}.stay-grid{grid-template-columns:1fr 1fr}.stay-card-detail:last-child{grid-column:1/-1}.stay-card-detail:last-child{display:grid;grid-template-columns:1fr 1fr}.stay-card-detail:last-child figure{aspect-ratio:auto}.proof-cards{grid-template-columns:1fr 1fr}.proof-card:last-child{grid-column:1/-1;min-height:240px}}
@media (max-width:800px){.reservation-intro{padding-top:75px;padding-bottom:70px}.reservation-sun{width:58px;height:58px;right:18px;top:25px}.reservation-wave{left:22px;width:calc(100% - 44px)}.reservation-grid .experience-card{display:grid;grid-template-columns:1fr;grid-template-rows:245px 1fr;min-height:0}.experience-media{min-height:245px}.card-content{padding:38px 24px 30px}.reservation-grid .experience-card h2{font-size:56px}.stay-grid{grid-template-columns:1fr;margin-top:42px}.stay-card-detail:last-child{grid-column:auto;display:block}.stay-card-detail:last-child figure{aspect-ratio:4/3}.stay-card-copy{padding:26px 22px}.stay-facts{min-height:0}.social-proof-heading{grid-template-columns:1fr;gap:25px;margin-bottom:42px}.proof-cards{grid-template-columns:1fr}.proof-card:last-child{grid-column:auto}.proof-card{min-height:270px;padding:26px}.proof-card>strong{margin-top:34px}.service-icon{margin-bottom:24px}.amenities div{min-height:180px}.amenities .service-sports{font-size:18px}.location-panel dl{margin-bottom:38px}}
@media (max-width:800px){.payment-strip{grid-template-columns:1fr;gap:22px;padding:28px 22px}.payment-methods{grid-template-columns:1fr 1fr;border-top:1px solid rgba(37,33,30,.15)}.payment-methods>span{border-left:0;border-bottom:1px solid rgba(37,33,30,.15);min-height:58px}.payment-methods>span:nth-child(even){border-left:1px solid rgba(37,33,30,.15)}.payment-cash{grid-column:1/-1}.payment-heading strong{font-size:27px}}

/* Fast, bilingual restaurant menu */
.food-menu{background:#f5eee4}.menu-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:10vw;align-items:end;margin-bottom:55px}.menu-heading h2{font:500 clamp(58px,7vw,105px)/.9 "Playfair Display",serif;letter-spacing:-.055em;margin:24px 0 0}.menu-heading h2 em{font-weight:500}.menu-intro p{max-width:470px;line-height:1.7}.menu-tabs{display:flex;gap:8px;overflow-x:auto;padding:0 0 18px;scrollbar-width:thin}.menu-tab{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);padding:11px 16px;font:600 9px "DM Sans",sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.menu-tab[aria-selected="true"]{background:var(--cacao-deep);border-color:var(--cacao-deep);color:#fff}.menu-panel{display:none;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:7vw}.menu-panel.active{display:grid}.menu-panel h3{grid-column:1/-1;font:500 clamp(38px,4vw,58px) "Playfair Display",serif;margin:22px 0 30px}.menu-item{display:grid;grid-template-columns:1fr auto;gap:6px 20px;align-content:start;padding:18px 0;border-top:1px solid var(--line)}.menu-item h4{font:600 15px "DM Sans",sans-serif;margin:0}.menu-item strong{font:500 15px "DM Sans",sans-serif;white-space:nowrap}.menu-item p{grid-column:1/-1;margin:0;color:#6d6259;font-size:12px;line-height:1.55}.menu-item.featured h4::before{content:"★";color:#d2a22d;margin-right:7px}.menu-tax{margin:38px 0 0;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#74685e}.menu-panel[hidden]{display:none}
.menu-panel:focus{outline:none}
@media (max-width:800px){.menu-heading{grid-template-columns:1fr;gap:25px;margin-bottom:38px}.menu-heading h2{font-size:56px}.menu-panel.active{grid-template-columns:1fr}.menu-panel h3{font-size:42px;margin-bottom:18px}.menu-tabs{margin-right:-22px}.menu-item{padding:16px 0}.menu-item h4,.menu-item strong{font-size:14px}}
