/* ============================================================
   Viva Doce Sorvetes — identidade visual
   ============================================================ */
:root{
  --red:#C8102E;
  --red-600:#AB0F26;
  --red-700:#8E0C1F;
  --red-800:#6E0916;
  --maroon:#54080F;
  --cream:#FBEAC8;
  --cream-100:#FFF8EC;
  --cream-200:#F6E3BD;
  --cream-line:#E9CF9F;
  --ink:#3A130F;
  --ink-soft:#7A4438;
  --white:#ffffff;

  /* flavor accents */
  --f-trufa:#9C3B2E;
  --f-chocotella:#C8102E;
  --f-white:#E8B021;
  --f-cookies:#2B4C8C;
  --f-limao:#5BA12B;

  --shadow-sm:0 4px 14px rgba(84,8,15,.10);
  --shadow-md:0 14px 34px rgba(84,8,15,.16);
  --shadow-lg:0 30px 70px rgba(84,8,15,.22);

  --r-lg:28px;
  --r-md:18px;
  --r-sm:12px;

  --max:1200px;
  --pad-x:clamp(20px,5vw,64px);

  --font-display:"Fredoka","Nunito",sans-serif;
  --font-body:"Nunito",system-ui,sans-serif;
}

*{box-sizing:border-box;}

/* honeypot anti-robô — escondido de humanos, visível só para bots */
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none;}

/* proteção leve do conteúdo/imagens contra cópia casual */
img{ -webkit-user-drag:none; -khtml-user-drag:none; -moz-user-drag:none; user-drag:none; }
.prod-shot img,.band img,.map-figure img,.hero-logo,.foot-brand img{ -webkit-user-select:none; -moz-user-select:none; user-select:none; -webkit-touch-callout:none; }
html{scroll-behavior:smooth;scroll-padding-top:120px;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream-100);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;margin:0;line-height:1.04;letter-spacing:-.01em;}
p{margin:0;line-height:1.6;}

.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--pad-x);}
.section{padding-block:clamp(64px,9vw,128px);position:relative;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--font-display);font-weight:600;font-size:1.05rem;
  padding:.85em 1.6em;border-radius:999px;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  line-height:1;white-space:nowrap;
}
.btn:active{transform:translateY(1px) scale(.99);}
.btn-cream{background:var(--cream);color:var(--maroon);box-shadow:0 8px 0 #d8b988, var(--shadow-sm);}
.btn-cream:hover{transform:translateY(-2px);box-shadow:0 10px 0 #d8b988, var(--shadow-md);}
.btn-red{background:var(--red);color:#fff;box-shadow:0 8px 0 var(--red-700), var(--shadow-sm);}
.btn-red:hover{transform:translateY(-2px);box-shadow:0 10px 0 var(--red-700), var(--shadow-md);}
.btn-ghost{border:2px solid rgba(255,255,255,.55);color:#fff;}
.btn-ghost:hover{background:rgba(255,255,255,.12);}

/* ---------- eyebrow / section heading ---------- */
.eyebrow{
  font-family:var(--font-display);font-weight:600;
  text-transform:uppercase;letter-spacing:.28em;font-size:.82rem;
  display:inline-flex;align-items:center;gap:.7em;color:var(--red);
}
.eyebrow::before{content:"";width:30px;height:3px;border-radius:3px;background:var(--red);display:inline-block;}
.eyebrow.on-red{color:var(--cream);}
.eyebrow.on-red::before{background:var(--cream);}
.s-head{margin:.6rem 0 0;font-size:clamp(2rem,4.4vw,3.4rem);color:var(--maroon);}
.s-head.on-red{color:#fff;}
.s-sub{margin-top:1.1rem;max-width:62ch;color:var(--ink-soft);font-size:1.12rem;}
.s-sub.on-red{color:rgba(255,255,255,.9);}
.center{text-align:center;}
.center .eyebrow,.center .s-sub{margin-inline:auto;}

/* diagonal stripe texture for red surfaces */
.stripes{position:relative;}
.stripes::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 2px,transparent 2px 24px);
}
.stripes>*{position:relative;z-index:1;}

/* ============================================================
   TOLDO / BANDEIRINHAS (somente mobile)
   ============================================================ */
.awning{
  display:none;
  height:36px;
  margin-bottom:-36px;          /* sobrepõe o topo do hero — o vermelho aparece nos vãos */
  position:relative;z-index:5;
  pointer-events:none;
  background:url('assets/toldo.png') top left / auto 100% repeat-x;
  filter:drop-shadow(0 3px 3px rgba(84,8,15,.22));
}

/* ============================================================
   TOP CONTACT STRIP
   ============================================================ */
.topbar{
  background:var(--maroon);color:var(--cream-100);
  font-size:.9rem;font-weight:600;
}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:42px;flex-wrap:wrap;}
.topbar a{display:inline-flex;align-items:center;gap:.5em;opacity:.92;transition:opacity .15s;}
.topbar a:hover{opacity:1;}
.topbar .tb-left{display:flex;gap:26px;flex-wrap:wrap;}
.ic{width:16px;height:16px;flex:none;}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.site-head{
  position:sticky;top:0;z-index:60;
  background:var(--cream-100);
  border-bottom:2px solid var(--cream-200);
  transition:box-shadow .25s;
}
.site-head.scrolled{box-shadow:0 8px 30px rgba(84,8,15,.12);}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:84px;}
.brand{display:flex;align-items:center;}
.brand img{height:54px;width:auto;filter:drop-shadow(0 4px 8px rgba(84,8,15,.12));}
.nav{display:flex;align-items:center;gap:6px;}
.nav a{
  font-family:var(--font-display);font-weight:500;font-size:1rem;color:var(--maroon);
  padding:.55em .9em;border-radius:999px;transition:background .15s,color .15s;
}
.nav a:hover{background:var(--cream-200);}
.nav .nav-cta{margin-left:10px;}
.menu-toggle{display:none;width:46px;height:46px;border-radius:12px;background:var(--red);color:#fff;align-items:center;justify-content:center;}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  background:radial-gradient(120% 120% at 50% 0%, #E0233B 0%, var(--red) 42%, var(--red-700) 100%);
  color:#fff;overflow:hidden;
}
.hero .wrap{position:relative;z-index:2;padding-block:clamp(54px,8vw,104px);text-align:center;display:flex;flex-direction:column;align-items:center;}
.hero-logo{width:min(420px,72vw);margin-bottom:34px;filter:drop-shadow(0 18px 30px rgba(40,4,8,.45));}
.hero h1{
  font-size:clamp(2.6rem,7vw,6rem);color:var(--cream-100);
  text-transform:uppercase;line-height:.98;letter-spacing:.005em;
  text-shadow:0 6px 0 rgba(84,8,15,.35), 0 16px 30px rgba(20,2,4,.4);
}
.hero h1 .amo{color:#fff;}
.hero .hero-lead{margin:26px auto 0;max-width:54ch;font-size:clamp(1.05rem,1.8vw,1.35rem);color:rgba(255,255,255,.92);}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:38px;}
.hero-badges{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:42px;}
.hero-badge{
  display:inline-flex;align-items:center;gap:.6em;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  padding:.55em 1.1em;border-radius:999px;font-weight:700;font-size:.92rem;color:#fff;
  backdrop-filter:blur(2px);
}
.hero-badge b{font-family:var(--font-display);}

/* floating popsicles + sprinkles */
.deco{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;}
.popsicle{position:absolute;width:64px;height:128px;opacity:.9;transform-origin:center;}
.pop-body{width:100%;height:88px;border-radius:34px 34px 30px 30px;position:relative;box-shadow:inset 0 -10px 0 rgba(0,0,0,.08);}
.pop-stick{width:14px;height:46px;background:#E7C79A;border-radius:0 0 8px 8px;margin:-6px auto 0;box-shadow:inset -3px 0 0 rgba(0,0,0,.08);}
.sprinkle{position:absolute;width:18px;height:6px;border-radius:6px;opacity:.55;}

@keyframes floaty{0%,100%{transform:translateY(0) rotate(var(--rot,0deg));}50%{transform:translateY(-22px) rotate(var(--rot,0deg));}}
.float{animation:floaty 7s ease-in-out infinite;}

/* wave divider bottom of hero */
.wave{display:block;width:100%;height:auto;position:relative;z-index:2;margin-top:-2px;}

/* ============================================================
   PRODUTOS
   ============================================================ */
.produtos{background:var(--cream-100);}
.prod-grid{
  margin-top:54px;display:grid;gap:26px;
  grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
}
.carousel-hint{display:none;align-items:center;gap:.5em;justify-content:center;margin-top:22px;
  color:var(--ink-soft);font-family:var(--font-display);font-weight:500;font-size:.95rem;}
.carousel-hint svg{width:18px;height:18px;animation:nudge 1.6s ease-in-out infinite;}
@keyframes nudge{0%,100%{transform:translateX(0);}50%{transform:translateX(6px);}}
.prod-card{
  background:var(--white);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);border:1px solid var(--cream-200);
  transition:transform .2s ease, box-shadow .2s ease;
  display:flex;flex-direction:column;
}
.prod-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
.prod-shot{
  background:linear-gradient(180deg,#fff 0%, var(--cream-100) 100%);
  padding:26px 22px;display:flex;align-items:center;justify-content:center;
  border-bottom:1px solid var(--cream-200);
}
.prod-shot img{width:100%;height:auto;max-height:220px;object-fit:contain;border-radius:10px;filter:drop-shadow(0 12px 22px rgba(84,8,15,.18));}
.prod-info{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1;}
.prod-tag{align-self:flex-start;font-family:var(--font-display);font-weight:600;font-size:.74rem;
  text-transform:uppercase;letter-spacing:.14em;color:#fff;padding:.4em .9em;border-radius:999px;}
.prod-name{font-size:1.5rem;color:var(--maroon);}
.prod-desc{color:var(--ink-soft);font-size:1rem;}
.prod-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:8px;}
.prod-weight{font-family:var(--font-display);font-weight:600;color:var(--ink);font-size:1.1rem;}
.prod-milk{display:inline-flex;align-items:center;gap:.4em;font-weight:700;font-size:.82rem;color:var(--red);
  background:rgba(200,16,46,.08);padding:.35em .7em;border-radius:999px;}

/* ---- cards de categoria (linhas de produto) ---- */
.cat-card{overflow:hidden;}
.cat-shot{width:100%;aspect-ratio:4 / 3;overflow:hidden;background:var(--cream-200);border-bottom:1px solid var(--cream-200);position:relative;}
.cat-flag{position:absolute;top:14px;left:14px;z-index:2;background:var(--red);color:#fff;
  font-family:var(--font-display);font-weight:600;font-size:.82rem;line-height:1.1;
  padding:.5em .9em;border-radius:999px;box-shadow:var(--shadow-sm);max-width:70%;
  display:inline-flex;align-items:center;gap:.45em;}
.cat-flag::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cream);flex:none;}
.cat-shot img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0;filter:none;}
.cat-info{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1;}
.cat-cta{background:var(--red);border-color:var(--red);color:#fff;}
.cat-cta .cat-info{justify-content:center;padding:38px 28px;}

/* ============================================================
   HISTÓRIA — timeline
   ============================================================ */
.historia{background:var(--cream);overflow:hidden;}
.historia .stripes-soft::before{background:repeating-linear-gradient(135deg,rgba(84,8,15,.025) 0 2px,transparent 2px 26px);}
.timeline{margin-top:60px;position:relative;display:flex;flex-direction:column;gap:30px;}
.timeline::before{content:"";position:absolute;left:31px;top:14px;bottom:14px;width:4px;border-radius:4px;
  background:linear-gradient(var(--red),var(--red-800));opacity:.35;}
.tl-item{position:relative;padding-left:86px;}
.tl-dot{position:absolute;left:14px;top:6px;width:38px;height:38px;border-radius:50%;
  background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:600;box-shadow:0 0 0 6px var(--cream), var(--shadow-sm);}
.tl-card{background:var(--white);border-radius:var(--r-md);padding:24px 28px;box-shadow:var(--shadow-sm);border:1px solid var(--cream-200);}
.tl-year{font-family:var(--font-display);font-weight:600;color:var(--red);font-size:1.55rem;line-height:1;}
.tl-head{font-family:var(--font-display);font-weight:600;color:var(--maroon);font-size:1.2rem;margin:.35rem 0 .55rem;}
.tl-text{color:var(--ink-soft);font-size:1.04rem;}
.tl-item.is-now .tl-dot{background:var(--maroon);}
.tl-item.is-now .tl-card{background:var(--maroon);border-color:var(--maroon);}
.tl-item.is-now .tl-year,.tl-item.is-now .tl-head{color:var(--cream);}
.tl-item.is-now .tl-text{color:rgba(255,255,255,.88);}

/* full-bleed family band */
.band{position:relative;min-height:clamp(280px,38vw,460px);background:var(--red);overflow:hidden;display:flex;align-items:center;}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9;}
.band .band-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(84,8,15,.78) 0%,rgba(84,8,15,.25) 60%,transparent 100%);}
.band .wrap{position:relative;z-index:2;color:#fff;}
.band blockquote{margin:0;max-width:24ch;font-family:var(--font-display);font-weight:600;
  font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.06;text-shadow:0 4px 18px rgba(20,2,4,.5);}
.band cite{display:block;margin-top:18px;font-style:normal;font-weight:700;color:var(--cream);font-size:1.05rem;letter-spacing:.04em;}

/* ============================================================
   MAPA / ATENDIMENTO
   ============================================================ */
.atende{background:radial-gradient(120% 120% at 80% 10%, var(--red) 0%, var(--red-700) 70%, var(--red-800) 100%);color:#fff;overflow:hidden;}
.atende-grid{margin-top:54px;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,72px);align-items:center;}
.map-wrap{position:relative;display:flex;justify-content:center;}
.map-figure{position:relative;display:inline-block;width:100%;max-width:480px;}
.map-figure img{width:100%;height:auto;filter:drop-shadow(0 0 1px rgba(84,8,15,.5)) drop-shadow(0 18px 34px rgba(20,2,4,.45));}
.map-pin2{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;z-index:2;}
.map-pin2.left{flex-direction:row-reverse;}
.map-pin2 .dot{position:relative;width:18px;height:18px;border-radius:50%;background:var(--red);border:3px solid #fff;box-shadow:0 3px 8px rgba(20,2,4,.5);flex:none;}
.map-pin2 .dot::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(255,255,255,.7);animation:pinpulse 2.4s ease-out infinite;}
.map-pin2 .lbl{white-space:nowrap;background:#fff;color:var(--maroon);font-family:var(--font-display);font-weight:600;
  padding:.32em .8em;border-radius:999px;font-size:.92rem;box-shadow:0 6px 16px rgba(20,2,4,.3);}
@keyframes pinpulse{0%{transform:scale(.7);opacity:.9}100%{transform:scale(2.1);opacity:0}}

.states{display:flex;flex-direction:column;gap:18px;}
.state-card{display:flex;align-items:center;gap:20px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);border-radius:var(--r-md);padding:20px 24px;backdrop-filter:blur(3px);
  transition:transform .18s, background .18s;}
.state-card:hover{transform:translateX(6px);background:rgba(255,255,255,.16);}
.state-uf{flex:none;width:62px;height:62px;border-radius:16px;background:var(--cream);color:var(--maroon);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:1.5rem;box-shadow:var(--shadow-sm);}
.state-name{font-family:var(--font-display);font-weight:600;font-size:1.4rem;color:#fff;}
.state-meta{color:rgba(255,255,255,.8);font-size:.98rem;margin-top:2px;}
.atende-note{margin-top:24px;display:inline-flex;align-items:center;gap:.6em;font-weight:700;
  background:rgba(255,255,255,.12);padding:.7em 1.2em;border-radius:999px;font-size:.98rem;}

/* ============================================================
   REVENDEDOR — form
   ============================================================ */
.revenda{background:var(--cream-100);}
.revenda-grid{margin-top:54px;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,64px);align-items:start;}
.revenda-aside .perk{display:flex;gap:16px;align-items:flex-start;margin-top:26px;}
.perk-ic{flex:none;width:50px;height:50px;border-radius:14px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);}
.perk h4{font-family:var(--font-display);font-weight:600;color:var(--maroon);font-size:1.18rem;margin-bottom:4px;}
.perk p{color:var(--ink-soft);font-size:1rem;}

.form-card{background:#fff;border-radius:var(--r-lg);padding:clamp(26px,3.5vw,44px);box-shadow:var(--shadow-md);border:1px solid var(--cream-200);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field.col-2{grid-column:span 2;}
.field label{font-family:var(--font-display);font-weight:500;font-size:.92rem;color:var(--maroon);}
.field label .req{color:var(--red);}
.field input,.field select,.field textarea{
  font-family:var(--font-body);font-size:1rem;color:var(--ink);
  padding:.85em 1em;border-radius:12px;border:2px solid var(--cream-200);background:var(--cream-100);
  transition:border-color .15s, box-shadow .15s;width:100%;
}
.field textarea{resize:vertical;min-height:96px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 4px rgba(200,16,46,.12);background:#fff;}
.form-submit{margin-top:22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.form-note{font-size:.86rem;color:var(--ink-soft);}

/* ============================================================
   MODAL (parcerias)
   ============================================================ */
.modal-backdrop{position:fixed;inset:0;z-index:200;background:rgba(40,4,8,.55);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .22s;}
.modal-backdrop.open{opacity:1;pointer-events:auto;}
.modal{background:var(--cream-100);border-radius:var(--r-lg);max-width:560px;width:100%;max-height:92vh;overflow:auto;
  box-shadow:var(--shadow-lg);transform:translateY(18px) scale(.98);transition:transform .25s;border:1px solid var(--cream-200);}
.modal-backdrop.open .modal{transform:none;}
.modal-head{background:var(--red);color:#fff;padding:24px 28px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:relative;overflow:hidden;}
.modal-head h3{font-size:1.6rem;}
.modal-head p{margin-top:6px;font-size:.96rem;color:rgba(255,255,255,.88);}
.modal-close{flex:none;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:1.3rem;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.modal-close:hover{background:rgba(255,255,255,.32);}
.modal-body{padding:28px;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-foot{background:var(--maroon);color:rgba(255,247,236,.82);overflow:hidden;}
.foot-top{padding-block:clamp(50px,7vw,84px);}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(28px,4vw,56px);}
.foot-brand img{width:200px;margin-bottom:20px;}
.foot-brand p{max-width:38ch;font-size:1rem;}
.foot-col h5{font-family:var(--font-display);font-weight:600;color:var(--cream);font-size:1.15rem;margin-bottom:18px;}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.foot-col a,.foot-col li{font-size:1rem;display:inline-flex;align-items:center;gap:.6em;transition:color .15s;}
.foot-col a:hover{color:#fff;}
.foot-social{display:flex;gap:12px;margin-top:6px;}
.foot-social a{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s;}
.foot-social a:hover{background:var(--red);transform:translateY(-3px);}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding-block:22px;}
.foot-bottom .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.9rem;}
.foot-bottom a{color:var(--cream);font-weight:700;}
.foot-bottom a:hover{text-decoration:underline;}

/* toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120%);z-index:300;
  background:var(--maroon);color:#fff;padding:16px 24px;border-radius:14px;box-shadow:var(--shadow-lg);
  font-weight:600;transition:transform .35s cubic-bezier(.2,.8,.2,1);display:flex;align-items:center;gap:.7em;max-width:90vw;}
.toast.show{transform:translateX(-50%) translateY(0);}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:none;}

/* ============================================================
   MARQUEE (faixa animada)
   ============================================================ */
.marquee{background:var(--maroon);color:var(--cream);overflow:hidden;padding:16px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.marquee-track{display:flex;align-items:center;gap:36px;width:max-content;animation:marquee 26s linear infinite;}
.marquee-track .mq{display:inline-flex;align-items:center;gap:36px;}
.marquee-item{font-family:var(--font-display);font-weight:600;font-size:1.4rem;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;}
.marquee svg.mq-ic{width:30px;height:30px;flex:none;}
@keyframes marquee{to{transform:translateX(-50%);}}
.marquee:hover .marquee-track{animation-play-state:paused;}

/* ============================================================
   ANIMATED ICE-CREAM DECOR
   ============================================================ */
.treats{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0;}
.treat{position:absolute;width:64px;height:64px;opacity:.85;}
.treat svg{width:100%;height:100%;filter:drop-shadow(0 10px 18px rgba(84,8,15,.18));}
@keyframes bob{0%,100%{transform:translateY(0) rotate(var(--rot,0deg));}50%{transform:translateY(-18px) rotate(calc(var(--rot,0deg) + 4deg));}}
@keyframes spin-slow{to{transform:rotate(360deg);}}
.treat.bob{animation:bob 6s ease-in-out infinite;}

@media (prefers-reduced-motion:reduce){
  .marquee-track{animation:none;}
  .treat.bob{animation:none;}
  .map-pin2 .dot::after{animation:none;}
}
@media (max-width:980px){
  .atende-grid,.revenda-grid{grid-template-columns:1fr;}
  .atende-grid{gap:20px;}
  .map-figure{max-width:380px;margin-inline:auto;display:block;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .foot-brand{grid-column:span 2;}
}
@media (max-width:820px){
  /* remove a faixa creme (logo + menu) e a faixa de contato no mobile */
  .site-head{display:none;}
  .topbar{display:none;}

  /* toldo de bandeirinhas no topo */
  .awning{display:block;}

  .nav{position:fixed;top:0;right:0;height:100dvh;width:min(320px,82vw);background:var(--cream-100);
    flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;padding:96px 24px 24px;
    box-shadow:var(--shadow-lg);transform:translateX(110%);transition:transform .3s ease;z-index:55;overflow-y:auto;}
  .nav.open{transform:none;}
  .nav a{font-size:1.15rem;padding:.8em 1em;}
  .nav .nav-cta{margin:14px 0 0;text-align:center;justify-content:center;}
  .menu-toggle{display:flex;}

  /* esconde picólés decorativos e faixa no mobile (não atrapalham os botões) */
  .hero .deco{display:none;}
  .marquee{display:none;}
  .historia .treats{display:none;}

  /* products -> carousel */
  .prod-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin-top:30px;
    padding:6px 0 18px;margin-inline:calc(-1 * var(--pad-x));padding-inline:var(--pad-x);
    -webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .prod-grid::-webkit-scrollbar{display:none;}
  .prod-card{scroll-snap-align:center;width:80%;min-width:80%;max-width:320px;flex:0 0 auto;}
  .prod-shot{padding:18px 18px;}
  .prod-shot img{max-height:170px;}
  .carousel-hint{display:flex;}

  /* band centralizada */
  .band{justify-content:center;text-align:center;}
  .band .band-overlay{background:linear-gradient(rgba(84,8,15,.62) 0%,rgba(84,8,15,.55) 100%);}
  .band blockquote{max-width:22ch;margin-inline:auto;}
  .band cite{margin-inline:auto;}
}
@media (max-width:620px){
  .section{padding-block:clamp(52px,12vw,72px);}
  .form-grid{grid-template-columns:1fr;}
  .field.col-2{grid-column:span 1;}

  /* topbar em uma única linha */
  .topbar{font-size:.7rem;}
  .topbar .wrap{flex-wrap:nowrap;gap:9px;justify-content:center;padding-inline:10px;min-height:38px;}
  .topbar .tb-left{gap:11px;flex-wrap:nowrap;}
  .topbar a{gap:.32em;white-space:nowrap;}
  .topbar .ic{width:12px;height:12px;}

  .hero h1{text-shadow:0 4px 0 rgba(84,8,15,.35),0 10px 22px rgba(20,2,4,.4);}
  .hero-badges{gap:10px;}
  .hero-badge{font-size:.82rem;padding:.5em .9em;}
  .map-figure{max-width:300px;}
  .map-pin2 .lbl{font-size:.78rem;padding:.28em .6em;}
  .map-pin2 .dot{width:15px;height:15px;}
  .band blockquote{max-width:18ch;font-size:1.9rem;}
  .tl-item{padding-left:64px;}
  .timeline::before{left:23px;}
  .tl-dot{width:32px;height:32px;left:8px;font-size:.85rem;}
  .tl-card{padding:20px 20px;}
  .brand img{height:46px;}
  .modal-head{padding:20px 22px;}
  .modal-body{padding:22px;}
  .treat{width:48px;height:48px;}

  /* rodapé compacto, colunas lado a lado */
  .foot-social{display:none;}
  .foot-top{padding-block:40px;}
  .foot-grid{grid-template-columns:1fr 1fr;gap:24px 22px;}
  /* marca: logo + texto lado a lado */
  .foot-brand{grid-column:span 2;display:flex;align-items:center;gap:14px;}
  .foot-brand img{width:92px;margin:0;flex:none;}
  .foot-brand p{font-size:.8rem;line-height:1.45;margin:0;max-width:none;}
  .foot-col h5{margin-bottom:12px;}
  .foot-col ul{gap:10px;}
  .foot-col a,.foot-col li{font-size:.92rem;}
  /* linha de copyright / legal */
  .foot-bottom{padding-block:16px;font-size:.66rem;}
  .foot-bottom .wrap{display:flex;flex-wrap:wrap;justify-content:center;text-align:center;gap:5px 14px;}
  .foot-bottom .foot-copy{flex-basis:100%;white-space:nowrap;}
}
@media (prefers-reduced-motion:reduce){
  .float{animation:none;}
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}
