/* ═══════════════════════════════════════════════
   MAURICE SFEZ CAFÉ — CANNES
   ═══════════════════════════════════════════════ */

:root{
  --green:      #3B7858;
  --green-d:    #2B5940;
  --green-dd:   #1E4230;
  --green-l:    #6A9C81;
  --cream:      #F5EDE0;
  --cream-2:    #EFE3D1;
  --cream-3:    #FAF5EC;
  --peach:      #EFC9A6;
  --ink:        #21302A;

  --gut:        clamp(20px, 5vw, 76px);
  --maxw:       1500px;
  --nav-h:      64px;

  --disp: 'Fraunces', 'Times New Roman', serif;
  --mono: 'Space Mono', ui-monospace, 'SFMono-Regular', monospace;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
section[id]{ scroll-margin-top:calc(var(--nav-h) + 62px); }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--cream);
  color:var(--green-d);
  font-family:var(--mono);
  font-size:15px;
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }

::selection{ background:var(--green); color:var(--cream); }

/* ── Type primitives ───────────────────────────── */
.h-display,.h-giant{
  font-family:var(--disp);
  font-variation-settings:'SOFT' 100,'WONK' 1,'opsz' 144;
  font-weight:400;
  color:var(--green);
  line-height:.92;
  letter-spacing:-.015em;
  margin:0;
}
.h-display{ font-size:clamp(2.6rem, 6.2vw, 5.4rem); }
.h-giant  { font-size:clamp(3.4rem, 12vw, 11rem); }
.h-giant--light,.eyebrow--light{ color:var(--cream); }

.eyebrow{
  font-family:var(--mono);
  font-size:clamp(10px,1.05vw,12px);
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--green);
  margin:0 0 clamp(18px,2.4vw,30px);
  display:flex; align-items:center; gap:.9em; flex-wrap:wrap;
}
.eyebrow::before{
  content:''; width:clamp(24px,3vw,54px); height:1px;
  background:currentColor; opacity:.55; flex:none;
}
.eyebrow span{ font-weight:700; }

.prose p{ margin:0 0 1.35em; max-width:56ch; }
.prose em{ font-style:normal; font-family:var(--disp); font-variation-settings:'SOFT' 100,'WONK' 1; font-size:1.12em; }
.prose strong{ font-weight:700; }
.prose--lg p{ font-size:clamp(15px,1.25vw,18px); line-height:1.7; }

.btn{
  display:inline-block; margin-top:.8em;
  font-family:var(--mono); font-size:12px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; text-decoration:none;
  color:var(--cream); background:var(--green);
  padding:16px 30px; border-radius:100px;
  transition:background .4s var(--ease), transform .4s var(--ease);
}
.btn:hover{ background:var(--green-dd); transform:translateY(-2px); }
.btn--light{ background:var(--cream); color:var(--green-d); }
.btn--light:hover{ background:#fff; }

/* ── Scalloped awning valance ──────────────────── */
.valance{
  --r:22px;
  height:52px; width:100%;
  background:repeating-linear-gradient(90deg,
    var(--green) 0 calc(2*var(--r)), var(--cream-3) calc(2*var(--r)) calc(4*var(--r)));
  -webkit-mask:
    linear-gradient(#000 0 0) 0 0/100% calc(100% - var(--r)) no-repeat,
    radial-gradient(var(--r) at 50% 0, #000 99%, #0000 101%) 0 100%/calc(2*var(--r)) var(--r) repeat-x;
  mask:
    linear-gradient(#000 0 0) 0 0/100% calc(100% - var(--r)) no-repeat,
    radial-gradient(var(--r) at 50% 0, #000 99%, #0000 101%) 0 100%/calc(2*var(--r)) var(--r) repeat-x;
}

/* ── NAV ───────────────────────────────────────── */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:90;
  transition:transform .5s var(--ease);
}
.nav.is-hidden{ transform:translateY(-120%); }
.nav__inner{
  background:var(--cream-3);
  height:var(--nav-h);
  display:flex; align-items:center; gap:clamp(14px,3vw,44px);
  padding:0 var(--gut);
  max-width:100%;
}
.nav__brand{ display:flex; align-items:center; flex:none; min-height:44px; }
.nav__logo{
  height:clamp(17px,1.9vw,23px); width:auto;
  transition:height .4s var(--ease);
}
.nav__links{ display:flex; gap:clamp(14px,2.2vw,34px); margin-left:auto; }
.nav__links a{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  text-decoration:none; color:var(--green); position:relative; padding:4px 0;
}
.nav__links a::after{
  content:''; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background:currentColor; transition:right .45s var(--ease);
}
.nav__links a:hover::after{ right:0; }
.nav__meta{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--green-l); flex:none;
}
.nav__burger{
  display:none; margin-left:auto; background:none; border:0; cursor:pointer;
  width:44px; height:44px; padding:0; position:relative; margin-right:-10px;
}
.nav__burger span{
  position:absolute; left:10px; right:10px; height:1.5px; background:var(--green);
  transition:transform .4s var(--ease), opacity .3s;
}
.nav__burger span:nth-child(1){ top:18px; }
.nav__burger span:nth-child(2){ top:25px; }
.nav.is-open .nav__burger span:nth-child(1){ transform:translateY(3.5px) rotate(45deg); }
.nav.is-open .nav__burger span:nth-child(2){ transform:translateY(-3.5px) rotate(-45deg); }

.drawer{
  position:fixed; inset:0; z-index:80;
  background:var(--green); color:var(--cream);
  display:flex; flex-direction:column; justify-content:center; gap:6px;
  padding:0 var(--gut);
  clip-path:inset(0 0 100% 0);
  transition:clip-path .7s var(--ease-out);
  pointer-events:none;
}
.drawer.is-open{ clip-path:inset(0 0 0 0); pointer-events:auto; }
.drawer a{
  font-family:var(--disp); font-variation-settings:'SOFT' 100,'WONK' 1,'opsz' 144;
  font-size:clamp(2.2rem,10vw,3.4rem); line-height:1.12;
  text-decoration:none; color:var(--cream);
  opacity:0; transform:translateY(22px);
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.drawer.is-open a{ opacity:1; transform:none; }
.drawer.is-open a:nth-child(1){ transition-delay:.14s }
.drawer.is-open a:nth-child(2){ transition-delay:.20s }
.drawer.is-open a:nth-child(3){ transition-delay:.26s }
.drawer.is-open a:nth-child(4){ transition-delay:.32s }
.drawer.is-open a:nth-child(5){ transition-delay:.38s }
.drawer__meta{
  margin-top:34px; font-size:12px; letter-spacing:.1em; line-height:1.9;
  color:var(--cream); opacity:0; transition:opacity .5s .46s;
}
.drawer__meta span{ color:var(--cream); opacity:.72; }
.drawer.is-open .drawer__meta{ opacity:.85; }

/* ── HERO ──────────────────────────────────────── */
.hero{
  position:relative;
  min-height:100svh;
  padding:calc(var(--nav-h) + 92px) var(--gut) 40px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  overflow:hidden;
  background:
    radial-gradient(120% 80% at 50% 0%, var(--cream-3) 0%, var(--cream) 58%, var(--cream-2) 100%);
}
.hero__core{ position:relative; z-index:3; text-align:center; width:100%; will-change:transform,opacity; }
.hero .eyebrow{ justify-content:center; }
.hero .eyebrow::before{ display:none; }
.hero__logo{
  width:min(1020px, 84vw); height:auto; margin:0 auto;
}
.hero__city{
  font-family:var(--disp); font-variation-settings:'SOFT' 100,'WONK' 1,'opsz' 144;
  font-weight:400; color:var(--green);
  font-size:clamp(1rem,2.3vw,1.95rem);
  line-height:1; margin:clamp(20px,2.6vw,34px) 0 0;
  display:flex; justify-content:center; align-items:center; gap:clamp(14px,2.4vw,30px);
  text-transform:uppercase; letter-spacing:.5em; text-indent:.5em;
}
.hero__city i{ width:clamp(28px,7vw,110px); height:1px; background:currentColor; opacity:.45; flex:none; }
.hero__sub{
  margin:clamp(20px,2.6vw,32px) auto 0;
  font-size:clamp(12px,1.15vw,15px); line-height:1.85;
  letter-spacing:.05em; color:var(--green-d); max-width:34ch;
}
.hero__foot{
  position:relative; z-index:3;
  margin-top:auto; padding-top:56px; width:100%;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--green-l);
}
.hero__scroll{ animation:bob 2.6s var(--ease) infinite; }
@keyframes bob{ 0%,100%{transform:translateY(0);opacity:.6} 50%{transform:translateY(5px);opacity:1} }

.hero__float{ position:absolute; z-index:1; will-change:transform; pointer-events:none; }
.hero__float img{ width:100%; }
.hero__float--a{ width:clamp(74px,8.4vw,140px); left:2.5vw;  top:19vh; transform:rotate(-9deg); }
.hero__float--b{ width:clamp(110px,15vw,250px); right:1vw;  top:13vh; opacity:.5; }
.hero__float--c{ width:clamp(96px,11vw,182px);  left:-1.2vw; bottom:4vh; transform:rotate(-7deg); }

/* ── TICKER ────────────────────────────────────── */
.ticker{
  background:var(--green); color:var(--cream);
  padding:15px 0; overflow:hidden; position:relative; z-index:5;
  border-top:1px solid var(--green-dd);
}
.ticker__track{ display:flex; width:max-content; will-change:transform; }
.ticker__group{ display:flex; align-items:center; flex:none; }
.ticker__group b{
  font-family:var(--disp); font-variation-settings:'SOFT' 100,'WONK' 1,'opsz' 144;
  font-weight:400; font-size:clamp(19px,2.3vw,32px); padding:0 .42em; white-space:nowrap;
}
.ticker__group i{ font-style:normal; font-size:9px; opacity:.55; }

/* ── CONCEPT ───────────────────────────────────── */
.concept{ padding:clamp(80px,11vw,170px) var(--gut); max-width:var(--maxw); margin:0 auto; }
.concept__grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.86fr);
  gap:clamp(40px,6vw,110px); align-items:start;
}
.concept__text .prose{ margin-top:clamp(26px,3vw,42px); }
.facts{
  list-style:none; margin:clamp(30px,4vw,52px) 0 0; padding:0;
  border-top:1px solid rgba(59,120,88,.24);
}
.facts li{
  display:flex; gap:1.2em; align-items:baseline;
  padding:15px 0; border-bottom:1px solid rgba(59,120,88,.24);
  font-size:12.5px; letter-spacing:.08em; text-transform:uppercase;
}
.facts span{ color:var(--green-l); font-size:10px; letter-spacing:.14em; }

.concept__shop{ margin:0; position:relative; }
.concept__shop img{
  width:100%;
  clip-path:inset(0 0 100% 0);
  transition:clip-path 1.25s var(--ease-out);
}
.concept__shop.is-in img{ clip-path:inset(0 0 0 0); }
.concept__shop figcaption{
  margin-top:22px; text-align:center;
  font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--green-l);
}

/* ── BOISSONS ──────────────────────────────────── */
.bev{
  background:var(--peach);
  padding:clamp(80px,11vw,170px) var(--gut);
  position:relative; overflow:hidden;
}
.bev__head{ max-width:var(--maxw); margin:0 auto clamp(44px,6vw,90px); }
.bev__body{
  max-width:var(--maxw); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1fr);
  gap:clamp(40px,6vw,110px); align-items:start;
}
.bev__shot{ margin:0; padding-top:clamp(10px,3vw,50px); will-change:transform; }
.bev__shot img{ width:100%; }
.bev__shot figcaption{
  margin-top:14px; font-size:10.5px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--green-d); opacity:.7;
}
.origins{
  max-width:var(--maxw); margin:clamp(56px,7vw,110px) auto 0;
  display:flex; flex-wrap:wrap; align-items:center; gap:clamp(12px,2vw,26px);
  border-top:1px solid rgba(43,89,64,.28); padding-top:26px;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--green-d);
}
.origins i{ width:4px; height:4px; border-radius:50%; background:var(--green); opacity:.5; }

/* ── MATCHA ────────────────────────────────────── */
.matcha{
  background:var(--green); color:var(--cream);
  padding:clamp(86px,12vw,190px) var(--gut);
  position:relative; overflow:hidden;
}
.matcha__inner{ max-width:var(--maxw); margin:0 auto; position:relative; z-index:2; }
.matcha__lede{
  max-width:48ch; margin:clamp(26px,3vw,40px) 0 0;
  font-size:clamp(13px,1.2vw,16px); line-height:1.8; color:var(--cream); opacity:.86;
}
.matcha__list{
  margin-top:clamp(44px,6vw,84px);
  display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  border-top:1px solid rgba(245,237,224,.28);
}
.matcha__list span{
  padding:16px 4px; border-bottom:1px solid rgba(245,237,224,.28);
  font-size:12.5px; letter-spacing:.1em; text-transform:uppercase;
  display:flex; align-items:center; gap:.8em;
}
.matcha__list span::before{
  content:''; width:5px; height:5px; border-radius:50%;
  background:var(--cream); opacity:.5; flex:none;
}
.matcha__cup{
  position:absolute; z-index:1; opacity:.17;
  filter:brightness(0) invert(1);
  will-change:transform; pointer-events:none;
}
.matcha__cup--l{ width:clamp(120px,15vw,230px); left:-3vw;  top:8%; }
.matcha__cup--r{ width:clamp(120px,15vw,230px); right:-3vw; bottom:6%; }

/* ── RAIL (galerie horizontale) ────────────────── */
.rail{ height:360vh; position:relative; background:var(--cream-2); }
.rail__sticky{
  position:sticky; top:0; height:100svh;
  display:flex; align-items:center; overflow:hidden;
}
.rail__track{
  display:flex; gap:clamp(24px,4vw,72px);
  padding:0 var(--gut); will-change:transform;
}
.rail__item{ margin:0; flex:none; width:clamp(230px,26vw,400px); }
.rail__item--wide{ width:clamp(300px,36vw,560px); }
.rail__item img{
  width:100%; height:clamp(220px,38vh,420px);
  object-fit:contain; object-position:50% 100%;
}
.rail__item--wide img{ object-fit:cover; object-position:50% 50%; }
.rail__item figcaption{
  margin-top:16px; display:flex; justify-content:space-between; gap:14px;
  border-top:1px solid rgba(59,120,88,.3); padding-top:11px;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--green);
}
.rail__item figcaption span{ color:var(--green-l); }

/* ── MENU ──────────────────────────────────────── */
.menu{ padding:clamp(80px,11vw,170px) var(--gut); max-width:var(--maxw); margin:0 auto; }
.menu__head{ position:relative; margin-bottom:clamp(46px,6vw,86px); min-height:clamp(130px,15vw,230px); }
.menu__eng{
  width:clamp(180px,28vw,420px);
  position:absolute; right:0; bottom:-4px; opacity:.9;
}
.menu__cols{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(38px,5vw,92px);
}
.mgroup{ margin-bottom:clamp(38px,4.4vw,64px); }
.mgroup h3{
  font-family:var(--disp); font-variation-settings:'SOFT' 100,'WONK' 1,'opsz' 144;
  font-weight:400; color:var(--green);
  font-size:clamp(1.7rem,3.1vw,2.7rem); line-height:1;
  margin:0 0 20px; display:flex; align-items:baseline; gap:.7em; flex-wrap:wrap;
}
.mgroup h3 small{
  font-family:var(--mono); font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--green-l);
}
.mgroup ul{ list-style:none; margin:0; padding:0; border-top:1px solid rgba(59,120,88,.22); }
.mgroup li{
  display:flex; align-items:baseline; gap:10px;
  padding:11px 0; border-bottom:1px solid rgba(59,120,88,.22);
}
.mgroup li > span{ flex:1 1 auto; font-size:13px; letter-spacing:.03em; }
.mgroup li em{
  font-style:normal; display:block; font-size:10px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--green-l); margin-top:3px;
}
.mgroup li b{
  flex:none; font-weight:400; font-size:13px; color:var(--green);
  font-variant-numeric:tabular-nums;
}
.mgroup li.is-sig > span::before{
  content:'M'; font-family:var(--disp); font-variation-settings:'SOFT' 100,'WONK' 1;
  display:inline-grid; place-items:center; width:17px; height:17px; margin-right:8px;
  border-radius:50%; background:var(--green); color:var(--cream);
  font-size:10px; line-height:1; vertical-align:-3px;
}
.mgroup--extras p{
  margin:0; padding-top:4px; font-size:12px; line-height:2; letter-spacing:.06em;
  color:var(--green-d);
}
.mgroup--extras em{ font-style:normal; color:var(--green-l); }
.menu__note{
  margin:clamp(30px,4vw,56px) 0 0; padding-top:24px;
  border-top:1px solid rgba(59,120,88,.22);
  font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--green-l);
}

/* ── TROUVER ───────────────────────────────────── */
.find{
  background:var(--green-dd); color:var(--cream);
  padding:clamp(86px,12vw,190px) var(--gut);
}
.find__grid{
  max-width:var(--maxw); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(44px,6vw,110px); align-items:start;
}
.find address{
  font-style:normal; margin-top:clamp(28px,3.4vw,48px);
  font-family:var(--disp); font-variation-settings:'SOFT' 100,'WONK' 1,'opsz' 144;
  font-size:clamp(1.4rem,2.8vw,2.3rem); line-height:1.28; color:var(--cream);
}
.find__hours{
  margin:26px 0 0; font-size:11.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--green-l); line-height:2.1;
}
.find__hours b{ color:var(--cream); font-size:15px; letter-spacing:.14em; }
.find .btn{ margin-top:34px; }
.find__label{
  margin:0 0 18px; font-size:10.5px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--green-l);
}
.find__label--mt{ margin-top:clamp(38px,4.6vw,64px); }
.find__list{ list-style:none; margin:0; padding:0; border-top:1px solid rgba(245,237,224,.24); }
.find__list li{
  padding:14px 0; border-bottom:1px solid rgba(245,237,224,.24);
  display:flex; gap:16px; align-items:baseline;
  font-size:12px; letter-spacing:.06em;
}
.find__list b{ flex:none; width:92px; white-space:nowrap; font-weight:400; color:var(--green-l); letter-spacing:.1em; }
.find__list--plain li{ font-family:var(--disp); font-variation-settings:'SOFT' 100,'WONK' 1,'opsz' 144; font-size:1.15rem; letter-spacing:0; }

/* ── FOOTER ────────────────────────────────────── */
.foot{ background:var(--green-dd); color:var(--cream); }
.foot__inner{
  max-width:var(--maxw); margin:0 auto;
  padding:clamp(50px,6vw,86px) var(--gut) clamp(30px,3vw,44px);
}
.foot__logo{
  width:min(620px,72vw); height:auto; margin:0 auto clamp(44px,5vw,72px);
  filter:brightness(0) invert(1); opacity:.92;
}
.foot__cols{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px;
  border-top:1px solid rgba(245,237,224,.22); padding-top:32px;
}
.foot__cols h4{
  margin:0 0 10px; font-size:10px; font-weight:400; letter-spacing:.24em;
  text-transform:uppercase; color:var(--green-l);
}
.foot__cols p{ margin:0; font-size:12.5px; line-height:1.9; }
.foot__cols a{
  display:inline-block; padding:9px 0; text-decoration:none;
  border-bottom:1px solid rgba(245,237,224,.35);
}
.foot__cols a:hover{ border-color:var(--cream); }
.foot__legal{
  margin:clamp(38px,4.4vw,64px) 0 0; padding-top:22px;
  border-top:1px solid rgba(245,237,224,.22);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--green-l);
}

/* ── Scroll reveals ────────────────────────────── */
[data-rev]{ opacity:0; transform:translateY(24px); }
[data-rev].is-in{
  opacity:1; transform:none;
  transition:opacity .85s var(--ease-out), transform .85s var(--ease-out);
}
.ln{ display:block; overflow:hidden; }
.ln__i{
  display:block; transform:translateY(105%);
  transition:transform 1.05s var(--ease-out);
}
.is-in .ln__i{ transform:none; }
.is-in .ln:nth-child(2) .ln__i{ transition-delay:.1s; }
.is-in .ln:nth-child(3) .ln__i{ transition-delay:.2s; }

@media (prefers-reduced-motion:reduce){
  [data-rev],[data-rev].is-in{ opacity:1; transform:none; transition:none; }
  .ln__i{ transform:none; transition:none; }
  .concept__shop img{ clip-path:none; transition:none; }
  .hero__scroll{ animation:none; }
}

/* ── Responsive ────────────────────────────────── */
@media (max-width:1080px){
  .concept__grid,.bev__body,.find__grid{ grid-template-columns:minmax(0,1fr); }
  .concept__shop{ max-width:460px; margin-inline:auto; }
  .bev__shot{ max-width:min(440px,62vw); margin-inline:auto; padding-top:0; }
  .bev__head{ margin-bottom:clamp(28px,4vw,48px); }
  .menu__cols{ grid-template-columns:minmax(0,1fr); gap:0; }
  .rail{ height:280vh; }
}

@media (max-width:820px){
  :root{ --nav-h:56px; }
  .nav__links,.nav__meta{ display:none; }
  .nav__burger{ display:block; }
  .hero{ padding-top:calc(var(--nav-h) + 66px); }
  .hero__core{ margin-top:2vh; }
  .hero__sub{ margin-bottom:6vh; }
  .hero__float--b{ display:none; }
  .hero__float--a{ width:82px; left:auto; right:4vw; top:auto; bottom:24vh; transform:rotate(-7deg); }
  .hero__float--c{ width:112px; left:-3vw; right:auto; bottom:26vh; transform:rotate(-5deg); }
  .hero__foot{ flex-direction:column; gap:10px; text-align:center; padding-top:44px; }
  .hero__city{ letter-spacing:.34em; text-indent:.34em; }
  .menu__eng{ position:static; margin-top:26px; width:min(320px,72vw); }
  .foot__cols{ grid-template-columns:minmax(0,1fr); gap:26px; }
  .foot__legal{ flex-direction:column; gap:6px; }
  .matcha__cup{ opacity:.1; }
  .rail{ height:230vh; }
  .rail__item{ width:66vw; }
  .rail__item--wide{ width:80vw; }
  /* les deux libellés ne tiennent pas côte à côte sous 820px */
  .rail__item figcaption{ flex-direction:column; gap:3px; }
}

/* Téléphone en paysage : le héros doit tenir dans 390px de haut */
@media (max-height:540px) and (orientation:landscape){
  .hero{ min-height:auto; padding-top:calc(var(--nav-h) + 64px); padding-bottom:34px; }
  .hero__logo{ width:min(540px,58vw); }
  .hero__city{ font-size:clamp(.8rem,1.5vw,1.1rem); margin-top:14px; letter-spacing:.34em; text-indent:.34em; }
  .hero__city i{ width:clamp(20px,4vw,60px); }
  .hero__sub{ margin-top:14px; }
  .hero__foot{ padding-top:26px; }
  .hero__float{ display:none; }
  .rail__sticky{ height:100svh; }
  .rail__item img{ height:clamp(150px,42vh,300px); }
  .matcha__cup{ display:none; }
}

@media (max-width:480px){
  body{ font-size:14px; }
  .valance{ --r:16px; height:26px; }
  .hero__logo{ width:88vw; }
  .facts li{ font-size:11.5px; }
}

/* ── Repli sans animation ──────────────────────── */
.is-reduced .rail{ height:auto; }
.is-reduced .rail__sticky{
  position:static; height:auto; overflow-x:auto;
  padding:clamp(60px,8vw,110px) 0; scroll-snap-type:x mandatory;
}
.is-reduced .rail__item{ scroll-snap-align:center; }
