@charset "UTF-8";@import url(https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&family=Inter:wght@300;400;500;600&family=Caveat:wght@400;600;700&display=swap);*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{background-color:#f7f3ed;color:#1a2a2e;font-family:Inter,Helvetica Neue,Arial,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:block;height:auto;max-width:100%}a{color:inherit;text-decoration:none;transition:color .18s ease}ol,ul{list-style:none}.container{margin:0 auto;max-width:1280px;padding:0 2rem}@media (max-width:768px){.container{padding:0 1rem}}.section-title{background:linear-gradient(135deg,#0f4c5c,#4fb3bf);-webkit-background-clip:text;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:clamp(2rem,4vw,2.8rem);font-weight:900;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:2px;line-height:1.15;margin-bottom:.5rem;text-transform:uppercase}@media (max-width:768px){.section-title{font-size:1.75rem}}.section-tagline{color:#5a7a82;font-family:Caveat,cursive;font-size:1.5rem;font-weight:400;margin-bottom:2rem}.section-header{margin-bottom:4rem;text-align:center}.btn{align-items:center;border:2px solid transparent;border-radius:50px;cursor:pointer;display:inline-flex;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.82rem;font-weight:700;gap:.5rem;letter-spacing:1.5px;line-height:1;overflow:hidden;padding:.85rem 2rem;position:relative;text-decoration:none;text-transform:uppercase;transition:all .35s cubic-bezier(.4,0,.2,1)}.btn:after{background:hsla(0,0%,100%,.18);content:"";height:200%;left:-75%;position:absolute;top:-50%;transform:skewX(-20deg);transition:left .35s cubic-bezier(.4,0,.2,1);width:50%}.btn:hover:after{left:125%}.btn-primary{background:linear-gradient(135deg,#e8c468,#c9a84c);border-color:transparent;box-shadow:0 4px 24px hsla(43,74%,66%,.35);color:#0f4c5c}.btn-primary:hover{box-shadow:0 8px 36px hsla(43,74%,66%,.5);color:#0f4c5c;transform:translateY(-2px) scale(1.02)}.btn-outline{background:transparent;border-color:#0f4c5c;color:#0f4c5c}.btn-outline:hover{background:#0f4c5c;box-shadow:0 8px 32px rgba(15,76,92,.15);color:#fff;transform:translateY(-2px)}.btn-white{background:#fff;border-color:#fff;color:#0f4c5c}.btn-white:hover{background:transparent;border-color:#fff;color:#fff}.btn-teal{background:#0f4c5c;border-color:#0f4c5c;color:#fff}.btn-teal:hover{background:#1a5f6e;border-color:#1a5f6e;box-shadow:0 8px 32px rgba(15,76,92,.15);transform:translateY(-2px)}.btn-sm{font-size:.72rem;padding:.55rem 1.35rem}.flash-messages{max-width:400px;position:fixed;right:1rem;top:calc(80px + 1rem);z-index:9999}.flash-messages .alert{animation:slideInRight .3s ease;border-radius:20px;box-shadow:0 8px 32px rgba(15,76,92,.15);margin-bottom:.5rem;padding:1rem 1.5rem}.flash-messages .alert-success{background:#d4edda;border-left:4px solid #28a745;color:#155724}.flash-messages .alert-error{background:#f8d7da;border-left:4px solid #dc3545;color:#721c24}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.badge{border-radius:30px;display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:1px;padding:.25rem .75rem;text-transform:uppercase}.badge-accent{background:#e8c468;color:#0f4c5c}.badge-success{background:#28a745;color:#fff}.badge-warning{background:#ffc107;color:#333}.badge-danger{background:#dc3545;color:#fff}.badge-teal{background:#0f4c5c;color:#fff}.page-banner{background:linear-gradient(135deg,#0f4c5c,#1a5f6e 60%,#4fb3bf);color:#fff;margin-top:80px;overflow:hidden;padding:6rem 0 4rem;position:relative;text-align:center}.page-banner:after{background:#f7f3ed;bottom:-2px;clip-path:ellipse(55% 100% at 50% 100%);content:"";height:60px;left:0;position:absolute;right:0}.page-banner h1{font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:900;letter-spacing:3px;text-shadow:0 2px 20px rgba(0,0,0,.2);text-transform:uppercase}.page-banner p{font-family:Caveat,cursive;font-size:1.4rem;margin-top:.75rem;opacity:.9}.wave-top{background:inherit;clip-path:ellipse(55% 100% at 50% 0);height:60px}.site-header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:hsla(0,0%,100%,.96);border-bottom:1px solid rgba(15,76,92,.08);height:80px;left:0;position:fixed;right:0;top:0;transition:all .35s cubic-bezier(.4,0,.2,1);z-index:1000}.site-header.scrolled{background:hsla(0,0%,100%,.98);box-shadow:0 4px 30px rgba(15,76,92,.12)}.site-header .header-inner{align-items:center;display:flex;gap:2rem;height:100%;margin:0 auto;max-width:1280px;padding:0 2rem}.header-logo{align-items:center;display:flex;flex-shrink:0;transition:opacity .18s ease}.header-logo:hover{opacity:.85}.header-logo__img{height:48px;width:auto}.header-nav{display:flex;flex:1;justify-content:center}.header-nav ul{align-items:center;display:flex;gap:0}.header-nav a{color:#1a2a2e;display:block;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:1.5px;padding:.6rem 1.1rem;position:relative;text-transform:uppercase;transition:color .18s ease}.header-nav a:after{background:linear-gradient(90deg,#0f4c5c,#4fb3bf);border-radius:2px;bottom:0;content:"";height:2px;left:50%;position:absolute;right:50%;transition:left .35s cubic-bezier(.4,0,.2,1),right .35s cubic-bezier(.4,0,.2,1)}.header-nav a.active,.header-nav a:hover{color:#0f4c5c}.header-nav a.active:after,.header-nav a:hover:after{left:1rem;right:1rem}@media (max-width:900px){.header-nav{display:none}.header-nav.mobile-open{background:#fff;border-top:2px solid #e8c468;box-shadow:0 16px 56px rgba(15,76,92,.22);display:flex;flex-direction:column;left:0;padding:1rem 0 2rem;position:fixed;right:0;top:80px;z-index:999}.header-nav.mobile-open ul{flex-direction:column;width:100%}.header-nav.mobile-open a{padding:1rem 2rem}.header-nav.mobile-open a:after{display:none}.header-nav.mobile-open a.active,.header-nav.mobile-open a:hover{background:rgba(15,76,92,.04);color:#0f4c5c}}.header-socials{align-items:center;display:flex;gap:.4rem}.header-socials a{align-items:center;background:rgba(15,76,92,.07);border:1px solid rgba(15,76,92,.15);border-radius:50%;color:#0f4c5c;display:flex;font-size:.75rem;height:34px;justify-content:center;transition:all .18s ease;width:34px}.header-socials a:hover{background:#0f4c5c;border-color:#0f4c5c;color:#fff;transform:translateY(-2px)}@media (max-width:768px){.header-socials{display:none}}.header-ctas{align-items:center;display:flex;flex-shrink:0;gap:.5rem}@media (max-width:768px){.header-ctas .btn-outline{display:none}}.burger-btn{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;margin-left:auto;padding:.5rem}.burger-btn span{background:#0f4c5c;border-radius:2px;display:block;height:2px;transition:all .18s ease;width:24px}.burger-btn.open span:first-child{transform:rotate(45deg) translate(5px,5px)}.burger-btn.open span:nth-child(2){opacity:0}.burger-btn.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}@media (max-width:900px){.burger-btn{display:flex}}.site-footer{background:#0a3544;color:#fff;padding:4rem 0 0;position:relative}.site-footer:before{background:linear-gradient(90deg,transparent,#e8c468,transparent);border-radius:2px;content:"";height:2px;left:10%;position:absolute;right:10%;top:0}.site-footer .footer-inner{display:grid;gap:4rem;grid-template-columns:1.5fr 1fr 1.5fr;margin:0 auto;max-width:1280px;padding:4rem 2rem 0}@media (max-width:900px){.site-footer .footer-inner{grid-template-columns:1fr 1fr}}@media (max-width:600px){.site-footer .footer-inner{grid-template-columns:1fr}}.footer-col h3{border-bottom:1px solid hsla(43,74%,66%,.25);color:#e8c468;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:2.5px;padding-bottom:.75rem;text-transform:uppercase}.footer-col h3,.footer-logo{margin-bottom:1.5rem}.footer-logo__img{filter:brightness(0) invert(1);height:44px;opacity:.9;width:auto}.footer-socials{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem}.footer-socials a{align-items:center;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.15);border-radius:50%;color:hsla(0,0%,100%,.8);display:flex;font-size:.85rem;height:38px;justify-content:center;transition:all .35s cubic-bezier(.4,0,.2,1);width:38px}.footer-socials a:hover{background:#e8c468;border-color:#e8c468;box-shadow:0 4px 24px hsla(43,74%,66%,.35);color:#0f4c5c;transform:translateY(-3px)}.footer-newsletter{align-items:center;background:hsla(43,74%,66%,.15);border:1px solid hsla(43,74%,66%,.3);border-radius:50px;color:#e8c468;display:inline-flex;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.75rem;font-weight:700;gap:.5rem;letter-spacing:1px;padding:.7rem 1.4rem;text-transform:uppercase;transition:all .18s ease}.footer-newsletter:hover{background:#e8c468;border-color:#e8c468;box-shadow:0 4px 24px hsla(43,74%,66%,.35);color:#0f4c5c;transform:translateY(-2px)}.footer-nav ul{display:flex;flex-direction:column;gap:.6rem}.footer-nav a{align-items:center;color:hsla(0,0%,100%,.7);display:flex;font-size:.9rem;gap:.4rem;transition:all .18s ease}.footer-nav a:before{color:#e8c468;content:"›";font-size:1rem;transition:transform .18s ease}.footer-nav a:hover{color:#fff;padding-left:.3rem}.footer-nav a:hover:before{transform:translateX(3px)}.footer-partners{align-items:center;display:flex;flex-wrap:wrap;gap:1.25rem}.footer-partners img{filter:brightness(0) invert(1);height:32px;opacity:.55;transition:opacity .18s ease;width:auto}.footer-partners img:hover{opacity:1}.footer-bottom{border-top:1px solid hsla(0,0%,100%,.1);gap:.75rem;justify-content:space-between;margin-left:auto;margin-right:auto;margin-top:4rem;max-width:1280px;padding:1.35rem 2rem}.footer-bottom,.footer-bottom .footer-address{align-items:center;display:flex;flex-wrap:wrap}.footer-bottom .footer-address{color:hsla(0,0%,100%,.6);font-size:.82rem;gap:.5rem}.footer-bottom .footer-legal{display:flex;flex-wrap:wrap;gap:1.5rem}.footer-bottom .footer-legal a{color:hsla(0,0%,100%,.5);font-size:.78rem;transition:color .18s ease}.footer-bottom .footer-legal a:hover{color:#e8c468}.hero{align-items:center;display:flex;height:100vh;justify-content:center;margin-top:0;min-height:620px;overflow:hidden;position:relative}.hero__bg{background-attachment:fixed;background-position:50%;background-size:cover;inset:0;position:absolute;transform:scale(1.06);transition:transform 10s ease}.hero__bg:after{background:linear-gradient(180deg,rgba(15,76,92,.25),rgba(15,76,92,.5) 50%,rgba(15,76,92,.78));content:"";inset:0;position:absolute}.hero:hover .hero__bg{transform:scale(1)}.hero:after{background:#f7f3ed;bottom:-2px;clip-path:ellipse(58% 100% at 50% 100%);content:"";height:80px;left:0;position:absolute;right:0;z-index:2}.hero__content{animation:heroFadeIn 1.2s ease;color:#fff;max-width:820px;padding:0 2rem;position:relative;text-align:center;z-index:1}.hero__tagline{color:#e8c468;display:block;font-family:Caveat,cursive;font-size:1.7rem;margin-bottom:.75rem;text-shadow:0 2px 12px rgba(0,0,0,.3)}.hero__title{color:#fff;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:clamp(3.2rem,9vw,6.5rem);font-weight:900;letter-spacing:5px;line-height:.92;margin-bottom:1.5rem;text-shadow:0 4px 30px rgba(0,0,0,.35);text-transform:uppercase}.hero__subtitle{color:hsla(0,0%,100%,.88);font-family:Inter,Helvetica Neue,Arial,sans-serif;font-size:1.15rem;line-height:1.7;margin-bottom:2.5rem;margin-left:auto;margin-right:auto;max-width:540px}.hero__ctas{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.hero__scroll-indicator{align-items:center;animation:bounce 2.2s infinite;bottom:5rem;color:hsla(0,0%,100%,.7);display:flex;flex-direction:column;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.7rem;gap:.5rem;left:50%;letter-spacing:2.5px;position:absolute;text-transform:uppercase;transform:translateX(-50%);z-index:3}@keyframes heroFadeIn{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-10px)}}.home-features{background:#fff;padding:6rem 0 4rem;position:relative}.home-features:before{background:#f7f3ed;clip-path:ellipse(55% 100% at 50% 0);content:"";height:60px;left:0;position:absolute;right:0;top:-2px}.home-features .features-grid{display:grid;gap:2rem;grid-template-columns:repeat(3,1fr);margin-top:4rem}@media (max-width:900px){.home-features .features-grid{grid-template-columns:1fr}}.home-features .feature-card{background:#f7f3ed;border:1px solid #d4e8eb;border-radius:32px;padding:2rem 1rem;text-align:center;transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1),background .35s cubic-bezier(.4,0,.2,1)}.home-features .feature-card:hover{background:#fff;box-shadow:0 8px 32px rgba(15,76,92,.15);transform:translateY(-6px)}.home-features .feature-card .feature-icon{align-items:center;background:linear-gradient(135deg,rgba(15,76,92,.1),rgba(79,179,191,.15));border:2px solid rgba(79,179,191,.3);border-radius:50%;display:flex;font-size:2rem;height:80px;justify-content:center;margin:0 auto 1.25rem;transition:all .35s cubic-bezier(.4,0,.2,1);width:80px}.home-features .feature-card:hover .feature-icon{background:linear-gradient(135deg,#0f4c5c,#4fb3bf);border-color:transparent;transform:scale(1.1)}.home-features .feature-card h3{color:#0f4c5c;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:1rem;font-weight:800;letter-spacing:1.5px;margin-bottom:.75rem;text-transform:uppercase}.home-features .feature-card p{color:#5a7a82;font-size:.92rem;line-height:1.75}.home-events-preview{background:#eff7f8;padding:6rem 0;position:relative}.home-events-preview:before{background:#fff;clip-path:ellipse(55% 100% at 50% 0);top:-2px}.home-events-preview:after,.home-events-preview:before{content:"";height:60px;left:0;position:absolute;right:0}.home-events-preview:after{bottom:-2px;clip-path:ellipse(58% 100% at 50% 100%)}.home-events-preview:after,.home-reservation{background:linear-gradient(135deg,#0f4c5c,#1a5f6e 60%,#4fb3bf)}.home-reservation{color:#fff;padding:6rem 0;position:relative}.home-reservation .section-title{background:none;color:#fff;-webkit-text-fill-color:#fff}.home-reservation .section-tagline{color:hsla(0,0%,100%,.85)}.home-reservation .reservation-form{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);border-radius:20px;margin:0 auto;max-width:720px;padding:2rem}.home-reservation .reservation-form .form-grid{display:grid;gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:600px){.home-reservation .reservation-form .form-grid{grid-template-columns:1fr}}.home-reservation .reservation-form .form-group{display:flex;flex-direction:column;gap:.35rem}.home-reservation .reservation-form .form-group.full-width{grid-column:1/-1}.home-reservation .reservation-form .form-group label{color:hsla(0,0%,100%,.9);font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}.home-reservation .reservation-form .form-group input,.home-reservation .reservation-form .form-group select,.home-reservation .reservation-form .form-group textarea{background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.3);border-radius:20px;color:#fff;font-family:Inter,Helvetica Neue,Arial,sans-serif;font-size:.95rem;padding:.85rem 1.1rem;transition:border-color .18s ease,background .18s ease}.home-reservation .reservation-form .form-group input::placeholder,.home-reservation .reservation-form .form-group select::placeholder,.home-reservation .reservation-form .form-group textarea::placeholder{color:hsla(0,0%,100%,.5)}.home-reservation .reservation-form .form-group input:focus,.home-reservation .reservation-form .form-group select:focus,.home-reservation .reservation-form .form-group textarea:focus{background:hsla(0,0%,100%,.2);border-color:#e8c468;outline:none}.home-reservation .reservation-form .form-group input option,.home-reservation .reservation-form .form-group select option,.home-reservation .reservation-form .form-group textarea option{background:#fff;color:#1a2a2e}.home-reservation .reservation-form .form-submit{margin-top:1.5rem;text-align:center}.events-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(4,1fr);margin:4rem 0}@media (max-width:1100px){.events-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.events-grid{grid-template-columns:1fr}}.event-card{background:#fff;border:1px solid #d4e8eb;border-radius:20px;box-shadow:0 2px 12px rgba(15,76,92,.08);overflow:hidden;position:relative;transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1)}.event-card:hover{box-shadow:0 16px 56px rgba(15,76,92,.22);transform:translateY(-6px)}.event-card__image-wrap{aspect-ratio:1;overflow:hidden;position:relative}.event-card__image-wrap img{height:100%;object-fit:cover;transition:transform .55s ease;width:100%}.event-card__image-wrap:after{background:linear-gradient(180deg,transparent 40%,rgba(15,76,92,.55));content:"";inset:0;opacity:0;position:absolute;transition:opacity .35s cubic-bezier(.4,0,.2,1)}.event-card:hover .event-card__image-wrap img{transform:scale(1.07)}.event-card:hover .event-card__image-wrap:after{opacity:1}.event-card__badge{background:#e8c468;border-radius:30px;color:#0f4c5c;font-size:.65rem;font-weight:800;padding:.3rem .8rem;position:absolute;right:1rem;top:1rem;z-index:2}.event-card__badge,.event-card__date{font-family:Montserrat,Helvetica Neue,Arial,sans-serif;letter-spacing:1px;text-transform:uppercase}.event-card__date{align-items:center;color:#4fb3bf;display:flex;font-size:.72rem;font-weight:700;gap:.4rem;padding:1rem 1rem 0}.event-card__body{padding:.75rem 1rem 1.25rem}.event-card__title{color:#0f4c5c;display:-webkit-box;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.95rem;font-weight:800;letter-spacing:.5px;-webkit-line-clamp:2;line-height:1.35;margin-bottom:.85rem;text-transform:uppercase;-webkit-box-orient:vertical;overflow:hidden}.event-card__actions{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.event-card__actions .read-more{color:#5a7a82;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;transition:color .18s ease}.event-card__actions .read-more:hover{color:#0f4c5c}.event-card--placeholder{align-items:center;aspect-ratio:1;background:rgba(15,76,92,.04);border:2px dashed rgba(15,76,92,.2);border-radius:20px;color:#9cb8be;display:flex;font-family:Caveat,cursive;font-size:1.1rem;justify-content:center}.calendar-section{background:#fff;border:1px solid #d4e8eb;border-radius:32px;box-shadow:0 2px 12px rgba(15,76,92,.08);margin:2rem 0;padding:4rem 0 6rem}.calendar__nav{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem;padding:0 2rem}.calendar__nav .month-title{background:linear-gradient(135deg,#0f4c5c,#4fb3bf);-webkit-background-clip:text;font-size:1.4rem;font-weight:800;letter-spacing:3px;text-transform:uppercase;-webkit-text-fill-color:transparent;background-clip:text}.calendar__nav .month-title,.calendar__nav .nav-btn{font-family:Montserrat,Helvetica Neue,Arial,sans-serif}.calendar__nav .nav-btn{align-items:center;background:none;border:2px solid #0f4c5c;border-radius:50px;color:#0f4c5c;display:inline-flex;font-size:.72rem;font-weight:700;gap:.5rem;letter-spacing:1px;padding:.55rem 1.25rem;text-transform:uppercase;transition:all .18s ease}.calendar__nav .nav-btn:hover{background:#0f4c5c;color:#fff;transform:translateY(-1px)}.calendar__grid{border:1px solid #d4e8eb;border-radius:20px;margin:0 2rem;overflow:hidden}.calendar__header{background:linear-gradient(135deg,#0f4c5c,#1a5f6e);display:grid;grid-template-columns:repeat(7,1fr)}.calendar__header .day-name{color:hsla(0,0%,100%,.85);font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:1.5px;padding:.85rem;text-align:center;text-transform:uppercase}.calendar__body{display:grid;grid-template-columns:repeat(7,1fr)}.calendar__day{background:#fff;border-bottom:1px solid #d4e8eb;border-right:1px solid #d4e8eb;min-height:120px;padding:.6rem;transition:background .18s ease}.calendar__day:nth-child(7n){border-right:none}.calendar__day--empty{background:rgba(239,247,248,.6)}.calendar__day--today{background:rgba(126,205,214,.12);border-top:2px solid #4fb3bf}.calendar__day--today .day-number{align-items:center;background:rgba(15,76,92,.1);border-radius:50%;color:#0f4c5c;display:flex;font-weight:900;height:26px;justify-content:center;width:26px}.calendar__day .day-number{color:#5a7a82;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.82rem;font-weight:700;margin-bottom:.4rem}.calendar__day .day-event{border-radius:8px;font-size:.65rem;margin-bottom:.3rem;overflow:hidden}.calendar__day .day-event img{height:34px;object-fit:cover;width:100%}.calendar__day .day-event .day-event-title{background:rgba(126,205,214,.2);color:#0f4c5c;font-size:.58rem;letter-spacing:.5px;overflow:hidden;padding:2px 5px;text-overflow:ellipsis;white-space:nowrap}.calendar__day .day-event .day-event-book,.calendar__day .day-event .day-event-title{font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-weight:700;text-transform:uppercase}.calendar__day .day-event .day-event-book{background:linear-gradient(90deg,#0f4c5c,#4fb3bf);color:#fff;display:block;font-size:.55rem;padding:3px 5px;text-align:center;transition:opacity .18s ease}.calendar__day .day-event .day-event-book:hover{opacity:.85}@media (max-width:768px){.calendar__day{min-height:60px}.calendar__day .day-event img{height:22px}}.menu-banners{margin-top:80px}.menu-banners .category-banner{cursor:pointer;height:280px;overflow:hidden;position:relative}.menu-banners .category-banner__image{height:100%;object-fit:cover;transition:transform .55s ease;width:100%}.menu-banners .category-banner:hover .menu-banners .category-banner__image{transform:scale(1.06)}.menu-banners .category-banner__overlay{align-items:center;background:rgba(15,76,92,.55);display:flex;inset:0;justify-content:center;position:absolute;transition:background .35s cubic-bezier(.4,0,.2,1)}.menu-banners .category-banner:hover .menu-banners .category-banner__overlay{background:rgba(15,76,92,.75)}.menu-banners .category-banner__title{color:#fff;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:clamp(2rem,5vw,3.8rem);font-weight:900;letter-spacing:8px;padding:0 2rem;text-align:center;text-shadow:0 4px 24px rgba(0,0,0,.4);text-transform:uppercase;transition:transform .35s cubic-bezier(.4,0,.2,1),letter-spacing .35s cubic-bezier(.4,0,.2,1)}.menu-banners .category-banner:hover .menu-banners .category-banner__title{color:#e8c468;letter-spacing:10px;transform:scale(1.05)}.menu-detail{background:#f7f3ed;padding:4rem 0 6rem}.menu-detail__layout{display:grid;gap:4rem;grid-template-columns:1fr 300px}@media (max-width:900px){.menu-detail__layout{grid-template-columns:1fr}}.menu-category-nav{background:#fff;border:1px solid #d4e8eb;border-radius:32px;box-shadow:0 8px 32px rgba(15,76,92,.15);height:fit-content;padding:1rem;position:sticky;top:calc(80px + 1.5rem)}.menu-category-nav h3{border-bottom:2px solid rgba(15,76,92,.1);color:#0f4c5c;font-size:.72rem;font-weight:800;letter-spacing:2px;margin-bottom:.5rem;padding:.75rem 1rem}.menu-category-nav a,.menu-category-nav h3{font-family:Montserrat,Helvetica Neue,Arial,sans-serif;text-transform:uppercase}.menu-category-nav a{border-radius:20px;color:#5a7a82;display:block;font-size:.78rem;font-weight:700;letter-spacing:1px;padding:.7rem 1.2rem;transition:all .18s ease}.menu-category-nav a.active,.menu-category-nav a:hover{background:rgba(126,205,214,.15);color:#0f4c5c;padding-left:1.5rem}.menu-category-nav a.active{background:#0f4c5c;color:#fff}.menu-subcat-filter{display:none}@media (max-width:900px){.menu-subcat-filter{backdrop-filter:blur(10px);background:hsla(0,0%,100%,.95);border-bottom:1px solid #d4e8eb;box-shadow:0 2px 12px rgba(15,76,92,.08);display:block;position:sticky;top:80px;z-index:500}}.menu-subcat-filter__inner{display:flex;gap:.5rem;overflow-x:auto;padding:.75rem 1rem;scrollbar-width:none}.menu-subcat-filter__inner::-webkit-scrollbar{display:none}.menu-subcat-filter a{background:transparent;border:2px solid #0f4c5c;border-radius:30px;color:#0f4c5c;flex-shrink:0;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:1px;padding:.55rem 1.2rem;text-transform:uppercase;transition:all .18s ease;white-space:nowrap}.menu-subcat-filter a:hover{background:rgba(15,76,92,.1)}.menu-subcat-filter a.active{background:#0f4c5c;color:#fff}.menu-listing .sous-categorie-block{background:#fff;border:1px solid #d4e8eb;border-radius:32px;box-shadow:0 2px 12px rgba(15,76,92,.08);margin-bottom:6rem;padding:2rem;scroll-margin-top:calc(80px + 2rem)}@media (max-width:900px){.menu-listing .sous-categorie-block{padding:1rem;scroll-margin-top:calc(144px + 1rem)}}.menu-listing .sous-categorie-block__title{border-bottom:2px solid hsla(43,74%,66%,.4);color:#0f4c5c;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:1.1rem;font-weight:900;letter-spacing:2px;margin-bottom:1.25rem;padding-bottom:.75rem;text-transform:uppercase}.plat-item{align-items:flex-start;border-bottom:1px dashed #d4e8eb;border-radius:20px;display:flex;gap:1.5rem;justify-content:space-between;padding:1rem;transition:all .18s ease}.plat-item:hover{background:rgba(15,76,92,.03);transform:translateX(4px)}.plat-item:last-child{border-bottom:none}.plat-item__info{flex:1}.plat-item__name{color:#0f4c5c;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.95rem;font-weight:800;letter-spacing:.5px;margin-bottom:.25rem;text-transform:uppercase}.plat-item__description{color:#5a7a82;font-size:.85rem;line-height:1.6}.plat-item__allergenes{color:#9cb8be;font-size:.72rem;font-style:italic;margin-top:.4rem}.plat-item__price{background:hsla(43,74%,66%,.1);border-radius:20px;color:#c9a84c;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:1.1rem;font-weight:800;padding:.3rem .8rem;white-space:nowrap}.menu-photos-col{display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:calc(80px + 1.5rem)}.menu-photos-col .menu-photo{aspect-ratio:4/5;border-radius:20px;box-shadow:0 8px 32px rgba(15,76,92,.15);overflow:hidden;position:relative}.menu-photos-col .menu-photo img{height:100%;object-fit:cover;transition:transform .55s ease;width:100%}.menu-photos-col .menu-photo:hover img{transform:scale(1.08)}.menu-photos-col .menu-photo:after{border:1px solid hsla(0,0%,100%,.3);border-radius:20px;content:"";inset:0;pointer-events:none;position:absolute}.gallery-section{background:#f7f3ed;padding:4rem 0 6rem}.album-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.album-tabs .album-tab{background:#fff;border:2px solid #d4e8eb;border-radius:50px;color:#5a7a82;cursor:pointer;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:1.5px;padding:.55rem 1.5rem;text-transform:uppercase;transition:all .18s ease}.album-tabs .album-tab.active,.album-tabs .album-tab:hover{background:#0f4c5c;border-color:#0f4c5c;box-shadow:0 8px 32px rgba(15,76,92,.15);color:#fff}.gallery-grid{display:grid;gap:.4rem;grid-template-columns:repeat(4,1fr)}@media (max-width:900px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:600px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}.gallery-item{aspect-ratio:1;border-radius:50px;cursor:pointer;overflow:hidden;position:relative}.gallery-item img{height:100%;object-fit:cover;transition:transform .55s ease;width:100%}.gallery-item__overlay{align-items:center;background:rgba(15,76,92,0);display:flex;inset:0;justify-content:center;position:absolute;transition:background .35s cubic-bezier(.4,0,.2,1)}.gallery-item__overlay .overlay-icon{color:#fff;font-size:2rem;opacity:0;transform:scale(.7);transition:all .35s cubic-bezier(.4,0,.2,1)}.gallery-item:hover img{transform:scale(1.1)}.gallery-item:hover .gallery-item__overlay{background:rgba(15,76,92,.65)}.gallery-item:hover .overlay-icon{opacity:1;transform:scale(1)}.gallery-item__legende{background:linear-gradient(transparent,rgba(15,76,92,.85));bottom:0;color:#fff;font-family:Caveat,cursive;font-size:.78rem;font-size:1rem;left:0;padding:1.5rem .75rem .75rem;position:absolute;right:0;transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1)}.gallery-item:hover .gallery-item__legende{transform:translateY(0)}.lightbox{align-items:center;backdrop-filter:blur(6px);background:rgba(15,76,92,.94);display:none;inset:0;justify-content:center;padding:2rem;position:fixed;z-index:10000}.lightbox.open{display:flex}.lightbox__close{align-items:center;background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.2);border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.3rem;height:48px;justify-content:center;position:absolute;right:1.5rem;top:1.5rem;transition:all .18s ease;width:48px}.lightbox__close:hover{background:#e8c468;border-color:#e8c468;color:#0f4c5c}.lightbox__content{max-height:90vh;max-width:90vw;text-align:center}.lightbox__content img{border-radius:20px;box-shadow:0 20px 80px rgba(0,0,0,.5);max-height:80vh;max-width:100%;object-fit:contain}.lightbox__content .caption{color:hsla(0,0%,100%,.75);font-family:Caveat,cursive;font-size:1.2rem;margin-top:1rem}.lightbox__next,.lightbox__prev{align-items:center;background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:52px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .18s ease;width:52px}.lightbox__next:hover,.lightbox__prev:hover{background:#e8c468;border-color:#e8c468;color:#0f4c5c}.lightbox__prev{left:1rem}.lightbox__next{right:1rem}.lightbox__counter{bottom:1.5rem;color:hsla(0,0%,100%,.5);font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.72rem;left:50%;letter-spacing:2px;position:absolute;transform:translateX(-50%)}.form-section{background:#f7f3ed;padding:6rem 0}.form-section .form-container{background:#fff;border:1px solid #d4e8eb;border-radius:32px;box-shadow:0 8px 32px rgba(15,76,92,.15);margin:0 auto;max-width:680px;padding:4rem}@media (max-width:600px){.form-section .form-container{padding:2rem}}.symfony-form .form-grid{display:grid;gap:1.25rem;grid-template-columns:1fr 1fr}@media (max-width:600px){.symfony-form .form-grid{grid-template-columns:1fr}}.symfony-form .form-group{display:flex;flex-direction:column;gap:.4rem}.symfony-form .form-group.full-width{grid-column:1/-1}.symfony-form .form-group label{color:#0f4c5c;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}.symfony-form .form-group input,.symfony-form .form-group select,.symfony-form .form-group textarea{background:#eff7f8;border:1px solid #d4e8eb;border-radius:20px;color:#1a2a2e;font-family:Inter,Helvetica Neue,Arial,sans-serif;font-size:.95rem;padding:.85rem 1.1rem;transition:all .18s ease}.symfony-form .form-group input::placeholder,.symfony-form .form-group select::placeholder,.symfony-form .form-group textarea::placeholder{color:#9cb8be}.symfony-form .form-group input:focus,.symfony-form .form-group select:focus,.symfony-form .form-group textarea:focus{background:#fff;border-color:#4fb3bf;box-shadow:0 0 0 4px rgba(79,179,191,.15);outline:none}.symfony-form .form-group .error-message{align-items:center;color:#dc3545;display:flex;font-size:.75rem;gap:.3rem;margin-top:.2rem}.symfony-form .form-submit{margin-top:2rem;text-align:center}.symfony-form .form-submit .btn{justify-content:center;min-width:240px}.contact-layout{display:grid;gap:4rem;grid-template-columns:1fr 340px}@media (max-width:900px){.contact-layout{grid-template-columns:1fr}}.contact-info{background:linear-gradient(135deg,#0f4c5c,#1a5f6e);border-radius:32px;box-shadow:0 8px 32px rgba(15,76,92,.15);color:#fff;height:fit-content;padding:2rem}.contact-info h3{border-bottom:1px solid hsla(43,74%,66%,.3);color:#e8c468;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.9rem;font-weight:800;letter-spacing:2px;margin-bottom:1rem;padding-bottom:.5rem;text-transform:uppercase}.contact-info .info-item{align-items:flex-start;border-bottom:1px solid hsla(0,0%,100%,.1);display:flex;gap:1.25rem;padding:1.25rem 0}.contact-info .info-item:last-child{border-bottom:none}.contact-info .info-item .info-icon{align-items:center;background:hsla(43,74%,66%,.15);border:1px solid hsla(43,74%,66%,.3);border-radius:50%;color:#e8c468;display:flex;flex-shrink:0;font-size:1.1rem;height:44px;justify-content:center;width:44px}.contact-info .info-item .info-text h4{color:#fff;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:1px;margin-bottom:.25rem;text-transform:uppercase}.contact-info .info-item .info-text p{color:hsla(0,0%,100%,.8);font-size:.9rem;line-height:1.6}