/* =========================================================
   FARMATREND 2027 - Design System
   Paleta extraída da logo 2027 (navy + verde-água / teal)
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  /* --- cor --- */
  --navy-950:#03233F;
  --navy-900:#0A2E4D;
  --navy-800:#123B5E;
  --teal-700:#1C6D64;
  --teal-500:#1F9184;
  --teal-400:#27A094;
  --mint-400:#42B59E;
  --mint-300:#8AD3C2;
  --paper-50:#F5FAF8;
  --paper-100:#EDF5F2;
  --white:#FFFFFF;
  --slate-500:#5B7082;
  --slate-300:#A9B7C2;
  --line:rgba(3,35,63,.12);
  --line-onDark:rgba(255,255,255,.14);

  /* --- tipografia --- */
  --f-display:'Space Grotesk', 'Segoe UI', sans-serif;
  --f-body:'Inter', 'Segoe UI', sans-serif;
  --f-mono:'IBM Plex Mono', 'Courier New', monospace;

  /* --- layout --- */
  --maxw:1200px;
  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:28px;
  --shadow-card:0 12px 32px -16px rgba(3,35,63,.18);
  --ease:cubic-bezier(.22,.85,.32,1);
}

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

body{
  margin:0;
  font-family:var(--f-body);
  color:var(--navy-950);
  background:var(--paper-50);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}

h1,h2,h3,h4{
  font-family:var(--f-display);
  color:var(--navy-950);
  margin:0 0 .5em;
  line-height:1.1;
  letter-spacing:-.01em;
}

p{margin:0 0 1em; color:var(--slate-500);}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{margin:0; padding:0; list-style:none;}
button{font-family:inherit;}

.container{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 32px;
}

.eyebrow{
  font-family:var(--f-mono);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--teal-500);
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.eyebrow::before{
  content:'';
  width:22px; height:1px;
  background:var(--teal-500);
  display:inline-block;
}

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

/* --- botões --- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 28px;
  border-radius:999px;
  font-weight:600;
  font-size:.95rem;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
  white-space:nowrap;
}
.btn-primary{
  background:var(--teal-400);
  color:var(--white);
  box-shadow:0 10px 24px -8px rgba(31,145,132,.55);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -8px rgba(31,145,132,.6); background:var(--mint-400); }
.btn-ghost{
  background:transparent;
  color:var(--white);
  border-color:rgba(255,255,255,.35);
}
.btn-ghost:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.6); }
.btn-outline{
  background:transparent;
  color:var(--navy-950);
  border-color:var(--line);
}
.btn-outline:hover{ border-color:var(--teal-400); color:var(--teal-700); }
.btn-block{width:100%;}

/* --- header / nav --- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(245,250,248,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 32px;
  max-width:var(--maxw);
  margin:0 auto;
}
.nav-logo img{height:34px; width:auto;}
.nav-links{
  display:flex;
  gap:32px;
  align-items:center;
}
.nav-links a{
  font-size:.92rem;
  font-weight:500;
  color:var(--navy-900);
  position:relative;
  padding:6px 0;
}
.nav-links a::after{
  content:'';
  position:absolute; left:0; right:0; bottom:0;
  height:2px; background:var(--teal-400);
  transform:scaleX(0); transform-origin:left;
  transition:transform .25s var(--ease);
}
.nav-links a:hover::after, .nav-links a.active::after{transform:scaleX(1);}
.nav-links a.active{color:var(--teal-700);}
.nav-cta{display:flex; align-items:center; gap:18px;}
.nav-toggle{display:none;}

@media (max-width:900px){
  .nav-links{
    position:fixed; inset:72px 0 0 0;
    background:var(--paper-50);
    flex-direction:column;
    justify-content:flex-start;
    padding:32px;
    gap:22px;
    transform:translateX(100%);
    transition:transform .35s var(--ease);
  }
  .nav-links.open{transform:translateX(0);}
  .nav-toggle{
    display:flex; flex-direction:column; gap:5px;
    background:none; border:none; cursor:pointer; padding:8px;
  }
  .nav-toggle span{width:24px; height:2px; background:var(--navy-950); border-radius:2px;}
  .nav-cta .btn-primary{padding:11px 18px; font-size:.85rem;}
}

/* --- hero --- */
.hero{
  position:relative;
  background:linear-gradient(160deg,var(--navy-950) 0%, var(--navy-900) 55%, var(--teal-700) 130%);
  color:var(--white);
  overflow:hidden;
  padding:96px 0 120px;
}
.hero-network{
  position:absolute; inset:0;
  width:100%; height:100%;
  opacity:.55;
  pointer-events:none;
}
.hero-inner{
  position:relative; z-index:2;
  max-width:720px;
}
.hero h1{
  color:var(--white);
  font-size:clamp(2.4rem, 5vw, 3.6rem);
  margin-bottom:.4em;
}
.hero h1 em{
  font-style:normal;
  color:var(--mint-300);
}
.hero p.lead{
  color:rgba(255,255,255,.78);
  font-size:1.15rem;
  max-width:560px;
  margin-bottom:2em;
}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:56px;}
.hero-stats{
  display:flex; gap:40px; flex-wrap:wrap;
  border-top:1px solid var(--line-onDark);
  padding-top:28px;
}
.hero-stats .stat-num{
  font-family:var(--f-mono);
  font-size:1.7rem;
  font-weight:600;
  color:var(--mint-300);
  display:block;
}
.hero-stats .stat-label{
  font-size:.82rem;
  color:rgba(255,255,255,.65);
}

/* --- section shells --- */
.section{padding:104px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head p{font-size:1.05rem;}

.section-dark{
  background:var(--navy-950);
  color:var(--white);
}
.section-dark h2, .section-dark h3{color:var(--white);}
.section-dark p{color:rgba(255,255,255,.68);}
.section-dark .eyebrow{color:var(--mint-300);}
.section-dark .eyebrow::before{background:var(--mint-300);}

/* --- quem somos --- */
.about-grid{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:64px;
  align-items:center;
}
.about-video{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  aspect-ratio:16/10;
  background:var(--navy-900);
}
.about-video iframe{width:100%; height:100%; border:0;}
@media (max-width:900px){
  .about-grid{grid-template-columns:1fr;}
}

/* --- ecossistema --- */
.ecosystem{display:flex; justify-content:center;}
.ecosystem-diagram{width:100%; max-width:640px; height:auto;}
@media (max-width:600px){
  .ecosystem-diagram{max-width:100%;}
}

/* --- galeria do evento --- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:160px;
  gap:14px;
}
.gallery-grid .g-item{
  border-radius:var(--radius-sm);
  overflow:hidden;
  position:relative;
  background-color:var(--paper-100);
  background-image:var(--g-img, none);
  background-size:cover;
  background-position:center;
  transition:transform .5s var(--ease);
}
.gallery-grid .g-item:hover{transform:scale(1.03);}
.gallery-grid .g-wide{grid-column:span 2;}
.gallery-grid .g-tall{grid-row:span 2;}
@media (max-width:900px){
  .gallery-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:140px;}
  .gallery-grid .g-wide{grid-column:span 2;}
}
@media (max-width:560px){
  .gallery-grid{grid-template-columns:1fr 1fr; grid-auto-rows:120px;}
}

/* --- pilares --- */
.pillars{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
}
.pillars::before{
  content:'';
  position:absolute;
  top:34px; left:8%; right:8%;
  height:1px;
  background:repeating-linear-gradient(90deg, var(--teal-400) 0 8px, transparent 8px 16px);
  z-index:0;
}
.pillar-card{
  position:relative; z-index:1;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:30px 24px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.pillar-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-card); border-color:var(--mint-300); }
.pillar-icon{
  width:52px; height:52px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--teal-400),var(--navy-900));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px;
  color:#fff;
}
.pillar-card h3{font-size:1.1rem; margin-bottom:.4em;}
.pillar-card p{font-size:.92rem; margin-bottom:0;}
@media (max-width:900px){
  .pillars{grid-template-columns:1fr 1fr;}
  .pillars::before{display:none;}
}
@media (max-width:560px){ .pillars{grid-template-columns:1fr;} }

/* --- numeros --- */
.numbers{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  text-align:center;
}
.number-card{padding:24px 12px; border-left:1px solid var(--line-onDark);}
.number-card:first-child{border-left:none;}
.number-card .num{
  font-family:var(--f-mono);
  font-size:clamp(2rem,4vw,2.7rem);
  color:var(--mint-300);
  font-weight:600;
  display:block;
}
.number-card .label{color:rgba(255,255,255,.68); font-size:.9rem;}
@media (max-width:800px){
  .numbers{grid-template-columns:1fr 1fr;}
  .number-card{border-left:none; border-top:1px solid var(--line-onDark);}
}

/* --- depoimentos --- */
.testimonial-track{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:24px;
}
.testimonial-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:32px;
  display:flex; flex-direction:column; gap:20px;
}
.testimonial-card .quote{font-size:1.02rem; color:var(--navy-900); margin:0;}
.testimonial-meta{display:flex; align-items:center; gap:14px;}
.testimonial-meta img{height:34px; width:auto;}
.testimonial-meta .name{font-weight:600; font-size:.92rem; color:var(--navy-950);}
.testimonial-meta .role{font-size:.8rem; color:var(--slate-500);}

/* --- carrossel de depoimentos --- */
.carousel{max-width:760px; margin:0 auto;}
.carousel-track{
  display:flex;
  transition:transform .5s var(--ease);
}
.carousel-track .testimonial-card{
  flex:0 0 100%;
  min-width:0;
}
.carousel-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin-top:24px;
}
.carousel-btn{
  width:40px; height:40px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--navy-950);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:border-color .25s var(--ease), color .25s var(--ease);
}
.carousel-btn:hover{border-color:var(--teal-400); color:var(--teal-700);}
.carousel-dots{display:flex; gap:8px;}
.carousel-dot{
  width:8px; height:8px; border-radius:50%;
  border:none; padding:0;
  background:var(--line);
  cursor:pointer;
  transition:background .25s var(--ease), transform .25s var(--ease);
}
.carousel-dot.active{background:var(--teal-400); transform:scale(1.3);}

/* --- CTA teaser expositores --- */
.expo-teaser{
  background:var(--paper-100);
  border-radius:var(--radius-lg);
  padding:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  flex-wrap:wrap;
}
.expo-teaser h3{font-size:1.6rem; max-width:480px;}
.expo-teaser p{max-width:480px;}

/* --- CTA final --- */
.cta-final{
  text-align:center;
  position:relative;
  overflow:hidden;
}
.cta-final h2{font-size:clamp(1.8rem,4vw,2.6rem); max-width:640px; margin-inline:auto;}
.cta-final .btn{margin-top:8px;}

/* --- redes sociais --- */
.social-row{
  display:flex;
  gap:32px;
  justify-content:center;
  align-items:stretch;
  flex-wrap:wrap;
}
.social-row a{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:1 1 260px;
  max-width:400px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.social-row a img{
  width:100%;
  height:auto;
  display:block;
}
.social-row a:hover{
  transform:translateY(-6px);
}
@media (max-width:760px){
  .social-row{flex-direction:column; align-items:center; gap:24px;}
  .social-row a{flex:unset; width:100%; max-width:360px;}
}

/* --- parceiros marquee --- */
.partners{
  background:var(--white);
  padding:64px 0;
  border-top:1px solid var(--line);
}
.marquee{overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.marquee-track{
  display:flex; gap:64px; width:max-content;
  animation:scroll 32s linear infinite;
}
.marquee-track img{height:38px; width:auto;}
@keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* --- footer --- */
.site-footer{
  background:var(--navy-950);
  color:rgba(255,255,255,.6);
  padding:40px 0;
  font-size:.85rem;
}
.footer-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
.footer-row img{height:26px;}
.footer-link{
  color:rgba(255,255,255,.6);
  font-size:.85rem;
  text-decoration:underline;
  text-underline-offset:3px;
  transition:color .25s var(--ease);
}
.footer-link:hover{color:#fff;}

/* ============ PÁGINA DE ESTANDES ============ */
.stands-hero{padding-bottom:80px;}
.stands-hero .chips{display:flex; gap:12px; flex-wrap:wrap; margin-top:8px;}
.chip{
  font-family:var(--f-mono);
  font-size:.78rem;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid var(--line-onDark);
  color:rgba(255,255,255,.85);
}

.benefits-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.benefit-card{
  padding:28px;
  border-radius:var(--radius-md);
  background:var(--white);
  border:1px solid var(--line);
}
.benefit-card .n{font-family:var(--f-mono); color:var(--teal-500); font-size:.8rem; margin-bottom:12px; display:block;}
.benefit-card h3{font-size:1.05rem;}
.benefit-card p{font-size:.92rem; margin:0;}
@media (max-width:900px){ .benefits-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .benefits-grid{grid-template-columns:1fr;} }

/* planta / grid de estandes (elemento assinatura) */
.floorplan-wrap{
  background:var(--navy-950);
  border-radius:var(--radius-lg);
  padding:44px;
  color:#fff;
}
.floorplan-legend{display:flex; gap:24px; margin-bottom:28px; flex-wrap:wrap;}
.legend-item{display:flex; align-items:center; gap:8px; font-size:.85rem; color:rgba(255,255,255,.75);}
.legend-dot{width:10px; height:10px; border-radius:3px;}
.floor-grid{
  display:grid;
  grid-template-columns:repeat(10,1fr);
  gap:8px;
}
.booth{
  aspect-ratio:1;
  border-radius:6px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1);
  transition:transform .2s var(--ease);
}
.booth[data-tier="grande"]{background:var(--mint-400);}
.booth[data-tier="medio"]{background:var(--teal-500);}
.booth[data-tier="pequeno"]{background:var(--teal-700);}
.booth[data-tier="quiosque"]{background:#7C8B96;}
.booth[data-tier="ocupado"]{background:rgba(255,255,255,.06); border-style:dashed;}
.booth:hover{transform:scale(1.15);}

/* planos de estande */
.plans{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.plan-card{
  border-radius:var(--radius-md);
  border:1px solid var(--line);
  background:var(--white);
  padding:36px 28px;
  display:flex; flex-direction:column; gap:18px;
  position:relative;
}
.plan-card.featured{
  border-color:var(--teal-400);
  box-shadow:var(--shadow-card);
  transform:translateY(-8px);
}
.plan-card.featured .plan-tag{
  position:absolute; top:-14px; left:28px;
  background:var(--teal-400); color:#fff;
  font-family:var(--f-mono); font-size:.72rem;
  padding:6px 14px; border-radius:999px;
}
.plan-card .swatch{width:34px; height:8px; border-radius:4px;}
.plan-card h3{font-size:1.25rem; margin-bottom:0;}
.plan-card .m2{font-family:var(--f-mono); font-size:.85rem; color:var(--slate-500);}
.plan-card ul{display:flex; flex-direction:column; gap:10px; margin:8px 0;}
.plan-card ul li{
  font-size:.9rem; color:var(--navy-900);
  padding-left:22px; position:relative;
}
.plan-card ul li::before{
  content:'';
  position:absolute; left:0; top:6px;
  width:12px; height:12px;
  background:var(--teal-400);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 20.6 7.4 19.2 6z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 20.6 7.4 19.2 6z'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media (max-width:900px){ .plans{grid-template-columns:1fr;} .plan-card.featured{transform:none;} }

.plans-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:1100px){ .plans-4{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .plans-4{grid-template-columns:1fr;} }

/* cotas complementares */
.addons-panel{
  margin-top:32px;
  background:var(--navy-950);
  border-radius:var(--radius-lg);
  padding:40px 44px;
  display:grid;
  grid-template-columns:1.3fr auto auto;
  gap:32px;
  align-items:center;
}
.addons-panel h3, .addons-panel p{color:#fff;}
.addons-panel p{color:rgba(255,255,255,.68); margin-bottom:0;}
.addons-list{display:flex; gap:14px; flex-wrap:wrap;}
.addons-list li span{
  display:inline-block;
  font-family:var(--f-mono);
  font-size:.85rem;
  color:#fff;
  border:1px solid var(--line-onDark);
  border-radius:999px;
  padding:10px 18px;
  white-space:nowrap;
}
@media (max-width:900px){
  .addons-panel{grid-template-columns:1fr; text-align:left;}
}

/* renders 3D dos estandes */
.render-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.render-item{
  margin:0;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-card);
}
.render-item img{width:100%; height:100%; object-fit:cover; display:block;}
@media (max-width:800px){ .render-grid{grid-template-columns:1fr;} }

/* como funciona - timeline (sequencia real, numeracao cabe aqui) */
.timeline{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}
.timeline-step{padding-top:16px; border-top:2px solid var(--teal-400);}
.timeline-step .step-n{font-family:var(--f-mono); color:var(--teal-500); font-size:.85rem;}
.timeline-step h3{font-size:1.05rem; margin:.3em 0;}
.timeline-step p{font-size:.9rem;}
@media (max-width:900px){ .timeline{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .timeline{grid-template-columns:1fr;} }

/* FAQ */
.faq-list{max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:1px; background:var(--line);}
.faq-item{background:var(--paper-50);}
.faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:22px 28px;
  font-weight:600;
  display:flex; justify-content:space-between; align-items:center;
  color:var(--navy-950);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:'+';
  font-family:var(--f-mono);
  font-size:1.3rem;
  color:var(--teal-500);
  transition:transform .25s var(--ease);
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .faq-a{padding:0 28px 22px; color:var(--slate-500); font-size:.94rem;}

/* form de contato expositor */
.expo-form{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:44px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.expo-form .field{display:flex; flex-direction:column; gap:8px;}
.expo-form .field.full{grid-column:1/-1;}
.expo-form label{font-size:.85rem; font-weight:600; color:var(--navy-900);}
.expo-form input, .expo-form select, .expo-form textarea{
  font-family:var(--f-body);
  font-size:.95rem;
  padding:13px 16px;
  border-radius:var(--radius-sm);
  border:1px solid var(--line);
  background:var(--paper-50);
  color:var(--navy-950);
}
.expo-form input:focus, .expo-form select:focus, .expo-form textarea:focus{
  outline:none; border-color:var(--teal-400); background:var(--white);
}
@media (max-width:700px){ .expo-form{grid-template-columns:1fr; padding:28px;} }

/* utilitários */
.text-center{text-align:center;}
.mt-lg{margin-top:56px;}
.badge-onlight{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--paper-100); color:var(--teal-700);
  font-size:.8rem; font-weight:600;
  padding:8px 14px; border-radius:999px;
}

/* reveal on scroll */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ==========================================================
   EFEITOS & ANIMAÇÕES — FarmaTrend 2027
   ========================================================== */

/* ── reveal com direção ─────────────────────────────────── */
.reveal-left  { opacity:0; transform:translateX(-40px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.reveal-right { opacity:0; transform:translateX(40px);  transition:opacity .7s var(--ease),transform .7s var(--ease); }
.reveal-scale { opacity:0; transform:scale(.93) translateY(10px); transition:opacity .65s var(--ease),transform .65s var(--ease); }
.reveal-left.in,.reveal-right.in,.reveal-scale.in { opacity:1; transform:none; }

/* ── about-grid: esquerda desliza da esq., vídeo da dir. ── */
.about-grid > .reveal      { transform:translateX(-36px); }
.about-grid > .about-video { transform:translateX(36px); }
.about-grid > .reveal.in, .about-grid > .about-video.in { transform:translateX(0); }

/* ── stagger em grids ──────────────────────────────────── */
.pillars .pillar-card:nth-child(1),
.numbers .number-card:nth-child(1),
.benefits-grid .benefit-card:nth-child(1),
.plans .plan-card:nth-child(1)           { transition-delay:.06s; }

.pillars .pillar-card:nth-child(2),
.numbers .number-card:nth-child(2),
.benefits-grid .benefit-card:nth-child(2),
.plans .plan-card:nth-child(2)           { transition-delay:.14s; }

.pillars .pillar-card:nth-child(3),
.numbers .number-card:nth-child(3),
.benefits-grid .benefit-card:nth-child(3),
.plans .plan-card:nth-child(3)           { transition-delay:.22s; }

.pillars .pillar-card:nth-child(4),
.numbers .number-card:nth-child(4),
.benefits-grid .benefit-card:nth-child(4),
.plans .plan-card:nth-child(4)           { transition-delay:.30s; }

.benefits-grid .benefit-card:nth-child(5) { transition-delay:.38s; }
.benefits-grid .benefit-card:nth-child(6) { transition-delay:.46s; }

.timeline .timeline-step:nth-child(1) { transition-delay:.06s; }
.timeline .timeline-step:nth-child(2) { transition-delay:.14s; }
.timeline .timeline-step:nth-child(3) { transition-delay:.22s; }
.timeline .timeline-step:nth-child(4) { transition-delay:.30s; }

/* ── galeria: cada item anima ao pai receber .in ─────────── */
.gallery-grid .g-item {
  opacity:0;
  transform:scale(.93) translateY(16px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),filter .4s var(--ease);
}
.gallery-grid.in .g-item        { opacity:1; transform:none; }
.gallery-grid .g-item:hover     { transform:scale(1.04) !important; filter:brightness(1.07); }

.gallery-grid .g-item:nth-child(1)  { transition-delay:.04s; }
.gallery-grid .g-item:nth-child(2)  { transition-delay:.09s; }
.gallery-grid .g-item:nth-child(3)  { transition-delay:.14s; }
.gallery-grid .g-item:nth-child(4)  { transition-delay:.19s; }
.gallery-grid .g-item:nth-child(5)  { transition-delay:.24s; }
.gallery-grid .g-item:nth-child(6)  { transition-delay:.29s; }
.gallery-grid .g-item:nth-child(7)  { transition-delay:.34s; }
.gallery-grid .g-item:nth-child(8)  { transition-delay:.39s; }
.gallery-grid .g-item:nth-child(9)  { transition-delay:.44s; }
.gallery-grid .g-item:nth-child(10) { transition-delay:.49s; }
.gallery-grid .g-item:nth-child(11) { transition-delay:.54s; }
.gallery-grid .g-item:nth-child(12) { transition-delay:.59s; }
.gallery-grid .g-item:nth-child(13) { transition-delay:.64s; }
.gallery-grid .g-item:nth-child(14) { transition-delay:.69s; }
.gallery-grid .g-item:nth-child(15) { transition-delay:.74s; }
.gallery-grid .g-item:nth-child(16) { transition-delay:.79s; }
.gallery-grid .g-item:nth-child(17) { transition-delay:.84s; }
.gallery-grid .g-item:nth-child(18) { transition-delay:.89s; }
.gallery-grid .g-item:nth-child(19) { transition-delay:.94s; }

/* ── hero stats: float suave ─────────────────────────────── */
@keyframes ft-float {
  0%,100%{ transform:translateY(0); }
  50%    { transform:translateY(-7px); }
}
.hero-stats > div                  { animation:ft-float 5s ease-in-out infinite; }
.hero-stats > div:nth-child(2)     { animation-delay:.7s; }
.hero-stats > div:nth-child(3)     { animation-delay:1.4s; }
.hero-stats > div:nth-child(4)     { animation-delay:2.1s; }

/* ── botão primário: anel pulsante (hero e CTA) ──────────── */
@keyframes ft-pulse {
  0%  { box-shadow:0 10px 24px -8px rgba(31,145,132,.55), 0 0 0 0    rgba(66,181,158,.5); }
  70% { box-shadow:0 10px 24px -8px rgba(31,145,132,.3),  0 0 0 14px rgba(66,181,158,0); }
  100%{ box-shadow:0 10px 24px -8px rgba(31,145,132,.55), 0 0 0 0    rgba(66,181,158,0); }
}
.hero-actions .btn-primary,
.cta-final .btn-primary { animation:ft-pulse 2.8s ease-in-out infinite; }

/* ── CTA final: glow ambiente pulsante ───────────────────── */
.cta-final { position:relative; overflow:hidden; }
@keyframes ft-breathe {
  0%,100%{ transform:translate(-50%,-50%) scale(1);    opacity:.5; }
  50%    { transform:translate(-50%,-50%) scale(1.25); opacity:.9; }
}
.cta-final::after {
  content:'';
  position:absolute; inset:0;
  width:700px; height:360px;
  border-radius:50%;
  background:radial-gradient(ellipse, rgba(66,181,158,.14) 0%, transparent 68%);
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  pointer-events:none;
  animation:ft-breathe 6s ease-in-out infinite;
}
.cta-final > * { position:relative; z-index:1; }

/* ── seções escuras: brilho sutil no topo ────────────────── */
.section-dark { position:relative; overflow:hidden; }
.section-dark::before {
  content:'';
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:90%; max-width:860px; height:180px;
  background:radial-gradient(ellipse at top, rgba(66,181,158,.09) 0%, transparent 70%);
  pointer-events:none;
  z-index:0;
}
.section-dark > * { position:relative; z-index:1; }

/* ── eyebrow shimmer (em section-head) ───────────────────── */
@keyframes ft-shimmer {
  0%  { background-position:-200% center; }
  100%{ background-position:200% center; }
}
.section-head .eyebrow {
  background:linear-gradient(90deg, var(--teal-700) 20%, var(--mint-300) 50%, var(--teal-700) 80%);
  background-size:200% auto;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:ft-shimmer 5s linear infinite;
}
.section-dark .section-head .eyebrow {
  background:linear-gradient(90deg, var(--mint-300) 20%, #fff 50%, var(--mint-300) 80%);
  background-size:200% auto;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

/* ── plan card destacado: glow aprimorado ────────────────── */
.plan-card.featured {
  box-shadow:0 0 0 1px var(--teal-400), var(--shadow-card), 0 0 44px -8px rgba(66,181,158,.28);
}
.plan-card.featured:hover {
  box-shadow:0 0 0 1px var(--teal-400), 0 24px 48px -12px rgba(3,35,63,.28), 0 0 60px -6px rgba(66,181,158,.4);
}

/* ── benefit card: label e hover ─────────────────────────── */
.benefit-card {
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.benefit-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-card); border-color:var(--mint-300); }
.benefit-card .n { transition:color .3s var(--ease), letter-spacing .3s var(--ease); }
.benefit-card:hover .n { color:var(--teal-400); letter-spacing:.22em; }

/* ── timeline step: hover lift ───────────────────────────── */
.timeline-step { transition:transform .3s var(--ease); }
.timeline-step:hover { transform:translateY(-4px); }

/* ── render items: hover lift + scale ───────────────────── */
.render-item { transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.render-item:hover { transform:translateY(-6px) scale(1.015); box-shadow:0 20px 48px -12px rgba(3,35,63,.22); }

/* ── expo-teaser: borda brilhante no hover ───────────────── */
.expo-teaser { transition:box-shadow .4s var(--ease); }
.expo-teaser:hover { box-shadow:0 0 0 1px var(--mint-300), 0 20px 48px -16px rgba(3,35,63,.14); }

/* ── FAQ: resposta desliza ao abrir ──────────────────────── */
@keyframes ft-slide-down {
  from { opacity:0; transform:translateY(-10px); }
  to   { opacity:1; transform:translateY(0); }
}
.faq-item[open] .faq-a { animation:ft-slide-down .3s var(--ease) both; }
.faq-item[open] summary { color:var(--teal-700); }
.faq-item { transition:background .3s var(--ease); }
.faq-item[open] { background:var(--paper-100); }

/* ── nav logo: hover suave ───────────────────────────────── */
.nav-logo { transition:transform .3s var(--ease), opacity .3s var(--ease); }
.nav-logo:hover { transform:scale(1.04); opacity:.82; }

/* ── social row: glow ao hover ───────────────────────────── */
.social-row a:hover { transform:translateY(-8px) scale(1.02); filter:drop-shadow(0 12px 24px rgba(66,181,158,.28)); }

/* ── footer logo ─────────────────────────────────────────── */
.footer-row img { transition:opacity .25s var(--ease); }
.footer-row img:hover { opacity:.7; }

/* ── ecossistema: hover nas bolinhas satélite ────────────── */
.eco-node { cursor:pointer; }
.eco-node circle {
  transition:transform .35s var(--ease), fill .35s var(--ease), filter .35s var(--ease);
  transform-box:fill-box;
  transform-origin:center;
}
.eco-node:hover circle {
  transform:scale(1.35);
  fill:#42B59E;
  filter:drop-shadow(0 0 10px rgba(66,181,158,.85));
}
.eco-node text {
  transition:fill .35s var(--ease), font-weight .35s var(--ease);
}
.eco-node:hover text {
  fill:#8AD3C2;
  font-weight:700;
}
