/* MOVE60+ · site da família · tokens do design system (marca/site: tokens.css + tokens-marca.css + AJUSTES.md) */
@font-face {
  font-family: "Obviously Narrow";
  src: local("Obviously Narrow Semibold"), local("ObviouslyNarrow-Semibold"), url("/fonts/ObviouslyNarrow-Semibold-MOVE60.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Cor */
  --color-background: #ffffff;
  --color-surface: #f0eee9;
  --color-foreground: #424647;
  --color-ink: #181d1f;
  --color-border: rgb(24 29 31 / 12%);
  --color-primary: #181d1f;
  --color-primary-foreground: #ffffff;
  --color-familia: #ff5200;
  --color-laranja-pastel: #fee6d2;
  --color-amarelo-pastel: #fcefb4;
  --color-menta: #dafc92;
  --color-verde: #022520;
  --color-idoso: #afe2ff;
  --color-idoso-acento: #183451;
  --color-focus: #181d1f;

  /* Tipografia */
  --font-display: "Obviously Narrow", "Arial Narrow", sans-serif;
  --font-sans: "Switzer", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --text-3xl: clamp(2.9375rem, 1.0571rem + 7.714vw, 6.5rem);
  --text-2xl: clamp(2.25rem, 1.6rem + 2.667vw, 4rem);
  --text-xl: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);
  --text-lg: clamp(1.25rem, 0.9714rem + 1.143vw, 2rem);
  --text-base: clamp(1rem, 0.9071rem + 0.381vw, 1.25rem);
  --text-sm: clamp(1rem, 0.9536rem + 0.19vw, 1.125rem);
  --text-xs: 1rem;
  --text-2xs: 0.875rem;

  /* Espaço e layout */
  --page-gutter: clamp(1.25rem, 4vw, 3rem);
  --container: 90rem;
  --reading: 68ch;
  --section-space: clamp(2.5rem, 6vw, 6rem);
  --control-min: 2.75rem;

  /* Forma */
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;

  /* Movimento */
  --dur-fast: 150ms;
  --dur-base: 300ms;
  --dur-slow: 700ms;
  --ease-out: cubic-bezier(0.4, 0, 0.2, 1);
  --reveal-y: 20px;
  --reveal-stagger: 90ms;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--color-background);
  color: var(--color-ink);
  font: 500 var(--text-base)/1.4 var(--font-sans);
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3 { text-wrap: balance; margin: 0; }
p { text-wrap: pretty; margin: 0; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; border-radius: 4px; }

.skip {
  position: absolute; left: var(--page-gutter); top: -4rem; z-index: 100;
  background: var(--color-ink); color: #fff; padding: .75rem 1rem; border-radius: var(--radius-md);
}
.skip:focus { top: .75rem; }

.wrap { width: min(100%, var(--container)); margin-inline: auto; padding-inline: var(--page-gutter); }

/* Títulos: Obviously Narrow Semibold, caixa-alta (regra do DS) */
.title-3xl, .title-2xl, .title-xl {
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-synthesis: none;
  color: var(--color-ink);
}
.title-3xl { font-size: var(--text-3xl); line-height: .92; }
.title-2xl { font-size: var(--text-2xl); line-height: .95; }
.title-xl  { font-size: var(--text-xl);  line-height: 1; letter-spacing: .005em; }
.accent { color: var(--color-familia); }
.eyebrow { font-size: var(--text-2xs); letter-spacing: .1em; text-transform: uppercase; line-height: 1.5; }
.lead { font-size: var(--text-lg); line-height: 1.25; }
.muted { color: var(--color-foreground); }

/* Botões */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 3rem; padding: .5rem 1.5rem; border-radius: var(--radius-md);
  font: 500 var(--text-sm)/1.2 var(--font-sans); text-decoration: none; cursor: pointer;
  border: 2px solid var(--color-ink);
  transition: transform var(--dur-fast) var(--ease-out), background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}
.btn--solid { background: var(--color-primary); color: var(--color-primary-foreground); }
.btn--solid:hover { background: #000; transform: translateY(-2px); }
.btn--ghost { background: transparent; color: var(--color-ink); }
.btn--ghost:hover { background: var(--color-ink); color: #fff; transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn svg { width: 1.25rem; height: 1.25rem; flex: none; }

/* Navegação */
.nav { padding-block: clamp(1rem, 2.5vw, 1.75rem); }
.nav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.nav-logo img { height: 28px; width: auto; }
.nav-links { display: flex; align-items: center; gap: .5rem; }
.nav-link {
  display: inline-flex; align-items: center; min-height: var(--control-min); padding: .25rem 1rem;
  border-radius: var(--radius-md); text-decoration: none; font-size: var(--text-sm);
  transition: background var(--dur-base) var(--ease-out);
}
.nav-link:hover { background: rgb(24 29 31 / 10%); }
.nav .btn { min-height: var(--control-min); padding-block: .25rem; }

/* Blocos pastel arredondados sobre fundo branco */
.block { border-radius: var(--radius-xl); padding: clamp(1.5rem, 4vw, 3.5rem); }
.section { padding-block: clamp(2rem, 6vw, 5rem); }
.section-head { max-width: 52rem; margin-bottom: clamp(1.5rem, 3.5vw, 3rem); display: grid; gap: clamp(.75rem, 1.5vw, 1.25rem); }

/* Porta */
.gate { min-height: 100dvh; display: flex; flex-direction: column; }
.gate > .nav, .gate > .gate-foot { width: 100%; }
.gate main { flex: 1; display: grid; align-items: center; }
.gate-hero { display: grid; gap: clamp(2rem, 5vw, 4rem); padding-block: clamp(1.5rem, 4vw, 3.5rem); }
.gate-head { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.gate-media { height: clamp(15rem, 26vw, 22rem); }
.gate-media img { object-position: 50% 35%; }
.gate-intro { display: grid; gap: 1.25rem; max-width: 60rem; }
.gate-intro p { font-size: var(--text-lg); line-height: 1.25; color: var(--color-foreground); }
.gate-ask { font: 500 var(--text-lg)/1.2 var(--font-sans); margin: 0 0 1rem; }
.gate-choices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.gate-choices > li { display: flex; }
.tile {
  flex: 1; position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem;
  min-height: clamp(15rem, 28vw, 22rem); padding: clamp(1.25rem, 2.5vw, 2rem);
  border-radius: var(--radius-xl); border: 2px solid transparent; text-decoration: none;
  transition: transform var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.tile:hover { transform: translateY(-6px); border-color: var(--tile-ink); }
.tile--estudante { background: var(--color-menta); --tile-ink: var(--color-verde); color: var(--color-verde); }
.tile--idoso { background: var(--color-idoso); --tile-ink: var(--color-idoso-acento); color: var(--color-idoso-acento); }
.tile--familia { background: var(--color-laranja-pastel); --tile-ink: var(--color-ink); color: var(--color-ink); }
.tile-icon {
  width: clamp(5rem, 8vw, 7rem); aspect-ratio: 1; background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat;
}
.tile--estudante .tile-icon { --icon: url("/img/icone-estudante.png"); }
.tile--idoso .tile-icon { --icon: url("/img/icone-idoso.png"); }
.tile--familia .tile-icon { --icon: url("/img/icone-familia.png"); }
.tile-body { display: grid; gap: .5rem; }
.tile-label { font-family: var(--font-display); font-weight: 600; text-transform: uppercase; font-synthesis: none; font-size: var(--text-2xl); line-height: .95; color: inherit; }
.tile-sub { font-size: var(--text-sm); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.tile-arrow {
  flex: none; width: 2.75rem; height: 2.75rem; border-radius: var(--radius-full); border: 2px solid currentColor;
  display: grid; place-items: center; transition: background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}
.tile-arrow svg { width: 1.25rem; height: 1.25rem; }
.tile:hover .tile-arrow { background: var(--tile-ink); color: #fff; }
.gate-foot { padding-block: 1.25rem; font-size: var(--text-xs); color: var(--color-foreground); }

/* Hero do site */
.hero .wrap { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1rem, 3vw, 3rem); align-items: stretch; }
.hero-copy { display: grid; align-content: center; gap: 1.5rem; padding-block: clamp(1rem, 3vw, 2.5rem); }
.hero-copy .title-3xl { font-size: clamp(2.5rem, 1rem + 4.6vw, 5.25rem); }
.hero-sub { font-size: var(--text-lg); line-height: 1.25; max-width: 34rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero-note { font-size: var(--text-xs); line-height: 1.5; max-width: 34rem; color: var(--color-foreground); }
.media { position: relative; border-radius: var(--radius-xl); overflow: hidden; background: var(--color-surface); }
.media img { width: 100%; height: 100%; object-fit: cover; }
.media figcaption {
  position: absolute; left: .75rem; bottom: .75rem; background: rgb(255 255 255 / 92%); color: var(--color-ink);
  font-size: var(--text-2xs); padding: .25rem .75rem; border-radius: var(--radius-full);
}
.hero-media { min-height: 34rem; }
.hero-media img { object-position: 50% 30%; }

/* Cenas */
.cenas-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.cena { display: grid; align-content: space-between; gap: 2rem; border-radius: var(--radius-xl); padding: clamp(1.25rem, 2.5vw, 2rem); min-height: 22rem; }
.cena:nth-child(1) { background: var(--color-laranja-pastel); }
.cena:nth-child(2) { background: var(--color-amarelo-pastel); }
.cena:nth-child(3) { background: var(--color-surface); }
.cena-cena { font-size: var(--text-lg); line-height: 1.2; }
.cena-virada { display: grid; gap: .75rem; }
.cena-virada .title-xl { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.75rem); }
.cena-virada p { font-size: var(--text-sm); }

/* Como funciona */
.como-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(1rem, 3vw, 3rem); align-items: stretch; }
.passos { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; counter-reset: passo; }
.passo { display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: start; border: 2px solid var(--color-foreground); border-radius: var(--radius-xl); padding: 1.25rem 1.5rem; }
.passo-n { font-family: var(--font-display); font-weight: 600; font-size: var(--text-2xl); line-height: .9; color: var(--color-familia); min-width: 1.2ch; }
.passo h3 { font: 500 var(--text-lg)/1.2 var(--font-sans); margin-bottom: .35rem; }
.passo p { font-size: var(--text-sm); color: var(--color-foreground); }
.como-media { min-height: 28rem; }
.como-media img { object-position: 50% 40%; }

/* Faixa da pessoa 60+ */
.voce { background: var(--color-idoso); color: var(--color-idoso-acento); }
.voce .wrap-in { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.voce .title-2xl { color: var(--color-idoso-acento); font-size: clamp(2.5rem, 1.2rem + 5vw, 5.5rem); }
.voce .title-2xl .accent { color: var(--color-familia); }
.voce-copy { display: grid; gap: 1.25rem; }
.voce-copy p { font-size: var(--text-lg); line-height: 1.3; }
.voce .btn { border-color: var(--color-idoso-acento); }
.voce .btn--solid { background: #fff; color: var(--color-idoso-acento); }
.voce .btn--solid:hover { background: var(--color-idoso-acento); color: #fff; }
.voce-media { aspect-ratio: 4/5; max-height: 36rem; }
.voce-media img { object-position: 50% 30%; }
.saidas { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.saidas li { background: #fff; color: var(--color-idoso-acento); padding: .5rem 1.1rem; border-radius: var(--radius-full); font-size: var(--text-sm); }

/* É / Não é */
.claro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.claro-col { border-radius: var(--radius-xl); padding: clamp(1.25rem, 2.5vw, 2rem); display: grid; gap: 1rem; align-content: start; }
.claro-col--e { background: var(--color-surface); }
.claro-col--nao { border: 2px solid var(--color-foreground); }
.claro-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.claro-col li { display: grid; grid-template-columns: 1.5rem 1fr; gap: .75rem; font-size: var(--text-sm); line-height: 1.35; }
.claro-col li svg { width: 1.5rem; height: 1.5rem; margin-top: .05rem; }
.limite { margin-top: 1.5rem; font-size: var(--text-sm); padding: 1rem 1.25rem; border-radius: var(--radius-lg); background: var(--color-amarelo-pastel); }

/* Final */
.final { background: var(--color-laranja-pastel); }
.final-in { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.final-copy { display: grid; gap: 1.25rem; }
.final .title-2xl { font-size: clamp(2.5rem, 1.2rem + 5vw, 5.5rem); }
.final-copy p { font-size: var(--text-lg); line-height: 1.3; max-width: 36rem; }
.final-media { aspect-ratio: 4/5; max-height: 34rem; }

/* Rodapé */
.footer { padding-block: clamp(2rem, 4vw, 3rem); display: grid; gap: 1rem; }
.footer-sign { font-family: var(--font-display); font-weight: 600; text-transform: uppercase; font-size: var(--text-xl); line-height: 1; }
.footer small { font-size: var(--text-xs); color: var(--color-foreground); }
.footer a { color: inherit; }

/* Entrada */
.js [data-reveal] {
  opacity: 0; transform: translateY(var(--reveal-y));
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
  transition-delay: calc(var(--i, 0) * var(--reveal-stagger));
}
.js [data-reveal].is-in { opacity: 1; transform: none; }

@media (hover: none) {
  .tile:hover, .btn:hover { transform: none; }
}

/* Mobile */
@media (max-width: 62rem) {
  .gate-choices, .cenas-grid, .claro-grid, .gate-head { grid-template-columns: 1fr; }
  .gate-media { order: -1; height: 32dvh; }
  .tile { min-height: 0; flex-direction: row; align-items: center; gap: 1rem; padding: 1.25rem; }
  .tile-icon { width: 4.5rem; flex: none; }
  .tile-body { flex: 1; }
  .tile-label { font-size: clamp(1.9rem, 1.2rem + 3vw, 2.5rem); }
  .tile:hover { transform: none; }
  .hero .wrap, .como-grid, .voce .wrap-in, .final-in { grid-template-columns: 1fr; }
  .hero-media { order: -1; min-height: 0; height: 44dvh; }
  .hero-copy { padding-block: .5rem; }
  .cena { min-height: 0; }
  .como-media { min-height: 0; aspect-ratio: 4/3; }
  .como-media img { object-position: 50% 30%; }
  .voce-media { max-height: 26rem; aspect-ratio: 4/3; }
  .final-media { max-height: 22rem; aspect-ratio: 4/3; }
  .hero-actions .btn, .voce .btn, .final .btn { width: 100%; }
  .nav-link { display: none; }
}
.footer a { display: inline-block; padding-block: .5rem; }
@media (max-width: 40rem) {
  .nav-long { display: none; }
}
@media (max-width: 30rem) {
  .nav .btn { padding-inline: 1rem; font-size: 1rem; }
  .nav-logo img { height: 24px; }
}

/* Porta compacta: tudo cabe na primeira tela, medidas pela altura da janela */
.gate .nav { padding-block: clamp(.5rem, 2dvh, 1.25rem); }
.gate .nav-logo img { height: clamp(22px, 3.4dvh, 28px); width: auto; }
.gate-hero { gap: clamp(.75rem, 3dvh, 2rem); padding-block: clamp(.25rem, 1.5dvh, 1.25rem); }
.gate-head { gap: clamp(1rem, 3vw, 2.5rem); }
.gate-intro { gap: clamp(.5rem, 1.5dvh, 1rem); }
.gate h1.title-3xl { font-size: clamp(2.25rem, min(5.6vw, 9.5dvh), 5rem); }
.gate-intro p { font-size: clamp(1.0625rem, 2.6dvh, 1.375rem); }
.gate-media { height: clamp(8rem, 24dvh, 15rem); }
.gate-ask { font-size: clamp(1.0625rem, 2.6dvh, 1.375rem); margin-bottom: clamp(.5rem, 1.5dvh, 1rem); }
.tile { min-height: clamp(9rem, 30dvh, 16rem); gap: 1rem; padding: clamp(1rem, 2.5dvh, 1.75rem) clamp(1.1rem, 2vw, 1.75rem); }
.tile-label { font-size: clamp(1.6rem, min(3vw, 5dvh), 2.75rem); }
.tile-icon { width: clamp(3.25rem, 9dvh, 5.25rem); }
.tile-sub { font-size: clamp(1rem, 2.2dvh, 1.125rem); }
.gate-foot { padding-block: clamp(.5rem, 1.5dvh, 1.25rem); }
@media (max-width: 62rem) {
  .gate-media { height: clamp(5.5rem, 13dvh, 9rem); }
  .gate-hero { gap: .6rem; }
  .gate-head { gap: .75rem; }
  .gate-choices { gap: .5rem; }
  .gate-foot { padding-block: .5rem; font-size: .875rem; }
  .tile { min-height: 0; padding: .7rem 1rem; gap: .9rem; }
  .tile-sub { font-size: .9375rem; }
  .tile-icon { width: 3.25rem; }
  .tile-label { font-size: clamp(1.5rem, 6vw, 2rem); }
  .tile-arrow { width: 2.5rem; height: 2.5rem; }
  .gate h1.title-3xl { font-size: clamp(2.25rem, 10vw, 3.5rem); }
}

/* Respiro entre título e texto nos blocos de chamada */
.final .title-2xl, .voce .title-2xl { font-size: clamp(2.25rem, 1.2rem + 3.8vw, 4.25rem); }
.final-copy, .voce-copy { gap: clamp(1.5rem, 3vw, 2.25rem); }
.final-copy .title-2xl, .voce-copy .title-2xl { margin-bottom: .25rem; }
.hero-copy { gap: clamp(1.5rem, 3vw, 2.25rem); }

/* Título da porta em duas linhas */
.gate h1 .ln { display: block; }

/* Título numa linha só */
.section-head--wide { max-width: none; }
.title-nowrap { white-space: nowrap; text-wrap: nowrap; font-size: clamp(1.1rem, 4.4vw, 4rem); }

/* Porta: foto em largura total, véu branco embaixo fazendo a transição para a escolha */
.gate { position: relative; overflow-x: clip; }
.gate-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.gate-bg img { position: absolute; left: 0; top: -15%; width: 100%; height: 115%; object-fit: cover; object-position: 72% 40%; }
.gate-bg::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(to bottom, rgb(255 255 255 / 0) 25%, rgb(255 255 255 / .9) 54%, #fff 66%),
    linear-gradient(to right, rgb(255 255 255 / .85), rgb(255 255 255 / .5) 38%, rgb(255 255 255 / 0) 62%);
}
.gate > :not(.gate-bg) { position: relative; z-index: 1; }
.gate main { display: flex; flex-direction: column; align-items: stretch; }
.gate-hero { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
.gate-head { display: block; }
.gate-media { display: none; }
.gate-intro { margin-top: clamp(.5rem, 5dvh, 3.5rem); }
.gate h1.title-3xl { font-size: clamp(2.5rem, min(6.4vw, 11dvh), 6rem); }
.gate-intro p { color: var(--color-ink); }
@media (max-width: 62rem) {
  .gate-bg { background: linear-gradient(to bottom, #a6c0db, #b1c5dc 14dvh, #bacade); }
  .gate-bg img {
    top: 12dvh; height: 100%; object-position: 50% 30%;
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 10%); mask-image: linear-gradient(to bottom, transparent, #000 10%);
  }
  .gate-bg::after {
    background: linear-gradient(to bottom, rgb(255 255 255 / .35) 0, rgb(255 255 255 / .12) 20%, rgb(255 255 255 / 0) 30%, rgb(255 255 255 / 0) 48%, rgb(255 255 255 / .85) 58%, #fff 65%);
  }
  .gate-choices { gap: .45rem; }
  .gate .tile { padding: .55rem 1rem; }
  .gate .tile-sub { display: none; }
  .gate .tile-body { flex: 1; }
  .gate .tile-label { font-size: clamp(1.45rem, 6.4vw, 1.9rem); }
  .gate .tile-icon { width: 3rem; }
  .gate-ask { margin-bottom: .4rem; }
  .gate h1.title-3xl { font-size: clamp(2.25rem, 10.5vw, 3.25rem); }
  .gate-intro { margin-top: 0; gap: .35rem; }
  .gate .nav { padding-block: .75rem .25rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js [data-reveal] { opacity: 1; transform: none; transition: none; }
  .tile, .btn { transition: none; }
}
