*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{font-size:100%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body,'Montserrat',sans-serif);line-height:1.6;color:var(--color-text-main);background-color:var(--color-bg-main);overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading,'Playfair Display',serif);color:var(--color-text-main);font-weight:600;letter-spacing:.02em;margin-bottom:20px}.site-header.header-transparent{position:absolute;top:0;left:0;width:100%;z-index:1000;padding:0;color:#fff;transition:background-color 0.3s ease}.site-header__inner{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.25rem}.site-branding__link{font-size:1.4rem;font-weight:700;letter-spacing:.02em;color:#fff}.custom-logo{max-height:50px;width:auto}.site-branding__link--favicon{display:inline-flex;align-items:center}.site-favicon-logo{height:40px;width:40px;object-fit:contain;display:block}.header-right{display:flex;align-items:center;gap:16px}.main-navigation ul{display:flex;gap:2rem}.main-navigation a{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.95rem;font-weight:500;color:#fff;text-transform:uppercase;letter-spacing:.05em;position:relative;transition:opacity 0.2s ease}.main-navigation a:hover,.main-navigation a:focus{color:var(--color-primary);opacity:1}.main-navigation a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:2px;background-color:var(--color-primary);transition:width 0.3s ease}.main-navigation a:hover::after,.main-navigation a:focus::after{width:100%}.mobile-menu-toggle{background:#fff0;border:none;cursor:pointer;padding:0;z-index:1100}.mobile-menu-toggle span{display:block;width:30px;height:3px;background-color:#fff;margin:6px 0;transition:transform 0.3s ease,opacity 0.3s ease}.mobile-menu-toggle.is-active span:nth-child(1){transform:translateY(9px) rotate(45deg)}.mobile-menu-toggle.is-active span:nth-child(2){opacity:0}.mobile-menu-toggle.is-active span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}#site-navigation{display:none}#site-navigation.is-active{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100vh;background:rgb(0 0 0 / .95);padding:20px;z-index:1050}#site-navigation.is-active ul{display:flex;flex-direction:column;align-items:center;gap:1.5rem}#site-navigation.is-active li{display:flex;align-items:center;justify-content:center}#site-navigation.is-active a{font-size:1.25rem;color:#fff;text-decoration:none;text-align:center;line-height:1.4}.hero-banner{position:relative;width:100%;height:100vh;overflow:hidden;isolation:isolate}.hero-overlay{position:absolute;inset:0;background-color:rgb(0 0 0 / .4);display:flex;align-items:center;justify-content:center}.hero-content{text-align:center;color:#fff;padding:0 1.25rem;max-width:800px}.hero-subtitle{font-family:var(--font-body,'Montserrat',sans-serif);font-size:clamp(0.85rem, 2vw, 1.1rem);font-weight:300;text-transform:uppercase;letter-spacing:.2em;color:var(--hero-subtitle-color);margin-bottom:1rem}.hero-content h1{font-size:clamp(2rem, 6vw, 4.5rem);font-weight:700;line-height:1.15;letter-spacing:.02em;text-transform:uppercase;color:var(--hero-title-color);margin-bottom:2rem}.hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.hero-buttons .btn-primary{background-color:var(--hero-btn1-bg);color:var(--hero-btn1-color)}.hero-buttons .btn-primary:hover,.hero-buttons .btn-primary:focus{filter:brightness(.82);color:var(--hero-btn1-color)}.btn-outline{display:inline-block;padding:12px 28px;border:2px solid var(--hero-btn2-border);color:var(--hero-btn2-color);background:#fff0;border-radius:0;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.95rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:background-color 0.3s ease,color 0.3s ease,filter 0.3s ease}.btn-outline:hover,.btn-outline:focus{background-color:rgb(255 255 255 / .15);filter:brightness(1.2)}.hero-scroll-arrow{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:10;animation:hero-bounce 2s ease infinite}.hero-scroll-arrow svg{display:block;opacity:.8;transition:opacity 0.2s ease}.hero-scroll-arrow:hover svg{opacity:1}@keyframes hero-bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(10px)}}.container{max-width:1100px;margin:0 auto;padding:0 1.25rem}.section-tag{display:inline-block;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.25em;color:var(--color-primary);margin-bottom:.75rem}.section-line{width:60px;height:2px;background-color:var(--color-primary);margin-bottom:1.5rem}.section-title{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(1.75rem, 4vw, 2.75rem);font-weight:600;line-height:1.2;color:var(--color-text-main);margin-bottom:1.25rem}.section-text{font-family:var(--font-body,'Montserrat',sans-serif);font-size:1rem;font-weight:300;line-height:1.8;color:var(--color-text-muted);max-width:640px}.section-welcome{padding:6rem 0;text-align:center}.section-welcome .container{display:flex;flex-direction:column;align-items:center}.section-welcome .section-text{text-align:center}.section-features{padding:0;background-color:var(--color-secondary)}.services-grid-wrapper{display:flex;flex-direction:row;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%)}.service-col{flex:1;display:flex;flex-direction:column}.service-text-box{height:30vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2rem;background-color:inherit}.service-text-box>i{margin-bottom:1.5rem}.service-text-box .feature-text{font-size:1.1rem}.service-image-box{height:50vh;overflow:hidden}.service-image-box img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.6s ease}.service-image-box:hover img{transform:scale(1.06)}.service-badge{display:none}.feature-title{font-family:var(--font-heading,'Playfair Display',serif);font-size:1.35rem;font-weight:600;color:var(--color-text-main);margin-bottom:1rem}.feature-text{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.9rem;font-weight:300;line-height:1.7;color:var(--color-text-muted)}@media (max-width:768px){.services-grid-wrapper{flex-direction:column}.service-col{flex-direction:column}.service-text-box{height:33vh}.service-image-box{height:33vh}}.section-gallery{padding:0;overflow:hidden}.gallery-strip{display:grid;grid-template-columns:1fr;gap:4px}.gallery-item{position:relative;overflow:hidden;aspect-ratio:4 / 3}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s ease}.gallery-item:hover img{transform:scale(1.08)}.section-menu-preview{padding:3rem 0 2rem;overflow:hidden;max-height:100vh;display:flex;flex-direction:column;justify-content:center}.menu-preview-layout{position:relative;max-width:1100px;margin:0 auto;padding:0 1.25rem}@media (min-width:1024px){.menu-preview-layout{display:flex;align-items:center;gap:4rem}.menu-preview-content{background:none;margin-top:0;padding:0;text-align:left;flex:1}.menu-preview-content .section-line{margin-left:0;margin-right:auto}.menu-preview-image{flex:1}}.menu-carousel{position:relative;width:100%;overflow:hidden}.menu-carousel__track{display:flex;align-items:center;transition:transform 0.6s cubic-bezier(.25,.46,.45,.94)}.menu-carousel__slide{flex:0 0 80%;padding:0 4px;opacity:.4;transform:scale(.92);transition:opacity 0.6s ease,transform 0.6s ease}.menu-carousel__slide.is-active{opacity:1;transform:scale(1)}.menu-carousel__slide img{width:100%;aspect-ratio:21 / 9;object-fit:cover;display:block}.menu-preview-content{position:relative;z-index:2;background:linear-gradient(to top,rgb(255 255 255 / .97) 70%,#fff0 100%);padding:2.5rem 1.25rem 0;margin-top:-4rem;text-align:center}.menu-preview-content .section-title{font-size:clamp(1.4rem, 3.5vw, 2rem)}.menu-preview-content .section-text{font-size:.9rem;margin:0 auto 1.5rem}.menu-preview-content .btn-primary{background:#fff0;color:var(--color-primary);border:2px solid var(--color-primary);transition:background-color 0.3s ease,color 0.3s ease}.menu-preview-content .btn-primary:hover,.menu-preview-content .btn-primary:focus{background-color:color-mix(in srgb,var(--color-primary) 12%,transparent);filter:none;color:var(--color-primary)}.section-carte-texte{min-height:50vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:4rem 1.25rem;background-color:var(--color-bg-main)}.section-carte-texte .section-title{font-size:clamp(1.4rem, 3.5vw, 2rem)}.section-carte-texte .section-text{font-size:.9rem;margin:0 auto 1.5rem;max-width:600px}.section-carte-texte .btn-primary{background:#fff0;color:var(--color-primary);border:2px solid var(--color-primary);transition:background-color 0.3s ease,color 0.3s ease}.section-carte-texte .btn-primary:hover,.section-carte-texte .btn-primary:focus{background-color:color-mix(in srgb,var(--color-primary) 12%,transparent);filter:none;color:var(--color-primary)}.section-beach{position:relative;width:100%;height:100vh;background-size:cover;background-position:center;background-repeat:no-repeat}.beach-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgb(0 0 0 / .6) 0%,rgb(0 0 0 / .1) 60%);display:flex;align-items:flex-end;justify-content:center;padding-bottom:6rem}.beach-content{text-align:center;max-width:700px;padding:0 1.25rem}.beach-content h2{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(2rem, 5vw, 3.25rem);color:#fff;margin-bottom:1rem}.beach-content p{font-family:var(--font-body,'Montserrat',sans-serif);font-size:1rem;font-weight:300;line-height:1.7;color:rgb(255 255 255 / .85);margin-bottom:2rem}.beach-content h2 .line-1,.beach-content h2 .line-2,.cta-content h2 .line-1,.cta-content h2 .line-2{display:inline}.overlay-text-box{background-color:color-mix(in srgb,var(--color-bg-dark) 60%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:3rem;max-width:600px;text-align:center;border:1px solid color-mix(in srgb,var(--color-primary) 30%,transparent);margin:0 auto}@media (max-width:768px){.overlay-text-box{width:90%;padding:1.5rem}.btn-primary,.btn-outline{padding:10px 16px;font-size:.9rem}.btn-large{padding:12px 24px;font-size:.9rem}.hero-buttons .btn-primary,.hero-buttons .btn-outline{padding:10px 20px;font-size:.82rem}.service-text-box{height:auto;padding:2.5rem 1.5rem 1.5rem 1.5rem}.feature-title{font-size:1.15rem}.feature-text{font-size:.85rem}.beach-content h2{font-size:1.5rem}.beach-content p{font-size:.9rem}.cta-content h2{font-size:1.5rem;margin-bottom:1.5rem}.cta-content{padding:3rem 1.25rem}}.menu-preview-image{flex:1}.menu-preview-image img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.section-testimonials{background-color:var(--color-secondary);padding:5rem 1.25rem}.section-testimonials .section-line{background-color:var(--color-primary)}.section-testimonials .section-title{color:#fff;margin-bottom:3rem}.testimonials-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;max-width:1100px;margin:0 auto}.testimonial-card{background:rgb(255 255 255 / .05);border:1px solid rgb(255 255 255 / .1);padding:2rem}.testimonial-stars{display:flex;gap:.15rem;margin-bottom:1rem;color:var(--color-primary)}.testimonial-text{color:rgb(255 255 255 / .7);font-size:.9rem;font-style:italic;line-height:1.7;margin-bottom:1.25rem}.testimonial-name{color:rgb(255 255 255 / .4);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}@media (min-width:768px){.testimonials-grid{grid-template-columns:repeat(3,1fr);gap:2rem}}.section-cta{background-color:var(--color-primary);border-bottom:none}.cta-content{text-align:center;padding:5rem 1.25rem;max-width:800px;margin:0 auto}.cta-content h2{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(1.75rem, 5vw, 3rem);color:#fff;margin-bottom:2.5rem}.cta-content .btn-primary{background:#fff0;color:#fff;border:2px solid #fff}.cta-content .btn-primary:hover,.cta-content .btn-primary:focus{background-color:rgb(255 255 255 / .15);filter:none;color:#fff}.btn-large{padding:16px 40px;font-size:1rem}.fade-up{opacity:0;transform:translateY(40px);transition:opacity 0.7s ease,transform 0.7s ease}.fade-up.is-visible{opacity:1;transform:translateY(0)}.footer-top-separator{width:75%;margin:0 auto 3rem auto;border:none;height:1px;background-color:color-mix(in srgb,var(--color-text-muted) 30%,transparent)}.site-footer-premium{background-color:var(--color-bg-dark);color:rgb(255 255 255 / .7);font-family:var(--font-body,'Montserrat',sans-serif);font-size:.875rem;line-height:1.7}.footer-premium__grid{display:grid;grid-template-columns:1fr;gap:2.5rem;max-width:1200px;margin:0 auto;padding:4rem 1.5rem 3rem}.footer-premium__heading{font-family:var(--font-heading,'Playfair Display',serif);font-size:1.1rem;font-weight:400;color:#fff;letter-spacing:.03em;margin-bottom:1.25rem;position:relative;padding-bottom:.75rem}.footer-premium__heading::after{content:'';position:absolute;bottom:0;left:0;width:30px;height:2px;background-color:var(--color-primary)}.footer-premium__sitename{font-family:var(--font-heading,'Playfair Display',serif);font-size:1.4rem;font-weight:600;color:#fff;letter-spacing:.03em;margin-bottom:.75rem}.footer-premium__desc{font-size:.85rem;font-weight:300;color:rgb(255 255 255 / .5);margin-bottom:1.25rem;max-width:300px}.social-pills{display:flex;gap:.75rem}.social-pill{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid rgb(255 255 255 / .15);color:rgb(255 255 255 / .7);font-size:1rem;transition:color 0.3s ease,border-color 0.3s ease,background-color 0.3s ease}.social-pill:hover{color:var(--color-primary);border-color:var(--color-primary);background-color:color-mix(in srgb,var(--color-primary) 10%,transparent)}.footer-premium__menu{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.footer-premium__menu li a{font-size:.85rem;font-weight:300;color:rgb(255 255 255 / .6);transition:color 0.3s ease;letter-spacing:.02em}.footer-premium__menu li a:hover{color:var(--color-primary)}.footer-premium__contact-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.footer-premium__contact-list li{display:flex;align-items:flex-start;gap:.75rem;font-size:.85rem;font-weight:300;color:rgb(255 255 255 / .6)}.footer-premium__contact-list li i{color:var(--color-primary);font-size:.85rem;margin-top:3px;flex-shrink:0;width:16px;text-align:center}.footer-premium__contact-list li a{color:rgb(255 255 255 / .6);transition:color 0.3s ease}.footer-premium__contact-list li a:hover{color:var(--color-primary)}.footer-premium__horaires-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.85rem}.footer-premium__horaires-list li{display:flex;flex-direction:column;gap:.15rem}.footer-premium__horaires-list li strong{font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary)}.footer-premium__horaires-list li span{font-size:.85rem;font-weight:300;color:rgb(255 255 255 / .6)}.footer-premium__horaires-sub{display:block;font-size:.75rem;font-style:italic;color:rgb(255 255 255 / .4);margin-top:.15rem}.footer-premium__note{font-size:.8rem;font-weight:700;color:#fff}.footer-premium__copyright{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding:1.5rem 1.5rem;border-top:1px solid rgb(255 255 255 / .08);font-size:.78rem;font-weight:300;color:rgb(255 255 255 / .35);max-width:1200px;margin:0 auto}.footer-premium__legal-links{display:flex;gap:1.5rem}.footer-premium__legal-links a{color:rgb(255 255 255 / .35);transition:color 0.3s ease}.footer-premium__legal-links a:hover{color:var(--color-primary)}@media (min-width:768px){.footer-premium__grid{grid-template-columns:1fr 1fr;gap:3rem 4rem;padding:5rem 3rem 3.5rem}.footer-premium__copyright{flex-direction:row;justify-content:space-between;text-align:left;padding:1.5rem 3rem}}.btn-primary{display:inline-block;background-color:var(--color-primary);color:#fff;padding:12px 28px;border:none;border-radius:0;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.95rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:filter 0.3s ease}.btn-primary:hover,.btn-primary:focus{filter:brightness(.85);color:#fff}.page-hero{position:relative;width:100%;overflow:hidden;isolation:isolate;display:flex;align-items:flex-end}.page-hero--tall{height:80vh}.page-hero--tall-70{height:70vh}.page-hero--medium{height:60vh}.page-hero__overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center}.page-hero__overlay--bottom{background:linear-gradient(to top,rgb(0 0 0 / .7) 0%,rgb(0 0 0 / .2) 40%,rgb(0 0 0 / .3) 100%)}.page-hero__content{text-align:center;padding:0 1.25rem 5rem;max-width:800px;width:100%;position:relative;z-index:2}.page-hero__subtitle{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.7rem;font-weight:400;text-transform:uppercase;letter-spacing:.4em;color:var(--color-primary);margin-bottom:1rem}.page-hero__title{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(2rem, 6vw, 3.75rem);font-weight:300;color:#fff;letter-spacing:.05em;margin-bottom:1.25rem;line-height:1.15}.page-hero__desc{font-family:var(--font-body,'Montserrat',sans-serif);font-size:1.05rem;font-weight:300;color:rgb(255 255 255 / .6);max-width:560px;margin:0 auto;line-height:1.6}.section-virtual-tour{position:relative;background-color:#0a1628;padding:5rem 1.25rem;overflow:hidden;text-align:center}.virtual-tour__inner{position:relative;z-index:2}.virtual-tour__play{width:64px;height:64px;border-radius:50%;background:rgb(255 255 255 / .1);border:1px solid rgb(255 255 255 / .2);display:inline-flex;align-items:center;justify-content:center;margin-bottom:1.5rem;cursor:pointer;transition:transform 0.3s ease,background 0.3s ease}.virtual-tour__play:hover{transform:scale(1.1);background:rgb(255 255 255 / .15)}.virtual-tour__play svg{width:24px;height:24px;margin-left:3px}.virtual-tour__tag{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;color:var(--color-primary);margin-bottom:.75rem}.virtual-tour__title{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(1.25rem, 3vw, 1.75rem);font-weight:300;color:#fff;letter-spacing:.15em;text-transform:uppercase}.description-image-section{display:flex;align-items:center}.description-image-section .text-col{flex:0 0 35%;padding:5rem 4rem;display:flex;flex-direction:column;justify-content:center}.description-image-section .text-col .section-text{max-width:none;font-size:1.05rem;line-height:1.8}.description-image-section .image-col{flex:0 0 65%;position:relative;overflow:hidden;max-height:500px}.description-image-section .image-col img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.section-beach-services{padding:6rem 0;background-color:var(--color-bg-main)}.section-beach-services>.container{max-width:1400px;width:95%}.beach-services-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:3rem}.beach-service-card{background:#fff;overflow:hidden;display:flex;flex-direction:row;align-items:stretch}.beach-service-card__image{flex:0 0 30%;overflow:hidden}.beach-service-card__image img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s ease}.beach-service-card:hover .beach-service-card__image img{transform:scale(1.05)}.beach-service-card__body{flex:1;padding:3rem;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.service-badge{display:none}.service-badge i{font-size:24px}.beach-service-card__body h3{font-family:var(--font-heading,'Playfair Display',serif);font-size:1.15rem;font-weight:400;letter-spacing:.02em;color:var(--color-text-main);margin-bottom:.75rem}.beach-service-card__body p{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.85rem;font-weight:300;line-height:1.7;color:var(--color-text-muted)}.section-instagram-reel{padding:80px 20px;text-align:center;background-color:var(--color-bg-main)}.insta-header{display:inline-flex;align-items:center;gap:10px;color:var(--color-text-main);font-family:var(--font-body,'Montserrat',sans-serif);font-size:1.1rem;font-weight:500;letter-spacing:.03em;margin-bottom:2rem;transition:color 0.3s ease}.insta-header:hover,.insta-header:focus{color:var(--color-primary)}.insta-header__icon{font-size:1.6rem}.insta-reel{position:relative;width:100%;max-width:350px;aspect-ratio:9 / 16;margin:0 auto;border-radius:15px;overflow:hidden;box-shadow:0 8px 30px rgb(0 0 0 / .18);background-color:#000}.insta-reel__video{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.insta-reel__profile{position:absolute;top:14px;left:14px;z-index:2;display:flex;align-items:center;gap:8px;pointer-events:none}.insta-reel__avatar{width:35px;height:35px;border-radius:50%;object-fit:cover;border:2px solid #fff}.insta-reel__name{color:#fff;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.8rem;font-weight:600;text-shadow:0 1px 4px rgb(0 0 0 / .7)}.insta-reel__overlay-link{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;cursor:pointer}@media (max-width:480px){.insta-reel{max-width:280px}.section-instagram-reel{padding:50px 15px}}.section-hours{padding:80px 20px;text-align:center}.hours__icon{color:var(--color-primary);margin-bottom:1.5rem}.hours__icon svg{width:40px;height:40px}.hours__title{font-family:var(--font-heading,'Playfair Display',serif);font-size:2rem;font-weight:300;color:var(--color-text-main);letter-spacing:.02em;margin-bottom:2rem}.hours__lines{color:color-mix(in srgb,var(--color-text-main) 60%,transparent);font-size:1.2rem;line-height:2.2}.section-fullwidth-image{position:relative;height:50vh;overflow:hidden}.section-fullwidth-image--short{height:40vh}.section-fullwidth-image img{width:100%;height:100%;object-fit:cover}.section-fullwidth-image .fullwidth-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgb(0 0 0 / .5) 0%,rgb(0 0 0 / .1) 60%);display:flex;flex-direction:column;align-items:center;justify-content:center}.revealed-phone{display:none;color:#fff;margin-top:15px;font-size:1.5rem;font-weight:700;font-family:var(--font-body,'Montserrat',sans-serif);animation:fadeInPhone 0.4s ease}@keyframes fadeInPhone{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.menu-tabs{position:sticky;top:0;z-index:100;background-color:var(--color-bg-main);border-bottom:1px solid #f0f0f0}.menu-tabs__inner{max-width:900px;margin:0 auto;padding:0 1.25rem;display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch}.menu-tabs__inner::-webkit-scrollbar{display:none}.menu-tab{flex-shrink:0;padding:1.25rem 1.5rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.7rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text-main) 40%,transparent);background:none;border:none;border-bottom:2px solid #fff0;cursor:pointer;white-space:nowrap;transition:color 0.2s ease,border-color 0.2s ease}.menu-tab:hover{color:color-mix(in srgb,var(--color-text-main) 70%,transparent)}.menu-tab.is-active{color:var(--color-text-main);border-bottom-color:var(--color-primary)}.section-menu-items{padding-top:0;padding-bottom:4rem}.menu-items__inner{max-width:700px;margin:0 auto;padding:0 1.25rem}.menu-category{display:none}.menu-category.is-active{display:block}.sub-category-nav{position:sticky;top:55px;z-index:99;background-color:var(--color-bg-main);border-bottom:1px solid #f0f0f0}.sub-category-nav__inner{max-width:900px;margin:0 auto;padding:0 1.25rem;display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:0}.sub-category-nav__inner::-webkit-scrollbar{display:none}.sub-category-nav__link{flex-shrink:0;padding:.85rem 1.1rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.65rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text-main) 35%,transparent);white-space:nowrap;border-bottom:2px solid #fff0;transition:color 0.2s ease,border-color 0.2s ease}.sub-category-nav__link:hover{color:color-mix(in srgb,var(--color-text-main) 65%,transparent)}.sub-category-nav__link.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.menu-subcategory{margin-bottom:3rem;scroll-margin-top:140px}.menu-subcategory__header{text-align:center;margin-bottom:2rem;padding-top:1.5rem}.menu-subcategory__title{font-family:var(--font-heading,'Playfair Display',serif);font-size:1.35rem;font-weight:700;color:var(--color-secondary);letter-spacing:.04em;text-transform:uppercase;margin-top:.75rem}.menu-item-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:1rem 0;border-bottom:1px solid #f0f0f0}.menu-item-row:last-child{border-bottom:none}.menu-item-name{flex:1;min-width:0}.menu-item-name__title{font-family:var(--font-heading,'Playfair Display',serif);font-size:1.05rem;font-weight:400;color:var(--color-text-main);letter-spacing:.02em;margin-bottom:.2rem}.menu-item-name__desc{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.85rem;font-weight:300;color:var(--color-text-muted)}.menu-item-prices{flex:0 0 200px;display:flex;flex-direction:column;gap:.2rem}.price-line{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-family:var(--font-body,'Montserrat',sans-serif)}.price-line .format{font-size:.75rem;font-weight:300;color:var(--color-text-muted);white-space:nowrap}.price-line .amount{font-size:.95rem;font-weight:500;color:var(--color-primary);white-space:nowrap;text-align:right;margin-left:auto}@media (max-width:768px){.menu-subcategory__items{font-size:.9rem}.menu-item-row{flex-direction:row;gap:12px}.menu-item-name__title{font-size:.95rem}.menu-item-prices{flex:0 0 130px}.price-line .format{font-size:.65rem}.price-line .amount{font-size:.85rem}.menu-subcategory__title{font-size:1.15rem}.sub-category-nav__link{padding:.75rem .9rem;font-size:.6rem}.description-image-section{flex-direction:column}.description-image-section .text-col{flex:1 1 100%;padding:3rem 1.5rem}.description-image-section .image-col{flex:1 1 100%;min-height:400px;width:100%}.beach-service-card{flex-direction:column}.beach-service-card__image{flex:none;width:100%;height:250px}.beach-service-card__body{width:100%;padding:1.5rem}.main-swiper>.swiper-button-prev,.main-swiper>.swiper-button-next{display:none}.photo-swiper .swiper-button-prev,.photo-swiper .swiper-button-next{width:24px;height:24px;opacity:.8}.photo-swiper .swiper-button-prev::after,.photo-swiper .swiper-button-next::after{font-size:10px}}.section-events{padding:6rem 0}.section-events--past{background-color:var(--color-bg-main)}.main-swiper{position:relative;margin-top:3rem;padding-bottom:.5rem;overflow:hidden}.main-swiper>.swiper-button-prev,.main-swiper>.swiper-button-next{color:var(--color-primary);width:40px;height:40px;top:35%}.main-swiper>.swiper-button-prev::after,.main-swiper>.swiper-button-next::after{font-size:18px}.event-card{background:#fff;overflow:hidden;border-radius:2px;cursor:pointer;transition:transform 0.3s ease,box-shadow 0.3s ease;width:300px;max-width:100%;height:100%;display:flex;flex-direction:column}.swiper-initialized .swiper-slide .event-card{width:auto}.main-swiper .swiper-wrapper{align-items:stretch}.main-swiper .swiper-slide{height:auto}.event-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgb(0 0 0 / .08)}.event-card__image{position:relative;overflow:hidden;aspect-ratio:4 / 3;background:#f0f0f0}.event-card__image>img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s ease}.event-card:hover .event-card__image>img{transform:scale(1.05)}.photo-swiper{position:relative;width:100%;height:100%;overflow:hidden}.photo-swiper .swiper-slide{width:100%;height:100%}.photo-swiper .swiper-slide img{width:100%;height:100%;object-fit:cover}.photo-swiper .swiper-button-prev,.photo-swiper .swiper-button-next{color:#fff;width:28px;height:28px;background:rgb(0 0 0 / .4);border-radius:50%;opacity:0;transition:opacity 0.3s ease}.photo-swiper .swiper-button-prev::after,.photo-swiper .swiper-button-next::after{font-size:12px}.event-card:hover .photo-swiper .swiper-button-prev,.event-card:hover .photo-swiper .swiper-button-next{opacity:1}.event-card__badge{position:absolute;top:1rem;left:1rem;background:var(--color-primary);color:#fff;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.6rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;padding:.4rem .75rem;z-index:2}.event-card__body{padding:1.5rem;flex-grow:1;display:flex;flex-direction:column}.event-time-placeholder{min-height:24px}.event-card__date{display:flex;align-items:center;gap:.5rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.75rem;font-weight:400;letter-spacing:.05em;color:var(--color-primary);margin-bottom:.5rem}.event-card__time{display:flex;align-items:center;gap:.5rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.75rem;font-weight:400;color:color-mix(in srgb,var(--color-text-main) 50%,transparent);margin-bottom:.75rem}.event-card__title{font-family:var(--font-heading,'Playfair Display',serif);font-size:1.2rem;font-weight:400;color:var(--color-text-main);letter-spacing:.02em;margin-bottom:.5rem}.event-card__excerpt{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.85rem;font-weight:300;line-height:1.7;color:color-mix(in srgb,var(--color-text-main) 50%,transparent);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;margin-bottom:auto}.events-empty{text-align:center;color:color-mix(in srgb,var(--color-text-main) 40%,transparent);font-size:1.05rem;font-weight:300;padding:2rem 0}.event-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;visibility:hidden;opacity:0;transition:visibility 0s 0.4s,opacity 0.4s ease}.event-modal.is-open{display:flex;visibility:visible;opacity:1;transition:visibility 0s,opacity 0.4s ease}.event-modal__overlay{position:absolute;inset:0;background:rgb(0 0 0 / .85)}.event-modal__container{position:relative;z-index:2;width:94%;max-width:1000px;max-height:90vh;background:#fff;overflow-y:auto;border-radius:2px;transform:translateY(20px);transition:transform 0.4s ease}.event-modal.is-open .event-modal__container{transform:translateY(0)}.event-modal__close{position:absolute;top:1rem;right:1rem;z-index:10;width:40px;height:40px;border:none;background:rgb(0 0 0 / .5);color:#fff;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.2s ease}.event-modal__close:hover{background:rgb(0 0 0 / .7)}.event-modal__inner{display:flex;flex-direction:column}.event-modal__slider{width:100%;aspect-ratio:16 / 9;overflow:hidden;background:#f0f0f0}.modal-swiper{position:relative;width:100%;height:100%}.modal-swiper .swiper-slide img{width:100%;height:100%;object-fit:cover}.modal-swiper .swiper-button-prev,.modal-swiper .swiper-button-next{color:#fff}.modal-swiper .swiper-button-prev::after,.modal-swiper .swiper-button-next::after{font-size:20px}.modal-swiper .swiper-pagination-bullet{background:#fff;opacity:.5}.modal-swiper .swiper-pagination-bullet-active{opacity:1;background:var(--color-primary)}.event-modal__info{padding:2.5rem}.event-modal__badge{display:inline-block;background:var(--color-primary);color:#fff;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.6rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;padding:.4rem .75rem;margin-bottom:1rem}.event-modal__date{display:flex;align-items:center;gap:.5rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.85rem;color:var(--color-primary);margin-bottom:.5rem}.event-modal__time{display:flex;align-items:center;gap:.5rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.85rem;color:color-mix(in srgb,var(--color-text-main) 50%,transparent);margin-bottom:1rem}.event-modal__title{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(1.5rem, 3vw, 2rem);font-weight:600;color:var(--color-text-main);margin-bottom:1.25rem}.event-modal__content{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.95rem;font-weight:300;line-height:1.8;color:var(--color-text-muted);margin-bottom:2rem}.event-modal__content p{margin-bottom:1rem}.event-card__body .btn-reserver{margin-top:1.25rem;align-self:flex-start}.event-modal__actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.event-modal__share{display:inline-flex;align-items:center;gap:.5rem}#modal-btn-reserver{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}.events-bottom-cta{position:relative;width:100vw;margin-left:calc(-50vw + 50%);height:40vh;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center}.bg-image-cover{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.events-bottom-cta__overlay{position:absolute;inset:0;background-color:rgb(0 0 0 / .5)}.events-bottom-cta .btn-primary{position:relative;z-index:2}@media (max-width:768px){.events-bottom-cta{height:30vh}}.section-privatisation{padding:5rem 0 2rem;background-color:var(--color-bg-main)}.privatisation-intro{text-align:center;max-width:800px;margin:0 auto 4rem auto;padding:0 1.25rem}.privatisation-intro .section-text{margin-left:auto;margin-right:auto}.espaces-grid{max-width:1200px;margin:0 auto;padding:0 1.25rem}.espace-row{display:flex;flex-direction:column;align-items:center;gap:2rem;margin-bottom:4rem}.espace-image{flex:1;width:100%;height:300px;overflow:hidden}.espace-image img{width:100%;height:100%;object-fit:cover;display:block;box-shadow:0 15px 35px rgb(0 0 0 / .05)}.espace-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0;background-color:#fff0;text-align:center}.espace-content h3{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(1.4rem, 3vw, 2rem);font-weight:600;color:var(--color-text-main);margin-bottom:.75rem}.espace-capacite{display:inline-block;color:var(--color-primary);font-family:var(--font-body,'Montserrat',sans-serif);font-size:.8rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:1rem}.espace-capacite i{margin-right:.4rem}.espace-content p{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.95rem;font-weight:300;line-height:1.7;color:var(--color-text-muted);margin-bottom:1.5rem}.espace-content .btn-primary{align-self:center}@media (min-width:768px){.espace-row{flex-direction:row;align-items:center;gap:4rem;margin-bottom:6rem}.espace-image{width:50%;height:450px}.espace-content{width:50%;text-align:left}.espace-content .btn-primary{align-self:flex-start}.espace-row:nth-child(even){flex-direction:row-reverse}.espace-row:nth-child(even) .espace-content{text-align:right;align-items:flex-end}.espace-row:nth-child(even) .espace-content .btn-primary{align-self:flex-end}}@media (min-width:768px){.event-modal__inner{flex-direction:row}.event-modal__slider{width:55%;aspect-ratio:auto;min-height:400px}.event-modal__info{width:45%;padding:3rem;overflow-y:auto;max-height:80vh}}.section-phone-cta{background-color:var(--color-primary);padding:2.5rem 1.25rem}.phone-cta__inner{max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.phone-cta__label{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.7rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:rgb(255 255 255 / .7);margin-bottom:.25rem}.phone-cta__number{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(1.5rem, 4vw, 2.5rem);font-weight:300;color:#fff;letter-spacing:.05em}.phone-cta__button{display:inline-flex;align-items:center;gap:.75rem;background:#fff;color:var(--color-primary);padding:1rem 2rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.75rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;transition:background 0.3s ease;flex-shrink:0}.phone-cta__button:hover{background:rgb(255 255 255 / .9)}.section-info-grid{padding:6rem 0}.info-grid{display:grid;grid-template-columns:1fr;gap:3rem}.info-card__icon{width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 8%,transparent);display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;color:var(--color-primary)}.info-card h3{font-family:var(--font-heading,'Playfair Display',serif);font-size:1.1rem;font-weight:400;letter-spacing:.02em;color:var(--color-text-main);margin-bottom:1.5rem}.info-card__list p{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.85rem;font-weight:300;color:color-mix(in srgb,var(--color-text-main) 60%,transparent);padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:1px solid #f0f0f0}.info-card__list p:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.info-card__row{display:flex;align-items:flex-start;gap:.75rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.85rem;font-weight:300;color:color-mix(in srgb,var(--color-text-main) 60%,transparent);margin-bottom:1rem}.info-card__row svg{color:var(--color-primary);flex-shrink:0;margin-top:2px}.info-card__row a{transition:color 0.2s ease}.info-card__row a:hover{color:var(--color-text-main)}.info-card__desc{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.85rem;font-weight:300;line-height:1.7;color:color-mix(in srgb,var(--color-text-main) 50%,transparent);margin-bottom:1.5rem}.info-card__link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.7rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--color-primary);border-bottom:1px solid color-mix(in srgb,var(--color-primary) 30%,transparent);padding-bottom:.25rem;transition:border-color 0.2s ease}.info-card__link:hover{border-color:var(--color-primary)}.info-grid--two{grid-template-columns:1fr}.section-resa-cards{padding:5rem 0;background-color:var(--color-bg-main)}.resa-cards-container{display:flex;flex-direction:column;gap:1.5rem}.resa-card{background:#fff;border:1px solid color-mix(in srgb,var(--color-primary) 12%,transparent);box-shadow:0 10px 30px rgb(0 0 0 / .05);padding:3rem 2.5rem;display:flex;flex-direction:column;align-items:center;text-align:center;transition:transform 0.4s ease,box-shadow 0.4s ease}.resa-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgb(0 0 0 / .08)}.resa-card__icon{width:60px;height:60px;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 8%,transparent);display:flex;align-items:center;justify-content:center;margin-bottom:1.75rem}.resa-card__icon i{font-size:1.3rem;color:var(--color-primary)}.resa-card__title{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(1.4rem, 3vw, 1.85rem);font-weight:400;color:var(--color-text-main);letter-spacing:.03em;margin-bottom:1rem}.resa-card__text{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.9rem;font-weight:300;line-height:1.8;color:color-mix(in srgb,var(--color-text-main) 55%,transparent);max-width:380px;margin-bottom:0}.resa-card-buttons{display:flex;gap:15px;width:100%;margin-top:2rem}.resa-card-buttons .btn{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;gap:.5rem;padding:12px 20px;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.72rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;transition:background 0.3s ease,color 0.3s ease,border-color 0.3s ease}.resa-card-buttons .btn i{font-size:.8rem}.resa-card-buttons .btn-primary{background:var(--color-bg-dark);color:#fff;border:1px solid var(--color-bg-dark)}.resa-card-buttons .btn-primary:hover{background:#fff0;color:var(--color-text-main);border-color:var(--color-text-main)}.btn-secondary{background:#fff0;color:var(--color-text-main);border:1px solid var(--color-primary)}.btn-secondary:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}@media (max-width:768px){.resa-card-buttons{flex-direction:column}}.section-horaires{padding:6rem 0;background-color:var(--color-bg-main)}.horaires-grid{display:grid;grid-template-columns:1fr;gap:2rem;max-width:800px;margin:3rem auto 0}.horaires-card{background:#fff;border:1px solid var(--color-secondary);padding:2.5rem 2rem;text-align:center}.horaires-card__icon{width:48px;height:48px;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 10%,transparent);display:inline-flex;align-items:center;justify-content:center;margin-bottom:1.25rem}.horaires-card__icon i{font-size:1.1rem;color:var(--color-primary)}.horaires-card__title{font-family:var(--font-heading,'Playfair Display',serif);font-size:1.25rem;font-weight:400;color:var(--color-text-main);letter-spacing:.02em;margin-bottom:1.5rem}.horaires-card__list{display:flex;flex-direction:column;gap:.75rem}.horaires-card__row{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.9rem;font-weight:300;color:color-mix(in srgb,var(--color-text-main) 60%,transparent)}.horaires-card__label{font-weight:500;color:var(--color-primary);text-transform:uppercase;font-size:.7rem;letter-spacing:.1em;min-width:50px}.horaires-card__value{color:color-mix(in srgb,var(--color-text-main) 70%,transparent)}.horaires-badge{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:3rem auto 0;padding:1.25rem 2.5rem;background:color-mix(in srgb,var(--color-primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 30%,transparent);max-width:500px}.horaires-badge i{font-size:1.2rem;color:var(--color-primary)}.horaires-badge span{font-family:var(--font-body,'Montserrat',sans-serif);font-size:.8rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--color-primary)}.btn-reserver{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.6rem 1.25rem;background:var(--color-primary);color:#fff;font-family:var(--font-body,'Montserrat',sans-serif);font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;transition:filter 0.3s ease;position:relative;z-index:3}.btn-reserver:hover{filter:brightness(.85);color:#fff}.btn-reserver i{font-size:.75rem}.text-center{text-align:center}.section-line--center{margin-left:auto;margin-right:auto}@media (min-width:768px){.site-header__inner{padding:1.25rem 2.5rem}.hero-content h1{letter-spacing:.04em}.gallery-strip{grid-template-columns:repeat(3,1fr)}.gallery-item{aspect-ratio:16 / 10}.menu-carousel__slide{flex:0 0 60%}.menu-preview-content{max-width:600px;margin:-5rem auto 0;padding:3rem 2rem 0}.container{padding:0 2rem}.beach-services-grid{grid-template-columns:repeat(2,1fr);gap:2rem}.phone-cta__inner{flex-direction:row;justify-content:space-between;text-align:left}.info-grid{grid-template-columns:repeat(3,1fr)}.info-grid--two{grid-template-columns:repeat(2,1fr)}.resa-cards-container{flex-direction:row;gap:2rem}.resa-card{flex:1;padding:3.5rem 3rem}.horaires-grid{grid-template-columns:1fr 1fr}}