@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=swap";:root{--color-background:#f8f9fa;--color-surface-low:#f3f4f5;--color-surface-lowest:#fff;--color-primary:#005d90;--color-primary-strong:#0077b6;--color-tertiary:#307a8f;--color-text:#191c1d;--color-text-soft:#404850;--color-muted:#707881;--color-white:#fff;--content-max-width:76rem;--font-body:"Plus Jakarta Sans", sans-serif;--font-display:"Playfair Display", serif;color:var(--color-text);background:var(--color-background);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top left, #cde5ffe6, transparent 28%), radial-gradient(circle at 85% 20%, #b2ebff73, transparent 22%), var(--color-background);min-width:320px;min-height:100vh;margin:0}body,button,input,select,textarea{font-family:var(--font-body)}a{color:inherit}img{max-width:100%;display:block}button{cursor:pointer}#root{min-height:100vh}.material-symbols-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-smoothing:antialiased;direction:ltr;font-family:Material Symbols Outlined;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}::selection{color:#001d32;background:#94ccffa6}.app-shell{--ribbon-height:42px;--color-available:#e6f4ea;--color-booked:#fce8e6;overflow:hidden}.glass-panel{-webkit-backdrop-filter:blur(20px);background:#ffffffe6;border:1px solid #ffffff52;box-shadow:0 8px 30px #0077b614}.construction-ribbon{color:#212529;text-align:center;z-index:100;background-color:#ffc107;width:100%;padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;position:fixed;top:0;left:0}.construction-ribbon a{color:#0056b3;font-weight:600}.top-nav{z-index:50;-webkit-backdrop-filter:blur(20px);background:#f8f9fae6;width:100%;position:fixed;inset:0 0 auto;box-shadow:0 8px 30px #0077b614}.top-nav__inner{justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1rem 1.5rem;display:flex}.top-nav__brand{color:var(--color-primary);font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.6rem,3vw,2rem);text-decoration:none}.top-nav__desktop-links{align-items:center;gap:2rem;display:flex}.top-nav__link,.top-nav__mobile-link,.site-footer__links a{color:var(--color-text-soft);letter-spacing:.05em;font-size:.875rem;font-weight:600;text-decoration:none;transition:color .18s,opacity .18s}.top-nav__link:hover,.top-nav__link:focus-visible,.top-nav__mobile-link:hover,.top-nav__mobile-link:focus-visible,.top-nav__mobile-link--active,.site-footer__links a:hover,.site-footer__links a:focus-visible{color:var(--color-primary)}.top-nav__link--active{color:var(--color-primary);border-bottom:2px solid var(--color-primary);padding-bottom:.3rem}.top-nav__cta,.button,.top-nav__mobile-cta{letter-spacing:.05em;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.95rem 1.7rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:transform .18s,box-shadow .18s,background-color .18s,color .18s;display:inline-flex}.top-nav__cta,.button--primary,.top-nav__mobile-cta{background:var(--color-primary);color:var(--color-white);box-shadow:0 10px 24px #005d902e}.top-nav__cta:hover,.top-nav__cta:focus-visible,.button:hover,.button:focus-visible,.top-nav__mobile-cta:hover,.top-nav__mobile-cta:focus-visible{transform:translateY(-1px)}.top-nav__menu-button{min-width:4.5rem;height:3rem;color:var(--color-primary);background:#0077b61a;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 1rem;display:none}.top-nav__menu-label{letter-spacing:.05em;text-transform:uppercase;font-size:.875rem;font-weight:600}.top-nav__mobile-panel{box-sizing:border-box;-webkit-backdrop-filter:blur(20px);background:#f8f9faf5;width:100%;padding:0 1.5rem 1rem;display:none}.hero-section{justify-content:center;align-items:center;min-height:57.5rem;padding:7.5rem 1.5rem 4rem;display:flex;position:relative}.hero-section__background,.hero-section__image,.hero-section__overlay{position:absolute;inset:0}.hero-section__background{overflow:hidden}.hero-section__image{object-fit:cover;width:100%;height:100%}.hero-section__overlay{background:linear-gradient(180deg, #0003, transparent 45%, var(--color-background))}.hero-section__content{z-index:1;text-align:center;border-radius:2rem;width:min(100%,64rem);margin:auto;padding:clamp(2rem,5vw,3rem);position:relative}.hero-section__title,.section__title,.offer-card h2,.site-footer__brand{font-family:var(--font-display);color:var(--color-primary);margin:0}.hero-section__title{font-size:clamp(2.6rem,7vw,4.8rem);line-height:1.04}.hero-section__subtitle{color:var(--color-tertiary);margin-top:.8rem;font-size:clamp(1.8rem,4vw,3rem);display:block}.hero-section__description,.section__description,.feature-card p,.location-item p,.location-nearby li,.booking-form__note,.site-footer__copy{color:var(--color-text-soft)}.hero-section__description{width:min(100%,40rem);margin:1.5rem auto 0;font-size:1.125rem;line-height:1.6}.hero-section__actions{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:2rem;display:flex}.button--secondary{color:var(--color-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff73;border:1px solid #005d903d}.button--surface{background:var(--color-surface-lowest);color:var(--color-primary)}.button--full{width:100%}.section{width:min(100%,78rem);margin:0 auto;padding:5rem 1.5rem}.section--muted{background:var(--color-surface-low);width:100%}.section--muted .location-grid,.section--offer .offer-card{width:min(100%,78rem);margin:0 auto}.section__heading{text-align:center;margin:0 auto 4rem}.section__heading--compact{margin-bottom:2.5rem}.section__title{font-size:clamp(2rem,5vw,3rem);line-height:1.18}.section__title--left{text-align:left;margin-bottom:2rem}.section__description{margin:1rem 0 0;font-size:1.125rem}.features-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:15.625rem;gap:1rem;display:grid}.feature-card{border-radius:1.5rem;padding:2rem;position:relative;overflow:hidden}.feature-card--hero{grid-column:span 8;align-items:flex-end;display:flex}.feature-card--sand{color:#6d614a;background:#efdec0;grid-column:span 4}.feature-card--centered,.feature-card--sand,.feature-card--teal{text-align:center;flex-direction:column;grid-column:span 4;justify-content:center;align-items:center;display:flex}.feature-card--teal{background:var(--color-tertiary);color:var(--color-white)}.feature-card__image,.feature-card__image-overlay{position:absolute;inset:0}.feature-card__image{object-fit:cover;width:100%;height:100%;transition:transform .7s}.feature-card:hover .feature-card__image,.feature-card:focus-within .feature-card__image{transform:scale(1.05)}.feature-card__image-overlay{background:linear-gradient(#0000,#006399e6)}.feature-card__content{z-index:1;position:relative}.feature-card__content--light,.feature-card__content--light p,.feature-card--teal p{color:var(--color-white)}.feature-card__heading{flex-direction:column;align-items:flex-start;gap:.9rem;margin-bottom:.75rem;display:flex}.feature-card h3,.location-item h3,.location-nearby h3,.offer-card h2{margin:0}.feature-card h3{font-size:1.35rem}.feature-card p{margin:.6rem 0 0;line-height:1.6}.feature-card__badge{min-height:2.25rem;color:var(--color-primary);letter-spacing:.08em;text-transform:uppercase;background:#0077b61f;border-radius:999px;justify-content:center;align-items:center;margin-bottom:.75rem;padding:.45rem .85rem;font-size:.78rem;font-weight:700;display:inline-flex}.feature-card__badge--light{color:var(--color-white);background:#ffffff29}.location-grid{grid-template-columns:minmax(0,1fr) minmax(18rem,1fr);align-items:center;gap:4rem;padding:5rem 1.5rem;display:grid}.location-list{gap:1.5rem;display:grid}.location-item{grid-template-columns:auto 1fr;align-items:start;gap:1rem;display:grid}.location-item__icon-wrap{min-height:2.75rem;color:var(--color-primary);letter-spacing:.08em;text-transform:uppercase;background:#0077b61f;border-radius:999px;justify-content:center;align-items:center;padding:0 .9rem;font-size:.72rem;font-weight:700;display:inline-flex}.location-item p{margin:.35rem 0 0;line-height:1.6}.location-nearby{margin-top:2.5rem}.location-nearby h3{color:var(--color-primary);font-size:1.2rem}.location-nearby ul{margin:1rem 0 0;padding-left:1.2rem}.location-nearby li+li{margin-top:.5rem}.location-visual{border-radius:1.5rem;min-height:25rem;overflow:hidden;box-shadow:0 18px 40px #005d9024}.location-visual img,.gallery-item img{object-fit:cover;width:100%;height:100%}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;display:grid}.gallery-item{aspect-ratio:1;cursor:pointer;background:0 0;border:0;border-radius:1.5rem;padding:0;position:relative;overflow:hidden;box-shadow:0 8px 24px #005d9014}.gallery-item__image{object-fit:cover;width:100%;height:100%;transition:transform .7s}.gallery-item__caption{color:var(--color-white);text-align:left;background:linear-gradient(#0000,#000000b8);padding:1rem;font-size:.95rem;position:absolute;inset:auto 0 0}.gallery-item:hover .gallery-item__image,.gallery-item:focus-visible .gallery-item__image{transform:scale(1.05)}.gallery-modal{z-index:120;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.gallery-modal__backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172ab8;position:absolute;inset:0}.gallery-modal__dialog{z-index:1;background:#f8f9faf7;border-radius:1.5rem;gap:1rem;width:min(100%,72rem);max-height:min(90vh,56rem);padding:1.5rem;display:grid;position:relative;box-shadow:0 24px 60px #00000047}.gallery-modal__header,.gallery-modal__footer{justify-content:space-between;align-items:center;gap:1rem;display:flex}.gallery-modal__eyebrow{color:var(--color-primary);letter-spacing:.18em;text-transform:uppercase;margin:0 0 .25rem;font-size:.8rem;font-weight:700}.gallery-modal__title{color:var(--color-text);margin:0;font-size:clamp(1.1rem,2vw,1.35rem)}.gallery-modal__close,.gallery-modal__nav{width:3rem;height:3rem;color:var(--color-primary);background:#005d901a;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.gallery-modal__body{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;display:grid}.gallery-modal__frame{background:#e9ecef;border-radius:1rem;justify-content:center;align-items:center;min-height:24rem;display:flex;overflow:hidden}.gallery-modal__image{object-fit:contain;width:100%;height:100%;max-height:70vh}.gallery-modal__description{color:var(--color-text-soft);margin:0;line-height:1.6}.gallery-modal__counter{color:var(--color-primary);font-size:.95rem;font-weight:700}.section--offer{width:100%;padding:1rem 1.5rem 5rem}.offer-card{background:var(--color-primary);color:var(--color-white);text-align:center;border-radius:2rem;padding:clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden;box-shadow:0 20px 40px #005d904d}.offer-card__pattern{opacity:.1;background-image:radial-gradient(circle at 2px 2px,#fff 1px,#0000 0);background-size:24px 24px;position:absolute;inset:0}.offer-card__content{z-index:1;position:relative}.offer-card__eyebrow{color:#cde5ff;letter-spacing:.2em;text-transform:uppercase;margin-bottom:1rem;font-size:.875rem;font-weight:600;display:block}.offer-card h2{color:var(--color-white);font-size:clamp(2rem,5vw,3rem)}.offer-card p{color:#f3f7ff;margin:.75rem 0 2rem;font-size:1.2rem}.booking-layout{grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr);gap:2rem;display:grid}.booking-panel,.booking-form-card{border-radius:1.5rem;padding:2rem}.booking-form-card{background:var(--color-surface-lowest);border:1px solid #bfc7d14d;box-shadow:0 8px 24px #005d900f}.booking-panel__info{border-left:4px solid var(--color-primary);background:#0077b60d;border-radius:.75rem;margin-bottom:1rem;padding:.75rem 1rem}.booking-panel__min-stay{color:var(--color-primary);font-size:.875rem;font-weight:600}.booking-price-card{background:#f8fafc;border:1px solid #bfc7d14d;border-radius:1rem;margin-top:1.5rem;padding:1.5rem}.booking-price-card h4{color:var(--color-text);margin:0 0 1rem;font-size:1rem}.booking-price-card__row{color:var(--color-text-soft);justify-content:space-between;margin-bottom:.5rem;font-size:.9rem;display:flex}.booking-price-card__total{color:var(--color-primary);border-top:1px dashed #bfc7d180;justify-content:space-between;margin-top:1rem;padding-top:1rem;font-size:1.125rem;font-weight:700;display:flex}.booking-calendar__header,.booking-calendar__legend{justify-content:space-between;align-items:center;display:flex}.booking-calendar__header{margin-bottom:1.25rem}.booking-calendar__header button{width:2.5rem;height:2.5rem;color:var(--color-text-soft);background:#e1e3e4b3;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.booking-calendar__header span{font-weight:600}.booking-calendar__grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;display:grid}.booking-calendar__weekday,.booking-calendar__day{text-align:center;border-radius:.75rem;justify-content:center;align-items:center;min-height:3rem;display:flex}.booking-calendar__weekday{color:var(--color-text-soft);font-size:.75rem;font-weight:600}.booking-calendar__day--empty{visibility:hidden}.booking-calendar__day--booked{background:var(--color-booked);color:var(--color-muted)}.booking-calendar__day--unavailable{color:#adb5bd;background:#f0f2f5}.booking-calendar__day--booked-start{background:linear-gradient(to top right, var(--color-available) 0%, var(--color-available) 49.5%, var(--color-booked) 50.5%, var(--color-booked) 100%);color:var(--color-primary);font-weight:700}.booking-calendar__day--booked-end{background:linear-gradient(to top right, var(--color-booked) 0%, var(--color-booked) 49.5%, var(--color-available) 50.5%, var(--color-available) 100%);color:var(--color-primary);font-weight:700}.booking-calendar__day--available{background:var(--color-available);color:var(--color-primary);font-weight:700}.booking-calendar__day--selected{color:var(--color-primary);background:#c8e6c9}.booking-calendar__day--selected-edge{background:var(--color-primary);color:var(--color-white);box-shadow:0 12px 18px #005d902e}.booking-calendar__legend{border-top:1px solid #bfc7d18c;justify-content:center;gap:2rem;margin-top:1.5rem;padding-top:1.25rem}.booking-calendar__legend-item{color:var(--color-text-soft);align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.booking-calendar__legend-dot{border-radius:999px;width:.75rem;height:.75rem}.booking-calendar__legend-dot--available{background:var(--color-available)}.booking-calendar__legend-dot--booked{background:var(--color-booked)}.booking-form{gap:1rem;display:grid}.booking-form label{gap:.4rem;display:grid}.booking-form label span{color:var(--color-text-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600}.booking-form input,.booking-form select,.booking-form__textarea{background:var(--color-background);width:100%;color:var(--color-text);font:inherit;border:1px solid #bfc7d18c;border-radius:.9rem;padding:.95rem 1rem}.booking-form__textarea{resize:none;border-radius:1.1rem;min-height:7rem}.booking-form input:focus,.booking-form select:focus,.booking-form__textarea:focus{border-color:var(--color-primary);outline:2px solid #0077b638}.booking-form__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.booking-form__note{text-align:center;margin:0;font-size:.75rem}.booking-confirm-modal,.booking-success-modal{z-index:140;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.booking-confirm-modal__backdrop,.booking-success-modal__backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172aad;position:absolute;inset:0}.booking-confirm-modal__dialog,.booking-success-modal__dialog{z-index:1;text-align:center;background:#f8f9faf7;border-radius:1.5rem;gap:1rem;width:min(100%,32rem);padding:2rem;display:grid;position:relative;box-shadow:0 24px 60px #0000003d}.booking-confirm-modal__title,.booking-success-modal__title{color:var(--color-text);margin:0;font-size:1.35rem}.booking-confirm-modal__text,.booking-success-modal__text{color:var(--color-text-soft);margin:0;line-height:1.7}.booking-confirm-modal__list{text-align:left;gap:.7rem;display:grid}.booking-confirm-modal__item{border-bottom:1px solid #bfc7d166;justify-content:space-between;gap:1rem;padding:.7rem 0;display:flex}.booking-confirm-modal__item span{color:var(--color-text-soft);font-size:.9rem}.booking-confirm-modal__item strong{color:var(--color-text);text-align:right;font-size:.9rem}.booking-confirm-modal__actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.booking-success-modal__icon{width:3.25rem;height:3.25rem;color:var(--color-primary);background:#0077b61f;border-radius:999px;justify-content:center;align-items:center;margin:0 auto;font-size:1.45rem;font-weight:700;display:inline-flex}.legal-page{width:min(100%,78rem);color:var(--color-text);margin:0 auto;padding:8rem 1.5rem 5rem}.legal-page h1{font-family:var(--font-display);color:var(--color-primary);margin-bottom:2rem;font-size:clamp(2rem,5vw,3rem)}.legal-page p,.legal-page li{color:var(--color-text-soft);margin-bottom:1rem;line-height:1.7}.legal-page__back-button{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;margin-bottom:2rem;font-size:1rem;font-weight:600;display:inline-flex}.site-footer{background:var(--color-surface-lowest);border-top:1px solid #bfc7d173}.site-footer__inner{justify-content:space-between;align-items:center;gap:1.5rem;width:min(100%,78rem);margin:0 auto;padding:5rem 1.5rem;display:flex}.site-footer__brand-block{gap:.5rem;display:grid}.site-footer__brand{font-size:2rem}.site-footer__copy{max-width:40rem;line-height:1.6}.site-footer__links-container{flex-direction:column;align-items:flex-end;gap:1.5rem;display:flex}.site-footer__links{flex-wrap:wrap;justify-content:flex-end;gap:1.5rem;display:flex}.site-footer__legal-links{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.site-footer__legal-links button{cursor:pointer;background:0 0;border:none;padding:0}.site-footer__links a{color:var(--color-text-soft);text-decoration:none}.site-footer__links a:hover,.site-footer__links a:focus-visible{color:var(--color-primary)}@media (width<=960px){.features-grid,.booking-layout,.location-grid,.gallery-grid,.site-footer__inner{grid-template-columns:1fr}.feature-card--hero,.feature-card--sand,.feature-card--centered,.feature-card--teal{grid-column:span 12}.features-grid{grid-auto-rows:minmax(14rem,auto)}.site-footer__inner{justify-content:initial;display:grid}.site-footer__links-container,.site-footer__legal-links{align-items:flex-start}.site-footer__links{justify-content:flex-start}}@media (width<=760px){.top-nav{padding:0}.top-nav__desktop-links,.top-nav__cta{display:none}.top-nav__menu-button,.top-nav__mobile-panel{display:flex}.top-nav__mobile-panel{flex-direction:column;gap:.85rem;padding:.5rem 1rem 1rem}.hero-section{min-height:44rem;padding-inline:1rem}.section,.section--offer,.location-grid,.site-footer__inner{padding-inline:1rem}.features-grid{grid-template-columns:1fr}.feature-card--hero,.feature-card--sand,.feature-card--centered,.feature-card--teal{grid-column:span 1}.booking-form__row{grid-template-columns:1fr}}
