/* =====================================================================
   slides.css — REV 2 (light branco+azul) — base, cromo, layouts
   ===================================================================== */

/* ---------- BASE REVEAL (light) ---------- */
.reveal-viewport{background:var(--bg)}
.reveal{font-family:var(--f-sans);color:var(--ink);font-weight:400;font-size:24px}
.reveal .slides{text-align:left}
.reveal .slides section{width:1920px;height:1080px;padding:0;box-sizing:border-box;overflow:hidden}
.reveal ::selection{background:var(--blue);color:#fff}

.slide{
  position:relative;width:1920px;height:1080px;box-sizing:border-box;
  padding:var(--margin-y) var(--margin-x);
  display:flex;flex-direction:column;background:var(--bg);
}
.slide--center{justify-content:center}
/* CORREÇÃO SISTÊMICA: impede que filhos com grid cresçam além da margem (overflow à direita) */
.slide>*{min-width:0;max-width:100%}
.bg-white{background:var(--paper)}
.bg-soft{background:var(--bg)}
.bg-blue{background:var(--blue);color:#fff}
.bg-blue-grad{background:linear-gradient(135deg, var(--blue) 0%, var(--blue-darker) 100%);color:#fff}

/* ---------- CROMO: kicker, folio, footer, hairline ---------- */
.kicker{
  font-family:var(--f-mono);font-size:17px;font-weight:500;
  letter-spacing:.26em;text-transform:uppercase;color:var(--blue);
  display:inline-flex;align-items:center;gap:14px;
}
.kicker::before{content:"";width:36px;height:2px;background:var(--gold);display:inline-block}
.bg-blue .kicker,.bg-blue-grad .kicker{color:#fff}
.bg-blue .kicker::before,.bg-blue-grad .kicker::before{background:var(--gold)}

.folio{
  position:absolute;right:60px;bottom:30px;
  font-family:var(--f-display);font-weight:800;font-size:300px;line-height:1;
  color:var(--blue);opacity:.045;pointer-events:none;user-select:none;letter-spacing:-.03em;
}
.foot{
  position:absolute;left:var(--margin-x);right:var(--margin-x);bottom:48px;
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--f-mono);font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);
}
.foot .wordmark{font-weight:600;letter-spacing:.3em;color:var(--blue)}
.bg-blue .foot,.bg-blue-grad .foot{color:rgba(255,255,255,.6)}
.bg-blue .foot .wordmark,.bg-blue-grad .foot .wordmark{color:#fff}

.hairline{height:2px;background:var(--gold);transform-origin:left center}

/* ---------- TIPOGRAFIA ---------- */
.display-hero{font-family:var(--f-display);font-weight:800;font-size:128px;line-height:.96;letter-spacing:-.035em;color:var(--ink);margin:0}
.display-xl  {font-family:var(--f-display);font-weight:700;font-size:84px; line-height:1.0; letter-spacing:-.028em;color:var(--ink);margin:0}
.display-lg  {font-family:var(--f-display);font-weight:700;font-size:56px; line-height:1.06;letter-spacing:-.02em; color:var(--ink);margin:0}
.bg-blue .display-hero,.bg-blue .display-xl,.bg-blue .display-lg,
.bg-blue-grad .display-hero,.bg-blue-grad .display-xl,.bg-blue-grad .display-lg{color:#fff}
.blue{color:var(--blue)}
.gold{color:var(--blue)}
.bg-blue .blue,.bg-blue-grad .blue{color:#fff}
.bg-blue .gold,.bg-blue-grad .gold{color:var(--gold)}

.lede{font-family:var(--f-sans);font-weight:400;font-size:29px;line-height:1.5;color:var(--ink-soft);max-width:1180px;margin:0}
.body{font-family:var(--f-sans);font-weight:400;font-size:22px;line-height:1.55;color:var(--ink-soft)}
.caption{font-family:var(--f-mono);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}

/* ---------- HEADER DE SLIDE INTERNO ---------- */
.shead{display:flex;flex-direction:column;gap:16px}
.shead .display-lg{margin-top:4px}

/* ---------- SLOT DE IMAGEM (placeholder nomeado) ---------- */
.slot{
  position:relative;border:1.5px dashed var(--border-strong);border-radius:6px;
  background:
     repeating-linear-gradient(135deg, rgba(0,85,165,.03) 0 14px, transparent 14px 28px),
     var(--paper);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  overflow:hidden;color:var(--ink-faint);text-align:center;padding:24px;
}
.slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}
.slot.is-contain img{object-fit:contain}
.slot.filled img{display:block}
.slot.filled .slot__meta{display:none}
.slot__icon{font-family:var(--f-sans);font-size:40px;color:var(--border-strong);font-weight:300;line-height:1}
.slot__tag{font-family:var(--f-mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.slot__path{font-family:var(--f-mono);font-size:12px;letter-spacing:.02em;color:var(--ink-faint);max-width:90%;line-height:1.5}
.slot__cap{position:absolute;left:0;right:0;bottom:0;padding:16px 20px;background:linear-gradient(to top, rgba(15,28,46,.86), transparent);font-family:var(--f-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#fff;z-index:2}

/* ---------- SPLIT ANTES/DEPOIS ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:44px;flex:1;min-height:0;margin-top:26px;padding-bottom:30px}
.split__panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;min-height:0;min-width:0}
.panel-label{display:flex;align-items:baseline;gap:14px}
.panel-label .num{font-family:var(--f-display);font-weight:800;font-size:28px;color:var(--gold-deep)}
.panel-label .txt{font-family:var(--f-sans);font-weight:600;font-size:25px;color:var(--ink)}
.panel-sub{font-family:var(--f-sans);font-size:19px;color:var(--ink-faint);line-height:1.45}

/* ---------- HERO FULL-BLEED ---------- */
.hero-full{position:absolute;inset:0;padding:0}
.hero-full .slot{position:absolute;inset:0;border:none;border-radius:0}
.hero-full__scrim{position:absolute;inset:0;background:linear-gradient(105deg, rgba(0,42,86,.92) 0%, rgba(0,42,86,.55) 42%, rgba(0,42,86,.05) 72%);z-index:2}
.hero-full__content{position:absolute;left:var(--margin-x);bottom:130px;right:var(--margin-x);z-index:3;max-width:1180px;color:#fff}
.hero-full__content .display-xl{color:#fff}

/* ---------- ANIMAÇÕES base (CSS, presas ao .present do Reveal) ---------- */
@media (prefers-reduced-motion: no-preference){
  .reveal section .g-rise{opacity:0;transform:translateY(26px)}
  .reveal section.present .g-rise{animation:gRise .7s cubic-bezier(.22,.61,.36,1) forwards}
  .reveal section.present .g-rise.d1{animation-delay:.12s}
  .reveal section.present .g-rise.d2{animation-delay:.24s}
  .reveal section.present .g-rise.d3{animation-delay:.36s}
  @keyframes gRise{to{opacity:1;transform:none}}

  .reveal .slides section .fragment.up{opacity:0;transform:translateY(24px);transition:all .55s cubic-bezier(.22,.61,.36,1)}
  .reveal .slides section .fragment.up.visible{opacity:1;transform:none}
}
@media (prefers-reduced-motion: reduce){
  .g-rise,.fragment.up{opacity:1!important;transform:none!important;animation:none!important}
}
@media print{
  .g-rise{opacity:1!important;transform:none!important;animation:none!important}
}

/* ---------- CONTROLES Reveal (azul) ---------- */
.reveal .progress{color:var(--gold);height:4px}
.reveal .controls{color:var(--blue)}
.reveal .slide-number{background:transparent;font-family:var(--f-mono);color:var(--ink-faint);font-size:13px}

/* ---------- SLIDE 08 · TENDÊNCIA ≠ BRASIL ---------- */
.trend-grid{display:grid;grid-template-columns:1fr 1fr 540px;gap:28px;flex:1;min-height:0;margin-top:22px}
.trend-col{display:flex;flex-direction:column;gap:14px;background:var(--paper);border:1px solid var(--border);border-radius:8px;padding:22px;min-height:0}
.trend-col__head{display:flex;align-items:baseline;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.trend-col__num{font-family:var(--f-mono);font-size:13px;letter-spacing:.16em;color:var(--gold-deep);font-weight:700}
.trend-col__title{font-family:var(--f-sans);font-weight:600;font-size:22px;color:var(--ink-soft);line-height:1.2}
.trend-col__title b{color:var(--blue);font-weight:800}
.trend-col__hint{font-family:var(--f-mono);font-size:12px;color:var(--ink-faint);letter-spacing:.04em}
.trend-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px;flex:1}
.trend-list li{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-left:3px solid var(--blue);background:var(--blue-tint)}
.trend-list__k{font-family:var(--f-sans);font-weight:700;font-size:16px;color:var(--ink);line-height:1.2}
.trend-list__v{font-family:var(--f-sans);font-size:13px;color:var(--ink-soft);line-height:1.4}
.trend-list__src{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;color:var(--gold-deep);text-transform:uppercase;margin-top:2px}
.trend-map{display:flex;flex-direction:column;gap:8px;background:var(--paper);border:1px solid var(--border);border-radius:8px;padding:18px 16px;min-height:0}
.trend-map__title{display:flex;flex-direction:column;gap:2px;padding-bottom:6px}
.trend-map__sub{font-family:var(--f-mono);font-size:11px;color:var(--ink-faint);letter-spacing:.02em}
.trend-map__svg{flex:1;width:100%;min-height:0}
.trend-punch{font-family:var(--f-sans);font-size:22px;line-height:1.45;color:var(--ink-soft);text-align:center;margin-top:18px;padding:16px 24px;border-top:2px solid var(--gold)}
.trend-punch b{color:var(--ink);font-weight:700}

/* ---------- SLIDE 09 · PORTARIA 664 ---------- */
.reg-portaria{display:grid;grid-template-columns:420px 1fr;gap:32px;flex:1;min-height:0;margin-top:22px}
.reg-portaria__id{display:flex;flex-direction:column;gap:18px;background:linear-gradient(180deg,#0F1C2E,#1a2f4a);color:#fff;border-radius:8px;padding:24px;min-height:0}
.reg-portaria__seal{display:flex;flex-direction:column;gap:4px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.18)}
.reg-portaria__seal-k{font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;color:var(--gold);text-transform:uppercase;font-weight:600}
.reg-portaria__seal-n{font-family:var(--f-display);font-weight:800;font-size:64px;color:#fff;line-height:1;letter-spacing:-0.02em}
.reg-portaria__seal-d{font-family:var(--f-mono);font-size:13px;color:rgba(255,255,255,.78);letter-spacing:.06em}
.reg-portaria__sum{display:flex;flex-direction:column;gap:10px;flex:1}
.reg-portaria__title{font-family:var(--f-sans);font-size:18px;line-height:1.4;color:#fff;margin:0 0 8px}
.reg-portaria__title b{color:var(--gold);font-weight:700}
.reg-portaria__line{display:flex;gap:14px;align-items:baseline;margin:0;font-family:var(--f-mono);font-size:13px;line-height:1.4}
.reg-portaria__line-k{flex:0 0 80px;color:var(--gold);letter-spacing:.04em;text-transform:uppercase;font-size:11px}
.reg-portaria__line-v{color:rgba(255,255,255,.92)}
.reg-portaria__src{display:inline-block;margin-top:8px;font-family:var(--f-mono);font-size:11px;color:var(--gold);letter-spacing:.04em;text-decoration:none;padding-top:12px;border-top:1px solid rgba(255,255,255,.12)}
.reg-portaria__rules{display:grid;grid-template-columns:1fr 1fr;gap:18px;min-height:0}
.reg-rule{display:flex;gap:14px;background:var(--paper);border:1px solid var(--border);border-left:4px solid var(--blue);border-radius:6px;padding:16px 18px;min-height:0;align-items:center}
.reg-rule__n{font-family:var(--f-mono);font-size:24px;color:var(--gold-deep);font-weight:800;line-height:1;flex-shrink:0;align-self:flex-start}
.reg-rule__body{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.reg-rule__k{font-family:var(--f-sans);font-weight:700;font-size:17px;color:var(--ink);line-height:1.2}
.reg-rule__v{font-family:var(--f-sans);font-size:13px;color:var(--ink-soft);line-height:1.45}
.reg-rule__v b{color:var(--blue);font-weight:700}
.reg-punch{font-family:var(--f-sans);font-size:22px;line-height:1.45;color:var(--ink-soft);text-align:center;margin-top:18px;padding:16px 24px;border-top:2px solid var(--gold)}
.reg-punch b{color:var(--ink);font-weight:700}

/* 4 ícones SVG dos pilares da Portaria 664 */
.reg-rule__icon{flex:0 0 88px;width:88px;height:88px;margin-left:10px;overflow:visible}
.reg-rule__icon .ic-base{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.88}
.reg-rule__icon .ic-accent{fill:none;stroke:var(--gold-deep);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.reg-rule__icon text{font-family:var(--f-mono);font-weight:700;fill:var(--blue);letter-spacing:.04em}
.reg-rule__icon--pack .ic-pack-kg{font-size:9px;fill:var(--blue);font-weight:800;letter-spacing:.05em}
.reg-rule__icon--label .ic-label-pct{font-size:9px;fill:var(--gold-deep);letter-spacing:.08em;font-weight:800}
.reg-rule__icon--label .ic-label-bar{fill:var(--gold-deep);stroke:none}
.reg-rule__icon--temp .ic-temp-bulb{fill:var(--gold-deep);stroke:var(--gold-deep)}
.reg-rule__icon--temp .ic-temp-fill{fill:var(--gold-deep);stroke:none;transform-origin:32px 46px}

@media (prefers-reduced-motion: no-preference){
  section.present .reg-rule__icon--pack .ic-pack-seal{animation:icPackSeal .55s cubic-bezier(.22,.61,.36,1) 1.1s both;transform-origin:42px 22px}
  @keyframes icPackSeal{from{transform:translateY(-10px) rotate(-8deg);opacity:0}to{transform:none;opacity:1}}

  section.present .reg-rule__icon--temp .ic-temp-fill{animation:icTempFill 1.1s cubic-bezier(.22,.61,.36,1) 1.3s both}
  @keyframes icTempFill{from{transform:scaleY(0)}to{transform:scaleY(1)}}

  section.present .reg-rule__icon--meat .ic-meat-x{animation:icMeatX .5s cubic-bezier(.22,1.4,.4,1) 1.5s both;transform-origin:48px 48px}
  @keyframes icMeatX{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}

  section.present .reg-rule__icon--label .ic-label-bar{animation:icLabelBar 1s cubic-bezier(.22,.61,.36,1) 1.7s both;transform-origin:16px 46px}
  @keyframes icLabelBar{from{transform:scaleX(0)}to{transform:scaleX(.65)}}
}

/* ---------- SLIDE 07 · RANKING APAS TOP 10 (3 grupos estratégicos) ---------- */
.ranking-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:24px;flex:1;min-height:0;margin-top:22px}
.rank-col{display:flex;flex-direction:column;gap:14px;border-radius:8px;padding:22px 20px;background:var(--paper);border:1px solid var(--border);min-height:0;position:relative;overflow:hidden}
.rank-col--move{border-top:5px solid var(--blue);background:linear-gradient(180deg,rgba(0,85,165,.06) 0%,var(--paper) 60%)}
.rank-col--depend{border-top:5px solid var(--gold);background:linear-gradient(180deg,rgba(169,179,191,.12) 0%,var(--paper) 60%)}
.rank-col--out{border-top:5px solid #C3CDDD;opacity:.78}
.rank-col__head{display:flex;flex-direction:column;gap:5px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.rank-col__count{font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;color:var(--ink-faint);text-transform:uppercase;font-weight:600}
.rank-col__title{font-family:var(--f-sans);font-weight:800;font-size:22px;color:var(--ink);line-height:1.1}
.rank-col__sub{font-family:var(--f-sans);font-size:13px;color:var(--ink-soft);line-height:1.4}
.rank-col__logos{display:flex;flex-direction:column;gap:12px;flex:1;justify-content:space-around;margin-top:8px;min-height:0}
.rank-logo{display:flex;align-items:center;gap:14px;padding:12px 14px;background:#fff;border-radius:5px;border:1px solid var(--border);transition:transform .25s ease,box-shadow .25s ease;flex:1;min-height:0;max-height:120px}
.rank-col--move .rank-logo{border-left:3px solid var(--blue)}
.rank-col--depend .rank-logo{border-left:3px solid var(--gold)}
.rank-logo img{height:auto;max-height:54px;max-width:130px;object-fit:contain;flex-shrink:0}
.rank-logo__cap{font-family:var(--f-mono);font-size:12px;letter-spacing:.02em;color:var(--ink-soft);flex:1;line-height:1.35}
.rank-logo__cap b{color:var(--blue);font-weight:700}
.rank-col--depend .rank-logo__cap b{color:var(--gold-deep)}
.rank-punch{font-family:var(--f-sans);font-size:22px;line-height:1.45;color:var(--ink-soft);text-align:center;margin-top:18px;padding:18px 24px;border-top:2px solid var(--gold)}
.rank-punch b{color:var(--ink);font-weight:700}

/* SLIDE 07 — animações narrativas:
   (a) stagger dos logos dentro de cada coluna ao entrar
   (b) badge de veredicto pulsando no canto do card
       ↑ move (col1) · ↻ depende (col2) · sem badge (col3 atacarejo)
   (c) pulse já existente em rank-col--move (mantido) */
.rank-logo{position:relative;opacity:0;transform:translateY(8px)}
.rank-col--move .rank-logo::after,
.rank-col--depend .rank-logo::after{
  content:"";position:absolute;top:50%;right:14px;transform:translateY(-50%);
  width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--f-sans);font-weight:800;font-size:15px;line-height:1;
  opacity:0
}
.rank-col--move .rank-logo::after{content:"\2191";background:rgba(0,85,165,.12);color:var(--blue);border:1.5px solid var(--blue)}
.rank-col--depend .rank-logo::after{content:"\21BB";background:rgba(169,179,191,.16);color:var(--gold-deep);border:1.5px solid var(--gold-deep);font-size:18px}

@media (prefers-reduced-motion: no-preference){
  /* pulse sutil na coluna "movimento" — já existia, mantido */
  section.present .rank-col--move{animation:rankPulse 2.6s ease-out 1.2s 1 forwards}
  @keyframes rankPulse{
    0%   {box-shadow:0 0 0 0 rgba(0,85,165,0)}
    25%  {box-shadow:0 0 0 8px rgba(0,85,165,.18)}
    100% {box-shadow:0 0 0 0 rgba(0,85,165,0)}
  }
  /* stagger dos logos: col1 começa 0.6s · col2 começa 1.0s · col3 começa 1.4s */
  section.present .rank-col--move .rank-logo:nth-child(1){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) .6s both}
  section.present .rank-col--move .rank-logo:nth-child(2){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) .75s both}
  section.present .rank-col--move .rank-logo:nth-child(3){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) .9s both}
  section.present .rank-col--move .rank-logo:nth-child(4){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) 1.05s both}
  section.present .rank-col--depend .rank-logo:nth-child(1){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) 1.0s both}
  section.present .rank-col--depend .rank-logo:nth-child(2){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) 1.15s both}
  section.present .rank-col--depend .rank-logo:nth-child(3){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) 1.3s both}
  section.present .rank-col--out .rank-logo:nth-child(1){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) 1.4s both}
  section.present .rank-col--out .rank-logo:nth-child(2){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) 1.55s both}
  section.present .rank-col--out .rank-logo:nth-child(3){animation:rankLogoIn .5s cubic-bezier(.22,.61,.36,1) 1.7s both}
  @keyframes rankLogoIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

  /* badge de veredicto: aparece quando todos os logos da coluna já estão visíveis */
  section.present .rank-col--move .rank-logo::after{animation:rankSigPulse 2.2s cubic-bezier(.22,.61,.36,1) 1.6s infinite}
  section.present .rank-col--depend .rank-logo::after{animation:rankSigPulse 2.2s cubic-bezier(.22,.61,.36,1) 1.9s infinite}
  @keyframes rankSigPulse{
    0%   {opacity:0;transform:translateY(-50%) scale(.7)}
    25%  {opacity:1;transform:translateY(-50%) scale(1.08)}
    55%  {opacity:.9;transform:translateY(-50%) scale(1)}
    100% {opacity:.7;transform:translateY(-50%) scale(1)}
  }
}

/* SLIDE 08 — mapa Brasil: as 5 regiões se pintam em stagger ao entrar */
.tmap-r{fill-opacity:0;transform-origin:center;transform:scale(.96);transition:none}
@media (prefers-reduced-motion: no-preference){
  section.present .tmap-r{animation:tmapPaint .55s cubic-bezier(.22,.61,.36,1) both}
  section.present .tmap-r--n{animation-delay:1.2s}
  section.present .tmap-r--ne{animation-delay:1.45s}
  section.present .tmap-r--co{animation-delay:1.7s}
  section.present .tmap-r--se{animation-delay:1.95s}
  section.present .tmap-r--s{animation-delay:2.2s}
  @keyframes tmapPaint{
    0%   {fill-opacity:0;transform:scale(.92)}
    60%  {fill-opacity:1;transform:scale(1.02)}
    100% {fill-opacity:1;transform:scale(1)}
  }
  /* labels do mapa aparecem junto com sua região, mas um pouco depois */
  .trend-map__svg text{opacity:0}
  section.present .trend-map__svg text{animation:tmapLabel .4s ease-out both}
  section.present .trend-map__svg text:nth-of-type(1),
  section.present .trend-map__svg text:nth-of-type(2),
  section.present .trend-map__svg text:nth-of-type(3){animation-delay:1.5s}
  section.present .trend-map__svg text:nth-of-type(4),
  section.present .trend-map__svg text:nth-of-type(5){animation-delay:1.75s}
  section.present .trend-map__svg text:nth-of-type(6),
  section.present .trend-map__svg text:nth-of-type(7){animation-delay:2.0s}
  section.present .trend-map__svg text:nth-of-type(8),
  section.present .trend-map__svg text:nth-of-type(9),
  section.present .trend-map__svg text:nth-of-type(10){animation-delay:2.25s}
  section.present .trend-map__svg text:nth-of-type(11),
  section.present .trend-map__svg text:nth-of-type(12){animation-delay:2.5s}
  section.present .trend-map__svg text:nth-of-type(13){animation-delay:2.7s}
  @keyframes tmapLabel{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
}
/* fallback sem motion: tudo visível imediatamente */
@media (prefers-reduced-motion: reduce){
  .tmap-r{fill-opacity:1;transform:none}
  .rank-logo{opacity:1;transform:none}
  .chain-logo{opacity:1;transform:none}
  .chain-line{stroke-dashoffset:0}
  .chain-tip{opacity:1;transform:none}
}

/* ---------- SLIDE 07 v2 · DIAGRAMA DE CADEIA (frigorífico → 3 fluxos) ---------- */
.chain-flow{
  position:relative;display:grid;
  grid-template-columns:240px 120px 1fr;
  gap:0;flex:1;min-height:0;margin-top:22px;align-items:stretch
}
.chain-source{
  align-self:center;
  background:linear-gradient(180deg,#0F1C2E,#1a2f4a);color:#fff;
  border-radius:10px;padding:24px 18px 22px;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  width:100%;box-shadow:0 6px 24px rgba(15,28,46,.18)
}
.chain-source__icon-svg{width:88px;height:88px;color:#fff;opacity:.95}
.chain-source__sub{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;color:var(--gold);text-transform:uppercase;font-weight:700;margin-top:4px}
.chain-source__label{font-family:var(--f-sans);font-weight:800;font-size:22px;text-align:center;line-height:1.1;letter-spacing:-.01em}
.chain-source__hint{font-family:var(--f-sans);font-size:12px;color:rgba(255,255,255,.72);text-align:center;line-height:1.4;margin-top:8px;padding-top:12px;border-top:1px solid rgba(255,255,255,.16)}
.chain-svg{width:100%;height:100%;align-self:stretch;justify-self:stretch;display:block;pointer-events:none}
.chain-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:600;stroke-dashoffset:600}
.chain-line--move{stroke:var(--blue)}
.chain-line--depend{stroke:var(--gold);stroke-dasharray:140;stroke-dashoffset:140}
.chain-line--out{stroke:#A8B4C6;stroke-dasharray:600;stroke-dashoffset:600;opacity:.7}
.chain-tip{opacity:0;transform-origin:center}
.chain-tip--move{fill:var(--blue)}
.chain-tip--depend{fill:var(--gold-deep)}
.chain-tip--out{fill:#A8B4C6;opacity:.7}
.chain-streams{display:flex;flex-direction:column;gap:14px;min-height:0;justify-content:space-between}
.chain-stream{
  display:grid;grid-template-columns:240px 1fr;gap:18px;
  background:var(--paper);border:1px solid var(--border);border-radius:8px;
  padding:14px 18px;flex:1;align-items:center;min-height:0;position:relative
}
.chain-stream--move{border-left:5px solid var(--blue);background:linear-gradient(90deg,rgba(0,85,165,.07) 0%,var(--paper) 35%)}
.chain-stream--depend{border-left:5px solid var(--gold);background:linear-gradient(90deg,rgba(169,179,191,.12) 0%,var(--paper) 35%)}
.chain-stream--out{border-left:5px solid #C3CDDD;opacity:.82}
.chain-stream__head{display:flex;flex-direction:column;gap:3px}
.chain-stream__via{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:var(--ink-faint);text-transform:uppercase;font-weight:700;margin-bottom:2px}
.chain-stream--move .chain-stream__via{color:var(--blue)}
.chain-stream--depend .chain-stream__via{color:var(--gold-deep)}
.chain-stream__count{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;color:var(--ink-faint);text-transform:uppercase;font-weight:700}
.chain-stream__title{font-family:var(--f-sans);font-weight:800;font-size:20px;color:var(--ink);line-height:1.1}
.chain-stream__sub{font-family:var(--f-sans);font-size:12px;color:var(--ink-soft);line-height:1.35;margin-top:2px}
.chain-stream__logos{display:flex;gap:10px;align-items:stretch;flex:1;min-height:0;min-width:0}
.chain-logo{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:#fff;border:1px solid var(--border);border-radius:5px;padding:8px 6px;
  min-width:0;min-height:0;opacity:0;transform:translateY(8px)
}
.chain-stream--move .chain-logo{border-left:3px solid var(--blue)}
.chain-stream--depend .chain-logo{border-left:3px solid var(--gold)}
.chain-logo img{max-height:42px;max-width:100%;width:auto;object-fit:contain;flex-shrink:0}
.chain-logo__cap{font-family:var(--f-mono);font-size:10px;letter-spacing:.02em;color:var(--ink-soft);text-align:center;line-height:1.25}
.chain-logo__cap b{color:var(--blue);font-weight:700}
.chain-stream--depend .chain-logo__cap b{color:var(--gold-deep)}

@media (prefers-reduced-motion: no-preference){
  /* paths desenhando ao entrar (stagger) */
  section.present .chain-line--move{animation:chainDraw 1.1s cubic-bezier(.22,.61,.36,1) .6s forwards}
  section.present .chain-line--depend{animation:chainDrawShort 0.7s cubic-bezier(.22,.61,.36,1) 0.9s forwards}
  section.present .chain-line--out{animation:chainDraw 1.1s cubic-bezier(.22,.61,.36,1) 1.2s forwards}
  @keyframes chainDraw{to{stroke-dashoffset:0}}
  @keyframes chainDrawShort{to{stroke-dashoffset:0}}

  /* tips pulsam ao chegar */
  section.present .chain-tip--move{animation:chainTip .45s cubic-bezier(.22,1.4,.4,1) 1.7s both, chainTipPulse 2.4s ease-out 2.2s infinite}
  section.present .chain-tip--depend{animation:chainTip .45s cubic-bezier(.22,1.4,.4,1) 1.6s both, chainTipPulse 2.4s ease-out 2.2s infinite}
  section.present .chain-tip--out{animation:chainTip .45s cubic-bezier(.22,1.4,.4,1) 2.3s both}
  @keyframes chainTip{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}
  @keyframes chainTipPulse{
    0%   {filter:drop-shadow(0 0 0 currentColor)}
    25%  {filter:drop-shadow(0 0 6px currentColor)}
    100% {filter:drop-shadow(0 0 0 currentColor)}
  }

  /* logos entrando em stagger por stream */
  section.present .chain-stream--move .chain-logo:nth-child(1){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 1.8s both}
  section.present .chain-stream--move .chain-logo:nth-child(2){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 1.92s both}
  section.present .chain-stream--move .chain-logo:nth-child(3){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 2.04s both}
  section.present .chain-stream--move .chain-logo:nth-child(4){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 2.16s both}
  section.present .chain-stream--depend .chain-logo:nth-child(1){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 1.7s both}
  section.present .chain-stream--depend .chain-logo:nth-child(2){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 1.82s both}
  section.present .chain-stream--depend .chain-logo:nth-child(3){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 1.94s both}
  section.present .chain-stream--out .chain-logo:nth-child(1){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 2.4s both}
  section.present .chain-stream--out .chain-logo:nth-child(2){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 2.52s both}
  section.present .chain-stream--out .chain-logo:nth-child(3){animation:chainLogoIn .45s cubic-bezier(.22,.61,.36,1) 2.64s both}
  @keyframes chainLogoIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

  /* highlight da via "move" — pulsa pra reforçar que é o caminho vencedor */
  section.present .chain-stream--move{animation:chainMovePulse 2.8s ease-out 2.6s 1 forwards}
  @keyframes chainMovePulse{
    0%   {box-shadow:0 0 0 0 rgba(0,85,165,0)}
    25%  {box-shadow:0 0 0 10px rgba(0,85,165,.15)}
    100% {box-shadow:0 0 0 0 rgba(0,85,165,0)}
  }
}

/* ---------- SLIDE 02 · O MERCADO MUDOU (3 pares vinho/azeite/pão antes-depois) ---------- */
.evolution-grid{display:flex;flex-direction:column;gap:18px;flex:1;min-height:0;margin-top:22px}
.evo-row{display:grid;grid-template-columns:280px 1fr;gap:32px;align-items:stretch;min-height:0}
.evo-cat{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:16px 22px;border-left:4px solid var(--gold);background:var(--paper);border-radius:0 6px 6px 0}
.evo-cat__num{font-family:var(--f-mono);font-size:13px;letter-spacing:.18em;color:var(--gold-deep);text-transform:uppercase}
.evo-cat__name{font-family:var(--f-sans);font-weight:800;font-size:28px;color:var(--ink);line-height:1}
.evo-cat__hint{font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;color:var(--ink-faint)}
.evo-pair{display:grid;grid-template-columns:1fr 48px 1fr;gap:18px;align-items:stretch;min-height:0}
.evo-img{position:relative;background:#0F1C2E;border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:0}
.evo-img img{width:100%;height:100%;object-fit:cover;display:block}
.evo-tag{position:absolute;top:8px;left:8px;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(15,28,46,.7);padding:4px 10px;border-radius:3px;z-index:2}
.evo-tag--blue{background:var(--blue)}
.evo-arrow{display:flex;align-items:center;justify-content:center;font-size:32px;color:var(--blue);font-weight:300}
.evo-punch{font-family:var(--f-sans);font-size:22px;line-height:1.4;color:var(--ink-soft);text-align:center;margin-top:14px;padding:14px 24px;border-top:1px solid var(--border)}
.evo-punch b{color:var(--blue);font-weight:700}

/* ---------- BLOCO "OPORTUNIDADES DE DESIGN" (REV 5) ---------- */
.slide--insight{display:flex;flex-direction:column}
.slide--insight .shead{flex-shrink:0}

/* tríptico horizontal (3 fotos iguais lado a lado) */
.triptych{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;flex:1;min-height:0;margin-top:24px;align-items:center;align-content:center}
.tri-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--border);border-radius:6px;overflow:hidden;min-height:0}
.tri-card__media{aspect-ratio:4/3;background:#0F1C2E;overflow:hidden}
.tri-card__media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.triptych--port .tri-card__media{aspect-ratio:3/4}
.tri-card__cap{flex-shrink:0;padding:14px 18px;font-family:var(--f-mono);font-size:13px;letter-spacing:.04em;color:var(--ink-soft);background:var(--bg-warm);border-top:1px solid var(--border);min-height:48px;display:flex;align-items:center}
.tri-card__cap b{color:var(--blue);font-weight:700;margin-right:8px}

/* manifesto e síntese (foto hero grande + texto) */
.insight-hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;flex:1;min-height:0;margin-top:28px;align-items:stretch}
.insight-hero__media{background:#0F1C2E;border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:14px}
.insight-hero__media img{width:100%;height:100%;object-fit:contain;object-position:center}
.insight-hero__body{display:flex;flex-direction:column;justify-content:center;gap:24px}
.insight-takeaways{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:12px}
.insight-takeaway{padding:18px 22px;border:1px solid var(--blue-line);border-radius:6px;background:var(--blue-tint)}
.insight-takeaway .k{display:block;font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;color:var(--gold-deep);text-transform:uppercase;margin-bottom:6px}
.insight-takeaway .v{display:block;font-family:var(--f-sans);font-size:18px;line-height:1.35;color:var(--ink);font-weight:600}

/* slide de vídeo */
.insight-video{display:grid;grid-template-columns:1.4fr 1fr;gap:32px;flex:1;min-height:0;margin-top:28px}
.video-frame{position:relative;background:#000;border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.video-frame video{width:100%;height:100%;object-fit:contain;display:block;background:#000}
.audio-toggle{position:absolute;top:18px;right:18px;width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.92);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 4px 16px rgba(0,0,0,.4);transition:transform .15s ease,background .15s ease;z-index:3}
.audio-toggle:hover{transform:scale(1.06)}
.audio-toggle.is-on{background:var(--gold)}
.audio-toggle.is-on::after{content:'🔊'}
.audio-toggle:not(.is-on)::after{content:'🔇'}
.audio-toggle--label{width:auto;height:42px;border-radius:21px;padding:0 16px;font-family:var(--f-sans);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#121317}
.audio-toggle--label.is-on::after{content:'Áudio ativo'}
.audio-toggle--label:not(.is-on)::after{content:'Ativar áudio'}
.audio-toggle--label:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.video-side{display:flex;flex-direction:column;gap:18px;min-width:0}
.video-side .video-thumb{background:#0F1C2E;border-radius:6px;overflow:hidden;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:10px}
.video-side .video-thumb img{width:100%;height:100%;object-fit:contain;object-position:center}
.video-side .video-note{padding:16px 18px;border:1px solid var(--border);border-radius:6px;background:var(--bg-warm);font-family:var(--f-mono);font-size:13px;line-height:1.5;color:var(--ink-soft)}
.video-side .video-note b{color:var(--blue)}

/* === slide 02 · perfil + parede de clientes === */
.perfil{display:grid;grid-template-columns:0.78fr 1fr;gap:44px;flex:1;min-height:0;align-items:stretch}
.perfil__intro{display:flex;flex-direction:column;justify-content:center;gap:18px;padding-right:8px}
.perfil__intro .kicker{margin-bottom:4px}
.perfil__intro h2{margin:0;font-size:clamp(40px,4.2vw,72px);line-height:1.02;letter-spacing:-0.01em}
.perfil__lede{font-family:var(--f-sans);font-size:21px;line-height:1.4;color:var(--ink);margin:6px 0 14px;max-width:580px}
.perfil__lede b{color:var(--blue);font-weight:700}
.perfil__creds{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--blue-line);padding-top:18px}
.perfil__creds li{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:baseline}
.perfil__creds-k{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.16em;color:var(--gold-deep);text-transform:uppercase;font-weight:600}
.perfil__creds-v{font-family:var(--f-sans);font-size:14.5px;line-height:1.5;color:var(--ink-soft)}
.perfil__sign{margin-top:18px;padding:14px 18px;border-left:3px solid var(--blue);background:var(--blue-tint);font-family:var(--f-sans);font-size:15.5px;line-height:1.45;color:var(--ink);font-style:italic;border-radius:0 4px 4px 0}

/* parede de fotos · grid 6×4 (23 thumbs + 1 vazio cabe; usamos 6×4 = 24 slots) */
.perfil__wall{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:auto;gap:5px;align-content:center}
.perfil__wall img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center;border-radius:3px;background:#E6ECF2;display:block;box-shadow:0 1px 3px rgba(10,30,60,.08);transition:transform .25s ease,box-shadow .25s ease;opacity:0;animation:perfilFade .5s ease-out forwards}
.perfil__wall img:hover{transform:scale(1.04);box-shadow:0 6px 18px rgba(10,30,60,.18);z-index:2;position:relative}

/* stagger das 23 fotos */
@media (prefers-reduced-motion: no-preference){
  section.present .perfil__wall img:nth-child(1){animation-delay:.50s}
  section.present .perfil__wall img:nth-child(2){animation-delay:.55s}
  section.present .perfil__wall img:nth-child(3){animation-delay:.60s}
  section.present .perfil__wall img:nth-child(4){animation-delay:.65s}
  section.present .perfil__wall img:nth-child(5){animation-delay:.70s}
  section.present .perfil__wall img:nth-child(6){animation-delay:.75s}
  section.present .perfil__wall img:nth-child(7){animation-delay:.80s}
  section.present .perfil__wall img:nth-child(8){animation-delay:.85s}
  section.present .perfil__wall img:nth-child(9){animation-delay:.90s}
  section.present .perfil__wall img:nth-child(10){animation-delay:.95s}
  section.present .perfil__wall img:nth-child(11){animation-delay:1.00s}
  section.present .perfil__wall img:nth-child(12){animation-delay:1.05s}
  section.present .perfil__wall img:nth-child(13){animation-delay:1.10s}
  section.present .perfil__wall img:nth-child(14){animation-delay:1.15s}
  section.present .perfil__wall img:nth-child(15){animation-delay:1.20s}
  section.present .perfil__wall img:nth-child(16){animation-delay:1.25s}
  section.present .perfil__wall img:nth-child(17){animation-delay:1.30s}
  section.present .perfil__wall img:nth-child(18){animation-delay:1.35s}
  section.present .perfil__wall img:nth-child(19){animation-delay:1.40s}
  section.present .perfil__wall img:nth-child(20){animation-delay:1.45s}
  section.present .perfil__wall img:nth-child(21){animation-delay:1.50s}
  section.present .perfil__wall img:nth-child(22){animation-delay:1.55s}
  section.present .perfil__wall img:nth-child(23){animation-delay:1.60s}
}
@media (prefers-reduced-motion: reduce){
  .perfil__wall img{opacity:1;animation:none}
}
@keyframes perfilFade{
  from{opacity:0;transform:translateY(8px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}


/* === slide 06 · PAREDE DA EUROPA (galeria escura) === */
.slide--eu{display:flex;flex-direction:column;height:100%;gap:16px;padding:6px 0}
.kicker--gold{color:var(--gold-deep)}
.eu-head{flex:0 0 auto}
.eu-title{font-family:var(--f-sans);font-weight:800;font-size:clamp(30px,3.4vw,54px);line-height:1.05;letter-spacing:-0.01em;color:#fff;margin:6px 0 0}
.eu-title .gold{color:var(--gold)}
.eu-wall{display:grid;grid-template-columns:repeat(10,1fr);grid-auto-rows:auto;gap:5px;flex:1;min-height:0;align-content:center}
.eu-wall img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center;border-radius:2px;display:block;background:#1a2f4a;box-shadow:0 2px 8px rgba(0,0,0,.35);opacity:0;animation:euFade .5s ease-out forwards;transition:transform .25s ease,box-shadow .25s ease}
.eu-wall img:hover{transform:scale(1.08);z-index:5;position:relative;box-shadow:0 8px 24px rgba(0,0,0,.6)}
.eu-punch{flex:0 0 auto;font-family:var(--f-sans);font-size:clamp(17px,1.5vw,24px);color:rgba(255,255,255,.88);margin:0;text-align:center}
.eu-punch b{color:var(--gold)}
@keyframes euFade{from{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
@media (prefers-reduced-motion: no-preference){
  section.present .eu-wall img:nth-child(1){animation-delay:0.39s}
  section.present .eu-wall img:nth-child(2){animation-delay:0.44s}
  section.present .eu-wall img:nth-child(3){animation-delay:0.48s}
  section.present .eu-wall img:nth-child(4){animation-delay:0.53s}
  section.present .eu-wall img:nth-child(5){animation-delay:0.57s}
  section.present .eu-wall img:nth-child(6){animation-delay:0.62s}
  section.present .eu-wall img:nth-child(7){animation-delay:0.67s}
  section.present .eu-wall img:nth-child(8){animation-delay:0.71s}
  section.present .eu-wall img:nth-child(9){animation-delay:0.75s}
  section.present .eu-wall img:nth-child(10){animation-delay:0.80s}
  section.present .eu-wall img:nth-child(11){animation-delay:0.84s}
  section.present .eu-wall img:nth-child(12){animation-delay:0.89s}
  section.present .eu-wall img:nth-child(13){animation-delay:0.93s}
  section.present .eu-wall img:nth-child(14){animation-delay:0.98s}
  section.present .eu-wall img:nth-child(15){animation-delay:1.02s}
  section.present .eu-wall img:nth-child(16){animation-delay:1.07s}
  section.present .eu-wall img:nth-child(17){animation-delay:1.11s}
  section.present .eu-wall img:nth-child(18){animation-delay:1.16s}
  section.present .eu-wall img:nth-child(19){animation-delay:1.21s}
  section.present .eu-wall img:nth-child(20){animation-delay:1.25s}
  section.present .eu-wall img:nth-child(21){animation-delay:1.29s}
  section.present .eu-wall img:nth-child(22){animation-delay:1.34s}
  section.present .eu-wall img:nth-child(23){animation-delay:1.38s}
  section.present .eu-wall img:nth-child(24){animation-delay:1.43s}
  section.present .eu-wall img:nth-child(25){animation-delay:1.48s}
  section.present .eu-wall img:nth-child(26){animation-delay:1.52s}
  section.present .eu-wall img:nth-child(27){animation-delay:1.56s}
  section.present .eu-wall img:nth-child(28){animation-delay:1.61s}
}
@media (prefers-reduced-motion: reduce){ .eu-wall img{opacity:1;animation:none} }
