/* Le Captain Bligh , fresh build 2026-07-03. Nautical waterfront, dark marine, lagoon teal. */
:root{
  --ink:#08161c; --bg:#0c1e26; --bg-alt:#102932;
  --accent:#37b0a6; --accent-deep:#1f7d78; --gold:#c8a24e;
  --paper:#f2ebdd; --paper-dim:rgba(242,235,221,.68); --spark:#d1402c;
  --line:rgba(242,235,221,.14);
  --font-display:'DM Serif Display', Georgia, serif;
  --font-body:'Figtree', system-ui, -apple-system, sans-serif;
  --motion-base:280ms; --motion-slow:560ms;
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --wrap:1140px;
}
@property --mx1{syntax:'<percentage>';inherits:false;initial-value:20%;}
@property --my1{syntax:'<percentage>';inherits:false;initial-value:18%;}
@property --mx2{syntax:'<percentage>';inherits:false;initial-value:82%;}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:var(--font-body); color:var(--paper); background:var(--bg);
  line-height:1.6; font-size:16px; overflow-x:hidden; position:relative;
  font-weight:400; letter-spacing:.005em;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
em{font-style:italic;}

/* signature moment, mesh gradient lagoon-light drift */
body::before{
  content:""; position:fixed; inset:-10%; z-index:-3; pointer-events:none;
  background:
    radial-gradient(42vw 42vw at var(--mx1) var(--my1), rgba(55,176,166,.28), transparent 60%),
    radial-gradient(46vw 46vw at var(--mx2) 78%, rgba(31,125,120,.24), transparent 62%),
    radial-gradient(40vw 40vw at 60% 12%, rgba(200,162,78,.10), transparent 60%);
  animation:mesh 26s ease-in-out infinite alternate;
}
@keyframes mesh{
  from{--mx1:16%; --my1:14%; --mx2:84%;}
  to{--mx1:34%; --my1:26%; --mx2:66%;}
}
/* grain baseline */
.grain{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap{max-width:var(--wrap); margin:0 auto; padding:0 1.25rem;}
.skip{position:absolute; left:-999px; top:0; background:var(--accent); color:var(--ink); padding:.7rem 1rem; z-index:100; border-radius:0 0 8px 0;}
.skip:focus{left:0;}

/* NAV */
.nav{position:fixed; top:0; left:0; right:0; z-index:40; transition:background var(--motion-base), border-color var(--motion-base);}
.nav__inner{max-width:var(--wrap); margin:0 auto; padding:.85rem 1.25rem; display:flex; align-items:center; justify-content:space-between; gap:1rem;}
.nav.is-stuck{background:rgba(8,22,28,.86); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav__mark{display:flex; align-items:center; gap:.5rem; color:var(--paper);}
.nav__ship{display:flex; color:var(--accent);}
.nav__word{font-family:var(--font-display); font-size:1.28rem; line-height:1; letter-spacing:.01em;}
.nav__word em{color:var(--accent);}
.nav__links{display:none; gap:1.6rem;}
.nav__links a{font-size:.9rem; font-weight:500; color:var(--paper-dim); transition:color var(--motion-base);}
.nav__links a:hover{color:var(--accent);}
.nav__phone{display:inline-flex; align-items:center; gap:.4rem; font-weight:600; font-size:.86rem; padding:.5rem .9rem; border:1px solid var(--accent); border-radius:999px; color:var(--paper); white-space:nowrap;}
.nav__phone:hover{background:var(--accent); color:var(--ink);}

/* HERO */
.hero{position:relative; min-height:100svh; display:grid; place-items:center; text-align:center; overflow:hidden;}
.hero__bg{position:absolute; inset:0; z-index:-2;}
.hero__bg img{width:100%; height:100%; object-fit:cover; animation:kb 22s ease-out infinite alternate;}
@keyframes kb{from{transform:scale(1.02);}to{transform:scale(1.11);}}
.hero__scrim{position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(8,22,28,.55) 0%, rgba(8,22,28,.28) 34%, rgba(8,22,28,.72) 100%),
    radial-gradient(120% 90% at 50% 120%, rgba(8,22,28,.7), transparent 60%);
}
.hero__inner{width:100%; max-width:92vw; padding:6rem 1.4rem 3rem; display:flex; flex-direction:column; align-items:center; gap:1rem;}
.hero__kicker{font-size:.76rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); font-weight:600;}
.hero__title{font-family:var(--font-display); font-weight:400; line-height:.96; font-size:clamp(3rem,15vw,7.5rem); text-shadow:0 3px 30px rgba(0,0,0,.4);}
.hero__title em{color:var(--accent);}
.hero__tagline{font-size:clamp(.95rem,3.4vw,1.15rem); color:var(--paper); letter-spacing:.02em;}
.hero__status{display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; margin-top:.2rem;}
.hero__st{display:inline-flex; align-items:center; gap:.5rem; font-size:.8rem; font-weight:500; padding:.4rem .85rem; border-radius:999px; background:rgba(8,22,28,.5); border:1px solid var(--line); backdrop-filter:blur(6px);}
.hero__st::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--accent);}
.hero__st.is-open::before{background:#37d07a;}
.hero__st.is-closed::before{background:var(--spark);}

.hero__cta{display:flex; flex-direction:column; gap:.6rem; width:100%; max-width:23rem; margin-top:.6rem;}
.btn{display:inline-flex; align-items:center; justify-content:center; text-align:center; font-weight:700; text-transform:uppercase; letter-spacing:.05em; font-size:.82rem; padding:.85rem 1.3rem; border-radius:999px; border:1px solid transparent; cursor:pointer; transition:transform var(--motion-base) var(--ease-out), background var(--motion-base), box-shadow var(--motion-base); min-height:46px; width:100%;}
.btn:hover{transform:translateY(-2px);}
.btn--primary{background:var(--accent); color:var(--ink); box-shadow:0 12px 26px -12px rgba(55,176,166,.75);}
.btn--accent{background:var(--gold); color:var(--ink); box-shadow:0 12px 26px -12px rgba(200,162,78,.7);}
.btn--ghost{background:transparent; color:var(--paper); border-color:rgba(242,235,221,.4);}
.btn--ghost:hover{border-color:var(--accent); color:var(--accent);}
.btn--wide{width:100%;}

/* MARQUEE */
.strip{background:var(--accent-deep); color:var(--paper); overflow:hidden; border-top:1px solid rgba(0,0,0,.2); border-bottom:1px solid rgba(0,0,0,.2);}
.strip__track{display:flex; width:max-content; gap:1.6rem; padding:.85rem 0; white-space:nowrap; align-items:center; animation:marquee 40s linear infinite; will-change:transform;}
.strip__track span{font-family:var(--font-display); font-size:1.02rem; letter-spacing:.02em;}
.strip__track .sep{color:var(--gold); font-size:.8rem;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* SECTIONS */
section[id]{padding:4.5rem 0; position:relative; scroll-margin-top:70px;}
.sec-head{margin-bottom:2.2rem;}
.sec-kicker{font-size:.74rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:.5rem;}
.sec-title{font-family:var(--font-display); font-weight:400; font-size:clamp(1.9rem,6vw,3.1rem); line-height:1.04;}
.sec-title em{color:var(--accent);}

/* SPÉCIALITÉS */
.specialites{background:var(--bg);}
.cards{display:grid; gap:1.5rem; grid-template-columns:1fr;}
.card{background:var(--bg-alt); border:1px solid var(--line); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; transition:transform var(--motion-base) var(--ease-out), border-color var(--motion-base);}
.card:hover{transform:translateY(-4px); border-color:var(--accent);}
.card__media{border:0; padding:0; background:none; cursor:zoom-in; display:block; overflow:hidden; aspect-ratio:4/3;}
.card__media img{width:100%; height:100%; object-fit:cover; transition:transform 600ms var(--ease-out);}
.card__media:hover img{transform:scale(1.06);}
.card__media:focus-visible{outline:3px solid var(--accent); outline-offset:-3px;}
.card__body{padding:1.3rem 1.35rem 1.5rem;}
.card__kicker{font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:.5rem;}
.card__name{font-family:var(--font-display); font-weight:400; font-size:1.5rem; line-height:1.1; margin-bottom:.5rem;}
.card__desc{color:var(--paper-dim); font-size:.96rem;}
.card--featured{border-color:rgba(55,176,166,.4);}

/* MENU */
.menu{background:var(--bg-alt);}
.menu__grid{max-width:560px;}
.menu__card{border:1px solid var(--line); background:var(--bg); border-radius:14px; overflow:hidden; cursor:zoom-in; padding:0; width:100%; display:block; transition:border-color var(--motion-base), transform var(--motion-base) var(--ease-out);}
.menu__card:hover{border-color:var(--accent); transform:translateY(-3px);}
.menu__card:focus-visible{outline:3px solid var(--accent); outline-offset:2px;}
.menu__cover img{width:100%; height:auto;}
.menu__caption{padding:.9rem 1.1rem; font-size:.9rem; color:var(--paper-dim); text-align:center;}
.menu__allergens{margin-top:1.4rem; font-size:.82rem; opacity:.6; font-style:italic; text-align:center;}

/* HORAIRES */
.horaires{background:var(--bg);}
.hor__grid{display:grid; gap:1.6rem; grid-template-columns:1fr;}
.hor__days{display:flex; flex-direction:column; gap:.55rem;}
.hor__row{display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.85rem 1.1rem; background:var(--bg-alt); border:1px solid var(--line); border-radius:12px; transition:border-color var(--motion-base);}
.hor__day{font-family:var(--font-display); font-size:1.1rem;}
.hor__time{font-size:.9rem; color:var(--paper-dim); text-align:right;}
.hor__time--off{opacity:.5;}
.hor__row.is-today{border-color:var(--accent); background:rgba(55,176,166,.08);}
.hor__row.is-today .hor__day{color:var(--gold);}
.hor__row.is-today .hor__day::before{content:"▸ "; color:var(--accent);}
.hor__side{display:flex; flex-direction:column; gap:1.1rem; justify-content:center; padding:1.4rem; background:var(--bg-alt); border:1px solid var(--line); border-radius:16px;}
.hor__note{font-size:.92rem; color:var(--paper-dim);}

/* FIND */
.find{background:var(--bg-alt);}
.find__grid{display:grid; gap:1.8rem; grid-template-columns:1fr;}
.find__map{border-radius:16px; overflow:hidden; border:1px solid var(--line); min-height:320px;}
.find__map iframe{width:100%; height:100%; min-height:320px; border:0; display:block; filter:saturate(.92);}
.find__info{display:flex; flex-direction:column; gap:1.1rem;}
.find__label{display:block; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:.3rem;}
.find__addr{font-style:normal; font-size:1.05rem; line-height:1.5;}
.find__list{list-style:none; display:flex; flex-direction:column; gap:.9rem;}
.find__list a{font-size:1.05rem; color:var(--paper); border-bottom:1px solid transparent; transition:border-color var(--motion-base);}
.find__list a:hover{border-color:var(--accent); color:var(--accent);}
.find__socials{display:flex; gap:.7rem;}
.find__soc{width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--line); border-radius:12px; color:var(--paper); transition:all var(--motion-base);}
.find__soc:hover{background:var(--accent); color:var(--ink); border-color:var(--accent);}
.faq-section{background:var(--bg-alt);}
.faq-toggle{max-width:760px; margin:0 auto;}
.faq-toggle>summary.faq-toggle__btn{cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-family:var(--font-display); font-size:clamp(1.4rem,4vw,2rem); color:var(--paper); background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:.95rem 1.25rem; transition:border-color var(--motion-base);}
.faq-toggle__btn em{color:var(--accent); font-style:italic;}
.faq-toggle__btn::-webkit-details-marker{display:none;}
.faq-toggle__btn:hover{border-color:var(--accent);}
.faq-toggle__btn::after{content:"+"; color:var(--accent); font-family:var(--font-display); font-size:1.5rem; line-height:1; transition:transform var(--motion-base);}
.faq-toggle[open]>.faq-toggle__btn{border-color:var(--accent); border-bottom-left-radius:0; border-bottom-right-radius:0;}
.faq-toggle[open]>.faq-toggle__btn::after{content:"–";}
.faq{margin-top:.6rem; display:flex; flex-direction:column; gap:.5rem; max-width:760px; margin-left:auto; margin-right:auto;}
.faq details{border:1px solid var(--line); border-radius:10px; padding:.75rem 1rem; background:var(--bg);}
.faq summary{cursor:pointer; font-weight:600; font-size:.95rem; list-style:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; float:right; color:var(--accent); font-family:var(--font-display);}
.faq details[open] summary::after{content:"-";}
.faq p{margin-top:.6rem; font-size:.92rem; color:var(--paper-dim);}

/* FOOTER */
.foot{background:var(--ink); border-top:1px solid var(--line); padding:2.6rem 0;}
.foot__inner{display:flex; flex-direction:column; gap:.6rem; align-items:center; text-align:center;}
.foot__mark{font-family:var(--font-display); font-size:1.5rem;}
.foot__mark em{color:var(--accent);}
.foot__meta{font-size:.86rem; color:var(--paper-dim);}
.foot__credit{font-size:.82rem; color:var(--paper-dim);}
.foot__credit a{color:var(--accent);}

/* LIGHTBOX */
.lb{position:fixed; inset:0; z-index:90; display:none; place-items:center; padding:1.5rem; background:rgba(8,22,28,.92); backdrop-filter:blur(6px);}
.lb.is-open{display:grid;}
body.lb-lock{overflow:hidden;}
.lb__stage{max-width:1000px; width:100%; text-align:center;}
.lb__stage img{width:100%; max-height:82vh; object-fit:contain; border-radius:8px;}
.lb__cap{margin-top:.8rem; font-size:.88rem; color:var(--paper-dim);}
.lb__close{position:absolute; top:1rem; right:1.2rem; width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:rgba(8,22,28,.6); color:var(--paper); font-size:1.6rem; line-height:1; cursor:pointer; transition:all var(--motion-base);}
.lb__close:hover{background:var(--accent); color:var(--ink);}

/* REVEAL */
[data-reveal]{opacity:0; transform:translateY(20px); transition:opacity var(--motion-slow) var(--ease-out), transform var(--motion-slow) var(--ease-out);}
[data-reveal].is-visible{opacity:1; transform:none;}

/* DESKTOP */
@media (min-width:720px){
  .cards{grid-template-columns:repeat(3,1fr); align-items:start;}
  .card--featured{transform:translateY(-1.5rem);}
  .card--featured:hover{transform:translateY(-2rem);}
  .hor__grid{grid-template-columns:1.4fr .9fr;}
  .find__grid{grid-template-columns:1.1fr .9fr; align-items:stretch;}
}
@media (min-width:860px){
  .nav__links{display:flex;}
  .hero__inner{max-width:64ch; padding-top:4rem;}
  .hero__cta{flex-direction:row; flex-wrap:wrap; justify-content:center; width:auto; max-width:none;}
  .hero__cta .btn{width:auto; padding:.9rem 1.5rem; font-size:.84rem;}
  section[id]{padding:6rem 0;}
}

/* REDUCED MOTION, marquee is exempt (fleet lock), everything else calms */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
  .hero__bg img{animation:none;}
  body::before{animation:none;}
  [data-reveal]{opacity:1; transform:none;}
  /* marquee MUST keep animating */
  .strip__track{animation:marquee 40s linear infinite !important;}
}
