@font-face{
  font-family:'Lady Ice';
  src:url('../fonts/LadyIce.ttf') format('truetype');
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:'Lady Ice';
  src:url('../fonts/LadyIce-Bold.ttf') format('truetype');
  font-weight:700;
  font-display:swap;
}
@font-face{
  font-family:'DIN Alternate Bold';
  src:url('../fonts/DINAlternate-Bold.ttf') format('truetype');
  font-weight:700;
  font-display:swap;
}

:root{
  --mie:#F6EFE5;
  --terre-cuite:#E8927C;
  --facade:#E8927C;
  --encre:#1D1D1B;
  --pierre:#8C8072;
  --display:'Lady Ice','Fredoka',system-ui,sans-serif;
  --body:'DIN Alternate Bold','Barlow Semi Condensed','Arial Narrow',Arial,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--mie);color:var(--encre);font-family:var(--body);
  font-weight:700;font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(32px,6vw,64px);}
h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;text-wrap:balance;color:var(--encre);}
p{margin:0;}
::selection{background:var(--terre-cuite);color:#fff;}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
}

/* grain texture — a barely-there sprinkle of tiny grains, not the épis motif */
.grain{
  background-image:url('../images/grain.svg');
  background-repeat:repeat;background-size:110px 55px;
  background-color:var(--mie);
}

/* stitch divider */
.stitch{height:2px;width:100%;background-image:linear-gradient(90deg,var(--pierre) 55%,transparent 0);background-size:11px 2px;background-repeat:repeat-x;opacity:.55;}

/* nav */
.topnav{position:sticky;top:0;z-index:20;background:rgba(246,239,229,.92);backdrop-filter:blur(6px);border-bottom:1px solid rgba(140,128,114,.22);}
.topnav .row{display:flex;align-items:center;justify-content:space-between;padding-top:6px;padding-bottom:6px;}
.topnav .wrap{padding-left:clamp(18px,4vw,40px);padding-right:clamp(18px,4vw,40px);}
.brand-stamp{position:relative;display:block;width:78px;height:78px;flex-shrink:0;z-index:2;-webkit-tap-highlight-color:transparent;}
.brand-stamp svg{width:100%;height:100%;}
.brand-stamp .spin{animation:spin 26s linear infinite;transform-origin:100px 100px;}
@media(prefers-reduced-motion:reduce){.brand-stamp .spin{animation:none;}}
.brand-stamp-mark{position:absolute;top:50%;left:50%;width:22px;transform:translate(-50%,-50%);}
.topnav nav{display:flex;align-items:center;gap:clamp(10px,3vw,28px);flex-wrap:wrap;justify-content:flex-end;row-gap:6px;}
.topnav nav a{font-size:.86rem;font-weight:700;text-decoration:none;color:var(--encre);opacity:.75;}
.topnav nav .icons{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.topnav nav a.icon-link{width:34px;height:34px;border-radius:50%;border:1px solid rgba(29,29,27,.18);display:flex;align-items:center;justify-content:center;padding:0;opacity:1;flex-shrink:0;-webkit-tap-highlight-color:transparent;}
.topnav nav a.icon-link svg{width:16px;height:16px;color:var(--encre);}
.topnav nav a.icon-link:hover{background:var(--encre);}
.topnav nav a.icon-link:hover svg{color:var(--mie);}
.nav-sms{
  display:flex;align-items:center;
  background:var(--encre);color:var(--mie)!important;
  font-size:.78rem;font-weight:700;opacity:1!important;
  padding:8px 16px;border-radius:20px;
  text-decoration:none;white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
}
.nav-sms:hover,.nav-sms:focus-visible{opacity:.88!important;}
.nav-sms .short{display:none;}
@media(max-width:640px){
  .topnav nav a:not(.icon-link):not(.nav-sms){display:none;}
  .topnav .wrap{padding-left:14px;padding-right:14px;}
  .topnav nav{gap:6px;}
  .topnav nav .icons{gap:6px;}
  .topnav nav a.icon-link{width:30px;height:30px;}
  .topnav nav a.icon-link svg{width:14px;height:14px;}
  .nav-sms{padding:6px 9px;font-size:.68rem;}
  .nav-sms .full{display:none;}
  .nav-sms .short{display:inline;}
}

/* floating "commandes par SMS" button — persists while scrolling the page */
.fab-phone{
  position:fixed;right:20px;bottom:20px;z-index:30;
  display:flex;align-items:center;height:50px;padding:0 15px;
  background:var(--encre);color:var(--mie);border-radius:30px;
  text-decoration:none;box-shadow:0 4px 16px rgba(29,29,27,.28);
  -webkit-tap-highlight-color:transparent;
}
.fab-phone svg{width:21px;height:21px;flex-shrink:0;}
.fab-phone .fab-label{
  font-size:.82rem;font-weight:700;margin-left:9px;white-space:nowrap;
}
.fab-phone:hover,.fab-phone:focus-visible{opacity:.88;}

/* hours strip — a terracotta "frise" between the nav and the hero photo,
   bordered by the épis motif so it echoes the one at the hero's own base
   (a deliberate double-frise instead of a floating card over the photo) */
.hours-strip{position:relative;background:var(--facade);padding:11px 0 19px;}
.hours-strip .row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;}
.hours-strip svg{width:16px;height:16px;color:var(--encre);flex-shrink:0;}
.hours-strip .txt{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;font-size:.82rem;font-weight:600;color:var(--encre);}
.hours-strip .txt span{
  display:inline-flex;align-items:baseline;gap:6px;
  background:rgba(29,29,27,.09);
  padding:5px 14px;border-radius:16px;
}
.hours-strip .txt strong{font-family:var(--display);font-weight:700;letter-spacing:.02em;}
.hours-strip .motif-bottom{
  position:absolute;left:0;right:0;bottom:0;height:14px;background-color:var(--mie);
  -webkit-mask-image:url('../images/motif-epis.svg');mask-image:url('../images/motif-epis.svg');
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-position:bottom left;mask-position:bottom left;
  -webkit-mask-size:auto 100%;mask-size:auto 100%;
}

/* hero */
.hero{position:relative;min-height:min(80vh,680px);overflow:hidden;}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 8%;transform:scale(1.06);will-change:transform;}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,29,27,.08) 0%,rgba(29,29,27,.18) 55%,rgba(29,29,27,.86) 100%);}
.hero .inner{position:relative;height:100%;min-height:min(80vh,680px);display:flex;flex-direction:column;justify-content:flex-end;padding:0 clamp(32px,6vw,64px) clamp(46px,7vw,64px);}
.hero .eyebrow{color:#f0d9cd;font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;}
.hero h1{font-size:clamp(3.4rem,11vw,7.5rem);line-height:.86;color:#fff;}
.hero .tag{font-family:var(--display);font-weight:400;font-size:clamp(1.1rem,3vw,1.6rem);color:var(--terre-cuite);margin-top:10px;}
@keyframes spin{to{transform:rotate(360deg);}}
.hero .motif-ground{
  position:absolute;left:0;right:0;bottom:0;height:22px;background-color:var(--mie);
  -webkit-mask-image:url('../images/motif-epis.svg');mask-image:url('../images/motif-epis.svg');
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-position:bottom left;mask-position:bottom left;
  -webkit-mask-size:auto 100%;mask-size:auto 100%;
}

/* histoire */
.histoire{padding:clamp(64px,10vw,110px) 0 clamp(50px,7vw,80px);}
.histoire .grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,5vw,60px);align-items:center;}
@media(max-width:820px){.histoire .grid{grid-template-columns:1fr;}}
.histoire .photo-wrap{position:relative;}

/* carousel */
.carousel{width:100%;}
.car-track{
  position:relative;width:100%;aspect-ratio:3/4;overflow:hidden;
  border-radius:54% 54% 6px 6px / 42% 42% 6px 6px;
}
.car-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease;}
.car-slide.is-active{opacity:1;}
.car-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;}
.car-arrow{width:34px;height:34px;border-radius:50%;border:1px solid var(--pierre);background:none;color:var(--encre);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.car-arrow:hover{background:var(--encre);color:var(--mie);border-color:var(--encre);}
.car-counter{font-family:var(--display);font-weight:700;font-size:.85rem;color:var(--pierre);font-variant-numeric:tabular-nums;min-width:56px;text-align:center;}

.histoire .eyebrow{color:var(--terre-cuite);font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px;}
.histoire h2{font-size:clamp(2rem,4.4vw,3rem);line-height:1.02;}
.histoire .lede{font-family:var(--display);font-weight:400;font-size:clamp(1.15rem,2.4vw,1.4rem);color:var(--terre-cuite);margin-top:18px;line-height:1.35;}
.histoire p.body{font-size:1.02rem;margin-top:20px;color:#3a352f;max-width:52ch;}

/* produits */
.produits{padding:clamp(50px,8vw,84px) 0 clamp(64px,9vw,96px);position:relative;}
.produits .head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:clamp(30px,5vw,48px);}
.produits .head h2{font-size:clamp(2rem,4.4vw,3rem);}
.produits .head .eyebrow{color:var(--terre-cuite);font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;}
.cat-row{margin-bottom:clamp(20px,3vw,32px);}
.cat-row:last-child{margin-bottom:0;}
.cat-row .cat-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px;}
.cat-row .cat-head h3{font-family:var(--display);font-weight:700;font-size:clamp(1.25rem,2.6vw,1.55rem);}
.cat-row .cat-head .count{font-size:.8rem;color:var(--pierre);font-weight:700;white-space:nowrap;}
.cat-scroll{
  display:flex;align-items:flex-start;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;
  scroll-padding-left:clamp(32px,6vw,64px);scroll-padding-right:clamp(32px,6vw,64px);
  padding:2px clamp(32px,6vw,64px) 14px;margin:0 calc(-1 * clamp(32px,6vw,64px));
  -webkit-overflow-scrolling:touch;touch-action:pan-x;
  scrollbar-width:thin;scrollbar-color:var(--pierre) transparent;
}
.cat-scroll::-webkit-scrollbar{height:6px;}
.cat-scroll::-webkit-scrollbar-thumb{background:var(--pierre);border-radius:3px;opacity:.5;}
.cat-card{flex:0 0 auto;width:172px;scroll-snap-align:start;}
.cat-card .img-wrap{
  position:relative;aspect-ratio:4/5;overflow:hidden;margin-bottom:10px;cursor:pointer;
  border-radius:58% 58% 8px 8px / 44% 44% 8px 8px;
  -webkit-tap-highlight-color:transparent;
}
.cat-card .img-wrap:focus-visible{outline:2px solid var(--terre-cuite);outline-offset:2px;}
.cat-card .img-wrap:focus:not(:focus-visible){outline:none;}
.cat-card .img-wrap img{width:100%;height:100%;object-fit:cover;}
.cat-card .img-wrap .no-photo{width:100%;height:100%;background:var(--terre-cuite);display:flex;align-items:center;justify-content:center;opacity:.5;}
.cat-card .img-wrap .no-photo img{width:38%;height:38%;object-fit:contain;filter:brightness(0) invert(1);}
.cat-card .desc-overlay{
  position:absolute;inset:0;background:rgba(29,21,15,.66);
  display:flex;align-items:flex-end;padding:16px 14px 18px;
  opacity:0;transition:opacity .28s ease;overflow-y:auto;
}
.cat-card .desc-overlay p{color:var(--mie);font-size:.72rem;font-weight:600;line-height:1.45;}
.cat-card .img-wrap:hover .desc-overlay,
.cat-card .img-wrap:focus-within .desc-overlay,
.cat-card .img-wrap.is-open .desc-overlay{opacity:1;}
.cat-card .prow{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.cat-card h4{font-family:var(--display);font-weight:700;font-size:1rem;}
.cat-card .price{font-family:var(--display);font-weight:700;color:var(--terre-cuite);font-size:.92rem;white-space:nowrap;}
.cat-card .remark{
  display:block;font-size:.72rem;font-weight:600;color:var(--pierre);
  margin-top:6px;text-transform:none;letter-spacing:0;
}

/* bienfaits ticket */
.bienfaits{padding:0 0 clamp(60px,8vw,90px);}
.ticket{position:relative;background:#fff;padding:clamp(30px,5vw,44px) clamp(26px,5vw,40px) clamp(24px,4vw,32px);max-width:640px;}
.ticket::before,.ticket::after{content:"";position:absolute;left:0;right:0;height:11px;background-image:linear-gradient(135deg,var(--mie) 50%,transparent 50%),linear-gradient(45deg,var(--mie) 50%,transparent 50%);background-size:16px 16px;background-repeat:repeat-x;}
.ticket::before{top:-1px;background-position:0 0,8px 0;}
.ticket::after{bottom:-1px;transform:scaleY(-1);background-position:0 0,8px 0;}
.ticket h3{font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,3.6vw,1.9rem);}
.ticket .ticket-sub{font-family:var(--display);font-weight:400;font-size:clamp(1rem,2.2vw,1.2rem);color:var(--terre-cuite);margin-top:6px;margin-bottom:20px;line-height:1.35;}
.ticket .bienfait{display:grid;grid-template-columns:140px 1fr;gap:6px 16px;padding:14px 0;border-top:1px dashed #ddd0bc;}
.ticket .bienfait:first-of-type{border-top:none;}
.ticket .bienfait .k{font-family:var(--display);font-weight:700;color:var(--terre-cuite);font-size:1.25rem;}
.ticket .bienfait .v{font-size:.9rem;color:#3a352f;line-height:1.5;}

/* footer */
footer{background:var(--encre);color:var(--mie);padding:clamp(50px,8vw,72px) 0 clamp(28px,4vw,36px);}
footer .top-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:clamp(30px,5vw,50px);}
@media(max-width:700px){footer .top-row{grid-template-columns:1fr;}}
footer .brand{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
footer .brand img{width:32px;filter:brightness(0) invert(1);}
footer .brand span{font-family:var(--display);font-weight:700;font-size:1.4rem;}
footer .tag{color:var(--terre-cuite);font-family:var(--display);font-size:1rem;}
footer h5{font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;color:var(--pierre);margin-bottom:12px;}
footer .line{font-size:.94rem;color:#e8e2d6;margin-bottom:6px;font-weight:600;}
footer .socials{display:flex;gap:10px;margin-top:14px;}
footer .socials a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(246,239,229,.3);display:flex;align-items:center;justify-content:center;font-size:.8rem;text-decoration:none;color:var(--mie);}
footer .bottom{margin-top:clamp(36px,6vw,54px);padding-top:20px;border-top:1px solid rgba(246,239,229,.15);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.8rem;color:var(--pierre);}
footer .bottom a{color:var(--pierre);text-decoration:underline;}

/* mentions légales page anchor target */
#mentions-legales{scroll-margin-top:90px;}
