@import url("tokens.css");

* { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; }
body { background: var(--brand-cream); scroll-padding-top: var(--dv-header-h, 88px); }
img { max-width: 100%; display: block; }
[data-anchor] { scroll-margin-top: var(--dv-header-h, 88px); }
.wrap { max-width: 1440px; margin: 0 auto; }

/* ---------- header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 40;
  background: rgba(251,249,236,.9); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border-hairline);
}
.site-header__inner {
  max-width: 1440px; margin: 0 auto; padding: 12px clamp(20px,6vw,72px);
  display: flex; align-items: center; gap: 32px;
}
.site-logo-link { display: flex; align-items: center; flex: 0 0 auto; border-bottom: 0; }
.site-logo { height: 42px; width: auto; display: block; }
.site-nav {
  display: flex; align-items: center; flex-wrap: wrap; min-width: 0;
  gap: 8px clamp(12px,1.5vw,26px); margin-left: auto;
  font-family: var(--font-display); font-size: 12px; font-weight: 300;
  letter-spacing: var(--tracking-caps); text-transform: uppercase;
}
.site-nav a { color: var(--brand-ink); border-bottom: 0; }
.site-nav a:hover { color: var(--brand-gold-deep); }
.site-nav .nav-contato { display: none; color: var(--text-accent); }
.menu-foot { display: none; }
.menu-toggle {
  display: none; margin-left: auto; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; background: none;
  border: 1px solid var(--border-hairline); border-radius: 999px;
  color: var(--brand-ink); cursor: pointer; flex: 0 0 auto;
}
.menu-toggle .icon {
  display: block; width: 18px; height: 18px; background: currentColor;
  -webkit-mask-image: url(https://unpkg.com/lucide-static@0.445.0/icons/menu.svg);
  mask-image: url(https://unpkg.com/lucide-static@0.445.0/icons/menu.svg);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-size: contain; mask-size: contain;
}
.header-cta { flex: 0 0 auto; }

@media (max-width: 1150px) {
  .site-nav { display: none; }
  .site-nav[data-open="1"] { display: flex; }
  .site-nav[data-open="1"] .nav-contato { display: flex; align-items: center; }
  .menu-toggle { display: inline-flex; }
  .header-cta { display: none; }
  .site-header__inner { gap: 12px; padding-left: 20px; padding-right: 20px; }
  .site-logo { height: 34px; }
  .site-nav[data-open="1"] {
    position: fixed; left: 0; right: 0; top: 100%;
    height: calc(100vh - 100%);
    flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0;
    background: var(--brand-cream); padding: 12px clamp(20px,6vw,72px) 40px;
    overflow-y: auto; z-index: 60;
  }
  .site-nav[data-open="1"] a { padding: 18px 0; border-bottom: 1px solid var(--border-hairline); font-size: 13px; }
}
@media (min-width: 1151px) { .menu-toggle { display: none; } }

@media (max-width: 720px) {
  .site-logo { height: 32px; }
  .site-header__inner { gap: 10px; padding: 10px 22px; }
  .site-nav[data-open="1"] { overflow: hidden; padding: 12px 22px 22px; gap: 0; }
  .site-nav[data-open="1"] a { flex: 1 1 auto; min-height: 42px; max-height: 58px; display: flex; align-items: center; padding: 0; }
  .menu-foot { display: grid; gap: 14px; flex: 0 0 auto; padding-top: 18px; text-align: center; }
  .site-nav[data-open="1"] .menu-foot { display: grid; }
  .menu-foot .btn { width: 100%; box-sizing: border-box; }
}

/* ---------- generic section rhythm ---------- */
.section { padding: clamp(72px,10vw,128px) 0 clamp(64px,9vw,112px); }
.section-pad { padding: clamp(72px,10vw,128px) clamp(20px,6vw,72px); }
.section-white { background: var(--brand-white); }
.section-tan { background: var(--brand-tan); }
.section-ink { background: var(--brand-ink); }
.gutter { padding-left: clamp(20px,6vw,72px); padding-right: clamp(20px,6vw,72px); }
.eyebrow { display: block; margin-bottom: 24px; }
.h2 { font-family: var(--font-serif); font-weight: 300; font-size: clamp(40px,5.8vw,76px); line-height: 1.06; letter-spacing: -.005em; margin: 0; }
.h3 { font-family: var(--font-serif); font-weight: 300; font-size: clamp(26px,2.8vw,40px); line-height: 1.1; letter-spacing: -.005em; }
.lede { font-size: clamp(19px,1.7vw,26px); font-weight: 300; line-height: 1.38; color: var(--text-secondary); margin: 28px auto 0; }
.body-text { line-height: 1.6; color: var(--text-secondary); }
.center { text-align: center; }
.rule { height: 1px; background: var(--brand-gold); }

[data-reveal] { opacity: 0; transform: translate3d(0,22px,0); transition: opacity 420ms cubic-bezier(.16,.7,.3,1), transform 420ms cubic-bezier(.16,.7,.3,1); will-change: opacity, transform; }
[data-reveal].is-visible { opacity: 1; transform: none; }

/* ---------- hero ---------- */
.hero-section { position: relative; background: var(--brand-ink); }
.hero { position: relative; height: 100vh; }
.hero-inner { position: relative; height: 100%; overflow: hidden; background: var(--brand-cream-deep); }
.hero-layer { position: absolute; inset: 0; will-change: transform; }
.hero-layer-bg { top: -58%; height: 196%; }
.hero-bg-img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; display: block; }
.hero-scrim {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(251,249,236,.58) 0%, rgba(251,249,236,.24) 46%, rgba(251,249,236,.04) 76%);
}
.hero-layer-title { display: flex; align-items: flex-start; justify-content: center; padding: 0 clamp(16px,4vw,48px); pointer-events: none; }
.hero-title-wrap { text-align: center; padding-top: 12vh; }
.hero-title { font-family: var(--font-serif); font-weight: 300; color: var(--brand-ink); font-size: clamp(28px,8.4vw,132px); line-height: 1.02; letter-spacing: .005em; margin: 0; text-wrap: balance; }
.hero-title span { display: block; }
.hero-layer-portrait { display: flex; align-items: flex-end; justify-content: center; pointer-events: none; }
.hero-portrait { height: 78%; max-height: 78%; max-width: 72vw; object-fit: contain; object-position: bottom center; display: block; }
.hero-layer-subtitle { display: flex; align-items: flex-end; justify-content: center; padding-bottom: 8vh; z-index: 3; pointer-events: none; }
.hero-subtitle { font-family: var(--font-display); font-weight: 300; color: var(--brand-ink); font-size: clamp(11px,1.9vw,30px); letter-spacing: .3em; text-transform: uppercase; white-space: nowrap; }
.hero-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 16vh; background: linear-gradient(180deg, rgba(29,29,27,0) 0%, var(--brand-ink) 96%); pointer-events: none; }

@media (max-width: 720px) {
  .hero-title-wrap { padding-top: 24vh; }
  .hero-title { font-size: clamp(40px,12.4vw,112px); }
  .hero-portrait { height: 70%; max-height: 70%; max-width: 90vw; }
  .hero-subtitle { font-size: clamp(12px,3.4vw,30px); letter-spacing: .28em; }
}

/* ---------- dark passage ---------- */
.passage { position: relative; background: var(--brand-ink); padding: clamp(40px,7vh,96px) 0 clamp(24px,4vh,56px); }
.passage-ambient { position: absolute; inset: 0; pointer-events: none; clip-path: inset(0); }
.passage-ambient-inner { position: sticky; top: 0; height: 100vh; overflow: hidden; }
.passage-symbol { --w: min(1100px,120vw); max-width: none; position: absolute; left: 0; top: var(--dv-header-h-raw, 65px); width: var(--w); margin-left: calc(var(--w) * -.35); margin-top: calc(var(--w) * -.33); opacity: .1; will-change: transform; }
.passage-canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .12; display: block; }
.passage-flow { position: relative; }
.passage-block {
  position: relative; max-width: 1280px; margin: 0 auto;
  padding: clamp(72px,14vh,160px) clamp(20px,6vw,72px);
  min-height: 100vh; box-sizing: border-box;
  scroll-snap-align: center;
  display: flex; align-items: center; will-change: transform, opacity; opacity: .1;
}
.passage-block.align-right { justify-content: flex-end; }
.passage-block.align-left { justify-content: flex-start; }
.passage-block-inner { max-width: min(880px,94%); }
.passage-block.align-right .passage-block-inner { text-align: right; }
.passage-block.align-left .passage-block-inner { text-align: left; }
.passage-label { font-family: var(--font-display); font-size: 13px; font-weight: 300; letter-spacing: .26em; text-transform: uppercase; color: var(--brand-gold); margin-bottom: clamp(18px,2.6vh,32px); }
.passage-text { font-family: var(--font-serif); font-weight: 300; color: var(--brand-cream); font-size: clamp(32px,5.2vw,88px); line-height: 1.06; letter-spacing: -0.01em; margin: 0; text-wrap: pretty; }
.passage-text.small { font-size: clamp(24px,3.4vw,48px); line-height: 1.28; }
.passage-rule { height: 1px; background: var(--brand-gold); width: clamp(90px,14vw,200px); margin-top: clamp(24px,3.4vh,44px); transform-origin: left center; transform: scaleX(0); }
.passage-block.align-right .passage-rule { margin-left: auto; transform-origin: right center; }
.passage-note { font-family: var(--font-display); font-weight: 300; color: var(--brand-tan-soft); font-size: clamp(15px,1.3vw,20px); line-height: 1.6; margin-top: clamp(20px,3vh,36px); max-width: 52ch; }
.passage-block.align-right .passage-note { margin-left: auto; }

@media (max-width: 720px) {
  .passage-block { min-height: 86vh; }
  .passage-block-inner { max-width: min(880px,84%); }
  .passage-text { font-size: clamp(31px,8.6vw,88px); }
  .passage-text.small { font-size: clamp(22px,6vw,48px); }
  .passage-note { font-size: clamp(15px,3.9vw,20px); }
}

/* ---------- proposito ---------- */
.proposito-head { max-width: 980px; margin: 0 auto; padding: 0 clamp(20px,6vw,72px); }
.proposito-grid { max-width: 1100px; margin: clamp(48px,7vw,88px) auto 0; padding: 0 clamp(20px,6vw,72px); display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(32px,5vw,72px); align-items: center; }
.media-frame { position: relative; border-radius: 8px; overflow: hidden; background: var(--brand-cream-deep); }
.media-frame img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.ratio-3-4 { aspect-ratio: 3 / 4; }
.ratio-4-3 { aspect-ratio: 4 / 3; }
.ratio-16-9 { aspect-ratio: 16 / 9; }
.ratio-21-9 { aspect-ratio: 21 / 9; min-height: 320px; }
.proposito-copy { display: grid; gap: 20px; }
.proposito-copy p { font-size: clamp(17px,1.25vw,20px); line-height: 1.62; color: var(--text-secondary); max-width: 46ch; }

/* ---------- formacao ---------- */
.formacao-head { max-width: 980px; margin: 0 auto; }
.formacao-chart { max-width: 720px; margin: clamp(40px,6vw,64px) auto 0; }
.formacao-grid { max-width: 900px; margin: clamp(40px,6vw,72px) auto 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(28px,4vw,56px); }
.formacao-item { display: flex; gap: 16px; align-items: flex-start; }
.formacao-thumb { position: relative; width: 72px; height: 72px; flex: none; border-radius: 8px; overflow: hidden; background: var(--brand-cream-deep); }
.formacao-thumb img { width: 100%; height: 100%; object-fit: cover; }
.formacao-kicker { font-family: var(--font-display); font-size: 12px; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--text-accent); margin-bottom: 8px; }
.formacao-item p.body-text { font-size: var(--text-body-sm); }

/* ---------- humano ---------- */
.section-tan .eyebrow, .section-tan .h2, .section-tan p { color: var(--brand-ink); }
.humano-head { max-width: 980px; margin: 0 auto; }
.humano-grid { max-width: 1100px; margin: clamp(40px,6vw,72px) auto 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(32px,5vw,72px); align-items: center; }
.humano-copy { display: grid; gap: 20px; }
.humano-copy p { line-height: 1.6; color: var(--brand-ink); }
.humano-grid .media-frame { background: var(--brand-cream); }

/* ---------- tratamento ---------- */
.tratamento-head { max-width: 980px; margin: 0 auto; padding: 0 clamp(20px,6vw,72px); }
.tratamento-cols { max-width: 1100px; margin: clamp(48px,7vw,88px) auto 0; padding: 0 clamp(20px,6vw,72px); display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(32px,5vw,72px); }
.tratamento-col { padding-top: 28px; border-top: 1px solid var(--border-hairline); }
.tratamento-col.favor { border-top-color: var(--rule-gold); }
.tratamento-col .h3 { margin-bottom: 16px; }
.tratamento-col p { max-width: 46ch; }
.tratamento-media { margin: clamp(56px,8vw,104px) 0 0; }
.tratamento-body { max-width: 980px; margin: clamp(48px,7vw,80px) auto 0; padding: 0 clamp(20px,6vw,72px); }
.tratamento-body .h3 { font-size: clamp(32px,4.2vw,56px); line-height: 1.07; margin: 0 auto; max-width: 22ch; }
.tratamento-body p { max-width: 58ch; margin: 28px auto 0; }

@media (max-width: 720px) {
  .tratamento-cols { grid-template-columns: 1fr; }
  #tratamento .ratio-21-9 { aspect-ratio: 4 / 5; min-height: 0; }
}

/* ---------- abordagem ---------- */
.abordagem-head { max-width: 980px; margin: 0 auto; }
.abordagem-grid { max-width: 1100px; margin: clamp(48px,7vw,88px) auto 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(32px,5vw,72px); align-items: center; }
.abordagem-media { display: grid; gap: 16px; }
.abordagem-copy { display: grid; gap: 20px; }
.abordagem-copy p { max-width: 40ch; }
.abordagem-copy .media-frame { margin-top: 8px; }

/* ---------- atuacao ---------- */
.atuacao-section { position: relative; background: var(--brand-ink); }
.atuacao-head { max-width: 980px; margin: 0 auto; padding: clamp(72px,10vw,128px) clamp(20px,6vw,72px) clamp(24px,4vw,40px); }
.atuacao-stage { position: relative; }
.atuacao-snap { position: absolute; left: 0; width: 1px; pointer-events: none; scroll-snap-align: start; scroll-margin-top: calc(-1 * var(--dv-header-h, 88px)); }
.atuacao-viewport { position: sticky; top: 0; min-height: 100vh; height: 100vh; overflow: hidden; }
.atuacao-bg-symbol { position: absolute; right: -16%; bottom: -22%; width: min(760px,80vw); opacity: .08; will-change: transform; pointer-events: none; }
.atuacao-card {
  position: absolute; inset: 0; visibility: hidden; background: var(--brand-ink);
  will-change: transform; transform-origin: 50% 0%;
  display: grid; align-content: center; overflow-y: auto;
  padding: clamp(32px,8vh,96px) clamp(20px,6vw,72px);
}
.atuacao-card:not(:first-child) { border-top: 1px solid rgba(220,199,168,.16); }
.atuacao-card-inner { max-width: 1200px; margin: 0 auto; width: 100%; will-change: transform, filter; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(24px,5vw,72px); align-items: start; }
.atuacao-icon { display: block; width: 44px; height: 44px; background: var(--brand-gold); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; }
.atuacao-card h3 { font-size: clamp(28px,4.4vw,64px); line-height: 1.08; letter-spacing: .005em; color: var(--brand-cream); margin-top: 22px; max-width: 18ch; }
.atuacao-rule { height: 1px; background: var(--brand-gold); width: clamp(90px,14vw,200px); margin-top: clamp(24px,3.4vh,40px); }
.atuacao-card p { line-height: 1.75; color: var(--brand-tan-soft); max-width: 52ch; font-size: clamp(16px,1.2vw,19px); padding-top: clamp(8px,2vw,28px); }

@media (max-width: 720px) {
  .atuacao-card { padding: clamp(28px,7vh,96px) 22px; }
  .atuacao-card-inner { grid-template-columns: 1fr; gap: 20px; }
  .atuacao-icon { width: 38px; height: 38px; }
  .atuacao-card h3 { font-size: clamp(27px,7.6vw,64px); }
  .atuacao-card p { font-size: clamp(16px,4.2vw,19px); padding-top: 0; }
}

/* ---------- conteudo (instagram) ---------- */
.conteudo-head { max-width: 980px; margin: 0 auto; padding: 0 clamp(20px,6vw,72px); }
.conteudo-profile { max-width: 1100px; margin: clamp(40px,6vw,64px) auto 0; padding: 0 clamp(20px,6vw,72px); display: flex; flex-direction: column; align-items: center; gap: 20px; }
.conteudo-avatar { position: relative; width: 92px; height: 92px; border-radius: 50%; overflow: hidden; }
.conteudo-avatar img { width: 100%; height: 100%; object-fit: cover; }
.conteudo-handle { font-family: var(--font-display); font-size: var(--text-body-sm); letter-spacing: var(--tracking-caps); text-transform: uppercase; text-align: center; }
.conteudo-place { font-size: 12px; color: var(--text-muted); text-align: center; }
.reels {
  max-width: 1100px; margin: clamp(40px,6vw,64px) auto 0; padding: 0 clamp(20px,6vw,72px);
  display: flex; align-items: stretch; gap: clamp(20px,3vw,32px); overflow-x: auto;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.reels::-webkit-scrollbar { display: none; }
.reel { flex: 0 0 300px; scroll-snap-align: start; display: grid; grid-template-rows: auto 1fr; gap: 14px; }
.reel-frame {
  position: relative; aspect-ratio: 9 / 16; border-radius: 8px; overflow: hidden;
  background: linear-gradient(160deg, var(--brand-cream-deep), var(--brand-tan-soft));
  display: block; border-bottom: 0;
}
.reel-frame:hover { border-bottom: 0; }
.reel-play {
  position: absolute; inset: 0; display: grid; place-items: center;
}
.reel-play .ring {
  width: 56px; height: 56px; border-radius: 50%; border: 1px solid rgba(29,29,27,.35);
  display: grid; place-items: center; transition: var(--transition-quiet);
}
.reel-frame:hover .ring { border-color: var(--brand-ink); background: rgba(255,255,255,.35); }
.reel-play .ring .icon { width: 16px; height: 16px; background: var(--brand-ink); -webkit-mask-image: url(https://unpkg.com/lucide-static@0.445.0/icons/play.svg); mask-image: url(https://unpkg.com/lucide-static@0.445.0/icons/play.svg); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; margin-left: 2px; }
.reel-label { font-family: var(--font-display); font-size: 12px; font-weight: 300; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--text-accent); }
.reel-note { font-size: var(--text-body-sm); line-height: 1.6; color: var(--text-secondary); }

@media (max-width: 720px) {
  .reels { gap: 16px; padding-bottom: 6px; }
  .reels[data-reels="carrossel"] .reel { flex: 0 0 76%; scroll-snap-align: center; }
  .reels[data-reels="empilhado"] { display: grid; grid-template-columns: 1fr; gap: 20px; overflow-x: visible; }
  .reels[data-reels="empilhado"] .reel { flex: none; width: auto; }
}

/* ---------- cursos ---------- */
.cursos-section { background: var(--brand-tan); position: relative; overflow: hidden; }
.cursos-texture { position: absolute; inset: 0; background-image: url(assets/texture-kraft.webp); background-size: 900px; mix-blend-mode: multiply; opacity: .3; pointer-events: none; }
.cursos-content { position: relative; max-width: 980px; margin: 0 auto; padding: clamp(72px,10vw,128px) clamp(20px,6vw,72px); }
.cursos-content p { color: var(--brand-ink); }
.cursos-content p.body-text2 { line-height: 1.6; max-width: 52ch; margin: 24px auto 0; }
.cursos-cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 36px; }

/* ---------- contato ---------- */
.contato-section { background: var(--brand-ink); color: var(--brand-cream); position: relative; overflow: hidden; }
.contato-canvas-wrap { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.contato-head { position: relative; max-width: 980px; margin: 0 auto; padding: clamp(72px,10vw,128px) clamp(20px,6vw,72px) clamp(40px,5vw,56px); }
.contato-head .eyebrow { color: var(--brand-tan); }
.contato-head .h2 { color: var(--brand-cream); }
.contato-head .lede { color: var(--brand-tan-soft); max-width: 44ch; }
.contato-cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 36px; }
.contato-meta { display: flex; flex-wrap: wrap; gap: 8px 28px; justify-content: center; margin-top: 28px; font-size: var(--text-body-sm); color: var(--brand-tan-soft); }
.contato-form-wrap { position: relative; max-width: 720px; margin: 0 auto; padding: 0 clamp(20px,6vw,72px) clamp(72px,10vw,128px); }
.contato-form { background: var(--brand-cream); border-radius: 8px; padding: clamp(28px,4vw,48px); }
.contato-form .eyebrow { margin-bottom: 28px; color: var(--text-accent); text-align: center; }
.contato-form-fields { display: grid; gap: 18px; }
.contato-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 18px; }
.contato-form-foot { font-size: 12px; line-height: 1.6; color: var(--text-muted); text-align: center; }

@media (max-width: 720px) {
  .contato-form-wrap > .contato-form { padding: 24px 20px; }
  .contato-form input, .contato-form select, .contato-form textarea { width: 100%; }
}

/* ---------- footer ---------- */
.site-footer { background: var(--brand-ink); color: var(--brand-cream); border-top: 1px solid rgba(220,199,168,.25); }
.site-footer .wrap { padding: clamp(40px,6vw,72px) clamp(20px,6vw,72px); display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px; align-items: center; }
.site-footer .footer-logo { width: 200px; height: auto; }
.site-footer .footer-note { font-size: 12px; line-height: 1.8; color: var(--brand-tan-soft); max-width: 46ch; }
.site-footer .footer-crm { font-family: var(--font-display); font-size: 12px; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--brand-tan); justify-self: end; }

@media (max-width: 720px) {
  .site-footer .wrap { padding: 48px 22px; grid-template-columns: 1fr; gap: 22px; justify-items: center; text-align: center; }
  .site-footer .footer-logo { width: 160px; }
  .site-footer .footer-note, .site-footer .footer-crm { justify-self: center; }
}

/* mobile section padding overrides matching the design's tighter gutters */
@media (max-width: 720px) {
  #proposito, #formacao, #conteudo { padding: 76px 0 68px; }
  .proposito-head, .conteudo-head, .tratamento-head, .tratamento-cols, .tratamento-body { padding-left: 22px; padding-right: 22px; }
  .proposito-grid, .conteudo-profile, .reels { padding-left: 22px; padding-right: 22px; }
  #formacao, #humano, #abordagem { padding: 76px 22px 68px; }
  #atuacao .atuacao-head { padding: 76px 22px 24px; }
  #cursos .cursos-content { padding: 76px 22px; }
  #contato .contato-head { padding: 76px 22px 40px; }
  #contato .contato-form-wrap { padding: 0 22px 76px; }
  h2.h2 { font-size: clamp(33px,9vw,52px); }
  h3.h3 { font-size: clamp(26px,6.8vw,44px); }
  .lede { font-size: 19px; line-height: 1.42; }
  .proposito-grid { grid-template-columns: 1fr; }
  .formacao-grid { grid-template-columns: 1fr; }
  .humano-grid { grid-template-columns: 1fr; }
  .abordagem-grid { grid-template-columns: 1fr; }
}

/* mobile scroll performance: no live blur over animated layers, stable hero height when the URL bar collapses */
@media (max-width: 720px) {
  .site-header { backdrop-filter: none; background: rgba(251,249,236,.97); }
  @supports (height: 100svh) { .hero { height: 100svh; } }
}

/* static layout for touch devices / reduced motion */
.atuacao-stage.is-static { height: auto !important; }
.is-static .atuacao-snap { display: none; }
.is-static .atuacao-viewport { position: relative; height: auto; min-height: 0; overflow: hidden; }
.is-static .atuacao-card { position: relative; inset: auto; visibility: visible; transform: none; box-shadow: none; padding: clamp(48px,9vw,96px) clamp(20px,6vw,72px); }
.is-static .atuacao-card-inner { filter: none; transform: none; }
.is-static .atuacao-bg-symbol { position: absolute; }

/* ---------- scroll-driven parallax for touch (compositor-driven, smooth on iOS Safari) ---------- */
html.sd .hero { view-timeline: --hero block; }
html.sd .hero-layer { animation: hero-move linear both; animation-timeline: --hero; animation-range: exit 0% exit 100%; }
html.sd .hero-layer-bg { --amt: 34%; }
html.sd .hero-layer-title { --amt: 62%; }
html.sd .hero-layer-portrait { --amt: 12%; }
html.sd .hero-layer-subtitle { --amt: 16%; }
@keyframes hero-move { to { transform: translate3d(0, var(--amt), 0); } }

html.sd .passage-canvas { display: none; }
html.sd .passage-symbol { animation: spin 225s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
html.sd .passage-block { view-timeline: --pb block; animation: pb-fade linear both; animation-timeline: --pb; animation-range: cover 0% cover 100%; }
html.sd .passage-block-inner { animation: pb-curtain linear both; animation-timeline: --pb; animation-range: cover 0% cover 40%; }
html.sd .passage-rule { animation: pb-rule linear both; animation-timeline: --pb; animation-range: cover 0% cover 100%; }
@keyframes pb-fade { 0% { opacity: .1; transform: translate3d(0,40px,0); } 25% { opacity: .75; } 50% { opacity: 1; transform: none; } 75% { opacity: .75; } 100% { opacity: .1; transform: translate3d(0,-40px,0); } }
@keyframes pb-curtain { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes pb-rule { 0% { transform: scaleX(0); } 50% { transform: scaleX(1); } 100% { transform: scaleX(0); } }

html.sd #growth-chart { view-timeline: --chart block; }
html.sd #chart-line { stroke-dasharray: 1; animation: chart-draw cubic-bezier(.5,1,.89,1) both; animation-timeline: --chart; animation-range: cover 10vh cover 72vh; }
html.sd #chart-lamp, html.sd #chart-rays, html.sd #chart-glow { animation: chart-lit linear both; animation-timeline: --chart; animation-range: cover 61vh cover 72vh; }
html.sd #chart-glow { --lit: 1; }
@keyframes chart-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes chart-lit { from { opacity: 0; } to { opacity: var(--lit, 1); } }

html.sd .atuacao-stage { view-timeline: --stage block; }
html.sd .atuacao-card { visibility: visible; }
@keyframes card-first { from { transform: none; } to { transform: translate3d(0,-7%,0) scale(.93); } }
@keyframes card-mid {
  0% { transform: translate3d(0,100%,0); animation-timing-function: cubic-bezier(.215,.61,.355,1); }
  50% { transform: none; animation-timing-function: cubic-bezier(.215,.61,.355,1); }
  100% { transform: translate3d(0,-7%,0) scale(.93); }
}
@keyframes card-last { from { transform: translate3d(0,100%,0); animation-timing-function: cubic-bezier(.215,.61,.355,1); } to { transform: none; } }
html.sd .atuacao-card[data-card="0"] { animation: card-first linear both; animation-timeline: --stage; animation-range: cover 100vh cover 200vh; z-index: 10; }
html.sd .atuacao-card[data-card="1"] { animation: card-mid linear both; animation-timeline: --stage; animation-range: cover 100vh cover 300vh; z-index: 11; box-shadow: 0 -40px 80px rgba(0,0,0,.45); }
html.sd .atuacao-card[data-card="2"] { animation: card-mid linear both; animation-timeline: --stage; animation-range: cover 200vh cover 400vh; z-index: 12; box-shadow: 0 -40px 80px rgba(0,0,0,.45); }
html.sd .atuacao-card[data-card="3"] { animation: card-mid linear both; animation-timeline: --stage; animation-range: cover 300vh cover 500vh; z-index: 13; box-shadow: 0 -40px 80px rgba(0,0,0,.45); }
html.sd .atuacao-card[data-card="4"] { animation: card-last linear both; animation-timeline: --stage; animation-range: cover 400vh cover 500vh; z-index: 14; box-shadow: 0 -40px 80px rgba(0,0,0,.45); }

/* ---------- reel video cards ---------- */
.reel-frame { cursor: pointer; }
.reel-frame video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; opacity: .55; transition: opacity var(--duration-base) var(--ease-standard); }
.reel-frame.is-playing video, .reel-frame.is-ended video { opacity: 1; }
.reel-chip { position: absolute; bottom: 14px; font-family: var(--font-display); font-size: 11px; font-weight: 300; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--brand-cream); background: rgba(29,29,27,.62); backdrop-filter: blur(6px); padding: 7px 12px; border-radius: 999px; white-space: nowrap; pointer-events: none; transition: opacity var(--duration-base) var(--ease-standard); }
.reel-chip-rest { left: 14px; opacity: 1; }
.reel-chip-sound { right: 14px; opacity: 0; }
.reel-frame.is-playing .reel-chip-rest, .reel-frame.is-ended .reel-chip-rest { opacity: 0; }
.reel-frame.is-playing .reel-chip-sound { opacity: 1; }
.reel-end { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 18px; text-align: center; padding: 24px; background: rgba(29,29,27,.82); backdrop-filter: blur(8px); color: var(--brand-cream); border-bottom: 0; opacity: 0; pointer-events: none; transition: opacity var(--duration-slow) var(--ease-out-soft); }
.reel-end:hover { color: var(--brand-cream); border-bottom: 0; }
.reel-frame.is-ended .reel-end { opacity: 1; pointer-events: auto; }
.reel-end-title { font-family: var(--font-serif); font-weight: 300; font-size: clamp(22px,2.4vw,30px); line-height: 1.16; letter-spacing: -.005em; max-width: 18ch; }
.reel-end-rule { height: 1px; width: 56px; background: var(--brand-gold); display: block; }
.reel-end-handle { font-family: var(--font-display); font-size: 12px; font-weight: 300; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--brand-tan); }

/* ---------- contato: text left, form right (desktop) ---------- */
.contato-grid { position: relative; }
@media (min-width: 981px) {
  .contato-grid { max-width: 1240px; margin: 0 auto; padding: clamp(72px,9vw,128px) clamp(20px,6vw,72px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: clamp(48px,7vw,112px); align-items: center; }
  .contato-grid .contato-head { max-width: none; margin: 0; padding: 0; text-align: left; }
  .contato-grid .contato-head .lede { margin-left: 0; margin-right: 0; }
  .contato-grid .contato-cta, .contato-grid .contato-meta { justify-content: flex-start; }
  .contato-grid .contato-form-wrap { max-width: none; margin: 0; padding: 0; }
}

html.sd .passage-ambient-inner .pt { position: absolute; top: 0; background: var(--brand-gold); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; will-change: transform; animation: pdrift linear infinite; }
@keyframes pdrift { 0%, 55% { transform: translate3d(0, 105vh, 0); } 100% { transform: translate3d(var(--dx, 0px), -60px, 0); } }

@media (min-width: 721px) {
  .formacao-grid { max-width: 1040px; }
  .formacao-item { gap: 24px; }
  .formacao-thumb { width: 168px; height: 168px; }
}

/* ---------- dark area: bigger text + paragraph snap on touch ---------- */
@media (max-width: 720px) {
  .passage-block-inner { max-width: min(880px, 90%); }
  .passage-text { font-size: clamp(38px, 10.6vw, 88px); line-height: 1.08; }
  .passage-label { font-size: 13px; }
  .passage-note { font-size: clamp(17px, 4.8vw, 20px); }
}
.hero, #proposito { scroll-snap-align: start; }
.passage-block { scroll-snap-stop: always; }
html.snap-passage { scroll-snap-type: y mandatory; }

@media (max-width: 720px) {
  .atuacao-card-inner > div:first-child { text-align: center; }
  .atuacao-card .atuacao-icon { margin-left: auto; margin-right: auto; }
  .atuacao-card h3 { margin-left: auto; margin-right: auto; }
  .atuacao-card .atuacao-rule { margin-left: auto; margin-right: auto; }
}

@media (max-width: 720px) {
  .atuacao-card p { text-align: center; margin-left: auto; margin-right: auto; }
}
