/* ============================================================
   JET ATLAS — Restaurant & Lounge (bespoke, `re-` namespace)
   A vibrant, luxe, editorial design — distinct from the home/about
   ht-* sections. White + ink (#0A0A0A) + lime (#DCFF00) pushed bolder:
   a full-lime « carte » block, a lime marquee, image ambiance cards,
   a review marquee. Cormorant / Outfit / Inter / Space Grotesk.
   ============================================================ */

:root {
	--re-ink:#0A0A0A; --re-lime:#DCFF00; --re-paper:#FFFFFF; --re-paper2:#F5F5F2;
	--re-line:rgba(10,10,10,.12); --re-line-d:rgba(255,255,255,.16);
	--re-mut:rgba(10,10,10,.58); --re-mut-d:rgba(255,255,255,.68);
	--re-serif:"Cormorant Garamond",Georgia,serif; --re-ui:"Outfit",system-ui,sans-serif;
	--re-body:"Inter",system-ui,sans-serif; --re-data:"Space Grotesk",system-ui,sans-serif;
	--re-ease:cubic-bezier(.16,1,.3,1); --re-wrap:1240px;
}
.re{ background:var(--re-paper); color:var(--re-ink); font-family:var(--re-body); overflow-x:clip; }
.re *{ box-sizing:border-box; }
.re h1,.re h2,.re h3{ margin:0; } .re p{ margin:0; } .re ul{ margin:0; padding:0; list-style:none; } .re img{ display:block; max-width:100%; }
.re-wrap{ width:min(100% - 2*clamp(16px,5vw,56px),var(--re-wrap)); margin-inline:auto; }

/* ---- primitives ---- */
.re-eyebrow{ display:inline-flex; align-items:center; gap:9px; font-family:var(--re-ui); font-size:11.5px; font-weight:600; letter-spacing:2.4px; text-transform:uppercase; color:#fff; }
.re-eyebrow--ink{ color:var(--re-ink); }
.re-dot{ width:8px; height:8px; border-radius:50%; background:var(--re-lime); box-shadow:0 0 0 4px rgba(220,255,0,.2); }
.re-dot--ink{ background:var(--re-ink); box-shadow:0 0 0 4px rgba(10,10,10,.12); }
.re-h2{ font-family:var(--re-serif); font-weight:500; font-size:clamp(34px,5vw,66px); line-height:1.02; letter-spacing:-.015em; color:var(--re-ink); }
.re-h2 em{ font-style:italic; text-decoration:underline; text-decoration-color:var(--re-lime); text-decoration-thickness:.1em; text-underline-offset:.06em; }

.re-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 28px; border-radius:999px; border:1px solid transparent; font-family:var(--re-ui); font-size:12.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; cursor:pointer; white-space:nowrap; transition:background .35s var(--re-ease),color .35s var(--re-ease),border-color .35s var(--re-ease),transform .35s var(--re-ease),box-shadow .35s var(--re-ease); }
.re-btn i{ font-size:.9em; transition:transform .35s var(--re-ease); } .re-btn:hover i{ transform:translateX(4px); }
.re-btn--lg{ padding:18px 38px; font-size:13px; }
.re-btn--lime{ background:var(--re-lime); color:var(--re-ink); box-shadow:0 14px 30px -16px rgba(220,255,0,.6); }
.re-btn--lime:hover{ background:#e7ff3a; transform:translateY(-3px); box-shadow:0 22px 46px -16px rgba(220,255,0,.9); }
.re-btn--ink{ background:var(--re-ink); color:#fff; }
.re-btn--ink:hover{ color:var(--re-lime); transform:translateY(-3px); box-shadow:0 18px 38px -18px rgba(10,10,10,.5); }
.re-btn--line{ background:transparent; color:var(--re-ink); border-color:rgba(10,10,10,.42); }
.re-btn--line:hover{ background:var(--re-ink); color:#fff; border-color:var(--re-ink); transform:translateY(-2px); }
.re-btn--glass{ background:rgba(255,255,255,.1); color:#fff; border-color:rgba(255,255,255,.4); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.re-btn--glass:hover{ background:#fff; color:var(--re-ink); border-color:#fff; transform:translateY(-2px); }

.re-reveal{ opacity:0; transform:translateY(30px); transition:opacity .9s var(--re-ease),transform .9s var(--re-ease); will-change:transform,opacity; }
.re-reveal.is-in{ opacity:1; transform:none; will-change:auto; }
@media (prefers-reduced-motion:reduce){ .re-reveal{ opacity:1!important; transform:none!important; } .re-marquee__track,.re-rev__track{ animation:none!important; } .re-infos__hours::before{ transform:scaleX(1)!important; transition:none; } .re-infohour::before{ transform:translateY(-50%) scale(1)!important; transition:none; } }

/* ================= HERO ================= */
.re-hero{ position:relative; min-height:92vh; display:flex; flex-direction:column; justify-content:flex-end; color:#fff; overflow:hidden; isolation:isolate; padding-top:clamp(120px,18vh,200px); }
.re-hero::before{ content:""; position:absolute; inset:0; z-index:-2; background:var(--bg) center/cover no-repeat; transform:scale(1.05); }
.re-hero__veil{ position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(8,8,8,.5) 0%,rgba(8,8,8,.36) 38%,rgba(8,8,8,.9) 100%); }
.re-hero__glow{ position:absolute; inset:0; z-index:-1; background:radial-gradient(48% 40% at 18% 80%,rgba(220,255,0,.2),transparent 60%); mix-blend-mode:screen; pointer-events:none; }
.re-hero__inner{ position:relative; padding-bottom:clamp(34px,5vw,64px); }
.re-hero__title{ font-family:var(--re-serif); font-weight:500; font-size:clamp(52px,10vw,150px); line-height:.92; letter-spacing:-.02em; margin-top:22px; color:#fff; }
.re-hero__title em{ font-style:italic; color:var(--re-lime); }
.re-hero__sub{ margin-top:24px; max-width:54ch; font-size:clamp(15px,1.5vw,19px); line-height:1.68; color:rgba(255,255,255,.86); }
.re-hero__cta{ margin-top:32px; display:flex; flex-wrap:wrap; gap:14px; }
.re-hero__note{ margin-top:24px; display:inline-flex; align-items:center; gap:10px; font-family:var(--re-ui); font-size:12.5px; letter-spacing:.4px; color:rgba(255,255,255,.82); }
.re-hero__note i{ font-size:7px; color:var(--re-lime); }

/* hero lime marquee */
.re-marquee{ position:relative; z-index:1; background:var(--re-lime); color:var(--re-ink); overflow:hidden; padding:14px 0; }
.re-marquee__track{ display:flex; align-items:center; gap:0; width:max-content; animation:re-scroll 32s linear infinite; }
.re-marquee__item{ font-family:var(--re-ui); font-weight:600; font-size:14px; letter-spacing:1.6px; text-transform:uppercase; padding:0 22px; white-space:nowrap; }
.re-marquee__star{ font-size:11px; opacity:.5; }
@keyframes re-scroll{ to{ transform:translateX(-50%); } }

/* ================= CONCEPT + AMBIANCES ================= */
.re-amb{ padding:clamp(64px,9vw,120px) 0; }
.re-amb__head{ display:grid; grid-template-columns:1.1fr 1fr; gap:30px 60px; align-items:end; margin-bottom:clamp(34px,4vw,54px); }
.re-amb__head .re-eyebrow{ margin-bottom:18px; }
.re-amb__lead{ font-size:clamp(15px,1.4vw,18px); line-height:1.72; color:var(--re-mut); max-width:48ch; }
.re-amb__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.re-ambcard{ position:relative; aspect-ratio:3/4; border-radius:20px; overflow:hidden; isolation:isolate; color:#fff; background:var(--re-ink); }
.re-ambcard::before{ content:""; position:absolute; inset:0; z-index:0; background:var(--bg) center/cover no-repeat; transition:transform .8s var(--re-ease); }
.re-ambcard::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(10,10,10,.1) 30%,rgba(10,10,10,.9)); }
.re-ambcard:hover::before{ transform:scale(1.08); }
.re-ambcard__num{ position:absolute; top:18px; left:20px; z-index:2; font-family:var(--re-data); font-weight:700; font-size:14px; letter-spacing:1px; color:var(--re-lime); }
.re-ambcard__body{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:22px 20px; }
.re-ambcard__title{ font-family:var(--re-serif); font-weight:500; font-size:clamp(22px,1.8vw,27px); line-height:1.05; color:#fff; }
.re-ambcard__desc{ margin-top:6px; font-size:13px; line-height:1.5; color:rgba(255,255,255,.78); }

/* ================= LA CARTE — dark block (lime accents) ================= */
.re-carte{ background:var(--re-ink); color:#fff; padding:clamp(70px,10vw,130px) 0; position:relative; overflow:hidden; isolation:isolate; }
.re-carte::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(46% 42% at 50% -4%,rgba(220,255,0,.14),transparent 62%); }
/* flex-centre so the list (and head/foot) sit dead-centre in the wrap */
.re-carte__inner{ position:relative; display:flex; flex-direction:column; align-items:center; }
.re-carte__head{ text-align:center; max-width:760px; margin:0 0 clamp(36px,4vw,52px); display:flex; flex-direction:column; align-items:center; }
.re-carte__head .re-eyebrow{ margin-bottom:20px; }
.re-carte__title{ font-family:var(--re-serif); font-weight:500; font-size:clamp(40px,6.5vw,84px); line-height:.98; letter-spacing:-.015em; color:#fff; }
.re-carte__title em{ font-style:italic; color:var(--re-lime); }
.re-carte__lead{ margin-top:20px; max-width:56ch; font-size:clamp(15px,1.4vw,18px); line-height:1.65; color:rgba(255,255,255,.7); }
.re-carte__list{ width:100%; max-width:920px; display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(36px,6vw,80px); }
.re-carte__row{ display:flex; align-items:baseline; gap:14px; padding:18px 2px; border-bottom:1px solid rgba(255,255,255,.14); }
.re-carte__name{ font-family:var(--re-serif); font-style:italic; font-weight:600; font-size:clamp(22px,2.2vw,29px); white-space:nowrap; color:#fff; }
.re-carte__desc{ flex:1; font-family:var(--re-ui); font-size:11px; font-weight:500; letter-spacing:.8px; text-transform:uppercase; color:rgba(255,255,255,.5); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.re-carte__price{ font-family:var(--re-data); font-weight:700; font-size:14px; white-space:nowrap; color:var(--re-lime); }
.re-carte__foot{ margin-top:clamp(36px,4vw,52px); display:flex; flex-direction:column; align-items:center; gap:16px; }
.re-carte__note{ font-family:var(--re-ui); font-size:12.5px; letter-spacing:.4px; color:rgba(255,255,255,.6); }

/* ================= SUNSET ================= */
.re-sunset{ position:relative; color:#fff; padding:clamp(90px,14vw,180px) 0; overflow:hidden; isolation:isolate; }
.re-sunset::before{ content:""; position:absolute; inset:0; z-index:-2; background:var(--bg) center/cover no-repeat; transform:scale(1.04); }
.re-sunset__veil{ position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(8,8,8,.82),rgba(8,8,8,.42)),radial-gradient(60% 60% at 85% 20%,rgba(220,255,0,.16),transparent 60%); }
.re-sunset__inner{ max-width:620px; display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.re-sunset__title{ font-family:var(--re-serif); font-weight:500; font-size:clamp(38px,6vw,76px); line-height:1; color:#fff; }
.re-sunset__title em{ font-style:italic; color:var(--re-lime); }
.re-sunset__sub{ font-size:clamp(15px,1.4vw,18px); line-height:1.65; color:rgba(255,255,255,.84); }

/* ================= INFOS & HORAIRES — vibrant lime band ================= */
.re-infos{ position:relative; background:var(--re-lime); color:var(--re-ink); padding:clamp(64px,9vw,118px) 0; overflow:hidden; }
.re-infos__glow{ position:absolute; inset:0; pointer-events:none; background:radial-gradient(42% 70% at 100% 0,rgba(10,10,10,.07),transparent 62%); }
.re-infos__inner{ position:relative; }
.re-infos__head{ max-width:780px; }
.re-infos__head .re-eyebrow{ margin-bottom:18px; }
.re-infos__title{ font-family:var(--re-serif); font-weight:500; font-size:clamp(40px,6.2vw,74px); line-height:1; letter-spacing:-.01em; color:var(--re-ink); }
.re-infos__title em{ font-style:italic; text-decoration:underline; text-decoration-color:var(--re-ink); text-decoration-thickness:.06em; text-underline-offset:.06em; }
.re-infos__p{ margin-top:18px; max-width:56ch; font-size:clamp(15px,1.4vw,17px); line-height:1.65; color:rgba(10,10,10,.66); }
/* horizontal service timeline: a line + a station node per service */
.re-infos__hours{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:clamp(42px,4.5vw,60px); }
.re-infos__hours::before{ content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--re-ink); transform:scaleX(0); transform-origin:left center; transition:transform 1.1s var(--re-ease) .15s; }
.re-infos__inner.is-in .re-infos__hours::before{ transform:scaleX(1); }
.re-infohour{ position:relative; display:flex; flex-direction:column; gap:8px; padding:40px 24px 4px 0; }
.re-infohour::before{ content:""; position:absolute; top:0; left:0; width:14px; height:14px; border-radius:50%; background:var(--re-lime); border:2.5px solid var(--re-ink); transform:translateY(-50%) scale(0); transition:transform .55s var(--re-ease); }
.re-infos__inner.is-in .re-infohour::before{ transform:translateY(-50%) scale(1); }
.re-infos__inner.is-in .re-infohour:nth-child(1)::before{ transition-delay:.35s; }
.re-infos__inner.is-in .re-infohour:nth-child(2)::before{ transition-delay:.50s; }
.re-infos__inner.is-in .re-infohour:nth-child(3)::before{ transition-delay:.65s; }
.re-infos__inner.is-in .re-infohour:nth-child(4)::before{ transition-delay:.80s; }
.re-infohour__label{ font-family:var(--re-ui); font-size:11.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:rgba(10,10,10,.58); }
.re-infohour__time{ font-family:var(--re-data); font-weight:700; font-size:clamp(21px,2.6vw,32px); line-height:1; color:var(--re-ink); }
.re-infos__foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; margin-top:clamp(30px,4vw,46px); }
.re-infos__addr{ display:inline-flex; align-items:center; gap:9px; font-family:var(--re-ui); font-size:13px; font-weight:500; color:rgba(10,10,10,.72); }
.re-infos__addr i{ color:var(--re-ink); }
.re-infos__cta{ display:flex; flex-wrap:wrap; gap:12px; }

/* ================= REVIEWS ================= */
.re-rev{ padding:clamp(64px,9vw,110px) 0; background:var(--re-paper2); overflow:hidden; }
.re-rev__head{ text-align:center; max-width:760px; margin:0 auto clamp(36px,4vw,52px); display:flex; flex-direction:column; align-items:center; }
.re-rev__head .re-eyebrow{ margin-bottom:18px; }
.re-rev__marquee{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.re-rev__track{ display:flex; gap:18px; width:max-content; animation:re-scroll 46s linear infinite; }
.re-rev__track:hover{ animation-play-state:paused; }
.re-revcard{ flex:0 0 clamp(300px,32vw,400px); margin:0; background:var(--re-paper); border:1px solid var(--re-line); border-radius:18px; padding:28px 26px; display:flex; flex-direction:column; gap:14px; }
.re-revcard__stars{ color:var(--re-ink); letter-spacing:3px; font-size:13px; }
.re-revcard__q{ margin:0; font-family:var(--re-serif); font-size:clamp(19px,1.7vw,23px); line-height:1.4; color:var(--re-ink); }
.re-revcard__by{ display:flex; align-items:center; gap:10px; font-family:var(--re-ui); font-size:13px; }
.re-revcard__by strong{ font-weight:600; color:var(--re-ink); }
.re-revcard__by span{ color:var(--re-mut); }
.re-revcard__by span::before{ content:"— "; }

/* ================= FINAL CTA ================= */
.re-final{ position:relative; color:#fff; padding:clamp(100px,16vw,200px) 0; overflow:hidden; isolation:isolate; text-align:center; }
.re-final::before{ content:""; position:absolute; inset:0; z-index:-2; background:var(--bg) center/cover no-repeat; transform:scale(1.04); }
.re-final__veil{ position:absolute; inset:0; z-index:-1; background:radial-gradient(80% 80% at 50% 50%,rgba(8,8,8,.55),rgba(8,8,8,.84)); }
.re-final__inner{ max-width:780px; margin-inline:auto; display:flex; flex-direction:column; align-items:center; gap:18px; }
.re-final__title{ font-family:var(--re-serif); font-weight:500; font-size:clamp(44px,8vw,110px); line-height:.96; color:#fff; }
.re-final__title em{ font-style:italic; color:var(--re-lime); }
.re-final__sub{ max-width:52ch; font-size:clamp(15px,1.4vw,18px); line-height:1.65; color:rgba(255,255,255,.82); }
.re-final__cta{ margin-top:14px; display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }

/* ================= RESPONSIVE ================= */
@media (max-width:1024px){
	.re-amb__head{ grid-template-columns:1fr; align-items:start; }
	.re-amb__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px){
	.re-infos__hours{ grid-template-columns:1fr 1fr; gap:28px 24px; }
	.re-infos__hours::before, .re-infohour::before{ display:none; }
	.re-infohour{ padding:6px 0 0; }
	.re-infohour:nth-child(-n+2){ border-bottom:1px solid rgba(10,10,10,.16); padding-bottom:24px; }
}
@media (max-width:680px){
	.re-hero{ min-height:88vh; }
	.re-carte__list{ grid-template-columns:1fr; gap:0; max-width:460px; }
	.re-carte__desc{ display:none; }
	.re-amb__grid{ grid-template-columns:1fr; }
	.re-ambcard{ aspect-ratio:16/10; }
	.re-sunset__inner{ align-items:center; text-align:center; }
	.re-infos__foot{ flex-direction:column; align-items:flex-start; }
	.re-hero__cta{ justify-content:center; }
}
