/* =========================================================
   Cera d'Api Fălticeni — design system
   Palette: cera/miele/legno d'alveare
   Display: Fraunces · Body: Archivo · Dati: JetBrains Mono
   ========================================================= */

:root{
  --ink:        #2B1C10;
  --ink-soft:   #5A4630;
  --honey:      #B96F1B;
  --honey-deep: #8F5313;
  --wax:        #E7A63C;
  --wax-pale:   #F3CD86;
  --cream:      #FBF3E3;
  --cream-deep: #F2E3C4;
  --paper:      #FFFDF8;
  --comb:       #221708;
  --comb-soft:  #34260F;
  --wine:       #7C3648;
  --wine-deep:  #5C2635;
  --line:       rgba(43,28,16,.14);
  --line-soft:  rgba(251,243,227,.16);
  --shadow:     0 18px 40px -20px rgba(34,23,8,.45);

  --font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --font-body: "Archivo", "Segoe UI", Helvetica, Arial, sans-serif;
  --font-data: "JetBrains Mono", "Consolas", monospace;

  --container: 1180px;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* cinematic cross-fade between page navigations (supporting browsers only) */
@view-transition{ navigation:auto; }
::view-transition-old(root), ::view-transition-new(root){
  animation-duration:.5s;
  animation-timing-function:cubic-bezier(.4,0,.2,1);
}

/* fade in from black on every page load, like a film open */
html::after{
  content:"";
  position:fixed; inset:0;
  z-index:200;
  background:var(--comb);
  pointer-events:none;
  animation:film-open 1.15s ease forwards;
}
@keyframes film-open{ 0%{ opacity:1; } 55%{ opacity:1; } 100%{ opacity:0; } }
@media (prefers-reduced-motion: reduce){ html::after{ display:none; } }

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; font-family:var(--font-display); font-weight:600; color:var(--ink); }
p{ margin:0; }

.wrap{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:28px;
}

:focus-visible{
  outline:3px solid var(--honey);
  outline-offset:3px;
  border-radius:4px;
}

.eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-data);
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--honey-deep);
  font-weight:500;
}
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--honey-deep);
  display:inline-block;
}
.on-dark .eyebrow{ color:var(--wax); }
.on-dark .eyebrow::before{ background:var(--wax); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 26px;
  border-radius:999px;
  font-family:var(--font-body);
  font-weight:600;
  font-size:15px;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{
  background:var(--honey);
  color:var(--paper);
  box-shadow:0 12px 24px -10px rgba(185,111,27,.55);
}
.btn-primary:hover{ background:var(--honey-deep); }
.btn-ghost{
  background:transparent;
  border-color:var(--ink);
  color:var(--ink);
}
.btn-ghost:hover{ background:var(--ink); color:var(--cream); }
.btn-ghost.on-dark{ border-color:var(--line-soft); color:var(--cream); }
.btn-ghost.on-dark:hover{ background:var(--cream); color:var(--comb); }
.btn-sm{ padding:9px 16px; font-size:13px; }
.btn svg{ width:16px; height:16px; flex:none; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:80;
  background:rgba(251,243,227,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:84px;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{ width:40px; height:40px; flex:none; }
.brand-name{ font-family:var(--font-display); font-size:20px; font-weight:600; line-height:1.1; }
.brand-loc{
  display:block;
  font-family:var(--font-data);
  font-size:10.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-top:2px;
}

.main-nav{ display:flex; align-items:center; gap:34px; }
.main-nav a{
  font-size:14.5px; font-weight:600; color:var(--ink-soft);
  position:relative; padding-block:4px;
}
.main-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
  background:var(--honey); transform:scaleX(0); transform-origin:left;
  transition:transform .2s ease;
}
.main-nav a:hover, .main-nav a.active{ color:var(--ink); }
.main-nav a:hover::after, .main-nav a.active::after{ transform:scaleX(1); }

.header-actions{ display:flex; align-items:center; gap:14px; }

.lang-switch{
  display:flex;
  align-items:center;
  gap:5px;
  font-family:var(--font-data);
  font-size:12px;
  letter-spacing:.04em;
  color:var(--ink-soft);
  margin-right:4px;
}
.lang-switch a{
  color:var(--ink-soft);
  padding:2px 3px;
  font-weight:600;
}
.lang-switch a:hover{ color:var(--ink); }
.lang-switch a.active{
  color:var(--honey-deep);
  pointer-events:none;
}
.lang-switch .sep{ color:var(--line); }
@media (max-width:520px){
  .lang-switch{ font-size:11px; gap:3px; margin-right:0; }
}
.nav-toggle{
  display:none;
  width:44px; height:44px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--paper);
  align-items:center; justify-content:center;
  cursor:pointer;
}
.nav-toggle svg{ width:20px; height:20px; }

@media (max-width:880px){
  .main-nav{
    position:fixed; inset:84px 0 0 0;
    background:var(--cream);
    flex-direction:column;
    align-items:flex-start;
    padding:28px;
    gap:22px;
    transform:translateX(100%);
    transition:transform .28s ease;
    overflow-y:auto;
  }
  .main-nav.open{ transform:translateX(0); }
  .main-nav a{ font-size:20px; }
  .nav-toggle{ display:flex; }
  .header-actions .btn-primary span.long{ display:none; }
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 78% 18%, rgba(231,166,60,.35), transparent 55%),
    linear-gradient(180deg, var(--comb) 0%, var(--comb-soft) 100%);
  color:var(--cream);
  padding-top:96px;
  padding-bottom:120px;
}
.hero-inner{
  position:relative;
  z-index:2;
  max-width:680px;
}
.hero-inner > *{ opacity:0; animation:cinematic-in .9s cubic-bezier(.16,.8,.24,1) forwards; }
.hero-inner > *:nth-child(1){ animation-delay:.05s; }
.hero-inner > *:nth-child(2){ animation-delay:.2s; }
.hero-inner > *:nth-child(3){ animation-delay:.36s; }
.hero-inner > *:nth-child(4){ animation-delay:.52s; }
@keyframes cinematic-in{ from{ opacity:0; transform:translateY(28px); } to{ opacity:1; transform:translateY(0); } }
.hero h1{
  color:var(--paper);
  font-size:clamp(40px, 6vw, 68px);
  line-height:1.03;
  letter-spacing:-.01em;
  margin-top:18px;
}
.hero h1 em{
  font-style:italic;
  color:var(--wax);
}
.hero p.lede{
  margin-top:22px;
  max-width:520px;
  font-size:18px;
  color:rgba(251,243,227,.82);
}
.hero-cta{
  margin-top:38px;
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}
.hero-comb-bg{
  position:absolute; inset:0;
  opacity:.14;
  z-index:1;
  pointer-events:none;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="88" height="76" viewBox="0 0 88 76"><g fill="none" stroke="%23E7A63C" stroke-width="1"><path d="M22 0 L66 0 L88 38 L66 76 L22 76 L0 38 Z"/></g></svg>');
  background-size:88px 76px;
  animation:honeycomb-pan 46s linear infinite;
}
.hero-glow{
  position:absolute;
  width:640px; height:640px;
  right:-160px; top:-180px;
  background:radial-gradient(circle, rgba(231,166,60,.35), transparent 68%);
  z-index:0;
  pointer-events:none;
  animation:glow-drift 19s ease-in-out infinite alternate;
}

/* hero "video": a slow cross-fading, slowly-zooming photo reel standing in for footage */
.hero-reel{ position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.reel-frame{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0;
  filter:blur(1px) saturate(1.05);
  animation:reel-cycle 32s ease-in-out infinite, reel-zoom 32s ease-in-out infinite;
}
.hero-reel .reel-frame:nth-child(1){ animation-delay:0s, 0s; }
.hero-reel .reel-frame:nth-child(2){ animation-delay:8s, 8s; }
.hero-reel .reel-frame:nth-child(3){ animation-delay:16s, 16s; }
.hero-reel .reel-frame:nth-child(4){ animation-delay:24s, 24s; }
.hero-reel::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(34,23,8,.55) 0%, rgba(34,23,8,.74) 55%, rgba(34,23,8,.9) 100%);
}
@keyframes reel-cycle{
  0%{ opacity:0; }
  4%{ opacity:.62; }
  22%{ opacity:.62; }
  28%{ opacity:0; }
  100%{ opacity:0; }
}
@keyframes reel-zoom{ from{ transform:scale(1); } to{ transform:scale(1.14); } }
@media (max-width:640px){ .hero-reel{ display:none; } }
@media (prefers-reduced-motion: reduce){
  .reel-frame{ animation:none !important; opacity:0; }
  .hero-reel .reel-frame:nth-child(1){ opacity:.5; }
}

@keyframes honeycomb-pan{ from{ background-position:0 0; } to{ background-position:88px 76px; } }
@keyframes glow-drift{
  from{ transform:translate(0,0) scale(1); }
  to{ transform:translate(-34px,26px) scale(1.16); }
}

/* cinematic vignette + cursor-reactive spotlight */
.hero::after{
  content:"";
  position:absolute; inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(60% 55% at var(--mx,50%) var(--my,18%), rgba(231,166,60,.22), transparent 60%),
    radial-gradient(140% 90% at 50% 108%, transparent 55%, rgba(0,0,0,.55) 100%),
    radial-gradient(140% 90% at 50% -12%, transparent 60%, rgba(0,0,0,.32) 100%);
}

/* ---------- sitewide flying bee swarm ---------- */
.bee-swarm{
  position:fixed; inset:0;
  z-index:75;
  pointer-events:none;
  overflow:hidden;
}
.bee-unit{ position:absolute; top:0; left:0; opacity:0; will-change:left, top, transform, opacity; }
.bee-icon-svg{ position:absolute; top:0; right:0; display:block; }
.bee-trail-svg{ position:absolute; bottom:0; left:0; display:block; overflow:visible; }
.bee-icon-svg .wing{ transform-origin:50% 50%; animation:bee-wing .13s ease-in-out infinite alternate; }
.trail-path{ fill:none; stroke:var(--honey); stroke-width:2.6; stroke-linecap:round; stroke-dasharray:5 7; opacity:0; }
@keyframes bee-wing{ from{ transform:scaleX(1); } to{ transform:scaleX(.5); } }

.bee-1{ width:64px; height:56px; animation:bee-fly-1 34s ease-in-out infinite; }
.bee-1 .bee-icon-svg{ width:32px; height:32px; }
.bee-1 .bee-trail-svg{ width:46px; height:42px; }
.bee-1 .trail-path{ animation:bee-trail-1 34s ease-in-out infinite; }

.bee-2{ width:48px; height:42px; animation:bee-fly-2 41s ease-in-out infinite; animation-delay:-12s; }
.bee-2 .bee-icon-svg{ width:24px; height:24px; }
.bee-2 .bee-trail-svg{ width:36px; height:32px; }
.bee-2 .trail-path{ animation:bee-trail-2 41s ease-in-out infinite; animation-delay:-12s; }

.bee-3{ width:42px; height:36px; animation:bee-fly-3 29s ease-in-out infinite; animation-delay:-6s; }
.bee-3 .bee-icon-svg{ width:21px; height:21px; }
.bee-3 .bee-trail-svg{ width:30px; height:27px; }
.bee-3 .trail-path{ animation:bee-trail-3 29s ease-in-out infinite; animation-delay:-6s; }

.bee-4{ width:56px; height:49px; animation:bee-fly-4 46s ease-in-out infinite; animation-delay:-24s; }
.bee-4 .bee-icon-svg{ width:28px; height:28px; }
.bee-4 .bee-trail-svg{ width:40px; height:36px; }
.bee-4 .trail-path{ animation:bee-trail-4 46s ease-in-out infinite; animation-delay:-24s; }

@keyframes bee-fly-1{
  0%    { opacity:0;   left:-6vw;  top:74vh; transform:rotate(6deg) scale(.9); }
  6%    { opacity:.95; }
  24%   { left:20vw;  top:12vh; transform:rotate(-10deg) scale(1); }
  42%   { left:48vw;  top:58vh; transform:rotate(12deg) scale(1.05); }
  60%   { left:72vw;  top:18vh; transform:rotate(-8deg) scale(1); }
  76%   { left:90vw;  top:64vh; transform:rotate(6deg) scale(.95); opacity:.95; }
  94%   { opacity:0;   left:106vw; top:40vh; transform:rotate(0deg) scale(.9); }
  100%  { opacity:0;   left:106vw; top:40vh; }
}
@keyframes bee-trail-1{
  0%,8%   { opacity:0; stroke-dashoffset:0; }
  14%     { opacity:.85; stroke-dashoffset:30; }
  26%     { opacity:.85; stroke-dashoffset:0; }
  34%,100%{ opacity:0; }
}
@keyframes bee-fly-2{
  0%    { opacity:0;   left:104vw; top:16vh; transform:rotate(-8deg) scale(.85); }
  7%    { opacity:.9; }
  26%   { left:66vw;  top:60vh; transform:rotate(10deg) scale(1); }
  46%   { left:40vw;  top:10vh; transform:rotate(-10deg) scale(1.05); }
  66%   { left:12vw;  top:50vh; transform:rotate(8deg) scale(1); opacity:.9; }
  84%   { opacity:0;   left:-8vw; top:70vh; transform:rotate(0deg) scale(.85); }
  100%  { opacity:0;   left:-8vw; top:70vh; }
}
@keyframes bee-trail-2{
  0%,40%  { opacity:0; stroke-dashoffset:0; }
  48%     { opacity:.8; stroke-dashoffset:26; }
  58%     { opacity:.8; stroke-dashoffset:0; }
  66%,100%{ opacity:0; }
}
@keyframes bee-fly-3{
  0%    { opacity:0;   left:14vw; top:100vh; transform:rotate(4deg) scale(.8); }
  8%    { opacity:.9; }
  30%   { left:44vw;  top:64vh; transform:rotate(-12deg) scale(.95); }
  52%   { left:70vw;  top:92vh; transform:rotate(10deg) scale(1); }
  74%   { left:92vw;  top:56vh; transform:rotate(-6deg) scale(.9); opacity:.9; }
  90%   { opacity:0;   left:104vw; top:36vh; transform:rotate(0deg) scale(.8); }
  100%  { opacity:0;   left:104vw; top:36vh; }
}
@keyframes bee-trail-3{
  0%,50%  { opacity:0; stroke-dashoffset:0; }
  58%     { opacity:.8; stroke-dashoffset:24; }
  68%     { opacity:.8; stroke-dashoffset:0; }
  76%,100%{ opacity:0; }
}
@keyframes bee-fly-4{
  0%    { opacity:0;   left:50vw; top:-8vh; transform:rotate(0deg) scale(.9); }
  6%    { opacity:.9; }
  26%   { left:18vw;  top:34vh; transform:rotate(-10deg) scale(1); }
  48%   { left:56vw;  top:78vh; transform:rotate(8deg) scale(1.05); }
  70%   { left:86vw;  top:30vh; transform:rotate(-8deg) scale(1); opacity:.9; }
  88%   { opacity:0;   left:60vw; top:-8vh; transform:rotate(0deg) scale(.9); }
  100%  { opacity:0;   left:60vw; top:-8vh; }
}
@keyframes bee-trail-4{
  0%,20%  { opacity:0; stroke-dashoffset:0; }
  28%     { opacity:.8; stroke-dashoffset:28; }
  40%     { opacity:.8; stroke-dashoffset:0; }
  48%,100%{ opacity:0; }
}
@media (prefers-reduced-motion: reduce){ .bee-swarm{ display:none; } }
@media (max-width:640px){ .bee-swarm{ display:none; } }

/* ---------- sections ---------- */
section{ padding-block:96px; }
.section-head{ max-width:640px; }
.section-head h2{
  margin-top:16px;
  font-size:clamp(28px,3.6vw,42px);
  line-height:1.1;
}

.on-dark{ background:var(--comb); color:var(--cream); }
.on-dark h2, .on-dark h3, .on-dark h4{ color:var(--paper); }
.on-dark p{ color:rgba(251,243,227,.78); }

/* about / chi siamo */
.about{ display:grid; grid-template-columns:1.05fr .95fr; gap:72px; align-items:center; }
.about-copy p{ margin-top:20px; font-size:16.5px; color:var(--ink-soft); max-width:52ch; }
.about-quote{
  margin-top:30px;
  padding-left:22px;
  border-left:3px solid var(--honey);
  font-family:var(--font-display);
  font-style:italic;
  font-size:21px;
  color:var(--ink);
  max-width:46ch;
}
.about-media{ position:relative; }
.about-media img{
  border-radius:6px;
  box-shadow:var(--shadow);
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  animation:ken-burns 24s ease-in-out infinite alternate;
}
@keyframes ken-burns{ from{ transform:scale(1); } to{ transform:scale(1.09); } }
.about-media .tag{ position:absolute; bottom:-22px; left:-22px; }

@media (max-width:900px){
  .about{ grid-template-columns:1fr; gap:44px; }
  .about-media{ order:-1; }
  .about-media .tag{ display:none; }
}

/* feature row */
.features{
  margin-top:64px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
}
.feature{
  padding:26px 22px 0;
  border-right:1px solid var(--line);
}
.feature:last-child{ border-right:none; }
.feature svg{ width:26px; height:26px; color:var(--honey); }
.feature h4{ margin-top:16px; font-size:16px; }
.feature p{ margin-top:8px; font-size:14px; color:var(--ink-soft); }
@media (max-width:820px){
  .features{ grid-template-columns:1fr 1fr; }
  .feature{ border-right:none; border-bottom:1px solid var(--line); padding-bottom:22px; }
}
@media (max-width:520px){ .features{ grid-template-columns:1fr; } }

/* category teaser grid */
.cat-grid{
  margin-top:52px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.cat-card{
  position:relative;
  border-radius:8px;
  overflow:hidden;
  aspect-ratio:3/4;
  isolation:isolate;
}
.cat-card img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.cat-card::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(34,23,8,0) 35%, rgba(34,23,8,.88) 100%);
  z-index:1;
}
.cat-card:hover img{ transform:scale(1.06); }
.cat-card-label{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:20px;
  color:var(--paper);
}
.cat-card-label .k{ font-family:var(--font-data); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--wax-pale); }
.cat-card-label h4{ margin-top:6px; font-size:19px; color:var(--paper); }
@media (max-width:920px){ .cat-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .cat-grid{ grid-template-columns:1fr; } }

/* wholesale / mold band */
.band{
  position:relative;
  overflow:hidden;
  padding-block:96px;
}
.band-inner{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:40px;
}
.band .section-head{ max-width:560px; }
.honeycomb-bg{
  position:absolute; inset:0;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="88" height="76" viewBox="0 0 88 76"><g fill="none" stroke="%23E7A63C" stroke-opacity="0.16" stroke-width="1"><path d="M22 0 L66 0 L88 38 L66 76 L22 76 L0 38 Z"/></g></svg>');
  background-size:88px 76px;
  opacity:.5;
  animation:honeycomb-pan 46s linear infinite;
}
@media (max-width:760px){
  .band-inner{ grid-template-columns:1fr; }
}

/* trust stats */
.stats-band{
  position:relative;
  overflow:hidden;
  padding-block:56px;
}
.stats-row{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px;
  text-align:center;
}
.stat-num{
  display:block;
  font-family:var(--font-display);
  font-size:40px;
  font-weight:700;
  color:var(--wax);
}
.stat-label{
  display:block;
  margin-top:8px;
  font-size:14.5px;
  color:rgba(251,243,227,.78);
}
@media (max-width:820px){
  .stats-row{ grid-template-columns:1fr 1fr; gap:36px 24px; }
}
@media (max-width:520px){
  .stats-row{ grid-template-columns:1fr; }
}

/* CTA strip */
.cta-strip{
  background:var(--wax);
  color:var(--comb);
}
.cta-strip .wrap{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding-block:52px;
  flex-wrap:wrap;
}
.cta-strip h3{ font-size:26px; color:var(--comb); }
.cta-strip p{ margin-top:6px; color:var(--comb-soft); }

/* ---------- footer ---------- */
.site-footer{ background:var(--comb); color:var(--cream); padding-top:72px; }
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:40px;
  padding-bottom:52px;
  border-bottom:1px solid var(--line-soft);
}
.footer-brand .brand-name{ color:var(--paper); }
.footer-brand p{ margin-top:16px; color:rgba(251,243,227,.68); font-size:14.5px; max-width:34ch; }
.footer-col h5{
  font-family:var(--font-data); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--wax); margin-bottom:16px; font-weight:500;
}
.footer-col li{ margin-bottom:10px; }
.footer-col a{ color:rgba(251,243,227,.82); font-size:14.5px; }
.footer-col a:hover{ color:var(--wax); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding-block:22px; flex-wrap:wrap; gap:10px;
  font-size:12.5px; color:rgba(251,243,227,.55);
}
.social-row{ display:flex; gap:10px; }
.social-row a{
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--line-soft);
  display:flex; align-items:center; justify-content:center;
}
.social-row a:hover{ background:var(--wax); border-color:var(--wax); color:var(--comb); }
.social-row svg{ width:17px; height:17px; }

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

/* ---------- floating whatsapp ---------- */
.fab-whatsapp{
  position:fixed; right:22px; bottom:22px; z-index:90;
  width:58px; height:58px; border-radius:50%;
  background:#28994c;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -10px rgba(0,0,0,.45);
  transition:transform .18s ease;
}
.fab-whatsapp:hover{ transform:scale(1.08); }
.fab-whatsapp svg{ width:28px; height:28px; fill:#fff; }

/* ---------- page hero (interne) ---------- */
.page-hero{
  background:var(--comb);
  color:var(--cream);
  padding-top:74px; padding-bottom:74px;
}
.page-hero h1{ color:var(--paper); font-size:clamp(34px,5vw,52px); margin-top:14px; }
.page-hero p{ margin-top:16px; max-width:56ch; color:rgba(251,243,227,.78); font-size:17px; }
.page-hero .wrap > *{ opacity:0; animation:cinematic-in .9s cubic-bezier(.16,.8,.24,1) forwards; }
.page-hero .wrap > *:nth-child(1){ animation-delay:.05s; }
.page-hero .wrap > *:nth-child(2){ animation-delay:.2s; }
.page-hero .wrap > *:nth-child(3){ animation-delay:.36s; }

/* ---------- notice banner ---------- */
.notice{
  display:flex;
  gap:16px;
  align-items:flex-start;
  background:var(--paper);
  border:1px solid var(--line);
  border-left:4px solid var(--honey);
  border-radius:6px;
  padding:20px 24px;
  margin-top:36px;
}
.notice svg{ width:22px; height:22px; flex:none; color:var(--honey); margin-top:2px; }
.notice p{ font-size:14.5px; color:var(--ink-soft); }
.notice strong{ color:var(--ink); }

/* ---------- filter tabs ---------- */
.filters{
  display:flex; flex-wrap:wrap; gap:10px;
  margin-top:40px;
}
.filter-btn{
  padding:10px 20px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--paper);
  font-size:13.5px; font-weight:600;
  color:var(--ink-soft);
  cursor:pointer;
  transition:all .18s ease;
}
.filter-btn:hover{ border-color:var(--honey); color:var(--ink); }
.filter-btn.active{ background:var(--ink); border-color:var(--ink); color:var(--cream); }

/* ---------- product grid ---------- */
.product-grid{
  margin-top:44px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:34px 28px;
}
@media (max-width:980px){ .product-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .product-grid{ grid-template-columns:1fr; } }

.product-card{
  position:relative;
  display:flex;
  flex-direction:column;
}
.product-photo{
  position:relative;
  border-radius:8px;
  overflow:hidden;
  aspect-ratio:4/5;
  background:var(--cream-deep);
}
.product-photo img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.product-card:hover .product-photo img{ transform:scale(1.045); }

.material-badge{
  position:absolute; top:14px; left:14px; z-index:2;
  display:flex; align-items:center; gap:7px;
  padding:6px 12px 6px 10px;
  border-radius:999px;
  background:rgba(255,253,248,.92);
  font-family:var(--font-data);
  font-size:11px; letter-spacing:.04em;
  color:var(--ink);
  box-shadow:0 6px 14px -8px rgba(0,0,0,.4);
}
.material-badge .dot{ width:8px; height:8px; border-radius:50%; background:var(--honey); }
.material-badge.parafina .dot{ background:var(--wine); }

/* the signature "cartellino" tag */
.tag{
  position:absolute;
  bottom:14px; right:-10px;
  z-index:3;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:5px;
  padding:10px 16px 10px 22px;
  transform:rotate(-3deg);
  box-shadow:0 14px 26px -14px rgba(34,23,8,.5);
  min-width:118px;
}
.tag::before{
  content:"";
  position:absolute; left:8px; top:50%; transform:translateY(-50%);
  width:7px; height:7px; border-radius:50%;
  background:var(--cream);
  border:1.5px solid var(--ink-soft);
}
.tag::after{
  content:"";
  position:absolute; left:11.5px; top:-13px;
  width:1px; height:16px;
  background:repeating-linear-gradient(180deg, var(--ink-soft) 0 3px, transparent 3px 6px);
  transform:rotate(18deg);
}
.tag .dims{
  display:block;
  font-family:var(--font-data);
  font-size:12px;
  color:var(--ink-soft);
  letter-spacing:.02em;
}
.tag .price{
  display:block;
  margin-top:2px;
  font-family:var(--font-display);
  font-weight:600;
  font-size:20px;
  color:var(--honey-deep);
  white-space:nowrap;
}

.product-body{ padding-top:20px; }
.product-body h3{ font-size:18.5px; line-height:1.3; }
.product-body .use{ margin-top:6px; font-size:13.5px; color:var(--ink-soft); }
.product-foot{
  margin-top:14px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.pp-note{ font-size:11.5px; font-style:italic; color:var(--ink-soft); opacity:.85; max-width:20ch; }
.order-link{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:700; color:var(--honey-deep);
  white-space:nowrap;
}
.order-link svg{ width:14px; height:14px; }
.order-link:hover{ color:var(--honey); }

/* ---------- mold cards (stampi) ---------- */
.mold-grid{
  margin-top:48px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
}
.mold-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr;
}
.mold-photo{ aspect-ratio:16/11; overflow:hidden; }
.mold-photo img{ width:100%; height:100%; object-fit:cover; }
.mold-body{ padding:26px 28px 30px; }
.mold-body h3{ font-size:21px; }
.mold-specs{
  display:flex; gap:22px; margin-top:16px; flex-wrap:wrap;
}
.mold-specs div{ font-size:13px; color:var(--ink-soft); }
.mold-specs b{ display:block; font-family:var(--font-display); font-size:19px; color:var(--ink); }
.mold-body p.desc{ margin-top:16px; color:var(--ink-soft); font-size:14.5px; }
.mold-price{
  margin-top:20px;
  display:flex; align-items:center; justify-content:space-between;
  gap:14px;
}
.mold-price .amount{ font-family:var(--font-display); font-size:26px; font-weight:600; color:var(--honey-deep); }
@media (max-width:760px){ .mold-grid{ grid-template-columns:1fr; } }

/* two-col text sections (custom mold / ingrosso) */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:start;
}
.split .col p{ margin-top:16px; color:var(--ink-soft); font-size:15.5px; max-width:50ch; }
.split .col ul{ margin-top:18px; display:grid; gap:10px; }
.split .col li{ display:flex; gap:10px; font-size:14.5px; color:var(--ink-soft); }
.split .col li svg{ width:16px; height:16px; color:var(--honey); flex:none; margin-top:3px; }
@media (max-width:820px){ .split{ grid-template-columns:1fr; gap:36px; } }

/* ---------- contact page ---------- */
.contact-grid{
  margin-top:52px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:20px;
}
.contact-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:10px;
  padding:32px;
}
.contact-card.whatsapp{
  background:var(--comb);
  color:var(--cream);
  border:none;
  display:flex; flex-direction:column; justify-content:space-between;
  grid-row:span 2;
}
.contact-card.whatsapp h3{ color:var(--paper); font-size:24px; }
.contact-card.whatsapp p{ color:rgba(251,243,227,.75); margin-top:10px; font-size:14.5px; }
.contact-card.whatsapp .num{
  margin-top:26px;
  font-family:var(--font-display);
  font-size:30px;
  color:var(--wax);
}
.contact-card h4{ font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); font-family:var(--font-data); font-weight:500; }
.contact-card .val{ margin-top:10px; font-family:var(--font-display); font-size:20px; }
.contact-card .icon-row{ display:flex; align-items:center; gap:14px; }
.contact-card .icon-circle{
  width:46px; height:46px; border-radius:50%;
  background:var(--cream-deep);
  display:flex; align-items:center; justify-content:center; flex:none;
}
.contact-card .icon-circle svg{ width:20px; height:20px; color:var(--honey-deep); }
.map-wrap{ margin-top:56px; border-radius:10px; overflow:hidden; border:1px solid var(--line); }
.map-wrap iframe{ width:100%; height:380px; border:0; display:block; filter:grayscale(.25) sepia(.12); }
@media (max-width:820px){
  .contact-grid{ grid-template-columns:1fr; }
  .contact-card.whatsapp{ grid-row:auto; }
}

/* ---------- scenic & color pass (sitewide) ---------- */

/* ambient background wash — subtle, sits behind all normal-flow content */
body{ position:relative; }
body::before{
  content:"";
  position:fixed; inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(680px 520px at 94% -6%, rgba(231,166,60,.22), transparent 60%),
    radial-gradient(620px 480px at -10% 55%, rgba(124,54,72,.13), transparent 62%),
    radial-gradient(560px 440px at 102% 96%, rgba(185,111,27,.16), transparent 60%),
    radial-gradient(420px 340px at 4% 2%, rgba(231,166,60,.14), transparent 60%);
}

/* signature gradient ribbon on key dark bands */
.hero, .page-hero, .site-footer{ position:relative; }
.hero::before, .page-hero::before, .site-footer::before{
  content:"";
  position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--wine), var(--honey), var(--wax), var(--honey), var(--wine));
  z-index:2;
}

/* buttons: richer gradient + glow */
.btn-primary{
  background:linear-gradient(135deg, var(--wax) 0%, var(--honey) 55%, var(--honey-deep) 100%);
  box-shadow:0 14px 30px -12px rgba(185,111,27,.6), 0 2px 0 rgba(255,255,255,.18) inset;
}
.btn-primary:hover{ background:linear-gradient(135deg, var(--honey) 0%, var(--honey-deep) 55%, var(--wine-deep) 100%); }

/* page-hero (interior pages): bring it to life like the home hero */
.page-hero{
  overflow:hidden;
  background:
    radial-gradient(ellipse at 82% 10%, rgba(231,166,60,.32), transparent 55%),
    radial-gradient(ellipse at 4% 96%, rgba(124,54,72,.3), transparent 55%),
    linear-gradient(180deg, var(--comb) 0%, var(--comb-soft) 100%);
}
.page-hero::after{
  content:"";
  position:absolute; inset:0;
  z-index:0;
  pointer-events:none;
  background-image:
    radial-gradient(55% 65% at var(--mx,50%) var(--my,25%), rgba(231,166,60,.2), transparent 60%),
    radial-gradient(140% 90% at 50% 108%, transparent 55%, rgba(0,0,0,.5) 100%),
    url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="88" height="76" viewBox="0 0 88 76"><g fill="none" stroke="%23E7A63C" stroke-opacity="0.35" stroke-width="1"><path d="M22 0 L66 0 L88 38 L66 76 L22 76 L0 38 Z"/></g></svg>');
  background-size:auto, auto, 88px 76px;
  animation:honeycomb-pan-3 46s linear infinite;
}
@keyframes honeycomb-pan-3{
  from{ background-position:0 0, 0 0, 0 0; }
  to{ background-position:0 0, 0 0, 88px 76px; }
}
.page-hero .wrap{ position:relative; z-index:1; }

/* CTA strip: gradient instead of flat */
.cta-strip{ background:linear-gradient(120deg, var(--wax) 0%, var(--wax) 40%, var(--honey) 100%); }

/* footer: ambient glow + honeycomb texture */
.site-footer{
  overflow:hidden;
  background:
    radial-gradient(560px 360px at 10% 0%, rgba(231,166,60,.16), transparent 60%),
    radial-gradient(480px 320px at 94% 100%, rgba(124,54,72,.2), transparent 60%),
    var(--comb);
}
.site-footer .wrap{ position:relative; z-index:1; }

/* stats band: warmer glow */
.stats-band{ background:radial-gradient(600px 360px at 90% 0%, rgba(231,166,60,.24), transparent 60%), var(--comb); }
.stat-num{ text-shadow:0 0 26px rgba(231,166,60,.4); }

/* material badges: tinted pill per category */
.material-badge{ background:linear-gradient(135deg, rgba(255,253,248,.97), rgba(243,205,134,.88)); }
.material-badge.parafina{ background:linear-gradient(135deg, rgba(255,253,248,.97), rgba(124,54,72,.18)); }

/* filter buttons: gradient active state */
.filter-btn.active{
  background:linear-gradient(135deg, var(--ink) 0%, var(--comb-soft) 100%);
  border-color:var(--ink);
  box-shadow:0 10px 22px -12px rgba(34,23,8,.55);
}

/* card hover: colored glow (filter:drop-shadow escapes overflow:hidden clipping) */
.product-card{ transition:filter .3s ease; }
.product-card:hover{ filter:drop-shadow(0 18px 32px rgba(185,111,27,.4)); }
.cat-card{ transition:filter .35s ease; }
.cat-card:hover{ filter:drop-shadow(0 20px 36px rgba(34,23,8,.42)); }
.mold-card{ transition:filter .3s ease, transform .3s ease; }
.mold-card:hover{ filter:drop-shadow(0 20px 36px rgba(185,111,27,.32)); transform:translateY(-3px); }
.contact-card{ transition:box-shadow .3s ease; }
.contact-card:hover{ box-shadow:0 20px 40px -20px rgba(185,111,27,.3); }

/* notice banner: soft warm tint */
.notice{ background:linear-gradient(135deg, var(--paper) 0%, var(--wax-pale) 160%); }

/* ---------- cinematic scroll reveal ---------- */
.reveal-pre{
  opacity:0;
  transform:translateY(32px) scale(.98);
  filter:blur(5px);
  transition:opacity 1.1s cubic-bezier(.16,.8,.24,1), transform 1.1s cubic-bezier(.16,.8,.24,1), filter .6s ease, box-shadow .3s ease;
  will-change:opacity, transform, filter;
}
.reveal-in{ opacity:1; transform:translateY(0) scale(1); filter:blur(0); }

/* rack focus: hovered card stays sharp, its neighbours soften — filmic depth of field */
@media (hover:hover) and (pointer:fine){
  .product-grid:hover .product-card:not(:hover),
  .cat-grid:hover .cat-card:not(:hover),
  .mold-grid:hover .mold-card:not(:hover){
    filter:blur(2.5px) brightness(.82);
    opacity:.8;
  }
}
/* soft stagger for repeating grid items */
.product-grid > .reveal-pre:nth-child(3n+2){ transition-delay:.1s; }
.product-grid > .reveal-pre:nth-child(3n+3){ transition-delay:.2s; }
.cat-grid > .reveal-pre:nth-child(4n+2){ transition-delay:.08s; }
.cat-grid > .reveal-pre:nth-child(4n+3){ transition-delay:.16s; }
.cat-grid > .reveal-pre:nth-child(4n+4){ transition-delay:.24s; }
.features > .reveal-pre:nth-child(4n+2){ transition-delay:.08s; }
.features > .reveal-pre:nth-child(4n+3){ transition-delay:.16s; }
.features > .reveal-pre:nth-child(4n+4){ transition-delay:.24s; }
.mold-grid > .reveal-pre:nth-child(2n+2){ transition-delay:.12s; }
.stats-row > .reveal-pre:nth-child(4n+2){ transition-delay:.08s; }
.stats-row > .reveal-pre:nth-child(4n+3){ transition-delay:.16s; }
.stats-row > .reveal-pre:nth-child(4n+4){ transition-delay:.24s; }

/* subtle sitewide film grain for a shot-on-film finish */
body::after{
  content:"";
  position:fixed; inset:0;
  z-index:60;
  pointer-events:none;
  opacity:.035;
  mix-blend-mode:overlay;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="140" height="140"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="2" stitchTiles="stitch"/></filter><rect width="100%25" height="100%25" filter="url(%23n)"/></svg>');
}
@media (prefers-reduced-motion: reduce){
  .reveal-pre{ opacity:1; transform:none; }
  .hero-inner > *, .page-hero .wrap > *{ opacity:1; animation:none; }
}

/* misc */
.divider{ height:1px; background:var(--line); }
.mt-0{ margin-top:0 !important; }
