[data-ecosystem] {
  --eco-ink: #231f1a;
  --eco-ink-soft: #30291f;
  --eco-paper: #e8dfcd;
  --eco-paper-light: #f6f1e7;
  --eco-bronze: #b69b72;
  --eco-sand: #c3b49d;
  --eco-line: rgb(182 155 114 / 34%);
  --eco-line-paper: rgb(48 41 31 / 24%);
  --eco-shadow: 0 34px 90px rgb(7 6 5 / 34%);
}

[data-ecosystem] body {
  background:
    radial-gradient(circle at 78% 12%, rgb(182 155 114 / 8%), transparent 27rem),
    var(--eco-ink);
}

.ecosystem-main {
  position: relative;
}

.ecosystem-section {
  position: relative;
  padding-block: clamp(88px, 10vw, 170px);
}

.ecosystem-section-header {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .7fr);
  align-items: end;
  gap: clamp(40px, 8vw, 150px);
  margin-bottom: clamp(54px, 7vw, 108px);
}

.ecosystem-section-header .section-intro {
  justify-self: end;
}

.eco-kicker {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
  color: var(--eco-bronze);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.eco-kicker::before {
  width: 34px;
  height: 1px;
  background: currentColor;
  content: "";
}

.eco-meta {
  color: var(--eco-sand);
  font-size: 12px;
  letter-spacing: .1em;
  line-height: 1.5;
  text-transform: uppercase;
}

.eco-arrow {
  color: var(--eco-bronze);
  font-size: 20px;
}

.eco-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 52px;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  color: inherit;
  background: transparent;
  font-size: 14px;
  cursor: pointer;
}

.eco-button .eco-arrow {
  transition: transform var(--softown-duration-fast) var(--softown-ease-out);
}

.eco-button:hover .eco-arrow,
.eco-button:focus-visible .eco-arrow {
  transform: translate(4px, -4px);
}

/* Abertura */
.eco-hero {
  position: relative;
  min-height: calc(100svh - 104px);
  padding-block: clamp(54px, 7vw, 116px) clamp(70px, 8vw, 132px);
}

.eco-hero::before {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 49.92%, rgb(182 155 114 / 10%) 50%, transparent 50.08%),
    linear-gradient(0deg, transparent 49.92%, rgb(182 155 114 / 7%) 50%, transparent 50.08%);
  background-size: 27vw 27vw;
  mask-image: linear-gradient(to bottom, black, transparent 78%);
  pointer-events: none;
  content: "";
}

.eco-hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(340px, .86fr) minmax(520px, 1.14fr);
  align-items: center;
  gap: clamp(50px, 7vw, 132px);
}

.eco-hero-copy {
  position: relative;
  z-index: 4;
  padding-block: 30px;
}

.eco-hero-copy .display-title {
  max-width: 8.4ch;
  margin-block: 20px 36px;
  font-size: clamp(66px, 7.4vw, 132px);
}

.eco-hero-copy .display-title em {
  display: block;
}

.eco-hero-lead {
  max-width: 46ch;
  color: var(--eco-sand);
  font-size: clamp(17px, 1.3vw, 21px);
  line-height: 1.75;
}

.eco-hero-status {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px 28px;
  align-items: center;
  max-width: 470px;
  margin-top: clamp(42px, 6vw, 82px);
  padding-top: 18px;
  border-top: 1px solid var(--eco-line);
  color: var(--eco-sand);
  font-size: 12px;
}

.eco-hero-status strong {
  color: var(--softown-ivory);
  font-weight: 500;
}

.eco-pulse {
  position: relative;
  width: 11px;
  height: 11px;
  border: 1px solid var(--eco-bronze);
  border-radius: 50%;
}

.eco-pulse::after {
  position: absolute;
  inset: -1px;
  border: 1px solid var(--eco-bronze);
  border-radius: inherit;
  animation: eco-pulse 2.8s ease-out infinite;
  content: "";
}

@keyframes eco-pulse {
  0% { opacity: .8; transform: scale(1); }
  70%, 100% { opacity: 0; transform: scale(3.3); }
}

.eco-hero-visual {
  position: relative;
  min-height: clamp(570px, 68vw, 790px);
  isolation: isolate;
}

.eco-hero-orbit {
  position: absolute;
  inset: 6% 4% 8% 8%;
  z-index: -1;
  border: 1px solid var(--eco-line);
  border-radius: 50%;
  transform: rotate(-8deg);
}

.eco-hero-orbit::before,
.eco-hero-orbit::after {
  position: absolute;
  border: 1px solid rgb(182 155 114 / 18%);
  border-radius: 50%;
  content: "";
}

.eco-hero-orbit::before {
  inset: 11% -9%;
  transform: rotate(30deg);
}

.eco-hero-orbit::after {
  inset: -8% 18%;
  transform: rotate(62deg);
}

.eco-hero-card {
  position: absolute;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--eco-line);
  background: var(--eco-ink-soft);
  box-shadow: var(--eco-shadow);
  translate:
    var(--eco-parallax-x, 0)
    calc(var(--eco-parallax-y, 0) + var(--eco-parallax-scroll, 0));
  transition:
    transform 900ms var(--softown-ease-out),
    border-color 300ms ease;
}

.eco-hero-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--softown-ease-out), filter 500ms ease;
}

.eco-hero-card figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  min-height: 42%;
  padding: clamp(18px, 2vw, 30px);
  background: linear-gradient(to top, rgb(20 17 14 / 94%), transparent);
}

.eco-hero-card figcaption strong {
  max-width: 13ch;
  font-family: var(--softown-serif);
  font-size: clamp(19px, 2vw, 31px);
  font-weight: 400;
  line-height: 1.05;
}

.eco-hero-card figcaption span {
  color: var(--eco-bronze);
  font-size: 10px;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.eco-hero-card:hover {
  border-color: var(--eco-bronze);
}

.eco-hero-card:hover img {
  transform: scale(1.035);
}

.eco-hero-card-primary {
  top: 8%;
  right: 3%;
  width: 67%;
  height: 70%;
  transform: rotate(1.2deg);
}

.eco-hero-card-secondary {
  bottom: 3%;
  left: 1%;
  z-index: 2;
  width: 43%;
  height: 48%;
  transform: rotate(-2.4deg);
}

.eco-hero-card-tertiary {
  top: 2%;
  left: 5%;
  z-index: 3;
  width: 30%;
  height: 33%;
  transform: rotate(-.8deg);
}

.eco-hero-index {
  position: absolute;
  right: 2%;
  bottom: 2%;
  color: rgb(237 232 220 / 9%);
  font-family: var(--softown-serif);
  font-size: clamp(120px, 19vw, 330px);
  line-height: .7;
  pointer-events: none;
  translate:
    var(--eco-parallax-x, 0)
    calc(var(--eco-parallax-y, 0) + var(--eco-parallax-scroll, 0));
}

/* Índice local */
.ecosystem-index-wrap {
  position: sticky;
  top: 0;
  z-index: 22;
  background: rgb(35 31 26 / 93%);
  backdrop-filter: blur(14px);
}

.ecosystem-index {
  position: relative;
}

.ecosystem-index .chapter-index-label {
  font-size: 17px;
}

.ecosystem-index-progress {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  overflow: hidden;
  background: rgb(182 155 114 / 12%);
}

.ecosystem-index-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--eco-bronze);
  transform: scaleX(var(--eco-progress, 0));
  transform-origin: left;
}

/* Notícias */
.eco-news {
  border-top: 1px solid var(--eco-line);
}

.eco-news-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: clamp(28px, 5vw, 84px);
  align-items: stretch;
  margin-bottom: clamp(72px, 9vw, 138px);
}

.eco-news-feature-media {
  position: relative;
  min-height: 540px;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--eco-line);
  border-radius: 52% 52% 4px 4px / 22% 22% 4px 4px;
  background: var(--eco-ink-soft);
}

.eco-news-feature-media picture,
.eco-news-feature-media img {
  width: 100%;
  height: 100%;
}

.eco-news-feature-media picture {
  position: absolute;
  inset: 0;
  display: block;
}

.eco-news-feature-media img {
  object-fit: cover;
  transition: transform 850ms var(--softown-ease-out);
}

.eco-news-feature-media figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 26px clamp(24px, 3vw, 46px);
  background: linear-gradient(to top, rgb(17 15 12 / 88%), transparent);
  color: var(--eco-sand);
  font-size: 12px;
}

.eco-headlines {
  display: grid;
  align-content: center;
  border-block: 1px solid var(--eco-line);
}

.eco-headline {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  min-height: 112px;
  padding: 20px 4px;
  border: 0;
  border-bottom: 1px solid var(--eco-line);
  color: var(--eco-sand);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: color 260ms ease, padding 400ms var(--softown-ease-out);
}

.eco-headline:last-child {
  border-bottom: 0;
}

.eco-headline > span:first-child {
  color: var(--eco-bronze);
  font-size: 11px;
}

.eco-headline strong {
  font-family: var(--softown-serif);
  font-size: clamp(18px, 1.6vw, 25px);
  font-weight: 400;
  line-height: 1.15;
}

.eco-headline time {
  font-size: 10px;
  letter-spacing: .1em;
}

.eco-headline:hover,
.eco-headline:focus-visible,
.eco-headline.is-active,
.eco-headline.is-current,
.eco-headline[aria-pressed="true"] {
  padding-inline: 14px;
  color: var(--softown-ivory);
}

.eco-news-journey {
  position: relative;
}

.eco-rail-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 28px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--eco-line);
}

.eco-rail-status {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: var(--eco-sand);
  font-size: 11px;
  letter-spacing: .12em;
}

.eco-rail-status strong {
  color: var(--softown-ivory);
  font-family: var(--softown-serif);
  font-size: 27px;
  font-weight: 400;
}

.eco-rail-controls {
  display: flex;
  gap: 8px;
}

.eco-round-button {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid var(--eco-line);
  border-radius: 50%;
  color: var(--eco-bronze);
  background: transparent;
  font-size: 19px;
  cursor: pointer;
  transition: color 240ms ease, background 240ms ease, transform 240ms ease;
}

.eco-round-button:hover,
.eco-round-button:focus-visible {
  color: var(--eco-ink);
  background: var(--eco-bronze);
  transform: translateY(-2px);
}

.eco-news-viewport,
.eco-agenda-viewport {
  scrollbar-width: none;
}

.eco-news-viewport::-webkit-scrollbar,
.eco-agenda-viewport::-webkit-scrollbar {
  display: none;
}

.eco-news-viewport {
  width: calc(100vw - max(var(--softown-gutter), (100vw - var(--softown-container)) / 2));
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
}

.eco-news-track {
  display: flex;
  align-items: stretch;
  gap: clamp(20px, 2.5vw, 42px);
  width: max-content;
  padding: 22px 12vw 54px 12px;
}

.eco-news-card {
  --card-tilt: 0deg;
  position: relative;
  display: grid;
  grid-template-rows: minmax(260px, 1fr) auto;
  width: clamp(330px, 42vw, 650px);
  min-height: 610px;
  overflow: hidden;
  border: 1px solid var(--eco-line);
  color: var(--softown-ivory);
  background: var(--eco-ink-soft);
  box-shadow: 0 24px 52px rgb(7 6 5 / 20%);
  scroll-snap-align: start;
  transform: rotate(var(--card-tilt));
  transition: transform 650ms var(--softown-ease-out), border-color 260ms ease;
}

.eco-news-card:nth-child(1) { --card-tilt: -.8deg; }
.eco-news-card:nth-child(2) { --card-tilt: .65deg; }
.eco-news-card:nth-child(3) { --card-tilt: -1.1deg; }
.eco-news-card:nth-child(4) { --card-tilt: .45deg; }

.eco-news-card:hover,
.eco-news-card:focus-within,
.eco-news-card.is-active,
.eco-news-card.is-current {
  z-index: 2;
  border-color: var(--eco-bronze);
  transform: rotate(0) translateY(-12px);
}

.eco-news-card-media {
  min-height: 300px;
  overflow: hidden;
}

.eco-news-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 900ms var(--softown-ease-out);
}

.eco-news-card:hover img,
.eco-news-card:focus-within img {
  transform: scale(1.035);
}

.eco-news-card-copy {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px 30px;
  padding: clamp(25px, 3.5vw, 48px);
}

.eco-news-card-number {
  color: var(--eco-bronze);
  font-size: 11px;
}

.eco-news-card h3 {
  max-width: 16ch;
  font-family: var(--softown-serif);
  font-size: clamp(29px, 3vw, 47px);
  font-weight: 400;
  line-height: 1.03;
}

.eco-news-card p {
  grid-column: 2;
  max-width: 44ch;
  color: var(--eco-sand);
  font-size: 14px;
}

.eco-news-card-footer {
  grid-column: 2;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--eco-line);
}

/* Agenda */
.eco-agenda {
  overflow: hidden;
}

.eco-agenda .ecosystem-section-header {
  margin-bottom: 46px;
}

.eco-agenda .section-intro {
  color: rgb(48 41 31 / 78%);
}

.eco-agenda .eco-kicker,
.eco-agenda .eco-meta,
.eco-agenda .eco-rail-status {
  color: #705b3e;
}

.eco-agenda .eco-rail-toolbar {
  border-color: var(--eco-line-paper);
}

.eco-agenda .eco-rail-status strong {
  color: var(--eco-ink-soft);
}

.eco-agenda .eco-round-button {
  border-color: var(--eco-line-paper);
  color: #705b3e;
}

.eco-agenda .eco-round-button:hover,
.eco-agenda .eco-round-button:focus-visible {
  color: var(--eco-paper-light);
  background: var(--eco-ink-soft);
}

.eco-agenda-rail {
  display: grid;
  grid-template-columns: minmax(150px, .26fr) minmax(0, 1fr);
  gap: clamp(26px, 5vw, 76px);
  align-items: stretch;
}

.eco-agenda-marker {
  display: grid;
  align-content: space-between;
  min-height: 470px;
  padding-block: 28px;
  border-block: 1px solid var(--eco-line-paper);
}

.eco-agenda-marker span {
  color: #705b3e;
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.eco-agenda-marker strong {
  font-family: var(--softown-serif);
  font-size: clamp(64px, 8vw, 130px);
  font-weight: 300;
  line-height: .72;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.eco-agenda-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
}

.eco-agenda-track {
  display: flex;
  width: max-content;
  min-height: 470px;
}

.eco-agenda-card {
  display: grid;
  grid-template-rows: auto 1fr auto;
  width: clamp(330px, 37vw, 570px);
  min-height: 470px;
  padding: clamp(28px, 4vw, 52px);
  border-left: 1px solid var(--eco-line-paper);
  scroll-snap-align: start;
  transition: color 320ms ease, background 500ms var(--softown-ease-out);
}

.eco-agenda-card:last-child {
  border-right: 1px solid var(--eco-line-paper);
}

.eco-agenda-card:hover,
.eco-agenda-card:focus-within,
.eco-agenda-card.is-active,
.eco-agenda-card.is-current {
  color: var(--eco-paper-light);
  background: var(--eco-ink-soft);
}

.eco-agenda-card:hover .eco-agenda-label,
.eco-agenda-card:focus-within .eco-agenda-label,
.eco-agenda-card.is-active .eco-agenda-label,
.eco-agenda-card.is-current .eco-agenda-label {
  color: var(--eco-bronze);
}

.eco-agenda-date {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid currentColor;
}

.eco-agenda-date strong {
  font-family: var(--softown-serif);
  font-size: clamp(52px, 6vw, 88px);
  font-weight: 300;
  letter-spacing: -.06em;
  line-height: .8;
}

.eco-agenda-date span {
  font-size: 11px;
  letter-spacing: .14em;
  line-height: 1.45;
  text-align: right;
  text-transform: uppercase;
}

.eco-agenda-content {
  align-self: center;
  padding-block: 34px;
}

.eco-agenda-label {
  margin-bottom: 14px;
  color: #705b3e;
  font-size: 10px;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.eco-agenda-card h3 {
  max-width: 13ch;
  font-family: var(--softown-serif);
  font-size: clamp(31px, 3.4vw, 52px);
  font-weight: 400;
  line-height: 1.03;
}

.eco-agenda-card p {
  max-width: 42ch;
  margin-top: 22px;
  font-size: 14px;
  opacity: .72;
}

.eco-agenda-card .eco-button {
  width: 100%;
}

.eco-agenda-card.is-open-agenda .eco-agenda-date strong {
  font-size: clamp(38px, 4vw, 60px);
}

/* Imprensa */
.eco-press {
  border-block: 1px solid var(--eco-line);
}

.eco-press-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(20px, 3vw, 42px);
}

.eco-press-card {
  --press-offset: 0px;
  position: relative;
  display: grid;
  min-height: 470px;
  padding: clamp(28px, 3.5vw, 50px);
  overflow: hidden;
  border: 1px solid var(--eco-line);
  color: var(--softown-ivory);
  background:
    linear-gradient(135deg, rgb(182 155 114 / 8%), transparent 44%),
    var(--eco-ink-soft);
  isolation: isolate;
  transform: translateY(var(--press-offset));
  transition: transform 620ms var(--softown-ease-out), border-color 260ms ease;
}

.eco-press-card:nth-child(2) { --press-offset: 48px; }
.eco-press-card:nth-child(3) { --press-offset: 16px; }

.eco-press-card::before {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 3;
  width: 74px;
  height: 74px;
  border-bottom: 1px solid var(--eco-line);
  border-left: 1px solid var(--eco-line);
  background: rgb(182 155 114 / 5%);
  content: "";
  transform: translate(36px, -36px) rotate(45deg);
}

.eco-press-card > :not(.eco-press-card-media) {
  position: relative;
  z-index: 2;
}

.eco-press-card-media {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  opacity: .56;
  pointer-events: none;
  transform: scale(1.025);
  transition:
    opacity 520ms ease,
    transform 1100ms var(--softown-ease-out);
}

.eco-press-card-media::after {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, rgb(48 41 31 / 54%), rgb(48 41 31 / 72%)),
    linear-gradient(135deg, rgb(182 155 114 / 18%), transparent 48%);
  content: "";
}

.eco-press-card-media picture,
.eco-press-card-media img {
  width: 100%;
  height: 100%;
}

.eco-press-card-media img {
  object-fit: cover;
  filter: sepia(.18) saturate(.72) contrast(1.05);
}

.eco-press-card:hover .eco-press-card-media,
.eco-press-card:focus-within .eco-press-card-media,
.eco-press-card.is-active .eco-press-card-media,
.eco-press-card.is-open .eco-press-card-media {
  opacity: .8;
  transform: scale(1);
}

.eco-press-card:hover,
.eco-press-card:focus-visible,
.eco-press-card.is-active,
.eco-press-card.is-open {
  z-index: 2;
  border-color: var(--eco-bronze);
  transform: translateY(var(--press-offset));
}

.eco-press-source {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: var(--eco-bronze);
  font-size: 10px;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.eco-press-trigger {
  display: grid;
  grid-template-rows: auto 1fr auto;
  width: 100%;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.eco-press-drawer {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--eco-line);
  color: var(--eco-sand);
}

.eco-press-js .eco-press-drawer {
  max-height: 0;
  overflow: hidden;
  margin-top: 0;
  padding-top: 0;
  border-top-color: transparent;
  opacity: 0;
  transform: translateY(14px);
  transition:
    max-height 520ms var(--softown-ease-out),
    margin 520ms var(--softown-ease-out),
    padding 520ms var(--softown-ease-out),
    border-color 320ms ease,
    opacity 320ms ease,
    transform 520ms var(--softown-ease-out);
}

.eco-press-js .eco-press-card.is-open .eco-press-drawer {
  max-height: 160px;
  margin-top: 22px;
  padding-top: 18px;
  border-top-color: var(--eco-line);
  opacity: 1;
  transform: none;
}

.eco-press-drawer p {
  margin-bottom: 14px;
  font-size: 13px;
}

.eco-press-drawer a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  color: var(--eco-bronze);
  font-size: 12px;
}

.eco-press-title {
  align-self: center;
  display: block;
  max-width: 15ch;
  font-family: var(--softown-serif);
  font-size: clamp(28px, 3vw, 47px);
  font-weight: 400;
  line-height: 1.06;
}

.eco-press-card-footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--eco-line);
  color: var(--eco-sand);
  font-size: 12px;
}

.eco-press-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-top: clamp(96px, 12vw, 190px);
  padding-block: 30px;
  border-block: 1px solid var(--eco-line);
}

.eco-press-contact p {
  max-width: 38ch;
  font-family: var(--softown-serif);
  font-size: clamp(24px, 3vw, 42px);
  line-height: 1.1;
}

.eco-press-contact .eco-button {
  width: min(100%, 330px);
}

/* Revista */
.eco-magazine {
  overflow: hidden;
}

.eco-magazine-layout {
  display: grid;
  grid-template-columns: minmax(300px, .65fr) minmax(540px, 1.35fr);
  gap: clamp(50px, 9vw, 150px);
  align-items: center;
}

.eco-magazine-copy .section-title {
  margin-block: 18px 32px;
}

.eco-magazine-copy .section-intro {
  color: rgb(48 41 31 / 72%);
}

.eco-magazine .eco-kicker,
.eco-magazine .eco-rail-status {
  color: #705b3e;
}

.eco-magazine .eco-rail-toolbar {
  border-color: var(--eco-line-paper);
}

.eco-magazine .eco-rail-status strong {
  color: var(--eco-ink-soft);
}

.eco-magazine .eco-round-button {
  border-color: var(--eco-line-paper);
  color: #705b3e;
}

.eco-magazine .eco-round-button:hover,
.eco-magazine .eco-round-button:focus-visible {
  color: var(--eco-paper-light);
  background: var(--eco-ink-soft);
}

.eco-magazine-copy .eco-button {
  width: min(100%, 360px);
  margin-top: 36px;
}

.eco-magazine-stage {
  position: relative;
  min-height: 690px;
  perspective: 1600px;
}

.eco-magazine-stage::before {
  position: absolute;
  right: 4%;
  bottom: 5%;
  left: 4%;
  height: 32px;
  border-radius: 50%;
  background: rgb(48 41 31 / 19%);
  filter: blur(24px);
  content: "";
}

.eco-magazine-issue {
  --issue-x: 0%;
  --issue-y: 0%;
  --issue-r: 0deg;
  --issue-z: 1;
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: var(--issue-z);
  display: grid;
  grid-template-rows: auto 1fr auto;
  width: min(62%, 450px);
  aspect-ratio: .72;
  padding: clamp(24px, 3vw, 42px);
  overflow: hidden;
  border: 1px solid rgb(48 41 31 / 30%);
  color: var(--eco-paper-light);
  background:
    linear-gradient(140deg, rgb(182 155 114 / 19%), transparent 36%),
    var(--eco-ink-soft);
  box-shadow: 0 35px 60px rgb(48 41 31 / 24%);
  text-align: left;
  cursor: pointer;
  transform:
    translate(calc(-50% + var(--issue-x)), calc(-50% + var(--issue-y)))
    rotate(var(--issue-r));
  transform-style: preserve-3d;
  transition:
    transform 850ms var(--softown-ease-out),
    opacity 400ms ease,
    filter 400ms ease;
}

.eco-magazine-issue > :not(.eco-magazine-issue-media) {
  position: relative;
  z-index: 2;
}

.eco-magazine-issue-media {
  position: absolute;
  inset: 38% 0 0;
  z-index: 1;
  overflow: hidden;
  opacity: .38;
  pointer-events: none;
}

.eco-magazine-issue-media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, var(--eco-ink-soft), transparent 35%, rgb(35 31 26 / 58%));
  content: "";
}

.eco-magazine-issue-media picture,
.eco-magazine-issue-media img {
  width: 100%;
  height: 100%;
}

.eco-magazine-issue-media img {
  object-fit: cover;
  filter: saturate(.72) contrast(1.04);
  transition: transform 900ms var(--softown-ease-out), filter 500ms ease;
}

.eco-magazine-issue:hover .eco-magazine-issue-media img,
.eco-magazine-issue:focus-visible .eco-magazine-issue-media img,
.eco-magazine-issue.is-current .eco-magazine-issue-media img {
  filter: saturate(.92) contrast(1.02);
  transform: scale(1.045);
}

.eco-magazine-issue:nth-child(1) {
  --issue-x: -29%;
  --issue-y: 2%;
  --issue-r: -8deg;
  --issue-z: 1;
}

.eco-magazine-issue:nth-child(2) {
  --issue-x: 0%;
  --issue-y: -2%;
  --issue-r: 1deg;
  --issue-z: 3;
}

.eco-magazine-issue:nth-child(3) {
  --issue-x: 29%;
  --issue-y: 4%;
  --issue-r: 8deg;
  --issue-z: 2;
}

.eco-magazine-issue:hover,
.eco-magazine-issue:focus-visible,
.eco-magazine-issue.is-active,
.eco-magazine-issue.is-current,
.eco-magazine-issue[aria-pressed="true"] {
  --issue-y: -8%;
  --issue-r: 0deg;
  --issue-z: 5;
  outline-offset: 8px;
}

.eco-magazine-issue-label {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--eco-line);
  color: var(--eco-bronze);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.eco-magazine-title {
  align-self: center;
  display: block;
  max-width: 7ch;
  font-family: var(--softown-serif);
  font-size: clamp(43px, 5.5vw, 79px);
  font-weight: 300;
  letter-spacing: -.055em;
  line-height: .92;
}

.eco-magazine-title em {
  display: block;
  color: var(--eco-bronze);
  font-weight: inherit;
}

.eco-magazine-issue-footer {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--eco-line);
  color: var(--eco-sand);
  font-size: 11px;
}

.eco-magazine-panels {
  margin-top: 34px;
  padding-top: 24px;
  border-top: 1px solid var(--eco-line-paper);
}

.eco-magazine-panel {
  max-width: 47ch;
  color: rgb(48 41 31 / 72%);
  font-size: 14px;
}

.eco-magazine-panel strong {
  display: block;
  margin-bottom: 8px;
  color: var(--eco-ink-soft);
  font-family: var(--softown-serif);
  font-size: 24px;
  font-weight: 400;
}

/* Encerramento */
.eco-closing {
  position: relative;
  min-height: min(900px, 94svh);
  display: grid;
  place-items: center;
  overflow: hidden;
  padding-block: clamp(100px, 13vw, 220px);
  text-align: center;
}

.eco-closing-lines {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.eco-closing-lines span {
  position: absolute;
  width: 52%;
  height: 1px;
  background: linear-gradient(to right, transparent, rgb(48 41 31 / 34%));
  transform-origin: right;
}

.eco-closing-lines span:nth-child(1) { top: 16%; left: -2%; transform: rotate(21deg); }
.eco-closing-lines span:nth-child(2) { top: 37%; left: -4%; transform: rotate(7deg); }
.eco-closing-lines span:nth-child(3) { right: -2%; bottom: 27%; transform: rotate(16deg) scaleX(-1); }
.eco-closing-lines span:nth-child(4) { right: -4%; bottom: 12%; transform: rotate(32deg) scaleX(-1); }

.eco-closing-mark {
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(330px, 44vw, 740px);
  aspect-ratio: 1;
  border: 1px solid rgb(48 41 31 / 15%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.eco-closing-mark::before,
.eco-closing-mark::after {
  position: absolute;
  border: 1px solid rgb(48 41 31 / 12%);
  border-radius: 50%;
  content: "";
}

.eco-closing-mark::before { inset: 10%; }
.eco-closing-mark::after { inset: 22%; }

.eco-closing-mark img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(48px, 6vw, 86px);
  height: auto;
  opacity: .28;
  transform: translate(-50%, -50%);
}

.eco-closing-copy {
  position: relative;
  z-index: 2;
  max-width: 1050px;
}

.eco-closing-copy .section-title {
  margin-block: 22px 30px;
}

.eco-closing-copy > p:not(.eyebrow) {
  max-width: 54ch;
  margin-inline: auto;
  color: rgb(48 41 31 / 72%);
  font-size: clamp(16px, 1.25vw, 20px);
}

.eco-closing-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px 48px;
  margin-top: 48px;
}

.eco-closing-actions .eco-button {
  width: min(100%, 310px);
}

/* Revelação progressiva sem esconder o HTML no fallback */
.ecosystem-js [data-eco-reveal] {
  transform: translateY(34px);
  transition: transform 820ms var(--softown-ease-out);
}

.ecosystem-js [data-eco-reveal].is-visible {
  transform: none;
}

@media (max-width: 1180px) {
  .eco-hero-grid {
    grid-template-columns: minmax(300px, .78fr) minmax(480px, 1.22fr);
    gap: 34px;
  }

  .eco-hero-card-primary {
    width: 70%;
  }

  .eco-news-feature {
    grid-template-columns: 1fr;
  }

  .eco-headlines {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .eco-headline:nth-child(2) {
    border-right: 0;
  }

  .eco-headline {
    border-right: 1px solid var(--eco-line);
  }

  .eco-magazine-layout {
    grid-template-columns: minmax(280px, .8fr) minmax(480px, 1.2fr);
    gap: 34px;
  }
}

@media (max-width: 920px) {
  .ecosystem-section-header {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 28px;
  }

  .ecosystem-section-header .section-intro {
    justify-self: start;
  }

  .eco-hero {
    min-height: auto;
  }

  .eco-hero-grid {
    grid-template-columns: 1fr;
  }

  .eco-hero-copy .display-title {
    max-width: 9ch;
  }

  .eco-hero-visual {
    min-height: 720px;
  }

  .ecosystem-index-wrap {
    overflow-x: auto;
  }

  .ecosystem-index {
    width: max-content;
    min-width: 100%;
    flex-wrap: nowrap;
    padding-inline: var(--softown-gutter);
  }

  .ecosystem-index .chapter-index-label {
    display: none;
  }

  .eco-agenda-rail {
    grid-template-columns: 1fr;
  }

  .eco-agenda-marker {
    display: flex;
    align-items: baseline;
    gap: 22px;
    min-height: auto;
  }

  .eco-agenda-marker strong {
    writing-mode: initial;
    transform: none;
  }

  .eco-press-grid {
    grid-template-columns: 1fr;
  }

  .eco-press-card,
  .eco-press-card:nth-child(2),
  .eco-press-card:nth-child(3) {
    --press-offset: 0px;
    min-height: 380px;
  }

  .eco-press-contact {
    margin-top: 70px;
  }

  .eco-magazine-layout {
    grid-template-columns: 1fr;
  }

  .eco-magazine-copy {
    max-width: 680px;
  }
}

@media (max-width: 680px) {
  .ecosystem-section {
    padding-block: 82px;
  }

  .eco-hero {
    padding-top: 38px;
  }

  .eco-hero-copy .display-title {
    font-size: clamp(54px, 16vw, 82px);
  }

  .eco-hero-status {
    margin-top: 38px;
  }

  .eco-hero-visual {
    min-height: 560px;
  }

  .eco-hero-card-primary {
    top: 8%;
    right: 0;
    width: 78%;
    height: 68%;
  }

  .eco-hero-card-secondary {
    bottom: 0;
    width: 55%;
    height: 43%;
  }

  .eco-hero-card-tertiary {
    top: 0;
    left: 0;
    width: 38%;
    height: 28%;
  }

  .eco-hero-card figcaption strong {
    font-size: 18px;
  }

  .eco-hero-card figcaption span {
    display: none;
  }

  .ecosystem-index-wrap {
    margin-inline: calc(var(--softown-gutter) * -1);
  }

  .ecosystem-index a {
    white-space: nowrap;
  }

  .eco-news-feature-media {
    min-height: 460px;
    border-radius: 46% 46% 4px 4px / 15% 15% 4px 4px;
  }

  .eco-headlines {
    grid-template-columns: 1fr;
  }

  .eco-headline {
    min-height: 92px;
    border-right: 0;
  }

  .eco-headline:nth-child(2) {
    border-bottom: 1px solid var(--eco-line);
  }

  .eco-news-viewport {
    width: calc(100vw - var(--softown-gutter));
  }

  .eco-news-track {
    padding-right: var(--softown-gutter);
  }

  .eco-news-card {
    width: min(82vw, 420px);
    min-height: 560px;
    transform: none;
  }

  .eco-news-card:hover,
  .eco-news-card:focus-within,
  .eco-news-card.is-active {
    transform: translateY(-6px);
  }

  .eco-news-card-copy {
    grid-template-columns: 28px 1fr;
  }

  .eco-agenda-card {
    width: min(84vw, 420px);
  }

  .eco-press-contact {
    align-items: start;
    flex-direction: column;
  }

  .eco-magazine-stage {
    min-height: 570px;
  }

  .eco-magazine-issue {
    width: min(72%, 340px);
  }

  .eco-magazine-issue:nth-child(1) { --issue-x: -18%; }
  .eco-magazine-issue:nth-child(3) { --issue-x: 18%; }

  .eco-closing {
    min-height: 760px;
  }

  .eco-closing-actions {
    align-items: center;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .eco-pulse::after {
    animation: none;
  }

  .eco-hero-card,
  .eco-news-card,
  .eco-press-card,
  .eco-magazine-issue,
  .ecosystem-js [data-eco-reveal] {
    transition: none;
  }

  .ecosystem-js [data-eco-reveal] {
    opacity: 1;
    transform: none;
  }
}
