/* ============================================================
   L'espuma — Site DA « Carte été »
   Marine #16386E · Cobalt #1E5AA8 · Jaune #E3A008 · Blanc/Crème
   Yellowtail (script) · Poppins (texte) · Montserrat (labels)
   ============================================================ */

:root{
  --navy:#16386E;
  --navy-deep:#0F2A55;
  --blue:#1E5AA8;
  --blue-soft:#4E86C8;
  --gold:#E3A008;
  --gold-deep:#C98A00;
  --gold-soft:#F2C75A;
  --terra:#C85A2A;
  --cream:#FCFBF6;
  --cream-warm:#F7F2E6;
  --white:#FFFFFF;
  --ink:#23303F;
  --grey:#6E6A62;
  --line:rgba(22,56,110,0.16);

  --script:"Yellowtail", cursive;
  --sans:"Poppins", system-ui, sans-serif;
  --label:"Montserrat", system-ui, sans-serif;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
a[href^="tel:"]{ white-space:nowrap; }
section{ position:relative; }

/* ---- helpers ---- */
.wrap{ max-width:1240px; margin:0 auto; padding:0 clamp(20px,5vw,64px); }
.eyebrow{
  font-family:var(--label); font-weight:600;
  font-size:13px; letter-spacing:0.32em; text-transform:uppercase;
  color:var(--blue); padding-left:0.32em;
}
.eyebrow.on-navy{ color:var(--gold-soft); }
.script-accent{
  font-family:var(--script); color:var(--gold);
  font-size:clamp(30px,4vw,52px); line-height:1; display:block;
}
.h-title{
  font-family:var(--sans); font-weight:700;
  font-size:clamp(28px,3.8vw,48px); line-height:1.05;
  letter-spacing:-0.015em; color:var(--navy); text-transform:uppercase;
  text-wrap:balance;
}
.on-navy .h-title, .h-title.on-navy{ color:var(--white); }
.lead{ font-size:clamp(15px,1.2vw,17px); color:var(--grey); line-height:1.6; text-wrap:pretty; }

/* ---- section label pill (marine) ---- */
.pill{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--navy); color:var(--gold);
  border-radius:100px; padding:6px 22px 9px;
  box-shadow:0 8px 22px rgba(22,56,110,0.16);
}
.pill span{ font-family:var(--script); font-size:21px; line-height:0.7; padding-top:3px; }
.pill.ghost{ background:transparent; border:1.5px solid var(--navy); color:var(--navy); box-shadow:none; }

/* ---- buttons ---- */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--label); font-weight:600;
  font-size:12px; letter-spacing:0.13em; text-transform:uppercase;
  padding:13px 26px; border-radius:100px;
  border:1.6px solid transparent; cursor:pointer;
  transition:transform .25s cubic-bezier(.22,1,.36,1), box-shadow .25s, background .2s, color .2s;
  white-space:nowrap;
}
.btn .ar{ transition:transform .25s; }
.btn:hover .ar{ transform:translateX(4px); }
.btn-gold{ background:var(--gold); color:var(--navy); box-shadow:0 10px 26px rgba(227,160,8,0.32); }
.btn-gold:hover{ transform:translateY(-3px); box-shadow:0 16px 34px rgba(227,160,8,0.42); }
.btn-navy{ background:var(--navy); color:var(--cream); }
.btn-navy:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(22,56,110,0.3); }
.btn-outline{ border-color:var(--navy); color:var(--navy); }
.btn-outline:hover{ background:var(--navy); color:var(--cream); transform:translateY(-3px); }
.btn-ghost-light{ border-color:rgba(252,251,246,0.6); color:var(--cream); }
.btn-ghost-light:hover{ background:var(--cream); color:var(--navy); }

/* ---- announcement bar ---- */
.annbar{
  background:var(--navy-deep); color:var(--cream);
  font-family:var(--sans); font-size:13.5px; letter-spacing:0.02em;
}
.annbar .wrap{ display:flex; align-items:center; justify-content:space-between; gap:18px; padding-top:9px; padding-bottom:9px; }
.annbar strong{ color:var(--gold-soft); font-weight:600; }
.annbar a{ color:var(--cream); border-bottom:1px dotted rgba(252,251,246,0.5); transition:color .2s; }
.annbar a:hover{ color:var(--gold-soft); }
.annbar .right{ display:flex; gap:22px; align-items:center; white-space:nowrap; }
.annbar .left{ white-space:nowrap; }
@media (max-width:760px){ .annbar .left{ display:none; } .annbar .wrap{ justify-content:center; } }

/* ---- header ---- */
.hd{ position:-webkit-sticky; position:sticky; top:0; z-index:100; background:rgba(252,251,246,0.97); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); transition:box-shadow .3s,padding .3s; }
.hd.scrolled{ box-shadow:0 12px 30px rgba(15,26,60,0.10); }
.hd .wrap{ display:flex; align-items:center; justify-content:space-between; gap:26px; padding-top:14px; padding-bottom:14px; transition:padding .3s; }
.hd.scrolled .wrap{ padding-top:9px; padding-bottom:9px; }
.hd-logo img{ height:50px; width:auto; transition:height .3s; }
.hd.scrolled .hd-logo img{ height:42px; }
.hd-nav{ display:flex; gap:clamp(18px,2.4vw,38px); align-items:center; }
.hd-nav a{ font-family:var(--label); font-weight:600; font-size:13px; letter-spacing:0.13em; text-transform:uppercase; color:var(--navy); padding:8px 0; position:relative; }
.hd-nav a::after{ content:""; position:absolute; left:0; bottom:2px; width:0; height:2.5px; background:var(--gold); transition:width .35s cubic-bezier(.22,1,.36,1); }
.hd-nav a:hover::after, .hd-nav a.active::after{ width:100%; }
.hd-nav a.active{ color:var(--blue); }
.hd-right{ display:flex; align-items:center; gap:20px; }
.hd-tel{ font-family:var(--script); font-size:20px; color:var(--navy); white-space:nowrap; transition:color .2s; }
.hd-tel:hover{ color:var(--gold-deep); }
.hd-burger{ display:none; width:48px; height:48px; border:1.5px solid var(--navy); border-radius:50%; flex-direction:column; align-items:center; justify-content:center; gap:5px; background:transparent; }
.hd-burger span{ width:18px; height:2px; background:var(--navy); transition:transform .3s,opacity .2s; }
.hd-burger.x span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hd-burger.x span:nth-child(2){ opacity:0; }
.hd-burger.x span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media (max-width:1040px){ .hd-nav,.hd-tel{ display:none; } .hd-burger{ display:flex; } }
@media (max-width:520px){ .hd-cta{ display:none; } }

/* ---- mobile nav ---- */
.mnav{ position:fixed; inset:0; z-index:95; background:var(--navy); color:var(--cream); display:flex; flex-direction:column; justify-content:flex-start; gap:clamp(16px,3.2vh,32px); padding:96px clamp(28px,8vw,72px) calc(40px + env(safe-area-inset-bottom)); overflow-y:auto; -webkit-overflow-scrolling:touch; animation:fade .35s both; }
.mnav[hidden]{ display:none; }
.mnav::-webkit-scrollbar{ width:0; height:0; }
@keyframes fade{ from{opacity:0} to{opacity:1} }
.mnav nav{ display:flex; flex-direction:column; }
.mnav nav a{ font-family:var(--script); font-size:clamp(34px,8vw,52px); color:var(--cream); padding:10px 0; border-bottom:1px dashed rgba(252,251,246,0.16); transition:color .2s,padding-left .25s; }
.mnav nav a:hover{ color:var(--gold-soft); padding-left:10px; }
.mnav .foot{ display:flex; flex-direction:column; align-items:flex-start; gap:20px; margin-top:28px; }
.mnav .foot .btn{ align-self:flex-start; box-shadow:none; padding:14px 30px; }
.mnav .foot .tel{ font-family:var(--script); font-size:32px; color:var(--gold-soft); line-height:1; }
.mnav .foot p{ font-size:14px; color:rgba(252,251,246,0.72); line-height:1.8; margin-top:-4px; }

/* ---- decorative leaves & lemons ---- */
.leaf{ position:absolute; pointer-events:none; z-index:1; }
.lemon{ position:absolute; pointer-events:none; z-index:1; }
.azulejo-strip{
  height:14px; width:100%;
  background:url("assets/azulejo.svg") repeat-x center/auto 28px;
  opacity:0.9;
}
.azulejo-strip.tall{ height:28px; background-size:auto 56px; }

/* full-section mosaic backdrop — foreground stays fully opaque above it */
.has-mosaic{ position:relative; overflow:hidden; }
.has-mosaic::before{ content:""; position:absolute; inset:0; background:url("assets/azulejo.svg") repeat center/118px; opacity:0.07; pointer-events:none; z-index:0; }
.has-mosaic > *{ position:relative; z-index:1; }

/* ---- home « L'art des saveurs » cards ---- */
.flavors{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.flavor{ background:var(--white); border:1.5px solid var(--line); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 14px 34px rgba(15,26,60,0.08); transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s; }
.flavor:hover{ transform:translateY(-6px); box-shadow:0 24px 50px rgba(15,26,60,0.15); }
.flavor-ph{ aspect-ratio:4/3; overflow:hidden; }
.flavor-ph img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.22,1,.36,1); }
.flavor:hover .flavor-ph img{ transform:scale(1.06); }
.flavor-body{ padding:24px 26px 26px; display:flex; flex-direction:column; gap:8px; flex:1; }
.flavor .eb{ font-family:var(--label); font-weight:600; font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--blue); }
.flavor h3{ font-family:var(--script); font-size:30px; color:var(--navy); line-height:0.9; }
.flavor p{ font-size:14px; color:var(--grey); line-height:1.55; flex:1; margin:2px 0 4px; }
.flavor-link{ font-family:var(--label); font-weight:600; font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-deep); display:inline-flex; align-items:center; gap:8px; }
.flavor-link .ar{ transition:transform .25s; }
.flavor:hover .flavor-link .ar{ transform:translateX(4px); }
@media (max-width:860px){ .flavors{ grid-template-columns:1fr; } }

/* ---- shared reservation widget ---- */
.rw{ background:var(--cream); border:1.5px solid var(--line); border-radius:14px; padding:clamp(16px,2vw,22px); box-shadow:0 26px 60px rgba(15,26,60,0.18); max-width:1000px; margin:0 auto; text-align:left; }
.rw-row{ display:grid; grid-template-columns:1.5fr 1fr 1fr 0.85fr; gap:12px; align-items:end; }
.rw-row3{ grid-template-columns:1fr 1fr 1fr; margin-top:12px; }
.rw-field{ display:flex; flex-direction:column; gap:6px; }
.rw-lab{ font-family:var(--label); font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--blue); font-weight:600; }
.rw-seg{ display:flex; border:1.5px solid rgba(22,56,110,0.22); border-radius:8px; overflow:hidden; }
.rw-seg button{ flex:1; padding:11px 8px; font-family:var(--sans); font-weight:600; font-size:14px; color:var(--navy); background:var(--white); cursor:pointer; border:none; transition:background .2s,color .2s; }
.rw-seg button + button{ border-left:1.5px solid rgba(22,56,110,0.22); }
.rw-seg button.on{ background:var(--navy); color:var(--gold); }
.rw input, .rw select{ font-family:var(--sans); font-size:15px; padding:11px 12px; border:1.5px solid rgba(22,56,110,0.22); border-radius:8px; background:var(--white); color:var(--ink); width:100%; }
.rw input:focus, .rw select:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(227,160,8,0.16); }
.rw-foot{ display:flex; justify-content:space-between; align-items:center; gap:16px 20px; margin-top:18px; flex-wrap:wrap; }
.rw-note{ font-size:12.5px; color:var(--grey); line-height:1.5; flex:1 1 240px; }
.rw-note::before{ content:"✓ "; color:var(--gold-deep); font-weight:700; }
.rw-foot .btn{ flex:0 0 auto; }
.rw-hp{ position:absolute; left:-9999px; }
.rw-done{ text-align:center; padding:28px 16px; }
.rw-done .check{ width:58px; height:58px; border-radius:50%; background:var(--gold); color:var(--navy); font-size:26px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; margin-bottom:12px; }
.rw-done h3{ font-family:var(--script); font-size:28px; color:var(--navy); margin-bottom:6px; }
.rw-done p{ font-size:14px; color:var(--ink); max-width:460px; margin:0 auto; line-height:1.5; }
@media (max-width:860px){ .rw-row{ grid-template-columns:1fr 1fr; } .rw-row3{ grid-template-columns:1fr; } }
@media (max-width:560px){
  .rw-row{ grid-template-columns:1fr; }
  .rw-foot{ flex-direction:column; align-items:stretch; gap:14px; }
  .rw-foot .btn{ width:100%; justify-content:center; }
  .rw-note{ text-align:center; flex:none; }
}

/* ---- hero (full-bleed photo) ---- */
.hero{ position:relative; min-height:clamp(540px,82vh,740px); display:flex; align-items:center; overflow:hidden; background:var(--navy-deep); color:var(--cream); }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,26,58,0.58) 0%, rgba(13,26,58,0.5) 38%, rgba(13,26,58,0.74) 100%), radial-gradient(120% 80% at 50% 60%, transparent 30%, rgba(13,26,58,0.45) 100%); }
.hero .leaf.tl{ width:clamp(210px,28vw,440px); top:-7%; left:-3%; transform:scaleY(-1) rotate(8deg); z-index:2; opacity:1; }
.hero .leaf.tr{ width:clamp(210px,28vw,440px); top:-7%; right:-3%; transform:scale(-1,-1) rotate(8deg); z-index:2; opacity:1; }
.hero .lemon-s{ position:absolute; z-index:2; pointer-events:none; filter:drop-shadow(0 8px 18px rgba(0,0,0,0.3)); }
.hero .lemon-s.a{ width:clamp(72px,9vw,132px); bottom:9%; left:4.5%; transform:rotate(-14deg); }
.hero .lemon-s.b{ width:clamp(56px,6vw,98px); top:22%; right:5%; transform:rotate(16deg); }
.hero-inner{ position:relative; z-index:3; max-width:840px; margin:0 auto; text-align:center; padding:clamp(72px,11vw,120px) 0; }
.hero .eyebrow{ color:var(--gold-soft); }
.hero h1{ font-family:var(--script); font-weight:400; font-size:clamp(50px,8.5vw,112px); line-height:0.94; color:#fff; margin:8px 0 0; text-shadow:0 6px 30px rgba(0,0,0,0.34); }
.hero h1 em{ color:var(--gold-soft); font-style:normal; }
.hero .sub{ font-size:clamp(16px,1.5vw,20px); color:rgba(252,251,246,0.96); max-width:580px; margin:18px auto 0; line-height:1.55; text-wrap:pretty; text-shadow:0 2px 16px rgba(0,0,0,0.5); }
.hero .acts{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:30px; }
.hero .trust{ display:inline-flex; align-items:center; gap:11px; flex-wrap:wrap; justify-content:center; margin-top:26px; font-size:13.5px; color:rgba(252,251,246,0.92); }
.hero .trust .stars{ color:var(--gold-soft); letter-spacing:0.1em; font-size:16px; }
.hero .trust strong{ font-family:var(--script); font-size:22px; color:#fff; }
.hero .trust .sep{ color:rgba(252,251,246,0.4); }
@media (max-width:640px){ .hero{ min-height:0; } }

/* ---- after work section ---- */
.afterwork{ position:relative; overflow:hidden; background:var(--navy); color:var(--cream); padding:clamp(48px,7vw,92px) 0; }
.afterwork .azulejo-bg{ position:absolute; inset:0; background:url("assets/azulejo.svg") repeat center/120px; opacity:0.10; }
.aw-grid{ position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; }
.aw-text .pill{ margin-bottom:16px; }
.aw-text h2{ font-family:var(--sans); font-weight:700; font-size:clamp(30px,4vw,52px); line-height:1.02; text-transform:uppercase; letter-spacing:-0.01em; margin:0; }
.aw-text h2 em{ font-family:var(--script); font-style:normal; text-transform:none; color:var(--gold-soft); font-weight:400; font-size:1.18em; display:inline-block; line-height:0.9; margin-top:4px; }
.aw-text p{ font-size:clamp(15px,1.4vw,18px); color:rgba(252,251,246,0.86); line-height:1.6; margin:18px 0 0; max-width:520px; }
.aw-badges{ display:flex; gap:12px; flex-wrap:wrap; margin:24px 0 28px; }
.aw-badges span{ display:inline-flex; align-items:center; gap:8px; background:rgba(252,251,246,0.08); border:1px solid rgba(252,251,246,0.22); border-radius:100px; padding:10px 18px; font-family:var(--label); font-weight:600; font-size:12.5px; letter-spacing:0.04em; color:var(--cream); }
.aw-photo{ position:relative; margin:0; border-radius:14px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 26px 56px rgba(0,0,0,0.34); }
.aw-photo img{ width:100%; height:100%; object-fit:cover; }
.aw-photo .aw-leaf{ position:absolute; top:-16px; right:-14px; width:120px; height:auto; transform:scale(-1,-1) rotate(8deg); opacity:0.9; }
@media (max-width:860px){ .aw-grid{ grid-template-columns:1fr; } .aw-photo{ order:-1; aspect-ratio:16/10; } }

/* ---- marquee ---- */
.marquee{ background:var(--navy); color:var(--cream); overflow:hidden; padding:16px 0; border-top:3px solid var(--gold); }
.marquee-track{ display:flex; gap:48px; white-space:nowrap; width:max-content; animation:scroll 38s linear infinite; }
.marquee-track span{ font-family:var(--script); font-size:24px; color:var(--cream); display:inline-flex; align-items:center; gap:48px; }
.marquee-track span::after{ content:""; display:inline-block; width:17px; height:17px; background:url("assets/olive.svg") center/contain no-repeat; vertical-align:middle; }
@keyframes scroll{ to{ transform:translateX(-50%); } }

/* ---- generic section ---- */
.section{ padding:clamp(44px,6vw,84px) 0; }
.section.cream{ background:var(--cream); }
.section.white{ background:var(--white); }
.section.warm{ background:var(--cream-warm); }
.sec-head{ text-align:center; max-width:760px; margin:0 auto clamp(34px,5vw,60px); display:flex; flex-direction:column; align-items:center; gap:16px; }

/* ---- histoire ---- */
.story-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(32px,5vw,68px); align-items:center; }
.story-body .eyebrow{ display:block; margin-bottom:10px; }
.story-body h2{ font-family:var(--sans); font-weight:700; font-size:clamp(26px,3vw,40px); line-height:1.05; color:var(--navy); text-transform:uppercase; letter-spacing:-0.01em; }
.story-body h2 em{ font-family:var(--script); font-style:normal; text-transform:none; color:var(--gold); font-weight:400; font-size:1.05em; display:block; line-height:0.9; margin-top:4px; }
.story-body p{ margin-top:20px; color:var(--ink); font-size:17px; line-height:1.7; }
.story-tags{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.story-tags .t{ font-family:var(--label); font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--navy); border:1.5px solid var(--navy); border-radius:100px; padding:7px 16px; }
.story-stats{ display:flex; gap:34px; margin-top:30px; flex-wrap:wrap; }
.story-stats .v{ font-family:var(--script); font-size:42px; color:var(--gold); line-height:0.8; }
.story-stats .l{ font-family:var(--label); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--grey); margin-top:8px; }
.story-art{ position:relative; aspect-ratio:4/5; background:var(--navy); border-radius:6px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.story-art .story-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.story-art .azulejo-bg{ position:absolute; inset:0; background:url("assets/azulejo.svg") repeat center/120px; opacity:0.22; }
.story-art .leaf{ width:70%; opacity:0.95; }
.story-art .lemon{ width:46%; position:absolute; bottom:8%; right:6%; transform:rotate(-8deg); }
.story-art .stamp{ position:absolute; top:22px; left:22px; width:96px; height:96px; border:2px dashed var(--gold-soft); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--cream); font-family:var(--script); font-size:17px; line-height:1; transform:rotate(-8deg); }
.story-art .stamp b{ color:var(--gold-soft); font-size:13px; font-family:var(--label); letter-spacing:0.1em; text-transform:uppercase; margin-bottom:3px; font-weight:600; }
.story-art .leaf.corner{ position:absolute; width:130px; top:-22px; left:-18px; transform:scaleY(-1) rotate(8deg); opacity:0.95; }

/* ---- galerie ---- */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.gallery figure{ position:relative; margin:0; border-radius:6px; overflow:hidden; aspect-ratio:3/4; }
.gallery figure.wide{ grid-column:span 2; aspect-ratio:3/2; }
.gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.22,1,.36,1); }
.gallery figure:hover img{ transform:scale(1.06); }
@media (max-width:820px){ .gallery{ grid-template-columns:1fr 1fr; } .gallery figure.wide{ grid-column:span 2; } }
@media (max-width:880px){ .story-grid{ grid-template-columns:1fr; } .story-art{ aspect-ratio:16/12; } }

/* ---- carte teaser ---- */
.cat-row{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-bottom:clamp(34px,4vw,52px); }
.cat-chip{ font-family:var(--label); font-weight:600; font-size:12.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--navy); border:1.5px solid var(--navy); border-radius:100px; padding:10px 22px; transition:all .2s; }
.cat-chip:hover{ background:var(--navy); color:var(--cream); transform:translateY(-2px); }
.menu-cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); max-width:1060px; margin:0 auto; }
.menu-col h3{ display:flex; justify-content:center; margin-bottom:18px; }
.dish{ padding:13px 0; border-bottom:1px dotted rgba(22,56,110,0.22); }
.dish-top{ display:flex; align-items:baseline; gap:10px; }
.dish-top .n{ font-family:var(--sans); font-weight:500; font-size:17px; color:var(--blue); }
.dish-top .dots{ flex:1; border-bottom:1.4px dotted rgba(22,56,110,0.3); transform:translateY(-4px); min-width:14px; }
.dish-top .p{ font-family:var(--sans); font-weight:600; font-size:17px; color:var(--gold); white-space:nowrap; }
.dish .d{ font-size:13px; color:var(--grey); margin-top:3px; }
.carte-cta{ text-align:center; margin-top:clamp(34px,4vw,52px); }
@media (max-width:820px){ .menu-cols{ grid-template-columns:1fr; } }

/* ---- avis ---- */
.avis-badge{ display:flex; align-items:baseline; justify-content:center; gap:14px; flex-wrap:wrap; font-size:15.5px; color:var(--ink); margin-bottom:clamp(30px,4vw,46px); }
.avis-badge .stars{ color:var(--gold); letter-spacing:0.12em; font-size:18px; }
.avis-badge strong{ font-family:var(--script); font-size:28px; color:var(--navy); }
.avis-badge a{ color:var(--blue); border-bottom:1px solid currentColor; font-family:var(--label); font-weight:600; font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase; }
.avis-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.avis-card{ background:var(--cream); border:1.5px solid var(--line); border-radius:6px; padding:34px 30px 26px; position:relative; transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s; }
.avis-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(15,26,60,0.12); }
.avis-card::before{ content:"“"; position:absolute; top:2px; left:18px; font-family:var(--script); font-size:64px; color:var(--gold-soft); line-height:1; }
.avis-card blockquote{ margin:24px 0 22px; font-size:16px; line-height:1.62; color:var(--ink); }
.avis-card figcaption{ display:flex; align-items:center; gap:14px; }
.avis-card .ini{ width:46px; height:46px; border-radius:50%; background:var(--navy); color:var(--gold); font-family:var(--script); font-size:22px; display:flex; align-items:center; justify-content:center; }
.avis-card figcaption strong{ display:block; font-size:15px; color:var(--navy); }
.avis-card figcaption em{ font-size:11.5px; color:var(--grey); font-style:normal; letter-spacing:0.08em; text-transform:uppercase; }
@media (max-width:920px){ .avis-grid{ grid-template-columns:1fr; } }

/* ---- réservation band (navy) ---- */
.resa{ background:var(--navy); color:var(--cream); text-align:center; padding:clamp(56px,8vw,104px) 0; overflow:hidden; }
.resa .azulejo-bg{ position:absolute; inset:0; background:url("assets/azulejo.svg") repeat center/120px; opacity:0.10; }
.resa .leaf.l{ width:clamp(160px,20vw,300px); bottom:-12%; left:-3%; opacity:0.5; }
.resa .leaf.r{ width:clamp(140px,16vw,240px); top:-16%; right:-2%; transform:scale(-1,-1); opacity:0.42; }
.resa .inner{ position:relative; z-index:3; max-width:760px; margin:0 auto; }
.resa h2{ font-family:var(--sans); font-weight:700; font-size:clamp(30px,4vw,48px); line-height:1.04; text-transform:uppercase; letter-spacing:-0.01em; }
.resa h2 em{ font-family:var(--script); font-style:normal; text-transform:none; color:var(--gold-soft); font-size:1.12em; display:inline-block; font-weight:400; }
.resa p{ font-size:clamp(17px,1.6vw,20px); color:rgba(252,251,246,0.86); margin:18px auto 0; max-width:560px; }
.resa .acts{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:32px; }
.resa .tel{ display:block; margin-top:24px; font-family:var(--script); font-size:22px; color:var(--gold-soft); }
.resa .tel a{ color:var(--gold-soft); border-bottom:1px dotted currentColor; }

/* ---- reservation widget ---- */
.resa-widget{ background:var(--cream); border-radius:10px; padding:clamp(22px,3vw,36px); max-width:900px; margin:30px auto 22px; text-align:left; box-shadow:0 30px 70px rgba(0,0,0,0.30); position:relative; z-index:3; }
.resa-widget .row{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:15px; }
.resa-widget .row + .row{ margin-top:15px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-family:var(--label); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--blue); font-weight:600; }
.field input, .field select{ font-family:var(--sans); font-size:15px; padding:12px 14px; border:1.5px solid rgba(22,56,110,0.22); border-radius:6px; background:var(--white); color:var(--ink); width:100%; }
.field input:focus, .field select:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(227,160,8,0.16); }
.resa-widget .submit-row{ display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:20px; flex-wrap:wrap; }
.resa-widget .note{ font-size:12.5px; color:var(--grey); max-width:380px; line-height:1.45; }
.resa-ok{ background:var(--cream); border-radius:10px; max-width:900px; margin:30px auto 22px; padding:40px 28px; text-align:center; position:relative; z-index:3; box-shadow:0 30px 70px rgba(0,0,0,0.30); }
.resa-ok .check{ width:60px; height:60px; border-radius:50%; background:var(--gold); color:var(--navy); font-size:28px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; margin-bottom:14px; }
.resa-ok h3{ font-family:var(--script); font-size:30px; color:var(--navy); margin-bottom:8px; }
.resa-ok p{ color:var(--ink); font-size:15px; max-width:460px; margin:0 auto; }
@media (max-width:720px){ .resa-widget .row{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .resa-widget .row{ grid-template-columns:1fr; } }

/* ---- accès ---- */
.acces-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4vw,56px); align-items:stretch; }
.acces-info .pill{ margin-bottom:24px; }
.acces-addr{ font-family:var(--script); font-size:30px; color:var(--navy); line-height:1.15; }
.acces-meta{ font-size:16px; color:var(--ink); margin-top:16px; line-height:1.9; }
.acces-meta strong{ color:var(--blue); }
.hours{ margin-top:26px; border:1.5px solid var(--line); border-radius:6px; overflow:hidden; }
.hours table{ width:100%; border-collapse:collapse; }
.hours td{ padding:11px 18px; font-size:15px; border-bottom:1px solid var(--line); }
.hours tr:last-child td{ border-bottom:none; }
.hours td:last-child{ text-align:right; color:var(--grey); }
.hours tr.today{ background:rgba(227,160,8,0.1); }
.hours tr.today td{ color:var(--navy); font-weight:600; }
.hours tr.closed td:last-child{ color:var(--terra); }
.acces-card{ position:relative; background:var(--navy); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; padding:40px; min-height:340px; text-align:center; }
.acces-card .acces-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.acces-card .acces-scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,26,60,0.25) 0%, rgba(15,26,60,0.78) 100%); }
.acces-card .azulejo-bg{ position:absolute; inset:0; background:url("assets/azulejo.svg") repeat center/110px; opacity:0.16; }
.acces-card .leaf{ position:absolute; width:160px; }
.acces-card .leaf.a{ top:-30px; right:-24px; transform:scale(-1,-1); opacity:0.5; }
.acces-card > *{ position:relative; z-index:2; }
.acces-card .lemon{ width:120px; margin-bottom:18px; }
.acces-card .cap{ font-family:var(--script); font-size:30px; color:var(--cream); line-height:1.1; }
.acces-card .acts{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:24px; }
@media (max-width:880px){ .acces-grid{ grid-template-columns:1fr; } }

/* ---- footer ---- */
footer.foot{ background:var(--navy-deep); color:var(--cream); padding:clamp(48px,6vw,76px) 0 28px; }
.foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:36px; }
.foot-brand img{ height:54px; margin-bottom:16px; }
.foot-logo{ filter:brightness(0) invert(1); opacity:0.96; }
.foot-brand p{ font-size:15px; color:rgba(252,251,246,0.7); line-height:1.7; max-width:300px; }
.foot-socials{ display:flex; gap:10px; margin-top:18px; }
.foot-socials a{ width:40px; height:40px; border:1.5px solid rgba(252,251,246,0.4); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-family:var(--label); font-weight:600; font-size:12px; transition:all .2s; color:var(--cream); }
.foot-socials a svg{ width:18px; height:18px; }
.foot-socials a:hover{ background:var(--gold); color:var(--navy); border-color:var(--gold); }
.foot h5{ font-family:var(--label); font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:16px; }
.foot ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.foot ul a, .foot ul li{ font-size:15px; color:rgba(252,251,246,0.82); transition:color .2s; }
.foot ul a:hover{ color:var(--gold-soft); }
.foot-bot{ margin-top:42px; padding-top:22px; border-top:1px solid rgba(252,251,246,0.14); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12.5px; color:rgba(252,251,246,0.6); }
.foot-bot .legal{ display:flex; gap:18px; }
@media (max-width:920px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .foot-grid{ grid-template-columns:1fr; } }

/* ---- shared inner-page hero (.phero) — same dimensions everywhere ---- */
.phero{ position:relative; overflow:hidden; background:var(--navy-deep); color:var(--cream); text-align:center; padding:clamp(42px,5.5vw,74px) 0 clamp(36px,4vw,54px); }
.phero-bg{ position:absolute; inset:0; z-index:0; }
.phero-bg img{ width:100%; height:100%; object-fit:cover; }
.phero-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,26,58,0.58), rgba(13,26,58,0.82)); }
.phero .leaf{ position:absolute; z-index:2; width:clamp(150px,18vw,250px); pointer-events:none; }
.phero .leaf.l{ top:-6%; left:-2.5%; transform:scaleY(-1) rotate(8deg); }
.phero .leaf.r{ top:-6%; right:-2.5%; transform:scale(-1,-1) rotate(8deg); }
.phero-inner{ position:relative; z-index:3; max-width:720px; margin:0 auto; }
.phero .eyebrow{ color:var(--gold-soft); }
.phero h1{ font-family:var(--script); font-weight:400; font-size:clamp(40px,6.2vw,72px); line-height:0.94; color:#fff; margin:6px 0 0; text-shadow:0 6px 28px rgba(0,0,0,0.34); }
.phero h1 em{ color:var(--gold-soft); font-style:normal; }
.phero .sub{ font-size:clamp(14px,1.35vw,17px); color:rgba(252,251,246,0.92); max-width:620px; margin:14px auto 0; line-height:1.6; }
.phero .sub a{ color:var(--gold-soft); border-bottom:1px dotted currentColor; }

/* ---- reveal ---- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } .marquee-track{ animation:none; } }

/* ============ Responsive / mobile polish ============ */
@media (max-width:600px){
  body{ font-size:15px; }
  .wrap{ padding:0 20px; }
  .annbar .wrap{ padding-top:8px; padding-bottom:8px; font-size:12px; }
  .hd .wrap{ padding-top:10px; padding-bottom:10px; }
  .hd-logo img{ height:42px; }
  .btn{ padding:13px 22px; font-size:11.5px; }
  .hero-inner{ padding:clamp(60px,18vw,90px) 0; }
  .hero .acts{ flex-direction:column; align-items:stretch; }
  .hero .acts .btn{ justify-content:center; }
  .hero .trust{ font-size:12.5px; gap:8px; }
  .sec-head h2, .h-title{ font-size:clamp(26px,8vw,34px); }
  .story-stats{ gap:22px; }
  .avis-card{ padding:28px 24px 22px; }
  .resa .acts{ flex-direction:column; align-items:stretch; }
  .resa .acts .btn{ justify-content:center; }
  .aw-text h2{ font-size:30px; }
  .foot-socials{ justify-content:flex-start; }
}
@media (max-width:380px){
  .hero h1{ font-size:clamp(44px,16vw,60px); }
}

/* ---- skip link ---- */
.skip{ position:absolute; left:-9999px; top:0; background:var(--gold); color:var(--navy); padding:12px 20px; z-index:300; font-family:var(--label); font-weight:600; }
.skip:focus{ left:0; }

/* ---- Bar à spritz (page carte) ---- */
.spritz{ background:var(--white); }
.spritz-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; max-width:860px; margin:clamp(28px,4vw,44px) auto 0; }
.spritz-grid figure{ margin:0; border-radius:12px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 14px 34px rgba(15,26,60,0.10); }
.spritz-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.22,1,.36,1); }
.spritz-grid figure:hover img{ transform:scale(1.06); }
.spritz-sel{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px 40px; max-width:820px; margin:clamp(30px,4vw,46px) auto 0; }
.spritz-item{ display:flex; justify-content:space-between; gap:14px; align-items:baseline; border-bottom:1px dashed var(--line); padding-bottom:11px; }
.spritz-item .n{ font-family:var(--sans); font-weight:600; font-size:16px; color:var(--navy); }
.spritz-item .d{ font-size:13px; color:var(--grey); }
.spritz-item .p{ font-family:var(--label); font-weight:700; color:var(--gold-deep); white-space:nowrap; }
@media (max-width:820px){ .spritz-grid{ grid-template-columns:1fr 1fr; } .spritz-sel{ grid-template-columns:1fr; } }

/* ---- Cave à vins (page carte) ---- */
.cave{ background:var(--navy); color:var(--cream); position:relative; overflow:hidden; }
.cave .on-navy .h-title, .cave .h-title{ color:#fff; }
.cave .lead{ color:rgba(252,251,246,0.8); }
.cave-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(28px,4vw,54px); align-items:center; margin-top:clamp(28px,4vw,44px); }
.cave-photos{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cave-photos figure{ margin:0; border-radius:12px; overflow:hidden; aspect-ratio:3/4; }
.cave-photos img{ width:100%; height:100%; object-fit:cover; }
.cave-txt p{ color:rgba(252,251,246,0.85); font-size:16px; line-height:1.75; margin-bottom:16px; }
.cave-txt .moros{ display:inline-block; margin-top:6px; }
.cave-tags{ display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 24px; }
.cave-tags span{ font-family:var(--label); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; border:1px solid rgba(252,251,246,0.28); color:var(--gold-soft); border-radius:100px; padding:7px 14px; }
@media (max-width:820px){ .cave-grid{ grid-template-columns:1fr; } }

/* ============ Mouvement & finitions hero (v3) ============ */
@keyframes kenburns{ from{ transform:scale(1.03); } to{ transform:scale(1.13); } }
@keyframes heroIn{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }

/* Fond hero : diaporama en fondu + zoom lent + parallaxe (translate posé en JS sur .hero-bg) */
.hero-bg{ top:-12%; height:124%; will-change:transform; }
.hero-slide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; z-index:1; transition:opacity 2s ease-in-out; transform-origin:50% 42%; animation:kenburns 20s ease-in-out infinite alternate; filter:brightness(0.66) saturate(1.06); }
.hero-slide.is-active{ opacity:1; z-index:2; }

/* Léger zoom vivant sur les héros de pages intérieures */
.phero-bg img{ animation:kenburns 24s ease-in-out infinite alternate; transform-origin:50% 45%; }

/* Voile plus contrasté pour une écriture parfaitement lisible */
.hero-bg::after{ background:
  linear-gradient(180deg, rgba(11,22,52,0.56) 0%, rgba(15,42,85,0.44) 22%, rgba(15,42,85,0.56) 58%, rgba(11,22,52,0.9) 100%),
  radial-gradient(82% 90% at 50% 52%, rgba(11,22,52,0.76) 0%, rgba(11,22,52,0.42) 40%, rgba(11,22,52,0.05) 72%, transparent 82%); }
.hero h1{ text-shadow:0 4px 30px rgba(0,0,0,0.7), 0 2px 6px rgba(0,0,0,0.6); }
.hero .sub{ color:#fff; text-shadow:0 2px 16px rgba(0,0,0,0.85), 0 1px 3px rgba(0,0,0,0.7); }
.hero .eyebrow{ color:#fff; letter-spacing:0.22em; text-shadow:0 2px 12px rgba(0,0,0,0.8); }

/* Entrée du hero en cascade */
.hero-inner > *{ opacity:0; animation:heroIn .9s cubic-bezier(.22,1,.36,1) both; }
.hero-inner > .eyebrow{ animation-delay:.05s; }
.hero-inner > h1{ animation-delay:.16s; }
.hero-inner > .sub{ animation-delay:.32s; }
.hero-inner > .acts{ animation-delay:.48s; }
.hero-inner > .trust{ animation-delay:.62s; }

/* Signature manuscrite (histoire) */
.story-sign{ font-family:var(--script); font-size:clamp(24px,2.4vw,32px); color:var(--gold); line-height:1; margin-top:20px !important; }

/* Zoom au survol des images éditoriales */
.gallery figure{ overflow:hidden; }
.gallery figure img, .story-art .story-photo{ transition:transform .8s cubic-bezier(.22,1,.36,1); will-change:transform; }
.gallery figure:hover img{ transform:scale(1.06); }
.story-art:hover .story-photo{ transform:scale(1.05); }

@media (prefers-reduced-motion:reduce){
  .hero-bg img, .phero-bg img{ animation:none; }
  .hero-inner > *{ animation:none; opacity:1; }
  .gallery figure:hover img, .story-art:hover .story-photo{ transform:none; }
}
