.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:TT Norms Pro;src:url(/fonts/TTNormsProVariable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:TT Norms Pro;src:url(/fonts/TTNormsPro-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:TT Norms Pro;src:url(/fonts/TTNormsPro-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Variable.woff2)format("woff2");font-weight:300 700;font-style:normal;font-display:swap}:root{--color-bg:#f7f3ea;--color-bg-dark:#14241e;--color-bg-card:#23302b;--color-text:#1c2d1d;--color-text-light:#f7f3ea;--color-accent:#ffd0a2;--color-accent-hover:#bf8247;--color-secondary:#666;--color-teal:#024244;--color-border:#cdcdcd;--color-input-bg:#fff;--color-input-border:#cdcdcd;--font-heading:"TT Norms Pro", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--header-height:0px;--section-padding:48px 20px;--content-max:1200px;--content-padding:20px;--radius:4px;--radius-lg:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7}img{max-width:100%;height:auto;display:block}a{color:var(--color-teal);text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-variation-settings:"slnt" 0;font-weight:400;line-height:1.2}.skip-link{z-index:9999;background:var(--color-teal);color:var(--color-text-light);padding:8px 16px;font-weight:600;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}:focus-visible{outline:2px solid var(--color-accent-hover);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-reveal]{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(24px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}[data-reveal].no-transition{transition:none}.site-header{z-index:1000;pointer-events:none;justify-content:flex-end;align-items:center;padding:16px;display:flex;position:fixed;top:0;left:0;right:0}.site-header>*{pointer-events:auto}.site-logo{transition:opacity .3s}.site-logo.is-hidden{opacity:0;pointer-events:none}.site-logo img{filter:drop-shadow(0 1px 3px #0006);width:auto;height:48px}.menu-toggle{-webkit-backdrop-filter:blur(8px);border-radius:var(--radius);cursor:pointer;background:#14241ebf;border:none;flex-direction:column;gap:5px;padding:14px;transition:background .25s;display:flex}.menu-toggle:hover{background:#14241ee6}.hamburger-line{background:var(--color-accent);width:24px;height:2px;transition:transform .25s,opacity .25s;display:block}.off-canvas-overlay{z-index:1001;opacity:0;visibility:hidden;background:#0009;position:fixed;inset:0}body.transitions-ready .off-canvas-overlay,body.transitions-ready .off-canvas-menu{transition:opacity .35s,visibility .35s,transform .35s}.off-canvas-overlay.is-visible{opacity:1;visibility:visible}.off-canvas-menu{background:var(--color-bg-dark);z-index:1002;flex-direction:column;width:320px;max-width:85vw;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.off-canvas-menu.is-open{transform:translate(0)}.off-canvas-close{width:48px;height:48px;color:var(--color-text-light);cursor:pointer;opacity:.7;z-index:1;background:0 0;border:none;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:absolute;top:16px;right:16px}.off-canvas-close:hover{opacity:1}.off-canvas-close svg{width:24px;height:24px}.off-canvas-logo{margin-bottom:32px;display:block}.off-canvas-logo img{opacity:.8;width:auto;height:64px}.off-canvas-inner{flex-direction:column;justify-content:space-between;height:100%;padding:80px 40px 40px;display:flex}.off-canvas-nav{list-style:none}.off-canvas-nav li{margin-bottom:20px}.off-canvas-nav a{font-family:var(--font-heading);letter-spacing:.08em;color:var(--color-text-light);font-variation-settings:"slnt" 0;font-size:1.25rem;font-weight:600;text-decoration:none;transition:color .25s}.off-canvas-nav a:hover{color:var(--color-accent)}.off-canvas-footer{justify-content:space-between;align-items:center;display:flex}.lang-switch{font-family:var(--font-heading);color:var(--color-text-light);font-variation-settings:"slnt" 0;align-items:center;gap:8px;font-size:1rem;font-weight:600;display:flex}.lang-active{color:var(--color-accent)}.lang-sep{color:var(--color-secondary)}.lang-switch a{color:var(--color-secondary);text-decoration:none;transition:color .25s}.lang-switch a:hover{color:var(--color-text-light)}body.menu-open{overflow:hidden}.hero{min-height:100svh;color:var(--color-text-light);padding:0 var(--content-padding) 64px;align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero-bg{object-fit:cover;object-position:40% center;z-index:0;width:100%;height:100%;position:absolute;inset:0}@media (width>=768px){.hero-bg{object-position:center center}}.hero:after{content:"";z-index:1;background:linear-gradient(#14241e1a 0%,#14241e33 40%,#14241eb3 80%,#14241ed9 100%);position:absolute;inset:0}.hero-content{z-index:2;max-width:720px;position:relative}.hero-label{letter-spacing:.2em;text-transform:uppercase;color:var(--color-accent);margin-bottom:16px;font-size:1rem;font-weight:600}.hero h1{margin-bottom:16px;font-size:clamp(2.75rem,7vw,5rem);font-weight:500;line-height:1.05}.hero h1 em{color:var(--color-accent);font-variation-settings:"slnt" 0;font-style:normal;font-weight:600}.hero-subtitle{color:#f7f3eab3;max-width:480px;margin-bottom:32px;font-size:clamp(1rem,2vw,1.15rem);font-weight:400;line-height:1.6}.scroll-indicator{z-index:3;opacity:0;flex-direction:column;align-items:center;gap:10px;transition:opacity .5s;display:none;position:absolute;bottom:28px;left:50%;translate:-50%}@media (width>=768px){.scroll-indicator{display:flex}}.scroll-indicator.is-visible{opacity:1}.scroll-indicator-text{letter-spacing:.3em;text-transform:uppercase;color:#f7f3ea80;font-size:.7rem;font-weight:600}.scroll-indicator-line{background:#f7f3ea66;width:1px;height:50px;animation:2s ease-in-out infinite scrollLine}@keyframes scrollLine{0%{transform-origin:top;transform:scaleY(0)}50%{transform-origin:top;transform:scaleY(1)}51%{transform-origin:bottom;transform:scaleY(1)}to{transform-origin:bottom;transform:scaleY(0)}}.hero--short{min-height:50svh}.section{padding:var(--section-padding)}.section-inner{max-width:var(--content-max);margin:0 auto}.section--dark{background:var(--color-bg-dark);color:var(--color-text-light)}.contact-page{padding-top:100px;padding-bottom:32px}body:has(.contact-page){background:var(--color-bg-dark);flex-direction:column;min-height:100svh;display:flex}body:has(.contact-page)>main{flex-direction:column;flex:1;display:flex}body:has(.contact-page) .contact-map--full{flex:1}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-hover);margin-bottom:8px;font-size:1rem;font-weight:600}.section--dark .section-label{color:var(--color-accent)}.section-title{max-width:720px;margin-bottom:24px;font-size:clamp(1.75rem,4vw,2.75rem);font-weight:500;line-height:1.15}.section-title em{color:var(--color-accent-hover);font-variation-settings:"slnt" 0;font-style:normal;font-weight:600}.section--dark .section-title em{color:var(--color-accent)}.section-text{color:var(--color-secondary);max-width:720px;font-size:1rem;line-height:1.8}.villa-overview{text-align:left}.section--dark .section-text{color:#f7f3eab3}.split{align-items:center;gap:40px;display:grid}.split-text .btn{width:fit-content;margin:0 auto;display:block}.split--reverse .split-image{order:-1}.split-image img{border-radius:var(--radius-lg);object-fit:cover;width:100%}.splits-stacked{flex-direction:column;gap:40px;display:flex}.villa-cards{gap:16px;display:grid}.villa-card{border-radius:var(--radius-lg);aspect-ratio:3/4;color:var(--color-text-light);align-items:flex-end;text-decoration:none;display:flex;position:relative;overflow:hidden}.villa-card img{object-fit:cover;width:100%;height:100%;transition:transform .5s;position:absolute;inset:0}.villa-card:hover img{transform:scale(1.05)}.villa-card-overlay{z-index:1;background:linear-gradient(#0000,#14241ed9);width:100%;padding:24px;position:relative}.villa-card-name{margin-bottom:4px;font-size:1.25rem;font-weight:700}.villa-card-cta{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-size:1rem;font-weight:600}.location-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px;display:grid}.location-item{text-align:center;padding:20px 12px}.location-image{border:3px solid var(--color-accent);border-radius:50%;width:100px;height:100px;margin:0 auto 12px;overflow:hidden}.location-image img{object-fit:cover;width:100%;height:100%}.location-distance{color:var(--color-accent);margin-bottom:4px;font-size:1.5rem;font-weight:700}.location-label{color:#f7f3eab3;font-size:1rem}.features-grid{flex-direction:column;gap:0;display:flex}.feature-item{border-bottom:1px solid #ffffff12;align-items:baseline;gap:12px;padding:10px 0;font-size:1rem;font-weight:400;line-height:1.5;display:flex}.feature-item:last-child{border-bottom:none}.feature-icon{width:16px;height:16px;color:var(--color-accent);flex-shrink:0;position:relative;top:2px}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.gallery-grid img{border-radius:var(--radius);aspect-ratio:4/3;object-fit:cover;cursor:pointer;width:100%;transition:opacity .25s}.gallery-grid img:hover{opacity:.85}.booking-split{align-items:center;gap:40px;display:grid}.booking-cta{text-align:center}.booking-cta .section-title{max-width:none}.booking-cta .section-text{margin-bottom:24px}.booking-calendar{border-radius:var(--radius-lg);background:#ffffff0a;border:1px solid #ffffff1a;width:100%;max-width:380px;margin:0 auto;padding:18px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-month-label{font-family:var(--font-heading);letter-spacing:.05em;color:var(--color-text-light);font-variation-settings:"slnt" 0;font-size:1rem;font-weight:600}.calendar-nav{color:var(--color-text-light);border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #ffffff26;justify-content:center;align-items:center;width:28px;height:28px;font-size:.7rem;transition:border-color .25s,color .25s;display:flex}.calendar-nav:hover{border-color:var(--color-accent);color:var(--color-accent)}.calendar-month{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-weekday{letter-spacing:.03em;text-transform:uppercase;color:#f7f3ea66;text-align:center;padding:2px 0 6px;font-size:.75rem;font-weight:600}.cal-day{aspect-ratio:1;color:#f7f3eacc;border-radius:2px;justify-content:center;align-items:center;font-size:.8rem;display:flex}.cal-day--empty{visibility:hidden}.cal-day--past{color:#f7f3ea40}.cal-day--available{color:#4ade80;background:#4ade8026}.cal-day--booked{color:#f87171;background:#f8717126}.cal-day--loading{opacity:.2}.cal-day--today{border:1px solid var(--color-accent)}.calendar-legend{justify-content:center;gap:12px;margin-top:10px;display:flex}.legend-item{color:#f7f3ea80;align-items:center;gap:5px;font-size:.75rem;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.legend-dot--available{background:#4ade8066}.legend-dot--booked{background:#f8717166}.lightbox{z-index:2000;opacity:0;visibility:hidden;background:#000000eb;justify-content:center;align-items:center;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0}.lightbox.is-active{opacity:1;visibility:visible}.lightbox img{border-radius:var(--radius);max-width:90vw;max-height:90vh}.lightbox-prev,.lightbox-next{color:#fff;cursor:pointer;opacity:.7;background:0 0;border:none;padding:16px;font-size:2rem;transition:opacity .25s;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-prev:hover,.lightbox-next:hover{opacity:1}.lightbox-prev{left:8px}.lightbox-next{right:8px}.lightbox-close{color:#fff;cursor:pointer;opacity:.7;z-index:1;background:0 0;border:none;justify-content:center;align-items:center;width:48px;height:48px;font-size:2rem;line-height:1;transition:opacity .25s;display:flex;position:absolute;top:16px;right:16px}.lightbox-close:hover{opacity:1}.lightbox-counter{color:#fff9;letter-spacing:.1em;font-size:1rem;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.btn{font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius);cursor:pointer;font-variation-settings:"slnt" 0;border:none;padding:14px 36px;font-size:1rem;font-weight:600;text-decoration:none;transition:background .25s,color .25s;display:inline-block}.btn--primary{background:var(--color-accent);color:var(--color-bg-dark)}.btn--primary:hover{background:var(--color-accent-hover);color:var(--color-text-light)}.btn--outline{color:var(--color-text-light);background:0 0;border:1px solid #ffffff4d}.btn--outline:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn--submit{width:100%}.btn--submit:disabled{opacity:.6;cursor:not-allowed}.contact-info{gap:24px;margin-bottom:48px;display:grid}.contact-info--stacked{flex-direction:column;justify-content:center;gap:20px;margin-bottom:0;display:flex}.contact-info--stacked .contact-info-item{text-align:left}.contact-info--stacked .contact-info-value{font-size:1.25rem;font-weight:600;font-family:var(--font-heading);font-variation-settings:"slnt" 0}.contact-info-item{text-align:center}.contact-info-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin-bottom:4px;font-size:1rem;font-weight:600}.contact-info-value{font-size:1.125rem;font-weight:500}.contact-info-value a{color:inherit;text-decoration:none;transition:color .25s}.contact-info-value a:hover{color:var(--color-accent)}.contact-social-link{align-items:center;gap:8px;display:inline-flex}.contact-social-link svg{flex-shrink:0}.section--dark .contact-form{color:var(--color-text-light)}.form-group{margin-bottom:16px}.form-group label{letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px;font-size:1rem;font-weight:600;display:block}.form-group input,.form-group textarea,.form-group select{width:100%;font-family:var(--font-body);border-radius:var(--radius);color:var(--color-text-light);background:#ffffff14;border:1px solid #ffffff26;padding:12px 16px;font-size:1rem;transition:border-color .25s}.form-group select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='rgba(247,243,234,0.5)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;padding-right:40px}.form-group select option{background:var(--color-bg-dark);color:var(--color-text-light)}.form-group input::placeholder,.form-group textarea::placeholder{color:#ffffff59}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--color-accent);outline:none}.form-group textarea{resize:vertical;min-height:100px}.char-count{color:var(--color-secondary);text-align:right;margin-top:4px;font-size:1rem}.form-feedback{margin-top:16px;font-size:1rem}.form-feedback--success{color:#4ade80}.form-feedback--error{color:#f87171}.legal-content h2{margin-top:40px;margin-bottom:12px;font-size:1.5rem;font-weight:600}.legal-content h2:first-child{margin-top:0}.legal-content p{color:var(--color-secondary);max-width:720px;margin-bottom:12px;font-size:1rem;line-height:1.8}.legal-content a{color:var(--color-teal);text-underline-offset:2px;text-decoration:underline}.legal-content a:hover{color:var(--color-accent-hover)}main>section:last-child:not(:has(.legal-content)){padding-bottom:32px}.site-footer{padding:40px var(--content-padding) 32px;background:var(--color-bg-dark);color:#f7f3ea80;margin-top:-1px}.footer-main{max-width:var(--content-max);margin:0 auto}.footer-top{border-bottom:1px solid #ffffff1a;justify-content:center;align-items:center;margin-bottom:24px;padding-bottom:24px;display:flex}.footer-logo img{opacity:.6;width:auto;height:48px;transition:opacity .25s}.footer-logo:hover img{opacity:.85}.footer-contact{border-bottom:1px solid #ffffff1a;flex-direction:column;align-items:center;gap:8px;margin-bottom:24px;padding-bottom:24px;display:flex}.footer-contact-item a{color:#f7f3ea99;font-size:1rem;text-decoration:none;transition:color .25s}.footer-contact-item a:hover{color:var(--color-accent)}.footer-nav{border-bottom:1px solid #ffffff1a;justify-content:center;gap:32px;margin-bottom:24px;padding-bottom:24px;display:flex}.footer-nav a{color:#f7f3ea99;letter-spacing:.05em;text-transform:uppercase;font-size:.9375rem;text-decoration:none;transition:color .25s}.footer-nav a:hover{color:var(--color-accent)}.footer-bottom{text-align:center;flex-direction:column;align-items:center;gap:6px;font-size:.875rem;display:flex}.footer-copy{margin:0}.footer-copy a{color:#f7f3ea80;text-decoration:none;transition:color .25s}.footer-copy a:hover{color:var(--color-accent)}.footer-legal-link{color:#f7f3ea80;text-decoration:none;transition:color .25s}.footer-legal-link:hover{color:var(--color-accent)}.footer-credit{margin:0}.footer-credit a{color:#f7f3ea80;text-decoration:none;transition:color .25s}.footer-credit a:hover{color:var(--color-accent)}.social-links{gap:16px;display:flex}.social-link{color:#f7f3ea80;justify-content:center;align-items:center;width:40px;height:40px;transition:color .25s;display:flex}.social-link:hover{color:var(--color-accent)}.social-link svg{width:22px;height:22px}.contact-sidebar .section-title{margin-bottom:32px}.contact-layout{gap:32px;display:grid}.contact-map{border-radius:var(--radius-lg);min-height:350px;overflow:hidden}.contact-map iframe{border-radius:var(--radius-lg);border:0;width:100%;height:100%;min-height:350px}.contact-map--full{border-radius:0;height:250px;min-height:200px}.contact-map--full iframe{border-radius:0;height:100%;min-height:200px}@media (width>=480px){.features-grid{grid-template-columns:repeat(2,1fr);column-gap:40px;display:grid}.gallery-grid,.location-grid,.contact-info{grid-template-columns:repeat(3,1fr)}.contact-info--stacked{grid-template-columns:1fr}}@media (width>=768px){:root{--section-padding:80px 40px;--content-padding:40px}.footer-contact{flex-direction:row;justify-content:center;gap:32px}.footer-bottom{flex-direction:row;justify-content:center;gap:24px}.booking-split{grid-template-columns:1fr 1fr}.booking-cta{text-align:left}.split{grid-template-columns:1fr 1fr}.split-text .btn{width:auto;margin:0;display:inline-block}.split--reverse .split-text{order:1}.split--reverse .split-image{order:2}.villa-cards{grid-template-columns:repeat(2,1fr)}.features-grid{grid-template-columns:repeat(2,1fr);column-gap:48px}.gallery-grid{grid-template-columns:repeat(3,1fr)}.gallery-grid img:first-child{aspect-ratio:auto;grid-area:span 2/span 2;height:100%}.contact-layout{grid-template-columns:1fr 1fr;align-items:start}.contact-map--full{height:250px}}@media (width>=1024px){:root{--section-padding:100px 60px;--content-padding:60px}.villa-cards{grid-template-columns:repeat(4,1fr)}.features-grid{grid-template-columns:repeat(2,1fr);column-gap:60px}.gallery-grid{grid-template-columns:repeat(4,1fr)}.location-grid{grid-template-columns:repeat(6,1fr)}.villa-cards--listing{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.villa-cards--listing .villa-card{width:calc(33.3333% - 13.3333px)}}@media (width>=1440px){:root{--content-padding:80px}}
