:root{
  --navy:#234472;--navy-deep:#182b49;--blue:#2c7fb8;--blue-bright:#3b8fcb;--sky:#8fb8d6;
  --cream:#f4ede3;--cream-2:#efe6d8;--sand:#c9aea0;--ink:#20303f;--slate:#5e6b78;
  --serif:'Cormorant Garamond',Georgia,serif;--sans:'Poppins',system-ui,sans-serif;--script:'Dancing Script',cursive;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.7;font-weight:300;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.12}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.fiori{background-image:url('assets/fiore.svg');background-size:150px}
.eyebrow{font-family:var(--sans);font-weight:500;letter-spacing:.34em;text-transform:uppercase;font-size:.72rem;color:var(--blue)}
.eyebrow.light{color:var(--sky)}

/* NAV */
header{position:fixed;top:0;left:0;right:0;z-index:100;transition:.4s;padding:18px 0}
header.scrolled,header.solid{background:rgba(244,237,227,.97);box-shadow:0 4px 24px rgba(35,68,114,.12);padding:9px 0;backdrop-filter:blur(6px)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--script);font-size:1.6rem;color:#fff;transition:color .4s;text-shadow:0 1px 8px rgba(0,0,0,.35)}
header.scrolled .brand,header.solid .brand{color:var(--navy);text-shadow:none}
.brand .mark{width:34px;height:34px;border-radius:50%;background:var(--blue);display:grid;place-items:center;color:#fff;font-family:var(--serif);font-weight:700;font-size:1.05rem;flex:0 0 auto}
.menu{display:flex;align-items:center;gap:26px;list-style:none}
.menu a{font-family:var(--sans);font-weight:400;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.4);transition:.3s;position:relative;padding:4px 0}
header.scrolled .menu a,header.solid .menu a{color:var(--ink);text-shadow:none}
.menu a::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:1.5px;background:var(--blue);transition:width .3s}
.menu a:hover::after{width:100%}
.btn{display:inline-block;font-family:var(--sans);font-weight:500;letter-spacing:.1em;text-transform:uppercase;font-size:.76rem;padding:12px 26px;border-radius:40px;background:var(--blue);color:#fff!important;border:1.5px solid var(--blue);transition:.3s;text-shadow:none!important;cursor:pointer}
.btn:hover{background:transparent;color:var(--blue)!important}
header:not(.scrolled):not(.solid) .btn{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.7);backdrop-filter:blur(4px)}
header:not(.scrolled):not(.solid) .btn:hover{background:#fff;color:var(--navy)!important;border-color:#fff}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.burger span{width:26px;height:2px;background:#fff;transition:.3s}
header.scrolled .burger span,header.solid .burger span{background:var(--navy)}

/* HERO */
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;
  background:linear-gradient(rgba(20,36,61,.56),rgba(20,36,61,.64)),url('assets/hero-food.jpg');background-size:cover;background-position:center}
.hero-inner{padding:130px 24px 90px;max-width:880px}
.hero .sub-title{font-family:var(--sans);letter-spacing:.5em;text-transform:uppercase;font-size:clamp(.75rem,2vw,1rem);color:var(--sky);margin-bottom:18px;padding-left:.5em}
.hero .script{font-family:var(--script);font-size:clamp(3.4rem,10vw,7rem);line-height:.92;color:#fff;text-shadow:0 4px 34px rgba(0,0,0,.45);margin-bottom:20px}
.hero p{font-family:var(--serif);font-size:clamp(1.3rem,2.7vw,1.9rem);font-style:italic;font-weight:400;color:#f3f0ea;max-width:640px;margin:0 auto 34px;text-shadow:0 2px 16px rgba(0,0,0,.4)}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.btn.ghost{background:transparent;border-color:rgba(255,255,255,.75)}
.btn.ghost:hover{background:#fff;color:var(--navy)!important;border-color:#fff}
.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:#fff;font-size:1.4rem;animation:bob 2s infinite;opacity:.85}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,10px)}}

/* SECTION HEAD */
.sec-head{text-align:center;max-width:720px;margin:0 auto 54px}
.sec-head h2{font-size:clamp(2.2rem,5vw,3.5rem);color:var(--navy);margin:12px 0 14px}
.sec-head .lead{font-family:var(--serif);font-size:1.25rem;font-style:italic;color:var(--slate)}
.divider{display:flex;align-items:center;justify-content:center;gap:14px;margin:12px 0}
.divider::before,.divider::after{content:'';height:1px;width:52px;background:var(--sand)}
.divider span{color:var(--blue);font-size:1.1rem}

/* ABOUT */
.about{padding:120px 0;background-color:var(--cream)}
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}
.about-copy .eyebrow{margin-bottom:14px;display:block}
.about-copy h2{font-size:clamp(2rem,4vw,3rem);color:var(--navy);margin-bottom:22px}
.about-copy p{margin-bottom:16px;color:var(--slate);font-size:1.02rem}
.about-copy p:first-of-type::first-letter{font-family:var(--serif);float:left;font-size:3.6rem;line-height:.8;font-weight:700;color:var(--blue);margin:6px 12px 0 0}
.about-visual{text-align:center}
.about-visual .frame{background:var(--cream-2);border:1px solid var(--sand);border-radius:10px;padding:14px 14px 10px;box-shadow:0 30px 60px -30px rgba(35,68,114,.5)}
.about-visual img{margin:0 auto;width:100%;border-radius:6px;aspect-ratio:4/5;object-fit:cover}
.about-visual .cap{font-family:var(--script);color:var(--blue);font-size:1.5rem;margin-top:8px}
.stats{display:flex;gap:34px;margin-top:30px;flex-wrap:wrap}
.stat b{font-family:var(--serif);font-size:2rem;color:var(--blue);display:block;line-height:1}
.stat span{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}

/* MENU TEASER (home) */
.menu-teaser{padding:120px 0;background:var(--navy);color:#fff;background-image:linear-gradient(rgba(24,43,73,.9),rgba(24,43,73,.94)),url('assets/tex-navy.jpg');background-size:cover;background-position:center}
.teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.teaser-img{border-radius:10px;overflow:hidden;box-shadow:0 30px 60px -28px rgba(0,0,0,.6);aspect-ratio:4/3}
.teaser-img img{width:100%;height:100%;object-fit:cover}
.teaser-copy .eyebrow{display:block;margin-bottom:12px}
.teaser-copy h2{font-size:clamp(2rem,4vw,3rem);color:#fff;margin-bottom:18px}
.teaser-copy p{color:#cdd8e6;margin-bottom:16px}
.teaser-copy p:first-of-type::first-letter{font-family:var(--serif);float:left;font-size:3.4rem;line-height:.8;font-weight:700;color:var(--sky);margin:6px 12px 0 0}

/* FULL MENU (menu page) */
.menu-sec{padding:120px 0;background:var(--navy);color:#fff;background-image:linear-gradient(rgba(24,43,73,.93),rgba(24,43,73,.96)),url('assets/tex-navy.jpg');background-size:cover;background-position:center}
.menu-sec .sec-head h2{color:#fff}
.menu-sec .sec-head .lead{color:var(--sky)}
.menu-phone{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;align-items:center;margin:-22px 0 46px;font-family:var(--serif);font-size:1.25rem;color:#fff}
.menu-phone a{color:var(--sky);border-bottom:1px solid rgba(143,184,214,.5)}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px 66px}
.menu-cat{break-inside:avoid;margin-bottom:8px}
.menu-cat h3{font-family:var(--serif);font-size:1.55rem;color:var(--sky);margin-bottom:6px;display:flex;align-items:center;gap:12px}
.menu-cat h3::after{content:'';flex:1;height:1px;background:rgba(143,184,214,.35)}
.dish{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dashed rgba(255,255,255,.13)}
.dish:last-child{border-bottom:0}
.dish .d-name{font-family:var(--serif);font-size:1.16rem;font-weight:500}
.dish .d-desc{font-size:.8rem;color:#bccadb;font-weight:300;margin-top:2px;line-height:1.5}
.dish .d-price{font-family:var(--serif);font-size:1.12rem;color:var(--sky);white-space:nowrap;font-weight:600}
.menu-legend{text-align:center;margin-top:46px;font-size:.8rem;color:#9fb2cc;line-height:2}
.menu-legend b{color:#fff;font-weight:500}
.menu-back{text-align:center;margin-top:44px}

/* WINE */
.wine{padding:120px 0;background-color:var(--cream-2)}
.wine .sec-head h2{color:var(--navy)}
.wine-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px 66px}
.wine-cat h3{font-family:var(--serif);font-size:1.5rem;color:var(--blue);margin-bottom:4px;display:flex;align-items:center;gap:12px}
.wine-cat h3::after{content:'';flex:1;height:1px;background:var(--sand)}
.wrow{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px dashed rgba(35,68,114,.18)}
.wrow:last-child{border-bottom:0}
.wrow .w-name{font-family:var(--serif);font-size:1.12rem;color:var(--ink);font-weight:500}
.wrow .w-sub{font-size:.76rem;color:var(--slate)}
.wrow .w-price{font-family:var(--serif);color:var(--navy);font-weight:600;white-space:nowrap}

/* SPECIALS */
.specials{padding:120px 0;background-color:var(--cream);text-align:center}
.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:16px}
.spec-card{background:var(--cream-2);border:1px solid var(--sand);border-radius:10px;padding:26px 24px 30px;box-shadow:0 24px 46px -30px rgba(35,68,114,.5);transition:transform .4s}
.spec-card:hover{transform:translateY(-6px)}
.spec-plate{width:150px;height:150px;border-radius:50%;object-fit:cover;margin:0 auto 18px;box-shadow:0 10px 24px -8px rgba(35,68,114,.4)}
.spec-card h3{font-size:1.5rem;color:var(--navy);margin-bottom:8px}
.spec-card p{color:var(--slate);font-size:.92rem}
.spec-tag{display:inline-block;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);border:1px solid var(--sand);border-radius:30px;padding:4px 14px;margin-bottom:14px}

/* CONTACT */
.contact{padding:120px 0 0;background:var(--navy);color:#fff;background-image:linear-gradient(rgba(24,43,73,.93),rgba(24,43,73,.96)),url('assets/tex-navy.jpg');background-size:cover}
.contact .sec-head h2{color:#fff}
.contact .sec-head .lead{color:var(--sky)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.info-row{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.info-row .ic{flex:0 0 44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:1.05rem}
.info-row h4{font-family:var(--sans);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;color:var(--sky);margin-bottom:3px}
.info-row p{color:#dbe4ef;font-size:.98rem}
.info-row a:hover{color:var(--sky)}
.hours-line{display:flex;justify-content:space-between;max-width:320px;color:#dbe4ef;font-size:.94rem}
.cta-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.cta-buttons a{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:40px;font-size:.8rem;font-weight:500;letter-spacing:.04em;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.3);transition:.3s}
.cta-buttons a:hover{background:#fff;color:var(--navy)}
.cta-buttons a.wa{background:#25d366;border-color:#25d366;color:#fff}
.cta-buttons a.wa:hover{background:#1eb955}
.map-wrap{border-radius:10px;overflow:hidden;box-shadow:0 26px 50px -28px rgba(0,0,0,.6);min-height:440px;height:100%}
.map-wrap iframe{width:100%;height:100%;min-height:440px;border:0}

/* FOOTER */
footer{background:var(--navy-deep);color:#cdd8e6;padding:64px 0 28px;text-align:center}
footer .fbrand{font-family:var(--script);font-size:2.6rem;color:#fff;margin-bottom:4px}
footer .ftrat{letter-spacing:.42em;text-transform:uppercase;font-size:.7rem;color:var(--sky);margin-bottom:20px}
footer .fmenu{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-bottom:22px;list-style:none}
footer .fmenu a{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:#cdd8e6}
footer .fmenu a:hover{color:#fff}
footer .copy{font-size:.74rem;color:#6f83a0;border-top:1px solid rgba(255,255,255,.08);padding-top:20px;margin-top:20px}

/* REVEAL */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

@media(max-width:880px){
  .menu{position:fixed;inset:0 0 0 auto;width:min(78vw,320px);flex-direction:column;justify-content:center;background:var(--navy);padding:40px;transform:translateX(100%);transition:transform .4s;gap:22px}
  .menu.open{transform:none}
  .menu a{color:#fff!important;text-shadow:none!important;font-size:1rem}
  .burger{display:flex}
  .nav .btn{display:none}
  .about-grid,.contact-grid,.menu-grid,.wine-grid,.teaser-grid{grid-template-columns:1fr;gap:40px}
  .about-visual,.teaser-img{order:-1}
  .spec-grid{grid-template-columns:1fr}
  .about,.menu-teaser,.menu-sec,.wine,.specials,.contact{padding:80px 0}
  .contact{padding-bottom:0}
}
@media(max-width:480px){.wrap{padding:0 20px}.hero .sub-title{letter-spacing:.3em}}
