:root{--bg:#fffaf1;--surface:rgba(255, 253, 248, 0.9);--surface-strong:#ffffff;--ink:#183127;--muted:#587064;--pine:#2f6b4f;--pine-soft:#4a8a68;--sand:#d0b26f;--airbnb:#ff385c;--vrbo:#1c3c96;--booking:#003580;--line:rgba(47, 107, 79, 0.14);--shadow:0 22px 60px rgba(47, 107, 79, 0.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Avenir Next","Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at top left,rgba(235,210,150,.2),transparent 28%),linear-gradient(180deg,#fff 0,var(--bg) 100%)}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}.hero{position:relative;min-height:100svh;padding:1.5rem clamp(1.2rem,2vw,2rem) 2rem;display:flex;flex-direction:column;justify-content:space-between;color:#fffaf3;overflow:hidden}.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(15,31,25,.5) 0,rgba(15,31,25,.2) 40%,rgba(15,31,25,.6) 100%);z-index:1}.hero-copy,.hero-facts,.topbar{position:relative;z-index:2}.topbar{position:absolute;top:1.5rem;right:clamp(1.2rem,2vw,2rem);display:flex;align-items:center;justify-content:flex-end;gap:1rem;z-index:10}.lang-switch{font-family:"Avenir Next","Segoe UI",sans-serif;font-size:.95rem;font-weight:600;color:rgba(255,250,243,.8)}.lang-switch a{padding:0 .5rem;transition:color .2s}.lang-switch a.active,.lang-switch a:hover{color:#fffaf3}.brand{font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif;font-size:1.15rem;letter-spacing:.08em;text-transform:uppercase}.nav-links{display:flex;flex-wrap:wrap;gap:1rem;font-size:.95rem}.nav-links a{opacity:.9}.hero-copy{width:min(100%,72rem);margin-top:auto;margin-right:auto;padding:0 0 1.75rem;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(18rem,0.9fr);gap:1.5rem 2rem;align-items:end;text-align:left}.hero-heading-group{display:grid;gap:.9rem}.eyebrow{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}h1,h2,h3{margin:0;font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif;font-weight:700}h1{font-size:clamp(3.2rem, 8vw, 6.8rem);line-height:.95;max-width:12ch}.hero-text{max-width:32rem;margin:0;font-size:clamp(1.05rem, 2vw, 1.3rem);line-height:1.7;color:rgba(255,250,243,.92)}.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}.button{display:inline-flex;align-items:center;justify-content:center;padding:.95rem 1.35rem;border-radius:999px;font-weight:700;transition:transform .22s ease,background .22s ease,border-color .22s ease}.button:hover,.contact-card:hover,.platform-link:hover{transform:translateY(-2px)}.button-primary{background:#fffaf1;color:var(--pine)}.button-secondary{border:1px solid rgba(255,250,241,.45);background:rgba(255,250,241,.08);backdrop-filter:blur(10px)}.hero-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.fact{padding:1rem 1.15rem;border:1px solid rgba(255,250,241,.18);border-radius:1.2rem;background:rgba(255,250,241,.08);backdrop-filter:blur(12px)}.fact strong{display:block;font-size:1.35rem}.fact span{display:block;margin-top:.2rem;color:rgba(255,250,243,.8)}.section{width:min(1180px,calc(100% - 2.4rem));margin:0 auto;padding:5.5rem 0}.section-heading{max-width:42rem;margin-bottom:2rem}.section-heading h2{font-size:clamp(2.1rem, 4vw, 3.5rem);line-height:1.02;color:var(--pine)}.section-heading .eyebrow{color:var(--pine-soft)}.position-grid,.villa-grid{display:grid;grid-template-columns:1.2fr 0.8fr;gap:1.5rem}.villa-grid{grid-template-columns:1fr;align-items:start}.contacts-box,.gallery-card,.map-card,.mini-card,.position-copy,.room-card,.villa-copy{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.contacts-box,.map-card,.position-copy,.villa-copy{border-radius:1.8rem;padding:1.5rem}.contacts-box p,.gallery-card figcaption,.map-card p,.position-copy p,.room-body p,.villa-copy p{margin:0;line-height:1.7;color:var(--muted)}.mini-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1.2rem}.mini-card{padding:1rem;border-radius:1.2rem}.map-label,.mini-label{display:block;margin-bottom:.4rem;font-size:.8rem;color:var(--pine-soft);text-transform:uppercase;letter-spacing:.12em}.contact-label{display:block;margin-bottom:.4rem;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.map-card{position:relative;overflow:hidden;min-height:360px;padding:0;background:radial-gradient(circle at top right,rgba(255,255,255,.24),transparent 24%),linear-gradient(180deg,rgba(244,239,230,.94),rgba(219,228,220,.94))}.map-card-media{position:absolute;inset:0}.map-card-media iframe{width:100%;height:100%;border:0;transform:none;filter:none}.platform-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.4rem}.platform-link{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;padding:1rem 1.2rem;border-radius:1.2rem;color:#fff;font-weight:800;letter-spacing:.01em;box-shadow:var(--shadow);transition:transform .22s ease}.platform-link img{width:1.5rem;height:1.5rem;border-radius:.35rem;background:#fff}.platform-link.airbnb{background:linear-gradient(135deg,#ff5b79 0,var(--airbnb) 100%)}.platform-link.vrbo{background:linear-gradient(135deg,#2857d8 0,var(--vrbo) 100%)}.platform-link.booking{background:linear-gradient(135deg,#004cb8 0,var(--booking) 100%)}.platform-note,.room-note{margin:1rem 0 0;color:var(--muted);line-height:1.7}.reviews-intro,.reviews-note{margin:0;color:var(--muted);line-height:1.7}.review-source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.review-source-card{display:flex;flex-direction:column;gap:.95rem;padding:1.3rem;border:1px solid var(--line);border-radius:1.55rem;background:radial-gradient(circle at top right,rgba(255,255,255,.9),transparent 36%),linear-gradient(180deg,rgba(255,253,248,.96),rgba(249,244,236,.96));box-shadow:var(--shadow)}.review-source-card .review-source-button{margin-top:auto}.review-source-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.review-source-score{font-family:"Iowan Old Style","Palatino Linotype",Georgia,serif;font-size:clamp(1.45rem, 3vw, 2rem);line-height:1}.review-source-card--vrbo .review-source-score{color:var(--vrbo)}.review-source-card--airbnb .review-source-score{color:var(--airbnb)}.review-source-card--booking .review-source-score{color:var(--booking)}.review-source-score--pending{font-size:1.15rem;letter-spacing:.04em;text-transform:uppercase}.review-source-copy{margin:0;color:var(--muted);line-height:1.65}.review-chip-row{display:flex;flex-wrap:wrap;gap:.55rem;min-height:4.8rem;align-content:flex-start}.review-chip{display:inline-flex;align-items:center;padding:.48rem .72rem;border-radius:999px;background:rgba(31,68,55,.08);color:var(--pine);font-size:.88rem;font-weight:700}.review-site{display:inline-flex;align-items:center;gap:.55rem;width:fit-content;padding:.45rem .72rem;border-radius:999px;font-size:.84rem;font-weight:800;letter-spacing:.03em}.review-site img{width:1.1rem;height:1.1rem;border-radius:.3rem;background:#fff;flex:0 0 auto}.review-site--vrbo{background:rgba(28,60,150,.1);color:var(--vrbo)}.review-site--airbnb{background:rgba(255,56,92,.1);color:var(--airbnb)}.review-site--booking{background:rgba(0,53,128,.1);color:var(--booking)}.reviews-carousel{margin-top:1.1rem;padding:1.35rem;border:1px solid var(--line);border-radius:1.85rem;background:radial-gradient(circle at top left,rgba(208,178,111,.12),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.92),rgba(250,244,234,.92));box-shadow:var(--shadow)}.reviews-carousel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.reviews-carousel-kicker{margin:0 0 .35rem;color:var(--pine-soft);font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.reviews-carousel-head h3{font-size:1.5rem;color:var(--pine)}.reviews-carousel-controls{display:flex;gap:.55rem}.review-carousel-button{display:inline-flex;align-items:center;justify-content:center;width:2.85rem;height:2.85rem;padding:0;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.95);color:var(--pine);box-shadow:0 18px 36px rgba(24,35,30,.1);cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.review-carousel-button:hover:not(:disabled){transform:translateY(-2px);background:#fff;border-color:rgba(31,68,55,.18)}.review-carousel-button:disabled{opacity:.45;cursor:default}.reviews-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2rem)/ 3);gap:1rem;overflow-x:auto;padding-bottom:.35rem;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}.reviews-track::-webkit-scrollbar{display:none}.review-card{display:grid;gap:.9rem;min-height:100%;padding:1.2rem;border:1px solid rgba(31,68,55,.12);border-radius:1.45rem;background:rgba(255,255,255,.96);box-shadow:0 18px 36px rgba(24,35,30,.08);scroll-snap-align:start}.review-card-top{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.review-score{display:inline-flex;align-items:center;justify-content:center;padding:.42rem .72rem;border-radius:999px;background:rgba(31,68,55,.08);color:var(--pine);font-size:.92rem;font-weight:800}.review-date{margin:0;color:var(--pine-soft);font-size:.82rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.review-quote{margin:0;color:var(--ink);font-size:1rem;line-height:1.7}.review-card-meta{display:grid;gap:.2rem;margin-top:auto}.review-card-meta strong{color:var(--pine);font-size:1rem}.review-card-meta span{color:var(--muted);font-size:.92rem}.reviews-archive{margin-top:1.2rem;padding:1.35rem;border:1px solid var(--line);border-radius:1.85rem;background:radial-gradient(circle at top left,rgba(208,178,111,.12),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.94),rgba(250,244,234,.94));box-shadow:var(--shadow)}.reviews-archive-head{margin-bottom:1rem}.reviews-archive-head h3{font-size:1.5rem;color:var(--pine)}.reviews-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.review-entry{display:flex;flex-direction:column;gap:.65rem;padding:1rem;border:1px solid rgba(31,68,55,.12);border-radius:1.25rem;background:rgba(255,255,255,.96);box-shadow:0 18px 36px rgba(24,35,30,.08);align-items:stretch}.review-entry-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.review-entry h3{margin:0;font-size:1.05rem;color:var(--pine);min-height:1.35em}.review-title{margin:-.15rem 0 0;font-size:.92rem;font-weight:700;color:var(--ink);min-height:1.35em}.review-title--placeholder{visibility:hidden}.review-meta-line{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}.review-meta-stack{display:grid;gap:.2rem;align-content:start;margin-top:-.05rem}.review-entry--airbnb .review-meta-stack{min-height:1.5rem}.review-entry--vrbo .review-meta-stack{min-height:1.5rem}.review-body{display:grid;gap:.6rem;align-content:start;margin-top:0}.review-body p{margin:0;color:var(--ink);font-size:.96rem;line-height:1.62}.reviews-track--entries{grid-auto-columns:min(27rem,calc(100% - 5rem));align-items:stretch}.reviews-track--entries .review-entry{min-height:21.5rem;height:100%;scroll-snap-align:start}.review-body.is-collapsed{position:relative;max-height:8.75rem;overflow:hidden}.review-body.is-collapsed::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4.5rem;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.98));pointer-events:none}.review-entry-actions{display:flex;justify-content:flex-start;margin-top:auto;padding-top:.15rem}.review-expand-button{display:inline-flex;align-items:center;justify-content:center;padding:.62rem .9rem;border:1px solid rgba(31,68,55,.12);border-radius:999px;background:rgba(31,68,55,.08);color:var(--pine);font-size:.88rem;font-weight:800;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.review-expand-button:hover{transform:translateY(-1px);background:rgba(31,68,55,.12);border-color:rgba(31,68,55,.2)}.has-review-modal{overflow:hidden}.review-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:1rem;background:rgba(17,24,21,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.review-modal[hidden]{display:none}.review-modal-panel{width:min(52rem,100%);max-height:calc(100vh - 2rem);overflow:auto;padding:1rem;border:1px solid rgba(255,250,241,.4);border-radius:1.7rem;background:radial-gradient(circle at top right,rgba(255,255,255,.9),transparent 32%),linear-gradient(180deg,rgba(255,253,248,.98),rgba(247,241,232,.98));box-shadow:0 28px 70px rgba(24,35,30,.22)}.review-modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.review-modal-head h3{margin:0;color:var(--pine);font-size:1.35rem}.review-modal-close{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;padding:0;border:1px solid rgba(31,68,55,.16);border-radius:999px;background:rgba(255,255,255,.96);color:var(--pine);font-size:1rem;font-weight:800;cursor:pointer}.review-modal-content .review-entry{min-height:auto;box-shadow:none}.review-modal-content .review-body{max-height:none!important;overflow:visible!important}.review-modal-content .review-body::after,.review-modal-content .review-entry-actions{display:none!important}.reviews-dots{display:flex;align-items:center;justify-content:center;gap:.45rem;margin-top:1rem}.review-dot{width:.68rem;height:.68rem;padding:0;border:0;border-radius:999px;background:rgba(47,107,79,.22);cursor:pointer;transition:transform .2s ease,background .2s ease}.review-dot.is-active{background:var(--pine);transform:scale(1.16)}.image-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.villa-photo-card{overflow:hidden;border:1px solid var(--line);border-radius:1.5rem;background:var(--surface);box-shadow:var(--shadow)}.image-stack img{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover}.villa-photo-card figcaption{padding:.95rem 1rem 1.05rem;color:var(--muted);line-height:1.5}.villa-intro{max-width:52rem;margin-bottom:1.35rem}.amenities-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.amenity-panel{padding:1.2rem 1.15rem;border-radius:1.45rem;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,251,245,.94),rgba(248,242,233,.9));box-shadow:0 18px 40px rgba(43,55,49,.06)}.amenity-panel h3{margin-bottom:1rem;font-size:1.12rem;color:var(--pine)}.amenity-list{display:grid;gap:.8rem;margin:0;padding:0;list-style:none}.amenity-item{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;color:var(--ink);line-height:1.55}.amenity-icon{width:2.35rem;height:2.35rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.9rem;border:1px solid rgba(31,68,55,.12);background:radial-gradient(circle at top left,rgba(255,255,255,.92),rgba(255,255,255,0)),rgba(31,68,55,.08);color:var(--pine);flex:0 0 auto;margin-top:.1rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}.amenity-icon svg{width:1.26rem;height:1.26rem;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.amenity-icon img{width:1.34rem;height:1.34rem;display:block}.contact-grid,.floorplan-card,.gallery-grid,.rooms-grid{display:grid;gap:1rem}.rooms-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.room-card{overflow:hidden;border-radius:1.6rem}.room-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.room-body{padding:1.2rem}.room-body h3{font-size:1.35rem;color:var(--pine)}.room-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.room-meta span{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem;border-radius:999px;background:rgba(31,68,55,.08);color:var(--pine);font-size:.92rem;font-weight:700}.room-meta svg{width:.95rem;height:.95rem;fill:currentColor;flex:0 0 auto}.floorplan-card{padding:0;border:0;border-radius:0;background:0 0;box-shadow:none}.floorplan-note{margin:0 0 .9rem;color:var(--muted);line-height:1.6}.floorplan-frame{position:relative;isolation:isolate;overflow:visible;padding:clamp(2rem,4vw,3.5rem)}.floorplan-map{position:relative;width:min(88%,72rem);margin:0 auto}.floorplan-map>img{width:100%;height:auto;border-radius:1rem}.floorplan-hotspot{position:absolute;transform:translate(-50%,-50%);z-index:2}.floorplan-hotspot::after{content:"";position:absolute}.floorplan-hotspot.active,.floorplan-hotspot.is-positioning,.floorplan-hotspot:focus-within,.floorplan-hotspot:hover{z-index:20}.floorplan-hotspot--outer{z-index:12}.floorplan-point{position:relative;width:1.9rem;height:1.9rem;padding:0;border:1px solid rgba(255,250,241,.72);border-radius:999px;background:rgba(255,250,241,.2);backdrop-filter:blur(14px);box-shadow:0 0 0 8px rgba(255,250,241,.32),0 18px 36px rgba(17,17,17,.18);cursor:pointer;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.floorplan-point::after,.floorplan-point::before{content:"";position:absolute;inset:50%;border-radius:999px;transform:translate(-50%,-50%)}.floorplan-point::before{width:.6rem;height:.6rem;background:#111;box-shadow:0 0 0 1px rgba(17,17,17,.08)}.floorplan-point::after{width:100%;height:100%;border:1px solid rgba(255,250,241,.65);opacity:.55}.floorplan-point:hover{transform:scale(1.1);background:rgba(255,250,241,.28);border-color:rgba(255,250,241,.92);box-shadow:0 0 0 12px rgba(255,250,241,.38),0 22px 42px rgba(17,17,17,.22)}.floorplan-preview-card{display:none}.floorplan-popover{position:absolute;z-index:21;--popover-shift-x:0px;--popover-shift-y:0px;width:min(calc(var(--viewer-width,100%) + 2rem),calc(100vw - 3rem));max-width:min(38rem,calc(100vw - 3rem));max-height:calc(100vh - 1.5rem);padding:1rem 1rem 1.1rem;border:1px solid rgba(255,250,241,.7);border-radius:1.35rem;background:rgba(255,250,241,.22);backdrop-filter:blur(20px) saturate(1.15);-webkit-backdrop-filter:blur(20px) saturate(1.15);box-shadow:0 28px 65px rgba(24,35,30,.18),inset 0 1px 0 rgba(255,255,255,.55);opacity:0;overflow:auto;pointer-events:none;transition:opacity .28s ease,transform .42s cubic-bezier(.22, 1, .36, 1),filter .28s ease;filter:blur(10px)}.floorplan-hotspot.align-right .floorplan-popover{left:1.3rem;top:50%;transform:translateY(calc(-50% + var(--popover-shift-y))) translateX(calc(-.9rem + var(--popover-shift-x))) scale(.82);transform-origin:left center}.floorplan-hotspot.align-left .floorplan-popover{right:1.3rem;top:50%;transform:translateY(calc(-50% + var(--popover-shift-y))) translateX(calc(.9rem + var(--popover-shift-x))) scale(.82);transform-origin:right center}.floorplan-hotspot.align-top .floorplan-popover{left:50%;bottom:1.3rem;transform:translateX(calc(-50% + var(--popover-shift-x))) translateY(calc(.9rem + var(--popover-shift-y))) scale(.82);transform-origin:center bottom}.floorplan-hotspot.active .floorplan-popover,.floorplan-hotspot.is-positioning .floorplan-popover,.floorplan-hotspot:focus-within .floorplan-popover,.floorplan-hotspot:hover .floorplan-popover{opacity:1;pointer-events:auto;filter:blur(0)}.floorplan-hotspot.align-left.active .floorplan-popover,.floorplan-hotspot.align-left:focus-within .floorplan-popover,.floorplan-hotspot.align-left:hover .floorplan-popover,.floorplan-hotspot.align-right.active .floorplan-popover,.floorplan-hotspot.align-right:focus-within .floorplan-popover,.floorplan-hotspot.align-right:hover .floorplan-popover{transform:translateY(calc(-50% + var(--popover-shift-y))) translateX(var(--popover-shift-x)) scale(1)}.floorplan-hotspot.align-top.active .floorplan-popover,.floorplan-hotspot.align-top:focus-within .floorplan-popover,.floorplan-hotspot.align-top:hover .floorplan-popover{transform:translateX(calc(-50% + var(--popover-shift-x))) translateY(var(--popover-shift-y)) scale(1)}.floorplan-hotspot.is-positioning .floorplan-photos img.is-visible,.floorplan-hotspot.is-positioning .floorplan-popover{transition:none!important}.floorplan-room{margin:0;display:block;max-width:calc(var(--viewer-width,100%) - 2.4rem);font-size:1.02rem;font-weight:700;color:var(--pine)}.floorplan-popover-head{position:relative;width:min(100%,var(--viewer-width,100%));padding-right:2.2rem;margin-bottom:.8rem}.floorplan-close{position:absolute;top:0;right:0;display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;padding:0;border:1px solid rgba(255,250,241,.7);border-radius:999px;background:rgba(24,35,30,.26);color:#fffaf3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 24px rgba(17,17,17,.14),inset 0 1px 0 rgba(255,255,255,.18);font-size:.95rem;line-height:1;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}.floorplan-close:hover{transform:translateY(-1px);background:rgba(24,35,30,.36);border-color:rgba(255,250,241,.88)}.floorplan-photos{display:flex;justify-content:center;align-items:center;position:relative;width:min(var(--viewer-width,100%),100%);max-width:100%;height:auto;aspect-ratio:var(--viewer-ratio,auto);transition:width .38s cubic-bezier(.22, 1, .36, 1),aspect-ratio .38s cubic-bezier(.22, 1, .36, 1)}.floorplan-photos img{display:none;width:100%;height:auto;max-width:100%;max-height:min(62vh,38rem);object-fit:contain;border-radius:.95rem;box-shadow:0 14px 28px rgba(24,35,30,.12);opacity:0;transform:translateY(18px) scale(.94);transition:opacity .34s ease,transform .42s cubic-bezier(.22, 1, .36, 1)}@media (min-width:721px){.floorplan-photos{width:var(--viewer-width,auto);max-width:none;height:var(--viewer-height,auto);aspect-ratio:auto}.floorplan-photos img{width:100%;height:100%;max-height:none;object-fit:cover}}.floorplan-photos img.is-visible{display:block}.floorplan-hotspot.active .floorplan-photos img.is-visible,.floorplan-hotspot:focus-within .floorplan-photos img.is-visible,.floorplan-hotspot:hover .floorplan-photos img.is-visible{opacity:1;transform:translateY(0) scale(1)}.floorplan-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.8rem}.floorplan-nav[hidden]{display:none}.floorplan-nav-button{display:inline-flex;align-items:center;justify-content:center;min-width:2.6rem;height:2.6rem;padding:0 .9rem;border:1px solid rgba(255,250,241,.72);border-radius:999px;background:rgba(255,250,241,.22);color:var(--pine);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 18px 36px rgba(17,17,17,.12),inset 0 1px 0 rgba(255,255,255,.55);font-size:1rem;font-weight:700;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease}.floorplan-nav-button:hover{transform:translateY(-2px);background:rgba(255,250,241,.34);border-color:rgba(255,250,241,.92)}.floorplan-nav-status{color:var(--muted);font-size:.92rem;font-weight:600}@keyframes floorplanPreviewFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-8px,0)}}@media (min-width:981px){.floorplan-hotspot::after{display:none;pointer-events:auto}.floorplan-hotspot.active::after,.floorplan-hotspot.is-positioning::after,.floorplan-hotspot:focus-within::after,.floorplan-hotspot:hover::after{display:block}.floorplan-hotspot.align-right::after{left:100%;top:50%;width:1.15rem;height:13rem;transform:translateY(-50%)}.floorplan-hotspot.align-left::after{right:100%;top:50%;width:1.15rem;height:13rem;transform:translateY(-50%)}.floorplan-hotspot.align-top::after{left:50%;bottom:100%;width:13rem;height:1.15rem;transform:translateX(-50%)}.floorplan-preview-card{display:block;position:absolute;z-index:1;width:max-content;max-width:9.5rem;padding:0;border:0;background:0 0;pointer-events:none;transition:transform .3s ease,opacity .28s ease,filter .28s ease}.floorplan-hotspot.align-right .floorplan-preview-card{right:calc(100% + .45rem);top:50%;transform:translateY(-50%);transform-origin:right center}.floorplan-hotspot.align-left .floorplan-preview-card{left:calc(100% + .45rem);top:50%;transform:translateY(-50%);transform-origin:left center}.floorplan-hotspot.align-top .floorplan-preview-card{left:50%;top:calc(100% + .45rem);transform:translateX(-50%);transform-origin:center top}.floorplan-hotspot.label-above .floorplan-preview-card{left:50%;top:auto;right:auto;bottom:calc(100% + .45rem);transform:translateX(-50%);transform-origin:center bottom}.floorplan-hotspot.label-below .floorplan-preview-card{left:50%;top:calc(100% + .45rem);right:auto;bottom:auto;transform:translateX(-50%);transform-origin:center top}.floorplan-preview-media{display:none}.floorplan-preview-label{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:1.9rem;padding:.28rem .8rem;border-radius:999px;background:rgba(24,35,30,.32);border:1px solid rgba(255,250,241,.18);color:#fffaf3;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-align:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 12px 24px rgba(17,17,17,.14),inset 0 1px 0 rgba(255,255,255,.14);white-space:nowrap}.floorplan-hotspot.active .floorplan-preview-card,.floorplan-hotspot:focus-within .floorplan-preview-card,.floorplan-hotspot:hover .floorplan-preview-card{opacity:.86;filter:saturate(1.05)}.floorplan-hotspot.align-right.active .floorplan-preview-card,.floorplan-hotspot.align-right:focus-within .floorplan-preview-card,.floorplan-hotspot.align-right:hover .floorplan-preview-card{transform:translateY(-50%) translateX(-.08rem)}.floorplan-hotspot.align-left.active .floorplan-preview-card,.floorplan-hotspot.align-left:focus-within .floorplan-preview-card,.floorplan-hotspot.align-left:hover .floorplan-preview-card{transform:translateY(-50%) translateX(.08rem)}.floorplan-hotspot.align-top.active .floorplan-preview-card,.floorplan-hotspot.align-top:focus-within .floorplan-preview-card,.floorplan-hotspot.align-top:hover .floorplan-preview-card{transform:translateX(-50%) translateY(.08rem)}.floorplan-hotspot.label-above.active .floorplan-preview-card,.floorplan-hotspot.label-above:focus-within .floorplan-preview-card,.floorplan-hotspot.label-above:hover .floorplan-preview-card{transform:translateX(-50%) translateY(-.08rem)}.floorplan-hotspot.label-below.active .floorplan-preview-card,.floorplan-hotspot.label-below:focus-within .floorplan-preview-card,.floorplan-hotspot.label-below:hover .floorplan-preview-card{transform:translateX(-50%) translateY(.08rem)}}.gallery-section.section{width:min(1180px,calc(100% - 2.4rem))}.gallery-grid{display:flex;align-items:flex-start;justify-content:center;gap:clamp(1rem,3vw,3rem);flex-wrap:nowrap;margin-top:3.1rem}.beach-hero-card{overflow:hidden;margin:0 0 1.25rem;border-radius:1.9rem;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.beach-hero-card img{width:100%;height:min(52vw,30rem);object-fit:cover;object-position:center;display:block}.beach-hero-card figcaption{padding:1rem 1.2rem 1.15rem;color:var(--muted);line-height:1.65}.beach-hero-card strong{color:var(--pine)}.gallery-card{border:none;background:0 0;box-shadow:none;margin:0;flex:0 1 auto}.gallery-card img{height:clamp(300px,50vh,520px);width:auto;max-width:100%;object-fit:cover;border-radius:1.2rem;transition:transform .3s ease}.gallery-card img:hover{transform:scale(1.02)}.gallery-card figcaption{padding:1rem 1.1rem 1.2rem}.contacts-section{padding-bottom:2rem}.contacts-box{background:linear-gradient(180deg,rgba(255,250,241,.96),rgba(255,245,230,.96)),radial-gradient(circle at top right,rgba(255,56,92,.08),transparent 24%)}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.4rem}.contact-card{padding:1.1rem 1.15rem;border-radius:1.25rem;border:1px solid var(--line);background:var(--surface-strong);transition:transform .22s ease}.contact-card strong{display:block;font-size:1.08rem}.footer-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.4rem;color:var(--pine);font-weight:700}@media (max-width:980px){.amenities-grid,.contact-grid,.feature-grid,.mini-highlights,.platform-strip,.position-grid,.review-source-grid,.rooms-grid{grid-template-columns:1fr}.reviews-track{grid-auto-columns:calc((100% - 1rem)/ 2)}.reviews-track--entries{grid-auto-columns:min(23rem,calc(100% - 3rem))}.reviews-feed{grid-template-columns:1fr}.gallery-grid{display:flex!important;flex-wrap:nowrap!important;gap:.5rem;overflow-x:auto}.image-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{min-height:auto}.hero-copy{grid-template-columns:1fr;gap:1rem;padding-bottom:1.4rem}}@media (max-width:720px){.topbar{flex-direction:column;align-items:flex-start}.nav-links{gap:.85rem}.hero{min-height:50svh;padding-bottom:0;background-position:center top;background-size:145%}.hero-copy{position:absolute;top:1rem;left:1rem;bottom:1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.85rem;width:auto;margin-top:0;padding-bottom:0}.hero-text{max-width:none;margin-top:auto;margin-bottom:1rem}.hero-facts{display:none}.section{width:min(100% - 1.4rem,1180px);padding:4rem 0}.position-section{padding-top:3rem}.contacts-box,.position-copy,.review-entry,.review-source-card,.reviews-archive,.reviews-carousel,.villa-copy{padding:1.2rem}.amenity-panel{padding:1rem}.amenity-item{gap:.65rem}.amenity-icon{width:2.1rem;height:2.1rem}.map-card{padding:0;min-height:300px}.image-stack{grid-template-columns:1fr}.floorplan-hotspot{width:0;height:0;transform:none}.floorplan-popover{position:fixed;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;width:min(calc(var(--viewer-width,100vw) + 1.5rem),calc(100vw - 1.25rem));max-width:calc(100vw - 1.25rem);max-height:calc(100vh - 1rem);padding:clamp(.75rem,2.8vw,.95rem);border-radius:clamp(1rem,3.4vw,1.25rem);overflow:auto}.floorplan-hotspot.align-left .floorplan-popover,.floorplan-hotspot.align-left.active .floorplan-popover,.floorplan-hotspot.align-left:focus-within .floorplan-popover,.floorplan-hotspot.align-left:hover .floorplan-popover,.floorplan-hotspot.align-right .floorplan-popover,.floorplan-hotspot.align-right.active .floorplan-popover,.floorplan-hotspot.align-right:focus-within .floorplan-popover,.floorplan-hotspot.align-right:hover .floorplan-popover,.floorplan-hotspot.align-top .floorplan-popover,.floorplan-hotspot.align-top.active .floorplan-popover,.floorplan-hotspot.align-top:focus-within .floorplan-popover,.floorplan-hotspot.align-top:hover .floorplan-popover{transform:translateX(calc(-50% + var(--popover-shift-x))) translateY(calc(-50% + var(--popover-shift-y))) scale(1);transform-origin:center center}.floorplan-frame{padding:1.5rem .6rem 2.8rem}.floorplan-map{width:84%}.floorplan-point{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:clamp(1.15rem,4.8vw,1.65rem);height:clamp(1.15rem,4.8vw,1.65rem);box-shadow:0 0 0 clamp(4px,1.8vw,7px) rgba(255,250,241,.32),0 14px 24px rgba(17,17,17,.16)}.floorplan-hotspot.active .floorplan-point,.floorplan-point:hover{transform:translate(-50%,-50%) scale(1.1)}.floorplan-point::before{width:clamp(.4rem,1.8vw,.56rem);height:clamp(.4rem,1.8vw,.56rem)}.floorplan-nav{gap:clamp(.5rem,2vw,.75rem);margin-top:clamp(.65rem,2.4vw,.9rem)}.floorplan-nav-button{min-width:clamp(2.2rem,9vw,2.55rem);height:clamp(2.2rem,9vw,2.55rem);padding:0 clamp(.7rem,2.5vw,.9rem)}.floorplan-nav-status{font-size:clamp(.8rem, 3.1vw, .92rem)}.floorplan-popover-head{position:relative;max-width:min(100%,var(--viewer-width,calc(100vw - 4rem)));padding-right:2rem;margin-bottom:.7rem}.floorplan-room{max-width:none}.floorplan-photos{width:min(var(--viewer-width,100%),calc(100vw - 2.65rem));max-width:calc(100vw - 2.65rem)}.floorplan-photos img{max-height:min(52vh,23rem)}.floorplan-close{top:0;right:0;width:1.75rem;height:1.75rem;font-size:.92rem}.reviews-carousel-head{align-items:flex-start;flex-direction:column}.reviews-track{grid-auto-columns:100%}.reviews-track--entries{grid-auto-columns:100%}.review-modal-panel{width:100%;max-height:calc(100vh - 1.2rem);padding:.85rem}.gallery-grid{flex-direction:column;align-items:center;gap:1rem;overflow-x:visible}.gallery-card{width:100%}.gallery-card img{width:100%!important;height:auto!important;max-height:none!important}.floorplan-preview-card{display:none}}.at-symbol::before{content:"@"}.cin-code{text-align:right;font-size:.7rem;color:var(--muted);opacity:.7;margin-top:.5rem}.cookie-banner{position:fixed;bottom:0;left:0;width:100%;background:var(--surface-strong);padding:1.25rem clamp(1.2rem,2vw,2rem);box-shadow:0 -10px 40px rgba(24,49,39,.08);display:flex;flex-direction:column;gap:1rem;z-index:9999;border-top:1px solid var(--line);transform:translateY(0);transition:transform .4s cubic-bezier(.16, 1, .3, 1),opacity .4s}.cookie-banner[hidden]{display:flex!important;transform:translateY(100%);opacity:0;pointer-events:none}@media (min-width:768px){.cookie-banner{flex-direction:row;align-items:center;justify-content:space-between}}.cookie-banner-content p{margin:0;font-size:.95rem;color:var(--muted);line-height:1.5}.cookie-banner-actions{display:flex;gap:.8rem;flex-shrink:0}.cookie-banner-actions .button{padding:.7rem 1.2rem;font-size:.9rem}