/* ============================================================
   SBI — Design System
   Sociedade Brasileira de Ictiologia
   Identidade: azul-marinho (emblema) + turquesa (luz sob a água) + coral
   ============================================================ */

/* ---------- Tokens ---------- */
:root{
  /* Marca */
  --navy:        #002460;   /* azul-marinho do emblema */
  --brand:       #0a548f;   /* azul-oceano (links/primário) */
  --brand-deep:  #063f70;
  --brand-bright:#1f86c9;   /* azul elétrico (gradientes) */
  --brand-ink:   #00163a;   /* abismo (hero/rodapé) */

  --aqua:        #14b8bf;   /* turquesa */
  --aqua-bright: #5ee7de;
  --aqua-deep:   #0a8f97;

  --coral:       #ff7a52;   /* acento quente (CTA) */
  --coral-bright:#ff9c7d;
  --coral-deep:  #ee5d31;

  /* Neutros */
  --ink:      #0c1c33;
  --ink-2:    #33445f;
  --muted:    #64748b;
  --line:     #e3e9f1;
  --line-2:   #eef2f8;
  --bg:       #ffffff;
  --surface:  #f3f7fb;
  --surface-2:#e9f1f8;
  --white:    #ffffff;

  /* Gradientes */
  --grad-brand: linear-gradient(120deg, var(--brand) 0%, var(--brand-bright) 100%);
  --grad-aqua:  linear-gradient(120deg, var(--aqua-deep) 0%, var(--aqua-bright) 100%);
  --grad-coral: linear-gradient(120deg, var(--coral-deep) 0%, var(--coral-bright) 100%);
  --grad-hero:  linear-gradient(155deg, #00122f 0%, #002460 52%, #0a548f 100%);
  --grad-text:  linear-gradient(100deg, var(--aqua-bright) 0%, var(--aqua) 55%, #a9f3ec 100%);

  /* Sombra */
  --sh-sm: 0 2px 8px rgba(0,22,58,.06);
  --sh:    0 12px 34px rgba(0,22,58,.10);
  --sh-lg: 0 30px 70px rgba(0,22,58,.16);
  --sh-brand: 0 18px 44px rgba(10,84,143,.30);
  --sh-aqua:  0 16px 40px rgba(20,184,191,.32);
  --sh-coral: 0 14px 34px rgba(255,122,82,.34);

  /* Raio */
  --r-sm: 10px;
  --r:    16px;
  --r-lg: 24px;
  --r-xl: 32px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --container: 1200px;
  --header-h: 84px;

  --font-body: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --font-disp: 'Space Grotesk', 'Inter', system-ui, sans-serif;
}

/* ---------- Reset base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; font-family:var(--font-body); color:var(--ink);
  background:var(--bg); line-height:1.65; font-size:17px;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:var(--brand); text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--font-disp); line-height:1.1; margin:0; color:var(--ink); letter-spacing:-.02em; font-weight:700; }
p{ margin:0; }
::selection{ background:var(--aqua); color:var(--brand-ink); }

/* ---------- Layout ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:24px; }
.narrow{ max-width:820px; margin-inline:auto; }
.section{ padding:96px 0; position:relative; }
.section--tight{ padding:64px 0; }
.section--surface{ background:var(--surface); }
.section--surface-2{ background:var(--surface-2); }
.section--dark{ background:var(--grad-hero); color:#cfe0f2; }
.section--dark h1,.section--dark h2,.section--dark h3{ color:#fff; }
.center{ text-align:center; }

.grid{ display:grid; gap:26px; }
.cols-2{ grid-template-columns:repeat(2,1fr); }
.cols-3{ grid-template-columns:repeat(3,1fr); }
.cols-4{ grid-template-columns:repeat(4,1fr); }
.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }

/* ---------- Tipografia utilitária ---------- */
.display{ font-size:clamp(2.6rem,6vw,4.5rem); line-height:1.03; letter-spacing:-.03em; }
.h1{ font-size:clamp(2.1rem,4.6vw,3.4rem); }
.h2{ font-size:clamp(1.8rem,3.4vw,2.7rem); }
.h3{ font-size:1.3rem; }
.lead{ font-size:1.18rem; color:var(--ink-2); line-height:1.62; }
.section--dark .lead{ color:#aec6e4; }
.muted{ color:var(--muted); }
.gradient-text{
  background:var(--grad-text); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.gradient-text--blue{ background:linear-gradient(100deg,var(--brand-bright),#6fb7f0); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

.kicker{
  display:inline-flex; align-items:center; gap:9px; font-family:var(--font-disp);
  font-weight:600; font-size:.82rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--brand); margin-bottom:16px;
}
.kicker::before{ content:""; width:26px; height:2px; background:var(--grad-aqua); border-radius:2px; }
.kicker--center{ justify-content:center; }
.kicker--center::before{ display:none; }
.kicker--center::after{ content:""; display:block; width:40px; height:3px; background:var(--grad-aqua); border-radius:3px; margin:12px auto 0; }
.section--dark .kicker{ color:var(--aqua-bright); }

.section-head{ max-width:680px; margin-bottom:52px; }
.section-head.center{ margin-inline:auto; }

/* ---------- Botões ---------- */
.btn{
  --bg:var(--brand); --fg:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-disp); font-weight:600; font-size:.98rem; letter-spacing:.01em;
  padding:14px 26px; border-radius:100px; border:1.6px solid transparent;
  background:var(--bg); color:var(--fg); cursor:pointer;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .25s, color .25s, border-color .25s;
  white-space:nowrap;
}
.btn svg{ width:18px; height:18px; }
.btn--brand{ background:var(--grad-brand); color:#fff; box-shadow:var(--sh-brand); }
.btn--brand:hover{ transform:translateY(-3px); box-shadow:0 24px 54px rgba(10,84,143,.42); }
.btn--coral{ background:var(--grad-coral); color:#fff; box-shadow:var(--sh-coral); }
.btn--coral:hover{ transform:translateY(-3px); box-shadow:0 22px 48px rgba(255,122,82,.46); }
.btn--aqua{ background:var(--grad-aqua); color:var(--brand-ink); box-shadow:var(--sh-aqua); }
.btn--aqua:hover{ transform:translateY(-3px); box-shadow:0 22px 48px rgba(20,184,191,.44); }
.btn--ghost{ background:transparent; color:var(--brand); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--brand); background:var(--brand); color:#fff; transform:translateY(-2px); }
.section--dark .btn--ghost{ color:#fff; border-color:rgba(255,255,255,.28); }
.section--dark .btn--ghost:hover{ background:#fff; color:var(--brand); border-color:#fff; }
.btn--light{ background:#fff; color:var(--brand); box-shadow:var(--sh); }
.btn--light:hover{ transform:translateY(-3px); box-shadow:var(--sh-lg); }
.btn--lg{ padding:17px 34px; font-size:1.05rem; }
.btn--sm{ padding:10px 18px; font-size:.9rem; }
.btn--block{ width:100%; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
  border-bottom:1px solid transparent;
}
.site-header__inner{ display:flex; align-items:center; justify-content:space-between; height:var(--header-h); gap:20px; }
.site-header.is-solid{ background:rgba(255,255,255,.88); backdrop-filter:saturate(180%) blur(16px); border-bottom-color:var(--line); box-shadow:0 4px 20px rgba(0,22,58,.05); }
.site-header.is-transparent{ background:transparent; }

.brand{ display:flex; align-items:center; gap:13px; }
.brand img{ width:48px; height:48px; object-fit:contain; }
.brand__name{ display:flex; flex-direction:column; line-height:1; }
.brand__name b{ font-family:var(--font-disp); font-weight:700; font-size:1.3rem; letter-spacing:.04em; color:var(--ink); }
.brand__name span{ font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:5px; font-weight:500; }
.is-transparent .brand__name b{ color:#fff; }
.is-transparent .brand__name span{ color:rgba(255,255,255,.72); }

.nav ul{ display:flex; align-items:center; flex-wrap:nowrap; list-style:none; margin:0; padding:0; gap:2px; }
.nav__item{ position:relative; }
.nav__link{
  display:inline-flex; align-items:center; gap:5px; padding:10px 13px; border-radius:100px;
  font-weight:500; font-size:.95rem; color:var(--ink-2); transition:color .2s, background .2s;
  white-space:nowrap;
}
.nav__link .chev{ width:15px; height:15px; opacity:.6; transition:transform .3s var(--ease); }
.is-transparent .nav__link{ color:rgba(255,255,255,.86); }
.nav__item:hover>.nav__link{ color:var(--brand); }
.is-transparent .nav__item:hover>.nav__link{ color:#fff; }
.nav__item:hover>.nav__link .chev{ transform:rotate(180deg); }
.nav__item.is-active>.nav__link{ color:var(--brand); font-weight:600; }
.is-transparent .nav__item.is-active>.nav__link{ color:var(--aqua-bright); }

/* Mega */
.mega{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(10px);
  min-width:320px; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--sh-lg); padding:12px; opacity:0; visibility:hidden; transition:.3s var(--ease);
  display:grid; gap:4px;
}
.mega--wide{ grid-template-columns:1fr 1fr; min-width:560px; }
.nav__item.has-mega:hover .mega{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.mega::before{ content:""; position:absolute; top:-14px; left:0; right:0; height:14px; }
.mega__link{ display:flex; gap:13px; align-items:flex-start; padding:12px 14px; border-radius:var(--r); transition:background .2s; }
.mega__link:hover{ background:var(--surface); }
.mega__ico{
  flex:none; width:40px; height:40px; border-radius:11px; display:grid; place-items:center;
  background:linear-gradient(135deg,rgba(10,84,143,.1),rgba(31,134,201,.16)); color:var(--brand);
}
.mega__ico svg{ width:20px; height:20px; }
.mega__link:hover .mega__ico{ background:var(--grad-brand); color:#fff; }
.mega__t{ display:block; font-weight:600; font-size:.97rem; color:var(--ink); }
.mega__d{ display:block; font-size:.83rem; color:var(--muted); margin-top:2px; }

.header-cta{ display:flex; align-items:center; gap:10px; }

.burger{ display:none; width:44px; height:44px; border:none; background:transparent; cursor:pointer; flex-direction:column; justify-content:center; gap:5px; padding:0; }
.burger span{ display:block; width:24px; height:2px; background:var(--ink); margin-inline:auto; border-radius:2px; transition:.3s var(--ease); }
.is-transparent .burger span{ background:#fff; }
body.menu-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
body.menu-open .burger span:nth-child(2){ opacity:0; }
body.menu-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
body.menu-open .burger span{ background:var(--ink); }

/* Mobile nav */
.mobile-nav{
  position:fixed; top:var(--header-h); left:0; right:0; bottom:0; z-index:99;
  background:#fff; padding:24px; overflow-y:auto; transform:translateX(100%);
  transition:transform .4s var(--ease); display:flex; flex-direction:column; gap:6px;
}
body.menu-open .mobile-nav{ transform:translateX(0); }
.m-group{ border-bottom:1px solid var(--line-2); }
.m-top{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:16px 4px; background:none; border:none; font-family:var(--font-disp); font-weight:600;
  font-size:1.12rem; color:var(--ink); cursor:pointer; text-align:left;
}
.m-top .chev{ width:18px; height:18px; transition:transform .3s var(--ease); color:var(--muted); }
.m-group.open .m-top .chev{ transform:rotate(180deg); }
.m-sub{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s var(--ease); }
.m-group.open .m-sub{ grid-template-rows:1fr; }
.m-sub>div,.m-sub{ overflow:hidden; }
.m-sub a{ display:block; padding:11px 4px 11px 16px; color:var(--ink-2); font-size:1rem; border-left:2px solid var(--line); }
.mobile-nav .btn{ margin-top:16px; }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; background:var(--grad-hero); color:#fff; padding:calc(var(--header-h) + 40px) 0 80px; }
.hero__bg{ position:absolute; inset:0; overflow:hidden; z-index:0; }
.hero__grid-lines{
  position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:64px 64px; mask-image:radial-gradient(ellipse 80% 70% at 50% 30%,#000 40%,transparent 100%);
}
.hero__blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.5; animation:float 16s ease-in-out infinite; }
.hero__blob--1{ width:520px; height:520px; background:radial-gradient(circle,#1f86c9,transparent 70%); top:-120px; right:-80px; }
.hero__blob--2{ width:440px; height:440px; background:radial-gradient(circle,var(--aqua),transparent 70%); bottom:-140px; left:-60px; opacity:.4; animation-delay:-5s; }
.hero__blob--3{ width:360px; height:360px; background:radial-gradient(circle,#3fd0d6,transparent 70%); top:40%; left:44%; opacity:.3; animation-delay:-9s; }
@keyframes float{ 0%,100%{ transform:translate(0,0) scale(1); } 33%{ transform:translate(30px,-30px) scale(1.08); } 66%{ transform:translate(-25px,20px) scale(.96); } }

/* Bolhas subindo */
.bubbles{ position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.bubbles span{ position:absolute; bottom:-40px; border-radius:50%; background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.5),rgba(120,220,230,.14) 60%,transparent 72%); border:1px solid rgba(255,255,255,.14); animation:rise linear infinite; opacity:0; }
@keyframes rise{ 0%{ transform:translateY(0) translateX(0) scale(.7); opacity:0; } 12%{ opacity:.7; } 90%{ opacity:.5; } 100%{ transform:translateY(-108vh) translateX(28px) scale(1.05); opacity:0; } }
@media (prefers-reduced-motion:reduce){ .bubbles{ display:none; } }

.hero__inner{ position:relative; z-index:2; }
.hero__badge{
  display:inline-flex; align-items:center; gap:10px; padding:8px 18px; border-radius:100px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); backdrop-filter:blur(8px);
  font-size:.86rem; font-weight:500; color:#d6e6f7; margin-bottom:26px;
}
.hero__badge .dot{ width:8px; height:8px; border-radius:50%; background:var(--aqua-bright); box-shadow:0 0 0 4px rgba(94,231,222,.24); animation:pulse 2.4s infinite; }
@keyframes pulse{ 0%,100%{ box-shadow:0 0 0 3px rgba(94,231,222,.24);} 50%{ box-shadow:0 0 0 8px rgba(94,231,222,0);} }
.hero h1,.hero .display{ color:#fff; }
.hero .lead{ color:#b6cde6; }
.hero .btn--ghost{ color:#fff; border-color:rgba(255,255,255,.34); }
.hero .btn--ghost:hover{ background:#fff; color:var(--brand); border-color:#fff; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.hero__scroll{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2; color:rgba(255,255,255,.5); display:flex; flex-direction:column; align-items:center; gap:8px; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.hero__scroll span{ width:1px; height:40px; background:linear-gradient(rgba(255,255,255,.5),transparent); animation:scrollLine 2s infinite; }
@keyframes scrollLine{ 0%{ transform:scaleY(0); transform-origin:top; } 50%{ transform:scaleY(1); transform-origin:top; } 51%{ transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }

/* ---------- Split / media ---------- */
.split__media{ position:relative; }
.frame{ border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-lg); position:relative; }
.frame img{ width:100%; height:100%; object-fit:cover; }
.frame--tall{ aspect-ratio:4/5; }
.split__badge{
  position:absolute; bottom:-26px; right:-22px; background:#fff; border-radius:var(--r-lg);
  padding:22px 26px; box-shadow:var(--sh-lg); display:flex; flex-direction:column; border:1px solid var(--line-2);
}
.split__badge .n{ font-family:var(--font-disp); font-weight:700; font-size:2.4rem; line-height:1; }
.split__badge .l{ font-size:.84rem; color:var(--muted); margin-top:6px; }

/* ---------- Cards ---------- */
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:30px; transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s; position:relative; overflow:hidden; }
.card:hover{ transform:translateY(-6px); box-shadow:var(--sh-lg); border-color:transparent; }
.card.feature::after{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--grad-aqua); transform:scaleY(0); transform-origin:top; transition:transform .4s var(--ease); }
.card.feature:hover::after{ transform:scaleY(1); }
.card__ico{ width:56px; height:56px; border-radius:15px; display:grid; place-items:center; background:linear-gradient(135deg,rgba(10,84,143,.1),rgba(31,134,201,.16)); color:var(--brand); margin-bottom:20px; transition:.35s var(--ease); }
.card__ico svg{ width:27px; height:27px; }
.card:hover .card__ico{ background:var(--grad-brand); color:#fff; transform:rotate(-6deg) scale(1.05); }
.card h3{ font-size:1.24rem; margin-bottom:10px; }
.card p{ color:var(--ink-2); font-size:1rem; }
.card__link{ display:inline-flex; align-items:center; gap:7px; margin-top:18px; font-family:var(--font-disp); font-weight:600; font-size:.92rem; color:var(--brand); }
.card__link svg{ width:16px; height:16px; transition:transform .3s var(--ease); }
.card__link:hover svg{ transform:translateX(5px); }

/* stat card mini */
.statline{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.statline .s{ text-align:center; }
.statline .s .n{ font-family:var(--font-disp); font-weight:700; font-size:2.6rem; background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.statline .s .l{ color:var(--muted); font-size:.92rem; margin-top:4px; }

/* ---------- News cards ---------- */
.news-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s; }
.news-card:hover{ transform:translateY(-6px); box-shadow:var(--sh-lg); border-color:transparent; }
.news-card__media{ position:relative; aspect-ratio:16/10; background:var(--grad-hero); overflow:hidden; }
.news-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.news-card:hover .news-card__media img{ transform:scale(1.06); }
.news-card__tag{ position:absolute; top:12px; left:12px; z-index:2; padding:5px 13px; border-radius:100px; background:rgba(0,22,58,.72); backdrop-filter:blur(6px); color:#fff; font-size:.74rem; font-weight:600; font-family:var(--font-disp); letter-spacing:.03em; }
.news-card__tag--evento{ background:var(--grad-aqua); color:var(--brand-ink); }
.news-card__body{ padding:22px 22px 26px; display:flex; flex-direction:column; flex:1; }
.news-card__date{ font-size:.82rem; color:var(--muted); font-weight:500; margin-bottom:10px; display:flex; align-items:center; gap:7px; }
.news-card__date::before{ content:""; width:14px; height:2px; background:var(--aqua); border-radius:2px; }
.news-card__title{ font-size:1.12rem; line-height:1.32; margin-bottom:10px; color:var(--ink); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.news-card:hover .news-card__title{ color:var(--brand); }
.news-card__excerpt{ font-size:.94rem; color:var(--ink-2); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin-bottom:16px; }
.news-card__more{ margin-top:auto; display:inline-flex; align-items:center; gap:7px; font-family:var(--font-disp); font-weight:600; font-size:.9rem; color:var(--brand); }
.news-card__more svg{ width:16px; height:16px; transition:transform .3s var(--ease); }
.news-card:hover .news-card__more svg{ transform:translateX(5px); }

/* ---------- Pessoas (diretoria / conselho) ---------- */
.people{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.person{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; transition:.35s var(--ease); display:flex; flex-direction:column; }
.person:hover{ transform:translateY(-6px); box-shadow:var(--sh-lg); border-color:transparent; }
.person__photo{ aspect-ratio:1/1; overflow:hidden; position:relative; background:var(--surface-2); }
.person__photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; transition:transform .6s var(--ease); }
.person:hover .person__photo img{ transform:scale(1.05); }
.person__body{ padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.person__role{ font-family:var(--font-disp); font-size:.74rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--aqua-deep); margin-bottom:6px; }
.person__name{ font-size:1.16rem; color:var(--ink); }
.person__inst{ font-size:.86rem; color:var(--muted); margin-top:7px; line-height:1.45; }
.person__mail{ margin-top:auto; padding-top:12px; display:inline-flex; align-items:center; gap:7px; font-size:.85rem; color:var(--brand); font-weight:500; word-break:break-word; }
.person__mail svg{ width:15px; height:15px; flex:none; }
.people--council{ grid-template-columns:repeat(4,1fr); gap:22px; }
.people--council .person__photo{ aspect-ratio:1/1; }
.people--council .person__name{ font-size:1.02rem; }

/* ---------- Parceiros ---------- */
.partners{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:22px; }
.partner{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:30px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; min-height:190px; transition:.35s var(--ease); text-align:center; }
.partner:hover{ transform:translateY(-5px); box-shadow:var(--sh-lg); border-color:transparent; }
.partner__logo{ height:80px; display:grid; place-items:center; }
.partner__logo img{ max-height:80px; width:auto; object-fit:contain; }
.partner__name{ font-family:var(--font-disp); font-weight:600; font-size:.98rem; color:var(--ink); }
.partner__ext{ font-size:.8rem; color:var(--muted); display:inline-flex; align-items:center; gap:5px; }
.partner__ext svg{ width:13px; height:13px; }

/* ---------- Eventos ---------- */
.event{ display:grid; grid-template-columns:320px 1fr; gap:34px; background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); overflow:hidden; transition:.35s var(--ease); margin-bottom:26px; }
.event:hover{ box-shadow:var(--sh-lg); border-color:transparent; transform:translateY(-3px); }
.event__media{ position:relative; overflow:hidden; min-height:230px; background:var(--grad-hero); }
.event__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.event__body{ padding:32px 34px 32px 0; display:flex; flex-direction:column; justify-content:center; }
.event__tag{ display:inline-flex; align-self:flex-start; align-items:center; gap:8px; padding:6px 14px; border-radius:100px; background:var(--surface-2); color:var(--brand); font-family:var(--font-disp); font-weight:600; font-size:.8rem; margin-bottom:14px; }
.event__title{ font-size:1.4rem; margin-bottom:10px; }
.event__meta{ display:flex; flex-wrap:wrap; gap:18px; margin-bottom:14px; color:var(--muted); font-size:.92rem; }
.event__meta span{ display:inline-flex; align-items:center; gap:7px; }
.event__meta svg{ width:16px; height:16px; color:var(--aqua-deep); }
.event__body p{ color:var(--ink-2); }

/* ---------- Prose (artigos) ---------- */
.prose{ font-size:1.09rem; line-height:1.8; color:#24344d; }
.prose>*+*{ margin-top:1.3em; }
.prose h2{ font-size:1.7rem; margin-top:1.8em; }
.prose h3{ font-size:1.32rem; margin-top:1.6em; }
.prose a{ color:var(--brand); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(10,84,143,.3); }
.prose a:hover{ text-decoration-color:var(--brand); }
.prose img{ border-radius:var(--r); margin-inline:auto; box-shadow:var(--sh); }
.prose figure{ margin:1.8em 0; }
.prose figure img{ width:100%; }
.prose figcaption{ text-align:center; font-size:.86rem; color:var(--muted); margin-top:10px; }
.prose ul,.prose ol{ padding-left:1.3em; }
.prose li{ margin:.5em 0; }
.prose li::marker{ color:var(--aqua-deep); }
.prose blockquote{ border-left:4px solid var(--aqua); background:var(--surface); padding:18px 26px; border-radius:0 var(--r) var(--r) 0; font-style:italic; color:var(--ink-2); }
.prose strong{ color:var(--ink); }
.article-feat{ margin:0 0 2em; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-lg); }
.article-feat img{ width:100%; border-radius:0; box-shadow:none; margin:0; }

/* ---------- Page hero ---------- */
.page-hero{ position:relative; background:var(--grad-hero); color:#fff; padding:calc(var(--header-h) + 66px) 0 74px; overflow:hidden; }
.page-hero__bg{ position:absolute; inset:0; overflow:hidden; z-index:0; }
.page-hero__bg .hero__blob--1{ top:-160px; right:-100px; width:420px; height:420px; }
.page-hero__bg .hero__blob--2{ bottom:-180px; left:-80px; width:360px; height:360px; }
.page-hero__inner{ position:relative; z-index:2; max-width:840px; }
.page-hero .h1{ color:#fff; margin-bottom:16px; }
.page-hero .lead{ color:#b6cde6; }
.page-hero--article .h1{ max-width:900px; }
.breadcrumb{ display:flex; align-items:center; gap:10px; font-size:.86rem; color:#8fb0d4; margin-bottom:22px; flex-wrap:wrap; }
.breadcrumb a{ color:#b6cde6; }
.breadcrumb a:hover{ color:#fff; }
.breadcrumb .sep{ opacity:.5; }

/* ---------- Onda divisória ---------- */
.wave{ display:block; width:100%; height:auto; line-height:0; }
.wave--top{ margin-bottom:-1px; }
.wave--bottom{ margin-top:-1px; }

/* ---------- CTA band ---------- */
.cta-band{ position:relative; border-radius:var(--r-xl); overflow:hidden; background:var(--grad-hero); padding:70px 40px; text-align:center; }
.cta-band .hero__bg{ z-index:0; }
.cta-band__inner{ position:relative; z-index:2; max-width:680px; margin-inline:auto; }
.cta-band__inner h2{ color:#fff; margin-bottom:16px; }
.cta-band__inner p{ color:#b6cde6; margin-bottom:30px; }
.cta-band__inner .hero__actions{ justify-content:center; }

/* ---------- Doc rows (pareceres / documentos) ---------- */
.doc-row{ display:flex; align-items:center; gap:18px; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:20px 22px; transition:.3s var(--ease); }
.doc-row:hover{ border-color:transparent; box-shadow:var(--sh); transform:translateX(4px); }
.doc-row__ico{ flex:none; width:50px; height:50px; border-radius:12px; background:linear-gradient(135deg,rgba(238,93,49,.14),rgba(255,122,82,.22)); color:var(--coral-deep); display:grid; place-items:center; }
.doc-row__ico svg{ width:24px; height:24px; }
.doc-row__body{ flex:1; }
.doc-row__title{ font-family:var(--font-disp); font-weight:600; color:var(--ink); font-size:1.04rem; }
.doc-row__meta{ font-size:.9rem; color:var(--muted); margin-top:4px; line-height:1.5; }
.doc-row__cta{ flex:none; display:inline-flex; align-items:center; gap:8px; color:var(--brand); font-family:var(--font-disp); font-weight:600; font-size:.9rem; }
.doc-row__cta svg{ width:19px; height:19px; }

/* ---------- Boletins (acervo) ---------- */
.year-filter{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:36px; }
.bol-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:16px; }
.bol-card{ display:flex; flex-direction:column; gap:12px; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:20px 20px 18px; transition:.3s var(--ease); position:relative; overflow:hidden; }
.bol-card::before{ content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--grad-brand); opacity:0; transition:opacity .3s; }
.bol-card:hover{ transform:translateY(-4px); box-shadow:var(--sh); border-color:transparent; }
.bol-card:hover::before{ opacity:1; }
.bol-card__top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.bol-card__ico{ width:38px; height:38px; border-radius:10px; background:linear-gradient(135deg,rgba(10,84,143,.1),rgba(31,134,201,.16)); color:var(--brand); display:grid; place-items:center; flex:none; }
.bol-card__ico svg{ width:19px; height:19px; }
.bol-card__year{ font-family:var(--font-disp); font-size:.76rem; font-weight:600; color:var(--muted); background:var(--surface); padding:4px 11px; border-radius:100px; }
.bol-card__n{ font-family:var(--font-disp); font-weight:700; font-size:1.18rem; color:var(--ink); line-height:1.2; }
.bol-card__dl{ margin-top:auto; display:inline-flex; align-items:center; gap:7px; font-family:var(--font-disp); font-weight:600; font-size:.86rem; color:var(--brand); }
.bol-card__dl svg{ width:16px; height:16px; }
.bol-card:hover .bol-card__n{ color:var(--brand); }

/* ---------- Resumos EBI (linha do tempo) ---------- */
.ebi-list{ display:grid; gap:14px; }
.ebi-row{ display:grid; grid-template-columns:88px 1fr auto; align-items:center; gap:22px; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:18px 24px; transition:.3s var(--ease); }
.ebi-row:hover{ box-shadow:var(--sh); border-color:transparent; transform:translateX(4px); }
.ebi-row__n{ font-family:var(--font-disp); font-weight:700; font-size:1.05rem; color:#fff; background:var(--grad-brand); border-radius:12px; padding:12px 8px; text-align:center; line-height:1.15; }
.ebi-row__n small{ display:block; font-size:.62rem; font-weight:500; letter-spacing:.08em; opacity:.85; }
.ebi-row__info b{ font-family:var(--font-disp); font-size:1.12rem; color:var(--ink); display:block; }
.ebi-row__info span{ font-size:.9rem; color:var(--muted); display:inline-flex; align-items:center; gap:6px; margin-top:3px; }
.ebi-row__info svg{ width:15px; height:15px; color:var(--aqua-deep); }
.ebi-row__dl .btn{ white-space:nowrap; }
.ebi-row__soon{ font-size:.84rem; color:var(--muted); font-style:italic; white-space:nowrap; }

/* ---------- Feature list (checks) ---------- */
.check-list{ list-style:none; padding:0; margin:0; display:grid; gap:14px; }
.check-list li{ display:flex; gap:13px; align-items:flex-start; }
.check-list .ci{ flex:none; width:26px; height:26px; border-radius:50%; background:var(--grad-aqua); color:var(--brand-ink); display:grid; place-items:center; margin-top:1px; }
.check-list .ci svg{ width:15px; height:15px; }

/* ---------- Pricing (associe-se) ---------- */
.price-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:760px; margin-inline:auto; }
.price{ background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); padding:34px 30px; position:relative; transition:.35s var(--ease); display:flex; flex-direction:column; }
.price:hover{ transform:translateY(-6px); box-shadow:var(--sh-lg); border-color:transparent; }
.price--pop{ border-color:var(--brand); box-shadow:var(--sh-brand); }
.price--pop::before{ content:"Mais escolhido"; position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--grad-coral); color:#fff; font-family:var(--font-disp); font-weight:600; font-size:.78rem; padding:5px 16px; border-radius:100px; }
.price__name{ font-family:var(--font-disp); font-weight:600; font-size:1.15rem; color:var(--brand); margin-bottom:8px; }
.price__val{ font-family:var(--font-disp); font-weight:700; font-size:2.6rem; color:var(--ink); line-height:1; }
.price__val small{ font-size:.95rem; color:var(--muted); font-weight:500; }
.price__sub{ font-size:.9rem; color:var(--muted); margin:6px 0 22px; }
.price ul{ list-style:none; padding:0; margin:0 0 26px; display:grid; gap:11px; }
.price li{ display:flex; gap:10px; align-items:center; font-size:.96rem; color:var(--ink-2); }
.price li svg{ width:17px; height:17px; color:var(--aqua-deep); flex:none; }
.price .btn{ margin-top:auto; }

/* ---------- Contato form ---------- */
.form{ display:grid; gap:18px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field label{ font-family:var(--font-disp); font-weight:500; font-size:.9rem; color:var(--ink); }
.field input,.field textarea{ font-family:var(--font-body); font-size:1rem; padding:14px 16px; border:1.6px solid var(--line); border-radius:var(--r); background:#fff; color:var(--ink); transition:border-color .2s, box-shadow .2s; width:100%; }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 4px rgba(10,84,143,.1); }
.field textarea{ resize:vertical; min-height:130px; }
.contact-card{ background:var(--grad-hero); color:#fff; border-radius:var(--r-xl); padding:40px; position:relative; overflow:hidden; }
.contact-card h3{ color:#fff; }
.contact-list{ list-style:none; padding:0; margin:24px 0 0; display:grid; gap:20px; position:relative; z-index:1; }
.contact-list li{ display:flex; gap:15px; align-items:flex-start; }
.contact-list .ci{ flex:none; width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.1); color:var(--aqua-bright); display:grid; place-items:center; }
.contact-list .ci svg{ width:21px; height:21px; }
.contact-list b{ display:block; font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; color:#8fb0d4; margin-bottom:3px; font-weight:600; }
.contact-list a,.contact-list span{ color:#eaf2ff; }

/* ---------- Filtros / chips ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:38px; }
.chip{ padding:9px 20px; border-radius:100px; border:1.6px solid var(--line); background:#fff; color:var(--ink-2); font-family:var(--font-disp); font-weight:500; font-size:.92rem; cursor:pointer; transition:.25s var(--ease); }
.chip:hover{ border-color:var(--brand); color:var(--brand); }
.chip.is-active{ background:var(--grad-brand); color:#fff; border-color:transparent; box-shadow:var(--sh-brand); }
.chip--sm{ padding:7px 15px; font-size:.85rem; }
.load-more{ text-align:center; margin-top:48px; }

/* ---------- Info blocks ---------- */
.info-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.info{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:26px; display:flex; gap:16px; }
.info__ico{ flex:none; width:48px; height:48px; border-radius:13px; background:linear-gradient(135deg,rgba(10,84,143,.1),rgba(31,134,201,.16)); color:var(--brand); display:grid; place-items:center; }
.info__ico svg{ width:23px; height:23px; }
.info h4{ font-family:var(--font-disp); font-size:1.06rem; margin-bottom:6px; }
.info p{ color:var(--ink-2); font-size:.96rem; }

.note{ background:var(--surface); border:1px dashed var(--line); border-radius:var(--r); padding:16px 20px; font-size:.94rem; color:var(--ink-2); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:var(--brand-ink); color:#a3b6d0; padding:72px 0 32px; position:relative; overflow:hidden; }
.site-footer::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad-aqua); }
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:44px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.1); }
.footer-brand{ max-width:340px; }
.footer-brand .brand__name b{ color:#fff; }
.footer-brand .brand__name span{ color:#7f93b8; }
.footer-brand>p{ margin-top:18px; font-size:.94rem; line-height:1.7; color:#8698be; }
.footer-social{ display:flex; gap:10px; margin-top:22px; }
.footer-social a{ width:42px; height:42px; border-radius:11px; background:rgba(255,255,255,.06); display:grid; place-items:center; color:#b6cde6; transition:.25s var(--ease); }
.footer-social a:hover{ background:var(--grad-aqua); color:var(--brand-ink); transform:translateY(-3px); }
.footer-social svg{ width:19px; height:19px; }
.footer-col h4{ color:#fff; font-size:1rem; margin-bottom:18px; font-family:var(--font-disp); }
.footer-col ul{ list-style:none; padding:0; margin:0; display:grid; gap:11px; }
.footer-col a{ color:#8698be; font-size:.94rem; transition:color .2s, padding .2s; }
.footer-col a:hover{ color:var(--aqua-bright); padding-left:4px; }
.footer-contact li{ font-size:.92rem; line-height:1.55; color:#8698be; margin-bottom:14px; }
.footer-contact strong{ display:block; color:#fff; font-size:.78rem; text-transform:uppercase; letter-spacing:.07em; margin-bottom:3px; font-weight:600; }
.footer-contact a{ color:#b6cde6; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:.86rem; color:#6f83ab; flex-wrap:wrap; gap:12px; }
.footer-bottom a{ color:#a3b6d0; }

/* ---------- To top ---------- */
.to-top{ position:fixed; bottom:26px; right:26px; z-index:60; width:50px; height:50px; border-radius:50%; border:none; background:var(--grad-brand); color:#fff; box-shadow:var(--sh-brand); cursor:pointer; display:grid; place-items:center; opacity:0; transform:translateY(20px) scale(.8); pointer-events:none; transition:.35s var(--ease); }
.to-top svg{ width:22px; height:22px; }
.to-top.show{ opacity:1; transform:none; pointer-events:auto; }
.to-top:hover{ transform:translateY(-4px); }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.08s; }
.reveal[data-delay="2"]{ transition-delay:.16s; }
.reveal[data-delay="3"]{ transition-delay:.24s; }
.reveal[data-delay="4"]{ transition-delay:.32s; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } .hero__blob,.hero__ring{ animation:none; } }

/* ============================================================
   HOME — layout editorial
   ============================================================ */
.hero--split{ min-height:auto; padding:calc(var(--header-h) + 72px) 0 96px; }
.hero__grid{ display:grid; grid-template-columns:1.06fr .94fr; gap:60px; align-items:center; }
.hero__copy{ max-width:600px; }
.hero__media{ position:relative; }
.hero__media .frame{ aspect-ratio:4/5; border:1px solid rgba(255,255,255,.14); box-shadow:0 45px 90px rgba(0,0,0,.5); }
.hero__media .frame img{ width:100%; height:100%; object-fit:cover; }
.hero__ring{ position:absolute; inset:-20px; border:1.5px dashed rgba(94,231,222,.36); border-radius:44px; pointer-events:none; animation:spin 60s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.hero__glass{ position:absolute; z-index:3; background:rgba(0,22,58,.5); backdrop-filter:blur(14px); border:1px solid rgba(255,255,255,.18); border-radius:18px; padding:15px 20px; box-shadow:0 24px 50px rgba(0,0,0,.4); display:flex; align-items:center; gap:14px; }
.hero__glass--tl{ top:26px; left:-34px; }
.hero__glass--br{ bottom:30px; right:-30px; }
.hero__glass .gi{ width:44px; height:44px; border-radius:12px; background:var(--grad-aqua); color:var(--brand-ink); display:grid; place-items:center; flex:none; }
.hero__glass .gi svg{ width:22px; height:22px; }
.hero__glass b{ display:block; font-family:var(--font-disp); font-size:1.55rem; color:#fff; line-height:1; }
.hero__glass span{ font-size:.78rem; color:#b6cde6; }

/* Aquário do hero (cardume em SVG) */
.aquarium{ position:relative; aspect-ratio:4/5; border-radius:var(--r-xl); overflow:hidden;
  background:linear-gradient(165deg,#001b3f 0%,#00417c 55%,#0a6bb0 100%);
  border:1px solid rgba(255,255,255,.14); box-shadow:0 45px 90px rgba(0,0,0,.5); }
.aquarium__caustic{ position:absolute; inset:-25%; z-index:0; pointer-events:none;
  background:radial-gradient(closest-side,rgba(94,231,222,.30),transparent 70%) ,radial-gradient(closest-side,rgba(31,134,201,.35),transparent 70%);
  background-position:20% 15%,75% 80%; background-size:60% 60%,55% 55%; background-repeat:no-repeat;
  filter:blur(8px); animation:float 18s ease-in-out infinite; }
.aquarium__light{ position:absolute; top:-30%; left:10%; width:60%; height:150%; z-index:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 60%); transform:rotate(18deg); filter:blur(6px); }
.aquarium__grid{ position:absolute; inset:0; z-index:0; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:44px 44px; mask-image:radial-gradient(ellipse 70% 70% at 50% 40%,#000,transparent 75%); }
.school{ position:absolute; inset:0; z-index:1; }
.fish-swim{ position:absolute; left:0; color:rgba(255,255,255,.9); animation:swim var(--sp,24s) linear infinite; animation-delay:var(--dl,0s); will-change:transform; filter:drop-shadow(0 4px 10px rgba(0,0,0,.25)); }
.fish-swim svg{ width:var(--w,64px); height:auto; display:block; }
.fish-swim.rev{ animation-name:swim-rev; }
@keyframes swim{ 0%{ transform:translateX(-160px);} 100%{ transform:translateX(calc(100% + 160px));} }
@keyframes swim-rev{ 0%{ transform:translateX(calc(100% + 160px)) scaleX(-1);} 100%{ transform:translateX(-160px) scaleX(-1);} }
.aquarium .bubbles{ z-index:2; }
.aquarium__emblem{ position:absolute; right:-8%; bottom:-6%; width:58%; z-index:0; opacity:.08; filter:brightness(0) invert(1); }
@media (prefers-reduced-motion:reduce){ .fish-swim{ animation:none; } .fish-swim:nth-child(even){ opacity:.5; } }

/* Faixa de credibilidade */
.trust{ display:flex; flex-wrap:wrap; gap:16px 30px; align-items:center; justify-content:center; }
.trust__item{ display:inline-flex; align-items:center; gap:9px; color:var(--ink-2); font-size:.95rem; font-weight:500; }
.trust__item svg{ width:19px; height:19px; color:var(--aqua-deep); flex:none; }

/* Notícias em destaque */
.featured{ display:grid; grid-template-columns:1.35fr 1fr; gap:26px; align-items:stretch; }
.feat-main{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); overflow:hidden; transition:.35s var(--ease); }
.feat-main:hover{ box-shadow:var(--sh-lg); border-color:transparent; transform:translateY(-4px); }
.feat-main__media{ position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--grad-hero); }
.feat-main__media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.feat-main:hover .feat-main__media img{ transform:scale(1.05); }
.feat-main__body{ padding:26px 30px 30px; display:flex; flex-direction:column; flex:1; }
.feat-main__body h3{ font-size:1.5rem; line-height:1.2; margin:12px 0; }
.feat-main__body .news-card__excerpt{ -webkit-line-clamp:2; }
.feat-list{ display:grid; grid-auto-rows:1fr; gap:14px; }
.feat-item{ display:grid; grid-template-columns:104px 1fr; gap:16px; background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; transition:.3s var(--ease); }
.feat-item:hover{ box-shadow:var(--sh); border-color:transparent; transform:translateX(4px); }
.feat-item__media{ position:relative; overflow:hidden; background:var(--grad-hero); }
.feat-item__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.feat-item__body{ padding:12px 16px 12px 0; display:flex; flex-direction:column; justify-content:center; }
.feat-item__date{ font-size:.76rem; color:var(--muted); margin-bottom:5px; }
.feat-item__title{ font-family:var(--font-disp); font-weight:600; font-size:1rem; line-height:1.28; color:var(--ink); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.feat-item:hover .feat-item__title{ color:var(--brand); }

/* Faixa publicações (boletim + revista) */
.pub{ position:relative; border-radius:var(--r-xl); overflow:hidden; display:grid; grid-template-columns:1.05fr 1fr; min-height:420px; box-shadow:var(--sh-lg); }
.pub__media{ position:relative; overflow:hidden; background:var(--brand-ink); display:grid; place-items:center; padding:44px; }
.pub__media img{ max-width:78%; height:auto; box-shadow:0 30px 60px rgba(0,0,0,.45); border-radius:8px; }
.pub__body{ background:var(--grad-hero); color:#fff; padding:54px 50px; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.pub__body>*{ position:relative; z-index:1; }
.pub__body h2{ color:#fff; }
.pub__body .lead{ color:#b6cde6; }

@media (max-width:960px){
  .hero__grid{ grid-template-columns:1fr; gap:44px; }
  .hero__media{ max-width:400px; margin-inline:auto; width:100%; }
  .hero--split{ padding-top:calc(var(--header-h) + 44px); }
  .featured{ grid-template-columns:1fr; }
  .feat-list{ grid-auto-rows:auto; }
  .pub{ grid-template-columns:1fr; }
  .pub__media{ min-height:260px; padding:32px; }
  .pub__body{ padding:40px 32px; }
}

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width:1080px){
  .footer-grid{ grid-template-columns:1fr 1fr; gap:36px; }
  .footer-brand{ grid-column:1/-1; max-width:none; }
  .event{ grid-template-columns:260px 1fr; }
  .people--council{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:1120px){
  .nav,.header-cta .btn{ display:none; }
  .burger{ display:flex; }
}
@media (max-width:900px){
  .split{ grid-template-columns:1fr; gap:44px; }
  .split__media{ order:-1; }
  .cols-4{ grid-template-columns:repeat(2,1fr); }
  .cols-3{ grid-template-columns:repeat(2,1fr); }
  .people{ grid-template-columns:repeat(2,1fr); }
  .people--council{ grid-template-columns:repeat(2,1fr); }
  .price-grid{ grid-template-columns:1fr; max-width:440px; }
  .info-grid{ grid-template-columns:1fr; }
  .split__badge .n{ font-size:2rem; }
  .section{ padding:74px 0; }
}
@media (max-width:640px){
  body{ font-size:16px; }
  .cols-4,.cols-3,.cols-2,.people,.people--council,.statline{ grid-template-columns:1fr; }
  .statline{ grid-template-columns:1fr 1fr; gap:28px 16px; }
  .event{ grid-template-columns:1fr; }
  .event__media{ min-height:210px; }
  .event__body{ padding:26px 26px 30px; }
  .cta-band{ padding:52px 24px; }
  .split__badge{ right:12px; bottom:-20px; padding:16px 20px; }
  .contact-card{ padding:30px 26px; }
  .footer-grid{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .section-head{ margin-bottom:38px; }
  .ebi-row{ grid-template-columns:70px 1fr; }
  .ebi-row__dl,.ebi-row__soon{ grid-column:2; }
  .hero__glass--tl{ left:-6px; top:14px; padding:12px 15px; }
  .hero__glass--br{ right:-6px; bottom:16px; padding:12px 15px; }
  .hero__glass b{ font-size:1.3rem; }
  .feat-item{ grid-template-columns:88px 1fr; }
}
