:root{
    --blanc-lait:#F3F6F4; --creme:#FFFFFF; --encre:#0F1B1F;
    --glacier:#1E3A47; --glacier-dark:#0F232B;
    --framboise:#C33C4E; --acier:#8FA3AA; --acier-light:#DCE4E4;
    --or:#C7A25C;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{background:var(--blanc-lait);color:var(--encre);font-family:'Work Sans',sans-serif;line-height:1.6;overflow-x:hidden;}
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  .eyebrow{font-family:'JetBrains Mono',monospace;font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--framboise);margin-bottom:14px;display:inline-flex;align-items:center;gap:8px;}
  .eyebrow::before{content:"";width:16px;height:1px;background:var(--framboise);}
  h1,h2,h3{font-family:'Oswald',sans-serif;text-transform:uppercase;font-weight:600;letter-spacing:0.01em;color:var(--glacier);}
  .accent{color:var(--or);}
  .wrap{max-width:1160px;margin:0 auto;padding:0 28px;}
  section{position:relative;}
  @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{animation:none!important;transition:none!important;}}

  /* ---------- reveal-on-scroll ---------- */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}
  .gamme-grid.in .gamme-card{opacity:1;transform:translateY(0);}
  .gamme-card{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease,background .25s ease,box-shadow .25s ease;}
  .gamme-grid.in .gamme-card:nth-child(1){transition-delay:.05s;}
  .gamme-grid.in .gamme-card:nth-child(2){transition-delay:.16s;}
  .gamme-grid.in .gamme-card:nth-child(3){transition-delay:.27s;}
  .gamme-grid.in .gamme-card:nth-child(4){transition-delay:.38s;}

  /* ---------- keyframes ---------- */
  @keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
  @keyframes slowSpin{from{transform:translateY(-50%) rotate(0deg);}to{transform:translateY(-50%) rotate(360deg);}}
  @keyframes drift{
    0%{transform:translate(0,0);opacity:0;}
    10%{opacity:.9;}
    90%{opacity:.6;}
    100%{transform:translate(var(--dx,20px),-320px);opacity:0;}
  }
  @keyframes breathe{0%,100%{transform:scale(1);}50%{transform:scale(1.05);}}
  @keyframes pulseRing{
    0%{transform:scale(0.6);opacity:.9;}
    100%{transform:scale(2.4);opacity:0;}
  }
  @keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

  /* ---------- header ---------- */
  header.site-header{
    position:sticky;top:0;z-index:50;background:rgba(243,246,244,0.92);
    backdrop-filter:blur(8px);border-bottom:1px solid var(--acier-light);
  }
  .header-inner{max-width:1160px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;}
  .brand{display:flex;align-items:center;gap:12px;}
  .brand img{width:34px;height:auto;flex-shrink:0;transition:transform .5s ease;}
  .brand:hover img{transform:rotate(45deg);}
  .brand .wordmark-text{font-family:'Oswald',sans-serif;text-transform:uppercase;font-weight:600;font-size:0.92rem;letter-spacing:0.02em;color:var(--encre);}
  .brand .wordmark-text .accent{color:var(--or);font-weight:700;}
  nav.main-nav{display:flex;align-items:center;gap:30px;}
  nav.main-nav a{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:0.72rem;font-weight:600;letter-spacing:0.05em;color:var(--glacier);position:relative;padding:4px 0;}
  nav.main-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--framboise);transition:width .25s ease;}
  nav.main-nav a:hover::after{width:100%;}
  .nav-cta{background:var(--glacier);color:#fff!important;padding:10px 20px!important;border-radius:3px;}
  .nav-cta::after{display:none;}
  .nav-cta:hover{background:var(--glacier-dark);}
  .burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
  .burger span{width:22px;height:2px;background:var(--glacier);}
  @media(max-width:860px){
    nav.main-nav{position:fixed;inset:60px 0 0 0;background:var(--blanc-lait);flex-direction:column;padding:36px 28px;gap:22px;align-items:flex-start;transform:translateX(100%);transition:transform .3s ease;}
    nav.main-nav.open{transform:translateX(0);}
    .burger{display:flex;}
    .nav-cta{margin-top:8px;}
  }

  /* ---------- hero ---------- */
  .hero{background:var(--glacier-dark);color:#fff;padding:100px 0 90px;position:relative;overflow:hidden;}
  .hero-particles{position:absolute;inset:0;pointer-events:none;z-index:1;}
  .particle{position:absolute;bottom:-10px;border-radius:50%;background:radial-gradient(circle,#fff 0%,rgba(255,255,255,0) 70%);animation:drift linear infinite;}
  .hero-inner{max-width:1160px;margin:0 auto;padding:0 28px;position:relative;z-index:2;display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;align-items:center;}
  @media(max-width:900px){.hero-inner{grid-template-columns:1fr;}}
  .hero-text{order:1;}
  .hero-logo{display:flex;justify-content:center;order:2;opacity:0;animation:fadeUp 1s ease .25s forwards;}
  .hero-logo img{width:100%;max-width:420px;filter:drop-shadow(0 20px 50px rgba(0,0,0,0.35));animation:breathe 7s ease-in-out infinite;}
  @media(max-width:900px){.hero-logo{order:0;} .hero-logo img{max-width:260px;}}
  .hero-inner .eyebrow{color:var(--or);opacity:0;animation:fadeUp .7s ease .05s forwards;}
  .hero-inner .eyebrow::before{background:var(--or);}
  .hero h1{color:#fff;font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.08;max-width:12ch;margin-bottom:22px;opacity:0;animation:fadeUp .8s ease .18s forwards;}
  .hero p.lede{color:#c7d3d6;max-width:46ch;font-size:1.02rem;margin-bottom:34px;opacity:0;animation:fadeUp .8s ease .32s forwards;}
  .hero-buttons{display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:fadeUp .8s ease .46s forwards;}
  .btn{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:0.78rem;font-weight:600;letter-spacing:0.05em;padding:15px 28px;border-radius:3px;display:inline-flex;align-items:center;gap:9px;transition:transform .2s ease,background .2s ease,box-shadow .3s ease;}
  .btn-primary{background:var(--framboise);color:#fff;}
  .btn-primary:hover{background:#a92e3e;transform:translateY(-2px);box-shadow:0 10px 24px rgba(195,60,78,0.35);}
  .btn-ghost{border:1px solid rgba(255,255,255,0.3);color:#fff;}
  .btn-ghost:hover{border-color:#fff;transform:translateY(-2px);}
  .btn .arrow{transition:transform .25s ease;}
  .btn:hover .arrow{transform:translateX(4px);}
  .cta-band .btn-primary:hover{box-shadow:0 10px 24px rgba(0,0,0,0.15);}
  .hero-stats{display:flex;gap:44px;margin-top:56px;flex-wrap:wrap;opacity:0;animation:fadeUp .8s ease .6s forwards;}
  .trust-stats{display:flex;gap:40px;flex-wrap:wrap;margin-top:26px;padding-top:22px;border-top:1px solid var(--acier-light);}
  .trust-stats div{font-family:'JetBrains Mono',monospace;}
  .trust-stats .num{font-size:1.6rem;color:var(--framboise);display:block;font-weight:500;}
  .trust-stats .lbl{font-size:0.72rem;color:#5c6d72;letter-spacing:0.03em;}
  .hero-stats div{font-family:'JetBrains Mono',monospace;}
  .hero-stats .num{font-size:1.5rem;color:var(--or);display:block;}
  .hero-stats .lbl{font-size:0.68rem;color:#8fa3aa;letter-spacing:0.05em;text-transform:uppercase;}

  /* ---------- intro strip (marquee) ---------- */
  .intro-strip{background:var(--creme);border-bottom:1px solid var(--acier-light);padding:22px 0;overflow:hidden;}
  .marquee-track{display:flex;width:max-content;animation:marquee 26s linear infinite;}
  .marquee-track:hover{animation-play-state:paused;}
  .marquee-group{display:flex;gap:40px;padding-right:40px;flex-shrink:0;}
  .intro-strip span{font-family:'JetBrains Mono',monospace;font-size:0.72rem;letter-spacing:0.04em;color:#5c6d72;white-space:nowrap;}
  .intro-strip strong{color:var(--glacier);}

  /* ---------- feature sections ---------- */
  .feature{padding:96px 0;}
  .feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
  .feature-grid.reverse .art{order:2;}
  @media(max-width:860px){.feature-grid{grid-template-columns:1fr;gap:40px;} .feature-grid.reverse .art{order:0;}}
  .feature h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-bottom:20px;max-width:14ch;}
  .feature p{color:#4a5a5f;max-width:48ch;margin-bottom:18px;font-size:0.98rem;}
  .feature ul{list-style:none;margin-top:22px;display:flex;flex-direction:column;gap:12px;}
  .feature ul li{display:flex;align-items:center;gap:12px;font-family:'Work Sans',sans-serif;font-size:0.92rem;color:var(--glacier);font-weight:500;}
  .feature ul li .dot{width:7px;height:7px;background:var(--framboise);flex-shrink:0;transform:rotate(45deg);}
  .art{aspect-ratio:1/1;border-radius:8px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .art.tone-lait{background:var(--blanc-lait);border:1px solid var(--acier-light);}
  .art.tone-glacier{background:var(--glacier-dark);}
  .art svg{width:60%;height:60%;}
  .art img.photo-cover{width:100%;height:100%;object-fit:cover;display:block;animation:kenburns 16s ease-in-out infinite alternate;}
  @keyframes kenburns{from{transform:scale(1);}to{transform:scale(1.08);}}
  .art img.brand-icon{width:55%;height:auto;animation:breathe 5s ease-in-out infinite;}

  .section-alt{background:var(--creme);}

  /* ---------- gammes / product cards ---------- */
  .gammes{background:var(--glacier-dark);color:#fff;padding:96px 0;}
  .gammes .eyebrow{color:var(--or);}
  .gammes .eyebrow::before{background:var(--or);}
  .gammes h2{color:#fff;font-size:clamp(1.5rem,3vw,2.1rem);max-width:20ch;margin-bottom:14px;}
  .gammes > .wrap > p{color:#c7d3d6;max-width:56ch;margin-bottom:0;}
  .gammes-intro{display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;align-items:center;margin-bottom:48px;}
  @media(max-width:900px){.gammes-intro{grid-template-columns:1fr;}}
  .gammes-photo{border-radius:8px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .gammes-photo > div{border-radius:8px;overflow:hidden;aspect-ratio:3/4;}
  .gammes-photo img{width:100%;height:100%;object-fit:cover;display:block;animation:kenburns 16s ease-in-out infinite alternate;}
  .gamme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.12);}
  @media(max-width:900px){.gamme-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:520px){.gamme-grid{grid-template-columns:1fr;}}
  .gamme-card{background:var(--glacier-dark);padding:34px 24px;}
  .gamme-card:hover{background:#132a33;box-shadow:inset 0 2px 0 var(--or);}
  .gamme-card .num{font-family:'JetBrains Mono',monospace;font-size:0.68rem;color:var(--or);letter-spacing:0.08em;}
  .gamme-card svg{width:34px;height:34px;margin:18px 0 16px;transition:transform .35s ease;}
  .gamme-card:hover svg{transform:scale(1.15) rotate(-6deg);}
  .gamme-card h3{color:#fff;font-size:0.92rem;margin-bottom:10px;letter-spacing:0.02em;}
  .gamme-card p{color:#8fa3aa;font-size:0.85rem;}

  /* ---------- flavor catalog ---------- */
  .flavor-catalog{margin-top:64px;}
  .flavor-catalog-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;margin-bottom:28px;}
  .flavor-catalog-head h3{color:#fff;font-size:1.2rem;letter-spacing:0.01em;margin:0;}
  .flavor-legend{display:flex;gap:18px;flex-wrap:wrap;font-family:'JetBrains Mono',monospace;font-size:0.68rem;color:#8fa3aa;}
  .flavor-legend span{display:inline-flex;align-items:center;gap:7px;}
  .flavor-legend .swatch{width:8px;height:8px;border-radius:50%;}
  .flavor-group{margin-bottom:22px;}
  .flavor-group-label{font-family:'JetBrains Mono',monospace;font-size:0.68rem;letter-spacing:0.06em;text-transform:uppercase;color:#8fa3aa;margin-bottom:12px;}
  .flavor-pills{display:flex;flex-wrap:wrap;gap:8px;}
  .flavor-pill{font-family:'Work Sans',sans-serif;font-size:0.78rem;padding:6px 13px;border-radius:20px;border:1px solid;white-space:nowrap;transition:transform .15s ease;}
  .flavor-pill:hover{transform:translateY(-2px);}
  .flavor-pill.classique{border-color:rgba(199,162,92,0.5);color:#C7A25C;background:rgba(199,162,92,0.08);}
  .flavor-pill.gourmand{border-color:rgba(220,228,228,0.35);color:#DCE4E4;background:rgba(220,228,228,0.06);}
  .flavor-pill.premium{border-color:rgba(195,60,78,0.5);color:#e8949f;background:rgba(195,60,78,0.1);}

  /* ---------- custom creation banner ---------- */
  .custom-creation{position:relative;margin:36px 0 44px;padding:32px 28px;border-radius:12px;background:linear-gradient(135deg,rgba(199,162,92,0.14),rgba(195,60,78,0.10));border:1.5px solid rgba(199,162,92,0.55);overflow:hidden;}
  .custom-creation::before{content:"";position:absolute;top:-40px;right:-40px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(199,162,92,0.25) 0%,rgba(199,162,92,0) 70%);animation:breathe 5s ease-in-out infinite;}
  .custom-creation-inner{position:relative;z-index:1;}
  .custom-creation h3{color:#fff;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:1.3rem;letter-spacing:0.02em;margin-bottom:10px;}
  .custom-creation h3 .accent{color:var(--or);}
  .custom-creation > .custom-creation-inner > p{color:#c7d3d6;max-width:56ch;margin-bottom:22px;font-size:0.95rem;}
  .combo-row{display:flex;flex-wrap:wrap;gap:12px;}
  .combo-pill{display:inline-flex;align-items:center;gap:8px;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:0.78rem;font-weight:600;letter-spacing:0.02em;color:#fff;background:rgba(15,35,43,0.55);border:1px solid rgba(199,162,92,0.5);border-radius:24px;padding:9px 16px;transition:transform .2s ease,border-color .2s ease;}
  .combo-pill:hover{transform:translateY(-3px) scale(1.03);border-color:var(--or);}
  .combo-pill .x{color:var(--or);font-weight:700;}

  /* ---------- livraison / map ---------- */
  .livraison{padding:96px 0;}
  .livraison-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center;}
  @media(max-width:900px){.livraison-grid{grid-template-columns:1fr;}}
  .livraison h2{font-size:clamp(1.5rem,3vw,2.1rem);max-width:14ch;margin-bottom:18px;}
  .livraison p{color:#4a5a5f;max-width:44ch;margin-bottom:24px;}
  .zone-table{width:100%;border-collapse:collapse;font-family:'JetBrains Mono',monospace;font-size:0.78rem;margin-top:20px;}
  .zone-table td{padding:9px 0;border-bottom:1px solid var(--acier-light);color:#5c6d72;}
  .zone-table td:first-child{color:var(--glacier);font-weight:500;width:60%;}
  .map-card{background:var(--blanc-lait);border:1px solid var(--acier-light);border-radius:8px;padding:26px;}
  .map-card svg{width:100%;height:auto;}
  .draw-in{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 1.8s ease;}
  .reveal.in .draw-in{stroke-dashoffset:0;}
  .map-node{transition:transform .3s ease;transform-box:fill-box;transform-origin:center;cursor:default;}
  .map-node:hover{transform:scale(1.18);}
  .map-node .hex{transition:fill .25s ease;}
  .map-node .pulse-ring{transform-box:fill-box;transform-origin:center;animation:pulseRing 2.8s ease-out infinite;}
  .map-hub{opacity:0;transform:scale(0.6);transform-box:fill-box;transform-origin:center;transition:opacity .5s ease .3s,transform .5s ease .3s;}
  .reveal.in .map-hub{opacity:1;transform:scale(1);}
  .map-node{opacity:0;transition:opacity .5s ease,transform .3s ease;}
  .reveal.in .map-node{opacity:1;}
  .map-legend{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px;font-family:'JetBrains Mono',monospace;font-size:0.68rem;color:#5c6d72;}
  .map-legend span{display:inline-flex;align-items:center;gap:7px;}
  .map-legend .swatch{width:9px;height:9px;transform:rotate(45deg);}
  .zone-table tr{transition:background .2s ease;}
  .zone-table tr:hover{background:rgba(199,162,92,0.08);}

  /* ---------- CTA band ---------- */
  .cta-band{background:var(--framboise);color:#fff;padding:70px 0;text-align:center;position:relative;overflow:hidden;}
  .cta-bg-photo{position:absolute;inset:0;z-index:0;}
  .cta-bg-photo img{width:100%;height:100%;object-fit:cover;opacity:0.22;}
  .cta-band::before{content:"";position:absolute;left:50%;top:50%;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,0.14) 0%,rgba(255,255,255,0) 70%);transform:translate(-50%,-50%);animation:breathe 6s ease-in-out infinite;z-index:1;}
  .cta-band .wrap{position:relative;z-index:2;}
  .cta-band .eyebrow{color:rgba(255,255,255,0.85);}
  .cta-band .eyebrow::before{background:rgba(255,255,255,0.85);}
  .cta-band h2{color:#fff;font-size:clamp(1.5rem,3.6vw,2.2rem);max-width:20ch;margin:0 auto 26px;position:relative;}
  .cta-band .btn-primary{background:#fff;color:var(--framboise);position:relative;}
  .cta-band .btn-primary:hover{background:var(--blanc-lait);}

  /* ---------- contact form ---------- */
  .contact-section{padding:96px 0;}
  .contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:start;}
  @media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
  .contact-section h2{font-size:clamp(1.5rem,3vw,2.1rem);max-width:14ch;margin-bottom:18px;}
  .contact-section p{color:#4a5a5f;max-width:42ch;margin-bottom:20px;}
  .contact-points{list-style:none;display:flex;flex-direction:column;gap:12px;margin-top:8px;}
  .contact-points li{display:flex;align-items:center;gap:12px;font-size:0.92rem;color:var(--glacier);font-weight:500;}
  .contact-points li .dot{width:7px;height:7px;background:var(--framboise);flex-shrink:0;transform:rotate(45deg);}
  .contact-form{background:var(--creme);border:1px solid var(--acier-light);border-radius:10px;padding:32px;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  @media(max-width:560px){.form-row{grid-template-columns:1fr;}}
  .field{margin-bottom:18px;}
  .field label{display:block;font-family:'JetBrains Mono',monospace;font-size:0.68rem;letter-spacing:0.04em;text-transform:uppercase;color:#5c6d72;margin-bottom:7px;}
  .field input,.field select,.field textarea{width:100%;border:1px solid var(--acier-light);border-radius:4px;padding:11px 13px;font-family:'Work Sans',sans-serif;font-size:0.92rem;color:var(--encre);background:#fff;transition:border-color .2s ease;}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--framboise);}
  .field textarea{resize:vertical;min-height:90px;}
  .contact-form .btn-primary{width:100%;justify-content:center;border:none;cursor:pointer;font-size:0.82rem;}
  .form-note{font-family:'JetBrains Mono',monospace;font-size:0.68rem;color:#8fa3aa;margin-top:12px;text-align:center;}
  .form-success{display:none;background:#EAF0EF;border:1px solid var(--acier-light);border-radius:6px;padding:16px;font-size:0.88rem;color:var(--glacier);margin-top:16px;}
  .form-success.show{display:block;}

  /* ---------- footer ---------- */
  footer{background:var(--glacier-dark);color:#c7d3d6;padding:64px 0 28px;}
  .footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,0.1);}
  @media(max-width:760px){.footer-top{grid-template-columns:1fr 1fr;}}
  @media(max-width:480px){.footer-top{grid-template-columns:1fr;}}
  .footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
  .footer-brand img{width:30px;height:auto;}
  .footer-brand span{font-family:'Oswald',sans-serif;text-transform:uppercase;font-weight:600;font-size:0.88rem;color:#fff;}
  .footer-brand span .accent{color:var(--or);}
  footer p.tagline{font-family:'JetBrains Mono',monospace;font-size:0.72rem;color:#8fa3aa;max-width:32ch;}
  footer h4{font-family:'JetBrains Mono',monospace;font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--or);margin-bottom:16px;}
  footer ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
  footer ul li a{font-size:0.86rem;color:#c7d3d6;}
  footer ul li a:hover{color:#fff;}
  .footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:26px;font-family:'JetBrains Mono',monospace;font-size:0.68rem;color:#5c6d72;}

/* Le flocon du logo effectue un tour complet toutes les cinq secondes. */
@keyframes snowflake-spin {
  0%, 80% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.brand img,
.footer-brand img {
  animation: snowflake-spin 5s ease-in-out infinite;
  transform-origin: 50% 50%;
}

@media (prefers-reduced-motion: reduce) {
  .brand img,
  .footer-brand img { animation: none; }
}


/* Galerie de fabrication enrichie avec les photos restaurées. */
.fabrication-gallery {
  align-self: stretch;
  min-height: 560px;
  display: grid;
  grid-template-rows: 1.05fr .95fr;
  gap: 10px;
}
.fabrication-gallery > div,
.gammes-photo > div {
  overflow: hidden;
  border-radius: 8px;
}
.fabrication-gallery img,
.gammes-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .7s ease;
}
.fabrication-gallery img:hover,
.gammes-photo img:hover { transform: scale(1.025); }
.gammes-photo { display: grid !important; grid-template-columns: 1fr !important; gap: 14px; opacity: 1 !important; transform: none !important; }
.gammes-photo .gallery-row { width: 100%; aspect-ratio: 16 / 7; }
.gammes-photo .gallery-row img { object-fit: cover; object-position: center; }
.activity-video { position:relative; margin-top:22px; min-height:clamp(420px,55vw,690px); color:#fff; overflow:hidden; border-radius:14px; box-shadow:0 20px 55px rgba(20,45,55,.22); background:#132f3a; }
.activity-video-copy { position:absolute; z-index:2; left:24px; bottom:24px; max-width:390px; display:flex; flex-direction:column; justify-content:center; padding:22px 24px; border-radius:10px; background:rgba(7,24,31,.76); backdrop-filter:blur(8px); box-shadow:0 10px 32px rgba(0,0,0,.18); }
.activity-video-copy span { color:#9fd6d8; font:600 .72rem 'Oswald',sans-serif; letter-spacing:.13em; text-transform:uppercase; margin-bottom:10px; }
.activity-video-copy strong { font:600 clamp(1.45rem,2.4vw,2.15rem)/1.08 'Oswald',sans-serif; text-transform:uppercase; }
.activity-video-copy small { margin-top:12px; color:#c8d4d8; }
.activity-video video { position:absolute; inset:-2px; width:calc(100% + 4px); height:calc(100% + 4px); object-fit:cover; object-position:center; display:block; background:transparent; }
.activity-video video::-webkit-media-controls { display:none !important; }
@media (max-width: 860px) {
  .fabrication-gallery { min-height: 480px; }
}
@media (max-width: 520px) {
  .fabrication-gallery { min-height: 410px; }
  .activity-video { min-height:500px; border-radius:10px; }
  .activity-video-copy { left:12px; right:12px; bottom:12px; max-width:none; padding:18px; }
  .gammes-photo .gallery-row { aspect-ratio: 16 / 9; }
}

/* Pages légales. */
.legal-page { background: var(--creme); min-height: 100vh; }
.legal-header { background: var(--glacier-dark); padding: 22px 0; }
.legal-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.legal-header a { color: #fff; font-family: 'Oswald', sans-serif; text-transform: uppercase; }
.legal-header .back-link { color: var(--or); font-size: .82rem; }
.legal-content { max-width: 820px; margin: 0 auto; padding: 72px 24px 96px; }
.legal-content h1 { font-size: clamp(2rem, 5vw, 3.2rem); margin-bottom: 36px; }
.legal-content h2 { font-size: 1.3rem; margin: 32px 0 10px; }
.legal-content p, .legal-content li { color: #4a5a5f; line-height: 1.75; }
.legal-content ul { padding-left: 20px; }
.legal-content a { color: var(--framboise); text-decoration: underline; }
.legal-warning { border-left: 4px solid var(--framboise); background: #fff; padding: 16px 18px; margin: 24px 0; }
.footer-bottom a { color: inherit; }

/* Première impression gourmande. */
.hero-visual { order: 2; position: relative; opacity: 0; animation: fadeUp 1s ease .25s forwards; }
.hero-visual > img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: center; border-radius: 10px; box-shadow: 0 24px 70px rgba(0,0,0,.38); }
.hero-visual::before { content: ""; position: absolute; inset: -12px 14px 14px -12px; border: 1px solid rgba(199,162,92,.45); border-radius: 10px; pointer-events: none; }
.hero-visual-badge { position: absolute; right: -12px; bottom: 24px; background: var(--creme); color: var(--glacier); padding: 13px 18px; border-radius: 4px; box-shadow: 0 12px 30px rgba(0,0,0,.22); }
.hero-visual-badge strong, .hero-visual-badge span { display: block; }
.hero-visual-badge strong { font-family: 'Oswald',sans-serif; text-transform: uppercase; }
.hero-visual-badge span { font-size: .72rem; color: #5c6d72; }
.hero-stats .stat-text { font-size: 1.35rem; }
@media (max-width: 900px) { .hero-visual { order: 0; max-width: 680px; margin: 0 auto; } .hero-visual > img { aspect-ratio: 16 / 10; } }

/* Parcours de dégustation sur rendez-vous. */
.tasting-section { padding: 96px 0; background: var(--creme); }
.tasting-intro { display: grid; grid-template-columns: 1fr .85fr; gap: 54px; align-items: center; margin-bottom: 42px; }
.tasting-head { max-width: 760px; }
.tasting-head h2 { font-size: clamp(1.7rem,3vw,2.5rem); max-width: 19ch; margin-bottom: 18px; }
.tasting-head p { color: #4a5a5f; }
.tasting-note { margin-top: 15px; padding-left: 14px; border-left: 3px solid var(--or); font-size: .84rem; }
.tasting-photo { overflow: hidden; border-radius: 8px; aspect-ratio: 5 / 4; }
.tasting-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tasting-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--acier-light); border: 1px solid var(--acier-light); }
.tasting-steps > div { background: var(--blanc-lait); padding: 30px 26px; }
.tasting-steps span { color: var(--framboise); font-family: 'JetBrains Mono',monospace; font-size: .72rem; }
.tasting-steps h3 { font-size: 1.05rem; margin: 12px 0 8px; }
.tasting-steps p { color: #5c6d72; font-size: .88rem; }
.tasting-action { margin-top: 28px; }
@media (max-width: 760px) { .tasting-intro, .tasting-steps { grid-template-columns: 1fr; } .tasting-photo { aspect-ratio: 16 / 10; } }

/* Parcours de conversion professionnel. */
.practical-strip { background: #142f3b; color: #fff; border-top: 1px solid rgba(255,255,255,.12); }
.practical-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.practical-grid span { padding: 15px 12px; text-align: center; font: 600 .72rem 'Work Sans',sans-serif; letter-spacing: .04em; border-right: 1px solid rgba(255,255,255,.12); }
.practical-grid span:last-child { border-right: 0; }
.trust-section { padding: 96px 0; background: #fff; }
.trust-heading { max-width: 720px; margin-bottom: 38px; }
.trust-heading h2, .bio-proof h2, .faq-section h2 { font-size: clamp(2rem,4vw,3.25rem); line-height: 1.02; margin: 8px 0 18px; }
.trust-heading p, .bio-proof-copy > p, .faq-intro > p { color: #5c6d72; }
.trust-grid { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--acier-light); }
.trust-grid article { padding: 30px 24px; border-right: 1px solid var(--acier-light); }
.trust-grid article:last-child { border-right: 0; }
.trust-grid span { color: var(--framboise); font: .72rem 'JetBrains Mono',monospace; }
.trust-grid h3 { margin: 14px 0 9px; font-size: 1.1rem; }
.trust-grid p { color: #64767c; font-size: .87rem; }
.trust-actions { display: flex; align-items: center; gap: 25px; margin-top: 30px; }
.text-link { color: var(--glacier); text-decoration: underline; text-underline-offset: 4px; font-weight: 600; }
.bio-proof { padding: 96px 0; background: #edf2ee; }
.bio-proof-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: center; }
.bio-proof-copy ul { list-style: none; margin: 24px 0; padding: 0; }
.bio-proof-copy li { position: relative; padding: 9px 0 9px 25px; border-bottom: 1px solid rgba(30,58,71,.12); }
.bio-proof-copy li::before { content: '✓'; position: absolute; left: 0; color: #3b7c49; font-weight: 700; }
.proof-note { font-size: .76rem; border-left: 3px solid var(--or); padding-left: 13px; }
.proof-gallery { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; opacity: 1 !important; transform: none !important; }
.proof-gallery figure { margin: 0; background: #fff; padding: 8px; box-shadow: 0 14px 38px rgba(30,58,71,.11); overflow: hidden; }
.proof-gallery img { width: 100%; height: 390px; object-fit: cover; display: block; filter: brightness(1.04) contrast(1.03); background: #fff; }
/* Cadrages serrés sur les étiquettes : ni carrelage, ni table visibles. */
.proof-gallery figure:first-child img { object-position: 50% 28%; transform: scale(1.82); }
.proof-gallery figure:last-child img { object-position: 50% 38%; transform: scale(1.72); }
.proof-gallery figcaption { padding: 10px 5px 5px; font-size: .75rem; color: #52666e; }
.faq-section { padding: 96px 0; background: var(--creme); }
.faq-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 64px; align-items: start; }
.faq-list details { border-top: 1px solid #cad4d5; padding: 0; }
.faq-list details:last-child { border-bottom: 1px solid #cad4d5; }
.faq-list summary { cursor: pointer; list-style: none; padding: 22px 38px 22px 0; font-weight: 600; position: relative; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content: '+'; position: absolute; right: 5px; font-size: 1.35rem; color: var(--framboise); }
.faq-list details[open] summary::after { content: '−'; }
.faq-list details p { color: #5c6d72; padding: 0 36px 22px 0; font-size: .9rem; }
.mobile-contact { display: none; }
.pricing-section { padding: 100px 0; background: #173844; color: #fff; overflow: hidden; }
.pricing-section > .wrap { position: relative; z-index: 2; }
.pricing-heading { display: grid; grid-template-columns: 1.05fr .95fr; gap: 64px; align-items: end; margin-bottom: 42px; }
.pricing-heading h2 { color: #fff; font-size: clamp(2rem,4vw,3.25rem); line-height: 1.02; margin-top: 8px; max-width: 17ch; }
.pricing-heading > p { color: #c4d0d3; line-height: 1.75; }
.pricing-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.price-card { position: relative; min-height: 360px; padding: 34px 30px; background: #fff; color: var(--glacier); border-top: 5px solid var(--or); display: flex; flex-direction: column; }
.price-card.gourmand { border-top-color: #95afb5; }
.price-card.premium { border-top-color: var(--framboise); }
.price-card.featured { transform: translateY(-12px); box-shadow: 0 22px 55px rgba(0,0,0,.22); }
.price-label { position: absolute; right: 18px; top: 18px; padding: 6px 9px; background: var(--framboise); color: #fff; font: 600 .62rem 'Work Sans',sans-serif; text-transform: uppercase; letter-spacing: .05em; }
.price-index { color: #7a8e94; font: 600 .68rem 'JetBrains Mono',monospace; text-transform: uppercase; letter-spacing: .06em; }
.price-card h3 { margin: 24px 0 22px; font-size: 1.35rem; }
.price { margin-bottom: 24px; }
.price small, .price em { display: block; color: #6c8086; font: normal .72rem 'Work Sans',sans-serif; }
.price strong { display: block; color: var(--framboise); font: 600 clamp(2.25rem,4vw,3.3rem)/1 'Oswald',sans-serif; margin: 7px 0; }
.price-card > p:last-child { margin-top: auto; color: #5c6d72; font-size: .86rem; line-height: 1.65; }
.pricing-footer { margin-top: 22px; padding: 24px 26px; display: flex; justify-content: space-between; align-items: center; gap: 30px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); }
.pricing-footer strong, .pricing-footer span { display: block; }
.pricing-footer strong { color: var(--or); font-family: 'Oswald',sans-serif; text-transform: uppercase; }
.pricing-footer span { color: #c4d0d3; font-size: .76rem; margin-top: 5px; }
.pricing-note { margin-top: 15px; color: #9eb0b5; font-size: .7rem; }
.hp-field { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-success.form-error { color:#8e2130; background:#fff0f2; border-color:#e2a7af; }
.cow-mosaic { position: relative; display: grid; grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; gap: 8px; min-height: 570px; overflow: hidden; }
.cow-mosaic > div:not(.cow-values) { overflow: hidden; }
.cow-mosaic img { width: 100%; height: 100%; min-height: 0; object-fit: cover; display: block; }
.cow-main img { object-position: center 58%; }.cow-detail img { object-position: center 60%; }
.cow-values { position: absolute; left: 22px; right: 22px; bottom: 22px; display: grid; grid-template-columns: repeat(3,1fr); background: rgba(20,47,59,.92); color: #fff; backdrop-filter: blur(8px); }
.cow-values span { padding: 15px 12px; text-align: center; font-size: .72rem; border-right: 1px solid rgba(255,255,255,.15); }
.cow-values span:last-child { border-right: 0; }
.cow-values strong { display: block; color: var(--or); font-family: 'Oswald',sans-serif; text-transform: uppercase; font-size: .9rem; }
.urgent-delivery { margin-top: 24px; padding: 20px; background: var(--framboise); color: #fff; box-shadow: 0 12px 28px rgba(195,60,78,.2); }
.urgent-delivery strong, .urgent-delivery span { display: block; }
.urgent-delivery strong { font-family: 'Oswald',sans-serif; text-transform: uppercase; font-size: 1.05rem; }
.urgent-delivery span { margin: 6px 0 13px; font-size: .83rem; color: rgba(255,255,255,.86); }
.urgent-delivery a { color: #fff; text-decoration: underline; text-underline-offset: 4px; font-weight: 700; }
.delivery-network { padding: 0 !important; overflow: hidden; background: #173844 !important; color: #fff; min-height: 510px; }
.network-title { display: flex; justify-content: space-between; align-items: center; padding: 22px 24px; border-bottom: 1px solid rgba(255,255,255,.12); }
.network-title span { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--or); }
.network-title strong { font-family: 'Oswald',sans-serif; text-transform: uppercase; }
.network-map { position: relative; min-height: 390px; background: radial-gradient(circle at center,rgba(199,162,92,.14),transparent 39%),linear-gradient(135deg,rgba(255,255,255,.03),transparent); }
.network-map::before,.network-map::after { content:""; position:absolute; left:50%; top:50%; border:1px solid rgba(255,255,255,.1); border-radius:50%; transform:translate(-50%,-50%); }
.network-map::before { width:220px; height:220px; }.network-map::after { width:330px; height:330px; }
.network-hub { position:absolute; z-index:3; left:50%; top:50%; width:102px; height:102px; transform:translate(-50%,-50%); background:radial-gradient(circle at 38% 30%,#f3e5bf 0,#d5b66f 72%,#b78d3f 100%); border:2px solid #f0d995; border-radius:50%; display:grid; place-items:center; box-shadow:0 0 0 11px rgba(199,162,92,.13),0 14px 35px rgba(0,0,0,.3); }
.network-hub img { width:82px; height:82px; object-fit:contain; animation:snowflake-spin 5s ease-in-out infinite; transform-origin:50% 50%; }
.city { position:absolute; z-index:2; font:600 .78rem 'Work Sans',sans-serif; text-align:center; }
.city::before { content:""; display:block; width:9px; height:9px; margin:0 auto 5px; background:var(--framboise); border:3px solid #fff; border-radius:50%; box-shadow:0 0 0 4px rgba(195,60,78,.2); }
.city small { display:block; color:var(--or); margin-top:3px; font-size:.64rem; }
/* Distances visuelles approximatives depuis Schweighouse-sur-Moder, sans afficher le lieu de départ. */
.c1{left:68%;top:47%}.c2{left:19%;top:39%}.c3{left:3%;top:45%}.c4{left:15%;bottom:3%}.c5{left:26%;bottom:20%}.c6{right:4%;bottom:4%}.c7{left:60%;top:22%}.c8{right:7%;top:4%}.c9{left:23%;top:7%}
.route { position:absolute; z-index:1; left:50%; top:50%; height:1px; background:linear-gradient(90deg,var(--or),rgba(199,162,92,.12)); transform-origin:left center; }
.r1{width:82px;transform:rotate(8deg)}.r2{width:112px;transform:rotate(185deg)}.r3{width:170px;transform:rotate(184deg)}.r4{width:152px;transform:rotate(132deg)}.r5{width:105px;transform:rotate(139deg)}.r6{width:152px;transform:rotate(58deg)}.r7{width:92px;transform:rotate(-54deg)}.r8{width:155px;transform:rotate(-48deg)}.r9{width:138px;transform:rotate(-132deg)}
.network-note { text-align:center; padding:0 20px 22px; color:#b8c7cb; font-size:.75rem; }
.network-legend { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:18px 22px; border-top:1px solid rgba(255,255,255,.12); font-size:.72rem; }
.network-legend span { color:#d9e2e4; }.network-legend i { display:inline-block; width:9px; height:9px; margin-right:8px; background:var(--framboise); border:2px solid #fff; border-radius:50%; vertical-align:-1px; }
.network-legend a { color:var(--or); font-weight:700; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
@media (max-width: 860px) {
  .practical-grid { grid-template-columns: repeat(2,1fr); }
  .trust-grid { grid-template-columns: repeat(2,1fr); }
  .trust-grid article:nth-child(2) { border-right: 0; }
  .trust-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--acier-light); }
  .bio-proof-grid, .faq-layout { grid-template-columns: 1fr; gap: 38px; }
  .pricing-heading { grid-template-columns: 1fr; gap: 18px; }
  .pricing-grid { grid-template-columns: 1fr; }
  .price-card { min-height: 0; }
  .price-card.featured { transform: none; }
  .pricing-footer { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 600px) {
  body { padding-bottom: 62px; }
  .practical-grid { grid-template-columns: 1fr 1fr; }
  .practical-grid span { font-size: .64rem; padding: 12px 8px; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-grid article { border-right: 0; border-bottom: 1px solid var(--acier-light); }
  .trust-actions { align-items: flex-start; flex-direction: column; }
  .proof-gallery img, .proof-gallery figure:last-child img { height: 290px; }
  .cow-mosaic { min-height: 440px; grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; }
  .cow-mosaic img { min-height: 0; height:100%; }
  .cow-values { left:10px;right:10px;bottom:10px;grid-template-columns:1fr; }
  .cow-values span { border-right:0;border-bottom:1px solid rgba(255,255,255,.12);padding:9px; }
  .network-map { min-height:340px; }.network-map::after{width:280px;height:280px}.city{font-size:.67rem}.c1{left:69%}.c2{left:14%}.c3{left:1%}.c4{left:9%}.c5{left:20%}.c6{right:1%}.c7{left:59%;top:20%}.c8{right:1%;top:3%}.c9{left:15%;top:5%}
  .network-legend { align-items:flex-start; flex-direction:column; }
  .mobile-contact { display: block; position: fixed; z-index: 999; left: 12px; right: 12px; bottom: 10px; padding: 14px 18px; background: var(--framboise); color: #fff; text-align: center; text-transform: uppercase; font: 600 .78rem 'Oswald',sans-serif; letter-spacing: .06em; box-shadow: 0 10px 28px rgba(0,0,0,.25); border-radius: 4px; }
}
@media (max-width: 860px) {
  body.menu-open { overflow: hidden; }
  body.menu-open::before { content: ''; position: fixed; z-index: 999; inset: 0; background: var(--glacier-dark); }
  header.site-header { z-index: 1000; transition: background .25s ease, border-color .25s ease; }
  body.menu-open header.site-header { background: var(--glacier-dark); border-color: rgba(255,255,255,.12); }
  body.menu-open .brand .wordmark-text { color: #fff; }
  body.menu-open .burger span { background: #fff; }
  .header-inner { position: relative; padding: 12px 18px; }
  .brand { position: relative; z-index: 1002; }
  .burger { position: relative; z-index: 1002; width: 42px; height: 42px; align-items: center; justify-content: center; padding: 10px; border-radius: 4px; }
  .burger span { position: absolute; transition: transform .25s ease, opacity .2s ease; }
  .burger span:nth-child(1) { transform: translateY(-7px); }
  .burger span:nth-child(3) { transform: translateY(7px); }
  .burger.open span:nth-child(1) { transform: rotate(45deg); }
  .burger.open span:nth-child(2) { opacity: 0; }
  .burger.open span:nth-child(3) { transform: rotate(-45deg); }
  nav.main-nav { position: fixed; z-index: 1001; inset: 63px 0 0; width: 100%; height: calc(100dvh - 63px); min-height: 0; padding: clamp(12px,3vh,28px) 24px 18px; gap: 0; background: var(--glacier-dark); overflow: hidden; visibility: hidden; pointer-events: none; transform: translateX(100%); box-shadow: none; display: flex; flex-direction: column; justify-content: center; }
  nav.main-nav.open { visibility: visible; pointer-events: auto; transform: translateX(0); }
  nav.main-nav a { display: flex; flex: 0 1 auto; align-items: center; justify-content: space-between; width: 100%; max-width: 620px; margin: 0 auto; padding: clamp(10px,2vh,17px) 4px; border-bottom: 1px solid rgba(255,255,255,.12); color: #fff; font-size: clamp(.82rem,2.1vh,1rem); line-height: 1.1; letter-spacing: .07em; }
  nav.main-nav a:not(.nav-cta)::after { content: '→'; position: static; width: auto; height: auto; background: none; color: var(--or); font: 400 1rem 'Work Sans',sans-serif; }
  nav.main-nav .nav-cta { display: block; width: 100%; max-width: 620px; margin: clamp(14px,2.5vh,24px) auto 0; padding: clamp(13px,2vh,17px) 20px !important; background: var(--framboise); text-align: center; border: 0; }
  nav.main-nav::after { content: 'Glaces artisanales · Livraison professionnelle dans le Grand Est'; display: block; max-width: 620px; margin: clamp(14px,2.5vh,24px) auto 0; color: #8fa3aa; font-size: .62rem; line-height: 1.45; letter-spacing: .04em; text-align: center; text-transform: uppercase; }
}
@media (max-width: 860px) and (max-height: 620px) {
  nav.main-nav { justify-content: flex-start; padding-top: 8px; }
  nav.main-nav a { padding: 8px 4px; font-size: .75rem; }
  nav.main-nav .nav-cta { margin-top: 10px; padding: 11px 18px !important; }
  nav.main-nav::after { display: none; }
}
@media (prefers-reduced-motion: reduce) { .network-hub img { animation:none; } }
