:root{--deep:#0a3a47;--teal:#0f6b78;--coral:#ff6a4d;--sun:#ffc83d;--sand:#fbf5e9;--palm:#2e7d5b;--ink:#17272d}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:'Outfit',system-ui,sans-serif;color:var(--ink);background:#fff;line-height:1.65}
h1,h2,h3,h4,.display{font-family:'Fraunces',Georgia,serif;font-weight:800;letter-spacing:-.01em}
img{max-width:100%;display:block}
.section{padding:6rem 0}
.eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--coral)}
.section-title{font-size:clamp(2rem,4.5vw,3.2rem);color:var(--deep);line-height:1.1}
.btn-coral{background:var(--coral);border:2px solid var(--coral);color:#fff;font-weight:600;padding:.75rem 1.8rem;border-radius:50rem}
.btn-coral:hover{background:#e9553a;border-color:#e9553a;color:#fff}
.btn-ghost{border:2px solid #fff;color:#fff;font-weight:600;padding:.75rem 1.8rem;border-radius:50rem}
.btn-ghost:hover{background:#fff;color:var(--deep)}
.btn-deep{background:var(--deep);color:#fff;border-radius:50rem;padding:.7rem 1.6rem;font-weight:600}
.btn-deep:hover{background:var(--teal);color:#fff}

/* nav */
.navbar{background:rgba(10,58,71,.96);padding:.7rem 0}
.navbar-brand{font-family:'Fraunces',serif;font-weight:800;font-size:1.35rem;color:#fff!important;white-space:nowrap}
.navbar-brand span{color:var(--sun);font-family:'Outfit',sans-serif;font-weight:500;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin-left:.5rem;vertical-align:middle}
.navbar .nav-link{color:rgba(255,255,255,.88);font-weight:500;font-size:.95rem;padding:.5rem .8rem}
.navbar .nav-link:hover{color:var(--sun)}
.navbar-toggler{border-color:rgba(255,255,255,.5)}
.navbar-toggler-icon{filter:invert(1)}
.nav-call{background:var(--coral);color:#fff!important;border-radius:50rem;padding:.45rem 1.1rem!important;font-weight:600}
@media(max-width:575px){.navbar-brand span{display:none}}

/* hero: compact, curved bottom, teal wash */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;padding:7rem 0 9rem;background:url('img/hero.webp') center/cover no-repeat;clip-path:ellipse(120% 100% at 50% 0%)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 75% 65% at 50% 48%,rgba(0,0,0,.35) 0%,rgba(0,0,0,.04) 100%),linear-gradient(to bottom,rgba(10,58,71,.40) 0%,rgba(15,107,120,.12) 45%,rgba(10,58,71,.50) 100%)}
.hero-content{position:relative;max-width:760px;margin:0 auto;padding:2.5rem 2rem;border-radius:1.5rem;background:rgba(0,0,0,.20);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.hero-eyebrow{font-size:.85rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--sun);text-shadow:0 0 3px rgba(0,0,0,1),0 1px 12px rgba(0,0,0,.95),0 0 30px rgba(0,0,0,.8)}
.hero-title{font-size:clamp(3rem,9vw,6rem);line-height:1;margin:.6rem 0 .3rem;text-shadow:0 0 4px rgba(0,0,0,1),0 2px 20px rgba(0,0,0,.95),0 0 60px rgba(0,0,0,.8)}
.hero-subtitle{font-family:'Fraunces',serif;font-style:italic;font-weight:600;font-size:clamp(1.4rem,3.5vw,2.1rem);text-shadow:0 0 3px rgba(0,0,0,1),0 2px 16px rgba(0,0,0,.95),0 0 40px rgba(0,0,0,.85)}
.hero-tagline{font-size:1.1rem;margin:1rem 0 1.8rem;text-shadow:0 0 3px rgba(0,0,0,1),0 1px 12px rgba(0,0,0,.95),0 0 30px rgba(0,0,0,.9)}

/* highlights */
.highlights{margin-top:-4.5rem;position:relative;z-index:2}
.hl{background:var(--sand);border-radius:1rem;padding:1.6rem 1rem;text-align:center;height:100%;box-shadow:0 10px 30px rgba(10,58,71,.12)}
.hl i{font-size:1.9rem;color:var(--coral)}
.hl h3{font-size:1.05rem;margin:.5rem 0 .2rem;color:var(--deep)}
.hl p{margin:0;font-size:.9rem;color:#4a5a60}

.photo{width:100%;height:auto;border-radius:1.25rem;box-shadow:0 18px 40px rgba(10,58,71,.18);object-fit:cover}
.photo-tall{aspect-ratio:4/3}

/* dining feature */
.dining{background:var(--sand)}
.feature-img{width:100%;aspect-ratio:7/3;object-fit:cover;border-radius:1.25rem}
.feature-img-sm{width:100%;aspect-ratio:7/3;object-fit:cover;border-radius:1.25rem}

/* menu */
.menu-tabs{gap:.5rem;justify-content:center;border:0}
.menu-tabs .nav-link{color:var(--deep);border:2px solid var(--deep);border-radius:50rem;font-weight:600;padding:.45rem 1.2rem}
.menu-tabs .nav-link.active{background:var(--deep);color:#fff}
.menu-cat{font-size:1.5rem;color:var(--coral);border-bottom:2px dotted rgba(10,58,71,.25);padding-bottom:.4rem;margin:2rem 0 1rem}
.menu-note{font-style:italic;color:#5a6a70;font-size:.92rem;margin:-.5rem 0 1rem}
.item{margin-bottom:.9rem}
.item b{font-weight:600;color:var(--deep)}
.item small{display:block;color:#5a6a70;font-size:.88rem;line-height:1.4}
.menu-foot{font-size:.85rem;color:#5a6a70;text-align:center;margin-top:2.5rem}

/* drinks */
.drinks{background:var(--deep);color:#fff}
.drinks .section-title{color:#fff}
.drinks .eyebrow{color:var(--sun)}
.drinks .menu-cat{color:var(--sun);border-color:rgba(255,255,255,.25);font-size:1.3rem;margin:1.6rem 0 .8rem}
.drinks .item b{color:#fff}
.drinks .item small{color:rgba(255,255,255,.75)}

/* events */
.live{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:1.25rem}

/* gallery */
.gal{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:1rem;transition:transform .3s}
.gal:hover{transform:scale(1.03)}

/* story */
.story{background:var(--sand)}
.story a{color:var(--teal);font-weight:600}
.partner{border:2px solid var(--deep);border-radius:1rem;padding:1.2rem 1.4rem;height:100%;background:#fff}
.partner h3{font-size:1.1rem;color:var(--deep)}

/* visit */
.info-card{background:var(--sand);border-radius:1.25rem;padding:2rem}
.info-row{display:flex;gap:1rem;margin-bottom:1.2rem}
.info-row i{color:var(--coral);font-size:1.4rem}
.info-row h3{font-size:1rem;margin:0;color:var(--deep);font-family:'Outfit',sans-serif;font-weight:600}
.info-row p{margin:0}
.map{border:0;width:100%;height:100%;min-height:340px;border-radius:1.25rem}
.entrance{width:100%;aspect-ratio:7/3;object-fit:cover;border-radius:1.25rem}

/* footer */
footer{background:#06222b;color:rgba(255,255,255,.8);padding:4rem 0 2rem}
footer h3{color:#fff;font-size:1.4rem}
footer a{color:rgba(255,255,255,.85);text-decoration:none}
footer a:hover{color:var(--sun)}
.social a{display:inline-flex;width:2.6rem;height:2.6rem;border:1px solid rgba(255,255,255,.35);border-radius:50%;align-items:center;justify-content:center;font-size:1.1rem}
.powered{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.15);text-align:center;font-size:.9rem}
.powered a{background:var(--coral);color:#fff;padding:.35rem .9rem;border-radius:50rem;font-weight:600;margin-left:.3rem}
@media(max-width:767px){.section{padding:4rem 0}.hero{padding:6rem 0 8rem;min-height:80vh}.hero-content{padding:1.8rem 1.2rem}}
@media(max-width:575px){.row.g-5{--bs-gutter-x:1.5rem}}
