
  :root{
    --cream:        #FBF1DC;
    --cream-soft:   #FFFAF0;
    --terracotta:   #E0642A;
    --terracotta-d: #C24B1C;
    --sunset-red:   #C2331A;
    --gold:         #F0A93E;
    --espresso:     #3A2417;
    --espresso-70:  rgba(58,36,23,.7);
    --espresso-50:  rgba(58,36,23,.5);
    --line:         rgba(58,36,23,.12);
    --shadow:       0 20px 50px -22px rgba(58,36,23,.35);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; overflow-x:hidden; width:100%;}
  body{
    background:var(--cream);
    color:var(--espresso);
    font-family:'Manrope',sans-serif;
    font-weight:400;
    line-height:1.6;
    overflow-x:hidden;
    width:100%;
    -webkit-font-smoothing:antialiased;
  }
  body.scroll-locked{
    overflow:hidden;
    height:100%;
    touch-action:none;
    overscroll-behavior:none;
  }
  img{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}

  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    font-weight:600;
    letter-spacing:-0.01em;
    line-height:1.08;
  }

  .eyebrow{
    font-family:'Manrope',sans-serif;
    font-weight:700;
    font-size:.72rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--terracotta-d);
  }

  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 clamp(20px,5vw,56px);
  }

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- Sunrise signature element ---------- */
  .sunrise{
    position:absolute;
    border-radius:50%;
    background:radial-gradient(circle at 35% 30%, #FFD9A0, var(--gold) 42%, var(--terracotta) 72%, var(--sunset-red) 100%);
    filter:blur(0px);
    box-shadow:0 0 90px 20px rgba(224,100,42,.35);
  }

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex;
    align-items:center;
    gap:.55em;
    padding:.95em 1.7em;
    border-radius:100px;
    font-family:'Manrope',sans-serif;
    font-weight:700;
    font-size:.95rem;
    border:1.5px solid transparent;
    cursor:pointer;
    transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, background .3s ease, color .3s ease, border-color .3s ease;
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--terracotta);
    color:var(--cream-soft);
    box-shadow:0 14px 30px -12px rgba(194,51,26,.55);
  }
  .btn-primary:hover{transform:translateY(-3px); box-shadow:0 20px 36px -12px rgba(194,51,26,.65);}
  .btn-ghost{
    background:transparent;
    border-color:var(--espresso-70);
    color:var(--espresso);
  }
  .btn-ghost:hover{border-color:var(--espresso); background:rgba(58,36,23,.05); transform:translateY(-2px);}
  .btn-light{
    background:rgba(255,250,240,.14);
    border-color:rgba(255,250,240,.55);
    color:var(--cream-soft);
    backdrop-filter:blur(6px);
  }
  .btn-light:hover{background:rgba(255,250,240,.24); transform:translateY(-3px);}

  /* ---------- Header ---------- */
  header{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
    padding:14px clamp(20px,5vw,56px);
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition:background .4s ease, box-shadow .4s ease, padding .4s ease;
  }
  header.scrolled{
    background:rgba(251,241,220,.88);
    backdrop-filter:blur(14px);
    box-shadow:0 8px 30px -14px rgba(58,36,23,.25);
    padding-top:10px; padding-bottom:10px;
  }
  /* Pages that don't open on the photo hero need a solid header from the start,
     otherwise the (transparent-by-default) nav becomes unreadable over their content. */
  body:not(.has-hero) header{
    background:rgba(251,241,220,.88);
    backdrop-filter:blur(14px);
    box-shadow:0 8px 30px -14px rgba(58,36,23,.25);
  }
  .logo-mark{
    height:38px;
    display:flex;
    align-items:center;
    gap:.6em;
  }
  .logo-mark img{height:100%; width:auto;}
  nav.main-nav{
    display:flex;
    align-items:center;
    gap:clamp(18px,3vw,34px);
  }
  nav.main-nav a{
    font-weight:600;
    font-size:.92rem;
    color:var(--espresso);
    position:relative;
    padding:4px 0;
  }
  nav.main-nav a::after{
    content:'';
    position:absolute; left:0; right:100%; bottom:0;
    height:2px;
    background:var(--terracotta);
    transition:right .3s ease;
  }
  nav.main-nav a:hover::after{right:0;}
  nav.main-nav a.active::after{right:0;}
  nav.main-nav a.active{color:var(--terracotta-d);}
  .nav-links{display:flex; gap:clamp(16px,2.6vw,30px);}

  /* ---------- Dropdown sub-menus ---------- */
  .nav-drop{position:relative;}
  .nav-sub{
    position:absolute;
    top:100%; left:50%;
    transform:translate(-50%,-6px);
    min-width:190px;
    background:var(--cream-soft);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 20px 40px -18px rgba(58,36,23,.3);
    padding:14px 8px 8px;
    margin-top:0;
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease, transform .25s ease;
    z-index:5;
  }
  .nav-drop:hover .nav-sub,
  .nav-drop:focus-within .nav-sub{
    opacity:1;
    pointer-events:auto;
    transform:translate(-50%,0);
  }
  .nav-sub li{list-style:none;}
  .nav-sub a{
    display:block;
    padding:.6em .8em;
    border-radius:9px;
    font-size:.86rem;
    font-weight:600;
    color:var(--espresso-70);
    white-space:nowrap;
  }
  .nav-sub a::after{display:none;}
  .nav-sub a:hover{background:rgba(224,100,42,.08); color:var(--terracotta-d);}

  @media (max-width:860px){
    .nav-sub{
      position:static;
      opacity:1;
      pointer-events:auto;
      transform:none;
      box-shadow:none;
      border:none;
      background:none;
      margin:6px 0 0 14px;
      padding:0;
      display:flex;
      flex-direction:column;
      gap:10px;
    }
    .nav-sub a{padding:0; font-size:1rem; color:var(--espresso-70);}
  }

  /* ---------- Page counter / pagination (bottom of every page) ---------- */
  .page-counter{
    background:var(--cream-soft);
    border-top:1px solid var(--line);
    padding:26px 20px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
  }
  .page-counter-arrow{
    display:flex; align-items:center; justify-content:center;
    width:34px; height:34px;
    border-radius:50%;
    color:var(--espresso-70);
    transition:background .2s ease, color .2s ease;
    flex:none;
  }
  .page-counter-arrow svg{width:17px; height:17px;}
  .page-counter-arrow:hover{background:rgba(224,100,42,.1); color:var(--terracotta-d);}
  .page-counter-arrow.is-disabled{opacity:.25; pointer-events:none;}
  .page-counter-dots{display:flex; align-items:center; gap:6px;}
  .page-counter-dot{
    display:flex; align-items:center; justify-content:center;
    width:30px; height:30px;
    border-radius:50%;
    font-family:'Manrope',sans-serif;
    font-weight:700;
    font-size:.82rem;
    color:var(--espresso-70);
    transition:background .2s ease, color .2s ease;
  }
  .page-counter-dot:hover{color:var(--terracotta-d);}
  .page-counter-dot.current{
    background:var(--espresso);
    color:var(--cream-soft);
  }
  .lang-toggle{
    display:inline-flex;
    align-items:center;
    gap:.4em;
    background:var(--cream-soft);
    border:1.5px solid var(--line);
    border-radius:100px;
    padding:.45em .9em;
    cursor:pointer;
    font-family:'Manrope',sans-serif;
    font-weight:700;
    font-size:.78rem;
    letter-spacing:.03em;
    color:var(--terracotta-d);
    transition:border-color .25s ease, background .25s ease, transform .25s ease;
    flex:none;
  }
  .lang-toggle svg{width:15px; height:15px;}
  .lang-toggle:hover{border-color:var(--terracotta); background:rgba(224,100,42,.08); transform:translateY(-1px);}
  .burger{
    display:none; flex-direction:column; gap:5px;
    background:none; border:none; cursor:pointer; padding:6px;
    position:relative; z-index:110;
  }
  .burger span{width:24px; height:2px; background:var(--espresso); border-radius:2px; transition:transform .3s ease, opacity .3s ease;}
  .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .burger.open span:nth-child(2){opacity:0;}
  .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  @media (max-width:860px){
    nav.main-nav{gap:12px;}
    /* Old hamburger + full-screen nav panel are fully replaced by .mobile-tabbar below */
    .nav-links{display:none !important;}
    .burger{display:none !important;}
    nav.main-nav .btn-primary{display:none;}
  }

  /* ---------- Mobile tab bar (replaces hamburger menu on phones) ---------- */
  .mobile-tabbar{display:none;}
  @media (max-width:860px){
    .mobile-tabbar{
      display:flex;
      position:fixed;
      left:0; right:0; bottom:0;
      z-index:60;
      background:rgba(251,241,220,.96);
      backdrop-filter:blur(14px);
      border-top:1px solid var(--line);
      padding:8px 4px calc(8px + env(safe-area-inset-bottom,0px));
      justify-content:space-around;
      align-items:center;
    }
    .mtb-item{
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:3px;
      color:var(--espresso-70);
      flex:1;
      min-width:0;
    }
    .mtb-item svg{width:22px; height:22px;}
    .mtb-item span{font-size:.66rem; font-weight:600; white-space:nowrap;}
    .mtb-item.active{color:var(--terracotta-d);}
    .mtb-item.active svg{stroke-width:2;}

    /* Make room for the fixed tab bar + shift floating buttons above it */
    body{padding-bottom:72px;}
    .page-counter{display:none;}
    .cart-fab, .chatbot-fab, .float-wa{bottom:84px !important;}
    .chatbot-panel{bottom:170px;}
    .cart-foot{padding-bottom:calc(20px + 72px + env(safe-area-inset-bottom,0px));}
  }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:hidden;
    background:linear-gradient(180deg, rgba(251,241,220,.6) 0%, rgba(251,235,201,.54) 30%, rgba(246,201,120,.42) 56%, rgba(236,138,62,.42) 76%, rgba(194,51,26,.52) 100%);
  }
  .hero::before{
    content:'';
    position:absolute;
    inset:-2%;
    z-index:-1;
    background:url('hero-bg.jpg');
    background-size:cover;
    background-position:center;
    animation:heroKenBurns 14s ease-in-out infinite alternate;
  }
  @keyframes heroKenBurns{
    0%{transform:scale(1) translate(0,0);}
    100%{transform:scale(1.14) translate(-2.5%,-2%);}
  }
  @media (prefers-reduced-motion: reduce){
    .hero::before{animation:none;}
  }
  .hero .sunrise{
    width:min(56vw,620px); height:min(56vw,620px);
    left:50%; top:64%;
    transform:translate(-50%,-30%);
    opacity:.9;
  }
  .hero-noise{
    position:absolute; inset:0;
    background-image:radial-gradient(rgba(58,36,23,.05) 1px, transparent 1px);
    background-size:3px 3px;
    mix-blend-mode:multiply;
    opacity:.35;
    pointer-events:none;
  }
  .hero-flour{
    position:absolute; inset:0;
    overflow:hidden;
    z-index:2;
    pointer-events:none;
  }
  .hero-flour span{
    position:absolute;
    border-radius:50%;
    background:radial-gradient(circle, rgba(255,252,245,1) 0%, rgba(255,250,240,.6) 45%, rgba(255,250,240,0) 75%);
    box-shadow:0 0 6px 1px rgba(255,250,240,.5);
    filter:blur(0.5px);
    opacity:0;
    animation-name:heroFlourFloat;
    animation-timing-function:ease-in-out;
    animation-iteration-count:infinite;
  }
  @keyframes heroFlourFloat{
    0%{transform:translate(0,0); opacity:0;}
    12%{opacity:.75;}
    50%{opacity:.9; transform:translate(6px,-50px);}
    88%{opacity:0;}
    100%{transform:translate(12px,-100px); opacity:0;}
  }
  @media (prefers-reduced-motion: reduce){
    .hero-flour span{animation:none; opacity:0;}
  }
  .section-fade{
    position:absolute;
    left:0; right:0; bottom:0;
    height:90px;
    pointer-events:none;
    z-index:2;
  }
  .section-fade.to-creamsoft{background:linear-gradient(180deg, transparent 0%, transparent 25%, #FFFAF0 100%);}
  .section-fade.to-cream{background:linear-gradient(180deg, transparent 0%, transparent 25%, #FBF1DC 100%);}
  .section-fade.to-gold{background:linear-gradient(180deg, transparent 0%, transparent 20%, #F3DDB2 100%);}
  .section-fade.to-dark{background:linear-gradient(180deg, transparent 0%, rgba(58,36,23,.4) 55%, #3A2417 100%);}
  .section-fade.to-red{background:linear-gradient(180deg, transparent 0%, rgba(194,51,26,.4) 55%, #C2331A 100%);}
  .hero-inner{
    position:relative;
    z-index:3;
    text-align:center;
    padding:150px 20px 90px;
    max-width:840px;
    margin:0 auto;
  }
  .hero-badge{
    display:inline-flex;
    align-items:center;
    gap:.5em;
    background:rgba(255,250,240,.55);
    border:1px solid rgba(58,36,23,.18);
    backdrop-filter:blur(8px);
    padding:.5em 1.1em;
    border-radius:100px;
    font-weight:700;
    font-size:.72rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--espresso);
    margin-bottom:28px;
  }
  .hero-badge .dot{width:6px; height:6px; border-radius:50%; background:var(--sunset-red);}
  .badge-dot{color:var(--terracotta); font-weight:800;}
  .hero-personal{
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:clamp(1rem,2vw,1.15rem);
    color:var(--espresso);
    margin:16px 0 0;
  }
  .hero-personal[hidden]{display:none;}
  .hero h1{
    font-size:clamp(2.6rem, 7vw, 5.2rem);
    color:var(--espresso);
    margin-bottom:22px;
  }
  .hero h1 em{
    font-style:italic;
    font-weight:450;
    color:var(--sunset-red);
  }
  .hero p.lede{
    font-size:clamp(1.05rem,2vw,1.25rem);
    color:var(--espresso-70);
    max-width:560px;
    margin:0 auto 14px;
  }
  .hero .rdv-line{
    font-family:'Fraunces',serif;
    font-weight:450;
    font-style:italic;
    font-size:clamp(1.05rem,2vw,1.3rem);
    letter-spacing:0;
    color:var(--espresso);
    background:none;
    border:none;
    display:inline-block;
    padding:0;
    border-radius:0;
    margin:18px 0 38px;
  }
  .hero-inner-minimal{padding-top:170px; padding-bottom:150px;}
  .hero-inner-minimal h1{margin-bottom:34px;}
  .hero-inner-minimal .rdv-line{margin:0;}
  .hero-ctas{
    display:flex;
    gap:16px;
    justify-content:center;
    flex-wrap:wrap;
  }
  .scroll-cue{
    position:absolute;
    left:50%; bottom:26px; transform:translateX(-50%);
    z-index:3;
    display:flex; flex-direction:column; align-items:center; gap:8px;
    color:var(--cream-soft);
    font-size:.68rem;
    letter-spacing:.2em;
    text-transform:uppercase;
    font-weight:700;
    opacity:.85;
    animation:bob 2.4s ease-in-out infinite;
  }
  .scroll-cue svg{width:16px; height:22px;}
  @keyframes bob{
    0%,100%{transform:translate(-50%,0);}
    50%{transform:translate(-50%,8px);}
  }

  /* ---------- Section shells ---------- */
  section{position:relative; scroll-margin-top:96px;}
  .section-pad{padding:min(14vw,120px) 0;}
  @media (max-width:640px){
    .section-pad{padding-top:110px;}
    .testimonials{padding-top:110px !important;}
  }
  .section-head{
    max-width:640px;
    margin:0 auto 56px;
    text-align:center;
  }
  .section-head .eyebrow{display:block; margin-bottom:14px;}
  .section-head h2{font-size:clamp(2rem,4.2vw,3rem); margin-bottom:16px;}
  .section-head p{color:var(--espresso-70); font-size:1.05rem;}

  /* ---------- About / brand story ---------- */
  .about{
    background:var(--cream-soft);
  }
  .about-grid{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:clamp(30px,6vw,80px);
    align-items:center;
  }
  .about-art{
    position:relative;
    border-radius:28px;
    overflow:hidden;
    box-shadow:var(--shadow);
    background:linear-gradient(160deg,#F6C978,#E0642A);
  }
  .about-art img{width:100%; height:100%; object-fit:cover; display:block;}
  .about-text .eyebrow{margin-bottom:16px; display:block;}
  .about-text h2{font-size:clamp(1.8rem,3.6vw,2.6rem); margin-bottom:20px;}
  .about-text p{color:var(--espresso-70); margin-bottom:16px; font-size:1.02rem;}
  .about-text .signoff{
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:1.3rem;
    color:var(--terracotta-d);
    margin-top:24px;
  }
  @media (max-width:820px){
    .about-grid{grid-template-columns:1fr;}
    .about-art{order:-1; max-width:360px; margin:0 auto;}
  }

  /* ---------- Pour qui ---------- */
  .pourqui{
    background:linear-gradient(180deg, var(--cream) 0%, #F3DDB2 100%);
  }
  .pourqui-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:10px;
  }
  .pq-card{
    position:relative;
    background:var(--cream-soft);
    background-size:cover;
    background-position:center;
    border-radius:22px;
    padding:64px 26px;
    min-height:280px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    text-align:center;
    box-shadow:0 16px 34px -20px rgba(58,36,23,.28);
    overflow:hidden;
    transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease;
  }
  .pq-card::before{
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(20,12,8,.05) 0%, rgba(20,12,8,.32) 100%);
    z-index:0;
  }
  .pq-card > *{position:relative; z-index:1;}
  .pq-card:hover{transform:translateY(-8px); box-shadow:0 26px 46px -18px rgba(58,36,23,.32);}
  .pq-card.solo{background-image:url('pq-solo-bg.jpg');}
  .pq-card.amoureux{background-image:url('pq-amoureux-bg.jpg');}
  .pq-card.famille{background-image:url('pq-famille-bg.jpg');}
  .pq-card h3{font-size:1.2rem; margin-bottom:8px; color:var(--cream-soft); text-shadow:0 2px 10px rgba(0,0,0,.55);}
  .pq-card p{color:rgba(251,241,220,.92); font-size:.94rem; text-shadow:0 1px 8px rgba(0,0,0,.55);}
  .pourqui-note{
    max-width:680px;
    margin:52px auto 0;
    text-align:center;
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:clamp(1.15rem,2.4vw,1.5rem);
    color:var(--espresso);
    line-height:1.5;
  }
  .pourqui-note-final{
    margin-top:40px;
    text-align:center;
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:clamp(1.1rem,2.2vw,1.35rem);
    color:var(--terracotta-d);
  }
  @media (max-width:760px){
    .pourqui-grid{grid-template-columns:1fr;}
  }

  /* ---------- Menu ---------- */
  .menu{background:var(--cream-soft);}
  .menu-flag{
    display:inline-flex;
    align-items:center;
    gap:.5em;
    background:rgba(224,100,42,.12);
    color:var(--terracotta-d);
    font-weight:700;
    font-size:.72rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    padding:.4em 1em;
    border-radius:100px;
  }
  .product-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
  }
  .product-card{
    position:relative;
    background:var(--cream);
    border-radius:24px;
    overflow:hidden;
    border:1px solid var(--line);
    box-shadow:0 18px 40px -26px rgba(58,36,23,.4);
    display:flex;
    flex-direction:column;
    transition:transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease;
  }
  .product-card:hover{transform:translateY(-8px); box-shadow:0 30px 54px -22px rgba(58,36,23,.4);}
  .product-media{
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
    background:#eaddc0;
  }
  .product-media img{width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .7s ease;}
  .product-media img.pos-icecream{object-position:center 78%;}
  .product-card:hover .product-media img{transform:scale(1.06);}
  .product-price{
    position:absolute;
    top:14px; right:14px;
    background:rgba(58,36,23,.86);
    color:var(--cream-soft);
    font-weight:700;
    font-size:.82rem;
    padding:.4em .85em;
    border-radius:100px;
    backdrop-filter:blur(4px);
    white-space:nowrap;
    max-width:calc(100% - 28px);
    z-index:2;
  }
  .flagship-tag{
    position:absolute;
    top:14px; left:14px;
    background:linear-gradient(120deg,var(--gold),var(--terracotta));
    color:var(--cream-soft);
    font-weight:700;
    font-size:.7rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    padding:.4em .85em;
    border-radius:100px;
  }
  .product-body{
    padding:22px 24px 26px;
    display:flex;
    flex-direction:column;
    gap:10px;
    flex:1;
  }
  .product-body h3{
    font-size:1.4rem;
    display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  }
  .product-body p.desc{color:var(--espresso-70); font-size:.92rem; flex:1;}
  .product-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:4px;
  }
  .meta-pill{
    font-size:.76rem;
    font-weight:600;
    padding:.35em .8em;
    border-radius:100px;
    background:rgba(58,36,23,.06);
    border:1px solid var(--line);
    color:var(--espresso-70);
  }
  .product-order{
    margin-top:12px;
    display:inline-flex;
    align-items:center;
    gap:.4em;
    font-weight:700;
    font-size:.88rem;
    color:var(--terracotta-d);
  }
  .product-order svg{width:16px; height:16px; transition:transform .3s ease;}
  .product-card:hover .product-order svg{transform:translateX(4px);}

  /* ---------- Product options (variant + qty + add to cart) ---------- */
  .product-options{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:6px;
    padding-top:14px;
    border-top:1px solid var(--line);
  }
  .opt-row{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
  }
  .opt-label{
    font-size:.78rem;
    font-weight:700;
    color:var(--espresso-70);
    min-width:64px;
  }
  select.variant-select{
    font-family:'Manrope',sans-serif;
    font-size:.86rem;
    font-weight:600;
    color:var(--espresso);
    background:var(--cream-soft);
    border:1px solid var(--line);
    border-radius:10px;
    padding:.5em .8em;
    cursor:pointer;
    flex:1;
    min-width:0;
  }
  select.variant-select:focus-visible{outline:2px solid var(--terracotta); outline-offset:1px;}
  .flavor-picker{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    flex:1;
  }
  .flavor-btn{
    display:inline-flex;
    align-items:center;
    gap:.4em;
    font-family:'Manrope',sans-serif;
    font-size:.8rem;
    font-weight:600;
    color:var(--espresso);
    background:var(--cream-soft);
    border:1.5px solid var(--line);
    border-radius:100px;
    padding:.4em .8em;
    cursor:pointer;
    transition:border-color .2s ease, background .2s ease;
  }
  .flavor-btn:hover{border-color:var(--terracotta);}
  .flavor-btn.selected{border-color:var(--terracotta); background:rgba(224,100,42,.08); color:var(--terracotta-d);}
  .color-dot{
    width:11px; height:11px;
    border-radius:50%;
    flex:none;
    display:inline-block;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);
  }
  .meta-pill .color-dot{width:9px; height:9px; margin-right:1px; vertical-align:middle;}
  .premium-row .color-dot{margin:0;}
  .premium-row{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:.82rem;
    font-weight:600;
    color:var(--espresso-70);
  }
  .premium-row input[type="checkbox"]{
    width:16px; height:16px;
    accent-color:var(--terracotta);
  }
  .add-row{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:4px;
  }
  .qty-control{
    display:flex;
    align-items:center;
    gap:2px;
    background:var(--cream-soft);
    border:1px solid var(--line);
    border-radius:100px;
    padding:3px;
    flex:none;
  }
  .qty-btn{
    width:28px; height:28px;
    border-radius:50%;
    border:none;
    background:transparent;
    color:var(--espresso);
    font-size:1.05rem;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s ease;
  }
  .qty-btn:hover{background:rgba(224,100,42,.14); color:var(--terracotta-d);}
  .qty-val{
    width:26px;
    text-align:center;
    font-weight:700;
    font-size:.92rem;
  }
  .btn-add{
    flex:1;
    padding:.75em 1.1em;
    font-size:.86rem;
    justify-content:center;
  }
  .btn-add.added{background:linear-gradient(135deg,#639922,#3b6d11);}

  /* ---------- Cart FAB + panel ---------- */
  .cart-fab{
    position:fixed;
    right:20px; bottom:90px;
    z-index:91;
    width:58px; height:58px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--espresso),#241207);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 16px 30px -10px rgba(58,36,23,.6);
    transition:transform .35s cubic-bezier(.2,.8,.2,1);
    border:none;
    cursor:pointer;
  }
  .cart-fab:hover{transform:scale(1.08) translateY(-2px);}
  .cart-fab svg{width:24px; height:24px; stroke:var(--cream-soft);}
  .cart-badge{
    position:absolute;
    top:-4px; right:-4px;
    background:var(--sunset-red);
    color:var(--cream-soft);
    font-size:.68rem;
    font-weight:800;
    min-width:20px; height:20px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    padding:0 4px;
    border:2px solid var(--cream);
  }
  .cart-badge[hidden]{display:none;}
  .cart-overlay{
    position:fixed; inset:0;
    background:rgba(58,36,23,.45);
    backdrop-filter:blur(2px);
    z-index:120;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s ease;
  }
  .cart-overlay.open{opacity:1; pointer-events:auto;}
  .cart-panel{
    position:fixed;
    top:0; right:0; bottom:0;
    width:min(420px,92vw);
    background:var(--cream-soft);
    z-index:121;
    box-shadow:-20px 0 50px -20px rgba(58,36,23,.4);
    display:flex;
    flex-direction:column;
    transform:translateX(100%);
    transition:transform .4s cubic-bezier(.2,.8,.2,1);
  }
  .cart-panel.open{transform:translateX(0);}
  .cart-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 22px 16px;
    border-bottom:1px solid var(--line);
  }
  .cart-head h3{font-size:1.3rem;}
  .cart-close{
    width:34px; height:34px;
    border-radius:50%;
    border:none;
    background:rgba(58,36,23,.06);
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }
  .cart-close svg{width:16px; height:16px;}
  .cart-body{
    overscroll-behavior:contain;
    flex:1;
    overflow-y:auto;
    padding:18px 22px;
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .cart-empty{
    text-align:center;
    color:var(--espresso-70);
    padding:40px 10px;
    font-size:.94rem;
  }
  .cart-line{
    display:flex;
    gap:12px;
    align-items:flex-start;
    padding-bottom:14px;
    border-bottom:1px solid var(--line);
  }
  .cart-line-info{flex:1; min-width:0;}
  .cart-line-info h4{font-family:'Manrope',sans-serif; font-weight:700; font-size:.94rem; margin-bottom:2px;}
  .cart-line-info .variant{font-size:.8rem; color:var(--espresso-70); margin-bottom:6px;}
  .cart-line-controls{display:flex; align-items:center; gap:10px;}
  .cart-line-remove{
    background:none; border:none; cursor:pointer;
    color:var(--espresso-70);
    font-size:.78rem;
    font-weight:700;
    text-decoration:underline;
  }
  .cart-line-price{font-weight:700; font-size:.92rem; white-space:nowrap;}
  .cart-fields{
    display:flex;
    flex-direction:column;
    gap:10px;
    padding:4px 0 6px;
  }
  .cart-fields input{
    font-family:'Manrope',sans-serif;
    font-size:.88rem;
    padding:.7em .9em;
    border-radius:10px;
    border:1px solid var(--line);
    background:var(--cream);
    color:var(--espresso);
  }
  .cart-foot{
    padding:18px 22px 24px;
    border-top:1px solid var(--line);
    background:var(--cream-soft);
  }
  .cart-clear{
    display:block;
    margin:0 0 12px auto;
    background:none;
    border:none;
    cursor:pointer;
    font-family:'Manrope',sans-serif;
    font-size:.78rem;
    font-weight:700;
    color:var(--espresso-70);
    text-decoration:underline;
  }
  .cart-clear:hover{color:var(--sunset-red);}
  .cart-clear[hidden]{display:none;}
  .cart-total-row{
    display:flex; justify-content:space-between; align-items:baseline;
    margin-bottom:6px;
  }
  .cart-total-row span:first-child{font-weight:600; color:var(--espresso-70); font-size:.9rem;}
  .cart-total-row span:last-child{font-family:'Fraunces',serif; font-size:1.6rem; font-weight:600;}
  .cart-note{font-size:.78rem; color:var(--espresso-70); margin-bottom:14px;}
  .cart-send{width:100%; justify-content:center;}

  /* ---------- Confirm modal (récap avant envoi) ---------- */
  .confirm-overlay{
    position:fixed; inset:0;
    background:rgba(58,36,23,.5);
    backdrop-filter:blur(3px);
    z-index:140;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s ease;
  }
  .confirm-overlay.open{opacity:1; pointer-events:auto;}
  .confirm-modal{
    position:fixed;
    top:50%; left:50%;
    transform:translate(-50%,-46%) scale(.96);
    width:min(460px,90vw);
    max-height:86vh;
    background:var(--cream-soft);
    border-radius:22px;
    z-index:141;
    box-shadow:0 40px 80px -20px rgba(58,36,23,.5);
    display:flex;
    flex-direction:column;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s cubic-bezier(.2,.8,.2,1), transform .35s cubic-bezier(.2,.8,.2,1);
  }
  .confirm-modal.open{opacity:1; pointer-events:auto; transform:translate(-50%,-50%) scale(1);}
  .confirm-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 22px 14px;
    border-bottom:1px solid var(--line);
  }
  .confirm-head h3{font-size:1.25rem;}
  .confirm-body{
    padding:18px 22px;
    overflow-y:auto;
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .confirm-line{
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size:.92rem;
    padding-bottom:10px;
    border-bottom:1px solid var(--line);
  }
  .confirm-line .cl-name{font-weight:700;}
  .confirm-line .cl-variant{font-size:.82rem; color:var(--espresso-70); font-weight:400; display:block; margin-top:2px;}
  .confirm-line .cl-price{font-weight:700; white-space:nowrap;}
  .confirm-meta{font-size:.88rem; color:var(--espresso-70);}
  .confirm-total{
    display:flex; justify-content:space-between; align-items:baseline;
    padding-top:4px;
  }
  .confirm-total span:first-child{font-weight:600; color:var(--espresso-70); font-size:.92rem;}
  .confirm-total span:last-child{font-family:'Fraunces',serif; font-size:1.5rem; font-weight:600;}
  .confirm-foot{
    padding:16px 22px 22px;
    border-top:1px solid var(--line);
  }
  .confirm-actions{
    display:flex;
    gap:12px;
    margin-top:10px;
  }
  .confirm-actions .btn{flex:1; justify-content:center;}

  /* ---------- Guide modals (quiz / sur-mesure / mystère) ---------- */
  .guide-overlay{
    position:fixed; inset:0;
    background:rgba(58,36,23,.5);
    backdrop-filter:blur(3px);
    z-index:150;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s ease;
  }
  .guide-overlay.open{opacity:1; pointer-events:auto;}
  .guide-modal{
    position:fixed;
    top:50%; left:50%;
    transform:translate(-50%,-46%) scale(.96);
    width:min(520px,92vw);
    max-height:88vh;
    background:var(--cream-soft);
    border-radius:22px;
    z-index:151;
    box-shadow:0 40px 80px -20px rgba(58,36,23,.5);
    display:flex;
    flex-direction:column;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s cubic-bezier(.2,.8,.2,1), transform .35s cubic-bezier(.2,.8,.2,1);
  }
  .guide-modal.open{opacity:1; pointer-events:auto; transform:translate(-50%,-50%) scale(1);}
  .guide-modal .confirm-head h3{display:flex; align-items:center; gap:.5em;}
  .guide-modal-body{
    overscroll-behavior:contain;
    padding:6px 26px 8px;
    overflow-y:auto;
  }
  .guide-modal-foot{padding:14px 26px 24px;}
  .gform-reset-link{
    display:block;
    background:none;
    border:none;
    cursor:pointer;
    font-family:'Manrope',sans-serif;
    font-size:.78rem;
    font-weight:700;
    color:var(--espresso-70);
    text-decoration:underline;
    margin:0 0 12px auto;
  }
  .gform-reset-link:hover{color:var(--sunset-red);}
  #quizModal .gform-reset-link{margin:10px 0 16px auto;}

  /* Quiz specific */
  .quiz-progress{
    display:flex;
    gap:6px;
    margin-bottom:18px;
  }
  .quiz-progress .dot{
    height:5px; flex:1;
    border-radius:100px;
    background:var(--line);
    transition:background .3s ease;
  }
  .quiz-progress .dot.active, .quiz-progress .dot.done{background:var(--terracotta);}
  .quiz-step{display:none;}
  .quiz-step.active{display:block;}
  .quiz-step h4{font-size:1.15rem; margin-bottom:16px;}
  .quiz-options{display:flex; flex-direction:column; gap:10px;}
  .quiz-opt{
    text-align:left;
    padding:14px 18px;
    border-radius:14px;
    border:1.5px solid var(--line);
    background:var(--cream);
    font-family:'Manrope',sans-serif;
    font-weight:600;
    font-size:.94rem;
    color:var(--espresso);
    cursor:pointer;
    transition:border-color .25s ease, background .25s ease, transform .2s ease;
  }
  .quiz-opt:hover{border-color:var(--terracotta); transform:translateX(3px);}
  .quiz-opt.selected{border-color:var(--terracotta); background:rgba(224,100,42,.08);}
  .quiz-result{display:none;}
  .quiz-result.active{display:block;}
  .quiz-result-intro{font-family:'Fraunces',serif; font-style:italic; font-size:1.15rem; margin-bottom:16px; color:var(--espresso);}
  .quiz-reco-card{
    display:flex;
    gap:14px;
    align-items:center;
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:16px;
    padding:14px;
    margin-bottom:12px;
  }
  .quiz-reco-card img{width:64px; height:64px; border-radius:10px; object-fit:cover; flex:none;}
  .quiz-reco-info{flex:1;}
  .quiz-reco-info h5{font-family:'Manrope',sans-serif; font-weight:700; font-size:.98rem; margin-bottom:2px;}
  .quiz-reco-info p{font-size:.82rem; color:var(--espresso-70); margin-bottom:6px;}
  .quiz-reco-add{
    font-size:.8rem;
    font-weight:700;
    color:var(--terracotta-d);
    background:none;
    border:none;
    cursor:pointer;
    padding:0;
  }
  .quiz-restart{
    display:block;
    margin:14px auto 0;
    background:none;
    border:none;
    font-size:.82rem;
    font-weight:700;
    color:var(--espresso-70);
    text-decoration:underline;
    cursor:pointer;
  }

  /* Form fields shared (sur-mesure / mystère) */
  .gform-field{margin-bottom:16px;}
  .gform-field label{
    display:block;
    font-family:'Manrope',sans-serif;
    font-weight:700;
    font-size:.86rem;
    color:var(--espresso);
    margin-bottom:8px;
  }
  .gform-hint{
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:.86rem;
    color:var(--espresso-70);
    margin:-3px 0 8px;
  }
  .gform-pills{display:flex; flex-wrap:wrap; gap:8px;}
  .gform-pill{
    padding:.55em 1.1em;
    border-radius:100px;
    border:1.5px solid var(--line);
    background:var(--cream);
    font-family:'Manrope',sans-serif;
    font-weight:600;
    font-size:.86rem;
    cursor:pointer;
    transition:border-color .25s ease, background .25s ease;
  }
  .gform-pill:hover{border-color:var(--terracotta);}
  .gform-pill.selected{border-color:var(--terracotta); background:rgba(224,100,42,.1); color:var(--terracotta-d);}
  .gform-checks{display:flex; flex-direction:column; gap:8px;}
  .gform-check{display:flex; align-items:center; gap:10px; font-size:.9rem; color:var(--espresso);}
  .gform-check input{width:17px; height:17px; accent-color:var(--terracotta);}
  .gform-field textarea, .gform-field input[type="text"], .gform-field input[type="number"], .gform-field select{
    width:100%;
    font-family:'Manrope',sans-serif;
    font-size:.9rem;
    padding:.75em .9em;
    border-radius:12px;
    border:1px solid var(--line);
    background:var(--cream);
    color:var(--espresso);
    resize:vertical;
  }
  .gform-field textarea{min-height:80px;}
  .mystery-formule{display:flex; flex-direction:column; gap:10px;}
  .mystery-formule-opt{
    display:flex; justify-content:space-between; align-items:center;
    padding:14px 18px;
    border-radius:14px;
    border:1.5px solid var(--line);
    background:var(--cream);
    cursor:pointer;
    transition:border-color .25s ease, background .25s ease;
  }
  .mystery-formule-opt:hover{border-color:var(--terracotta);}
  .mystery-formule-opt.selected{border-color:var(--terracotta); background:rgba(224,100,42,.08);}
  .mystery-formule-opt .mf-name{font-weight:700; font-size:.94rem;}
  .mystery-formule-opt .mf-price{font-weight:700; color:var(--terracotta-d); font-size:.92rem;}

  @media (max-width:900px){
    .product-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:620px){
    .product-grid{grid-template-columns:1fr;}
  }

  /* ---------- TikTok / En cuisine ---------- */
  .kitchen{background:var(--cream-soft);}
  .tiktok-strip{
    display:flex;
    gap:22px;
    justify-content:center;
    flex-wrap:wrap;
    padding:6px 6px 18px;
  }
  .tiktok-card{
    flex:none;
    width:290px;
    height:576px;
    scroll-snap-align:start;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 18px 40px -26px rgba(58,36,23,.4);
    border:1px solid var(--line);
    background:var(--cream);
  }
  .tiktok-card iframe{
    width:100%;
    height:100%;
    border:none;
    display:block;
  }
  .kitchen-more{text-align:center; margin-top:8px;}
  @media (max-width:640px){
    .kitchen-more .btn{
      white-space:normal;
      text-align:center;
      max-width:88%;
      margin:0 auto;
      line-height:1.4;
    }
  }
  @media (max-width:640px){
    .tiktok-card{width:min(85vw,300px); height:calc(min(85vw,300px) * 1.98);}
  }

  /* ---------- Guide / Laissez-vous guider ---------- */
  .guide{background:var(--cream-soft);}
  .guide-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
  }
  .guide-card{
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:22px;
    padding:34px 28px;
    text-align:left;
    cursor:pointer;
    font-family:inherit;
    box-shadow:0 16px 34px -20px rgba(58,36,23,.28);
    transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, border-color .3s ease;
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  .guide-card:hover{
    transform:translateY(-8px);
    box-shadow:0 28px 50px -20px rgba(58,36,23,.34);
    border-color:var(--terracotta);
  }
  .guide-icon{display:block; margin-bottom:14px;}
  .guide-icon svg{width:30px; height:30px; color:var(--terracotta-d);}
  .guide-card h3{font-size:1.25rem;}
  .guide-card p{color:var(--espresso-70); font-size:.92rem; flex:1; margin-bottom:14px;}
  .guide-cta{
    display:inline-flex;
    align-items:center;
    gap:.4em;
    font-weight:700;
    font-size:.88rem;
    color:var(--terracotta-d);
  }
  .guide-cta svg{width:16px; height:16px; transition:transform .3s ease;}
  .guide-card:hover .guide-cta svg{transform:translateX(4px);}
  @media (max-width:820px){
    .guide-grid{grid-template-columns:1fr;}
  }

  /* ---------- Comment commander ---------- */
  .process{
    background:linear-gradient(180deg,#3A2417 0%, #4a2c1a 100%);
    color:var(--cream-soft);
  }
  .process .section-head p{color:rgba(251,241,220,.72);}
  .process .eyebrow{color:var(--gold);}
  .steps{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:28px;
    counter-reset:step;
  }
  .step{
    position:relative;
    padding-top:64px;
  }
  .step::before{
    counter-increment:step;
    content:counter(step,decimal-leading-zero);
    font-family:'Fraunces',serif;
    font-weight:600;
    font-style:italic;
    font-size:2.6rem;
    color:var(--gold);
    display:block;
    margin-bottom:6px;
    opacity:.9;
  }
  .step h3{font-size:1.12rem; margin-bottom:10px; color:var(--cream-soft);}
  .step p{font-size:.92rem; color:rgba(251,241,220,.68);}
  .steps::after{content:none;}
  @media (max-width:900px){
    .steps{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:560px){
    .steps{grid-template-columns:1fr;}
  }

  .payment-row{
    margin-top:64px;
    display:flex;
    gap:20px;
    flex-wrap:wrap;
    align-items:stretch;
    justify-content:center;
  }
  .pay-card{
    flex:1 1 240px;
    max-width:320px;
    background:rgba(251,241,220,.06);
    border:1px solid rgba(251,241,220,.18);
    border-radius:18px;
    padding:26px;
  }
  .pay-card h4{
    font-family:'Manrope',sans-serif;
    font-weight:700;
    font-size:.95rem;
    color:var(--gold);
    margin-bottom:10px;
    letter-spacing:.03em;
  }
  .pay-card p{font-size:.9rem; color:rgba(251,241,220,.75);}
  .pay-methods{
    display:flex; gap:10px; margin-top:14px; flex-wrap:wrap;
  }
  .pay-chip{
    font-size:.78rem;
    font-weight:700;
    padding:.4em .9em;
    border-radius:100px;
    background:rgba(251,241,220,.1);
    border:1px solid rgba(251,241,220,.22);
  }

  /* ---------- Livraison ---------- */
  .delivery{
    background:var(--cream-soft);
  }
  .delivery-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:clamp(30px,6vw,70px);
    align-items:center;
  }
  .delivery-card{
    background:var(--cream);
    border:1px solid var(--line);
    border-radius:26px;
    padding:clamp(28px,4vw,46px);
    box-shadow:var(--shadow);
  }
  .delivery-card h2{font-size:clamp(1.7rem,3.2vw,2.3rem); margin-bottom:18px;}
  .delivery-card p{color:var(--espresso-70); margin-bottom:22px;}
  .delivery-facts{display:flex; flex-direction:column; gap:16px;}
  .fact{
    display:flex;
    gap:14px;
    align-items:flex-start;
  }
  .fact-icon{
    flex:none;
    width:42px; height:42px;
    border-radius:12px;
    background:rgba(224,100,42,.12);
    color:var(--terracotta-d);
    display:flex; align-items:center; justify-content:center;
    font-size:1.15rem;
  }
  .fact-icon svg{width:20px; height:20px;}
  .fact h4{font-family:'Manrope',sans-serif; font-weight:700; font-size:.98rem; margin-bottom:3px;}
  .fact p{margin:0; font-size:.9rem; color:var(--espresso-70);}
  .map-art{
    position:relative;
    border-radius:26px;
    overflow:hidden;
    aspect-ratio:1/1;
    box-shadow:var(--shadow);
  }
  .map-art img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
  }
  @media (max-width:860px){
    .delivery-grid{grid-template-columns:1fr;}
    .map-art{max-width:340px; margin:0 auto;}
  }

  /* ---------- FAQ ---------- */
  .faq{background:var(--cream);}
  .faq-list{
    max-width:760px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .faq-item{
    background:var(--cream-soft);
    border:1px solid var(--line);
    border-radius:16px;
    overflow:hidden;
    transition:box-shadow .3s ease;
  }
  .faq-item.open{box-shadow:0 14px 30px -18px rgba(58,36,23,.3);}
  .faq-q{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:18px 22px;
    background:none;
    border:none;
    cursor:pointer;
    text-align:left;
    font-family:'Manrope',sans-serif;
    font-weight:700;
    font-size:.98rem;
    color:var(--espresso);
  }
  .faq-q svg{
    flex:none;
    width:18px; height:18px;
    color:var(--terracotta-d);
    transition:transform .35s cubic-bezier(.2,.8,.2,1);
  }
  .faq-item.open .faq-q svg{transform:rotate(180deg);}
  .faq-a{
    max-height:0;
    overflow:hidden;
    transition:max-height .4s cubic-bezier(.2,.8,.2,1);
  }
  .faq-a p{
    padding:0 22px 20px;
    color:var(--espresso-70);
    font-size:.92rem;
    line-height:1.6;
  }

  /* ---------- Témoignages ---------- */
  .testimonials{
    background:var(--cream);
    padding:min(14vw,120px) 0 min(28vw,280px);
  }
  @media (max-width:640px){
    .testimonials{padding-bottom:260px !important;}
  }
  .testi-eyebrow{
    text-align:center;
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:1rem;
    color:var(--espresso-70);
    margin-bottom:20px;
  }
  .testi-strip{
    display:flex;
    gap:18px;
    justify-content:center;
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .testi-card{
    width:200px;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 14px 30px -18px rgba(58,36,23,.35);
    border:1px solid var(--line);
    transition:transform .35s cubic-bezier(.2,.8,.2,1);
    cursor:zoom-in;
  }
  .testi-card:hover{transform:translateY(-4px);}
  .testi-card img{width:100%; height:auto; display:block;}
  @media (max-width:640px){
    .testi-strip{gap:14px;}
    .testi-card{width:42vw; max-width:180px;}
  }
  .testi-lightbox-overlay{
    position:fixed; inset:0;
    background:rgba(20,12,8,.88);
    z-index:200;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:40px 20px;
    opacity:0;
    pointer-events:none;
    transition:opacity .3s ease;
  }
  .testi-lightbox-overlay.open{opacity:1; pointer-events:auto;}
  .testi-lightbox-overlay img{
    max-width:min(520px,92vw);
    max-height:88vh;
    border-radius:16px;
    box-shadow:0 30px 60px -20px rgba(0,0,0,.6);
  }
  .testi-lightbox-close{
    position:absolute;
    top:24px; right:24px;
    width:42px; height:42px;
    border-radius:50%;
    background:rgba(251,241,220,.14);
    border:none;
    color:var(--cream-soft);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
  }
  .testi-lightbox-close svg{width:20px; height:20px;}

  /* ---------- Contact / Footer ---------- */
  footer{
    position:relative;
    background:linear-gradient(180deg, #C2331A 0%, #9c2914 100%);
    color:var(--cream-soft);
    overflow:hidden;
  }
  footer .sunrise{
    width:420px; height:420px;
    right:-140px; top:-160px;
    opacity:.5;
  }
  .footer-inner{position:relative; z-index:2; padding:min(12vw,100px) 0 40px;}
  .footer-top{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:clamp(30px,6vw,80px);
    align-items:center;
    margin-bottom:70px;
  }
  .footer-top h2{
    font-size:clamp(2rem,4.4vw,3.2rem);
    margin-bottom:20px;
  }
  .footer-top p{color:rgba(251,241,220,.82); font-size:1.05rem; margin-bottom:30px; max-width:460px;}
  .footer-ctas{display:flex; gap:14px; flex-wrap:wrap;}
  .contact-list{
    display:flex;
    flex-direction:column;
    gap:16px;
  }
  .contact-item{
    display:flex;
    align-items:center;
    gap:16px;
    padding:16px 20px;
    background:rgba(251,241,220,.08);
    border:1px solid rgba(251,241,220,.2);
    border-radius:16px;
    transition:background .3s ease, transform .3s ease;
  }
  .contact-item:hover{background:rgba(251,241,220,.15); transform:translateX(4px);}
  .contact-item .ci-icon{
    width:40px; height:40px; flex:none;
    border-radius:11px;
    background:rgba(251,241,220,.16);
    display:flex; align-items:center; justify-content:center;
    font-size:1.05rem;
    color:var(--cream-soft);
  }
  .contact-item .ci-icon svg{width:19px; height:19px;}
  .contact-item .ci-text small{display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(251,241,220,.6); margin-bottom:2px;}
  .contact-item .ci-text span{font-weight:700; font-size:.96rem;}
  @media (max-width:860px){
    .footer-top{grid-template-columns:1fr;}
  }

  .footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:16px;
    padding-top:28px;
    border-top:1px solid rgba(251,241,220,.18);
    font-size:.82rem;
    color:rgba(251,241,220,.65);
  }
  .footer-bottom .fb-logo{display:flex; align-items:center; gap:.6em; font-family:'Fraunces',serif; font-style:italic; font-size:1rem; color:var(--cream-soft);}
  .fb-cgv-link{
    background:none;
    border:none;
    color:rgba(251,241,220,.75);
    font-family:'Manrope',sans-serif;
    font-size:.8rem;
    font-weight:700;
    text-decoration:underline;
    cursor:pointer;
    padding:0;
  }
  .fb-cgv-link:hover{color:var(--cream-soft);}

  @media (max-width:640px){
    .footer-bottom{
      flex-direction:column;
      align-items:center;
      text-align:center;
      gap:10px;
    }
  }

  /* ---------- Minimal footer (all pages except Contact) ---------- */
  .footer-minimal .footer-inner{padding:28px 0;}
  .footer-minimal .footer-bottom{
    border-top:none; padding-top:0;
    color:var(--espresso-70);
  }
  .footer-minimal .fb-logo{color:var(--espresso);}
  .footer-minimal .fb-cgv-link{color:var(--espresso-70);}
  .footer-minimal .fb-cgv-link:hover{color:var(--terracotta-d);}

  /* ---------- CGV modal ---------- */
  .cgv-overlay{
    position:fixed; inset:0;
    background:rgba(58,36,23,.5);
    backdrop-filter:blur(3px);
    z-index:140;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s ease;
  }
  .cgv-overlay.open{opacity:1; pointer-events:auto;}
  .cgv-modal{
    position:fixed;
    top:50%; left:50%;
    transform:translate(-50%,-46%) scale(.96);
    width:min(640px,92vw);
    max-height:84vh;
    background:var(--cream-soft);
    border-radius:22px;
    z-index:141;
    box-shadow:0 40px 80px -20px rgba(58,36,23,.5);
    display:flex;
    flex-direction:column;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s cubic-bezier(.2,.8,.2,1), transform .35s cubic-bezier(.2,.8,.2,1);
  }
  .cgv-modal.open{opacity:1; pointer-events:auto; transform:translate(-50%,-50%) scale(1);}
  .cgv-body{
    overscroll-behavior:contain;
    padding:6px 26px 28px;
    overflow-y:auto;
  }
  .cgv-sub{color:var(--espresso-70); font-size:.86rem; margin:-6px 0 16px;}
  .cgv-body h4{font-family:'Manrope',sans-serif; font-weight:700; font-size:.94rem; color:var(--terracotta-d); text-decoration:underline; margin:16px 0 6px;}
  .cgv-body p{font-size:.88rem; color:var(--espresso-70); line-height:1.6;}

  /* ---------- Reveal on scroll ---------- */
  .reveal{
    opacity:0;
    transform:translateY(26px);
    transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
  }
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ---------- WhatsApp floating button ---------- */
  .float-wa{
    position:fixed;
    right:20px; bottom:20px;
    z-index:90;
    width:58px; height:58px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--terracotta),var(--sunset-red));
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 16px 30px -10px rgba(194,51,26,.6);
    transition:transform .35s cubic-bezier(.2,.8,.2,1);
  }
  .float-wa:hover{transform:scale(1.08) translateY(-2px);}
  .float-wa svg{width:26px; height:26px; fill:var(--cream-soft);}

  /* ---------- Chatbot ---------- */
  .chatbot-fab{
    position:fixed;
    left:20px; bottom:20px;
    z-index:90;
    width:58px; height:58px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--terracotta),var(--sunset-red));
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 16px 30px -10px rgba(194,51,26,.6);
    transition:transform .35s cubic-bezier(.2,.8,.2,1);
    border:none;
    cursor:pointer;
  }
  .chatbot-fab:hover{transform:scale(1.08) translateY(-2px);}
  .chatbot-fab svg{width:26px; height:26px; stroke:var(--cream-soft);}
  .chatbot-fab-avatar{width:100%; height:100%; border-radius:50%; object-fit:cover; display:block;}
  .chatbot-pulse{
    position:absolute;
    top:-3px; right:-3px;
    width:14px; height:14px;
    border-radius:50%;
    background:#5fb84a;
    border:2px solid var(--cream);
  }
  .chatbot-overlay{
    position:fixed; inset:0;
    background:rgba(58,36,23,.35);
    z-index:130;
    opacity:0;
    pointer-events:none;
    transition:opacity .3s ease;
  }
  .chatbot-overlay.open{opacity:1; pointer-events:auto;}
  @media (min-width:641px){ .chatbot-overlay{display:none;} }

  .chatbot-panel{
    position:fixed;
    left:20px; bottom:90px;
    z-index:131;
    width:min(360px,88vw);
    height:min(520px,70vh);
    background:var(--cream-soft);
    border-radius:20px;
    box-shadow:0 30px 60px -18px rgba(58,36,23,.45);
    border:1px solid var(--line);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    transform:translateY(16px) scale(.97);
    opacity:0;
    pointer-events:none;
    transition:opacity .3s cubic-bezier(.2,.8,.2,1), transform .3s cubic-bezier(.2,.8,.2,1);
  }
  .chatbot-panel.open{opacity:1; pointer-events:auto; transform:translateY(0) scale(1);}
  .chatbot-head{
    display:flex; align-items:center; gap:10px;
    padding:16px 18px;
    background:linear-gradient(120deg,var(--terracotta),var(--sunset-red));
    color:var(--cream-soft);
  }
  .chatbot-head .cb-avatar{
    width:34px; height:34px; border-radius:50%;
    background:rgba(255,255,255,.2);
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem; flex:none;
    overflow:hidden;
  }
  .chatbot-head .cb-avatar img{width:100%; height:100%; object-fit:cover; display:block;}
  .chatbot-head .cb-title{flex:1;}
  .chatbot-head h4{font-family:'Manrope',sans-serif; font-weight:700; font-size:.94rem;}
  .chatbot-head span{font-size:.72rem; opacity:.85;}
  .chatbot-close{
    background:rgba(255,255,255,.16);
    border:none;
    width:28px; height:28px;
    border-radius:50%;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    flex:none;
  }
  .chatbot-close svg{width:14px; height:14px; stroke:var(--cream-soft);}
  .chatbot-body{
    overscroll-behavior:contain;
    flex:1;
    overflow-y:auto;
    padding:16px;
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .cb-msg{
    max-width:85%;
    padding:.65em .9em;
    border-radius:14px;
    font-size:.86rem;
    line-height:1.5;
  }
  .cb-msg.bot{
    align-self:flex-start;
    background:var(--cream);
    border:1px solid var(--line);
    border-bottom-left-radius:4px;
    color:var(--espresso);
  }
  .cb-msg.user{
    align-self:flex-end;
    background:linear-gradient(120deg,var(--terracotta),var(--sunset-red));
    color:var(--cream-soft);
    border-bottom-right-radius:4px;
  }
  .cb-topics{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-self:flex-start;
    max-width:100%;
  }
  .cb-topic-btn{
    padding:.45em .85em;
    border-radius:100px;
    border:1.5px solid var(--terracotta);
    background:var(--cream-soft);
    color:var(--terracotta-d);
    font-family:'Manrope',sans-serif;
    font-weight:700;
    font-size:.78rem;
    cursor:pointer;
    transition:background .2s ease, color .2s ease;
  }
  .cb-topic-btn:hover{background:var(--terracotta); color:var(--cream-soft);}
  .cb-wa-btn{
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    gap:.4em;
    padding:.6em 1em;
    border-radius:100px;
    background:#25D366;
    color:#fff;
    font-family:'Manrope',sans-serif;
    font-weight:700;
    font-size:.8rem;
    text-decoration:none;
  }
  .chatbot-foot{
    display:flex;
    gap:8px;
    padding:12px;
    border-top:1px solid var(--line);
    background:var(--cream-soft);
  }
  .chatbot-foot input{
    flex:1;
    font-family:'Manrope',sans-serif;
    font-size:.86rem;
    padding:.7em .9em;
    border-radius:100px;
    border:1px solid var(--line);
    background:var(--cream);
    color:var(--espresso);
  }
  .chatbot-send-btn{
    width:38px; height:38px;
    border-radius:50%;
    border:none;
    background:linear-gradient(135deg,var(--terracotta),var(--sunset-red));
    color:var(--cream-soft);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    flex:none;
  }
  .chatbot-send-btn svg{width:16px; height:16px;}
  @media (max-width:640px){
    .chatbot-fab{left:16px; bottom:16px;}
    .chatbot-panel{left:16px; right:16px; bottom:86px; width:auto;}
  }

  /* ============================================================
     PRODUCT CAROUSEL (V8) — portrait 3:4, swipe + hover arrows
     ============================================================ */
  .product-media.carousel{
    aspect-ratio:3/4;
  }
  .carousel-track{
    display:flex;
    height:100%;
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .carousel-track::-webkit-scrollbar{display:none;}
  .carousel-track img{
    flex:0 0 100%;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    scroll-snap-align:start;
    cursor:zoom-in;
    transition:none; /* override hover-scale from .product-media img */
  }
  .product-card:hover .carousel-track img{transform:none;}
  .carousel-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:32px; height:32px;
    border-radius:50%;
    background:rgba(58,36,23,.45);
    color:var(--cream-soft);
    border:none;
    display:flex; align-items:center; justify-content:center;
    font-size:1.05rem;
    line-height:1;
    cursor:pointer;
    opacity:0;
    transition:opacity .25s ease, background .2s ease;
    z-index:3;
  }
  .carousel-arrow svg{width:16px; height:16px;}
  .carousel-arrow.prev{left:10px;}
  .carousel-arrow.next{right:10px;}
  .product-media.carousel:hover .carousel-arrow{opacity:1;}
  .carousel-arrow:hover{background:rgba(58,36,23,.75);}
  @media (hover:none){
    .carousel-arrow{display:none;}
  }
  .carousel-dots{
    position:absolute;
    bottom:10px;
    left:0; right:0;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:6px;
    z-index:3;
    pointer-events:none;
  }
  .carousel-dots .dot{
    width:6px; height:6px;
    border-radius:50%;
    background:rgba(255,255,255,.55);
    border:none;
    padding:0;
    flex:0 0 auto;
  }
  .carousel-dots .dot.active{background:var(--terracotta); width:16px; border-radius:100px;}
  .carousel-dots{transition:opacity .2s ease;}

  /* ============================================================
     PHOTO LIGHTBOX (V8)
     ============================================================ */
  .lightbox-overlay{
    position:fixed; inset:0;
    background:rgba(20,12,7,.92);
    z-index:280;
    opacity:0;
    pointer-events:none;
    transition:opacity .3s ease;
  }
  .lightbox-overlay.open{opacity:1; pointer-events:auto;}
  .lightbox-modal{
    position:fixed; inset:0;
    z-index:281;
    display:flex;
    align-items:center;
    justify-content:center;
    opacity:0;
    pointer-events:none;
    transition:opacity .3s ease;
  }
  .lightbox-modal.open{opacity:1; pointer-events:auto;}
  .lightbox-stage{
    position:relative;
    width:min(560px,94vw);
    height:min(80vh, calc(min(560px,94vw) * 4 / 3));
    max-height:86vh;
    overflow:hidden;
    border-radius:18px;
    background:#000;
  }
  .lightbox-track{
    display:flex;
    height:100%; width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:pan-y pinch-zoom;
  }
  .lightbox-track::-webkit-scrollbar{display:none;}
  .lightbox-slide{
    flex:0 0 100%;
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    scroll-snap-align:start;
    overflow:hidden;
    touch-action:pinch-zoom;
  }
  .lightbox-slide img{
    max-width:100%; max-height:100%;
    width:100%; height:100%;
    object-fit:contain;
    user-select:none;
    -webkit-user-drag:none;
    touch-action:pinch-zoom;
    will-change:transform;
  }
  .lightbox-close{
    position:absolute;
    top:14px; right:14px;
    width:36px; height:36px;
    border-radius:50%;
    background:rgba(0,0,0,.4);
    color:#fff;
    border:none;
    font-size:1.3rem;
    line-height:1;
    cursor:pointer;
    z-index:5;
    display:flex; align-items:center; justify-content:center;
  }
  .lightbox-counter{
    position:absolute;
    top:16px; left:16px;
    color:#fff;
    font-size:.82rem;
    font-weight:700;
    background:rgba(0,0,0,.4);
    padding:.3em .7em;
    border-radius:100px;
    z-index:5;
  }
  .lightbox-arrow{
    position:absolute;
    top:50%; transform:translateY(-50%);
    width:38px; height:38px;
    border-radius:50%;
    background:rgba(0,0,0,.4);
    color:#fff;
    border:none;
    font-size:1.3rem;
    cursor:pointer;
    z-index:5;
    display:flex; align-items:center; justify-content:center;
  }
  .lightbox-arrow:hover{background:rgba(0,0,0,.65);}
  .lightbox-arrow.prev{left:12px;}
  .lightbox-arrow.next{right:12px;}
  .lightbox-hint{
    position:absolute;
    bottom:14px; left:0; right:0;
    text-align:center;
    color:rgba(255,255,255,.75);
    font-size:.76rem;
    z-index:5;
    display:none;
    pointer-events:none;
  }
  @media (hover:none){
    .lightbox-counter{display:none;}
    .lightbox-arrow{display:none;}
    .lightbox-hint{display:block;}
  }
