/* Ocean Echo experience refinement — storytelling, menu, reservations and polished entry transition */
:root{--oe-header-offset:0px;--oe-teal:#0d7271;--oe-deep:#073a3c;--oe-gold:#e2b85c;--oe-shell:#fffdf8;--oe-sand:#f6efe0;--oe-ink:#173f45}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
#root{min-height:100svh;background:#073a3c}
.oe-home-hero:not(.oe-hero-settled){visibility:hidden}
.oe-home-hero:not(.oe-hero-settled) .oe-hero-slide{transition:none!important}
.oe-home-hero.oe-hero-settled .oe-hero-slide{backface-visibility:hidden}

/* Make the hero actions read clearly on bright photography */
.oe-home-hero .hero-content a[href="/reservations"]{background:#e2b85c!important;color:#073a3c!important;box-shadow:0 10px 28px rgba(0,0,0,.22)!important}
.oe-home-hero .hero-content a[href="/menu"]{border-color:rgba(255,255,255,.72)!important;background:rgba(7,58,60,.38)!important;color:#fff!important;backdrop-filter:blur(10px)}
.oe-home-hero .hero-content a[href="/menu"]:hover{background:rgba(255,255,255,.16)!important}

/* Editorial storytelling */
.oe-storytelling{position:relative;overflow:hidden;content-visibility:auto;contain-intrinsic-size:900px;background:linear-gradient(180deg,#fffdf8 0%,#f7f0e3 100%);padding:5.25rem 0}
.oe-storytelling::before{content:"";position:absolute;width:22rem;height:22rem;right:-10rem;top:-11rem;border-radius:50%;background:rgba(18,116,116,.07)}
.oe-storytelling__inner{position:relative;width:min(100% - 2rem,76rem);margin-inline:auto}
.oe-storytelling__head{max-width:46rem;margin:0 auto 2.5rem;text-align:center}
.oe-storytelling__kicker{display:flex;align-items:center;justify-content:center;gap:.75rem;color:#0d7271;font:600 .72rem/1 Outfit,system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase}
.oe-storytelling__kicker::before,.oe-storytelling__kicker::after{content:"";width:2rem;height:1px;background:#d9a441}
.oe-storytelling h2{margin:1rem 0 0;color:#173f45;font:500 clamp(2.15rem,5vw,3.5rem)/1.06 Fraunces,Georgia,serif;letter-spacing:-.02em}
.oe-storytelling__intro{max-width:40rem;margin:.9rem auto 0;color:#5d7070;font:400 1rem/1.7 Outfit,system-ui,sans-serif}
.oe-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}
.oe-story-card{position:relative;min-height:25rem;overflow:hidden;border-radius:1.4rem;background:#073a3c;box-shadow:0 18px 45px rgba(7,58,60,.14);isolation:isolate}
.oe-story-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.oe-story-card::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(4,35,37,.96),rgba(4,35,37,.24) 68%,rgba(4,35,37,.08))}
@media(hover:hover){.oe-story-card:hover img{transform:scale(1.045)}}
.oe-story-card__body{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:1.55rem}
.oe-story-card__tag{color:#f3c664;font:600 .68rem/1 Outfit,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.oe-story-card h3{margin:.55rem 0 0;color:#fff;font:500 clamp(1.65rem,3vw,2.3rem)/1.08 Fraunces,Georgia,serif}
.oe-story-card p{max-width:34rem;margin:.7rem 0 0;color:rgba(255,255,255,.8);font:400 .93rem/1.58 Outfit,system-ui,sans-serif}
.oe-story-card a{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;color:#fff;font:600 .78rem/1 Outfit,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.oe-story-card a::after{content:"→";transition:transform .25s ease}
.oe-story-card a:hover::after{transform:translateX(.25rem)}
.oe-story-card a:focus-visible,.oe-proof-item[href]:focus-visible{outline:2px solid #f3c664;outline-offset:4px;border-radius:.25rem}
.oe-story-card--wide{grid-column:span 2;min-height:23rem}
.oe-story-card--wide .oe-story-card__body{max-width:40rem}
.oe-proof-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1.2rem;overflow:hidden;border:1px solid rgba(7,58,60,.1);border-radius:1.1rem;background:rgba(255,255,255,.72);box-shadow:0 12px 35px rgba(7,58,60,.06)}
.oe-proof-item{display:flex;align-items:center;justify-content:center;gap:.65rem;min-height:4.7rem;padding:.9rem;border-right:1px solid rgba(7,58,60,.1);color:#173f45;font:600 .78rem/1.35 Outfit,system-ui,sans-serif;text-align:center;text-decoration:none}
.oe-proof-item:last-child{border-right:0}.oe-proof-item span:first-child{display:grid;place-items:center;width:1.5rem;height:1.5rem;flex:0 0 auto;border-radius:50%;background:rgba(226,184,92,.22);color:#8b5a0a}
.oe-proof-item[href]:hover{background:rgba(18,116,116,.06)}

/* Menu: sticky, scrollable and self-explanatory */
.oe-menu-sticky{top:var(--oe-header-offset)!important;z-index:45!important;box-shadow:0 12px 30px rgba(7,58,60,.09)!important}
.oe-menu-nav-wrap{position:relative}
.oe-menu-nav-wrap::after{content:"";pointer-events:none;position:absolute;top:0;right:0;bottom:0;width:2.4rem;background:linear-gradient(to right,transparent,#fffdf8 82%)}
.oe-menu-nav-label{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0 .1rem;color:#173f45;font:600 .7rem/1 Outfit,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.oe-menu-nav-label small{color:#758281;font:500 .68rem/1 Outfit,system-ui,sans-serif;letter-spacing:0;text-transform:none}
.oe-menu-tablist{scroll-padding-inline:1rem;padding-right:2.7rem!important;overscroll-behavior-x:contain;scroll-snap-type:x proximity}
.oe-menu-tablist [role="tab"]{scroll-snap-align:center}
.oe-menu-utility{display:flex;align-items:center;justify-content:center;gap:.75rem 1.2rem;flex-wrap:wrap;padding:.72rem 1rem;border-bottom:1px solid rgba(7,58,60,.08);background:#f7f0e3;color:#516564;font:500 .73rem/1.3 Outfit,system-ui,sans-serif;text-align:center}
.oe-menu-utility a{color:#0d7271;font-weight:700;text-decoration:none}
.oe-menu-utility a:hover{text-decoration:underline}
.oe-menu-utility b{color:#173f45}

/* Reservation: clear three-step journey without replacing the working form */
.oe-reservation-guide{margin:0 0 1.4rem;padding:1.15rem;border:1px solid rgba(7,58,60,.11);border-radius:1.25rem;background:linear-gradient(135deg,rgba(18,116,116,.08),rgba(226,184,92,.12));box-shadow:0 12px 30px rgba(7,58,60,.06)}
.oe-reservation-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.oe-reservation-step{display:flex;align-items:center;gap:.55rem;color:#173f45;font:600 .76rem/1.25 Outfit,system-ui,sans-serif}
.oe-reservation-step b{display:grid;place-items:center;width:1.65rem;height:1.65rem;flex:0 0 auto;border-radius:50%;background:#0d7271;color:#fff;font-size:.72rem}
.oe-reservation-progress{margin-top:1rem;padding-top:.9rem;border-top:1px solid rgba(7,58,60,.1)}
.oe-reservation-progress__meta{display:flex;justify-content:space-between;gap:1rem;color:#526765;font:500 .72rem/1 Outfit,system-ui,sans-serif}
.oe-reservation-progress__track{height:.35rem;margin-top:.55rem;overflow:hidden;border-radius:999px;background:rgba(7,58,60,.11)}
.oe-reservation-progress__bar{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#0d7271,#e2b85c);transition:width .25s ease}
.oe-party-quick{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-top:1rem}
.oe-party-quick__label{margin-right:.15rem;color:#526765;font:600 .72rem/1 Outfit,system-ui,sans-serif}
.oe-party-chip{border:1px solid rgba(13,114,113,.22);border-radius:999px;background:#fff;padding:.48rem .72rem;color:#0d7271;font:700 .72rem/1 Outfit,system-ui,sans-serif;cursor:pointer;transition:.2s ease}
.oe-party-chip:hover,.oe-party-chip:focus-visible,.oe-party-chip.is-active{border-color:#0d7271;background:#0d7271;color:#fff;outline:none}
.oe-premium-reservation-form{display:flex!important;flex-direction:column}
.oe-premium-reservation-form>div:has(#res-date){order:1;padding-top:2.4rem;position:relative}
.oe-premium-reservation-form>div:has(#res-date)::before{content:"1 · Choose your visit";position:absolute;top:.15rem;left:0;color:#0d7271;font:700 .72rem/1 Outfit,system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.oe-premium-reservation-form>div:has(#res-name){order:2;padding-top:2.4rem;position:relative}
.oe-premium-reservation-form>div:has(#res-name)::before{content:"2 · Your contact details";position:absolute;top:.15rem;left:0;grid-column:1/-1;color:#0d7271;font:700 .72rem/1 Outfit,system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.oe-premium-reservation-form>div:has(#res-phone){order:3}
.oe-premium-reservation-form>div:has(#res-occasion){order:4;margin-top:2.2rem}
.oe-premium-reservation-form>div:has(#res-occasion)::before{content:"3 · Occasion & requests";position:absolute;left:0;top:-1.7rem;color:#0d7271;font:700 .72rem/1 Outfit,system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.oe-premium-reservation-form>div:has(#res-requests),.oe-premium-reservation-form>div:has(textarea){order:5}
.oe-premium-reservation-form>button{order:6;min-height:3.25rem}
.oe-premium-reservation-form>p{order:7}
.oe-group-note{display:none;margin:.7rem 0 0;padding:.75rem .85rem;border-radius:.8rem;background:rgba(226,184,92,.15);color:#71511a;font:500 .75rem/1.45 Outfit,system-ui,sans-serif}
.oe-group-note.is-visible{display:block}
.oe-group-note a{color:#0d7271;font-weight:700}
.oe-reservation-reassurance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:1rem}
.oe-reservation-reassurance span{padding:.7rem .6rem;border-radius:.75rem;background:#f7f0e3;color:#526765;font:600 .67rem/1.3 Outfit,system-ui,sans-serif;text-align:center}

/* No-script fallback */
.oe-noscript{padding:2rem;background:#fffdf8;color:#173f45;font-family:Outfit,system-ui,sans-serif;text-align:center}
.oe-noscript a{color:#0d7271;font-weight:700}

@media(max-width:767px){
 .oe-firstpaint__content{padding-bottom:8.5rem}
 .oe-storytelling{padding:4.25rem 0}
 .oe-story-grid{grid-template-columns:1fr}
 .oe-story-card,.oe-story-card--wide{grid-column:auto;min-height:23rem}
 .oe-proof-row{grid-template-columns:1fr}
 .oe-proof-item{justify-content:flex-start;min-height:auto;text-align:left;border-right:0;border-bottom:1px solid rgba(7,58,60,.1)}
 .oe-proof-item:last-child{border-bottom:0}
 .oe-menu-nav-label{padding-inline:.1rem}
 .oe-menu-utility{justify-content:flex-start;text-align:left;padding-inline:1rem}
 .oe-reservation-steps{grid-template-columns:1fr}
 .oe-reservation-step{padding:.25rem 0}
 .oe-reservation-reassurance{grid-template-columns:1fr}
 .oe-premium-reservation-form>div:has(#res-date),.oe-premium-reservation-form>div:has(#res-name){padding-top:2.25rem}
}
@media(max-width:380px){.oe-story-card{min-height:21rem}.oe-party-chip{padding:.45rem .6rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.oe-firstpaint__pulse::before{animation:none}.oe-story-card img,.oe-party-chip,.oe-reservation-progress__bar{transition:none}}
