/* =========================================================
   SEMATEC 3.0 — Minimalist energy-corporate redesign
   Inspired by the "Verden" design language
   ========================================================= */

/* ---------- Self-hosted fonts ----------
   Servidas do próprio site (same-origin) em vez do Google Fonts.
   Isso elimina o "flash" de troca de fonte (FOUT) no Safari/iOS e
   garante a MESMA tipografia em todas as páginas, mesmo em conexões
   lentas — mantendo exatamente as mesmas fontes do desktop.        */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Schibsted Grotesk';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/schibsted-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Schibsted Grotesk';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('../fonts/schibsted-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- Design tokens ---------- */
:root {
  /* Surfaces */
  --cream:        #f2f1ec;   /* page background */
  --cream-2:      #e9e8e1;   /* alt panels */
  --paper:        #fbfaf6;   /* cards on cream */
  --forest:       #0f2c1e;   /* deep green sections */
  --forest-2:     #0b2318;   /* darker green (footer) */
  --forest-soft:  #17402c;   /* raised on forest */

  /* Ink & text */
  --ink:          #16211b;   /* near-black green */
  --ink-2:        #3a463f;
  --muted:        #6c766e;   /* secondary text on cream */
  --muted-dark:   #9fb3a5;   /* secondary text on forest */
  --line:         rgba(22,33,27,.12);
  --line-2:       rgba(22,33,27,.08);
  --line-dark:    rgba(255,255,255,.12);

  /* Accent */
  --lime:         #c8ef54;   /* signature chartreuse */
  --lime-deep:    #b6e23e;
  --lime-ink:     #17321a;   /* text on lime */

  /* Type */
  --font-head: "Schibsted Grotesk", "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, sans-serif;

  /* Metrics */
  --wrap: 1240px;
  --gap: clamp(1.2rem, 3vw, 2.4rem);
  --radius: 18px;
  --radius-lg: 26px;
  --radius-sm: 12px;
  --nav-h: 76px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after { box-sizing: border-box; }
* { margin: 0; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-h);
  -webkit-text-size-adjust: 100%;
}
[id] {
  scroll-margin-top: var(--nav-h);
}
body {
  font-family: var(--font-body);
  background: var(--cream);
  color: var(--ink);
  line-height: 1.6;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  overflow-x: clip;   /* clip é mais confiável no iOS e não quebra position:sticky */
}
img, video, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul { list-style: none; padding: 0; }
h1,h2,h3,h4,h5 { font-family: var(--font-head); font-weight: 600; line-height: 1.05; letter-spacing: -.02em; color: var(--ink); }

::selection { background: var(--lime); color: var(--lime-ink); }

.wrap { width: min(var(--wrap), 92%); margin-inline: auto; }

/* ---------- Reveal on scroll ---------- */
.reveal { opacity: 1; }
.scroll-reveal-ready .reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.scroll-reveal-ready .reveal.is-visible { opacity: 1; transform: none; }
.reveal.r2 { transition-delay: .08s; }
.reveal.r3 { transition-delay: .16s; }
.reveal.r4 { transition-delay: .24s; }
@media (prefers-reduced-motion: reduce) {
  .scroll-reveal-ready .reveal { opacity: 1 !important; transform: none !important; }
  html { scroll-behavior: auto; }
  .sponsors-track { animation: none !important; }
}

/* ---------- Shared bits ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: .55rem;
  font-size: .74rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--muted);
}
.eyebrow::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%;
  background: var(--lime-deep);
  box-shadow: 0 0 0 4px rgba(182,226,62,.22);
}
.eyebrow-dim { color: var(--muted-dark); }
.eyebrow-dim::before { background: var(--lime); box-shadow: 0 0 0 4px rgba(200,239,84,.16); }

.section { padding: clamp(2.75rem, 5vw, 4.75rem) 0; }
.section-compact { padding: clamp(2.4rem, 4vw, 3.75rem) 0; }

.s-head { max-width: 720px; margin-bottom: clamp(1.7rem, 3vw, 2.6rem); }
.s-head h2 {
  font-size: clamp(2rem, 4.4vw, 3.4rem);
  margin: .7rem 0 .8rem;
  letter-spacing: -.03em;
}
.s-head .s-desc { color: var(--muted); font-size: 1.06rem; max-width: 60ch; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .92rem 1.5rem; border-radius: 100px;
  font-weight: 600; font-size: .95rem; letter-spacing: -.01em;
  transition: transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease);
  white-space: nowrap;
}
.btn svg, .btn .arw { width: 1em; height: 1em; }
.btn-lime { background: var(--lime); color: var(--lime-ink); }
.btn-lime:hover { background: var(--lime-deep); transform: translateY(-2px); box-shadow: 0 12px 28px -12px rgba(182,226,62,.7); }
.btn-ghost { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.btn-ghost:hover { border-color: var(--ink); transform: translateY(-2px); }
.btn-ghost-light { background: transparent; color: var(--cream); border: 1px solid var(--line-dark); }
.btn-ghost-light:hover { border-color: var(--lime); color: var(--lime); }
.btn .arw { transition: transform .25s var(--ease); }
.btn:hover .arw { transform: translateX(3px); }

/* =========================================================
   NAV
   ========================================================= */
.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  height: var(--nav-h);
  display: flex; align-items: center;
  transition: background .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  border-bottom: 1px solid transparent;
}
.nav-inner {
  width: min(var(--wrap), 94%); margin-inline: auto;
  display: flex; align-items: center; gap: 1.5rem;
}
.nav-logo { display: flex; align-items: center; flex-shrink: 0; }
.nav-logo-img { height: 48px; width: auto; transition: opacity .3s; }
.nav-logo-img-light { display: none; }   /* dark logo (for light bg) */
.nav-logo-img-dark  { display: block; }   /* white logo (for hero) */

.nav-links {
  display: flex; align-items: center; gap: .35rem;
  margin-left: auto;
}
.nav-links a {
  padding: .5rem .9rem; border-radius: 100px;
  font-size: .93rem; font-weight: 500; color: rgba(255,255,255,.85);
  transition: background .2s, color .2s;
}
.nav-links a:hover { background: rgba(255,255,255,.12); color: #fff; }
.nav-actions { margin-left: .4rem; flex-shrink: 0; }
.nav-links .nav-cta-mobile { display: none; }   /* only shown inside the mobile drawer */
.nav-cta {
  display: inline-flex; align-items: center; gap: .4rem;
  background: var(--lime); color: var(--lime-ink);
  padding: .62rem 1.25rem; border-radius: 100px; font-weight: 600; font-size: .92rem;
  transition: transform .25s var(--ease), background .25s;
}
.nav-cta:hover { background: var(--lime-deep); transform: translateY(-2px); }

/* Scrolled / solid state (also used on subpages) */
.nav.scrolled {
  background: rgba(242,241,236,.86);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border-bottom-color: var(--line);
}
.nav.scrolled .nav-logo-img-light { display: block; }
.nav.scrolled .nav-logo-img-dark  { display: none; }
.nav.scrolled .nav-links a { color: var(--ink-2); }
.nav.scrolled .nav-links a:hover { background: rgba(22,33,27,.08); color: var(--ink); }

.nav-burger, .nav-close { display: none; }

/* Mobile nav */
@media (max-width: 900px) {
  /* A backdrop filter makes fixed descendants use the nav as their
     containing block. On subpages (`.scrolled` is present from load), that
     clipped the full-screen drawer to the 76px-high header. */
  .nav.scrolled {
    background: rgba(242,241,236,.96);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .nav-actions { display: none; }
  .nav-burger {
    display: flex; flex-direction: column; gap: 5px; margin-left: auto;
    width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 12px;
  }
  .nav-burger span { width: 22px; height: 2px; background: #fff; border-radius: 2px; transition: .3s; }
  .nav.scrolled .nav-burger span { background: var(--ink); }
  .nav-links {
    position: fixed; inset: 0; margin: 0;
    flex-direction: column; justify-content: center; gap: 1rem;
    background: var(--forest);
    transform: translateX(100%); transition: transform .4s var(--ease);
    padding: 2rem;
  }
  .nav-links.open { transform: none; }
  .nav-links a { color: #fff; font-size: 1.35rem; font-family: var(--font-head); }
  .nav.scrolled .nav-links a { color: #fff; }
  .nav-links a:hover { background: transparent; color: var(--lime); }
  .nav.scrolled .nav-links a:hover { background: transparent; color: var(--lime); }
  .nav-close {
    display: block; position: absolute; top: 1.4rem; right: 1.4rem;
    font-size: 2.4rem; line-height: 1; color: #fff; width: 44px; height: 44px;
  }
  .nav-links .nav-cta-mobile {
    display: inline-flex;
    background: var(--lime); color: var(--lime-ink); font-family: var(--font-body);
    font-size: 1rem; padding: .9rem 2rem; margin-top: 1rem;
  }
}

/* =========================================================
   HERO
   ========================================================= */
.hero {
  position: relative; min-height: 100vh; min-height: 100svh;
  display: flex; flex-direction: column;
  padding-bottom: clamp(1.5rem, 3vw, 2.4rem);
  overflow: hidden; color: #fff;
}
.hero-media { position: absolute; inset: 0; z-index: 0; }
.hero-media video, .hero-media img { width: 100%; height: 100%; object-fit: cover; }
.hero-overlay {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(8,24,16,.55) 0%, rgba(8,24,16,.15) 34%, rgba(8,24,16,.35) 70%, rgba(8,24,16,.78) 100%);
}
.hero-inner {
  position: relative; z-index: 2; width: 100%;
  flex: 1; display: flex; align-items: center;
  padding-block: var(--nav-h) 1.5rem;
  padding-inline: clamp(1.6rem, 5vw, 5rem);
}
.hero-copy { width: 100%; min-width: 0; max-width: 980px; }
.hero-eyebrow {
  font-size: .78rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.82);
  display: inline-flex; align-items: center; gap: .6rem;
}
.hero-eyebrow::before { content:""; width: 26px; height: 1px; background: var(--lime); }
.hero-title { color: #fff; margin: 1.1rem 0 1.7rem; }
.hero-brand {
  display: block;
  font-size: clamp(3.6rem, 12vw, 9.5rem);
  font-weight: 800; letter-spacing: -.045em; line-height: .88;
  text-transform: uppercase;
}
.hero-tagline {
  display: block; margin-top: .5rem;
  font-size: clamp(1.45rem, 3.4vw, 2.8rem);
  font-weight: 500; letter-spacing: -.02em; line-height: 1.04;
  color: rgba(255,255,255,.92);
}
.hero-title .accent { color: var(--lime); }
.hero-actions { display: flex; gap: .8rem; flex-wrap: wrap; }

/* =========================================================
   OVERVIEW / SOBRE
   ========================================================= */
.overview-grid {
  display: grid; grid-template-columns: 1.05fr 1fr;
  gap: clamp(1.6rem, 4vw, 4rem); align-items: center;
}
.overview-media {
  border-radius: var(--radius-lg); overflow: hidden;
  aspect-ratio: 4/5; position: relative;
  box-shadow: 0 30px 60px -40px rgba(15,44,30,.5);
}
.overview-media img { width: 100%; height: 100%; object-fit: cover; }
/* Auto & manual carousel */
.carousel { position: absolute; inset: 0; }
.carousel-slide {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity .85s var(--ease);
  pointer-events: none;
}
.carousel-slide.is-active { opacity: 1; pointer-events: auto; }
.carousel-nav-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(12, 33, 23, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  display: grid; place-items: center;
  cursor: pointer;
  z-index: 4;
  opacity: 0.85;
  transition: all .25s var(--ease);
}
.carousel-nav-btn:hover {
  opacity: 1;
  background: rgba(12, 33, 23, 0.92);
  border-color: var(--lime);
  color: var(--lime);
  transform: translateY(-50%) scale(1.08);
}
.carousel-nav-btn:active {
  transform: translateY(-50%) scale(0.95);
}
.carousel-prev { left: 0.85rem; }
.carousel-next { right: 0.85rem; }
.carousel-dots { position: absolute; right: 1.1rem; bottom: 1.3rem; display: flex; gap: .32rem; z-index: 4; }
.carousel-dot {
  width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.55);
  border: none; padding: 0; cursor: pointer;
  transition: .35s var(--ease);
}
.carousel-dot:hover { background: rgba(255,255,255,.95); }
.carousel-dot.is-active { background: var(--lime); width: 18px; border-radius: 4px; }
.overview-media .tag {
  position: absolute; left: 1.1rem; bottom: 1.1rem; z-index: 4;
  background: var(--lime); color: var(--lime-ink);
  font-size: .78rem; font-weight: 600; padding: .5rem 1rem; border-radius: 100px;
}
.overview-copy p.lead { font-size: clamp(1.15rem, 2vw, 1.5rem); color: var(--ink); line-height: 1.4; margin: 1.1rem 0 1.1rem; letter-spacing: -.01em; }
.overview-copy p { color: var(--muted); line-height: 1.7; margin: 1.1rem 0 0; }
.overview-copy p.lead { margin-top: 1.1rem; }
.overview-copy p strong { color: var(--ink); font-weight: 600; }
.overview-stats {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem;
  margin-top: 2.4rem; padding-top: 2rem; border-top: 1px solid var(--line);
}
.stat .n { font-family: var(--font-head); font-size: clamp(2.4rem, 5vw, 3.6rem); letter-spacing: -.04em; line-height: 1; }
.stat .n small { font-size: .5em; color: var(--lime-deep); vertical-align: super; }
.stat .l { color: var(--muted); font-size: .92rem; margin-top: .5rem; }

@media (max-width: 820px) {
  .overview-grid { grid-template-columns: 1fr; }
  .overview-media { aspect-ratio: 16/11; max-height: 440px; }
}

/* =========================================================
   ACCORDION (Eixos + Organização)
   ========================================================= */
.accordion { border-top: 1px solid var(--line); }
.acc-item { border-bottom: 1px solid var(--line); }
.acc-head {
  width: 100%; display: flex; align-items: center; gap: 1.2rem;
  padding: 1.6rem .3rem; text-align: left;
  transition: color .2s;
}
.acc-index { font-family: var(--font-head); font-size: .95rem; color: var(--muted); width: 2.4rem; flex-shrink: 0; }
.acc-title { font-family: var(--font-head); font-size: clamp(1.3rem, 2.6vw, 1.9rem); font-weight: 600; flex: 1; letter-spacing: -.02em; transition: color .25s; }
.acc-icon {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line);
  display: grid; place-items: center; flex-shrink: 0; position: relative; transition: .3s;
}
.acc-icon::before, .acc-icon::after {
  content: ""; position: absolute; background: var(--ink); border-radius: 2px; transition: .3s;
}
.acc-icon::before { width: 14px; height: 2px; }
.acc-icon::after  { width: 2px; height: 14px; }
.acc-item[open] .acc-icon { background: var(--lime); border-color: var(--lime); }
.acc-item[open] .acc-icon::after { transform: scaleY(0); }
.acc-item[open] .acc-title { color: var(--ink); }
.acc-head:hover .acc-title { color: #1c3d29; }
.acc-panel {
  display: grid; grid-template-columns: 2.4rem 1fr; gap: 1.2rem;
  padding: 0 .3rem 1.9rem; color: var(--muted); max-width: 900px;
}
.acc-panel .acc-panel-body { grid-column: 2; font-size: 1.03rem; }
.acc-item summary { list-style: none; }
.acc-item summary::-webkit-details-marker { display: none; }

/* Organização members inside accordion */
.org-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 1rem; grid-column: 2; margin-top: .3rem;
}
.org-card {
  background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--radius-sm);
  padding: 1rem; display: flex; gap: .9rem; align-items: center;
}
.org-photo {
  width: 54px; height: 54px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
  background: linear-gradient(135deg, var(--cream-2), #d7dcd3);
}
.org-photo img { width: 100%; height: 100%; object-fit: cover; }
.org-photo-initials {
  display: grid; place-items: center; color: var(--forest); background: var(--lime);
  font-family: var(--font-head); font-size: .82rem; font-weight: 800; letter-spacing: .04em;
}
.org-card h4 { font-size: .95rem; line-height: 1.2; }
.org-card p { font-size: .82rem; color: var(--muted); margin-top: .15rem; }
.org-contact { display: flex; flex-direction: column; margin-top: .55rem; }
.org-contact > span { color: var(--muted); font-size: .65rem; letter-spacing: .05em; text-transform: uppercase; }
.org-card .org-email { font-size: .78rem; color: var(--forest); }

@media (max-width: 700px) {
  .org-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   PROJECT / ACTIVITY CARDS
   ========================================================= */
.cards-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2vw, 1.8rem);
}
.pcard {
  position: relative;
  background: var(--paper); border: 1px solid var(--line-2);
  border-radius: var(--radius-lg); overflow: hidden;
  display: flex; flex-direction: column;
  isolation: isolate;
  box-shadow: 0 12px 30px -28px rgba(15,44,30,.5);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
}
.pcard::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  border-radius: inherit; box-shadow: inset 0 -4px 0 transparent;
  transition: box-shadow .35s var(--ease);
}
.pcard:hover { transform: translateY(-7px); box-shadow: 0 32px 60px -34px rgba(15,44,30,.5); border-color: rgba(22,33,27,.16); }
.pcard:hover::after { box-shadow: inset 0 -4px 0 var(--lime); }
.pcard:focus-visible { outline: 3px solid var(--lime-deep); outline-offset: 4px; }
.pcard-media { aspect-ratio: 16/10; overflow: hidden; position: relative; }
.pcard-media::after {
  content: ""; position: absolute; inset: 45% 0 0;
  background: linear-gradient(to top, rgba(11,35,24,.34), transparent);
  pointer-events: none;
}
.pcard-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.pcard:hover .pcard-media img { transform: scale(1.055); }
.pcard-number {
  position: absolute; z-index: 1; right: 1rem; bottom: .6rem;
  color: rgba(255,255,255,.9); font-family: var(--font-head);
  font-size: 2.35rem; font-weight: 600; line-height: 1; letter-spacing: -.08em;
  text-shadow: 0 2px 18px rgba(0,0,0,.25);
}
.pcard-body { padding: 1.55rem 1.55rem 1.6rem; display: flex; flex-direction: column; flex: 1; }
.pcard-overline {
  margin-bottom: .35rem; color: var(--forest); font-size: .69rem; font-weight: 700;
  letter-spacing: .13em; text-transform: uppercase;
}
.pcard-body h3 { font-size: clamp(1.65rem, 2vw, 2rem); margin-bottom: .7rem; }
.pcard-body > p { color: var(--muted); font-size: .94rem; line-height: 1.65; margin-bottom: 1.2rem; }
.pcard-includes {
  display: flex; flex-wrap: wrap; gap: .45rem; margin-top: auto; margin-bottom: 1.25rem;
}
.pcard-includes li {
  padding: .32rem .64rem; border: 1px solid var(--line); border-radius: 100px;
  color: var(--ink-2); background: var(--cream); font-size: .72rem; font-weight: 600;
}
.pcard-cta {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  width: 100%; padding-top: 1rem; border-top: 1px solid var(--line-2);
  color: var(--forest); font-weight: 700; font-size: .88rem;
}
.pcard-arrow {
  display: grid; place-items: center; width: 2.25rem; height: 2.25rem; flex: 0 0 auto;
  border-radius: 50%; background: var(--lime); color: var(--lime-ink); font-size: 1rem;
  transition: transform .3s var(--ease), background .25s;
}
.pcard:hover .pcard-arrow { transform: translate(2px,-2px); background: var(--lime-deep); }

/* Responsivo: 3 no desktop, 2 + 1 centralizado no tablet e coluna única no celular */
@media (max-width: 900px) {
  .cards-grid { grid-template-columns: repeat(2, 1fr); }
  .pcard:last-child { grid-column: 1 / -1; width: min(100%, calc(50% - .5rem)); justify-self: center; }
}
@media (max-width: 680px) {
  .cards-grid { grid-template-columns: 1fr; }
  .pcard:last-child { grid-column: auto; width: 100%; }
  .pcard-body { padding: 1.35rem 1.3rem 1.4rem; }
}

/* =========================================================
   PROGRAMAÇÃO (tabs)
   ========================================================= */
.sched-tabs { display: inline-flex; gap: .3rem; padding: .35rem; background: var(--cream-2); border-radius: 100px; margin-bottom: 2rem; }
.stab {
  padding: .6rem 1.4rem; border-radius: 100px; font-weight: 500; font-size: .92rem; color: var(--muted);
  transition: .25s;
}
.stab.stab-active { background: var(--ink); color: var(--cream); }
.sched-day { display: none; }
.sched-day.active { display: block; animation: fade .4s var(--ease); }
@keyframes fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.sched-banner {
  border: 1px dashed var(--line); border-radius: var(--radius-lg);
  padding: clamp(2rem, 5vw, 3.6rem); background: var(--paper);
  display: flex; flex-direction: column; align-items: flex-start; gap: 1rem;
}
.sched-banner .badge {
  font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600;
  color: var(--lime-ink); background: var(--lime); padding: .4rem .9rem; border-radius: 100px;
}
.sched-banner h4 { font-size: clamp(1.3rem, 3vw, 2rem); max-width: 24ch; font-weight: 600; }
.sched-banner p { color: var(--muted); max-width: 50ch; }

.schedule-date-tabs { margin-bottom: 1rem; }
.schedule-legend {
  display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin-bottom: 1rem;
  color: var(--muted); font-size: .76rem;
}
.schedule-legend span { display: inline-flex; align-items: center; gap: .42rem; }
.schedule-legend i { width: 9px; height: 9px; border-radius: 3px; }
.legend-general { background: #7d8981; }
.legend-talk { background: var(--lime-deep); }
.legend-paper { background: #4f7fa3; }
.legend-course { background: #d78334; }
.schedule-calendar {
  display: block; overflow: hidden;
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: 0 20px 50px -42px rgba(15,44,30,.45);
}
.schedule-day-column { min-width: 0; }
.schedule-day-header {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  padding: 1rem 1.1rem; background: var(--cream-2); border-bottom: 1px solid var(--line-2);
}
.schedule-day-header span { color: var(--muted); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.schedule-day-header strong { color: var(--forest); font-family: var(--font-head); font-size: 1.05rem; }
.schedule-event {
  --event-color: #7d8981; display: grid; grid-template-columns: 60px 4px minmax(0,1fr);
  gap: .65rem; min-height: 88px; padding: .85rem 1rem; border-top: 1px solid var(--line-2);
}
.schedule-event:first-child { border-top: 0; }
.schedule-event time { color: var(--ink); font-family: var(--font-head); font-size: .82rem; font-weight: 700; }
.schedule-event time small { display: block; margin-top: .08rem; color: var(--muted); font-family: var(--font-body); font-size: .62rem; font-weight: 500; }
.schedule-event-color { width: 4px; height: 100%; min-height: 42px; background: var(--event-color); border-radius: 10px; }
.schedule-event > div { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.schedule-event-type { margin-bottom: .18rem; color: var(--event-color); font-size: .61rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.schedule-event strong { font-family: var(--font-head); font-size: .9rem; line-height: 1.25; }
.schedule-event-speaker { margin-top: .2rem; color: var(--ink-2); font-size: .72rem; font-weight: 600; }
.schedule-event-meta { margin-top: .32rem; color: var(--muted); font-size: .66rem; line-height: 1.3; }
.event-course .schedule-event-meta {
  display: block;
  width: 100%;
  margin-top: .55rem;
  padding: .55rem .7rem;
  border: 1px solid #d5eb9c;
  border-left: 3px solid var(--lime-deep);
  border-radius: 9px;
  background: #f1f8dc;
  color: #36513f;
  font-size: .68rem;
  line-height: 1.45;
}
.event-course .schedule-event-meta strong { color: var(--forest); }
.schedule-event:has(.schedule-pre-event-cta) { position: relative; }
.schedule-event:has(.schedule-pre-event-cta) .schedule-event-body { padding-right: 104px; }
.schedule-pre-event-cta { position: absolute; top: 50%; right: 1rem; transform: translateY(-50%); padding: .38rem .58rem; border-radius: 999px; background: var(--forest); color: var(--cream); font-size: .65rem; font-weight: 700; line-height: 1; white-space: nowrap; transition: background .2s, transform .2s; }
.schedule-pre-event-cta:hover { background: var(--forest-soft); transform: translateY(-50%) scale(1.04); }
.event-talk { --event-color: #7ca219; background: #f7faef; }
.event-opening-featured {
  position: relative; z-index: 1;
  background: color-mix(in srgb, var(--event-color) 8%, var(--paper));
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--event-color) 30%, transparent);
  animation: opening-event-attention 3.4s ease-in-out infinite;
}
.event-opening-featured .schedule-pre-event-cta { animation: opening-cta-attention 3.4s ease-in-out infinite; }
body.home-page .home-schedule-calendar .event-opening-featured::after { animation: opening-arrow-attention 3.4s ease-in-out infinite; }
@keyframes opening-event-attention {
  0%, 66%, 100% { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--event-color) 30%, transparent); }
  76% { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--event-color) 48%, transparent), 0 0 0 5px color-mix(in srgb, var(--event-color) 9%, transparent); }
  84% { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--event-color) 38%, transparent), 0 0 0 2px color-mix(in srgb, var(--event-color) 5%, transparent); }
}
@keyframes opening-cta-attention {
  0%, 66%, 100% { transform: translateY(-50%) scale(1); }
  74% { transform: translateY(-50%) scale(1.06); }
  79% { transform: translateY(-50%) scale(.98); }
  84% { transform: translateY(-50%) scale(1.03); }
}
@keyframes opening-arrow-attention {
  0%, 66%, 100% { transform: translate(0, -50%); }
  76%, 84% { transform: translate(.28rem, -50%); }
}
@media (prefers-reduced-motion: reduce) {
  .event-opening-featured,
  .event-opening-featured .schedule-pre-event-cta,
  body.home-page .home-schedule-calendar .event-opening-featured::after { animation: none; }
}
.event-paper { --event-color: #4f7fa3; }
.event-course {
  --event-color: #1a432e;
  grid-template-columns: 88px 3px minmax(0, 1fr);
  gap: .85rem;
  align-items: center;
}
.event-course .schedule-event-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  margin: 0 auto;
  align-self: center;
}
.schedule-time-start {
  display: block;
  color: var(--ink);
  font-family: var(--font-head);
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
}
.schedule-time-end {
  display: block;
  margin-top: .12rem;
  color: var(--muted);
  font-family: var(--font-body);
  font-size: .63rem;
  font-weight: 500;
  line-height: 1;
  text-align: center;
}
.schedule-event-place {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: .45rem auto 0;
  padding: .25rem .4rem;
  width: 100%;
  max-width: 86px;
  background: var(--cream-2);
  border: 1px solid var(--line-2);
  border-radius: 8px;
  color: var(--forest);
  font-family: var(--font-head);
  font-size: .65rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  box-sizing: border-box;
}
.schedule-event-place small {
  display: block;
  margin-top: .08rem;
  font-family: var(--font-body);
  font-size: .56rem;
  font-weight: 600;
  color: var(--muted);
  text-align: center;
}
.event-course .schedule-event-color {
  width: 3px;
  height: 75%;
  min-height: 48px;
  background: var(--forest);
  border-radius: 999px;
  align-self: center;
}
.event-course .schedule-event-type {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .14rem .38rem;
  max-width: 100%;
  margin-bottom: .3rem;
  padding: .18rem .52rem;
  border-radius: 999px;
  background: #edf7d4;
  border: 1px solid #d5eb9c;
  color: #173e23;
  font-size: .63rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  line-height: 1.2;
  width: fit-content;
}
.event-course .schedule-event-date {
  padding-left: .38rem;
  border-left: 1px solid rgba(23, 62, 35, .24);
  text-transform: none;
  white-space: nowrap;
}
.schedule-speaker-label {
  font-weight: 700;
  color: var(--forest);
  margin-right: .22rem;
}
.schedule-course-cta {
  display: inline-flex; align-items: center; gap: .35rem; margin-top: .6rem;
  padding: .38rem .8rem; border-radius: 999px; background: var(--forest);
  color: var(--cream); font-size: .72rem; font-weight: 700; line-height: 1;
  white-space: nowrap; text-decoration: none; width: fit-content;
  box-shadow: 0 1px 3px rgba(15,44,30,.12);
  transition: background .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
}
.schedule-course-cta .arw { display: inline-block; font-size: .8rem; transition: transform .2s var(--ease); }
.schedule-course-cta:hover {
  background: var(--lime-deep); color: #fff; transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(15,44,30,.2);
}
.schedule-course-cta:hover .arw { transform: translateX(2px); }
.schedule-capacity-badge {
  display: inline-flex; align-items: center; gap: .55rem; width: fit-content;
  margin-top: .6rem; padding: .42rem .68rem; border: 1px solid #efaaa7;
  border-radius: 9px; background: #fde8e7; color: #8e1d1d;
  font-size: .68rem; font-weight: 650; line-height: 1.2;
}
.schedule-capacity-badge strong {
  color: #a31313; font-family: var(--font-head); font-size: .7rem;
  letter-spacing: .035em; text-transform: uppercase;
}
.event-course.has-language-note { position: relative; }
.event-course.has-language-note .schedule-event-body { padding-right: 250px; }
.schedule-language-note {
  position: absolute; top: .85rem; right: 1rem;
  max-width: 210px; padding: .38rem .62rem;
  border: 1px solid #b9d8ed; border-radius: 999px;
  background: #eaf4fb; color: #245f86;
  font-size: .62rem; font-weight: 700; line-height: 1.3;
  text-align: center;
}
.schedule-course-cta.is-disabled,
.schedule-course-cta.is-disabled:hover,
.schedule-course-cta.is-disabled:active {
  background: #a5aaa7; color: #f7f7f5; cursor: not-allowed;
  box-shadow: none; opacity: 1; transform: none;
}
.schedule-day-note {
  display: flex; flex-direction: column; gap: .25rem;
  padding: .9rem 1.1rem; background: var(--cream-2); border-top: 1px dashed var(--line-2);
  font-size: .74rem; color: var(--muted); line-height: 1.4;
}
.schedule-day-note strong { color: var(--ink-2); font-size: .76rem; }
.schedule-empty { padding: 1.4rem 1.1rem; color: var(--muted); font-size: .8rem; }
.schedule-course-place-inline {
  display: inline-flex; align-items: center; gap: .2rem; padding-left: .38rem;
  border-left: 1px solid rgba(23, 62, 35, .24); color: var(--forest);
  font-size: .61rem; font-weight: 800; letter-spacing: .02em;
  text-transform: none; white-space: nowrap;
}
.schedule-course-place-inline small { color: var(--muted); font-size: .54rem; font-weight: 700; }

body.home-page .home-schedule-calendar .schedule-event:not(.event-break) {
  position: relative; grid-template-columns: 4px minmax(0, 1fr); gap: .8rem;
  min-height: 0; padding: .56rem 3rem .56rem 1rem;
}
body.home-page .home-schedule-calendar .schedule-day-header { padding: .72rem 1rem; }
body.home-page .home-schedule-calendar .home-agenda-link {
  color: inherit; text-decoration: none; cursor: pointer;
  transition: background .18s ease, box-shadow .18s ease;
}
body.home-page .home-schedule-calendar .home-agenda-link::after {
  content: "→"; position: absolute; top: 50%; right: 1.15rem;
  color: var(--event-color); font-family: var(--font-head); font-size: 1rem;
  font-weight: 800; transform: translateY(-50%); transition: transform .18s ease;
}
body.home-page .home-schedule-calendar .home-agenda-link:hover,
body.home-page .home-schedule-calendar .home-agenda-link:focus-visible {
  background: color-mix(in srgb, var(--event-color) 7%, var(--paper));
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--event-color) 28%, transparent);
  outline: 0;
}
body.home-page .home-schedule-calendar .home-agenda-link:hover::after,
body.home-page .home-schedule-calendar .home-agenda-link:focus-visible::after { transform: translate(.22rem, -50%); }
body.home-page .home-schedule-calendar .event-course { --event-color: #d78334; background: var(--paper); }
body.home-page .home-schedule-calendar .event-course .schedule-event-color { background: var(--event-color); }
body.home-page .home-schedule-calendar .schedule-event-body { width: 100%; }
body.home-page .home-schedule-calendar .schedule-compact-head {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: .22rem .7rem;
  width: 100%; margin-bottom: .22rem;
}
body.home-page .home-schedule-calendar .schedule-compact-time {
  display: inline-flex; align-items: baseline; gap: .28rem; color: var(--ink);
  font-family: var(--font-head); font-size: .78rem; font-weight: 800;
}
body.home-page .home-schedule-calendar .schedule-compact-time small {
  display: inline; margin: 0; color: var(--muted); font-family: var(--font-body);
  font-size: .6rem; font-weight: 500;
}
body.home-page .home-schedule-calendar .schedule-compact-head .schedule-event-type { margin: 0; }
body.home-page .home-schedule-calendar .schedule-event strong { font-size: .84rem; line-height: 1.2; }
body.home-page .home-schedule-calendar .schedule-event-speaker,
body.home-page .home-schedule-calendar .schedule-compact-meta {
  margin-top: .16rem; color: var(--muted); font-size: .63rem; line-height: 1.28;
}
body.home-page .home-schedule-calendar .event-course .schedule-compact-meta {
  display: inline-flex; width: fit-content; margin-top: .25rem; padding: .16rem .48rem;
  border: 1px solid #d5eb9c; border-radius: 999px; background: #f1f8dc;
  color: #36513f; font-size: .6rem; font-weight: 700;
}
body.home-page .home-schedule-calendar .event-break {
  --break-color: #936600; --break-bg: #fff5cf;
  position: relative; display: flex; align-items: center; justify-content: center; gap: .72rem;
  min-height: 46px; padding: .46rem 1rem; overflow: hidden; text-align: center;
  background: linear-gradient(90deg, color-mix(in srgb, var(--break-color) 12%, var(--paper)), var(--break-bg));
  box-shadow: inset 4px 0 0 var(--break-color), inset 0 0 0 1px color-mix(in srgb, var(--break-color) 22%, transparent);
}
body.home-page .home-schedule-calendar .event-break[data-break-kind="coffee"] { --break-color: #7650a6; --break-bg: #f5effb; }
body.home-page .home-schedule-calendar .event-break[data-break-kind="pause"] { --break-color: #936600; --break-bg: #fff5cf; }
body.home-page .home-schedule-calendar .event-break time {
  display: inline-flex; align-items: baseline; gap: .28rem; padding: 0;
  background: transparent; color: var(--break-color); font-weight: 800; text-align: center;
}
body.home-page .home-schedule-calendar .event-break time small {
  display: inline; margin: 0; color: color-mix(in srgb, var(--break-color) 72%, var(--muted));
}
body.home-page .home-schedule-calendar .event-break .schedule-event-color,
body.home-page .home-schedule-calendar .event-break .schedule-event-type { display: none; }
body.home-page .home-schedule-calendar .event-break > div { align-items: center; }
body.home-page .home-schedule-calendar .event-break strong { color: var(--break-color); font-size: .8rem; }

body.home-page .home-schedule-calendar .schedule-event.home-course-group {
  display: block; padding: 0; background: var(--paper);
}
body.home-page .home-schedule-calendar .home-course-group-summary {
  position: relative; display: grid; grid-template-columns: 4px minmax(0, 1fr); gap: .8rem;
  padding: .56rem 3rem .56rem 1rem; cursor: pointer; list-style: none;
  transition: background .18s ease;
}
body.home-page .home-schedule-calendar .home-course-group-summary::-webkit-details-marker { display: none; }
body.home-page .home-schedule-calendar .home-course-group-summary::marker { content: ""; }
body.home-page .home-schedule-calendar .home-course-group-summary:hover,
body.home-page .home-schedule-calendar .home-course-group-summary:focus-visible { background: #fff8ef; outline: 0; }
body.home-page .home-schedule-calendar .home-course-group-toggle {
  position: absolute; top: 50%; right: 1.15rem; width: .62rem; height: .62rem;
  border-right: 2px solid var(--event-color); border-bottom: 2px solid var(--event-color);
  transform: translateY(-68%) rotate(45deg); transition: transform .2s ease;
}
body.home-page .home-schedule-calendar .home-course-group[open] .home-course-group-toggle {
  transform: translateY(-28%) rotate(225deg);
}
body.home-page .home-schedule-calendar .home-course-group-list {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem;
  padding: .45rem .75rem .72rem 1.8rem; border-top: 1px dashed #ead7bf; background: #fffcf8;
}
body.home-page .home-schedule-calendar .home-course-group-item {
  position: relative; display: flex; min-width: 0; flex-direction: column; gap: .18rem;
  padding: .5rem 1.8rem .5rem .62rem; border: 1px solid #ead7bf; border-radius: 9px;
  background: var(--paper); color: inherit; text-decoration: none; transition: border-color .18s ease, transform .18s ease;
}
body.home-page .home-schedule-calendar .home-course-group-item::after {
  content: "→"; position: absolute; top: 50%; right: .62rem; color: var(--event-color);
  font-weight: 800; transform: translateY(-50%);
}
body.home-page .home-schedule-calendar .home-course-group-item:hover,
body.home-page .home-schedule-calendar .home-course-group-item:focus-visible {
  border-color: var(--event-color); outline: 0; transform: translateY(-1px);
}
body.home-page .home-schedule-calendar .home-course-group-item strong { font-size: .72rem; line-height: 1.25; }
body.home-page .home-schedule-calendar .home-course-group-item span { color: var(--muted); font-size: .58rem; line-height: 1.25; }
body.home-page .home-schedule-calendar .home-course-group-item span b { color: #873f3a; }

@media (max-width: 600px) {
  .hero-inner { padding-inline: 1.25rem; }
  .hero-eyebrow {
    position: relative; display: block; max-width: 100%; padding-left: 2rem;
    font-size: .68rem; line-height: 1.45; letter-spacing: .12em; overflow-wrap: anywhere;
  }
  .hero-eyebrow::before { position: absolute; top: .7em; left: 0; width: 22px; }
  .hero-title { margin-block: .9rem 1.35rem; }
  .hero-tagline { font-size: clamp(1.28rem, 6.4vw, 1.55rem); line-height: 1.08; }
  .hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: .55rem; }
  .hero-actions .btn { justify-content: center; min-width: 0; padding: .8rem .5rem; font-size: .84rem; }
  .org-grid, .org-card, .org-card > div:last-child { min-width: 0; }
  .org-card { gap: .7rem; padding: .8rem; }
  .org-card h4, .org-card .org-email { overflow-wrap: anywhere; }
  body.home-page .schedule-date-tabs {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%;
    gap: .2rem; padding: .28rem; border-radius: 16px;
  }
  body.home-page .schedule-date-tabs .stab {
    min-width: 0; padding: .52rem .22rem; font-size: .76rem; white-space: nowrap;
  }
  body.home-page .schedule-legend { gap: .42rem .8rem; font-size: .68rem; }
  body.home-page .home-schedule-calendar .schedule-event:not(.event-break) {
    grid-template-columns: 3px minmax(0, 1fr); gap: .62rem;
    padding: .65rem 2.35rem .65rem .75rem;
  }
  body.home-page .home-schedule-calendar .schedule-event > div { overflow-wrap: anywhere; }
  body.home-page .home-schedule-calendar .schedule-event strong { font-size: .8rem; }
  body.home-page .home-schedule-calendar .schedule-compact-head { gap: .18rem .55rem; }
  body.home-page .home-schedule-calendar .schedule-compact-time { font-size: .74rem; }
  body.home-page .home-schedule-calendar .home-agenda-link::after { right: .8rem; }
  body.home-page .home-schedule-calendar .event-break {
    min-height: 44px; padding: .42rem .65rem; gap: .48rem;
  }
  body.home-page .home-schedule-calendar .home-course-group-summary {
    grid-template-columns: 3px minmax(0, 1fr); gap: .62rem; padding: .52rem 2.35rem .52rem .75rem;
  }
  body.home-page .home-schedule-calendar .home-course-group-toggle { right: .85rem; }
  body.home-page .home-schedule-calendar .home-course-group-list {
    grid-template-columns: 1fr; padding: .4rem .6rem .62rem 1.35rem;
  }
  body.home-page .home-schedule-calendar .home-course-group-item { overflow-wrap: anywhere; }
}

/* Ordem de apresentação dos artigos */
.paper-day-header { align-items: center; }
.paper-day-header > div { display: flex; min-width: 0; flex-direction: column; gap: .24rem; }
.paper-day-header small {
  color: var(--forest); font-family: var(--font-head); font-size: .78rem;
  font-weight: 700; line-height: 1.25;
}
.paper-day-header strong { flex: 0 0 auto; }
.paper-list { display: flex; flex-direction: column; }
.paper-item {
  display: grid; grid-template-columns: 48px 82px minmax(0, 1fr); align-items: center;
  gap: .85rem; min-height: 74px; padding: .78rem 1rem; border-top: 1px solid var(--line-2);
  background: var(--paper);
}
.paper-item:first-child { border-top: 0; }
.paper-item:nth-child(even) { background: var(--cream-2); }
.paper-order {
  display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
  background: var(--forest); color: #fff; font-family: var(--font-head);
  font-size: .92rem; font-weight: 750; letter-spacing: .02em;
  box-shadow: 0 4px 12px -8px rgba(15,44,30,.65);
}
.paper-id {
  padding-right: .8rem; border-right: 1px solid var(--line); color: var(--forest);
  font-family: var(--font-head); font-size: .82rem; font-weight: 750;
}
.paper-title {
  margin: 0; color: var(--ink-2); font-family: var(--font-head);
  font-size: .88rem; font-weight: 600; line-height: 1.35;
}

@media (max-width: 720px) {
  .schedule-date-tabs { display: flex; max-width: 100%; overflow-x: auto; }
  .schedule-date-tabs .stab { flex: 0 0 auto; white-space: nowrap; }
  .paper-day-header { align-items: flex-start; }
  .paper-day-header small { max-width: 32ch; font-size: .7rem; }
  .paper-item { grid-template-columns: 42px 70px minmax(0, 1fr); gap: .65rem; padding: .72rem .78rem; }
  .paper-order { width: 38px; height: 38px; font-size: .84rem; }
  .paper-id { padding-right: .55rem; font-size: .74rem; }
  .paper-title { font-size: .8rem; line-height: 1.4; }
}

@media (max-width: 480px) {
  .paper-day-header { flex-direction: column-reverse; gap: .45rem; }
  .paper-day-header strong { font-size: .84rem; }
  .paper-item { grid-template-columns: 38px minmax(0, 1fr); gap: .16rem .7rem; }
  .paper-order { grid-row: 1 / span 2; width: 34px; height: 34px; font-size: .78rem; }
  .paper-id { grid-column: 2; padding: 0; border-right: 0; }
  .paper-title { grid-column: 2; }
}

/* Activity session list (subpages) */
.activity-day-head { margin-bottom: 1.4rem; }
.activity-day-head h3 { font-size: 1.5rem; }
.activity-day-head p { color: var(--muted); }
.activity-session {
  display: grid; grid-template-columns: 84px 1fr; gap: 1.2rem;
  padding: 1.3rem 0; border-top: 1px solid var(--line);
}
.activity-time { font-family: var(--font-head); font-weight: 600; color: var(--lime-deep); font-size: 1.05rem; }
.activity-session h3 { font-size: 1.15rem; margin-bottom: .35rem; }
.activity-session p { color: var(--muted); font-size: .95rem; }
.activity-meta { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .7rem; }
.activity-meta span { font-size: .78rem; color: var(--ink-2); background: var(--cream-2); padding: .3rem .7rem; border-radius: 100px; }
.activity-note { margin-top: 2.5rem; padding: 1.6rem; border-left: 3px solid var(--lime); background: var(--paper); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; display: flex; flex-direction: column; gap: .7rem; }
.activity-note.presentation-note { margin-top: 0; margin-bottom: 2.2rem; }
.activity-note.presentation-note p { text-align: justify; text-justify: inter-word; hyphens: auto; }
.activity-note h3 { font-size: 1.15rem; margin-bottom: 0; }
.activity-note p { color: var(--muted); line-height: 1.65; }
.activity-note p strong { color: var(--ink); font-weight: 600; }
.activity-note.award-note {
  margin-top: 0; margin-bottom: 2.5rem; gap: 1rem;
  border-left-color: var(--forest); background: linear-gradient(135deg, var(--paper), #f1f6e5);
}
.award-note-head { display: flex; flex-direction: column; gap: .3rem; }
.award-note-kicker {
  display: inline-flex; align-items: center; gap: .5rem; color: var(--forest);
  font-size: .68rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase;
}
.award-note-kicker::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--lime-deep); }
.award-note-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.award-note-list li {
  display: flex; flex-direction: column; gap: .22rem; padding: .85rem .95rem;
  border: 1px solid var(--line-2); border-radius: var(--radius-sm); background: rgba(255,255,255,.48);
}
.award-note-list strong { color: var(--forest); font-family: var(--font-head); font-size: .86rem; }
.award-note-list span { color: var(--muted); font-size: .78rem; line-height: 1.5; }
.activity-note .award-note-date {
  align-self: flex-start; padding: .5rem .8rem; border-radius: 100px;
  background: var(--forest); color: var(--cream); font-size: .78rem; font-weight: 700; line-height: 1.35;
}
@media (max-width: 600px) {
  .award-note-list { grid-template-columns: 1fr; }
  .activity-note .award-note-date { border-radius: var(--radius-sm); }
}

/* Agenda de palestras */
.event-calendar {
  overflow: hidden; margin-top: .5rem; background: var(--paper);
  border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: 0 20px 50px -42px rgba(15,44,30,.45);
}
.calendar-toolbar {
  min-height: 88px; padding: 1.2rem 1.4rem; display: flex; align-items: center;
  justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line-2);
}
.calendar-toolbar > div { display: flex; flex-direction: column; gap: .2rem; }
.calendar-toolbar strong { font-family: var(--font-head); font-size: 1.15rem; }
.calendar-kicker { color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.calendar-view { padding: .45rem .85rem; color: var(--ink-2); background: var(--cream-2); border-radius: 100px; font-size: .78rem; font-weight: 600; }
.calendar-tabs { display: flex; width: fit-content; margin: 1rem 1.4rem; overflow-x: auto; max-width: calc(100% - 2.8rem); }
.calendar-tabs .stab { white-space: nowrap; }
.calendar-body { border-top: 1px solid var(--line-2); }
.calendar-agenda { display: grid; grid-template-columns: 86px minmax(0,1fr); min-height: 190px; }
.calendar-date {
  padding: 1.5rem .8rem; border-right: 1px solid var(--line-2);
  display: flex; flex-direction: column; align-items: center; color: var(--muted);
}
.calendar-date span, .calendar-date small { font-size: .68rem; font-weight: 700; letter-spacing: .1em; }
.calendar-date strong { margin: .18rem 0; color: var(--ink); font-family: var(--font-head); font-size: 2rem; line-height: 1; }
.calendar-events { padding: 1.2rem 1.4rem; display: flex; flex-direction: column; gap: .7rem; }
.calendar-event {
  position: relative; display: grid; grid-template-columns: 64px 18px minmax(0,1fr) 24px;
  align-items: center; min-height: 116px; padding: 1rem 1.1rem; color: inherit;
  background: #f4f8ed; border: 1px solid #dce8ca; border-radius: var(--radius-sm);
  transition: transform .25s var(--ease), border-color .25s, box-shadow .25s;
}
.calendar-event:hover { transform: translateY(-2px); border-color: var(--lime-deep); box-shadow: 0 16px 35px -28px rgba(15,44,30,.55); }
.calendar-event:focus-visible { outline: 3px solid var(--lime-deep); outline-offset: 3px; }
.calendar-event-time { align-self: start; padding-top: .15rem; color: var(--ink-2); font-family: var(--font-head); font-size: .88rem; font-weight: 700; }
.calendar-event-marker { position: relative; align-self: stretch; }
.calendar-event-marker::before { content: ""; position: absolute; left: 7px; top: 0; bottom: 0; width: 2px; background: var(--lime-deep); }
.calendar-event-marker::after { content: ""; position: absolute; left: 3px; top: .3rem; width: 10px; height: 10px; background: var(--lime-deep); border-radius: 50%; box-shadow: 0 0 0 4px #edf5df; }
.calendar-event-content { display: flex; flex-direction: column; gap: .28rem; }
.calendar-event-content strong { font-family: var(--font-head); font-size: 1.1rem; }
.calendar-event-content > span:last-child { color: var(--muted); font-size: .86rem; }
.calendar-event-type { color: var(--lime-deep); font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.calendar-event-arrow { font-size: 1.15rem; transition: transform .25s; }
.calendar-event:hover .calendar-event-arrow { transform: translateX(4px); }
.calendar-empty { margin: 1.2rem 1.4rem; padding: 2rem; display: flex; flex-direction: column; justify-content: center; gap: .3rem; color: var(--muted); background: var(--cream-2); border: 1px dashed var(--line); border-radius: var(--radius-sm); }
.calendar-empty strong { color: var(--ink-2); font-family: var(--font-head); }
.calendar-empty span { font-size: .86rem; }

@media (max-width: 600px) {
  .calendar-toolbar { align-items: flex-start; }
  .calendar-view { display: none; }
  .calendar-tabs { margin-inline: 1rem; max-width: calc(100% - 2rem); }
  .calendar-agenda { grid-template-columns: 64px minmax(0,1fr); }
  .calendar-date { padding-inline: .5rem; }
  .calendar-events { padding: 1rem; }
  .calendar-event { grid-template-columns: 1fr 22px; gap: .35rem; }
  .calendar-event-time { grid-column: 1; }
  .calendar-event-marker { display: none; }
  .calendar-event-content { grid-column: 1; }
  .calendar-event-arrow { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .calendar-empty { margin: 1rem; padding: 1.4rem; }
}

/* =========================================================
   DESTAQUES (horizontal scroll)
   ========================================================= */
.talks-scroll {
  display: grid; grid-auto-flow: column; grid-auto-columns: min(88%, 380px);
  gap: 1.4rem; overflow-x: auto; scroll-snap-type: x mandatory;
  padding-bottom: 1rem; scrollbar-width: none;
}
.talks-scroll::-webkit-scrollbar { display: none; }
.tcard {
  scroll-snap-align: start; background: var(--paper); border: 1px solid var(--line-2);
  border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column;
  transition: transform .35s var(--ease), box-shadow .35s;
}
.tcard:hover { transform: translateY(-5px); box-shadow: 0 24px 50px -35px rgba(15,44,30,.4); }
.tcard-media { aspect-ratio: 16/10; overflow: hidden; }
.tcard-media img { width: 100%; height: 100%; object-fit: cover; }
.tcard-body { padding: 1.4rem; display: flex; flex-direction: column; flex: 1; }
.tcard-label { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--lime-deep); font-weight: 600; margin-bottom: .6rem; }
.tcard-body h3 { font-size: 1.2rem; margin-bottom: .6rem; }
.tcard-body p { color: var(--muted); font-size: .92rem; flex: 1; }
.tcard-meta { display: flex; justify-content: space-between; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line-2); font-size: .82rem; color: var(--muted); }
.talks-controls { display: flex; gap: .6rem; margin-top: 1.4rem; }
.talks-arrow {
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line);
  display: grid; place-items: center; font-size: 1.2rem; color: var(--ink); transition: .25s;
}
.talks-arrow:hover { background: var(--ink); color: var(--cream); border-color: var(--ink); }

/* Destaque único */
.featured-talk {
  display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  max-width: 980px; min-height: 470px; margin-inline: auto; overflow: hidden;
  color: inherit; background: var(--paper); border: 1px solid var(--line-2);
  border-radius: var(--radius-lg); box-shadow: 0 28px 70px -50px rgba(15,44,30,.5);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.featured-talk:hover { transform: translateY(-6px); border-color: rgba(63,98,71,.35); box-shadow: 0 32px 70px -42px rgba(15,44,30,.55); }
.featured-talk:focus-visible { outline: 3px solid var(--lime-deep); outline-offset: 5px; }
.featured-talk-media { min-height: 470px; overflow: hidden; background: var(--forest); }
.featured-talk-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; transition: transform .6s var(--ease); }
.featured-talk:hover .featured-talk-media img { transform: scale(1.025); }
.featured-talk-body { padding: clamp(2rem, 5vw, 4rem); display: flex; flex-direction: column; justify-content: center; }
.featured-talk-body h3 { max-width: 12ch; margin: .25rem 0 1rem; font-size: clamp(2.2rem, 5vw, 4rem); line-height: .98; letter-spacing: -.045em; }
.featured-talk-body > p { max-width: 58ch; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.featured-talk-info { display: flex; flex-wrap: wrap; gap: .7rem 1.4rem; margin-top: 1.6rem; padding-top: 1.3rem; border-top: 1px solid var(--line-2); color: var(--ink-2); font-size: .9rem; }
.featured-talk-info span { display: flex; align-items: center; gap: .35rem; }
.pre-event-notice { max-width: 58ch; margin-top: 1rem; color: var(--forest); font-size: .9rem; font-weight: 600; line-height: 1.55; }
.featured-talk-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; margin-top: 1.5rem; }
.featured-talk-cta { width: fit-content; margin-top: 1.8rem; padding-bottom: .25rem; border-bottom: 1px solid var(--lime-deep); color: var(--forest); font-family: var(--font-head); font-weight: 700; }
.featured-talk-actions .featured-talk-cta { margin-top: 0; }
.featured-talk-cta .arw { display: inline-block; margin-left: .4rem; transition: transform .25s; }
.featured-talk:hover .featured-talk-cta .arw { transform: translateX(5px); }

/* Pré-evento: card compacto com ilustração animada exclusiva */
.pre-event-head h2 { white-space: nowrap; font-size: clamp(1.2rem, 5.4vw, 3rem); }
.pre-event-feature { position: relative; grid-template-columns: minmax(205px, .42fr) minmax(0, 1.58fr); min-height: 330px; max-width: 920px; }
.pre-event-feature:hover { transform: translateY(-4px); }
.pre-event-feature .featured-talk-media { min-height: 330px; }
.pre-event-feature .featured-talk-body { padding: clamp(1.5rem, 3.5vw, 2.5rem); }
.pre-event-feature .featured-talk-body h3 { max-width: none; font-size: clamp(2rem, 3.5vw, 3rem); margin-bottom: .65rem; }
.pre-event-feature .featured-talk-info { margin-top: 1rem; padding-top: .9rem; }
.pre-event-feature .pre-event-notice { margin-top: .75rem; }
.pre-event-feature .featured-talk-actions { margin-top: 1rem; }

@media (max-width: 760px) {
  .featured-talk { grid-template-columns: 1fr; min-height: 0; }
  .featured-talk-media { min-height: 0; aspect-ratio: 4/4.6; }
  .featured-talk-body h3 { max-width: 14ch; }
  /* O conteudo do pre-evento precisa de toda a largura em telas estreitas.
     Manter a foto ao lado comprimia a coluna de texto e fazia o card transbordar. */
  .pre-event-feature { grid-template-columns: 1fr; min-height: 0; }
  .pre-event-feature .featured-talk-media { min-height: 0; aspect-ratio: 5/4; }
  .pre-event-feature .featured-talk-body h3 { max-width: none; font-size: clamp(1.75rem, 8vw, 2.25rem); }
  .pre-event-feature .featured-talk-info { gap: .45rem .8rem; font-size: .8rem; }
  .pre-event-feature .featured-talk-body > p { font-size: .88rem; line-height: 1.5; }
  .pre-event-feature .featured-talk-actions { gap: .8rem; }
  .pre-event-feature .btn { padding: .7rem .9rem; font-size: .78rem; }
}

@media (max-width: 420px) {
  .pre-event-head h2 { white-space: normal; }
  .pre-event-feature .featured-talk-body { padding: 1.35rem; }
  .pre-event-feature .featured-talk-actions { align-items: stretch; }
  .pre-event-feature .featured-talk-actions .btn { justify-content: center; }
}

/* =========================================================
   SUBMISSÕES (dark section)
   ========================================================= */
.section-forest { background: var(--forest); color: #fff; position: relative; overflow: hidden; }
.section-forest .wrap { width: min(1500px, 94%); position: relative; z-index: 1; }
/* brilhos ambientes que o vidro dos cards "congela" ao desfocar */
.section-forest::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(40rem 27rem at 22% 58%, rgba(200,239,84,.16), transparent 60%),
    radial-gradient(36rem 25rem at 80% 66%, rgba(84,200,158,.18), transparent 62%);
}
.section-forest h2, .section-forest h3, .section-forest h4 { color: #fff; }
.section-forest .s-desc { color: var(--muted-dark); }

.sub-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; align-items: stretch; }
.sub-card {
  position: relative;
  display: flex; flex-direction: column;
  background: linear-gradient(150deg, rgba(255,255,255,.10), rgba(255,255,255,.025));
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--radius-lg); padding: clamp(1.5rem, 2.4vw, 2.1rem);
  box-shadow: 0 10px 34px -12px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.14);
  transition: border-color .45s var(--ease), box-shadow .45s var(--ease), background .45s var(--ease);
}
.sub-card:hover {
  border-color: rgba(200,239,84,.55);
  background: linear-gradient(150deg, rgba(255,255,255,.15), rgba(255,255,255,.04));
  box-shadow: 0 22px 50px -16px rgba(0,0,0,.6), 0 0 0 1px rgba(200,239,84,.15), inset 0 1px 0 rgba(255,255,255,.22);
}
.sub-card h3 { font-size: 1.6rem; margin-bottom: .3rem; }
.sub-card .sub-sub { display: block; font-size: .95rem; color: var(--lime); font-weight: 500; margin-bottom: .9rem; font-family: var(--font-body); }
.sub-card > p { color: var(--muted-dark); margin-bottom: 1rem; }
.sub-card ul { display: flex; flex-direction: column; gap: .5rem; margin-bottom: 1.1rem; }
.sub-card li { display: flex; gap: .6rem; font-size: .92rem; color: rgba(255,255,255,.85); }
.sub-card li del { color: rgba(255,255,255,.45); text-decoration: line-through; margin-right: .2rem; }
.sub-card li .date-line { min-width: 0; }
.sub-card li .nowrap { white-space: nowrap; }
.sub-card li::before { content: ""; width: 6px; height: 6px; margin-top: .5rem; border-radius: 50%; background: var(--lime); flex-shrink: 0; }

.sub-card-dates {
  margin-top: .1rem;
  margin-bottom: 1.1rem;
  padding-top: .75rem;
  border-top: 1px dashed rgba(255, 255, 255, .15);
}
.sub-dates-title {
  display: block;
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--lime);
  margin-bottom: .6rem;
}
.sub-card ul.sub-dates-list {
  margin-bottom: 0;
  gap: .5rem;
}

.sub-footer {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line-dark);
}
.sub-deadline { font-size: .9rem; color: var(--muted-dark); }
.sub-deadline del { color: rgba(255,255,255,.45); margin-right: .35rem; text-decoration: line-through; }
.sub-deadline strong { color: var(--lime); }
.sub-link {
  display: inline-flex; align-items: center; gap: .4rem; flex-shrink: 0; white-space: nowrap;
  background: var(--lime); color: var(--lime-ink);
  padding: .62rem 1.25rem; border-radius: 100px;
  font-weight: 600; font-size: .92rem;
  transition: transform .25s var(--ease), background .25s;
}
.sub-card:hover .sub-link { background: var(--lime-deep); transform: translateY(-2px); }
.sub-card:hover .sub-link .arw { transform: translateX(3px); }
.sub-link .arw { transition: transform .25s var(--ease); }

@keyframes callout-flash {
  0%, 100% {
    box-shadow: 0 6px 20px rgba(180, 83, 9, 0.07);
    border-color: rgba(217, 119, 6, 0.32);
  }
  30%, 65% {
    box-shadow: 0 0 28px rgba(217, 119, 6, 0.55);
    border-color: #d97706;
  }
}
.callout-alert.highlight-flash {
  animation: callout-flash 2.2s ease-in-out;
}

/* Tópicos */
.topics { margin-top: clamp(3rem, 6vw, 5rem); }
.topics-wrap { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.6rem; }
.topic {
  font-size: .85rem; padding: .5rem 1rem; border-radius: 100px;
  border: 1px solid var(--line-dark); color: rgba(255,255,255,.8);
  transition: .25s;
}
.topic:hover { background: var(--lime); color: var(--lime-ink); border-color: var(--lime); }

@media (max-width: 760px) {
  .sub-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
}
@media (max-width: 600px) {
  #submissoes .wrap { width: min(1500px, calc(100% - 2rem)); }
  #submissoes .s-head { margin-bottom: 1.5rem; }
  #submissoes .s-head h2 { font-size: clamp(2rem, 10vw, 2.65rem); line-height: 1; }
  #submissoes .s-head .s-desc { font-size: .98rem; line-height: 1.6; }
  .sub-card {
    width: 100%;
    min-width: 0;
    padding: 1.3rem 1.15rem;
    border-radius: 22px;
  }
  .sub-card h3 { font-size: 1.45rem; }
  .sub-card .sub-sub { margin-bottom: .75rem; font-size: .88rem; }
  .sub-card > p { margin-bottom: .9rem; font-size: .93rem; line-height: 1.58; }
  .sub-card ul { gap: .55rem; }
  .sub-card li {
    position: relative;
    display: block;
    padding-left: 1rem;
    font-size: .88rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
  }
  .sub-card li::before {
    position: absolute;
    top: .62em;
    left: 0;
    margin: 0;
  }
  .sub-card li del,
  .sub-deadline del { margin-right: .18rem; }
  .sub-card li .nowrap { white-space: normal; }
  .sub-card-dates { margin-bottom: .85rem; padding-top: .8rem; }
  .sub-footer {
    align-items: stretch;
    flex-direction: column;
    gap: .9rem;
    padding-top: .9rem;
  }
  .sub-deadline { font-size: .86rem; line-height: 1.55; overflow-wrap: anywhere; }
  .sub-link { width: 100%; justify-content: center; padding: .72rem 1rem; }
  .topics { margin-top: 2.5rem; }
  .topics-wrap { gap: .45rem; margin-top: 1.15rem; }
  .topic { padding: .45rem .75rem; font-size: .78rem; }
}

/* =========================================================
   INSCRIÇÕES (ticket)
   ========================================================= */
/* brilhos ambientes atrás do banner (para o vidro ter o que desfocar) */
#inscricoes { position: relative; overflow: hidden; }
#inscricoes .wrap { position: relative; z-index: 1; }
#inscricoes::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(34rem 24rem at 20% 78%, rgba(200,239,84,.28), transparent 60%),
    radial-gradient(30rem 22rem at 88% 30%, rgba(84,200,158,.24), transparent 62%);
}
.ticket {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 0;
  border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid rgba(255,255,255,.55);
  background: linear-gradient(150deg, rgba(255,255,255,.62), rgba(255,255,255,.4));
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  box-shadow: 0 18px 44px -22px rgba(22,33,27,.28), inset 0 1px 0 rgba(255,255,255,.7);
  transition: box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.ticket:hover {
  box-shadow: 0 26px 56px -22px rgba(22,33,27,.35), 0 0 0 1px rgba(200,239,84,.3), inset 0 1px 0 rgba(255,255,255,.85);
  border-color: rgba(200,239,84,.5);
}
.ticket-main { padding: clamp(2rem, 4vw, 3.4rem); }
.ticket-main .ticket-label { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.ticket-main h3 { font-size: clamp(2rem, 4vw, 3rem); margin: .7rem 0 1rem; }
.ticket-main > p { color: var(--muted); max-width: 46ch; margin-bottom: 1.6rem; }
.ticket-points { display: flex; flex-wrap: wrap; gap: .6rem; }
.ticket-points span { font-size: .85rem; padding: .45rem .95rem; border-radius: 100px; background: var(--cream-2); color: var(--ink-2); }
.ticket-side {
  background: var(--forest); color: #fff; padding: clamp(2rem, 4vw, 3.4rem);
  display: flex; flex-direction: column; justify-content: center; gap: .3rem;
}
.ticket-side .free-k { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-dark); }
.ticket-side .free-v { font-family: var(--font-head); font-size: clamp(2.4rem, 5vw, 3.4rem); color: var(--lime); line-height: 1; margin: .2rem 0 .6rem; }
.ticket-side p { color: var(--muted-dark); font-size: .88rem; margin-bottom: 1.4rem; }
.ticket-cta { justify-content: center; font-weight: 700; text-align: center; }

@media (max-width: 760px) { .ticket { grid-template-columns: 1fr; } }

/* =========================================================
   LOCAL
   ========================================================= */
.local-section {
  position: relative; overflow: hidden; background: var(--forest); color: #fff;
  padding-top: clamp(2rem, 3vw, 2.75rem); padding-bottom: clamp(1.5rem, 2.5vw, 2.25rem);
}
.local-section::before {
  content: ""; position: absolute; width: 520px; height: 520px; right: -180px; top: -220px;
  border-radius: 50%; background: rgba(200,239,84,.06); filter: blur(10px);
}
.local-stage {
  display: grid; grid-template-columns: minmax(330px,.72fr) minmax(500px,1.28fr);
  align-items: center; gap: clamp(1.5rem, 3vw, 3rem); min-height: clamp(350px, 36vw, 430px);
}
.local-copy { position: relative; z-index: 2; max-width: 530px; }
.local-copy h2 { color: #fff; font-size: clamp(2.6rem, 4.4vw, 4.3rem); line-height: .98; letter-spacing: -.045em; margin: .75rem 0 1rem; }
.local-map-art {
  position: relative; height: clamp(350px, 36vw, 430px);
  width: calc(100% + max(4vw, calc((100vw - var(--wrap)) / 2)));
  max-width: 1100px;
  margin-left: 0;
  margin-right: min(-4vw, calc((var(--wrap) - 100vw) / 2));
}
.local-map-canvas {
  position: absolute; left: 0; top: 50%; width: 100%; aspect-ratio: 650 / 720;
  transform: translateY(-50%);
}
.local-map-canvas > img { display: block; width: 100%; height: 100%; opacity: .92; }
.local-map-art figcaption { position: absolute; right: 3%; bottom: 2%; color: rgba(255,255,255,.38); font-size: .64rem; }
.local-map-art figcaption a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.local-marker {
  position: absolute; left: 42.2%; top: 59.5%; z-index: 3;
  transform: translate(-50%,-100%);
}
.local-pin {
  width: 42px; height: 42px; display: block; color: var(--lime);
  filter: drop-shadow(0 5px 8px rgba(3,20,13,.45));
}
.local-pin svg { display: block; width: 100%; height: 100%; stroke-width: 2.4; }
.local-facts {
  position: relative; z-index: 5; display: grid; grid-template-columns: repeat(3,1fr);
  margin-top: -1.5rem; overflow: hidden; border: 1px solid rgba(255,255,255,.17);
  border-radius: 22px; background: rgba(13,47,34,.72);
  box-shadow: 0 24px 55px rgba(4,24,16,.25);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
.local-fact { min-height: 100px; padding: 1rem 1.35rem; display: flex; flex-direction: column; justify-content: center; }
.local-fact + .local-fact { border-left: 1px solid rgba(255,255,255,.12); }
.local-fact > span { color: var(--lime); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .55rem; }
.local-fact strong { color: #fff; font-family: var(--font-head); font-size: 1.05rem; }
.local-fact p { color: var(--muted-dark); font-size: .83rem; margin-top: .32rem; }

@media (max-width: 900px) {
  .local-stage { grid-template-columns: 1fr; min-height: 0; }
  .local-copy { max-width: 650px; }
  .local-map-art { width: calc(100% + 8vw); max-width: 720px; height: clamp(300px, 58vw, 410px); margin-left: auto; margin-right: -8vw; }
  .local-facts { margin-top: 1.2rem; }
}
@media (max-width: 680px) {
  .local-facts { grid-template-columns: 1fr; }
  .local-fact { min-height: 0; }
  .local-fact + .local-fact { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
  .local-pin { width: 28px; height: 28px; }
}

/* =========================================================
   INSTAGRAM
   ========================================================= */
.instagram-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(34rem 28rem at 91% 23%, rgba(214,41,118,.055), transparent 66%),
    radial-gradient(32rem 25rem at 75% 86%, rgba(79,91,213,.045), transparent 68%),
    radial-gradient(36rem 30rem at 92% 15%, rgba(200,239,84,.13), transparent 65%),
    linear-gradient(145deg, var(--cream) 0%, var(--paper) 100%);
}
.instagram-section::before {
  content: "";
  position: absolute;
  left: -150px;
  bottom: -230px;
  width: 460px;
  height: 460px;
  border: 1px solid rgba(22,33,27,.06);
  border-radius: 50%;
  pointer-events: none;
}
.instagram-layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 7rem);
}
.instagram-copy { max-width: 520px; }
.instagram-copy h2 {
  max-width: 10ch;
  margin: .8rem 0 1rem;
  font-size: clamp(2.35rem, 4.8vw, 4.5rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.instagram-copy > p:not(.eyebrow) { max-width: 46ch; color: var(--muted); font-size: 1.02rem; }
.instagram-profile {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: .85rem;
  margin-top: 1.6rem;
  padding: .75rem 1rem .75rem .8rem;
  border: 1px solid var(--line);
  border-radius: 100px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 12px 30px -22px rgba(22,33,27,.45);
  transition: transform .25s var(--ease), border-color .25s, box-shadow .25s;
}
.instagram-profile:hover {
  transform: translateY(-2px);
  border-color: rgba(182,226,62,.85);
  box-shadow: 0 18px 34px -22px rgba(22,33,27,.5);
}
.instagram-profile-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 50%;
  color: #fff;
  background: radial-gradient(circle at 30% 105%, #feda75 0 15%, #fa7e1e 32%, #d62976 58%, #962fbf 78%, #4f5bd5 100%);
}
.instagram-profile-icon svg { width: 21px; height: 21px; }
.instagram-profile small { display: block; color: var(--muted); font-size: .69rem; line-height: 1.2; }
.instagram-profile strong { display: block; font-family: var(--font-head); font-size: .94rem; line-height: 1.35; }
.instagram-profile .arw { margin-left: .25rem; transition: transform .25s var(--ease); }
.instagram-profile:hover .arw { transform: translateX(4px); }
.instagram-card {
  position: relative;
  width: min(100%, 560px);
  justify-self: end;
  padding: 1rem;
  border: 1px solid transparent;
  border-radius: var(--radius-lg);
  background:
    linear-gradient(rgba(255,255,255,.77), rgba(255,255,255,.7)) padding-box,
    linear-gradient(135deg, rgba(254,218,117,.5), rgba(214,41,118,.25), rgba(79,91,213,.22)) border-box;
  box-shadow: 0 30px 70px -38px rgba(15,44,30,.38), inset 0 1px rgba(255,255,255,.78);
  backdrop-filter: blur(18px) saturate(1.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
}
.instagram-embed-label {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .15rem .2rem .8rem;
  color: var(--ink-2);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.instagram-live-dot {
  width: 8px;
  height: 8px;
  flex: none;
  border-radius: 50%;
  background: var(--lime-deep);
  box-shadow: 0 0 0 4px rgba(182,226,62,.2);
}
.instagram-card-link {
  display: grid;
  grid-template-rows: minmax(260px, 1fr) auto;
  min-height: 510px;
  overflow: hidden;
  border-radius: 16px;
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.32)),
    linear-gradient(145deg, rgba(254,218,117,.82) 0%, rgba(250,126,30,.63) 31%, rgba(214,41,118,.62) 62%, rgba(79,91,213,.58) 100%);
  isolation: isolate;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.instagram-card-link:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 45px -25px rgba(15,44,30,.75);
}
.instagram-card-art {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 0;
  overflow: hidden;
  filter: saturate(.84) brightness(1.04);
  background:
    radial-gradient(circle at 22% 18%, rgba(200,239,84,.58), transparent 26%),
    radial-gradient(circle at 82% 78%, rgba(150,47,191,.38), transparent 35%),
    linear-gradient(145deg, rgba(254,218,117,.76) 0%, rgba(250,126,30,.68) 31%, rgba(214,41,118,.67) 60%, rgba(79,91,213,.64) 100%);
}
.instagram-card-art::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.04));
}
.instagram-card-orbit {
  position: absolute;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 50%;
}
.instagram-card-orbit-a { width: 310px; height: 310px; left: -90px; top: -130px; }
.instagram-card-orbit-b { width: 390px; height: 390px; right: -160px; bottom: -230px; }
.instagram-card-mark {
  position: relative;
  z-index: 1;
  width: 104px;
  height: 104px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 30px;
  color: #fff;
  background: rgba(255,255,255,.18);
  box-shadow: 0 25px 60px -24px rgba(22,33,27,.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transform: rotate(-4deg);
}
.instagram-card-mark svg { width: 55px; height: 55px; }
.instagram-card-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: -1.25rem 1rem 1rem;
  padding: 1.45rem 1.55rem 1.55rem;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 18px;
  color: var(--ink);
  background: rgba(255,255,255,.72);
  box-shadow: 0 18px 45px -28px rgba(22,33,27,.42), inset 0 1px rgba(255,255,255,.9);
  backdrop-filter: blur(22px) saturate(1.18);
  -webkit-backdrop-filter: blur(22px) saturate(1.18);
}
.instagram-card-content small {
  color: #a52a68;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
}
.instagram-card-content strong {
  margin-top: .35rem;
  font-family: var(--font-head);
  font-size: clamp(1.3rem, 2.4vw, 1.7rem);
  line-height: 1.15;
}
.instagram-card-content > span:not(.instagram-card-cta) {
  max-width: 44ch;
  margin-top: .55rem;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.6;
}
.instagram-card-cta {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-top: 1.1rem;
  padding: .67rem .9rem;
  border-radius: 999px;
  color: var(--ink);
  background: var(--lime);
  font-size: .78rem;
  font-weight: 800;
  transition: gap .25s var(--ease), background .25s;
}
.instagram-card-mark,
.instagram-card-art,
.instagram-card-orbit,
.instagram-card-content,
.instagram-card-content small,
.instagram-card-content > span:not(.instagram-card-cta),
.instagram-card-cta span { transition: .3s var(--ease); }
.instagram-card-link,
.instagram-card-link:hover { text-decoration: none; }
.instagram-card-link:visited { color: var(--ink); }
.instagram-card-link:active { transform: translateY(0); }
.instagram-card-link:focus-visible {
  outline: 3px solid var(--lime-deep);
  outline-offset: 4px;
  transform: translateY(-3px);
  box-shadow: 0 22px 45px -25px rgba(15,44,30,.75);
}
.instagram-card-link:is(:hover, :focus-visible) .instagram-card-mark { transform: rotate(0deg) scale(1.04); }
.instagram-card-link:is(:hover, :focus-visible) .instagram-card-art { filter: saturate(.92) brightness(1.04); }
.instagram-card-link:is(:hover, :focus-visible) .instagram-card-orbit { border-color: rgba(255,255,255,.58); }
.instagram-card-link:is(:hover, :focus-visible) .instagram-card-content { background: rgba(255,255,255,.82); }
.instagram-card-link:is(:hover, :focus-visible) .instagram-card-content > span:not(.instagram-card-cta) { color: var(--ink-2); }
.instagram-card-link:is(:hover, :focus-visible) .instagram-card-content small { color: #8f2059; }
.instagram-card-link:is(:hover, :focus-visible) .instagram-card-content strong {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.instagram-card-link:is(:hover, :focus-visible) .instagram-card-cta { gap: .75rem; background: #d9ff72; }
.instagram-card-link:is(:hover, :focus-visible) .instagram-card-cta span { transform: translate(1px,-1px); }
.instagram-embed-help { padding: .75rem .25rem .1rem; color: var(--muted); font-size: .75rem; text-align: center; }

@media (max-width: 900px) {
  .instagram-layout { grid-template-columns: 1fr; gap: 2.25rem; }
  .instagram-copy { max-width: 650px; }
  .instagram-copy h2 { max-width: 13ch; }
  .instagram-card { justify-self: center; }
}
@media (max-width: 560px) {
  .instagram-profile { width: 100%; }
  .instagram-profile .arw { margin-left: auto; }
  .instagram-card { width: 100%; padding: .7rem; border-radius: 20px; }
  .instagram-card-link { min-height: 430px; border-radius: 14px; }
  .instagram-card-content { margin: -1rem .7rem .7rem; padding: 1.2rem; border-radius: 15px; }
  .instagram-card-mark { width: 86px; height: 86px; border-radius: 25px; }
  .instagram-card-mark svg { width: 46px; height: 46px; }
  .instagram-embed-help { font-size: .69rem; }
}

/* =========================================================
   PARCEIROS
   ========================================================= */
.partners-section {
  position: relative; overflow: hidden; padding: clamp(3.5rem, 6vw, 5.5rem) 0;
  background: var(--cream);
}
.partners-section .wrap { position: relative; z-index: 1; }
.partners-section .s-head { max-width: 720px; margin-bottom: clamp(2.25rem, 4vw, 3.25rem); }
.sponsors {
  position: relative; z-index: 1; overflow: hidden; padding: .35rem 0 1rem;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.sponsors-track { display: flex; align-items: stretch; gap: 1.1rem; width: max-content; padding: .25rem 0; animation: marquee 84s linear infinite; }
.sponsors:hover .sponsors-track, .sponsors:focus-within .sponsors-track { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }
.sponsor {
  flex: 0 0 clamp(220px, 17.5vw, 244px); min-height: 198px; padding: 0; overflow: hidden;
  border: 1px solid var(--line-2); border-radius: var(--radius); background: var(--paper);
  display: grid; grid-template-rows: 122px minmax(76px, auto); text-align: center;
  color: inherit; text-decoration: none; cursor: pointer;
  transition: transform .25s var(--ease), border-color .25s var(--ease), background-color .25s var(--ease);
}
.sponsor img {
  width: 100%; height: 122px; max-width: none; padding: 1.4rem 1.35rem .85rem;
  object-fit: contain; object-position: center; background: var(--paper);
  transition: transform .3s var(--ease);
}
.sponsor img[src*="logo-fapemat"],
.sponsor img[src*="logo-cnpq"],
.sponsor img[src*="logo-mcti"],
.sponsor img[src*="logo-ifmt"],
.sponsor img[src*="logo-interact"],
.sponsor img[src*="logo-ppgcomp"],
.sponsor img[src*="logo-snct"],
.sponsor img[src*="logo-projeto-cts"],
.sponsor img[src*="logo-ecobio"] { padding-inline: .9rem; }
.sponsor img[src*="logo-mcti"] { padding-inline: .4rem; }
.sponsor:hover { transform: translateY(-2px); border-color: rgba(182,226,62,.8); background: #fff; }
.sponsor:hover img { transform: scale(1.015); }
.sponsor-static { cursor: default; }
.sponsor-static:hover { transform: none; border-color: var(--line-2); background: var(--paper); }
.sponsor-static:hover img { transform: none; }
.sponsor:focus-visible { outline: 3px solid var(--lime-deep); outline-offset: 3px; }
.sponsor p {
  width: 100%; min-height: 76px; padding: .65rem 1rem 1rem;
  display: grid; place-items: center; background: var(--paper);
  font-size: .78rem; line-height: 1.38; font-weight: 600; color: var(--ink-2);
}
@media (max-width: 600px) {
  .partners-section { padding-block: 3.25rem; }
  .sponsors { -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); }
  .sponsors-track { gap: .8rem; animation-duration: 76s; }
  .sponsor { flex-basis: 210px; min-height: 190px; grid-template-rows: 116px minmax(74px, auto); border-radius: 18px; }
  .sponsor img { height: 116px; padding: 1.25rem 1.1rem .75rem; }
  .sponsor img[src*="logo-fapemat"],
  .sponsor img[src*="logo-cnpq"],
  .sponsor img[src*="logo-mcti"],
  .sponsor img[src*="logo-ifmt"],
  .sponsor img[src*="logo-interact"],
  .sponsor img[src*="logo-ppgcomp"],
  .sponsor img[src*="logo-snct"],
  .sponsor img[src*="logo-projeto-cts"],
  .sponsor img[src*="logo-ecobio"] { padding-inline: .7rem; }
  .sponsor img[src*="logo-mcti"] { padding-inline: .35rem; }
  .sponsor p { min-height: 74px; padding: .55rem .9rem .9rem; font-size: .74rem; }
}

/* Apoio na página inicial: duas faixas leves, sem cartões ou legendas */
#parceiros.partners-section { padding-block: clamp(2.6rem, 4.5vw, 3.75rem); }
#parceiros .s-head { margin-bottom: clamp(1.5rem, 2.5vw, 2rem); }
.logo-marquee { display: grid; gap: 1.35rem; }
.logo-marquee-row {
  overflow: hidden; padding-block: .55rem;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.logo-marquee-track {
  display: flex; align-items: center; width: max-content; will-change: transform;
  animation: logoMarqueeLeft 42s linear infinite;
}
.logo-marquee-row-reverse .logo-marquee-track { animation: logoMarqueeRight 46s linear infinite; }
.logo-marquee:hover .logo-marquee-track,
.logo-marquee:focus-within .logo-marquee-track { animation-play-state: paused; }
.logo-marquee-group {
  --logo-gap: clamp(1.2rem, 2.5vw, 2.4rem);
  display: flex; flex-shrink: 0; flex-wrap: nowrap; align-items: center; gap: var(--logo-gap); padding-right: var(--logo-gap);
}
.logo-item {
  flex: 0 0 clamp(145px, 14vw, 195px); height: 72px; padding: .35rem .5rem;
  position: relative; display: grid; place-items: center; color: inherit; text-decoration: none;
  opacity: .92; transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.logo-item img {
  position: absolute; inset: .35rem .5rem; display: block;
  width: calc(100% - 1rem); height: calc(100% - .7rem);
  object-fit: contain;
}
.logo-item-featured img {
  inset: .05rem .15rem;
  width: calc(100% - .3rem); height: calc(100% - .1rem);
}
.logo-item:hover { opacity: 1; transform: scale(1.035); }
.logo-item:focus-visible { outline: 3px solid var(--lime-deep); outline-offset: 3px; border-radius: var(--radius-sm); }
.logo-item-static { cursor: default; }
.logo-item-static:hover { transform: none; }
@keyframes logoMarqueeLeft { to { transform: translate3d(-50%, 0, 0); } }
@keyframes logoMarqueeRight { from { transform: translate3d(-50%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
@media (max-width: 600px) {
  #parceiros.partners-section { padding-block: 2.5rem; }
  #parceiros .s-head { margin-bottom: 1.35rem; }
  .logo-marquee { gap: 1.25rem; }
  .logo-marquee-row {
    min-height: 82px; padding-block: .55rem; overflow: hidden; contain: layout paint;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  }
  .logo-marquee-group { --logo-gap: 1.35rem; }
  .logo-item {
    flex: 0 0 132px; width: 132px; height: 64px; padding: 0; overflow: hidden; isolation: isolate;
  }
  .logo-item img { inset: .25rem; width: calc(100% - .5rem); height: calc(100% - .5rem); }
  .logo-item-featured img { inset: .1rem; width: calc(100% - .2rem); height: calc(100% - .2rem); }
  .logo-item:hover { transform: none; }
  .logo-marquee-track { animation-duration: 20s; }
  .logo-marquee-row-reverse .logo-marquee-track { animation-duration: 22s; }
}
@media (prefers-reduced-motion: reduce) {
  .logo-marquee-row { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
  .logo-marquee-track { animation: none !important; }
  .logo-marquee-group[aria-hidden="true"] { display: none; }
}

/* Apoio à palestra (página da Ana Catarina): menos espaço acima */
#apoio-palestra { padding-top: 0; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer { background: var(--forest-2); color: #fff; padding: clamp(2.25rem, 4vw, 3.5rem) 0 1.25rem; }
.foot-top { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 1.5rem; padding-bottom: 1.5rem; }
.foot-brand p { color: var(--muted-dark); font-size: .86rem; margin-top: .65rem; max-width: 30ch; }
.foot-brand .foot-logo {
  width: auto;
  height: 40px;
  max-width: min(100%, 180px);
  object-fit: contain;
  margin-bottom: .1rem;
}
.foot-social { display: flex; gap: .5rem; margin-top: .85rem; }
.foot-social a { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line-dark); display: grid; place-items: center; transition: .25s; }
.foot-social a:hover { background: var(--lime); border-color: var(--lime); color: var(--lime-ink); }
.foot-social svg { width: 16px; height: 16px; }
.foot-col h5 { font-family: var(--font-head); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--lime); margin-bottom: .7rem; }
.foot-col a, .foot-col span { display: block; color: var(--muted-dark); font-size: .86rem; padding: .2rem 0; transition: color .2s; }
.foot-col a:hover { color: #fff; }
.foot-contact p { max-width: 29ch; margin: 0 0 .45rem; color: var(--muted-dark); font-size: .8rem; line-height: 1.5; }
.foot-col a.foot-contact-email {
  color: var(--lime); font-weight: 650; overflow-wrap: anywhere;
  text-decoration: underline; text-decoration-color: rgba(198, 244, 68, .5);
  text-underline-offset: 3px;
}
.foot-col a.foot-contact-email:hover { color: #fff; text-decoration-color: var(--lime); }
.foot-bottom { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; color: var(--muted-dark); font-size: .78rem; padding-top: 1.2rem; border-top: 1px solid var(--line-dark); }
@media (max-width: 820px) { .foot-top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .foot-top { grid-template-columns: 1fr; } }

/* =========================================================
   SUBPAGES (call / detail)
   ========================================================= */
body.subpage { padding-top: 0; }
.subpage-hero {
  position: relative; overflow: hidden; color: #fff;
  padding: calc(var(--nav-h) + clamp(3rem,7vw,6rem)) 0 clamp(3rem,7vw,5rem);
  background: var(--forest);
}
.subpage-hero.has-photo::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-size: cover; background-position: center;
  opacity: .5;
}
.subpage-hero.photo-artigos::before   { background-image: url("../img/chamada-artigos-plumeria.webp?v=2"); }
.subpage-hero.photo-minicursos::before { background-image: url("../img/chamada-minicursos-bg.webp?v=2"); }
.subpage-hero.photo-palestras::before  { background-image: url("../img/atividade-alpes.webp?v=2"); }
.subpage-hero.photo-artigos-act::before { background-image: url("../img/atividade-artigos-campo-florido.webp?v=2"); }
.subpage-hero.photo-cursos-act::before { background-image: url("../img/atividade-sakura.webp?v=2"); }
.subpage-hero::after {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(180deg, rgba(11,35,24,.55), rgba(11,35,24,.85));
}
.subpage-hero.activity-hero::before { opacity: 1; }
.subpage-hero.activity-hero::after { display: none; }
.subpage-hero.activity-hero .wrap { text-shadow: 0 2px 18px rgba(5,24,16,.72); }
.subpage-hero.authority-hero {
  padding: calc(var(--nav-h) + clamp(1.6rem, 3.5vw, 2.8rem)) 0 clamp(1.8rem, 3.5vw, 2.8rem);
  background: var(--forest);
}
.subpage-hero.authority-hero::after { display: none; }
.subpage-hero .wrap { position: relative; z-index: 1; }
.subpage-hero .call-kicker { color: var(--lime); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.subpage-hero h1 { font-size: clamp(2.4rem, 6vw, 4.4rem); margin: 1rem 0 .8rem; color: #fff; letter-spacing: -.03em; max-width: 20ch; }
.subpage-hero p { color: rgba(255,255,255,.85); max-width: 60ch; font-size: 1.05rem; }
.subpage-hero .call-subtitle { color: var(--lime); font-family: var(--font-head); font-size: 1.2rem; }

.call-layout { display: grid; grid-template-columns: 1fr 320px; gap: clamp(2rem, 5vw, 4rem); padding: clamp(3rem,6vw,5rem) 0; align-items: start; }
.call-content { min-width: 0; }
.call-content h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); margin: 2.2rem 0 1rem; }
.call-content h2:first-child { margin-top: 0; }
.call-content h3 { font-size: clamp(1.15rem, 2vw, 1.4rem); margin: 1.8rem 0 .7rem; color: var(--ink); }
.call-content > p { color: var(--muted); margin-bottom: 1rem; }
.call-content .theme-highlight { color: #24583a; }
.call-content a.inline-link, .call-content p a { color: #24583a; font-weight: 500; border-bottom: 1px solid var(--lime); }
.call-items-list { list-style: none; padding: 0; margin: .8rem 0 1.6rem; display: flex; flex-direction: column; gap: .55rem; }
.call-items-list li {
  position: relative; padding-left: 1.4rem; color: var(--ink-2); font-size: .95rem; line-height: 1.55;
}
.call-items-list li::before {
  content: "•"; position: absolute; left: .25rem; top: 0; color: #24583a; font-weight: bold; font-size: 1.2rem; line-height: 1.3;
}
.callout-alert {
  margin: 2.2rem 0 2rem;
  padding: 1.6rem 1.8rem;
  background: linear-gradient(135deg, #fffdf2 0%, #fef8e7 100%);
  border: 1px solid rgba(217, 119, 6, 0.32);
  border-left: 5px solid #d97706;
  border-radius: var(--radius-sm);
  box-shadow: 0 6px 20px rgba(180, 83, 9, 0.07);
}
.callout-alert-head {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin-bottom: 1.1rem;
}
.callout-alert-icon {
  flex: none;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 10px;
  background: rgba(217, 119, 6, 0.14);
  color: #b45309;
  display: grid;
  place-items: center;
}
.callout-alert-icon svg {
  width: 22px;
  height: 22px;
}
.callout-alert-kicker {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #b45309;
  margin-bottom: .15rem;
}
.callout-alert h3 {
  margin: 0;
  font-size: clamp(1.1rem, 2vw, 1.3rem);
  color: #78350f;
  line-height: 1.25;
}
.callout-alert-titles {
  min-width: 0;
  flex: 1 1 auto;
}
.callout-alert-toggle {
  margin-left: auto;
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .4rem .85rem;
  border-radius: 100px;
  background: rgba(217, 119, 6, 0.12);
  border: 1px solid rgba(217, 119, 6, 0.28);
  color: #92400e;
  font-family: var(--font-head);
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s;
  user-select: none;
}
.callout-alert-toggle:hover {
  background: rgba(217, 119, 6, 0.2);
  color: #78350f;
  border-color: rgba(217, 119, 6, 0.45);
}
.callout-toggle-icon {
  width: 14px;
  height: 14px;
  transition: transform .25s var(--ease);
}
.callout-alert.is-collapsed {
  padding: 1rem 1.4rem;
  cursor: pointer;
}
.callout-alert.is-collapsed .callout-alert-head {
  margin-bottom: 0;
}
.callout-alert.is-collapsed .callout-toggle-icon {
  transform: rotate(180deg);
}
.callout-alert.is-collapsed .callout-alert-body {
  display: none;
}
.callout-alert-body {
  color: #292524;
  font-size: .96rem;
  line-height: 1.65;
}
.callout-alert-body p {
  margin: 0 0 .85rem;
  color: inherit;
}
.callout-alert-body p:last-child {
  margin-bottom: 0;
}
.callout-alert-body strong {
  color: #1c1917;
  font-weight: 600;
}
.callout-alert-sig {
  margin-top: 1.1rem !important;
  padding-top: .9rem;
  border-top: 1px dashed rgba(217, 119, 6, 0.3);
  color: #78350f !important;
  font-size: .92rem;
}

.call-steps { display: flex; flex-direction: column; gap: 1.4rem; margin: 1.4rem 0 1.8rem; }
.call-step { border: 1px solid var(--line); border-left: 3px solid var(--lime-deep); border-radius: 14px; background: var(--paper); padding: 1.5rem 1.7rem; }
.call-step-head { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.call-step-head h3 { margin: 0; }
.call-step-num { flex: none; width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; background: var(--lime); color: var(--lime-ink); font-family: var(--font-head); font-weight: 700; font-size: 1rem; }
.call-step p { color: var(--muted); margin: 0 0 1rem; }
.call-step > *:last-child { margin-bottom: 0; }
.call-list { display: flex; flex-direction: column; gap: .2rem; margin: 1rem 0 1.6rem; }
.call-list li { display: grid; grid-template-columns: 220px 1fr; gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--line); }
.call-list li strong { font-family: var(--font-head); font-weight: 600; font-size: .98rem; }
.call-list li span { color: var(--muted); justify-self: end; max-width: 52ch; text-align: right; }
.call-list li a { color: #24583a; border-bottom: 1px solid var(--lime); }
.call-list.call-list-dates li { grid-template-columns: minmax(270px,max-content) 1fr; }
.call-list.call-list-dates li strong { white-space: nowrap; }
.call-list.call-list-dates del { color: var(--muted); margin-right: .4rem; text-decoration: line-through; opacity: .75; }
.call-list.call-list-dates span strong { color: var(--ink); font-weight: 700; }
.interest-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; margin: 1.2rem 0 1.8rem; }
.interest-list li {
  position: relative; min-height: 58px; padding: .9rem 1rem .9rem 2.35rem;
  display: flex; align-items: center; color: var(--ink-2); background: #fff;
  border: 1px solid var(--line-2); border-radius: var(--radius-sm); font-size: .9rem;
}
.interest-list li::before {
  content: ""; position: absolute; left: 1rem; top: 50%; width: 8px; height: 8px;
  border-radius: 50%; background: var(--lime-deep); transform: translateY(-50%);
  box-shadow: 0 0 0 4px rgba(200,239,84,.28);
}
.talk-detail-image { border-radius: var(--radius-lg); margin-bottom: 2rem; width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.speaker-detail-image { border-radius: var(--radius-lg); margin-bottom: 2rem; width: min(100%, 560px); aspect-ratio: 3/4; object-fit: cover; object-position: center top; }
.speaker-detail-image-square { aspect-ratio: 1; }
.speaker-intro { color: var(--ink-2); font-family: var(--font-head); font-size: clamp(1.2rem, 2.2vw, 1.55rem); line-height: 1.45; }
.speaker-group-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem;
  margin: 1.3rem 0 1.5rem;
}
.speaker-group-grid-balanced { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 640px; gap: 1.1rem; }
.speaker-group-card {
  position: relative; isolation: isolate;
  overflow: hidden; background: #fff; border: 1px solid var(--line-2);
  border-radius: var(--radius-sm); box-shadow: 0 12px 30px -28px rgba(15,44,30,.5);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.speaker-group-card::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  border-radius: inherit; box-shadow: inset 0 -4px 0 transparent;
  transition: box-shadow .35s var(--ease);
}
.speaker-group-card img {
  width: 100%; aspect-ratio: 3/4; object-fit: cover; object-position: center top;
  transform-origin: 50% 100%; transition: transform .7s var(--ease), filter .7s var(--ease);
}
.speaker-group-grid-balanced .speaker-group-card img { aspect-ratio: 4/5; }
@media (hover: hover) {
  .speaker-group-card:hover { transform: translateY(-7px); border-color: rgba(182,226,62,.75); box-shadow: 0 32px 60px -34px rgba(15,44,30,.55); }
  .speaker-group-card:hover::after { box-shadow: inset 0 -4px 0 var(--lime); }
  .speaker-group-card:hover img { transform: scale(1.06); filter: saturate(1.08) contrast(1.03); }
  .speaker-group-card:hover .speaker-group-card-body h3 { color: #24583a; }
}
@media (prefers-reduced-motion: reduce) {
  .speaker-group-card:hover, .speaker-group-card:hover img { transform: none; }
}
.speaker-group-photo-placeholder {
  position: relative; width: 100%; aspect-ratio: 3/4; background: #f3f5f1;
}
.speaker-group-photo-placeholder::before {
  content: ""; position: absolute; left: 50%; top: 43%; width: 48px; height: 48px;
  border-radius: 50%; background: rgba(105, 124, 111, .28); transform: translate(-50%, -50%);
}
.speaker-group-photo-placeholder::after {
  content: ""; position: absolute; left: 50%; top: 64%; width: 88px; height: 68px;
  border-radius: 48px 48px 16px 16px; background: rgba(105, 124, 111, .28); transform: translate(-50%, -50%);
}
.speaker-group-card-body { padding: 1rem; }
.speaker-group-card-body h3 { margin: 0 0 .55rem; font-size: 1rem; line-height: 1.25; transition: color .3s var(--ease); }
.speaker-group-card-body p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.speaker-group-note { margin-top: 1.5rem; }

/* Mesa de abertura */
.authority-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem;
  margin: 1.3rem 0 1.5rem;
}
.authority-card {
  min-height: 220px; display: grid; grid-template-columns: 118px minmax(0, 1fr); overflow: hidden;
  background: #fff; border: 1px solid var(--line-2); border-radius: var(--radius-sm);
  box-shadow: 0 12px 30px -28px rgba(15,44,30,.5);
}
.authority-photo { min-height: 100%; overflow: hidden; background: var(--cream-2); }
.authority-photo img {
  width: 100%; height: 100%; min-height: 220px; display: block;
  object-fit: cover; object-position: center 20%;
}
.authority-photo-placeholder {
  position: relative; min-height: 220px;
  background: #f3f5f1;
}
.authority-photo-placeholder::before {
  content: ""; position: absolute; left: 50%; top: 44%; width: 38px; height: 38px;
  border-radius: 50%; background: rgba(105, 124, 111, .3); transform: translate(-50%, -50%);
}
.authority-photo-placeholder::after {
  content: ""; position: absolute; left: 50%; top: 66%; width: 70px; height: 54px;
  border-radius: 38px 38px 14px 14px; background: rgba(105, 124, 111, .3); transform: translate(-50%, -50%);
}
.authority-card-body { padding: 1.2rem; display: flex; flex-direction: column; justify-content: center; gap: .45rem; }
.authority-card h3 { margin: 0; font-size: 1.05rem; line-height: 1.25; }
.authority-card p { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.55; }
.authority-status {
  width: fit-content; display: inline-flex; align-items: center; gap: .4rem;
  color: #24583a; font-size: .7rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase;
}
.authority-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--lime-deep); }

.sci-committee { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
.sci-member { display: flex; gap: 1rem; align-items: center; background: #fff; border: 1px solid var(--line-2); border-radius: var(--radius-sm); padding: 1rem; }
.sci-member-photo { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; background: linear-gradient(135deg,var(--cream-2),#d7dcd3); flex-shrink: 0; }
.sci-member-photo img { width: 100%; height: 100%; object-fit: cover; }
.sci-member h4 { font-size: .95rem; }
.sci-member-label { font-size: .76rem; color: var(--muted); }
.sci-member-email { font-size: .82rem; color: #24583a; }

.program-committee { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .9rem; margin-top: 1rem; }
.pc-member { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; gap: .15rem; background: #fff; border: 1px solid var(--line-2); border-radius: var(--radius-sm); padding: .85rem 1rem; }
.pc-member strong { font-size: .92rem; color: var(--ink); line-height: 1.3; }
.pc-member span { font-size: .8rem; color: #24583a; line-height: 1.35; }

.call-side { position: sticky; top: calc(var(--nav-h) + 1.5rem); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.8rem; display: flex; flex-direction: column; gap: .8rem; }
.call-side h3 { font-size: 1.2rem; }
.call-side > p { color: var(--muted); font-size: .92rem; }
.call-side .btn { justify-content: center; width: 100%; margin-top: .3rem; }

@media (max-width: 900px) {
  .call-layout { grid-template-columns: minmax(0, 1fr); }
  .call-side { position: static; order: -1; }
  .sci-committee { grid-template-columns: 1fr; }
  .call-list li { grid-template-columns: minmax(160px,220px) 1fr; gap: 1rem; }
  .speaker-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .authority-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .speaker-group-grid { grid-template-columns: minmax(0, 1fr); }
  .authority-grid { grid-template-columns: minmax(0, 1fr); }
  .authority-card { grid-template-columns: 108px minmax(0, 1fr); }
  .authority-photo img, .authority-photo-placeholder { min-height: 200px; }
  body.subpage .call-layout { gap: 1.5rem; padding: 2rem 0; }
  body.subpage .call-content h2 { margin-top: 1.7rem; }
  body.subpage .schedule-date-tabs {
    display: grid; grid-template-columns: repeat(3,minmax(0,1fr));
    width: 100%; max-width: none; gap: .2rem; padding: .25rem;
    overflow: visible; border-radius: 14px; margin-bottom: .75rem;
  }
  body.subpage .schedule-date-tabs .stab {
    min-width: 0; padding: .55rem .2rem; font-size: .74rem;
    line-height: 1.2; white-space: nowrap;
  }
  body.subpage .schedule-date-tabs.has-pre-event { grid-template-columns: repeat(4,minmax(0,1fr)); }
  body.subpage .schedule-date-tabs.has-pre-event .stab { font-size: .64rem; white-space: normal; }
  body.subpage .schedule-calendar { width: 100%; border-radius: 14px; }
  body.subpage .schedule-day-header { gap: .5rem; padding: .75rem .85rem; }
  body.subpage .schedule-day-header span { font-size: .65rem; }
  body.subpage .schedule-day-header strong { font-size: .92rem; }
  body.subpage .schedule-event {
    grid-template-columns: 48px 3px minmax(0,1fr); gap: .5rem;
    min-height: 0; padding: .75rem;
  }
  body.subpage .schedule-event-color { width: 3px; min-height: 38px; }
  body.subpage .schedule-event > div { overflow-wrap: anywhere; }
  body.subpage .schedule-event strong { font-size: .86rem; }
  body.subpage .schedule-event:has(.schedule-pre-event-cta) .schedule-event-body {
    width: 100%; padding-right: 0;
  }
  body.subpage .schedule-pre-event-cta {
    position: static; display: inline-flex; align-items: center; justify-content: center;
    width: 100%; min-height: 48px; margin-top: .8rem; padding: .78rem 1rem;
    box-sizing: border-box; border-radius: 12px; transform: none;
    font-size: .84rem; line-height: 1.2; touch-action: manipulation;
  }
  body.subpage .schedule-pre-event-cta:hover { transform: none; }
  body.subpage .schedule-pre-event-cta:active { transform: scale(.99); }
  body.subpage .schedule-event.event-course {
    grid-template-columns: minmax(0, 1fr); gap: .65rem; padding: .9rem;
  }
  body.subpage .event-course .schedule-event-side {
    flex-direction: row; flex-wrap: wrap; justify-content: flex-start;
    gap: .3rem .45rem; text-align: left;
  }
  body.subpage .event-course .schedule-time-start,
  body.subpage .event-course .schedule-time-end { display: inline; margin: 0; text-align: left; }
  body.subpage .schedule-time-start { font-size: .86rem; }
  body.subpage .schedule-time-end { font-size: .66rem; }
  body.subpage .event-course .schedule-event-place {
    width: auto; max-width: none; margin: 0 0 0 auto; padding: .26rem .55rem;
    flex-direction: row; gap: .22rem; font-size: .64rem;
  }
  body.subpage .event-course .schedule-event-place small { margin-top: 0; font-size: .56rem; }
  body.subpage .event-course .schedule-event-color {
    width: 100%; height: 3px; min-height: 3px;
  }
  body.subpage .event-course .schedule-event-body { width: 100%; }
  body.subpage .schedule-course-cta {
    justify-content: center; width: 100%; min-height: 48px; margin-top: .8rem;
    padding: .78rem 1rem; border-radius: 12px; box-sizing: border-box;
    font-size: .84rem; line-height: 1.2; touch-action: manipulation;
  }
  body.subpage .schedule-course-cta .arw { font-size: .92rem; }
  body.subpage .schedule-course-cta:active { transform: scale(.99); }
  body.subpage .schedule-capacity-badge {
    justify-content: center; width: 100%; box-sizing: border-box;
    flex-wrap: wrap; gap: .22rem .5rem; text-align: center;
  }
  body.subpage .event-course.has-language-note .schedule-event-body { padding-right: 0; }
  body.subpage .schedule-language-note {
    position: static; order: 4; align-self: flex-start;
    max-width: none; margin-top: .55rem; border-radius: 9px;
    font-size: .66rem; text-align: left;
  }
  body.subpage .schedule-course-cta.is-disabled:active { transform: none; }
  body.subpage .schedule-empty {
    display: flex; flex-direction: column; gap: .25rem;
    padding: 1rem .85rem; line-height: 1.4;
  }
  body.subpage .schedule-empty strong { color: var(--ink-2); font-family: var(--font-head); }
  body.subpage .activity-note { margin-top: 1.4rem; padding: 1.1rem; }
  body.subpage .call-side { padding: 1.25rem; }
  .call-list li { grid-template-columns: 1fr; gap: .2rem; }
  .call-list.call-list-dates li { grid-template-columns: 1fr; }
  .call-list li span { justify-self: start; text-align: left; }
  .callout-alert { padding: 1.25rem 1.15rem; margin: 1.6rem 0; }
  .callout-alert-head { gap: .65rem; }
  .callout-alert-icon { width: 2.2rem; height: 2.2rem; }
  .callout-alert-icon svg { width: 18px; height: 18px; }
  .callout-alert-toggle { padding: .32rem .65rem; font-size: .75rem; }
  .callout-alert.is-collapsed { padding: .85rem 1.1rem; }
  .interest-list { grid-template-columns: 1fr; }
}

@media (max-width: 360px) {
  body.subpage .schedule-event.event-course {
    grid-template-columns: 1fr;
    gap: .55rem;
    padding: .8rem;
  }
  body.subpage .event-course .schedule-event-side {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: .25rem .4rem;
    text-align: left;
  }
  body.subpage .event-course .schedule-time-start,
  body.subpage .event-course .schedule-time-end { display: inline; margin: 0; text-align: left; }
  body.subpage .event-course .schedule-time-end { font-size: .62rem; }
  body.subpage .event-course .schedule-event-place {
    width: auto;
    max-width: none;
    margin: 0 0 0 .1rem;
    padding: .2rem .5rem;
    flex-direction: row;
    gap: .2rem;
  }
  body.subpage .event-course .schedule-event-place small { margin-top: 0; }
  body.subpage .event-course .schedule-event-color {
    width: 100%;
    height: 3px;
    min-height: 3px;
  }
  body.subpage .event-course .schedule-event-meta { font-size: .72rem; }
}

/* Back to top */
.back-to-top {
  position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 90;
  width: 48px; height: 48px; border-radius: 50%; background: var(--ink); color: var(--cream);
  display: grid; place-items: center; font-size: 1.2rem; opacity: 0; pointer-events: none;
  transition: opacity .3s, transform .3s; transform: translateY(10px);
}
.back-to-top.show { opacity: 1; pointer-events: auto; transform: none; }
.back-to-top:hover { background: var(--lime); color: var(--lime-ink); }

/* =========================================================
   GALERIAS — SELETOR DA PÁGINA INICIAL
   ========================================================= */
.gallery-section-head { max-width: 1180px; }
.gallery-section-head h2 { max-width: none; }
.gallery-section-head .s-desc { max-width: none; }
#galeria {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 14% 42%, rgba(174, 255, 84, .09), transparent 33%),
    radial-gradient(circle at 88% 68%, rgba(80, 178, 112, .07), transparent 36%),
    linear-gradient(
      to bottom,
      var(--cream) 0%,
      #f3f5ef 18%,
      #eef4e9 58%,
      #eff5eb 100%
    );
}
#galeria::before,
#galeria::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  filter: blur(10px);
  pointer-events: none;
}
#galeria::before {
  top: 25%;
  left: -180px;
  background: rgba(179, 255, 103, .07);
}
#galeria::after {
  right: -150px;
  bottom: -150px;
  background: rgba(47, 139, 85, .07);
}
.gallery-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.6rem);
  max-width: 1180px;
  margin-inline: auto;
}
.gallery-choice-card {
  position: relative;
  display: flex;
  min-width: 0;
  overflow: hidden;
  flex-direction: column;
  color: var(--ink);
  background: linear-gradient(145deg, rgba(255, 255, 255, .7), rgba(238, 249, 232, .42));
  border: 1px solid rgba(255, 255, 255, .92);
  border-radius: var(--radius-lg);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .9),
    inset 0 -1px 0 rgba(69, 129, 84, .1),
    0 24px 60px -38px rgba(26, 85, 48, .5);
  -webkit-backdrop-filter: blur(22px) saturate(145%);
  backdrop-filter: blur(22px) saturate(145%);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.gallery-choice-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: inherit;
  background:
    linear-gradient(125deg, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .08) 25%, transparent 46%),
    radial-gradient(circle at 100% 0%, rgba(179, 255, 103, .14), transparent 30%);
  pointer-events: none;
}
.gallery-choice-card-active:hover {
  transform: translateY(-6px);
  border-color: rgba(255, 255, 255, 1);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 1),
    0 32px 72px -36px rgba(26, 85, 48, .58);
}
.gallery-choice-card-active:focus-visible { outline: 3px solid var(--lime-deep); outline-offset: 5px; }
.gallery-choice-media {
  position: relative;
  display: grid;
  align-content: center;
  gap: 1rem;
  height: 310px;
  min-width: 0;
  padding: 1.5rem 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 12%, rgba(179, 255, 103, .3), transparent 35%),
    radial-gradient(circle at 88% 82%, rgba(76, 158, 101, .22), transparent 38%),
    linear-gradient(145deg, rgba(238, 249, 232, .82), rgba(139, 190, 145, .38));
  -webkit-backdrop-filter: blur(18px) saturate(145%);
  backdrop-filter: blur(18px) saturate(145%);
}
.gallery-choice-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(120deg, rgba(255, 255, 255, .32), transparent 36%),
    linear-gradient(90deg, rgba(61, 124, 78, .14), transparent 14%, transparent 86%, rgba(61, 124, 78, .16));
}
.gallery-cover-row { width: 100%; overflow: hidden; transform: rotate(-2deg) scale(1.04); }
.gallery-cover-row-reverse { transform: rotate(2deg) scale(1.04); }
.gallery-cover-track {
  display: flex;
  width: max-content;
  gap: .8rem;
  padding-inline: .4rem;
  animation: gallery-cover-drift 28s linear infinite;
  will-change: transform;
}
.gallery-cover-row-reverse .gallery-cover-track { animation-direction: reverse; animation-duration: 32s; }
.gallery-cover-track img {
  width: 110px;
  height: 132px;
  flex: 0 0 auto;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, .76);
  border-radius: 15px;
  box-shadow: 0 16px 30px rgba(32, 83, 47, .2);
}
.gallery-choice-card-active:hover .gallery-cover-track { animation-play-state: paused; }
.gallery-choice-body {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  padding: clamp(1.6rem, 3vw, 2.3rem);
  background: linear-gradient(145deg, rgba(255, 255, 255, .72), rgba(237, 248, 230, .48));
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  backdrop-filter: blur(24px) saturate(150%);
}
.gallery-choice-body .tcard-label { color: var(--forest); }
.gallery-choice-body h3 {
  margin: .45rem 0 .8rem;
  color: var(--ink);
  font-size: clamp(2.15rem, 4vw, 3.4rem);
  line-height: .98;
  letter-spacing: -.05em;
}
.gallery-choice-body > p { color: var(--muted); line-height: 1.65; }
.gallery-card-meta {
  margin-top: 1.15rem;
  padding-top: 1rem;
  color: var(--ink-2);
  border-top: 1px solid rgba(46, 99, 61, .16);
  font-size: .88rem;
}
.gallery-card-meta span { display: block; overflow-wrap: anywhere; }
.gallery-card-cta {
  width: fit-content;
  margin-top: auto;
  padding-top: 1.5rem;
  padding-bottom: .3rem;
  color: var(--forest);
  border-bottom: 1px solid rgba(37, 111, 62, .45);
  font-family: var(--font-head);
  font-weight: 750;
}
.gallery-card-cta .arw { display: inline-block; margin-left: .45rem; transition: transform .25s; }
.gallery-choice-card-active:hover .gallery-card-cta .arw { transform: translateX(5px); }
.gallery-choice-card-soon { border-color: rgba(255, 255, 255, .78); }
.gallery-choice-card-soon .gallery-choice-body { background: linear-gradient(145deg, rgba(255, 255, 255, .58), rgba(229, 242, 224, .42)); }
.gallery-choice-placeholder {
  position: relative;
  display: grid;
  place-items: center;
  height: 310px;
  overflow: hidden;
  background:
    radial-gradient(circle at 24% 18%, rgba(179, 255, 103, .28), transparent 35%),
    linear-gradient(135deg, rgba(238, 249, 232, .72), rgba(112, 172, 122, .3));
  -webkit-backdrop-filter: blur(18px) saturate(145%);
  backdrop-filter: blur(18px) saturate(145%);
}
.gallery-choice-placeholder::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, .28), transparent 42%, rgba(27, 92, 49, .1));
  pointer-events: none;
}
.gallery-placeholder-frames { display: flex; align-items: center; justify-content: center; gap: .85rem; transform: rotate(-3deg); }
.gallery-placeholder-frames span {
  position: relative;
  z-index: 1;
  display: flex;
  width: 116px;
  height: 145px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: var(--forest);
  background: rgba(255, 255, 255, .4);
  border: 1px solid rgba(255, 255, 255, .75);
  border-radius: 15px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 18px 35px rgba(34, 93, 49, .12);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.gallery-placeholder-frames span:nth-child(2) { transform: translateY(-10px); }
.gallery-placeholder-frames strong { font-family: var(--font-head); font-size: 2.35rem; line-height: 1; }
.gallery-placeholder-frames small { margin-top: .3rem; color: var(--forest); font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.gallery-soon-badge {
  position: absolute;
  right: 1.15rem;
  bottom: 1rem;
  z-index: 2;
  padding: .48rem .72rem;
  color: var(--forest);
  background: rgba(255, 255, 255, .58);
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 999px;
  font-family: var(--font-head);
  font-size: .76rem;
  font-weight: 800;
}
.gallery-card-coming {
  width: fit-content;
  margin-top: auto;
  padding-top: 1.5rem;
  color: rgba(25, 67, 39, .58);
  font-family: var(--font-head);
  font-size: .9rem;
  font-weight: 700;
}

@keyframes gallery-cover-drift {
  to { transform: translateX(calc(-50% - .4rem)); }
}

.gallery-page { background: var(--cream); }
.gallery-hero {
  position: relative;
  min-height: 520px;
  display: grid;
  align-items: end;
  overflow: hidden;
  color: #fff;
  background: #0a1b12;
}
.gallery-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(7, 20, 13, .95) 0%, rgba(7, 20, 13, .78) 40%, rgba(7, 20, 13, .18) 78%), linear-gradient(0deg, rgba(7, 20, 13, .78), transparent 58%);
}
.gallery-hero-collage { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; opacity: .82; }
.gallery-hero-collage img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.86) contrast(1.04); }
.gallery-hero-content { position: relative; z-index: 2; padding: 8.5rem 0 4.25rem; }
.gallery-hero .call-kicker { color: var(--lime); }
.gallery-hero h1 { max-width: 11ch; margin-top: .35rem; color: #fff; font-size: clamp(3.2rem, 7.2vw, 6.7rem); line-height: .9; letter-spacing: -.06em; }
.gallery-hero p:not(.call-kicker) { max-width: 48ch; margin-top: 1.3rem; color: rgba(255, 255, 255, .76); font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.65; }
.gallery-hero-meta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.gallery-hero-meta span { padding: .55rem .8rem; border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; background: rgba(255, 255, 255, .08); backdrop-filter: blur(10px); font-size: .78rem; }

.gallery-section { padding: clamp(3.5rem, 7vw, 7rem) 0; }
.gallery-intro { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.gallery-intro h2 { max-width: 13ch; font-size: clamp(2.2rem, 5vw, 4.2rem); line-height: .98; letter-spacing: -.045em; }
.gallery-status { color: var(--muted); font-size: .9rem; white-space: nowrap; }
.photo-gallery-grid { columns: 4 250px; column-gap: 1rem; }
.gallery-photo {
  position: relative;
  display: block;
  width: 100%;
  margin: 0 0 1rem;
  overflow: hidden;
  break-inside: avoid;
  background: #d7ddd5;
  border: 0;
  border-radius: 16px;
  box-shadow: 0 14px 34px -27px rgba(15, 44, 30, .8);
  cursor: zoom-in;
}
.gallery-photo::after {
  content: "Abrir";
  position: absolute;
  right: .7rem;
  bottom: .7rem;
  padding: .42rem .6rem;
  color: #fff;
  background: rgba(8, 25, 15, .72);
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 700;
  opacity: 0;
  transform: translateY(6px);
  transition: .25s;
  backdrop-filter: blur(8px);
}
.gallery-photo img { display: block; width: 100%; height: auto; transition: transform .45s var(--ease), filter .3s; }
.gallery-photo:hover img { transform: scale(1.025); filter: saturate(1.06); }
.gallery-photo:hover::after, .gallery-photo:focus-visible::after { opacity: 1; transform: none; }
.gallery-photo:focus-visible { outline: 3px solid var(--lime-deep); outline-offset: 3px; }
.gallery-load-wrap { display: grid; place-items: center; gap: .8rem; margin-top: 2.3rem; }
.gallery-load-wrap .btn { min-width: 190px; justify-content: center; }
.gallery-load-wrap .btn[hidden] { display: none; }
.gallery-error { column-span: all; width: 100%; padding: 2rem; color: #732e2e; background: #fff1ef; border: 1px solid #efc6bf; border-radius: var(--radius-sm); text-align: center; }

.gallery-lightbox[hidden] { display: none; }
.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 64px;
  align-items: center;
  padding: 1.2rem;
  color: #fff;
  background: rgba(4, 12, 8, .96);
  opacity: 0;
  transition: opacity .22s;
}
.gallery-lightbox.is-open { opacity: 1; }
.gallery-lightbox-stage { position: relative; display: grid; place-items: center; min-width: 0; height: calc(100vh - 2.4rem); }
.gallery-lightbox-stage::before {
  content: "";
  width: 42px;
  height: 42px;
  position: absolute;
  border: 3px solid rgba(255, 255, 255, .22);
  border-top-color: var(--lime);
  border-radius: 50%;
  animation: gallery-spin .8s linear infinite;
}
.gallery-lightbox:not(.is-loading) .gallery-lightbox-stage::before { display: none; }
.gallery-lightbox-image { display: block; max-width: 100%; max-height: calc(100vh - 6rem); object-fit: contain; border-radius: 10px; box-shadow: 0 24px 80px rgba(0, 0, 0, .42); }
.gallery-lightbox.is-loading .gallery-lightbox-image { opacity: .2; }
.gallery-lightbox-close, .gallery-lightbox-nav {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  color: #fff;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  font-size: 1.35rem;
  transition: .22s;
}
.gallery-lightbox-close:hover, .gallery-lightbox-nav:hover { color: #132019; background: var(--lime); }
.gallery-lightbox-close { position: absolute; top: 1rem; right: 1rem; z-index: 3; }
.gallery-lightbox-nav { z-index: 2; }
.gallery-lightbox-counter { position: absolute; left: 50%; bottom: .1rem; z-index: 2; transform: translateX(-50%); color: rgba(255, 255, 255, .72); font-size: .78rem; }

@keyframes gallery-spin { to { transform: rotate(360deg); } }

@media (max-width: 900px) {
  .gallery-choice-grid { grid-template-columns: 1fr; max-width: 620px; }
  .gallery-hero { min-height: 520px; }
  .gallery-hero::after { background: linear-gradient(0deg, rgba(7, 20, 13, .92) 0%, rgba(7, 20, 13, .58) 66%, rgba(7, 20, 13, .18)); }
  .gallery-hero-collage { grid-template-columns: repeat(2, 1fr); }
  .gallery-hero-collage img:nth-child(n+3) { display: none; }
  .gallery-intro { align-items: start; flex-direction: column; gap: .8rem; }
}

@media (max-width: 600px) {
  .gallery-choice-media, .gallery-choice-placeholder { height: 280px; }
  .gallery-cover-track img { width: 96px; height: 120px; border-radius: 12px; }
  .gallery-choice-body { padding: 1.7rem 1.35rem 2rem; }
  .gallery-choice-body h3 { font-size: 2.6rem; }
  .gallery-placeholder-frames { gap: .55rem; }
  .gallery-placeholder-frames span { width: 88px; height: 118px; }
  .gallery-placeholder-frames strong { font-size: 1.9rem; }
  .gallery-hero { min-height: 490px; }
  .gallery-hero-content { padding: 8.5rem 0 3.5rem; }
  .gallery-hero h1 { font-size: clamp(3rem, 17vw, 4.6rem); }
  .photo-gallery-grid { columns: 2 145px; column-gap: .65rem; }
  .gallery-photo { margin-bottom: .65rem; border-radius: 11px; }
  .gallery-lightbox { grid-template-columns: 46px minmax(0, 1fr) 46px; gap: .2rem; padding: .6rem; }
  .gallery-lightbox-stage { height: calc(100vh - 1.2rem); }
  .gallery-lightbox-close, .gallery-lightbox-nav { width: 40px; height: 40px; }
  .gallery-lightbox-close { top: .7rem; right: .7rem; }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-cover-track { animation: none; }
  .gallery-cover-row { transform: none; }
  .gallery-lightbox-stage::before { animation: none; }
}
