/* ===========================================================
   La Bottega degli Antichi Sapori — Senigallia
   Stile: bottega artigianale, carta ruvida, inchiostro caldo.
   =========================================================== */

:root{
  --carta: #f2e8d5;
  --carta-scura: #e8dabc;
  --inchiostro: #2c2214;
  --inchiostro-soft: rgba(44,34,20,.68);
  --inchiostro-mute: rgba(44,34,20,.45);
  --terracotta: #a4402a;
  --terracotta-scuro: #7e2f1f;
  --oliva: #5b6a3c;
  --oliva-scuro: #414c2b;
  --senape: #c68a2e;
  --linea: rgba(44,34,20,.18);
  --ombra: 0 18px 40px -20px rgba(44,34,20,.45);
  --font-titolo: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --font-testo: 'Work Sans', 'Helvetica Neue', Arial, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--carta);
  color:var(--inchiostro);
  font-family:var(--font-testo);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-titolo);margin:0;font-weight:600;color:var(--inchiostro);}
p{margin:0;line-height:1.6;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}

/* -------- texture carta -------- */
.texture-carta{
  position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;mix-blend-mode:multiply;
}

.section-inner{max-width:1120px;margin:0 auto;padding:0 24px;position:relative;z-index:1;}

/* -------- header -------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;
  background:rgba(242,232,213,.9);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--linea);
  transition:padding .3s ease;
}
.site-header__brand{display:flex;align-items:center;gap:10px;font-family:var(--font-titolo);font-size:20px;font-weight:700;color:var(--terracotta-scuro);}
.site-header__brand .mark{width:34px;height:34px;flex:none;}
.site-header__nav{display:flex;align-items:center;gap:28px;font-size:15px;font-weight:600;letter-spacing:.02em;}
.site-header__nav a{padding:6px 2px;border-bottom:2px solid transparent;transition:border-color .2s ease,color .2s ease;}
.site-header__nav a:hover,.site-header__nav a[aria-current]{border-color:var(--terracotta);color:var(--terracotta-scuro);}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 22px;border-radius:999px;font-weight:700;font-size:15px;
  border:2px solid var(--terracotta);
  transition:transform .25s ease,background .25s ease,color .25s ease;
}
.btn-solid{background:var(--terracotta);color:var(--carta);}
.btn-solid:hover{transform:translateY(-2px);background:var(--terracotta-scuro);}
.btn-outline{background:transparent;color:var(--terracotta-scuro);}
.btn-outline:hover{transform:translateY(-2px);background:var(--terracotta);color:var(--carta);}
.btn-sm{padding:9px 16px;font-size:13px;}
.menu-toggle{display:none;background:none;border:none;font-family:var(--font-testo);font-weight:700;font-size:15px;color:var(--inchiostro);cursor:pointer;align-items:center;gap:10px;}
.menu-toggle__icon{width:22px;height:2px;background:var(--inchiostro);position:relative;}
.menu-toggle__icon::before,.menu-toggle__icon::after{content:"";position:absolute;left:0;width:22px;height:2px;background:var(--inchiostro);transition:transform .25s ease;}
.menu-toggle__icon::before{top:-7px;}
.menu-toggle__icon::after{top:7px;}

/* -------- hero -------- */
.hero{
  position:relative;min-height:100dvh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:140px 24px 80px;overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 15%, rgba(198,138,46,.28), transparent 55%),
    radial-gradient(ellipse at 85% 85%, rgba(91,106,60,.22), transparent 50%),
    var(--carta);
}
.hero__eyebrow{
  font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--oliva-scuro);
  font-weight:700;margin-bottom:22px;opacity:0;transform:translateY(14px);
  animation:riseIn .8s .1s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero h1{
  font-size:clamp(2.6rem,7vw,5.2rem);line-height:1.02;letter-spacing:-.01em;
  color:var(--terracotta-scuro);
  opacity:0;transform:translateY(22px);
  animation:riseIn .9s .28s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero h1 em{font-style:italic;color:var(--oliva-scuro);}
.hero__sub{
  margin-top:22px;max-width:560px;font-size:18px;color:var(--inchiostro-soft);
  opacity:0;transform:translateY(18px);
  animation:riseIn .9s .46s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero__cta{
  margin-top:38px;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;
  opacity:0;transform:translateY(16px);
  animation:riseIn .9s .62s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero__line{
  margin-top:56px;width:min(560px,80vw);height:36px;
  opacity:0;animation:fadeIn 1s .9s ease forwards;
}
@keyframes riseIn{to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{to{opacity:1;}}
.hero__scroll{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--inchiostro-mute);
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.hero__scroll::after{content:"";width:1px;height:34px;background:linear-gradient(var(--inchiostro-mute),transparent);animation:scrollLine 2s ease-in-out infinite;}
@keyframes scrollLine{0%,100%{transform:scaleY(.4);opacity:.4;}50%{transform:scaleY(1);opacity:1;}}

/* -------- divisori -------- */
.divider{display:flex;justify-content:center;padding:0 0 8px;}
.divider svg{width:120px;height:24px;}

/* -------- sezioni generiche -------- */
.section{padding:110px 0;position:relative;}
.section--scuro{background:var(--inchiostro);color:var(--carta);}
.section--scuro h2,.section--scuro h3{color:var(--carta);}
.section--scuro p{color:rgba(242,232,213,.72);}
.section--oliva{background:var(--oliva-scuro);color:var(--carta);}
.section--oliva h2{color:var(--carta);}
.section--oliva p{color:rgba(242,232,213,.78);}
.section-head{max-width:640px;margin:0 auto 56px;text-align:center;}
.section-head .eyebrow{
  display:block;font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--terracotta);font-weight:700;margin-bottom:16px;
}
.section--scuro .eyebrow,.section--oliva .eyebrow{color:var(--senape);}
.section-head h2{font-size:clamp(1.9rem,4vw,2.8rem);}

[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
[data-reveal].is-visible{opacity:1;transform:translateY(0);}

/* -------- storia -------- */
.storia{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;}
.storia__testo p{margin-bottom:18px;font-size:17px;}
.storia__firma{margin-top:26px;font-family:var(--font-titolo);font-style:italic;font-size:20px;color:var(--terracotta-scuro);}
.storia__illustrazione{display:flex;align-items:center;justify-content:center;}
.storia__illustrazione svg{width:100%;max-width:340px;height:auto;}
.storia__badge{
  margin-top:28px;display:inline-flex;align-items:center;gap:12px;
  padding:12px 20px;border:1px solid var(--linea);border-radius:999px;font-size:14px;font-weight:600;
  background:rgba(255,255,255,.35);
}

/* -------- specialita / cards -------- */
.grid-specialita{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.card-spec{
  background:rgba(255,255,255,.4);border:1px solid var(--linea);border-radius:22px;
  padding:34px 28px;transition:transform .35s ease,box-shadow .35s ease,background .35s ease;
}
.card-spec:hover{transform:translateY(-8px);box-shadow:var(--ombra);background:rgba(255,255,255,.65);}
.card-spec .icon-wrap{width:58px;height:58px;margin-bottom:20px;}
.card-spec .icon-wrap svg{width:100%;height:100%;}
.card-spec h3{font-size:21px;margin-bottom:10px;}
.card-spec p{font-size:15px;color:var(--inchiostro-soft);}

/* -------- prodotti (categorie) -------- */
.grid-prodotti{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.card-prodotto{
  position:relative;border-radius:20px;overflow:hidden;
  background:var(--carta-scura);border:1px solid var(--linea);
  padding:30px 24px 26px;min-height:210px;display:flex;flex-direction:column;justify-content:flex-end;
  transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.card-prodotto:hover{transform:translateY(-6px) rotate(-.4deg);}
.card-prodotto .decor{position:absolute;top:-10px;right:-10px;width:120px;height:120px;opacity:.16;}
.card-prodotto h3{font-size:20px;margin-bottom:6px;position:relative;}
.card-prodotto p{font-size:14px;color:var(--inchiostro-soft);position:relative;}
.card-prodotto__tag{
  position:absolute;top:18px;left:20px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--terracotta-scuro);font-weight:700;
}
.prodotti-cta{text-align:center;margin-top:52px;}

/* -------- recensione -------- */
.recensione{max-width:760px;margin:0 auto;text-align:center;}
.recensione blockquote{
  font-family:var(--font-titolo);font-style:italic;font-size:clamp(1.5rem,3vw,2.1rem);
  color:var(--carta);line-height:1.4;margin:0 0 24px;
}
.recensione__stelle{display:flex;justify-content:center;gap:6px;margin-bottom:26px;}
.recensione__stelle svg{width:22px;height:22px;fill:var(--senape);}
.recensione__fonte{font-size:14px;letter-spacing:.05em;color:rgba(242,232,213,.6);text-transform:uppercase;}

/* -------- dove siamo -------- */
.dove{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:stretch;}
.dove__info{display:flex;flex-direction:column;gap:26px;}
.dove__riga{display:flex;gap:16px;align-items:flex-start;}
.dove__riga svg{width:24px;height:24px;flex:none;margin-top:2px;color:var(--terracotta-scuro);}
.dove__riga h4{font-size:15px;text-transform:uppercase;letter-spacing:.14em;color:var(--inchiostro-mute);margin-bottom:4px;font-family:var(--font-testo);font-weight:700;}
.dove__riga p{font-size:17px;}
.dove__mappa{border-radius:22px;overflow:hidden;border:1px solid var(--linea);min-height:340px;filter:sepia(.18) saturate(.85);}
.dove__mappa iframe{width:100%;height:100%;min-height:340px;border:0;display:block;}

/* -------- contatti -------- */
.contatti{text-align:center;}
.contatti__azioni{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:38px;}

/* -------- footer -------- */
.site-footer{background:var(--inchiostro);color:rgba(242,232,213,.65);padding:56px 0 28px;}
.site-footer__top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:32px;padding-bottom:34px;border-bottom:1px solid rgba(242,232,213,.14);}
.site-footer__brand{font-family:var(--font-titolo);font-size:22px;color:var(--carta);}
.site-footer__nav{display:flex;gap:22px;flex-wrap:wrap;font-size:14px;}
.site-footer__nav a:hover{color:var(--senape);}
.site-footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:22px;font-size:13px;}
.credit a{color:var(--senape);font-weight:600;}

/* -------- nav mobile -------- */
@media (max-width:880px){
  .site-header__nav{
    position:fixed;top:0;right:0;height:100dvh;width:min(320px,85vw);
    background:var(--carta);flex-direction:column;align-items:flex-start;
    padding:100px 28px 40px;gap:22px;box-shadow:-20px 0 40px rgba(0,0,0,.15);
    transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.7,.2,1);
  }
  body.nav-open .site-header__nav{transform:translateX(0);}
  .menu-toggle{display:inline-flex;}
  .storia,.dove{grid-template-columns:1fr;}
  .grid-specialita,.grid-prodotti{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .grid-specialita,.grid-prodotti{grid-template-columns:1fr;}
  .section{padding:80px 0;}
  .site-footer__top,.site-footer__bottom{flex-direction:column;}
}

/* -------- scroll progress -------- */
.scroll-progress{position:fixed;top:0;left:0;height:3px;background:var(--terracotta);z-index:60;width:0;transition:width .1s linear;}
