/* ============================================================
   MILLE BACI · D3 · HORECA — ready to serve (teal business pop)
   ============================================================ */

body{
  background:
    radial-gradient(46% 30% at 6% 6%,rgba(38,161,156,.2),transparent 70%),
    radial-gradient(38% 26% at 96% 34%,rgba(246,162,43,.12),transparent 70%),
    var(--paper);
}

/* ---------- hero ---------- */
.hhero{width:var(--w);margin:0 auto;padding:8rem 0 2rem}
.hhero-h{
  font-family:var(--disp);font-weight:800;text-transform:uppercase;
  font-size:clamp(2.2rem,7.6vw,5.8rem);line-height:1;letter-spacing:-.01em;
}
.hhero-h span,.hhero-h em{display:block;font-style:normal}
.hhero-h em{color:var(--teal)}
.hhero-lead{margin-top:1.4rem}
.hhero-grid{display:grid;grid-template-columns:56fr 34fr;gap:clamp(1.4rem,3vw,2.6rem);margin-top:2.4rem;align-items:start}
.hh-fig{margin:0;transform:rotate(-1.2deg)}
.hh-fig img{
  width:100%;border-radius:22px;border:4px solid var(--pink);
  box-shadow:10px 12px 0 rgba(38,161,156,.5);aspect-ratio:5/6;object-fit:cover;
}
.hh-vid{margin:0;position:relative;transform:rotate(1.8deg);max-width:320px;justify-self:center}
.hh-vid video{width:100%;border-radius:20px;border:4px solid var(--pink);box-shadow:8px 10px 0 rgba(228,72,124,.18)}
.hh-badge{
  position:absolute;left:50%;bottom:-1rem;transform:translateX(-50%) rotate(-2deg);
  background:var(--mango);border:3px solid var(--pink);border-radius:14px;
  padding:.3rem .9rem;white-space:nowrap;font-size:1.1rem;
}

/* ---------- receipt ---------- */
.offer-grid{display:grid;grid-template-columns:52fr 38fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.offer-copy p:not(.kicker){max-width:48ch;margin-bottom:1rem}
.offer-copy .btn{margin-top:.8rem}
.receipt{
  background:#fff;border:3px solid var(--pink);
  padding:1.6rem 1.5rem 1.2rem;transform:rotate(1.6deg);position:relative;
  font-family:"Courier New",monospace;
  box-shadow:8px 10px 0 rgba(228,72,124,.18);
  clip-path:polygon(0 0,4% 2%,8% 0,12% 2%,16% 0,20% 2%,24% 0,28% 2%,32% 0,36% 2%,40% 0,44% 2%,48% 0,52% 2%,56% 0,60% 2%,64% 0,68% 2%,72% 0,76% 2%,80% 0,84% 2%,88% 0,92% 2%,96% 0,100% 2%,100% 98%,96% 100%,92% 98%,88% 100%,84% 98%,80% 100%,76% 98%,72% 100%,68% 98%,64% 100%,60% 98%,56% 100%,52% 98%,48% 100%,44% 98%,40% 100%,36% 98%,32% 100%,28% 98%,24% 100%,20% 98%,16% 100%,12% 98%,8% 100%,4% 98%,0 100%);
}
.rc-head{font-weight:700;text-align:center;letter-spacing:.12em;font-size:1rem;border-bottom:2px dashed rgba(228,72,124,.4);padding-bottom:.7rem}
.rc-sub{text-align:center;font-size:.78rem;opacity:.65;padding:.5rem 0 .8rem;border-bottom:2px dashed rgba(228,72,124,.4)}
.receipt ul{list-style:none;padding:.8rem 0;border-bottom:2px dashed rgba(228,72,124,.4);display:grid;gap:.55rem}
.receipt li{display:flex;justify-content:space-between;gap:1rem;font-size:.92rem}
.receipt li b{color:var(--teal)}
.rc-total{font-weight:700;padding:.8rem 0 .3rem;font-size:.95rem;letter-spacing:.04em}
.rc-bar{font-size:1.5rem;letter-spacing:.06em;line-height:1;opacity:.85;text-align:center;user-select:none}
/* the APPROVED stamp lands after the receipt prints */
.rc-stamp{
  position:absolute;right:-14px;bottom:34px;z-index:3;
  font-family:var(--disp);font-weight:800;font-size:1.05rem;letter-spacing:.14em;text-transform:uppercase;
  color:#B3232E;border:4px double #B3232E;border-radius:10px;padding:.35em .8em;
  transform:rotate(-14deg);background:rgba(255,255,255,.55);
  opacity:0;will-change:transform;
  -webkit-mask-image:radial-gradient(circle at 30% 40%,black 92%,transparent 96%);
  mask-image:radial-gradient(circle at 30% 40%,black 92%,transparent 96%);
}
.rc-stamp.on{opacity:1}
/* the printer shakes the paper slightly while it feeds */
@keyframes rcjit{0%,100%{transform:rotate(1.6deg) translateY(0)}50%{transform:rotate(1.6deg) translateY(1.6px)}}
.js .receipt.printing{animation:rcjit .12s linear 10}
@media (prefers-reduced-motion:reduce){.js .receipt.printing{animation:none}}
/* prints on scroll */
.js .receipt{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease) .15s}
.js .receipt.printed{clip-path:polygon(0 0,4% 2%,8% 0,12% 2%,16% 0,20% 2%,24% 0,28% 2%,32% 0,36% 2%,40% 0,44% 2%,48% 0,52% 2%,56% 0,60% 2%,64% 0,68% 2%,72% 0,76% 2%,80% 0,84% 2%,88% 0,92% 2%,96% 0,100% 2%,100% 98%,96% 100%,92% 98%,88% 100%,84% 98%,80% 100%,76% 98%,72% 100%,68% 98%,64% 100%,60% 98%,56% 100%,52% 98%,48% 100%,44% 98%,40% 100%,36% 98%,32% 100%,28% 98%,24% 100%,20% 98%,16% 100%,12% 98%,8% 100%,4% 98%,0 100%)}
@media (prefers-reduced-motion:reduce){.js .receipt{clip-path:none !important;transition:none}}

/* ---------- who ---------- */
.who-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.2vw,1.8rem);margin-top:2.4rem}
.who-card{
  border:3px solid var(--pink);border-radius:20px;background:#fff;
  padding:1.6rem 1.4rem;box-shadow:6px 7px 0 rgba(228,72,124,.14);
  transition:transform .35s var(--spring),box-shadow .35s var(--spring);
}
.who-card:hover{transform:translateY(-6px) rotate(-.6deg);box-shadow:9px 12px 0 var(--wc)}
.who-card h3{
  font-family:var(--disp);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;
  font-size:1.3rem;margin-bottom:.6rem;color:var(--ink);
  border-bottom:4px solid var(--wc);display:inline-block;padding-bottom:.2rem;
}
.who-card p{font-size:.98rem;opacity:.9}

/* ---------- venues cloud ---------- */
.ve-cloud{
  list-style:none;display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2.2rem;
}
.ve-cloud li{
  font-family:var(--disp);font-weight:600;font-size:clamp(.8rem,1.4vw,1rem);
  letter-spacing:.04em;border:3px solid var(--pink);border-radius:999px;
  padding:.6em 1.15em;background:#fff;box-shadow:3px 4px 0 rgba(228,72,124,.16);
  transition:transform .3s var(--spring),box-shadow .3s var(--spring),background .25s;
}
.ve-cloud li:nth-child(3n+1){transform:rotate(-1.2deg)}
.ve-cloud li:nth-child(3n+2){transform:rotate(.9deg)}
.ve-cloud li:hover{transform:translateY(-4px) rotate(0);background:var(--teal);color:#fff;box-shadow:5px 7px 0 rgba(38,161,156,.4)}
.ve-note{margin-top:1.4rem;font-size:.92rem;opacity:.7;font-style:italic}

/* ---------- fair ---------- */
.fair{position:relative}
.fair::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--teal)}
.fair-in{display:grid;grid-template-columns:40fr 52fr;gap:clamp(2rem,5vw,4rem);align-items:center;color:#fff}
.fair-fig{margin:0;transform:rotate(-1.6deg)}
.fair-fig img{border-radius:20px;border:4px solid #fff;box-shadow:8px 10px 0 rgba(0,0,0,.18)}
.fair-copy .sec-h{color:#fff}
.fair-copy .kicker{color:#D9F4EF}
.fair-copy p:not(.kicker){max-width:48ch;color:#EAFBF8}
.fair-copy .hl{color:#fff;background-image:linear-gradient(transparent 58%,rgba(246,162,43,.75) 58%)}
.fair-hand{margin-top:1.2rem;color:#FFD98E;transform:rotate(-1.4deg)}

/* ---------- steps ---------- */
.hsteps-row{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.2vw,1.8rem);margin-top:2.4rem}
.hsteps-row li{position:relative;padding:1.4rem 1.3rem 1.5rem;border:3px solid var(--pink);border-radius:20px;background:#fff;box-shadow:6px 7px 0 rgba(228,72,124,.14)}
.hstep-n{
  font-family:var(--disp);font-weight:800;font-size:1rem;width:40px;height:40px;border-radius:50%;
  background:var(--pink);color:#fff;border:3px solid var(--pink);
  display:flex;align-items:center;justify-content:center;margin-bottom:.9rem;
}
.hsteps-row h3{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:1.1rem;margin-bottom:.45rem}
.hsteps-row p{font-size:.95rem;opacity:.9}
.hsteps-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.4rem}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .hhero-grid{grid-template-columns:1fr}
  .hh-vid{max-width:280px}
  .offer-grid{grid-template-columns:1fr}
  .receipt{max-width:420px;margin:0 auto}
  .who-grid{grid-template-columns:1fr}
  .fair-in{grid-template-columns:1fr}
  .fair-fig{max-width:430px}
  .hsteps-row{grid-template-columns:1fr}
}
