/* =========================================================
   Home HCzinho - redesign institucional
   Linguagem: editorial pediátrica, alta complexidade e SUS.
   Esta folha é exclusiva da home para não acumular camadas
   visuais de blog, IR e páginas legadas.
   ========================================================= */

:root {
  --home-ink: #2c377f;
  --home-ink-deep: #1d285f;
  --home-paper: #fff9ec;
  --home-white: #fffdf7;
  --home-pink: #e9afc7;
  --home-pink-deep: #b65b84;
  --home-peach: #f4b8a4;
  --home-green: #a9d3ad;
  --home-green-deep: #356b46;
  --home-teal: #a6d8e4;
  --home-lilac: #c2aad0;
  --home-lilac-deep: #675083;
  --home-text: #51587f;
  --home-muted: #777d9d;
  --home-line: rgba(44, 55, 127, 0.13);
  --home-shadow: 0 26px 70px rgba(44, 55, 127, 0.14);
  --home-soft-shadow: 0 12px 34px rgba(44, 55, 127, 0.09);
  --home-portrait-glow: rgba(255, 249, 236, 0.96);
  --home-portrait-glow-soft: rgba(255, 249, 236, 0.58);
  --home-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

.home-redesign {
  background:
    radial-gradient(circle at 15% 5%, rgba(233, 175, 199, 0.16), transparent 23rem),
    radial-gradient(circle at 92% 26%, rgba(166, 216, 228, 0.16), transparent 25rem),
    var(--home-paper);
  color: var(--home-text);
}

.home-redesign *,
.home-redesign *::before,
.home-redesign *::after { box-sizing: border-box; }

.home-redesign img { max-width: 100%; }

.home-redesign .site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  gap: clamp(14px, 2vw, 28px);
  padding: 13px clamp(18px, 4vw, 56px);
  min-height: 76px;
  /* opaco, como no resto do site: translúcido, a barra pegava a cor do que
     estivesse atrás e mudava de página para página */
  background: #fff9ec;
  border-bottom: 1px solid transparent;
  transition: padding 240ms var(--home-ease), box-shadow 240ms ease, border-color 240ms ease;
}

.home-redesign .site-header.is-scrolled {
  padding-top: 9px;
  padding-bottom: 9px;
  border-color: var(--home-line);
  box-shadow: 0 6px 24px rgba(44, 55, 127, 0.08);
}

.home-redesign .brand { flex: 0 0 auto; }
.home-redesign .brand img { height: 39px; width: auto; display: block; }

.home-redesign .site-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: auto;
}

.home-redesign .site-nav a {
  padding: 8px 10px;
  border-radius: 999px;
  color: var(--home-ink);
  font-family: var(--font-display);
  font-size: 0.84rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 180ms var(--home-ease), background 180ms ease, color 180ms ease;
}

.home-redesign .site-nav a:hover {
  color: var(--home-pink-deep);
  background: rgba(233, 175, 199, 0.23);
  transform: translateY(-1px);
}

.home-redesign .header-donate,
.home-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 0;
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 800;
  line-height: 1.1;
  text-decoration: none;
  transition: transform 180ms var(--home-ease), box-shadow 180ms ease, background 180ms ease, color 180ms ease;
}

.home-redesign .header-donate {
  flex: 0 0 auto;
  padding: 12px 19px;
  color: #fff;
  background: linear-gradient(135deg, #f06a98, #b95782);
  box-shadow: 0 12px 25px rgba(182, 91, 132, 0.28);
  font-size: 0.92rem;
}

.home-redesign .header-donate:hover,
.home-button:hover { transform: translateY(-2px); }
.home-redesign .header-donate svg,
.home-button svg { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.home-redesign .menu-toggle { display: none; }

/* o padding-bottom de 90px do styles.css existe para a barra de compra fixa da
   loja; na home ele só afastava o CTA do rodapé */
.home-main { overflow: hidden; padding-bottom: 0; }

.home-shell {
  width: min(100% - clamp(48px, 8vw, 144px), 1280px);
  margin-inline: auto;
}

.home-kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: var(--home-pink-deep);
  font-family: var(--font-display);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
}

.home-kicker::before,
.home-kicker__dots {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--home-pink);
  box-shadow: 12px 0 var(--home-green), 24px 0 var(--home-lilac);
}

.home-kicker::before {
  /* Reserva a largura visual das três bolinhas. */
  flex: 0 0 31px;
  width: 31px;
}

.home-kicker__dots { margin-right: 15px; }
.home-kicker:has(.home-kicker__dots)::before { display: none; }

.home-kicker--light { color: rgba(255, 253, 247, 0.8); }

.home-redesign h1,
.home-redesign h2,
.home-redesign h3,
.home-redesign p { margin-top: 0; }

.home-redesign h2 {
  margin-bottom: 0;
  color: var(--home-ink);
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 3.8vw, 3.8rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.home-redesign h2 em { color: var(--home-pink-deep); font-style: normal; }

.home-button { min-height: 52px; padding: 0 23px; font-size: 0.96rem; }
/* Roxo escuro em repouso, lilás claro no hover — o inverso do "Doar agora"
   do topo, que é escuro e clareia. Era azul-marinho, a única cor do fluxo de
   doação que não aparece em nenhum outro lugar dele.
   Creme sobre #5b4488 dá 7,9:1; no hover, #4a3672 sobre o lilás dá 4,8:1. */
.home-button--primary {
  color: #fffdf7;
  background: var(--roxo-marca, #5b4488);
  box-shadow: 0 14px 30px rgba(91, 68, 136, 0.28);
}

.home-button--primary:hover {
  color: var(--roxo-marca-forte, #4a3672);
  background: var(--lilac, #c2aad0);
}
.home-button--secondary { color: var(--home-pink-deep); background: rgba(255, 253, 247, 0.85); box-shadow: inset 0 0 0 1.5px rgba(182, 91, 132, 0.42); }
.home-button--secondary:hover { color: #fff; background: var(--home-pink-deep); }
.home-button--pink { color: #fff; background: linear-gradient(135deg, #f06a98, #b95782); box-shadow: 0 14px 28px rgba(10, 14, 58, 0.25); }
.home-button--light { color: var(--home-ink); background: #fffdf7; box-shadow: inset 0 0 0 1.5px rgba(255, 253, 247, 0.55); }
.home-button--light:hover { color: #fffdf7; background: rgba(255, 253, 247, 0.14); box-shadow: inset 0 0 0 1.5px rgba(255, 253, 247, 0.75); }

/* Hero */
.home-hero { position: relative; padding: clamp(18px, 3.3vw, 52px) 0 clamp(50px, 7vw, 92px); }

.home-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 10% auto auto 0;
  width: min(60vw, 810px);
  height: 73%;
  border-radius: 0 180px 180px 0;
  background: linear-gradient(138deg, rgba(233, 175, 199, 0.25), rgba(244, 184, 164, 0.08));
}

.home-hero__grid { display: grid; grid-template-columns: minmax(0, 0.91fr) minmax(470px, 1.09fr); align-items: center; gap: clamp(28px, 5vw, 90px); }
.home-hero__copy { display: grid; align-items: start; justify-items: start; gap: 21px; }

.home-hero h1 {
  max-width: 9.8ch;
  margin-bottom: 0;
  color: var(--home-ink);
  font-family: var(--font-display);
  font-size: clamp(3.25rem, 5.1vw, 5.75rem);
  font-weight: 800;
  letter-spacing: -0.065em;
  line-height: 0.88;
}

.home-hero h1 span { display: block; color: var(--home-pink-deep); }

.home-hero__lead { max-width: 51ch; margin-bottom: 0; color: var(--home-text); font-size: clamp(1rem, 1.25vw, 1.13rem); line-height: 1.7; }
.home-hero__lead strong { color: var(--home-ink); }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: 11px; }

.home-hero__visual { position: relative; min-height: clamp(380px, 41vw, 580px); isolation: isolate; }
.home-hero__glow { position: absolute; z-index: -2; top: 26%; left: 26%; width: 58%; aspect-ratio: 1; border-radius: 12% 0 12% 0; background: var(--home-pink); opacity: 0.5; transform: rotate(-45deg); }
.home-hero__glow::before,
.home-hero__glow::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--home-pink); }
.home-hero__glow::before { transform: translateY(-50%); }
.home-hero__glow::after { transform: translateX(50%); }
.home-hero__hospital { position: absolute; z-index: 1; right: 0; bottom: 7%; width: 103%; filter: drop-shadow(0 24px 22px rgba(44, 55, 127, 0.17)); }

/* Apoio integrado à hero */
.home-hero__support { grid-column: 1 / -1; width: 100%; margin-top: clamp(-12px, -1vw, -4px); }
.home-hero__support .home-help__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.home-hero__support .home-help-card { min-height: 224px; padding: 19px; border-radius: 19px; }
.home-hero__support .home-help-card strong { max-width: 13ch; margin-top: 0; font-size: clamp(1.16rem, 1.55vw, 1.48rem); }
.home-hero__support .home-help-card p { max-width: 18ch; margin-top: 10px; font-size: clamp(0.78rem, 0.9vw, 0.86rem); line-height: 1.4; }
.home-hero__support .home-help-card b { bottom: 16px; left: 16px; padding: 7px 9px; font-size: 0.7rem; }
.home-hero__support .home-help-card img { right: -10px; bottom: -14px; width: 57%; }
/* Manifesto e fases */
.home-manifesto { padding: clamp(50px, 8vw, 112px) 0; background: var(--home-white); }
/* a coluna de texto era estreita para o título novo, que quebrava em cinco
   linhas curtas; o vídeo continua com folga de sobra */
.home-manifesto__grid { display: grid; grid-template-columns: minmax(300px, 0.92fr) minmax(0, 1.08fr); align-items: center; gap: clamp(30px, 5vw, 80px); }
.home-manifesto__copy { display: grid; gap: 20px; }
/* 12.5ch era a medida do título antigo; a frase nova sobrava linha e deixava
   o rag irregular numa coluna que tem mais espaço */
.home-manifesto__copy h2 { max-width: 17ch; text-wrap: balance; }
.home-manifesto__copy p:last-child { max-width: 39ch; margin-bottom: 0; color: var(--home-text); line-height: 1.7; }
.home-video { position: relative; isolation: isolate; padding: clamp(10px, 1.5vw, 17px); border-radius: clamp(23px, 3vw, 34px); background: linear-gradient(135deg, var(--home-pink), var(--home-lilac) 48%, var(--home-teal)); box-shadow: 0 23px 48px rgba(44, 55, 127, 0.16); }
.home-video::before { content: ""; position: absolute; z-index: -1; top: -8%; right: -5%; width: 32%; aspect-ratio: 1; border: 2px solid rgba(255, 253, 247, 0.54); border-radius: 50%; box-shadow: -18px 20px 0 rgba(255, 253, 247, 0.16); }
.home-video::after { content: ""; position: absolute; z-index: -1; bottom: -7%; left: -4%; width: 22%; aspect-ratio: 1; border-radius: 47% 53% 49% 51% / 56% 44% 56% 44%; background: var(--home-peach); transform: rotate(-20deg); }
.home-video__frame { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border: 3px solid rgba(255, 253, 247, 0.86); border-radius: clamp(16px, 2.2vw, 24px); background: var(--home-ink-deep); box-shadow: inset 0 0 0 1px rgba(44, 55, 127, 0.12), 0 13px 28px rgba(44, 55, 127, 0.18); }
.home-video__frame iframe { display: block; width: 100%; height: 100%; border: 0; }

/* Por que o Paraná precisa do HCzinho */
.home-complexity { position: relative; overflow: hidden; padding: clamp(72px, 9vw, 132px) 0; color: var(--home-white); background: linear-gradient(145deg, var(--home-ink-deep) 0%, var(--home-ink) 62%, #3a478e 100%); }
.home-complexity::before { content: ""; position: absolute; top: 8%; right: -13vw; width: min(42vw, 630px); height: min(42vw, 630px); border: 34px solid rgba(194, 170, 208, 0.12); border-radius: 49% 51% 46% 54% / 44% 52% 48% 56%; transform: rotate(18deg); }
.home-complexity::after { content: ""; position: absolute; right: 4%; bottom: 6%; width: min(30vw, 450px); height: 2px; background: linear-gradient(90deg, transparent, rgba(169, 211, 173, 0.68), transparent); transform: rotate(-18deg); transform-origin: right center; }
.home-complexity .home-shell { position: relative; z-index: 1; }
.home-complexity h2 { max-width: 15ch; margin: 0; color: var(--home-white); line-height: 0.93; }

/* Dados do projeto */
.home-project { position: relative; isolation: isolate; overflow: hidden; padding: clamp(64px, 9vw, 130px) 0; background: linear-gradient(135deg, #d8c6df 0%, var(--home-lilac) 52%, #bba0c9 100%); }
.home-project::before { content: ""; position: absolute; z-index: -1; top: -18%; right: -8%; width: min(43vw, 620px); aspect-ratio: 1; border-radius: 43% 57% 49% 51% / 56% 43% 57% 44%; background: rgba(255, 253, 247, 0.15); transform: rotate(22deg); }
.home-project::after { content: ""; position: absolute; z-index: -1; bottom: -23%; left: -4%; width: min(28vw, 400px); aspect-ratio: 1; border-radius: 52% 48% 43% 57% / 48% 57% 43% 52%; background: rgba(166, 216, 228, 0.22); transform: rotate(-16deg); }
.home-project .home-shell { position: relative; z-index: 1; }
.home-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, 0.5fr); align-items: end; gap: clamp(22px, 6vw, 110px); margin-bottom: clamp(30px, 5vw, 55px); }
.home-section-heading h2 { max-width: 16ch; margin-top: 14px; }
.home-section-heading > p { max-width: 40ch; margin: 0; color: var(--home-text); line-height: 1.7; }
.home-project .home-section-heading { display: block; max-width: 1120px; }
.home-project .home-section-heading h2 { max-width: 34ch; margin: 0; text-wrap: pretty; }
.home-project .home-section-heading > p { max-width: 68ch; margin: 18px 0 0; color: #48436f; font-size: clamp(1rem, 1.3vw, 1.14rem); font-weight: 700; }
.home-data-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(230px, auto); gap: clamp(16px, 1.3vw, 24px); }
.home-project__cta { display: grid; justify-items: center; gap: 20px; margin-top: clamp(30px, 5vw, 54px); text-align: center; }
.home-project__cta p { max-width: 48ch; margin: 0; color: #48436f; font-family: var(--font-display); font-size: clamp(1.1rem, 1.6vw, 1.42rem); font-weight: 700; letter-spacing: -0.025em; line-height: 1.18; }
.home-project__cta p strong { color: var(--home-ink); }
.home-project__cta .home-button { flex: 0 0 auto; white-space: nowrap; }
.home-data { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 13px; min-height: 230px; overflow: hidden; margin: 0; padding: clamp(18px, 2.2vw, 28px); border: 0; border-radius: 26px; color: var(--home-ink); background: var(--home-white); box-shadow: 0 16px 30px rgba(72, 67, 111, 0.16); }
.home-data strong { display: block; font-family: var(--font-display); font-size: clamp(3rem, 4.15vw, 4.8rem); font-weight: 800; letter-spacing: -0.08em; line-height: 0.78; }
.home-data p { max-width: 18ch; margin: 0; color: currentColor; font-family: var(--font-display); font-size: clamp(0.94rem, 1.1vw, 1.05rem); font-weight: 800; line-height: 1.14; }
.home-data small { max-width: 26ch; margin: -5px 0 0; color: rgba(30, 39, 89, 0.75); font-size: 0.76rem; font-weight: 700; line-height: 1.35; }
.home-data--architecture { grid-column: span 2; grid-row: span 2; align-items: flex-start; justify-content: flex-end; gap: 0; min-height: 474px; padding: 0; border-radius: 32px 32px 54px 32px; color: #fffdf7; background: var(--home-ink); }
.home-data--architecture > img:first-child { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-data--architecture::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(18, 25, 61, 0.78)); }
.home-data--architecture figcaption { position: relative; z-index: 1; display: grid; gap: 7px; padding: 28px; }
.home-data--architecture figcaption span { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }
.home-data--architecture figcaption strong { font-size: clamp(1.1rem, 1.55vw, 1.55rem); letter-spacing: -0.035em; line-height: 1.08; }
.home-data--hero-number { grid-column: span 1; min-height: 230px; border-radius: 32px 32px 48px 32px; color: var(--home-ink); background: var(--home-green); }
.home-data--hero-number span,
.home-data--area > span,
.home-data--beds > span,
.home-data--surgery > span { font-family: var(--font-display); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.11em; text-transform: uppercase; }
.home-data--hero-number strong { color: var(--home-ink); }
.home-data--hero-number p { color: var(--home-green-deep); }
.home-data--beds { grid-column: span 1; min-height: 230px; border-radius: 48px 32px 32px; color: #7c3457; background: var(--home-pink); }
.home-data--beds strong { color: #7c3457; }
.home-data--beds p { color: #7c3457; }
.home-data--area { grid-column: span 1; min-height: 230px; border-radius: 32px 48px 32px; color: var(--home-ink); background: var(--home-teal); }
.home-data--area strong { color: #1d4d60; }
.home-data--area p { color: #295c73; }
.home-data--surgery { grid-column: span 1; min-height: 230px; border-radius: 32px 32px 48px 32px; color: var(--home-ink); background: var(--home-white); }
.home-data--surgery strong { color: var(--home-pink-deep); }

/* Melhorias previstas no projeto */
.home-improvements { position: relative; padding: 0 0 clamp(72px, 10vw, 138px); }
.home-improvements__surface { position: relative; isolation: isolate; }
.home-improvements__surface::before { content: ""; position: absolute; z-index: -1; top: 12%; right: -5%; width: min(29vw, 420px); height: min(23vw, 320px); border: 2px solid rgba(194, 170, 208, 0.56); border-radius: 53% 47% 57% 43% / 44% 58% 42% 56%; transform: rotate(-14deg); }
.home-improvements__surface::after { content: ""; position: absolute; z-index: -1; bottom: 2%; left: -7%; width: min(22vw, 330px); height: min(31vw, 440px); border-radius: 46% 54% 48% 52% / 62% 44% 56% 38%; background: rgba(233, 175, 199, 0.16); transform: rotate(18deg); }
.home-improvements__heading { display: grid; grid-template-columns: minmax(0, 0.94fr) minmax(290px, 0.86fr); align-items: end; gap: clamp(30px, 8vw, 126px); margin: 0 clamp(5px, 2vw, 28px) clamp(34px, 5vw, 56px); }
.home-improvements__heading h2 { max-width: 16ch; margin: 0; }
.home-improvements__heading p { max-width: 49ch; margin: 0; color: var(--home-text); font-size: clamp(1rem, 1.3vw, 1.16rem); font-weight: 700; line-height: 1.58; }
.home-improvements__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 13px; }
.home-improvement { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-height: 220px; padding: clamp(22px, 2.4vw, 34px); overflow: hidden; border-radius: 28px; color: var(--home-ink); box-shadow: 0 12px 28px rgba(44, 55, 127, 0.09); transition: transform 200ms var(--home-ease), box-shadow 200ms ease; }
.home-improvement:hover { z-index: 1; box-shadow: 0 20px 36px rgba(44, 55, 127, 0.15); transform: translateY(-5px) rotate(-0.25deg); }
.home-improvement h3 { position: relative; z-index: 1; max-width: 20ch; margin: 0; font-family: var(--font-display); font-size: clamp(1.45rem, 2.05vw, 2.2rem); font-weight: 800; letter-spacing: -0.045em; line-height: 0.98; }
.home-improvement p { position: relative; z-index: 1; max-width: 38ch; margin: auto 0 0; font-size: 0.95rem; font-weight: 700; line-height: 1.45; }
.home-improvement::after { position: absolute; right: -0.08em; bottom: -0.29em; color: currentColor; font-family: var(--font-display); font-size: clamp(5.8rem, 11vw, 10rem); font-weight: 800; letter-spacing: -0.11em; line-height: 0.78; opacity: 0.11; pointer-events: none; }
.home-improvement--arrival { display: grid; grid-column: span 7; grid-row: span 2; grid-template-columns: minmax(0, 0.66fr) minmax(200px, 0.34fr); min-height: 465px; color: var(--home-ink); background: linear-gradient(145deg, #bfe2ea, var(--home-teal)); }
.home-improvement--arrival::after { content: "CUIDAR"; color: #28728d; opacity: 0.1; }
.home-improvement__copy { position: relative; z-index: 1; display: flex; flex-direction: column; }
.home-improvement--arrival p { max-width: 28ch; color: #295d71; }
.home-improvement__characters { position: relative; min-height: 100%; }
.home-improvement__characters::before { content: ""; position: absolute; right: -15%; bottom: -5%; width: 130%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255, 249, 236, 0.92) 0%, rgba(255, 249, 236, 0.38) 35%, transparent 68%); }
.home-improvement__characters img { position: absolute; z-index: 1; display: block; width: auto; max-width: none; filter: drop-shadow(0 0 13px rgba(255, 249, 236, 0.86)) drop-shadow(0 13px 13px rgba(44, 55, 127, 0.17)); }
.home-improvement__nurse { right: -13%; bottom: -5%; height: 87%; }
.home-improvement__child { right: 28%; bottom: -5%; height: 56%; }
.home-improvement--diagnosis { grid-column: span 5; min-height: 226px; color: #1f5367; background: var(--home-paper); border: 2px solid var(--home-teal); }
.home-improvement--diagnosis::after { content: "EXAMES"; color: #28728d; }
.home-improvement--diagnosis p { color: #285a70; }
.home-improvement--complex { grid-column: span 5; min-height: 226px; color: var(--home-white); background: var(--home-ink); }
.home-improvement--complex::after { content: "UTI"; color: var(--home-green); opacity: 0.17; }
.home-improvement--complex p { color: rgba(255, 253, 247, 0.8); }
.home-improvement__stat { position: relative; z-index: 1; display: grid; gap: 8px; margin-bottom: 19px; }
.home-improvement__stat strong { color: currentColor; font-family: var(--font-display); font-size: clamp(3.25rem, 5vw, 5.3rem); font-weight: 800; letter-spacing: -0.1em; line-height: 0.72; }
.home-improvement__stat span { max-width: 17ch; font-family: var(--font-display); font-size: 0.85rem; font-weight: 800; letter-spacing: -0.015em; line-height: 1.05; }
.home-improvement--complex .home-improvement__stat strong { color: var(--home-green); }
.home-improvement--family { display: grid; grid-column: span 6; grid-template-columns: minmax(0, 0.68fr) minmax(170px, 0.32fr); min-height: 265px; color: #7c3457; background: var(--home-pink); }
.home-improvement--family::after { content: "PERTO"; color: #7c3457; }
.home-improvement--family p { max-width: 31ch; color: #7c3457; }
.home-improvement__mother { position: absolute; right: -8%; bottom: -10%; z-index: 1; height: 93%; width: auto; max-width: none; filter: drop-shadow(0 0 14px rgba(255, 249, 236, 0.84)) drop-shadow(0 12px 12px rgba(124, 52, 87, 0.18)); }
.home-improvement--teaching { grid-column: span 6; min-height: 265px; color: var(--home-ink); background: var(--home-lilac); }
.home-improvement--teaching::after { content: "ENSINO"; color: var(--home-lilac-deep); }
.home-improvement--teaching p { max-width: 33ch; color: #5e5279; }
.home-improvement--teaching .home-improvement__stat strong { color: var(--home-lilac-deep); }

/* Hospital-escola */
.home-school { padding: clamp(68px, 10vw, 140px) 0; background: var(--home-white); }
.home-school__heading { display: grid; gap: 17px; max-width: 880px; margin-bottom: clamp(30px, 5vw, 54px); }
.home-school__heading h2 { max-width: 20ch; margin: 0; }
.home-school__heading p { max-width: 62ch; margin: 0; color: var(--home-text); font-size: clamp(1rem, 1.4vw, 1.16rem); font-weight: 700; line-height: 1.6; }
.home-unique-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.home-unique-card { position: relative; isolation: isolate; display: grid; align-content: start; min-height: 264px; overflow: hidden; padding: clamp(22px, 3vw, 32px); border-radius: 28px; color: var(--home-ink); transition: transform 220ms var(--home-ease), box-shadow 220ms ease; }
.home-unique-card::after { content: attr(data-mark); position: absolute; z-index: -1; right: -0.06em; bottom: -0.22em; color: currentColor; font-family: var(--font-display); font-size: clamp(3.8rem, 8vw, 7.5rem); font-weight: 800; letter-spacing: -0.1em; line-height: 0.75; opacity: 0.1; pointer-events: none; }
.home-unique-card:hover { transform: translateY(-5px) rotate(-0.35deg); box-shadow: 0 18px 38px rgba(44, 55, 127, 0.14); }
.home-unique-card > span { position: relative; z-index: 1; color: currentColor; font-family: var(--font-display); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.11em; text-transform: uppercase; }
.home-unique-card strong { position: relative; z-index: 1; max-width: 18ch; margin-top: 24px; color: currentColor; font-family: var(--font-display); font-size: clamp(1.35rem, 2vw, 1.9rem); font-weight: 800; letter-spacing: -0.04em; line-height: 1.02; }
.home-unique-card p { position: relative; z-index: 1; max-width: 38ch; margin: 13px 0 0; color: currentColor; font-size: 0.9rem; font-weight: 700; line-height: 1.48; opacity: 0.8; }
.home-unique-card--sus { grid-column: span 7; color: #fffdf7; background: var(--home-ink); }
.home-unique-card--sus > span { color: var(--home-green); }
.home-unique-card--family { grid-column: span 5; background: var(--home-green); }
.home-unique-card--school { grid-column: span 5; background: var(--home-pink); }
.home-unique-card--legacy { grid-column: span 7; color: var(--home-ink); background: var(--home-teal); }

/* Formas de ajudar */
.home-help__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.home-help-card { position: relative; isolation: isolate; display: grid; align-content: start; min-height: 300px; overflow: hidden; padding: 22px; border-radius: 24px; color: var(--home-ink); text-decoration: none; transition: transform 220ms var(--home-ease), box-shadow 220ms ease; }
.home-help-card::before { content: ""; position: absolute; z-index: 0; right: -42%; bottom: -56%; width: 118%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 48% 46%, var(--home-portrait-glow) 0, var(--home-portrait-glow-soft) 29%, rgba(255, 249, 236, 0.22) 49%, transparent 71%); opacity: 0.42; pointer-events: none; transform: scale(0.82); transition: opacity 240ms ease, transform 320ms var(--home-ease); }
.home-help-card:hover { transform: translateY(-6px) rotate(-0.5deg); box-shadow: 0 18px 38px rgba(44, 55, 127, 0.16); }
.home-help-card:hover::before { opacity: 0.92; transform: scale(1); }
.home-help-card:nth-child(1) { background: var(--home-pink); }
.home-help-card:nth-child(2) { background: var(--home-lilac); }
.home-help-card:nth-child(3) { background: var(--home-green); }
.home-help-card:nth-child(4) { background: var(--home-teal); }
.home-help-card strong { position: relative; z-index: 2; max-width: 8ch; margin-top: 25px; color: var(--home-ink); font-family: var(--font-display); font-size: 1.5rem; font-weight: 800; letter-spacing: -0.04em; line-height: 0.98; }
.home-help-card p { position: relative; z-index: 2; max-width: 20ch; margin: 12px 0 0; color: rgba(30, 39, 89, 0.83); font-size: 0.88rem; font-weight: 700; line-height: 1.45; }
.home-help-card b { position: absolute; z-index: 2; bottom: 22px; left: 22px; color: #fffdf7; background: rgba(44, 55, 127, 0.72); padding: 9px 13px; border-radius: 999px; font-family: var(--font-display); font-size: 0.85rem; }
.home-help-card img { position: absolute; z-index: 1; right: -11px; bottom: 6px; width: 47%; filter: brightness(1.03) drop-shadow(0 0 10px var(--home-portrait-glow-soft)) drop-shadow(0 12px 12px rgba(44, 55, 127, 0.18)); transition: filter 220ms ease; }
.home-help-card:hover img { filter: brightness(1.1) drop-shadow(0 0 16px var(--home-portrait-glow)) drop-shadow(0 0 34px var(--home-portrait-glow-soft)) drop-shadow(0 12px 12px rgba(44, 55, 127, 0.2)); }

/* Parceiros */
.home-partners { padding: clamp(58px, 8vw, 104px) 0; background: var(--home-white); }
.home-partners__heading { display: grid; gap: 12px; margin-bottom: clamp(30px, 5vw, 52px); }
.home-partners__heading h2 { margin: 0; }
.home-partners__hierarchy { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(18px, 3vw, 38px); row-gap: 0; }
.home-partner-tier { display: grid; grid-column: span 12; grid-template-columns: minmax(205px, 0.42fr) minmax(0, 1.58fr); align-items: center; gap: clamp(24px, 4vw, 62px); padding: clamp(25px, 3vw, 38px) 0; border-top: 1px solid #dedbd4; }
.home-partner-tier__label { display: flex; align-items: baseline; gap: 18px; }
.home-partner-tier__label h3 { margin: 0; color: var(--home-ink); font-family: var(--font-display); font-size: clamp(1.08rem, 1.45vw, 1.35rem); font-weight: 800; letter-spacing: -0.04em; line-height: 1; white-space: nowrap; }
.home-partner-logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.home-partner-logos li { display: grid; min-height: 78px; padding: 12px; place-items: center; }
.home-partner-logos img { display: block; width: auto; max-width: 100%; height: 54px; max-height: none; filter: grayscale(1) contrast(0.92); object-fit: contain; opacity: 0.78; }
.home-partner-logo__wordmark { max-width: 17ch; color: #6a6c6a; font-family: var(--font-display); font-size: clamp(1rem, 1.35vw, 1.25rem); font-weight: 800; letter-spacing: 0.015em; line-height: 1.05; text-align: center; }
.home-partner-logo__wordmark--long { font-size: clamp(0.82rem, 1.05vw, 1rem); line-height: 1.14; }
.home-partner-tier--realizacao { padding-top: 0; border-top: 0; }
.home-partner-tier--realizacao .home-partner-tier__label h3 { font-size: clamp(1.48rem, 2.2vw, 2.15rem); }
.home-partner-tier--realizacao .home-partner-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-partner-tier--realizacao .home-partner-logos li { min-height: 126px; }
.home-partner-tier--realizacao .home-partner-logos img { height: 90px; max-width: 100%; }
.home-partner-tier--realizacao .home-partner-logo__wordmark { font-size: clamp(1.2rem, 1.8vw, 1.7rem); }
.home-partner-tier--realizacao .home-partner-logo__wordmark--long { font-size: clamp(0.9rem, 1.25vw, 1.18rem); }
.home-partner-tier--fundadores .home-partner-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-partner-tier--fundadores .home-partner-logos li { min-height: 102px; }
.home-partner-tier--fundadores .home-partner-logos img { height: 62px; }
.home-partner-tier--midia,
.home-partner-tier--causa { grid-column: span 12; }
.home-partner-tier--midia .home-partner-tier__label h3,
.home-partner-tier--causa .home-partner-tier__label h3 { font-size: clamp(0.94rem, 1.1vw, 1.08rem); }
.home-partner-tier--midia .home-partner-logos { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.home-partner-tier--causa .home-partner-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 22px; }
.home-partner-tier--midia .home-partner-logos li { min-height: 76px; padding: 8px; }
.home-partner-tier--midia .home-partner-logos img { height: 44px; }
.home-partner-tier--causa .home-partner-logos li { min-height: 88px; padding: 9px; }
.home-partner-tier--causa .home-partner-logos img { height: 52px; }

/* Notícias */
/* mesmo fundo do manifesto, que agora vem logo acima — os dois emendam
   com a faixa de parceiros e viram um bloco claro só */
.home-news { padding: clamp(64px, 9vw, 122px) 0; background: var(--home-white); }
.home-news__heading { display: block; margin-bottom: clamp(30px, 4vw, 46px); }
.home-news__heading h2 { max-width: 23ch; }
.home-text-link { align-self: end; color: var(--home-pink-deep); font-family: var(--font-display); font-weight: 800; text-decoration: none; }
.home-text-link:hover { color: var(--home-ink); }
.home-news__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }
.home-news-card { display: grid; align-content: start; gap: 10px; padding: 11px; border: 1px solid rgba(44, 55, 127, 0.09); border-radius: 24px; color: var(--home-text); background: var(--home-white); box-shadow: 0 8px 22px rgba(44, 55, 127, 0.05); text-decoration: none; transition: transform 200ms var(--home-ease), box-shadow 200ms ease; }
.home-news-card:hover { transform: translateY(-5px); box-shadow: var(--home-shadow); }
.home-news-card__media { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 16px; }
.home-news-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 350ms var(--home-ease); }
.home-news-card:hover .home-news-card__media img { transform: scale(1.04); }
.home-news-card__media span { position: absolute; top: 10px; left: 10px; padding: 6px 10px; border-radius: 999px; color: var(--home-pink-deep); background: rgba(255, 253, 247, 0.9); font-family: var(--font-display); font-size: 0.69rem; font-weight: 800; }
.home-news-card time { padding: 6px 8px 0; color: var(--home-muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.home-news-card h3 { margin: 0; padding: 0 8px; color: var(--home-ink); font-family: var(--font-display); font-size: 1.16rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.13; }
.home-news-card p { margin: 0; padding: 0 8px 10px; font-size: 0.87rem; line-height: 1.5; }
.home-news__cta { display: flex; justify-content: center; margin-top: clamp(24px, 4vw, 40px); }
.home-news__cta .home-text-link { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border: 1.5px solid rgba(182, 91, 132, 0.42); border-radius: 999px; background: rgba(255, 253, 247, 0.7); }
.home-news__cta .home-text-link:hover { color: #fffdf7; background: var(--home-pink-deep); }

/* Conversão final */
.home-final { position: relative; overflow: hidden; padding: clamp(56px, 8vw, 100px) 0; color: rgba(255, 253, 247, 0.84); background: var(--home-ink); }
.home-final::before { content: ""; position: absolute; right: -6%; bottom: -75%; width: min(58vw, 720px); aspect-ratio: 1; border: 4px solid rgba(255, 253, 247, 0.11); border-radius: 50%; box-shadow: 0 0 0 52px rgba(255, 253, 247, 0.035), 0 0 0 104px rgba(255, 253, 247, 0.025); }
.home-final__inner { position: relative; z-index: 1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(22px, 4vw, 65px); }
.home-final__face { width: clamp(96px, 12vw, 158px); height: clamp(96px, 12vw, 158px); border: 4px solid rgba(255, 253, 247, 0.85); border-radius: 50%; object-fit: cover; background: var(--home-pink); transform: rotate(-8deg); }
.home-final h2 { max-width: 18ch; color: #fffdf7; }
.home-final h2 + p { max-width: 50ch; margin: 16px 0 0; line-height: 1.65; }
.home-final__actions { display: grid; gap: 10px; justify-items: stretch; }
.home-final__actions .home-button { white-space: nowrap; }

/* Footer */
.home-redesign .site-footer { margin-top: 0; border-radius: 0; background: var(--home-ink-deep); }
.home-redesign .site-footer::before { height: 6px; background: linear-gradient(90deg, var(--home-pink), var(--home-peach) 24%, var(--home-green) 54%, var(--home-teal) 76%, var(--home-lilac)); }
.home-redesign .footer-brand img { filter: none; opacity: 1; }
.home-redesign .footer-stamp { color: var(--home-ink); background: var(--home-lilac); }

/* Entrada em scroll */
/* Esconder para revelar depois só vale se o revelador rodar. A classe js-ok
   é escrita pelo próprio site.js, na primeira linha: se o arquivo não carregar
   ou quebrar antes disso, nada fica escondido e a página aparece inteira, sem
   animação. Antes, um erro em qualquer ponto acima do bloco de reveal apagava
   seções inteiras de forma permanente e silenciosa. */
html.js-ok .home-redesign [data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity 640ms ease, transform 640ms var(--home-ease); }
html.js-ok .home-redesign [data-reveal].is-revealed { opacity: 1; transform: none; }

@media (max-width: 1120px) {
  .home-redesign .site-nav a { padding-inline: 8px; font-size: 0.78rem; }
  .home-hero__grid { grid-template-columns: minmax(0, 0.95fr) minmax(380px, 1.05fr); gap: 34px; }
  .home-data--architecture { grid-column: span 2; }
  .home-data--hero-number { grid-column: span 1; }
  .home-data--beds,
  .home-data--area,
  .home-data--surgery { grid-column: span 1; }
  .home-help-card strong { font-size: 1.32rem; }
}

@media (max-width: 920px) {
  .home-redesign .site-header { min-height: 68px; gap: 12px; padding: 10px 18px; }
  .home-redesign .brand { order: 2; margin-right: auto; }
  .home-redesign .brand img { height: 33px; }
  .home-redesign .header-donate { order: 3; padding: 10px 14px; font-size: 0.8rem; }
  .home-redesign .menu-toggle { order: 1; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 40px; height: 40px; padding: 0; border: 1px solid var(--home-line); border-radius: 50%; background: rgba(255, 253, 247, 0.75); }
  .home-redesign .menu-toggle span { display: block; width: 17px; height: 2px; margin: 0; border-radius: 999px; background: var(--home-ink); transition: transform 180ms var(--home-ease), opacity 180ms ease; }
  .home-redesign .site-header.nav-open .menu-toggle span:first-child { transform: translateY(6px) rotate(45deg); }
  .home-redesign .site-header.nav-open .menu-toggle span:nth-child(2) { opacity: 0; transform: scaleX(0.55); }
  .home-redesign .site-header.nav-open .menu-toggle span:last-child { transform: translateY(-6px) rotate(-45deg); }
  .home-redesign .site-nav { position: absolute; top: calc(100% + 8px); right: 16px; left: 16px; display: none; order: 4; padding: 8px 18px; border: 1px solid var(--home-line); border-radius: 18px; background: rgba(255, 253, 247, 0.97); box-shadow: var(--home-shadow); }
  .home-redesign .site-header.nav-open .site-nav { display: grid; grid-template-columns: 1fr; }
  .home-redesign .site-nav a { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 12px 2px; border-radius: 0; border-bottom: 1px solid rgba(44, 55, 127, 0.1); font-size: 0.96rem; }
  .home-redesign .site-nav a::after { content: "→"; color: var(--home-pink-deep); font-size: 1.1rem; line-height: 1; }
  .home-redesign .site-nav a:last-child { border-bottom: 0; }
  .home-redesign .site-nav a:hover { background: transparent; transform: none; }
  .home-hero__grid,
  .home-manifesto__grid { grid-template-columns: 1fr; }
  .home-hero__copy { max-width: 640px; }
  .home-hero__visual { width: min(100%, 680px); min-height: 460px; margin-inline: auto; }
  .home-manifesto__copy h2 { max-width: 16ch; }
  .home-school__heading h2 { max-width: 19ch; }
  .home-complexity h2 { max-width: 14ch; }
  .home-section-heading { grid-template-columns: 1fr; gap: 15px; }
  .home-section-heading h2 { max-width: 20ch; }
  .home-project__cta { align-items: flex-start; flex-direction: column; }
  .home-data-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-data--architecture { grid-column: span 2; grid-row: auto; }
  .home-data--hero-number { grid-column: span 1; }
  .home-data--beds,
  .home-data--area,
  .home-data--surgery { grid-column: span 1; }
  .home-improvements__heading { grid-template-columns: minmax(0, 1fr) minmax(270px, 0.82fr); gap: 36px; }
  .home-improvement--arrival { grid-column: span 6; grid-row: span 2; grid-template-columns: minmax(0, 0.62fr) minmax(180px, 0.38fr); }
  .home-improvement--diagnosis,
  .home-improvement--complex { grid-column: span 6; }
  .home-improvement--family,
  .home-improvement--teaching { grid-column: span 6; }
  .home-help__grid { grid-template-columns: repeat(2, 1fr); }
  .home-partner-tier--midia,
  .home-partner-tier--causa { grid-column: span 12; grid-template-columns: minmax(180px, 0.55fr) minmax(0, 1.45fr); }
  .home-partner-tier--fundadores .home-partner-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-partner-tier--midia .home-partner-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-partner-tier--causa .home-partner-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-news__grid { grid-template-columns: repeat(2, 1fr); }
  .home-news-card:last-child { grid-column: span 2; }
  .home-final__inner { grid-template-columns: auto minmax(0, 1fr); }
  .home-final__actions { grid-column: 2; justify-items: start; grid-auto-flow: column; }
}

@media (max-width: 620px) {
  .home-shell { width: min(100% - 40px, 1280px); }
  .home-redesign .header-donate svg { display: none; }
  .home-redesign .header-donate { min-height: 39px; padding-inline: 13px; }
  .home-hero { padding-top: 20px; }
  .home-hero h1 { font-size: clamp(3.25rem, 14vw, 4.25rem); }
  .home-hero__lead { font-size: 0.98rem; }
  .home-hero__actions,
  .home-hero__actions .home-button { width: 100%; }
  .home-hero__visual { min-height: 330px; }
  .home-hero__support { margin-top: 0; }
  .home-hero__support .home-help__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .home-hero__support .home-help-card { min-height: 244px; padding: 14px; }
  .home-hero__support .home-help-card strong { max-width: 11ch; margin-top: 0; font-size: 1.16rem; }
  .home-hero__support .home-help-card p { display: block; max-width: 14ch; margin-top: 8px; font-size: 0.76rem; line-height: 1.35; }
  .home-hero__support .home-help-card b { bottom: 13px; left: 13px; font-size: 0.66rem; }
  .home-hero__support .home-help-card img { right: -10px; bottom: -12px; width: 66%; }
  .home-video { padding: 9px; border-radius: 22px; }
  .home-video__frame { border-width: 2px; border-radius: 15px; }
  .home-complexity { padding-block: 70px; }
  .home-complexity h2 { max-width: 13.5ch; }
  .home-data-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .home-data { min-height: 164px; padding: 17px; border-radius: 19px; }
  .home-data--architecture { grid-column: span 2; }
  .home-data--hero-number,
  .home-data--beds { grid-column: span 1; }
  .home-data--architecture { min-height: 275px; }
  .home-data--area,
  .home-data--surgery { grid-column: span 1; min-height: 196px; }
  .home-improvements { padding-bottom: 70px; }
  .home-improvements__heading { grid-template-columns: 1fr; gap: 16px; margin: 0 0 28px; }
  .home-improvements__heading h2 { max-width: 15ch; }
  .home-improvements__grid { grid-template-columns: 1fr; gap: 9px; }
  .home-improvement,
  .home-improvement--arrival,
  .home-improvement--diagnosis,
  .home-improvement--complex,
  .home-improvement--family,
  .home-improvement--teaching { grid-column: auto; grid-row: auto; min-height: 218px; padding: 21px; }
  .home-improvement--arrival { grid-template-columns: minmax(0, 0.66fr) minmax(132px, 0.34fr); min-height: 330px; }
  .home-improvement--family { grid-template-columns: minmax(0, 0.67fr) minmax(125px, 0.33fr); min-height: 260px; }
  .home-improvement h3 { max-width: 19ch; font-size: clamp(1.45rem, 7vw, 1.95rem); }
  .home-improvement p { font-size: 0.88rem; }
  .home-improvement__nurse { right: -20%; height: 82%; }
  .home-improvement__child { right: 23%; height: 48%; }
  .home-improvement__mother { right: -16%; height: 84%; }
  .home-data strong { font-size: clamp(2.75rem, 13vw, 4rem); }

  .home-data p { font-size: 0.88rem; }
  .home-data small { display: none; }
  .home-unique-grid { grid-template-columns: 1fr; }
  .home-unique-card,
  .home-unique-card--sus,
  .home-unique-card--family,
  .home-unique-card--school,
  .home-unique-card--legacy { grid-column: auto; min-height: 218px; }
  .home-unique-card strong { max-width: 21ch; font-size: clamp(1.45rem, 7vw, 1.9rem); }
  .home-news__grid { grid-template-columns: 1fr; }
  .home-news-card:last-child { grid-column: auto; }
  .home-help-card { min-height: 255px; }
  .home-help-card img { width: 35%; }
  .home-partners__heading { gap: 12px; }
  .home-partner-tier,
  .home-partner-tier--midia,
  .home-partner-tier--causa { grid-column: span 12; grid-template-columns: 1fr; gap: 13px; }
  .home-partner-tier__label { align-items: flex-start; flex-direction: column; gap: 6px; }
  .home-partner-tier__label span { text-align: left; }
  .home-partner-tier--fundadores .home-partner-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-partner-tier--realizacao .home-partner-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-partner-tier--realizacao .home-partner-logos li { min-height: 92px; padding: 8px; }
  .home-partner-tier--realizacao .home-partner-logos img { height: 64px; }
  .home-partner-tier--midia .home-partner-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-partner-tier--causa .home-partner-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-partner-tier--realizacao { padding: 0; }
  .home-partner-tier--realizacao h3 { font-size: 1.55rem; }
  /* Mantém o mesmo ritmo vertical entre categorias e seus divisores. */
  .home-partner-tier--midia,
  .home-partner-tier--causa { padding: clamp(25px, 3vw, 38px) 0; }
  .home-final__inner { grid-template-columns: 1fr; }
  .home-final__face { width: 92px; height: 92px; }
  .home-final__actions { grid-column: auto; grid-auto-flow: row; justify-items: stretch; }
  .home-final__actions .home-button { width: 100%; }
  /* Uma coluna só empilhava marca, "Navegue" e "Faça parte" numa fila de
     três, e o rodapé virava uma rolagem inteira de links. A marca continua
     na largura toda, mas as duas listas dividem a linha — são curtas e cabem
     lado a lado mesmo em tela estreita. */
  .home-redesign .site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-redesign .site-footer__inner .footer-brand { grid-column: 1 / -1; }
}

/* =========================================================
   Reorganização narrativa: projeto, necessidade, expertise e apoio.
   Cada bloco usa uma composição contínua, sem cartões decorativos soltos.
   ========================================================= */

/* O projeto: capacidade e melhorias fazem parte da mesma história. */
.home-project,
.home-improvements { background: #c8b1d4; }

.home-project { padding: clamp(68px, 9vw, 124px) 0 clamp(32px, 4vw, 54px); }
.home-project::before,
.home-project::after,
.home-improvements__surface::before,
.home-improvements__surface::after { content: none; }

.home-project .home-section-heading { max-width: 880px; margin-inline: auto; margin-bottom: clamp(34px, 5vw, 58px); text-align: center; }
.home-project .home-section-heading h2 { max-width: 22ch; margin-inline: auto; color: var(--home-ink-deep); text-wrap: balance; }
.home-project .home-section-heading > p { max-width: 60ch; margin-inline: auto; color: #514671; }
.home-data-grid { grid-auto-rows: minmax(212px, auto); gap: clamp(12px, 1.25vw, 20px); }
.home-data { min-height: 212px; gap: 7px; padding: clamp(22px, 2vw, 31px); box-shadow: 0 13px 26px rgba(60, 42, 88, 0.13); }
.home-data strong { margin: 4px 0 0; font-size: clamp(3rem, 4vw, 4.55rem); }

/* "+15 mil m²" é o único valor longo do conjunto. Sem espaço rígido ele
   quebrava com o "m²" sozinho numa linha, parecendo outro número; com o
   espaço rígido passou a transbordar o card de 170px. Um corpo menor só
   neste resolve os dois — e a regra fica AQUI, depois da de cima, porque
   as duas têm a mesma especificidade e quem vem depois vence. */
.home-data--area strong { font-size: clamp(1.9rem, 8.6vw, 3.4rem); }
.home-data p { max-width: 15ch; }
.home-data--architecture { min-height: 444px; border: 0; box-shadow: 0 18px 32px rgba(60, 42, 88, 0.2); }
.home-data--architecture figcaption { padding: clamp(22px, 2.2vw, 30px); }
.home-data--hero-number,
.home-data--beds,
.home-data--area,
.home-data--surgery { min-height: 212px; border: 0; }
.home-data--surgery { background: #f9f1e4; }
.home-project__cta { gap: 16px; margin-top: clamp(30px, 4vw, 46px); }
.home-project__cta p { max-width: 43ch; color: var(--home-ink-deep); }

.home-improvements { padding: clamp(26px, 4vw, 54px) 0 clamp(74px, 9vw, 122px); }
.home-improvements__heading { grid-template-columns: minmax(0, 0.95fr) minmax(280px, 0.78fr); gap: clamp(28px, 6vw, 92px); margin: 0 0 clamp(30px, 4vw, 48px); padding-top: clamp(30px, 4vw, 52px); border-top: 1px solid rgba(44, 55, 127, 0.24); }
.home-improvements__heading h2 { max-width: 15ch; color: var(--home-ink-deep); }
.home-improvements__heading p { color: #514671; }
.home-improvements__grid { gap: clamp(11px, 1.1vw, 16px); }
.home-improvement { min-height: 218px; border: 0; border-radius: 26px 26px 42px 26px; box-shadow: 0 12px 24px rgba(60, 42, 88, 0.12); }
.home-improvement::after { content: none; }
.home-improvement__label { position: relative; z-index: 2; display: inline-flex; margin-bottom: 17px; padding: 6px 10px; border: 1.5px solid currentColor; border-radius: 999px; color: currentColor; font-family: var(--font-display); font-size: 0.69rem; font-weight: 800; letter-spacing: 0.075em; line-height: 1; text-transform: uppercase; }
.home-improvement h3 { max-width: 18ch; }
.home-improvement--arrival { min-height: 430px; border-radius: 38px 26px 56px 26px; }
.home-improvement--diagnosis { background: #f9f1e4; border: 0; }
.home-improvement--complex { background: var(--home-ink-deep); }
.home-improvement--family { min-height: 250px; }
.home-improvement--teaching { min-height: 250px; border-radius: 26px 38px 26px 56px; }
.home-improvement__stat { gap: 5px; margin-bottom: 15px; }

/* Por que o Paraná precisa: argumentos lidos como um único percurso. */
.home-complexity { padding: clamp(76px, 10vw, 136px) 0; background: var(--home-ink); }
.home-complexity::before,
.home-complexity::after { content: none; }
.home-complexity h2 { max-width: 16ch; color: var(--home-white); }

/* Participação: as mesmas cores e personagens, agora como uma decisão clara. */
.home-participate { padding: clamp(74px, 10vw, 132px) 0; background: var(--home-white); }
.home-participate__heading { display: grid; grid-template-columns: minmax(0, 0.86fr) minmax(280px, 0.64fr); align-items: end; gap: clamp(28px, 7vw, 100px); margin-bottom: clamp(32px, 5vw, 54px); }
.home-participate__heading h2 { max-width: 13ch; }
.home-participate__heading p { max-width: 43ch; margin: 0; color: var(--home-text); font-size: clamp(1rem, 1.25vw, 1.14rem); font-weight: 700; line-height: 1.6; }
.home-participate .home-help__grid { gap: clamp(10px, 1.2vw, 16px); }
.home-participate .home-help-card { min-height: 282px; border-radius: 24px 24px 40px 24px; box-shadow: none; }
.home-participate .home-help-card:nth-child(2) { border-radius: 40px 24px 24px; }
.home-participate .home-help-card:nth-child(3) { border-radius: 24px 40px 24px 24px; }
.home-participate .home-help-card:nth-child(4) { border-radius: 24px 24px 24px 40px; }

@media (max-width: 920px) {
  .home-improvements__heading,
  .home-participate__heading { grid-template-columns: 1fr; gap: 16px; }
  .home-participate .home-help__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .home-project { padding-top: 68px; padding-bottom: 26px; }
  .home-project .home-section-heading { margin-bottom: 30px; text-align: left; }
  .home-project .home-section-heading h2,
  .home-project .home-section-heading > p { margin-left: 0; }
  .home-data-grid { gap: 10px; }
  .home-data { min-height: 160px; gap: 5px; padding: 17px; }
  .home-data--architecture { min-height: 280px; }
  .home-data--hero-number,
  .home-data--beds,
  .home-data--area,
  .home-data--surgery { min-height: 170px; }
  .home-project__cta { margin-top: 28px; }
  .home-improvements { padding-bottom: 70px; }
  .home-improvements__heading { margin-bottom: 28px; padding-top: 31px; }
  .home-improvement--arrival { min-height: 330px; }
  .home-improvement--family,
  .home-improvement--teaching { min-height: 246px; }
  .home-improvement__label { margin-bottom: 13px; font-size: 0.62rem; }
  .home-complexity { padding-block: 72px; }
  .home-complexity h2 { max-width: 14ch; }
  .home-participate { padding-block: 70px; }
  .home-participate__heading { margin-bottom: 28px; }
  .home-participate .home-help__grid { gap: 9px; }
  .home-participate .home-help-card { min-height: 228px; padding: 14px; }
  .home-participate .home-help-card strong { margin-top: 0; font-size: 1.13rem; }
  .home-participate .home-help-card p { max-width: 14ch; margin-top: 8px; font-size: 0.75rem; line-height: 1.36; }
  .home-participate .home-help-card b { bottom: 13px; left: 13px; font-size: 0.66rem; }
  .home-participate .home-help-card img { right: -7px; bottom: -7px; width: 56%; }
}

/* CTA final: gesto de cuidado, em uma cena oficial da marca.
   Encosta no rodapé — o verde corre até a borda e entra direto no azul, sem a
   faixa creme que separava os dois. */
.home-final { padding: 0; color: var(--home-ink); background: transparent; }
.home-final::before { content: none; }
.home-final__inner { --home-final-scene: #b6deb6; position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 1.06fr); align-items: stretch; gap: clamp(22px, 3.4vw, 54px); min-height: clamp(300px, 25vw, 400px); overflow: hidden; background: var(--home-final-scene); }

/* largura cheia: recolhe o limite do .home-shell e devolve o respiro como
   padding interno, para o texto continuar alinhado com o resto da página */
.home-final .home-shell {
  width: 100%;
  max-width: none;
  padding: clamp(34px, 4.6vw, 70px) max(clamp(24px, 4vw, 72px), calc(50% - 640px + clamp(24px, 4vw, 72px)));
  border-radius: 0;
  box-shadow: none;
}
.home-final__inner::before { content: ""; position: absolute; z-index: 0; top: 0; right: 0; left: 0; height: 6px; background: linear-gradient(90deg, var(--home-pink), var(--home-peach) 28%, var(--home-green) 54%, var(--home-teal) 76%, var(--home-lilac)); }
.home-final__copy { position: relative; z-index: 1; grid-column: 1; grid-row: 1; align-self: end; }
.home-final h2 { max-width: 15ch; color: var(--home-ink-deep); font-size: clamp(2.2rem, 3.55vw, 4.15rem); line-height: 0.98; }
.home-final h2 + p { max-width: 43ch; margin: 18px 0 0; color: #315f42; font-weight: 800; line-height: 1.55; }
.home-final__actions { position: relative; z-index: 1; grid-column: 1; grid-row: 2; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 27px; }
.home-final__actions .home-button { min-width: 0; padding-inline: 22px; white-space: nowrap; }
.home-final__actions .home-button--light { border: 1.5px solid rgba(44, 55, 127, 0.22); color: var(--home-ink); background: var(--home-paper); box-shadow: none; }
/* A arte é 16:9. Num box mais alto que largo ela ficava contida no meio, com
   uma faixa de verde vazio em cima e embaixo — o box passa a ter a proporção
   dela, então a ilustração ocupa tudo sem precisar cortar nada. */
.home-final__signature { position: relative; z-index: 1; grid-column: 2; grid-row: 1 / span 2; align-self: center; aspect-ratio: 1672 / 941; min-height: 0; overflow: hidden; border-radius: 28px 28px 52px 28px; background: var(--home-final-scene); }
.home-final__scene { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.home-final__actions .home-button--light { border: 1.5px solid rgba(44, 55, 127, 0.24); color: var(--home-ink); background: rgba(255, 253, 247, 0.88); box-shadow: none; }

@media (max-width: 920px) {
  .home-final__inner { grid-template-columns: minmax(0, 1fr) minmax(260px, 0.78fr); gap: 30px; min-height: 344px; }
  .home-final h2 { font-size: clamp(2.1rem, 4.6vw, 3.45rem); }
  .home-final__actions { grid-column: 1; grid-row: 2; grid-auto-flow: initial; justify-items: initial; }
  .home-final__signature { min-height: 0; }
}

@media (max-width: 620px) {
  .home-final__inner { grid-template-columns: 1fr; gap: 24px; min-height: 0; }
  .home-final .home-shell { padding: 34px 20px 26px; }
  .home-final__copy,
  .home-final__actions,
  .home-final__signature { grid-column: auto; grid-row: auto; }
  .home-final h2 { max-width: 14ch; font-size: clamp(2.05rem, 10.7vw, 3.1rem); }
  .home-final h2 + p { margin-top: 12px; font-size: 0.93rem; }
  .home-final__actions { display: grid; margin-top: 22px; }
  .home-final__actions .home-button { width: 100%; }
  .home-final__signature { min-height: 206px; border-radius: 20px 20px 34px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-redesign *,
  .home-redesign *::before,
  .home-redesign *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

/* Pioneirismo: a apresentação não acompanha mais a altura da grade em telas médias. */
@media (max-width: 920px) {
}

/* Alta complexidade: título e apoio próximos, sem prolongar a entrada da seção. */
@media (min-width: 921px) {

  .home-complexity h2 {
    max-width: 16.5ch;
  }
}

/* Ações de apoio: a decisão de participar aparece junto do argumento que a motiva. */
.home-manifesto__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 20px;
  margin-top: 4px;
}

.home-inline-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  color: var(--home-pink-deep);
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 800;
  text-decoration: none;
}

.home-inline-link span {
  font-size: 1.18rem;
  line-height: 1;
  transition: transform 180ms var(--home-ease);
}

.home-inline-link:hover span { transform: translateX(4px); }

.home-inline-link--light { color: var(--home-ink); }

@media (max-width: 620px) {
  .home-manifesto__actions { align-items: stretch; }
  .home-manifesto__actions .home-button { width: 100%; }
  .home-manifesto__actions .home-inline-link { min-height: 30px; }
}

/* Parceria institucional: uma porta de entrada ESG integrada aos parceiros. */
.home-partners__heading {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: clamp(22px, 4vw, 58px);
}

.home-partners__heading > div { display: grid; gap: 14px; }
.home-partners__heading h2 { max-width: 18ch; }
.home-partners__heading p { max-width: 52ch; margin: 0; color: var(--home-text); font-size: clamp(0.96rem, 1.2vw, 1.08rem); font-weight: 700; line-height: 1.55; }
.home-button--partners { align-self: end; min-height: 56px; padding-inline: 25px; color: #fffdf7; background: var(--home-ink); box-shadow: 0 14px 28px rgba(44, 55, 127, 0.2); white-space: nowrap; }
.home-button--partners:hover { color: var(--home-ink); background: var(--home-green); }

.home-partnership-modal { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: clamp(16px, 4vw, 50px); }
.home-partnership-modal[hidden] { display: none; }
.home-partnership-modal__backdrop { position: absolute; inset: 0; background: rgba(18, 26, 75, 0.72); backdrop-filter: blur(8px); animation: partnership-fade 180ms ease both; }
.home-partnership-modal__dialog { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(280px, 0.86fr) minmax(0, 1.14fr); width: min(100%, 1050px); max-height: min(760px, calc(100vh - 32px)); overflow: auto; border: 1px solid rgba(255, 253, 247, 0.7); border-radius: 34px 34px 56px 34px; color: var(--home-ink); background: #fffdf7; box-shadow: 0 28px 70px rgba(9, 15, 56, 0.38); animation: partnership-rise 260ms var(--home-ease) both; }
.home-partnership-modal__dialog::before { content: ""; position: absolute; z-index: -1; top: -29%; left: -23%; width: 78%; aspect-ratio: 1; border: 2px solid rgba(255, 253, 247, 0.48); border-radius: 48% 52% 44% 56% / 55% 45% 55% 45%; box-shadow: 0 0 0 46px rgba(255, 253, 247, 0.08); transform: rotate(-19deg); }
.home-partnership-modal__dialog::after { content: ""; position: absolute; z-index: -1; right: -13%; bottom: -22%; width: 47%; aspect-ratio: 1; border-radius: 50%; background: rgba(166, 216, 228, 0.25); }
.home-partnership-modal__close { position: absolute; z-index: 3; top: 20px; right: 20px; display: grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 1.5px solid rgba(255, 253, 247, 0.48); border-radius: 50%; color: #fffdf7; background: rgba(255, 253, 247, 0.12); cursor: pointer; transition: background 180ms ease, transform 180ms var(--home-ease); }
.home-partnership-modal__close:hover { background: rgba(255, 253, 247, 0.24); transform: rotate(90deg); }
.home-partnership-modal__close span { position: absolute; width: 17px; height: 2px; border-radius: 99px; background: currentColor; }
.home-partnership-modal__close span:first-child { transform: rotate(45deg); }
.home-partnership-modal__close span:last-child { transform: rotate(-45deg); }
.home-partnership-modal__intro { position: relative; display: grid; align-content: center; gap: 20px; min-height: 100%; padding: clamp(42px, 6vw, 76px) clamp(30px, 5vw, 62px); color: #fffdf7; background: var(--home-ink); }
.home-partnership-modal__intro .home-kicker { color: var(--home-green); }
.home-partnership-modal__intro h2 { max-width: 12ch; margin: 0; color: #fffdf7; font-size: clamp(2.05rem, 3.35vw, 3.35rem); }
.home-partnership-modal__intro > p { max-width: 37ch; margin: 0; color: rgba(255, 253, 247, 0.8); font-size: 0.98rem; font-weight: 700; line-height: 1.58; }
.home-partnership-modal__intro ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; color: rgba(255, 253, 247, 0.92); font-family: var(--font-display); font-size: 0.92rem; font-weight: 700; }
.home-partnership-modal__intro li { display: flex; align-items: center; gap: 10px; }
/* Os três pontinhos da marca vêm de box-shadow deslocado: o flex precisa
   reservar a largura toda (5 + 16), senão os dois últimos caem sobre o texto. */
.home-partnership-modal__intro li::before { content: ""; flex: 0 0 21px; width: 5px; height: 5px; border-radius: 50%; background: var(--home-pink); box-shadow: 8px 0 var(--home-green), 16px 0 var(--home-lilac); }
.home-partnership-form { display: grid; align-content: center; gap: 17px; padding: clamp(42px, 5vw, 64px); }
.home-partnership-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.home-partnership-form__field { display: grid; gap: 7px; color: var(--home-ink); font-family: var(--font-display); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.015em; }
.home-partnership-form__field small { color: var(--home-muted); font-family: var(--font-body); font-size: 0.74rem; font-weight: 700; letter-spacing: 0; }
.home-partnership-form__field input,
.home-partnership-form__field select,
.home-partnership-form__field textarea { width: 100%; padding: 12px 14px; border: 1.5px solid rgba(44, 55, 127, 0.18); border-radius: 13px 13px 19px 13px; outline: 0; color: var(--home-ink); background: rgba(255, 253, 247, 0.78); font: 700 0.93rem/1.4 var(--font-body); transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease; }
.home-partnership-form__field textarea { min-height: 98px; resize: vertical; }
.home-partnership-form__field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--home-ink) 50%), linear-gradient(135deg, var(--home-ink) 50%, transparent 50%); background-position: calc(100% - 19px) 52%, calc(100% - 14px) 52%; background-repeat: no-repeat; background-size: 5px 5px, 5px 5px; }
.home-partnership-form__field input:focus,
.home-partnership-form__field select:focus,
.home-partnership-form__field textarea:focus { border-color: var(--home-pink-deep); background: #fffdf7; box-shadow: 0 0 0 4px rgba(233, 175, 199, 0.22); }
.home-partnership-form__field input::placeholder,
.home-partnership-form__field textarea::placeholder { color: #8789a4; font-weight: 600; }
.home-partnership-form__honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.home-partnership-form__consent { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 10px; color: var(--home-text); font-size: 0.79rem; font-weight: 700; line-height: 1.42; cursor: pointer; }
.home-partnership-form__consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--home-pink-deep); }
.home-partnership-form__actions { display: grid; gap: 10px; align-items: center; margin-top: 2px; }
.home-partnership-form__actions .home-button { justify-self: start; }
.home-partnership-form__feedback { min-height: 1.2em; margin: 0; color: var(--home-green-deep); font-size: 0.82rem; font-weight: 800; line-height: 1.35; }
.home-partnership-form__feedback.is-error { color: #ae395f; }
.home-partnership-form.is-sent > :not(.home-partnership-form__actions) { display: none; }
.home-partnership-form.is-sent .home-button { display: none; }
.home-partnership-form.is-sent .home-partnership-form__feedback { max-width: 35ch; padding: 15px 17px; border-radius: 16px 16px 24px 16px; color: var(--home-ink); background: var(--home-green); font-family: var(--font-display); font-size: 1rem; }
body.partnership-modal-open { overflow: hidden; }
@keyframes partnership-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes partnership-rise { from { opacity: 0; transform: translateY(16px) scale(0.98); } to { opacity: 1; transform: none; } }

@media (max-width: 720px) {
  .home-partners__heading { grid-template-columns: 1fr; align-items: start; }
  .home-button--partners { justify-self: start; }
  .home-partnership-modal { align-items: end; padding: 10px; }
  .home-partnership-modal__dialog { grid-template-columns: 1fr; max-height: calc(100vh - 20px); border-radius: 26px 26px 38px 26px; }
  .home-partnership-modal__intro { min-height: 0; padding: 38px 28px 29px; }
  .home-partnership-modal__intro h2 { max-width: 15ch; font-size: clamp(1.9rem, 9vw, 2.55rem); }
  .home-partnership-modal__intro > p { font-size: 0.87rem; }
  .home-partnership-modal__intro ul { display: none; }
  .home-partnership-modal__close { top: 15px; right: 15px; width: 38px; height: 38px; }
  .home-partnership-form { gap: 14px; padding: 28px; }
  .home-partnership-form__grid { grid-template-columns: 1fr; gap: 14px; }
  .home-partnership-form__actions .home-button { width: 100%; }
}

/* =========================================================
   Avisos da home: topbar rotativo + carrossel de destaques
   ========================================================= */
/* O atributo hidden sozinho não basta: `display: flex` abaixo é regra de
   autor e vence o `[hidden] { display: none }` da folha do navegador. Sem
   esta linha, desligar os avisos no admin deixava a tarja escura vazia
   ocupando 46px acima do cabeçalho. */
.home-topbar[hidden],
.home-highlights[hidden] { display: none; }

.home-topbar {
  position: relative;
  z-index: 70;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 46px;
  padding: 8px clamp(14px, 4vw, 40px);
  background: var(--home-ink);
  color: var(--home-white);
  font-size: 0.88rem;
  font-weight: 600;
}
.home-topbar::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, #e9afc7, #f4b8a4 28%, #a9d3ad 58%, #a6d8e4 76%, #c2aad0);
}
.home-topbar__viewport {
  position: relative;
  display: grid;
  flex: 1;
  max-width: 1180px;
}
.home-topbar__slide {
  grid-area: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 400ms var(--home-ease), transform 400ms var(--home-ease), visibility 400ms;
}
.home-topbar__slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.home-topbar__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--home-pink);
  flex: none;
}
.home-topbar__text {
  text-align: center;
}
.home-topbar__text--mobile { display: none; }
@media (max-width: 640px) {
  .home-topbar__text--desktop { display: none; }
  .home-topbar__text--mobile { display: inline; }
}
.home-topbar__cta {
  color: var(--home-white);
  font-family: var(--font-display, "Baloo 2"), sans-serif;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 2px solid rgba(255, 253, 247, 0.45);
  padding-bottom: 1px;
  transition: border-color 200ms ease;
}
.home-topbar__cta:hover { border-color: var(--home-white); }
.home-topbar__nav {
  display: flex;
  gap: 6px;
  flex: none;
}
.home-topbar__nav button {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 253, 247, 0.34);
  cursor: pointer;
  transition: background 200ms ease, transform 200ms ease;
}
.home-topbar__nav button.is-active {
  background: var(--home-white);
  transform: scale(1.25);
}
.home-topbar__nav button:focus-visible {
  outline: 2px solid var(--home-pink);
  outline-offset: 3px;
}

/* --- carrossel de destaques (abaixo do hero) --- */
.home-highlights {
  padding: clamp(26px, 4vw, 44px) 0 0;
}
.home-highlights__head {
  margin-bottom: 16px;
}
.home-highlights__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  font-family: var(--font-display, "Baloo 2"), sans-serif;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--home-ink);
}
.home-highlights__eyebrow i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--home-pink);
}
.home-highlights__eyebrow i:nth-child(2) { background: var(--home-green); }
.home-highlights__eyebrow i:nth-child(3) { background: var(--home-lilac); }

.home-highlights__track {
  --hl-gap: clamp(12px, 1.6vw, 20px);
  --hl-per-view: 3;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (var(--hl-per-view) - 1) * var(--hl-gap)) / var(--hl-per-view));
  gap: var(--hl-gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.home-highlights__track::-webkit-scrollbar { display: none; }
.home-highlights__track > * { scroll-snap-align: start; }
.home-highlight {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: clamp(20px, 2.2vw, 28px);
  border-radius: 24px 24px 38px 24px;
  background: var(--home-white);
  border: 1px solid var(--home-line);
  box-shadow: 0 10px 24px rgba(16, 24, 70, 0.07);
  overflow: hidden;
  transition: transform 220ms var(--home-ease), box-shadow 220ms ease;
}
.home-highlight::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: var(--tone, var(--home-pink));
}
.home-highlight--pink { --tone: var(--home-pink); }
.home-highlight--green { --tone: var(--home-green); }
.home-highlight--lilac { --tone: var(--home-lilac); }
.home-highlight--blue { --tone: var(--home-teal); }
.home-highlight--navy { --tone: var(--home-ink); }
.home-highlight:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 34px rgba(16, 24, 70, 0.12);
}
.home-highlight__eyebrow {
  font-family: var(--font-display, "Baloo 2"), sans-serif;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--home-ink);
  background: var(--tone, var(--home-pink));
  padding: 5px 12px;
  border-radius: 999px;
}
.home-highlight h3 {
  margin: 4px 0 0;
  font-family: var(--font-display, "Baloo 2"), sans-serif;
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  font-weight: 800;
  line-height: 1.15;
  color: var(--home-ink);
}
.home-highlight p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--home-text);
}
.home-highlight__cta {
  margin-top: auto;
  padding-top: 6px;
  font-family: var(--font-display, "Baloo 2"), sans-serif;
  font-weight: 800;
  font-size: 0.92rem;
  color: var(--home-pink-deep, #c4608b);
  text-decoration: none;
}
.home-highlight__cta:hover { text-decoration: underline; }

@media (max-width: 1024px) {
  .home-highlights__track { --hl-per-view: 2; }
}
@media (max-width: 640px) {
  .home-highlights__track { --hl-per-view: 1.15; }
}

@media (max-width: 600px) {
  .home-topbar {
    min-height: 40px;
    padding: 7px 12px;
    font-size: 0.78rem;
    gap: 8px;
  }
  .home-topbar__dot { display: none; }
  .home-topbar__slide {
    gap: 4px 8px;
    line-height: 1.25;
  }
  .home-topbar__text { text-align: left; }
  .home-topbar__cta {
    font-size: 0.78rem;
    border-bottom-width: 1px;
  }
  .home-topbar__nav { align-self: center; }
}

@media (prefers-reduced-motion: reduce) {
  .home-topbar__slide { transition: none; }
  .home-highlight { transition: none; }
}

/* --- destaques: card de arte + botão --- */
.home-highlight.has-art {
  position: relative;
  display: block;
  padding: 0;
  border: 0;
  aspect-ratio: 4 / 3;
  text-decoration: none;
  background: var(--tone, var(--home-pink));
}
.home-highlight.has-art::before { display: none; }
.home-highlight__media {
  position: absolute;
  inset: 0;
  display: block;
}
.home-highlight__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 420ms var(--home-ease);
}
.home-highlight.has-art:hover .home-highlight__media img { transform: scale(1.04); }
.home-highlight__overlay {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: clamp(14px, 2vw, 20px);
  background: linear-gradient(to top, rgba(16, 24, 70, 0.78) 0%, rgba(16, 24, 70, 0.42) 55%, transparent 100%);
}
.home-highlight.has-art .home-highlight__eyebrow {
  background: rgba(255, 253, 247, 0.92);
  color: var(--home-ink);
}
.home-highlight__button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--home-white);
  color: var(--home-ink);
  font-family: var(--font-display, "Baloo 2"), sans-serif;
  font-weight: 800;
  font-size: 0.9rem;
  box-shadow: 0 8px 18px rgba(16, 24, 70, 0.22);
  transition: transform 200ms var(--home-ease);
}
.home-highlight:hover .home-highlight__button { transform: translateY(-2px); }

/* fallback sem arte: mantém o card de texto */
.home-highlight.is-text { text-decoration: none; }
.home-highlight__fallback {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.home-highlight__fallback strong {
  font-family: var(--font-display, "Baloo 2"), sans-serif;
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  font-weight: 800;
  line-height: 1.15;
  color: var(--home-ink);
}
.home-highlight__fallback > span:not([class]) {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--home-text);
}
.home-highlight__fallback .home-highlight__button {
  margin-top: 4px;
  background: var(--home-ink);
  color: var(--home-white);
}

/* celular: card mais baixo (panorâmico) para não ocupar a tela inteira */
@media (max-width: 860px) {
  .home-highlight.has-art { aspect-ratio: 3 / 2; }
  .home-highlight__overlay { padding: 12px 14px; }
  .home-highlight__button { padding: 9px 15px; font-size: 0.84rem; }
}
@media (prefers-reduced-motion: reduce) {
  .home-highlight__media img,
  .home-highlight__button { transition: none; }
}

/* ---------- Popup de saída ----------
   Aparece uma vez por dia, quando o cursor sobe em direção à barra do
   navegador. No celular não existe esse gesto: lá o gatilho é rolar para cima
   depois de ter descido bastante.

   O render do prédio ocupa metade do card. É o argumento mais forte que a
   página tem — mostra o que a doação constrói, sem precisar explicar. */
.home-exit {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(16, 22, 60, .62);
  opacity: 0;
  visibility: hidden;
  transition: opacity 260ms ease, visibility 260ms;
}

.home-exit.is-open { opacity: 1; visibility: visible; }

.home-exit__card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(200px, .78fr) minmax(0, 1fr);
  width: min(880px, 100%);
  /* em tela baixa o card rola em vez de vazar para fora da viewport */
  max-height: calc(100dvh - 40px);
  overflow: hidden auto;
  border-radius: 28px 28px 46px 28px;
  background: var(--home-lilac-deep, #675083);
  box-shadow: 0 34px 80px rgba(16, 24, 70, .42);
  transform: translateY(14px) scale(.985);
  transition: transform 320ms var(--home-ease);
}

.home-exit.is-open .home-exit__card { transform: none; }

/* a foto sangra até a borda do card, sem moldura */
.home-exit__foto {
  position: relative;
  margin: 0;
  min-height: 300px;
}

.home-exit__foto img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* véu roxo na emenda com o texto, para o corte não ficar duro */
.home-exit__foto::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, transparent 55%, rgba(103, 80, 131, .85));
}

.home-exit__conteudo {
  padding: clamp(26px, 3.4vw, 38px);
  color: var(--home-white, #fffdf7);
}

.home-exit__close {
  position: absolute;
  top: 14px;
  right: 16px;
  z-index: 3;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 253, 247, .22);
  color: var(--home-white, #fffdf7);
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
}

.home-exit__close:hover { background: rgba(255, 253, 247, .38); }

.home-exit__kicker {
  margin: 0 0 8px;
  color: var(--home-teal, #a6d8e4);
  font-family: var(--font-display);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.home-exit__card h2 {
  margin: 0 0 10px;
  /* 19ch quebrava o título em quatro linhas curtas no celular */
  max-width: 26ch;
  color: var(--home-white, #fffdf7);
  font-family: var(--font-display);
  font-size: clamp(1.62rem, 2.6vw, 2.05rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -.03em;
  text-wrap: balance;
}

.home-exit__conteudo > p {
  margin: 0 0 18px;
  max-width: 40ch;
  color: rgba(255, 253, 247, .84);
  font-size: .93rem;
  font-weight: 600;
  line-height: 1.5;
}

.home-exit__form { display: grid; gap: 10px; }

.home-exit__row { display: flex; gap: 8px; flex-wrap: wrap; }

.home-exit__row input {
  flex: 1 1 170px;
  min-width: 0;
  padding: 12px 14px;
  border: 1.5px solid rgba(255, 253, 247, .28);
  border-radius: 13px;
  background: rgba(255, 253, 247, .1);
  font-family: Nunito, sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--home-white, #fffdf7);
  outline: 0;
}

.home-exit__row input::placeholder { color: rgba(255, 253, 247, .55); }

.home-exit__row input:focus {
  border-color: var(--home-teal, #a6d8e4);
  background: rgba(255, 253, 247, .16);
}

.home-exit__consent {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  color: rgba(255, 253, 247, .82);
  font-size: .81rem;
  font-weight: 600;
  line-height: 1.35;
}

.home-exit__consent input { margin-top: 2px; accent-color: #a6d8e4; }

.home-exit__submit {
  padding: 13px 22px;
  border: 0;
  border-radius: 999px;
  background: var(--home-white, #fffdf7);
  color: var(--home-lilac-deep, #675083);
  font-family: var(--font-display);
  font-size: .97rem;
  font-weight: 800;
  cursor: pointer;
  transition: transform 160ms var(--home-ease);
}

.home-exit__submit:hover { transform: translateY(-2px); }

.home-exit__feedback {
  margin: 0;
  min-height: 17px;
  color: var(--home-teal, #a6d8e4);
  font-size: .84rem;
  font-weight: 700;
}

.home-exit__feedback.is-error { color: #ffc2cf; }

/* saída secundária: quem já quer doar não precisa passar pelo e-mail */

@media (max-width: 680px) {
  .home-exit__card { grid-template-columns: 1fr; }
  /* no celular a foto vira faixa no topo. A faixa é baixa demais para a foto
     vertical — nela entra o corte horizontal, via <picture>. */
  .home-exit__foto { min-height: 200px; }
  .home-exit__foto::after { background: linear-gradient(to bottom, transparent 42%, rgba(103, 80, 131, .9)); }
}

.home-exit__hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  opacity: 0;
}

/* =========================================================
   Cabeçalho da home no roxo da marca

   Mesma decisão do resto do site: o roxo é a cor de "apoiar", e o topo
   estava sobrecarregado de rosa. As regras ficam no fim porque as de cima
   têm a mesma especificidade — aqui quem vem depois vence.

   #5b4488 sobre o creme do cabeçalho dá 7,9:1.
   ========================================================= */
.home-redesign .site-nav a { color: var(--roxo-marca, #5b4488); }

/* hover troca de lugar: fundo roxo, texto creme */
.home-redesign .site-nav a:hover,
.home-redesign .site-nav a:focus-visible {
  color: #fffdf7;
  background: var(--roxo-marca, #5b4488);
}

/* "Doar agora": roxo sólido com texto creme; no hover, o inverso */
.home-redesign .header-donate {
  color: #fffdf7;
  background: var(--roxo-marca, #5b4488);
  border: 1.5px solid var(--roxo-marca, #5b4488);
  box-shadow: 0 12px 25px rgba(91, 68, 136, 0.28);
}

.home-redesign .header-donate:hover {
  color: var(--roxo-marca, #5b4488);
  background: #fffdf7;
}

@media (max-width: 920px) {
  /* no painel do menu aberto o item é uma linha, não uma pílula: fundo
     roxo ali viraria uma barra cheia atravessando a tela */
  .home-redesign .site-nav a:hover { background: transparent; color: var(--roxo-marca, #5b4488); }
  .home-redesign .site-nav a::after { color: var(--roxo-marca, #5b4488); }
}

/* =========================================================
   Roxo nas seções de fundo claro

   Nas seções sobre creme os títulos e os CTAs ainda eram azul-marinho,
   herança de antes de o roxo virar a cor de "apoiar". O azul segue nas
   seções de fundo colorido, onde ele é o próprio fundo; aqui ele saía
   deslocado do resto do caminho de doação.

   Contraste sobre o creme: #5b4488 dá 7,9:1.
   ========================================================= */
.home-manifesto h2,
.home-partners__heading h2,
.home-news .home-section-heading h2 { color: var(--roxo-marca, #5b4488); }

/* "Mais capacidade de atendimento" fica sobre o lilás da seção, não sobre
   creme: ali o roxo precisa ser o tom mais fechado para manter contraste —
   #5b4488 daria 4,1:1 e #4a3672 dá 5,2:1. */
.home-project .home-section-heading h2 { color: var(--roxo-marca-forte, #4a3672); }

/* "Todas as gerações ganham..." e as categorias de parceiro estão sobre
   creme, onde o roxo padrão já dá 7,9:1. */
.home-partner-tier__label h3 { color: var(--roxo-marca, #5b4488); }

/* a chamada acima do CTA do projeto e o destaque dela */
.home-project__cta p { color: #6b5a91; }
.home-project__cta p strong { color: var(--roxo-marca, #5b4488); }

/* "Apoiar como empresa": mesmo par do CTA primário — escuro em repouso,
   lilás no hover */
.home-button--partners {
  color: #fffdf7;
  background: var(--roxo-marca, #5b4488);
  box-shadow: 0 14px 28px rgba(91, 68, 136, 0.24);
}

.home-button--partners:hover {
  color: var(--roxo-marca-forte, #4a3672);
  background: var(--lilac, #c2aad0);
}

/* O bloco final tinha 65px entre a copy e os botões no desktop e 22px no
   empilhado — respiro de seção, não de par de elementos que se leem juntos.
   A frase e o botão que ela pede estavam longe demais um do outro. */
.home-final__inner { gap: clamp(16px, 2.2vw, 34px); }

@media (max-width: 920px) {
  .home-final__inner { gap: 16px; }
  .home-final__actions { margin-top: 4px; }
}

/* "Ver todas as notícias" no roxo da marca, como o resto do sweep: texto
   roxo sobre creme, e no hover inverte para fundo roxo com texto creme. */
.home-news__cta .home-text-link {
  color: var(--roxo-marca, #5b4488);
  border-color: rgba(91, 68, 136, 0.42);
}

.home-news__cta .home-text-link:hover {
  background: var(--roxo-marca, #5b4488);
  color: #fffdf7;
}
