/* ============================================================
   Corredor Ponte Nova-Caratinga: Rota da Leopoldina
   ============================================================ */

:root{
  --forest-dark:#0b2417;
  --forest:#0f3d24;
  --forest-2:#124a2b;
  --green:#1fa851;
  --green-light:#5fd66a;
  --lime:#b7e832;
  --orange:#ff7a30;
  --orange-2:#ff5a3c;
  --coral:#ff4d6d;
  --teal:#12b8ac;
  --sky:#2dd4c8;
  --gold:#ffc93c;
  --cream:#fff9ef;
  --cream-2:#fdf1dc;
  --paper:#ffffff;
  --ink:#0f2318;
  --ink-soft:#3c5346;
  --line:#e7ddc9;
  --shadow: 0 20px 50px -20px rgba(11,36,23,.35);
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --ease: cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:"Fraunces",Georgia,serif;
  background:var(--cream);
  color:var(--ink);
  overflow-x:hidden;
}
body.no-scroll{overflow:hidden;}
h1,h2,h3,h4{
  font-family:"Fraunces",Georgia,serif;
  font-weight:700;
  line-height:1.08;
  margin:0 0 .5em;
  letter-spacing:-.01em;
}
p{font-family:"Inter",system-ui,sans-serif; line-height:1.7; color:var(--ink-soft); margin:0 0 1em;}
.sans{font-family:"Inter",system-ui,sans-serif;}
a{color:inherit;}
img{max-width:100%; display:block;}
button{font-family:inherit; cursor:pointer;}
.container{width:100%; max-width:1180px; margin:0 auto; padding:0 24px;}
section{position:relative;}
.section-pad{padding:110px 0;}
@media (max-width:768px){ .section-pad{padding:70px 0;} }

.svg-sprite{position:absolute; width:0; height:0; overflow:hidden;}
.icon{width:1em; height:1em; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; display:inline-block; vertical-align:-.15em;}

/* -------------------- kicker / eyebrow -------------------- */
.kicker{
  display:inline-flex; align-items:center; gap:8px;
  font-family:"Inter",sans-serif; font-weight:700; font-size:.72rem;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--green);
  background:rgba(31,168,81,.1);
  border:1px solid rgba(31,168,81,.25);
  padding:7px 14px 7px 10px; border-radius:100px;
  margin-bottom:18px;
}
.kicker .dot{width:7px; height:7px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 4px rgba(255,122,48,.2);}
.kicker.on-dark{color:var(--lime); background:rgba(183,232,50,.12); border-color:rgba(183,232,50,.3);}

/* -------------------- reveal on scroll -------------------- */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.is-visible{opacity:1; transform:translateY(0);}
.reveal-scale{opacity:0; transform:scale(.94); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal-scale.is-visible{opacity:1; transform:scale(1);}
.stagger > *{transition-delay:calc(var(--i,0) * 90ms);}

/* ============================================================ NAV */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:18px 0;
  transition:background .35s var(--ease), padding .35s var(--ease), box-shadow .35s var(--ease);
}
.nav.solid{
  background:rgba(255,249,239,.92);
  backdrop-filter:blur(10px);
  padding:12px 0;
  box-shadow:0 10px 30px -18px rgba(11,36,23,.35);
}
.nav .container{display:flex; align-items:center; justify-content:space-between; gap:20px;}
.brand{display:flex; align-items:center; gap:10px; font-family:"Inter",sans-serif; font-weight:800; color:var(--cream); text-decoration:none; font-size:1.02rem; letter-spacing:-.01em;}
.nav.solid .brand{color:var(--forest-dark);}
.brand .mark{
  width:38px; height:38px; border-radius:11px;
  background:linear-gradient(135deg,var(--green),var(--teal));
  display:flex; align-items:center; justify-content:center; color:#fff;
  box-shadow:0 6px 16px -4px rgba(18,184,172,.55);
  flex:none;
}
.brand .mark .icon{width:20px; height:20px;}
.brand small{display:block; font-weight:500; font-size:.66rem; opacity:.75; letter-spacing:.03em;}

.nav-links{display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; font-family:"Inter",sans-serif;}
.nav-links a{
  display:block; padding:9px 14px; border-radius:100px; text-decoration:none;
  font-size:.86rem; font-weight:600; color:rgba(255,249,239,.85);
  transition:background .25s, color .25s;
  white-space:nowrap;
}
.nav.solid .nav-links a{color:var(--ink-soft);}
.nav-links a:hover, .nav-links a.active{background:rgba(255,255,255,.14); color:#fff;}
.nav.solid .nav-links a:hover, .nav.solid .nav-links a.active{background:rgba(31,168,81,.12); color:var(--forest);}
.nav-cta{
  font-family:"Inter",sans-serif; font-weight:700; font-size:.84rem;
  padding:10px 18px; border-radius:100px; text-decoration:none;
  background:linear-gradient(135deg,var(--orange),var(--coral)); color:#fff;
  box-shadow:0 10px 22px -8px rgba(255,90,60,.6);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  flex:none;
}
.nav-cta:hover{transform:translateY(-2px); box-shadow:0 16px 28px -8px rgba(255,90,60,.7);}
.nav-toggle{display:none; background:none; border:0; color:#fff; padding:6px;}
.nav.solid .nav-toggle{color:var(--forest-dark);}
.nav-toggle .icon{width:26px; height:26px;}

@media (max-width:1100px){
  .nav-links{
    position:fixed; inset:0 0 0 auto; width:min(320px,84vw); height:100vh;
    background:var(--forest-dark); flex-direction:column; align-items:stretch;
    padding:100px 26px 40px; gap:4px; transform:translateX(100%);
    transition:transform .45s var(--ease); box-shadow:-20px 0 50px rgba(0,0,0,.3);
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{color:rgba(255,249,239,.88); font-size:1.05rem; padding:13px 16px;}
  .nav-toggle{display:block;}
  .nav-cta{display:none;}
}

/* ============================================================ HERO */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  padding:150px 0 90px;
  background:
    radial-gradient(ellipse 900px 500px at 12% -10%, rgba(255,122,48,.35), transparent 60%),
    radial-gradient(ellipse 800px 600px at 100% 0%, rgba(45,212,200,.28), transparent 55%),
    linear-gradient(160deg, var(--forest-dark) 0%, var(--forest) 55%, #0a3322 100%);
  overflow:hidden;
  color:#fff;
}
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 50% 100%, rgba(0,0,0,.35), transparent 60%);
}
.hero-grain{
  position:absolute; inset:0; opacity:.05; pointer-events:none; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-route{position:absolute; right:-6%; top:8%; width:62%; max-width:760px; opacity:.9; pointer-events:none;}
.hero-route svg{width:100%; height:auto;}
.hero-route path.line{fill:none; stroke:url(#routeGrad); stroke-width:3; stroke-linecap:round; stroke-dasharray:2000; stroke-dashoffset:2000; animation:draw 3.2s var(--ease) .4s forwards;}
.hero-route circle{fill:var(--gold); opacity:0; animation:popIn .5s var(--ease) forwards;}
@keyframes draw{to{stroke-dashoffset:0;}}
@keyframes popIn{to{opacity:1;}}

.hero .container{position:relative; z-index:2;}
.hero-content{max-width:760px;}
.hero h1{
  font-size:clamp(2.5rem, 6vw, 4.6rem);
  color:#fff;
  margin-bottom:.3em;
}
.hero h1 em{
  font-style:normal;
  background:linear-gradient(100deg,var(--lime),var(--gold) 55%,var(--orange));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-sub{
  font-size:clamp(1.05rem,1.9vw,1.3rem); color:rgba(255,249,239,.88); max-width:640px;
  font-family:"Inter",sans-serif; font-weight:400; line-height:1.65;
}
.hero-badges{display:flex; flex-wrap:wrap; gap:9px; margin:26px 0 36px;}
.hero-badges span{
  font-family:"Inter",sans-serif; font-size:.78rem; font-weight:600;
  padding:7px 13px; border-radius:100px; background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18); color:#fff; backdrop-filter:blur(6px);
}
.hero-cta{display:flex; flex-wrap:wrap; gap:14px;}
.btn{
  font-family:"Inter",sans-serif; font-weight:700; font-size:.94rem;
  padding:15px 26px; border-radius:100px; text-decoration:none; border:0;
  display:inline-flex; align-items:center; gap:9px;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s;
}
.btn .icon{width:18px; height:18px;}
.btn-primary{background:linear-gradient(135deg,var(--orange),var(--coral)); color:#fff; box-shadow:0 14px 30px -10px rgba(255,90,60,.65);}
.btn-primary:hover{transform:translateY(-3px); box-shadow:0 18px 34px -8px rgba(255,90,60,.75);}
.btn-ghost{background:rgba(255,255,255,.08); color:#fff; border:1.5px solid rgba(255,255,255,.4);}
.btn-ghost:hover{background:rgba(255,255,255,.18); transform:translateY(-3px);}
.btn-dark{background:var(--forest-dark); color:#fff;}
.btn-dark:hover{background:#08160e; transform:translateY(-3px);}

.hero-stats{
  position:relative; z-index:2; margin-top:70px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border-top:1px solid rgba(255,255,255,.16); padding-top:34px;
}
.hero-stats .stat{padding-right:16px;}
.hero-stats .num{
  font-size:clamp(1.8rem,3.4vw,2.6rem); font-weight:800; color:#fff;
  display:flex; align-items:baseline; gap:2px;
}
.hero-stats .num .unit{font-size:.5em; color:var(--lime); font-weight:700;}
.hero-stats .label{font-family:"Inter",sans-serif; font-size:.78rem; color:rgba(255,249,239,.7); font-weight:500; margin-top:4px;}
@media (max-width:768px){ .hero-stats{grid-template-columns:repeat(2,1fr); row-gap:26px;} .hero-route{display:none;} }
.scroll-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:rgba(255,249,239,.65); font-family:"Inter",sans-serif; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
}
.scroll-cue .wheel{width:22px; height:34px; border:2px solid rgba(255,255,255,.5); border-radius:100px; position:relative;}
.scroll-cue .wheel::before{content:""; position:absolute; top:6px; left:50%; width:3px; height:7px; background:var(--lime); border-radius:2px; transform:translateX(-50%); animation:scrollDown 1.6s ease infinite;}
@keyframes scrollDown{0%{opacity:1; top:6px;} 80%{opacity:0;} 100%{top:18px; opacity:0;}}

/* ============================================================ MARQUEE */
.marquee-strip{
  background:var(--ink); color:var(--cream); overflow:hidden;
  padding:14px 0; border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08);
}
.marquee-track{display:flex; width:max-content; animation:scrollX 34s linear infinite; gap:0;}
.marquee-track span{
  font-family:"Inter",sans-serif; font-weight:700; font-size:.85rem; letter-spacing:.04em; text-transform:uppercase;
  padding:0 28px; display:flex; align-items:center; gap:14px; white-space:nowrap; color:rgba(255,249,239,.85);
}
.marquee-track span::after{content:"●"; color:var(--orange); font-size:.5rem;}
@keyframes scrollX{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* ============================================================ SECTION HEADERS */
.section-head{max-width:720px; margin-bottom:56px;}
.section-head h2{font-size:clamp(1.9rem,3.6vw,2.9rem); color:var(--forest-dark);}
.section-head p{font-size:1.08rem;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head.on-dark h2{color:#fff;}
.section-head.on-dark p{color:rgba(255,249,239,.78);}

/* ============================================================ APRESENTAÇÃO */
.about{background:var(--cream);}
.about-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:start;}
@media (max-width:900px){ .about-grid{grid-template-columns:1fr;} }
.about-lead{font-size:1.18rem; color:var(--ink); font-family:"Inter",sans-serif;}
.municipios-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:28px;}
.mchip{
  font-family:"Inter",sans-serif; font-weight:700; font-size:.82rem;
  padding:9px 16px; border-radius:100px; background:#fff; border:1.5px solid var(--line); color:var(--forest);
  display:flex; align-items:center; gap:7px;
}
.mchip .icon{width:14px; height:14px; color:var(--orange);}
.about-card{
  background:linear-gradient(150deg,var(--forest-dark),var(--forest-2));
  border-radius:var(--radius-lg); padding:38px; color:#fff; box-shadow:var(--shadow);
  position:relative; overflow:hidden;
}
.about-card::before{content:""; position:absolute; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle,rgba(183,232,50,.35),transparent 70%); top:-80px; right:-80px;}
.about-card h3{color:var(--lime); font-size:1.3rem;}
.about-card ul{list-style:none; margin:18px 0 0; padding:0; font-family:"Inter",sans-serif; display:flex; flex-direction:column; gap:14px;}
.about-card li{display:flex; gap:12px; font-size:.92rem; color:rgba(255,249,239,.88); line-height:1.55;}
.about-card li .icon{flex:none; width:20px; height:20px; color:var(--gold); margin-top:2px;}

/* ============================================================ PILARES (concepção) */
.pilares{background:var(--forest-dark); color:#fff; position:relative;}
.pilares::before{content:""; position:absolute; inset:0; background:radial-gradient(ellipse 700px 400px at 90% 10%, rgba(255,122,48,.25), transparent 60%);}
.pilar-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px; position:relative; z-index:1;}
@media (max-width:860px){ .pilar-grid{grid-template-columns:1fr;} }
.pilar-card{
  border-radius:var(--radius-lg); padding:40px; position:relative; overflow:hidden;
  min-height:340px; display:flex; flex-direction:column; justify-content:flex-end;
}
.pilar-card.bio{background:linear-gradient(155deg,#0e5c33,#1fa851 65%,#7ed957);}
.pilar-card.criativa{background:linear-gradient(155deg,#c23a52,#ff5a3c 60%,#ffc93c);}
.pilar-num{
  position:absolute; top:28px; left:32px; font-family:"Inter",sans-serif; font-weight:800;
  font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.85);
  display:flex; align-items:center; gap:10px;
}
.pilar-num .icon{width:24px; height:24px;}
.pilar-card h3{font-size:1.9rem; color:#fff; margin-bottom:.35em;}
.pilar-card p{color:rgba(255,255,255,.92); font-size:1rem;}
.pilar-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
.pilar-tags span{font-family:"Inter",sans-serif; font-size:.74rem; font-weight:700; background:rgba(255,255,255,.2); padding:6px 12px; border-radius:100px;}
.pilar-deco{position:absolute; right:-30px; bottom:-30px; width:220px; height:220px; opacity:.18;}
.pilar-deco .icon{width:100%; height:100%; stroke-width:1;}

.rail-note{
  margin-top:46px; display:flex; gap:20px; align-items:flex-start;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius-md); padding:26px 30px; position:relative; z-index:1;
}
.rail-note .icon{flex:none; width:30px; height:30px; color:var(--sky); margin-top:3px;}
.rail-note p{color:rgba(255,249,239,.85); margin:0;}
.rail-note strong{color:#fff;}

/* ============================================================ TRAÇADO */
.tracado{background:var(--cream-2);}
.map-frame{
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow);
  border:6px solid #fff; margin-bottom:56px; position:relative;
}
.map-frame img{width:100%; height:auto;}
.map-caption{
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(to top, rgba(10,30,20,.85), transparent);
  color:#fff; padding:30px 26px 16px; font-family:"Inter",sans-serif; font-size:.82rem;
}

.route-line{position:relative; margin-top:20px;}
.route-line::before{
  content:""; position:absolute; left:29px; top:14px; bottom:14px; width:3px;
  background:linear-gradient(to bottom, var(--green), var(--teal) 30%, var(--orange) 60%, var(--coral));
  border-radius:3px;
}
.route-stop{position:relative; padding:0 0 34px 78px; cursor:pointer;}
.route-stop:last-child{padding-bottom:0;}
.route-stop .pin{
  position:absolute; left:12px; top:2px; width:36px; height:36px; border-radius:50%;
  background:#fff; border:3px solid var(--green); display:flex; align-items:center; justify-content:center;
  font-family:"Inter",sans-serif; font-weight:800; color:var(--forest); z-index:1; box-shadow:0 6px 14px -4px rgba(11,36,23,.25);
  transition:background .3s, color .3s, transform .3s;
}
.route-stop:nth-child(2n) .pin{border-color:var(--orange);}
.route-stop:nth-child(3n) .pin{border-color:var(--teal);}
.route-stop-head{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.route-stop h4{font-size:1.25rem; color:var(--forest-dark); margin:0;}
.route-stop .tag{font-family:"Inter",sans-serif; font-size:.72rem; font-weight:700; color:var(--ink-soft); background:#fff; border:1px solid var(--line); padding:5px 11px; border-radius:100px;}
.route-body{
  max-height:0; overflow:hidden; transition:max-height .5s var(--ease), margin-top .5s var(--ease); margin-top:0;
}
.route-stop.open .route-body{max-height:400px; margin-top:14px;}
.route-stop.open .pin{background:var(--forest-dark); color:#fff; transform:scale(1.08);}
.route-detail{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); padding:20px 24px;
  display:grid; gap:12px; font-family:"Inter",sans-serif; font-size:.88rem;
}
.route-detail .row{display:flex; gap:10px;}
.route-detail .row b{flex:none; width:150px; color:var(--forest); font-weight:700;}
.route-detail .row span{color:var(--ink-soft);}
.route-chevron{color:var(--ink-soft); transition:transform .35s var(--ease);}
.route-stop.open .route-chevron{transform:rotate(180deg); color:var(--forest);}

.gallery-hist{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:60px;}
@media (max-width:760px){ .gallery-hist{grid-template-columns:repeat(2,1fr);} }
.gallery-hist figure{margin:0; border-radius:var(--radius-md); overflow:hidden; position:relative; box-shadow:var(--shadow); aspect-ratio:4/3;}
.gallery-hist img{width:100%; height:100%; object-fit:cover; filter:sepia(.35) contrast(1.05); transition:transform .5s var(--ease), filter .5s var(--ease);}
.gallery-hist figure:hover img{transform:scale(1.08); filter:sepia(0) contrast(1.05);}
.gallery-hist figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:12px 14px;
  background:linear-gradient(to top, rgba(10,25,17,.85), transparent); color:#fff;
  font-family:"Inter",sans-serif; font-size:.72rem; font-weight:600;
}

/* ============================================================ PROGRAMAS */
.programas{background:var(--forest-dark); color:#fff;}
.cat-filters{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:40px;}
.cat-filters button{
  font-family:"Inter",sans-serif; font-weight:700; font-size:.8rem;
  padding:9px 17px; border-radius:100px; border:1.5px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.06); color:rgba(255,249,239,.85);
  transition:all .25s var(--ease);
}
.cat-filters button:hover{background:rgba(255,255,255,.14);}
.cat-filters button.active{background:linear-gradient(135deg,var(--orange),var(--coral)); border-color:transparent; color:#fff; box-shadow:0 10px 22px -10px rgba(255,90,60,.7);}

.prog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:980px){ .prog-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .prog-grid{grid-template-columns:1fr;} }
.prog-card{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-md);
  padding:26px; transition:border-color .3s, background .3s; display:none;
}
.prog-card.show{display:block;}
.prog-card:hover{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.25);}
.prog-top{display:flex; align-items:flex-start; gap:14px; cursor:pointer;}
.prog-icon{
  flex:none; width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:"Inter",sans-serif; font-weight:800; font-size:.78rem;
}
.prog-icon .icon{width:24px; height:24px;}
.prog-num{font-family:"Inter",sans-serif; font-size:.7rem; font-weight:800; letter-spacing:.08em; color:var(--lime); text-transform:uppercase;}
.prog-card h4{font-size:1.08rem; color:#fff; margin:2px 0 0;}
.prog-cat{font-family:"Inter",sans-serif; font-size:.68rem; font-weight:700; color:rgba(255,249,239,.55); text-transform:uppercase; letter-spacing:.05em; margin-top:3px;}
.prog-chev{margin-left:auto; flex:none; color:rgba(255,249,239,.5); transition:transform .35s var(--ease);}
.prog-card.open .prog-chev{transform:rotate(180deg); color:#fff;}
.prog-body{max-height:0; overflow:hidden; transition:max-height .55s var(--ease), margin-top .55s var(--ease); margin-top:0;}
.prog-card.open .prog-body{max-height:1400px; margin-top:18px;}
.prog-body h5{
  font-family:"Inter",sans-serif; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em;
  color:var(--gold); margin:16px 0 8px;
}
.prog-body h5:first-child{margin-top:0;}
.prog-body p{font-size:.88rem; color:rgba(255,249,239,.82); font-family:"Inter",sans-serif;}
.prog-body ul{margin:0; padding-left:18px; font-family:"Inter",sans-serif; font-size:.86rem; color:rgba(255,249,239,.8); display:flex; flex-direction:column; gap:7px;}
.prog-body .ind-list{list-style:none; padding:0; display:flex; flex-direction:column; gap:8px;}
.prog-body .ind-list li{display:flex; gap:8px; align-items:flex-start;}
.prog-body .ind-list .icon{flex:none; width:15px; height:15px; color:var(--green-light); margin-top:2px;}

/* ============================================================ GOVERNANÇA */
.gov{background:var(--cream);}
.gov-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:50px;}
@media (max-width:860px){ .gov-grid{grid-template-columns:1fr;} }
.gov-card{background:#fff; border-radius:var(--radius-lg); padding:36px; box-shadow:var(--shadow); border-top:5px solid var(--green);}
.gov-card.comite{border-top-color:var(--orange);}
.gov-card .gicon{
  width:54px; height:54px; border-radius:16px; display:flex; align-items:center; justify-content:center; color:#fff; margin-bottom:18px;
  background:linear-gradient(135deg,var(--green),var(--teal));
}
.gov-card.comite .gicon{background:linear-gradient(135deg,var(--orange),var(--coral));}
.gov-card .gicon .icon{width:28px; height:28px;}
.gov-card h3{font-size:1.35rem; color:var(--forest-dark);}

.flow{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media (max-width:860px){ .flow{grid-template-columns:1fr;} }
.flow-step{
  background:linear-gradient(155deg,var(--forest-dark),var(--forest-2)); color:#fff; border-radius:var(--radius-md);
  padding:28px 24px; position:relative;
}
.flow-step .fnum{
  width:38px; height:38px; border-radius:50%; background:var(--gold); color:var(--forest-dark);
  display:flex; align-items:center; justify-content:center; font-family:"Inter",sans-serif; font-weight:800; margin-bottom:14px;
}
.flow-step h4{color:#fff; font-size:1.02rem;}
.flow-step p{color:rgba(255,249,239,.82); font-size:.88rem; margin:0;}
.flow-arrow{display:none; position:absolute; right:-26px; top:50%; transform:translateY(-50%); color:var(--gold); z-index:2;}
@media (min-width:861px){ .flow-step:not(:last-child) .flow-arrow{display:block;} }

/* ============================================================ CRONOGRAMA */
.crono{background:var(--forest-dark); color:#fff; position:relative; overflow:hidden;}
.crono::before{content:""; position:absolute; inset:0; background:radial-gradient(ellipse 800px 500px at 5% 100%, rgba(31,168,81,.25), transparent 60%);}
.crono-track{position:relative; z-index:1;}
.crono-item{
  display:grid; grid-template-columns:150px 1fr; gap:24px; padding:26px 0; border-top:1px solid rgba(255,255,255,.12);
  align-items:start;
}
.crono-item:last-child{border-bottom:1px solid rgba(255,255,255,.12);}
.crono-phase{font-family:"Inter",sans-serif;}
.crono-phase .fname{font-weight:800; font-size:1.5rem; color:var(--lime);}
.crono-phase .fperiod{display:block; font-size:.78rem; color:rgba(255,249,239,.65); margin-top:4px; font-weight:600;}
.crono-desc p{margin:0; color:rgba(255,249,239,.85); font-family:"Inter",sans-serif; font-size:.95rem;}
@media (max-width:640px){ .crono-item{grid-template-columns:1fr; gap:8px;} }
.crono-horizon{
  margin-top:40px; display:flex; gap:18px; align-items:center; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.15); border-radius:var(--radius-md); padding:24px 28px; position:relative; z-index:1;
}
.crono-horizon .icon{flex:none; width:34px; height:34px; color:var(--gold);}
.crono-horizon p{margin:0; color:rgba(255,249,239,.9);}
.crono-horizon strong{color:#fff;}

/* ============================================================ DOCUMENTOS */
.docs{background:var(--cream-2);}
.docs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media (max-width:940px){ .docs-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .docs-grid{grid-template-columns:1fr;} }
.doc-card{
  background:#fff; border-radius:var(--radius-lg); padding:30px; box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:16px; border:1px solid var(--line);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.doc-card:hover{transform:translateY(-6px); box-shadow:0 26px 55px -20px rgba(11,36,23,.4);}
.doc-card .dicon{
  width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; color:#fff;
  background:linear-gradient(135deg,var(--coral),var(--orange));
}
.doc-card:nth-child(2) .dicon{background:linear-gradient(135deg,var(--teal),var(--green));}
.doc-card:nth-child(3) .dicon{background:linear-gradient(135deg,var(--gold),var(--orange));}
.doc-card:nth-child(n+4) .dicon{background:linear-gradient(135deg,var(--green),var(--forest));}
.doc-card .dicon .icon{width:28px; height:28px;}
.doc-card h4{font-size:1.15rem; color:var(--forest-dark); margin-bottom:4px;}
.doc-card p{font-size:.88rem; margin:0; flex:1;}
.doc-meta{display:flex; align-items:center; gap:10px; font-family:"Inter",sans-serif; font-size:.74rem; font-weight:700; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.03em;}
.doc-meta .badge{background:var(--cream-2); padding:4px 10px; border-radius:100px; border:1px solid var(--line);}
.doc-dl{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; margin-top:auto;
  font-family:"Inter",sans-serif; font-weight:700; font-size:.86rem; text-decoration:none;
  background:var(--forest-dark); color:#fff; padding:12px 18px; border-radius:100px;
  transition:background .25s, transform .25s;
}
.doc-dl:hover{background:var(--green); transform:translateY(-2px);}
.doc-dl .icon{width:16px; height:16px;}
.doc-card.pending{opacity:.75;}
.doc-card.pending .doc-dl{background:var(--line); color:var(--ink-soft); cursor:default; pointer-events:none;}

.docs-note{
  margin-top:46px; display:flex; gap:18px; align-items:flex-start; background:#fff; border:1px dashed var(--line);
  border-radius:var(--radius-md); padding:24px 28px;
}
.docs-note .icon{flex:none; width:28px; height:28px; color:var(--orange); margin-top:2px;}
.docs-note p{margin:0;}

/* ============================================================ CTA FINAL */
.cta-final{
  background:linear-gradient(120deg,var(--green) 0%, var(--teal) 55%, var(--sky) 100%);
  color:#fff; text-align:center; padding:100px 0; position:relative; overflow:hidden;
}
.cta-final::before{content:""; position:absolute; inset:0; background:radial-gradient(ellipse 600px 300px at 20% 20%, rgba(255,255,255,.25), transparent 60%);}
.cta-final .container{position:relative; z-index:1;}
.cta-final h2{font-size:clamp(1.9rem,4vw,3rem); color:#fff; max-width:760px; margin:0 auto .3em;}
.cta-final p{color:rgba(255,255,255,.92); font-size:1.1rem; max-width:600px; margin:0 auto 34px;}
.cta-final .hero-cta{justify-content:center;}

/* ============================================================ FOOTER */
footer{background:var(--forest-dark); color:rgba(255,249,239,.7); padding:70px 0 30px; font-family:"Inter",sans-serif;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; padding-bottom:46px; border-bottom:1px solid rgba(255,255,255,.1);}
@media (max-width:760px){ .foot-grid{grid-template-columns:1fr; gap:34px;} }
.foot-brand .brand{margin-bottom:14px;}
.foot-brand p{color:rgba(255,249,239,.6); font-size:.9rem; max-width:340px;}
footer h5{color:#fff; font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:16px;}
footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; font-size:.88rem;}
footer ul a{text-decoration:none; color:rgba(255,249,239,.68); transition:color .2s;}
footer ul a:hover{color:var(--lime);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding-top:26px; font-size:.78rem; color:rgba(255,249,239,.45);}

/* misc */
.text-orange{color:var(--orange);}
.text-green{color:var(--green-light);}
::selection{background:var(--gold); color:var(--forest-dark);}
