/* =========================================================
   Capta Solar — transplante estrutural de hobro.digital
   Medidas da captura em 1920px. 1rem = 10px de desenho
   (html escala com a viewport), então 24rem = 240px a 1920.
   ========================================================= */

/* ---------- tokens medidos ---------- */
:root {
  --black: #000000;      /* Carbon — fundo */
  --white: #ffffff;      /* Paper White — tinta */
  --mist: #dddddd;       /* Soft Mist — superfície 2 */
  --graphite: #414141;   /* Graphite — borda */
  --ink-hover: #4c4c4c;  /* rgb(76,76,76) — hover do botão */
  --accent: #00fb96;     /* hover dos ícones sociais */
  --hair: #dbdcca;       /* sublinhado do e-mail */
  --dot: #151515;        /* pontos da seção 04 */

  --f-sans: "Switzer", "Helvetica Neue", Arial, sans-serif;          /* PP Neue Montreal */
  --f-mono: "Geist Mono", ui-monospace, "Courier New", monospace;     /* Akkurat Mono */
  --f-serif: "Cormorant Garamond", Georgia, serif;                    /* Freight Big Pro Light Italic */
  --f-display: "Outfit", "Arial Black", sans-serif;                   /* Kamerik 205 */

  --r-14: 1.4rem; --r-15: 1.5rem; --r-20: 2rem; --r-33: 3.3rem; --r-50: 5rem; --r-100: 10rem;

  --ease-soft: cubic-bezier(0.785, 0.135, 0.15, 0.86);
  --gutter: 1.2rem;

  /* texto pequeno nunca abaixo do legível */
  --t-12: max(1.2rem, 11px);
  --t-14: max(1.4rem, 12px);
  --t-16: max(1.6rem, 13px);
  --t-18: max(1.8rem, 15px);
  --t-22: max(2.2rem, 16px);
  --t-28: max(2.8rem, 18px);
}

html { font-size: calc(100vw / 192); -webkit-text-size-adjust: 100%; }
@media (max-width: 900px) { html { font-size: calc(100vw / 90); } }

*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--white);
  color: var(--black);
  font-family: var(--f-sans);
  font-size: var(--t-16);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, p, figure { margin: 0; font-weight: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.container { padding: 0 var(--gutter); }
@media (max-width: 900px) { :root { --gutter: 16px; } }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.lenis.lenis-smooth { scroll-behavior: auto !important; }

/* ---------- componentes comuns ---------- */
.pill {
  display: inline-flex; align-items: center; justify-content: center; gap: 1rem;
  height: 3rem; min-height: 26px; padding: 0.8rem 1.3rem;
  border-radius: var(--r-33);
  background: var(--black); color: var(--white);
  font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase; white-space: nowrap;
  transition: color .3s;
}
.pill:hover, .pill:focus-visible { color: var(--ink-hover); }
.pill__icon { width: 1.5rem; min-width: 13px; height: auto; fill: none; stroke: currentColor; stroke-width: 1.4; }
.pill--lg { height: 3.8rem; padding: 1.2rem 2.6rem; }
.pill--xl { height: 5.1rem; padding: 1.8rem 3.2rem 1.9rem; }

.dome { width: 4.2rem; height: auto; color: currentColor; }

.title-secondary { display: block; font-size: 8rem; font-weight: 500; line-height: .88; letter-spacing: -0.01em; }
.title-secondary--cursive { font-family: var(--f-serif); font-style: italic; font-weight: 300; font-size: 10rem; text-transform: uppercase; }

.cases__name, .text-small {
  font: 500 var(--t-14)/1.2 var(--f-mono); text-transform: uppercase;
}

/* linhas horizontais que reagem ao mouse (js-svg-line) */
.lines { display: flex; flex-direction: column; margin-top: 1.6rem; }
.lines svg { width: 100%; height: 2.8rem; overflow: visible; }
.lines path { fill: none; stroke: var(--mist); stroke-width: 1; }

/* ---------- cursor ---------- */
.cursor { position: fixed; top: 0; left: 0; z-index: 1000; pointer-events: none; border-radius: 50%; mix-blend-mode: difference; }
.cursor--ring { width: 3.6rem; height: 3.6rem; margin: -1.8rem 0 0 -1.8rem; border: 1px solid var(--white); transition: width .3s, height .3s, margin .3s; }
.cursor--dot { width: .6rem; height: .6rem; margin: -.3rem 0 0 -.3rem; background: var(--accent); mix-blend-mode: normal; }
.cursor.is-hover.cursor--ring { width: 6rem; height: 6rem; margin: -3rem 0 0 -3rem; }
@media (hover: none), (pointer: coarse) { .cursor { display: none; } }

/* =========================================================
   01 · MENU
   ========================================================= */
.header {
  position: fixed; inset: 0 0 auto; z-index: 100; height: 6.4rem;
  color: var(--white);
  transition: color .4s;
}
.header::after {
  content: ""; position: absolute; inset: 0 0 -1.3rem; background: var(--white);
  transform: translateY(-110%); transition: transform 1s var(--ease-soft); z-index: -1;
}
.header.is-scrolled { color: var(--black); }
.header.is-scrolled::after { transform: none; }
.header__container { display: flex; align-items: flex-start; height: 100%; padding: 1.2rem 1.2rem 0; }
.header__logo { position: relative; display: flex; align-items: flex-start; gap: .4rem; height: 5.2rem; width: 14.5rem; }
.logo__short, .logo__full {
  font: 900 3.4rem/.85 var(--f-display); letter-spacing: -0.04em;
  transition: opacity .5s, transform .5s var(--ease-soft);
}
.logo__full { position: absolute; left: 0; top: 0; opacity: 0; transform: translateY(40%); }
.logo__shape { width: 2rem; height: 2rem; margin-top: -.2rem; fill: currentColor; stroke: currentColor; stroke-width: 1.2; transition: transform .8s var(--ease-soft); }
.header.is-scrolled .logo__short { opacity: 0; transform: translateY(-40%); }
.header.is-scrolled .logo__full { opacity: 1; transform: none; }
.header.is-scrolled .logo__shape { transform: translateX(8.4rem) rotate(90deg); }
.pill--header { margin-left: 5rem; opacity: 0; }
.nav { margin-left: auto; }
.header__btn-mobile { display: none; }
.nav__list { display: flex; gap: 0 4.3rem; }
.nav__item--stack { display: flex; flex-direction: column; }
.nav__item--contact { padding-left: 15.2rem; text-align: right; }
.nav__link { position: relative; display: block; font-size: var(--t-22); font-weight: 500; line-height: 1.18; }
.nav__link::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .35s ease-out; }
.nav__link:hover::after { transform: scaleX(1); transform-origin: left; }

/* =========================================================
   02 · HERO
   ========================================================= */
.about { position: relative; height: 100vh; min-height: 56rem; overflow: clip; background: var(--black); color: var(--white); }
.about__media { position: absolute; inset: 0; }
.about__img { width: 100%; height: 100%; object-fit: cover; transform-origin: 50% 40%; }
.about__cover { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.55) 0, rgba(0,0,0,.12) 18%, rgba(0,0,0,.28) 50%, rgba(0,0,0,.12) 78%, rgba(0,0,0,.35) 100%); }
.about__container { position: relative; z-index: 1; height: 100%; display: grid; grid-template-rows: 1fr auto; padding: 0 1.2rem; }
.about__headline { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 13.3rem 0 0; }
.about__title {
  display: flex; justify-content: center; gap: 3.6rem;
  font: 900 23.5rem/1 var(--f-display); letter-spacing: -0.02em; text-transform: uppercase;
}
.about__title > div { display: flex; overflow: hidden; line-height: .8; padding: .8rem 0 0; }
.about__title span { display: block; }
.about__subtitle { margin: 1.2rem 0 3.3rem; text-align: center; font: 500 var(--t-16)/1.1 var(--f-mono); text-transform: uppercase; }
.about__subtitle .line { overflow: hidden; }
.about__subtitle .line > span { display: block; }
.about__dome { width: 4.2rem; color: var(--white); mix-blend-mode: difference; }

.cch {
  justify-self: end; position: relative; width: 37.7rem; min-width: 300px; margin: 0 -.3rem 2.2rem 0;
  padding: 1.6rem 5rem 2rem 2rem; border-radius: var(--r-15); overflow: hidden; color: var(--black);
}
.cch.is-closed { pointer-events: none; }
.cch__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cch__body { position: relative; z-index: 2; }
.cch__title { margin: 0 0 2.7rem; font: 500 var(--t-16)/1 var(--f-sans); text-transform: uppercase; max-width: 26.7rem; }
.cch__close { position: absolute; top: 1.4rem; right: 1.4rem; z-index: 3; width: 3.6rem; height: 3.6rem; min-width: 28px; min-height: 28px; border: 1px solid var(--black); border-radius: 50%; }
.cch__close::before, .cch__close::after { content: ""; position: absolute; left: 50%; top: 50%; width: .8rem; height: 1px; background: var(--black); transform: translate(-50%, -50%) rotate(45deg); }
.cch__close::after { transform: translate(-50%, -50%) rotate(-45deg); }

/* =========================================================
   03 · MANIFESTO + ADESIVOS + CTA
   ========================================================= */
.stickers { background: var(--black); color: var(--white); padding: 10.9rem 0 27.8rem; }
.stickers__content { display: flex; flex-direction: column; align-items: center; text-align: center; }
.stickers__subtitle { max-width: 78.2rem; margin: 0 0 6.1rem; font-size: var(--t-28); font-weight: 500; line-height: 1; text-transform: uppercase; }
.stickers__text { max-width: 55.6rem; font-size: var(--t-18); line-height: 1.2; }
.stickers__stage { position: relative; align-self: flex-end; margin: 0 27.4rem 0 0; display: flex; flex-direction: column; align-items: flex-end; }
.stickers__box { position: relative; width: 24.6rem; height: 11.9rem; background: var(--white); }
.sticker { position: absolute; left: 50%; top: 50%; width: calc(var(--w) * .1rem); height: calc(var(--h) * .1rem); translate: -50% -50%; }
.sticker--card { z-index: 2; }
.st-mono { font: 500 12px var(--f-mono); letter-spacing: .02em; }
.st-disp { font: 900 26px var(--f-display); letter-spacing: -.02em; }
.st-disp--lg { font-size: 44px; }
.st-disp--xl { font-size: 64px; }
.st-serif { font: italic 300 38px var(--f-serif); }
.st-serif--lg { font-size: 44px; }
.stickers__words { margin: 4.3rem -10.6rem 15.9rem 0; display: flex; flex-direction: column; align-items: flex-end; gap: 1.2rem; font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase; }
.stickers__words-row:first-child { margin-right: 12.2rem; }

/* CTA com arcos (03 e 07) */
.cta { position: relative; }
.cta__link { display: flex; align-items: center; justify-content: center; gap: 10rem; min-height: 30.6rem; }
.cta__text { display: flex; flex-direction: column; align-items: center; width: 95.3rem; max-width: 100%; text-align: center; }
.cta__question { font-size: 8rem; font-weight: 500; line-height: .88; letter-spacing: -0.01em; }
.cta__swap { display: block; overflow: hidden; margin-top: 3rem; height: 19rem; }
.cta__word { display: block; font-size: 20rem; font-weight: 400; line-height: .95; letter-spacing: -0.03em; }
.cta__word .ch { display: inline-block; }
.cta__arcs { position: relative; width: 5.3rem; height: 18.6rem; }
.cta__arcs--right { transform: scale(-1, -1); }
.cta__arcs i {
  position: absolute; inset: 0; border: 1px solid currentColor; border-right: 0;
  border-radius: 100% 0 0 100% / 50% 0 0 50%;
}
.cta__hint {
  position: fixed; left: 0; top: 0; z-index: 90; pointer-events: none;
  display: flex; align-items: center; gap: .6rem; padding: 1.8rem 2.4rem; border-radius: 999px;
  background: var(--white); color: var(--black);
  font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase;
  transform: scale(0); opacity: 0;
}
.cta__hint svg { width: 1.5rem; min-width: 12px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.cta--inverse .cta__hint { background: var(--black); color: var(--white); }
.cta-section { background: var(--white); color: var(--black); }

/* =========================================================
   04 · O QUE FAZEMOS
   ========================================================= */
.wwd { position: relative; overflow: hidden; padding: 9.4rem 0 0; background: var(--white); }
.wwd__title { position: relative; height: 21.1rem; overflow: visible; }
.wwd__t { display: block; text-transform: uppercase; }
.wwd__t--cursive {
  position: absolute; z-index: 10; left: -9.6rem; top: 3.7rem;
  font: italic 300 29rem/.88 var(--f-serif); letter-spacing: -0.01em;
  color: var(--white); -webkit-text-stroke: 1px var(--black);
  white-space: nowrap;
}
.wwd__t--a { position: relative; margin-left: 51.2rem; font: 700 24rem/.88 var(--f-display); letter-spacing: -0.01em; }
.wwd__t--b { position: absolute; left: 96rem; top: 15.1rem; font: 700 24rem/.88 var(--f-display); letter-spacing: -0.01em; }
.wwd__text { position: absolute; right: 1.2rem; top: 7.5rem; width: 28.4rem; max-width: 30.8rem; font-size: var(--t-18); line-height: 1.2; }
.wwd__text .caret { display: inline-block; width: 1px; height: 1em; margin-left: 2px; background: currentColor; vertical-align: -2px; animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }

.wwd__services { display: grid; grid-template-columns: 54.4rem 54.4rem 54.4rem 1fr; margin: 18.7rem 0 0; }
.wwd__list li {
  font-size: var(--t-22); font-weight: 500; line-height: 1.2; text-transform: uppercase;
  border-top: 1px solid var(--mist); padding-top: .1rem;
}
.wwd__list:first-child li { padding-left: 1.2rem; }
.wwd__list:last-child li { padding-right: 1.2rem; text-align: right; }
.wwd__list li:last-child { border-bottom: 1px solid var(--mist); }

.wwd__dots { position: relative; display: flex; justify-content: center; height: 63.5rem; margin: 2.5rem 0 19rem; }
.dots { width: auto; height: 100%; overflow: visible; }
.dots circle { fill: var(--dot); transition: r .3s linear; }
.wwd__hint {
  position: fixed; left: 0; top: 0; z-index: 90; pointer-events: none;
  width: 13.6rem; min-width: 118px; height: 5.1rem; min-height: 44px; padding: 1.8rem 0 0; overflow: hidden;
  border-radius: 2.6rem; background: var(--black); color: var(--white); text-align: center;
  font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase;
  transform: scale(0); opacity: 0; transition: height .4s var(--ease-soft), width .4s var(--ease-soft);
}
.wwd__hint-dot { display: inline-block; width: 1rem; height: 1rem; margin-left: .4rem; border-radius: 50%; background: var(--white); vertical-align: -1px; }
.wwd__hint-title, .wwd__hint-quote { opacity: 0; transition: opacity .3s; }
.wwd__hint-title { margin-top: 1.4rem; }
.wwd__hint-quote { margin-top: .8rem; padding: 0 1.2rem; font: 400 max(2rem, 16px)/1 var(--f-sans); letter-spacing: -0.015em; text-transform: none; }
.wwd__hint.is-open { height: 15.6rem; width: 19rem; }
.wwd__hint.is-open .wwd__hint-text { opacity: 0; }
.wwd__hint.is-open .wwd__hint-title, .wwd__hint.is-open .wwd__hint-quote { opacity: 1; }
.wwd__hint.is-open .wwd__hint-title { margin-top: -1.4rem; }

/* =========================================================
   05 · SEGMENTOS
   ========================================================= */
.features { position: relative; background: var(--white); }
.features__list { position: relative; }
.feature { position: relative; z-index: 1; display: flex; justify-content: center; height: 12.6rem; cursor: pointer; outline-offset: -4px; }
.feature__frame { width: 100rem; max-width: 100%; }
.feature + .feature .feature__frame { border-top: 1px solid var(--black); }
.feature__bg {
  position: absolute; left: 0; right: 0; top: .2rem; bottom: .4rem; z-index: -1;
  border-radius: var(--r-20); background: var(--black);
  opacity: 0; transform: scaleX(.5); transition: opacity .45s, transform .6s var(--ease-soft);
}
.feature__content { position: relative; display: flex; justify-content: center; height: 12.3rem; padding: 2rem 0 3.3rem; overflow: hidden; }
.feature__text { display: flex; align-items: flex-end; justify-content: center; position: relative; transition: transform .6s var(--ease-soft), opacity .4s; }
.feature__text--bottom { position: absolute; left: 0; right: 0; top: 2rem; color: var(--white); opacity: 0; transform: translateY(14rem); }
.feature__subtitle { font-size: 8rem; font-weight: 500; line-height: .88; letter-spacing: -0.015em; white-space: nowrap; }
.feature__number { position: absolute; right: calc(100% + 5rem); bottom: .5rem; font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase; white-space: nowrap; }
.feature__text--bottom .feature__number { position: static; margin: 0 5rem .5rem 0; }
.feature__text--bottom .feature__number--right { margin: 0 0 .5rem 5rem; transform: translateY(1.4rem); transition: transform .6s var(--ease-soft) .1s; }
.feature__text--bottom .feature__subtitle { order: 0; }
.feature.is-active .feature__bg { opacity: 1; transform: none; }
.feature.is-active .feature__text--top { transform: translateY(-14rem); opacity: 0; }
.feature.is-active .feature__text--bottom { transform: none; opacity: 1; }
.feature.is-active .feature__number--right { transform: none; }
.feature.is-active + .feature .feature__frame, .feature.is-active .feature__frame { border-color: transparent; }

.features__media {
  position: fixed; left: 0; top: 0; z-index: 99; width: 51.7rem; height: 29.1rem; pointer-events: none;
  overflow: hidden; background: var(--mist); border-radius: 0; opacity: 0; transform: scale(.6);
}
.features__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .4s; }
.features__media img.is-active { opacity: 1; z-index: 5; }

.features-cta { padding: 6rem 1.2rem 0; }
.features-cta__container { max-width: 37.8rem; min-width: 330px; margin: 0 auto; border: 1px solid var(--mist); border-radius: var(--r-15); transition: max-width .8s var(--ease-soft); }
.features-cta:has(.features-cta__body:hover) .features-cta__container { max-width: 100%; }
.features-cta__body { display: grid; grid-template-columns: 7.8rem 1fr; gap: 0 .9rem; padding: 1rem 1.1rem 1rem .8rem; }
.features-cta__image { position: relative; display: grid; place-items: center; width: 7.8rem; min-width: 62px; aspect-ratio: 78/79; }
.features-cta__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: var(--r-14); }
.dome--card { position: relative; width: 4rem; color: var(--black); transition: transform .8s var(--ease-soft); }
.features-cta:has(.features-cta__body:hover) .dome--card { transform: rotate(180deg); }
.features-cta__title { margin: 0 0 1.1rem; font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase; }
.lines--features { margin-top: 18rem; }

/* =========================================================
   06 · ÚLTIMA USINA + OBRAS ENTREGUES
   ========================================================= */
.cases { margin: -1.3rem 0 31.4rem; background: var(--white); }
.cases__latest { margin: 0 0 7.1rem; }
.latest__container { position: relative; height: 92.5rem; overflow: hidden; }
.latest__panel { position: relative; height: 100%; overflow: hidden; }
.latest__panel--cover {
  position: absolute; inset: 0; z-index: 10;
  clip-path: inset(0 0 0 calc(100% - 92.5rem));
  transition: clip-path 1s var(--ease-soft);
}
.latest__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 100% 50%; transition: transform 1s var(--ease-soft); }
.cases__title { position: relative; z-index: 10; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; height: 100%; width: calc(100% - 92.5rem); }
.cases__title .title-secondary { margin-right: 6rem; }
.cases__title--inverse { color: var(--white); }
.cases__latest:hover .latest__panel--cover { clip-path: inset(0 0 0 0); }
.cases__latest:hover .latest__img { transform: scale(1.03); }
.cases__description { margin: .9rem 0 0 calc(100% - 92.5rem); }

.cases__header { display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: flex-end; gap: 3.5rem; }
.stack__list { display: flex; flex-direction: column; gap: .3rem; font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase; white-space: nowrap; }

.cases__list {
  display: grid; margin: 13.5rem 0 0;
  grid-template-columns: 59.9rem 39rem 59.9rem; column-gap: 15.4rem; row-gap: 13.9rem;
  grid-template-rows: 62.5rem 62.5rem 76.4rem 62.5rem 41.6rem;
  justify-content: space-between;
}
.cases__item { display: flex; align-items: flex-end; }
.cases__item--align-right { justify-content: flex-end; }
.cases__item--align-top { align-self: start; height: 41.6rem; }
.cases__item--align-bottom { transform: translateY(15rem); }
.cases__item--align-center { justify-content: flex-end; transform: translateY(7.5rem); }
.cases__item--push { padding-top: 13.9rem; }
.cases__item--center-column { grid-column: 2; }
.case { width: 100%; }
.case--big { max-width: 59.9rem; }
.case--small { max-width: 39rem; }
.case__asset { aspect-ratio: 1; overflow: hidden; background: var(--black); }
.case__asset img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease-soft); }
.case:hover .case__asset img { transform: scale(1.05); }
.case .cases__name { display: block; margin-top: .9rem; }

/* =========================================================
   08 · ENGENHARIA
   ========================================================= */
.aims { position: relative; margin: 28.8rem 0 0; padding: 22.3rem 0 25.5rem; background: var(--black); color: var(--white); }
.aims__bg { position: absolute; inset: 0 0 auto; height: 108rem; min-height: 100vh; overflow: hidden; }
.aims__bg img { width: 100%; height: 100%; object-fit: cover; }
.aims__bg::after { content: ""; position: absolute; inset: auto 0 0; height: 40rem; background: linear-gradient(0deg, var(--black) 11.34%, rgba(0,0,0,0) 56.71%); }
.aims__container { position: relative; z-index: 10; display: flex; flex-direction: column; align-items: center; }
.aims__title {
  margin: 0 0 30rem; text-align: center;
  font: italic 300 24rem/1 var(--f-serif); letter-spacing: -0.01em; text-transform: uppercase;
  overflow: hidden; padding: 0 1.8rem;
}
.aims__subtitle { max-width: 186rem; margin: 0 0 8.2rem; text-align: center; font-size: 8rem; font-weight: 500; line-height: 1.09; letter-spacing: -0.01em; }
.aims__small-title { display: flex; flex-direction: column; max-width: 86rem; margin: 0 0 16.9rem; text-align: center; font-size: var(--t-28); font-weight: 500; line-height: 1; }
.aims__description { display: flex; gap: 10rem; width: 100%; margin: 0 0 19rem; }
.aims__text { max-width: 35rem; font-size: var(--t-18); line-height: 1.2; }
.aims__text:nth-child(2) { margin-top: 8.4rem; }
.aims__text:nth-child(3) { margin-top: 19.4rem; }
.aims__loader { width: 42.8rem; height: auto; margin: 0 0 4.6rem; fill: none; stroke: var(--white); stroke-width: 1.2; }
.aims__mono { max-width: 33rem; margin: 0 0 21rem; text-align: center; font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase; }
.aims__email { position: relative; font: italic 300 9rem/.88 var(--f-serif); letter-spacing: -0.01em; }
.aims__email .ch { position: relative; display: inline-block; }
.aims__email .ch::after { content: ""; position: absolute; left: 0; right: 0; bottom: .02em; height: 1px; background: var(--hair); transform-origin: left; transition: transform .3s; }
.aims__email:hover .ch::after { transform: scaleX(0); transform-origin: right; }

/* =========================================================
   09 · CTA CATÁLOGO
   ========================================================= */
.ccfw { position: relative; height: 17.5rem; min-height: 150px; overflow: hidden; }
.ccfw__image { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; }
.ccfw::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(255,255,255,.42); }
.ccfw__body { position: relative; z-index: 2; max-width: 50rem; margin: 0 auto; padding: 4.5rem 1.2rem 3.9rem; }
.ccfw__title { margin: 0 0 2.6rem; text-align: center; font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase; }
.ccfw .pill { display: flex; width: fit-content; margin: 0 auto; }

/* =========================================================
   10 · CLIENTES
   ========================================================= */
.partners { margin: 20.1rem 0 6.5rem; }
.partners__title { display: flex; flex-direction: column; align-items: flex-start; }
.partners__title .title-secondary--cursive { font-size: 10rem; }
.partners__info { display: flex; justify-content: space-between; gap: 18.2rem; margin: 13.3rem 0 9.4rem; }
.numbers__list li { display: flex; align-items: flex-end; gap: .5rem; height: 4rem; font-size: var(--t-28); font-weight: 500; line-height: 1.2; text-transform: uppercase; white-space: nowrap; }
.numbers__counter { display: inline-flex; font: italic 300 4.5rem/.88 var(--f-serif); }
.numbers__counter b { font-weight: 300; }
.partners__wrapper { display: flex; justify-content: space-between; gap: 4rem; width: 143.5rem; }
.partners__list { display: flex; flex-direction: column; gap: .8rem; font: 500 var(--t-14)/1 var(--f-mono); text-transform: uppercase; }

.callBtn { position: relative; display: flex; align-items: center; justify-content: center; width: 62.7rem; height: 33.8rem; margin: 0 8.6rem 0 auto; }
.callBtn__shape { position: absolute; left: 1.3rem; right: 1.3rem; top: 9.8rem; height: 14.2rem; border: 1px solid var(--black); border-radius: 100%; transform: rotate(-17deg) translateY(-1.6rem); }
.callBtn__shape--bottom { transform: rotate(-17deg) translateY(1rem); overflow: hidden; }
.callBtn__shape--bottom::before { content: ""; position: absolute; inset: 0; background: var(--black); border-radius: 100%; opacity: 0; transition: opacity .3s ease-in-out; }
.callBtn__link { position: relative; z-index: 11; display: flex; align-items: center; justify-content: center; width: 60.2rem; height: 14.2rem; font: 400 var(--t-14)/1 var(--f-mono); text-transform: uppercase; transition: color .3s; }
.callBtn:hover .callBtn__shape--bottom::before { opacity: 1; }
.callBtn:hover .callBtn__link { color: var(--white); }
.callBtn__star { position: absolute; left: calc(var(--x) * .1rem); top: calc(var(--y) * .1rem); width: calc(var(--s) * .1rem); min-width: 4px; fill: var(--black); z-index: 12; }

/* =========================================================
   11 · EQUIPE
   ========================================================= */
.team { overflow: hidden; padding: 2rem 0 0; }
.team__header { position: relative; margin: 0 0 20.4rem; }
.title__box { position: relative; }
.team__title {
  display: flex; flex-direction: column;
  font: 800 24rem/.84 var(--f-display); letter-spacing: -0.01em; text-transform: uppercase;
  transform: scaleX(1.1); transform-origin: left;
}
.team__line { display: block; white-space: nowrap; }
.team__o { position: relative; display: inline-block; }
.team__o-ghost { visibility: hidden; }
.team__sun { position: absolute; left: 50%; top: 50%; width: 88%; height: auto; translate: -50% -46%; color: var(--black); }
.curtains { position: absolute; inset: -4rem 0 -4rem; z-index: 5; display: flex; pointer-events: none; }
.curtains span { flex: 1; background: var(--white); transform-origin: top; }
.team__description { position: relative; z-index: 1; display: flex; flex-direction: column; width: 40rem; margin: -13.4rem 20rem 0 auto; font-size: var(--t-28); font-weight: 500; line-height: 1.2; text-transform: uppercase; }
.team__word:nth-child(2) { padding-left: 1.2rem; }
.team__word:nth-child(3) { padding-left: 14rem; }
.team__word:nth-child(4) { padding-left: 3rem; }

.team__wrapper { display: flex; gap: 15rem; }
.team__text { flex: 0 0 30.8rem; margin-left: 11.4rem; font-size: var(--t-18); line-height: 1.2; }
.team__slider { flex: 1; max-width: 132.4rem; overflow: hidden; cursor: grab; }
.team__slider:active { cursor: grabbing; }
.team__track { display: flex; gap: 2rem; width: max-content; will-change: transform; }
.team__slide { width: 17.2rem; min-width: 120px; user-select: none; }
.team__number { display: block; margin: 0 0 1.4rem; font: 500 var(--t-14)/1 var(--f-mono); }
.team__slide img { width: 100%; aspect-ratio: 172/220; object-fit: cover; pointer-events: none; background: var(--mist); }
.team__list { display: flex; flex-direction: column; gap: 2rem; max-width: 132.4rem; margin: 6rem 0 0 auto; }
.team__name { display: block; font-size: var(--t-18); line-height: 1.2; letter-spacing: -0.015em; }
.team__position { display: block; font: 500 var(--t-12)/1 var(--f-mono); text-transform: uppercase; }

/* =========================================================
   12 · RODAPÉ
   ========================================================= */
.footer { margin: 20rem 0 0; padding: 2rem 0 0; overflow: hidden; background: var(--white); }
.footer__title {
  display: flex; flex-direction: column; align-items: center;
  font: 800 24rem/.79 var(--f-display); letter-spacing: -0.01em; text-transform: uppercase;
  transform: scaleX(1.1);
}
.footer__wrapper { position: relative; display: flex; gap: 13.2rem; margin: 16rem 0 0; }
.footer__left { display: flex; flex-direction: column; align-items: center; width: 80.8rem; padding: 18.4rem 0 0; }
.footer__text { width: 20.6rem; min-width: 170px; }
.footer__numbers { display: block; white-space: nowrap; font-size: 8rem; line-height: .88; letter-spacing: -0.01em; }
.footer__copy { display: block; font: 500 var(--t-16)/1.1 var(--f-mono); text-transform: uppercase; }
.footer__link { position: relative; display: inline-block; white-space: nowrap; margin: 22.1rem 0 3rem; font: 500 var(--t-16)/1.1 var(--f-mono); text-transform: uppercase; }
.footer__link::after, .contact-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--black); transform: scaleX(0); transform-origin: left; transition: transform .25s ease-out; }
.footer__link:hover::after, .contact-link:hover::after { transform: scaleX(1); }
.footer__media { position: relative; width: 100%; height: 31.9rem; }
.footer__media img { width: 100%; height: 100%; object-fit: cover; }
.footer__right { flex: 1; padding-top: 2rem; }
.contact-links { display: flex; flex-direction: column; align-items: flex-start; }
.dome--footer { width: 4.3rem; }
.dome--flip { transform: scaleY(-1); }
.contact-links__wrapper { display: flex; flex-direction: column; gap: 3.5rem; margin: 3rem 0; }
.contact-links__text { display: flex; flex-direction: column; align-items: flex-start; gap: 2rem; font: 500 var(--t-16)/1.1 var(--f-mono); text-transform: uppercase; }
.contact-link { position: relative; }
.contact-links__dot { display: block; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--black); }
.pill--footer { margin-top: 1.4rem; }
.socials { display: flex; align-items: center; gap: 1.6rem; }
.socials__link { position: relative; display: block; }
.socials__link::before { content: ""; position: absolute; left: 50%; top: 50%; width: 4rem; height: 4rem; min-width: 36px; min-height: 36px; transform: translate(-50%, -50%); }
.socials svg { width: 1.8rem; min-width: 15px; height: auto; fill: var(--black); transition: fill .3s; }
.socials__link:hover svg path { fill: var(--accent); }

/* =========================================================
   estado inicial da coreografia (só com JS; saída em 4s)
   ========================================================= */
html.motion .about__title span,
html.motion .about__subtitle .line > span,
html.motion .about__dome,
html.motion .cch,
html.motion .stickers__words span,
html.motion .case__asset,
html.motion .curtains span { visibility: hidden; }

/* =========================================================
   até 900px — a captura só existe em 1920; isto é trabalho novo
   ========================================================= */
@media (max-width: 900px) {
  .header { height: 56px; }
  .header__container { padding: 14px 16px 0; align-items: center; height: 42px; box-sizing: content-box; }
  .header__logo { width: auto; height: auto; }
  .logo__short, .logo__full { font-size: 26px; }
  .logo__shape { width: 16px; height: 16px; }
  .header.is-scrolled .logo__shape { transform: translateX(72px) rotate(90deg); }
  .pill--header { display: none; }
  .header__btn-mobile { position: relative; z-index: 2; display: block; width: 44px; height: 44px; margin: -6px -10px 0 auto; }
  .header__btn-mobile span { position: absolute; left: 11px; right: 11px; height: 2px; border-radius: 6px; background: currentColor; transition: transform .3s, top .3s; }
  .header__btn-mobile span:first-child { top: 17px; }
  .header__btn-mobile span:last-child { top: 25px; }
  .header.menu-open .header__btn-mobile span:first-child { top: 21px; transform: rotate(45deg); }
  .header.menu-open .header__btn-mobile span:last-child { top: 21px; transform: rotate(-45deg); }
  .header.menu-open { color: var(--white); }
  .nav {
    position: fixed; inset: 0; z-index: 1; margin: 0; display: flex; align-items: center; padding: 0 16px;
    background: var(--black); color: var(--white);
    clip-path: inset(0 0 100% 0); visibility: hidden; transition: clip-path .7s var(--ease-soft), visibility 0s .7s;
  }
  .header.menu-open .nav { clip-path: inset(0); visibility: visible; transition: clip-path .7s var(--ease-soft); }
  .nav__list { flex-direction: column; gap: 8px; }
  .nav__item--stack { gap: 8px; }
  .nav__item--contact { padding-left: 0; text-align: left; }
  .nav__link { font-size: 44px; line-height: 1; }
  .header.menu-open::after { transform: translateY(-110%); }

  .about__title { flex-direction: column; align-items: center; gap: 0; font-size: 19rem; }
  .about__headline { padding-top: 6rem; }
  .about__subtitle { margin-top: 14px; }
  .header__logo { position: relative; z-index: 2; }
  .cch { justify-self: stretch; width: auto; margin: 0 0 16px; }
  .cch__title { max-width: none; }

  .stickers { padding: 8rem 0 10rem; }
  .stickers__stage { align-self: center; margin: 6rem 0 0; }
  .stickers__words { margin: 3rem 0 6rem; }
  .cta__link { gap: 2rem; min-height: 0; }
  .cta__arcs { width: 3rem; height: 12rem; }
  .cta__question { font-size: 5rem; }
  .cta__word { font-size: 12rem; }
  .cta__swap { height: 12rem; margin-top: 1.6rem; }

  .wwd { padding-top: 6rem; }
  .wwd__title { height: auto; display: flex; flex-direction: column; gap: 0; padding: 0 1.2rem; }
  .wwd__t--cursive { position: relative; left: 0; top: 0; font-size: 9rem; color: var(--black); -webkit-text-stroke: 0; }
  .wwd__t--a, .wwd__t--b { position: relative; left: 0; top: 0; margin: 0; font-size: 16rem; }
  .wwd__text { position: static; width: auto; max-width: none; padding: 3rem 1.2rem 0; }
  .wwd__services { grid-template-columns: 1fr; margin-top: 5rem; }
  .wwd__list li, .wwd__list:first-child li, .wwd__list:last-child li { padding: 0 1.2rem; text-align: left; }
  .wwd__dots { height: 60rem; margin: 4rem 0 8rem; }
  .wwd__hint { display: none; }

  .feature { height: auto; }
  .feature__content { height: auto; padding: 2rem 0; }
  .feature__subtitle { font-size: 5.4rem; }
  .feature__number { position: static; margin-right: 1.6rem; }
  .feature__text--top { gap: 0; }
  .features__media { display: none; }
  .features-cta__body { grid-template-columns: 64px 1fr; gap: 0 12px; }
  .features-cta__image { width: 64px; }

  .latest__container { height: 70rem; }
  .latest__panel--cover { clip-path: inset(0); }
  .cases__title { width: 100%; align-items: flex-start; justify-content: flex-end; padding: 0 16px 24px; }
  .cases__title .title-secondary { margin: 0; }
  .cases__description { margin-left: 0; }
  .cases__header { flex-direction: column-reverse; align-items: flex-start; gap: 2rem; }
  .title-secondary { font-size: 6.4rem; }
  .title-secondary--cursive { font-size: 7.6rem; }
  .cases__list { grid-template-columns: 1fr 1fr; grid-template-rows: none; gap: 5rem 2rem; margin-top: 6rem; }
  .cases__item, .cases__item--align-top { height: auto; transform: none !important; padding: 0; justify-content: flex-start; align-self: auto; }
  .cases__item--center-column { grid-column: auto; }
  .case--big, .case--small { max-width: none; }
  .cases { margin-bottom: 12rem; }

  .aims { margin-top: 10rem; padding: 12rem 0 12rem; }
  .aims__bg { height: 80rem; }
  .aims__title { font-size: 9.6rem; margin-bottom: 14rem; }
  .aims__subtitle { font-size: 4.2rem; }
  .aims__small-title { margin-bottom: 8rem; }
  .aims__small-title .line { display: inline; }
  .aims__description { flex-direction: column; gap: 3rem; margin-bottom: 8rem; }
  .aims__text:nth-child(n) { margin-top: 0; max-width: none; }
  .aims__loader { width: 60%; }
  .aims__mono { margin-bottom: 8rem; max-width: 80%; }
  .aims__email { font-size: 6rem; }

  .ccfw { height: auto; }
  .ccfw .pill { white-space: normal; height: auto; }

  .partners { margin-top: 10rem; }
  .partners__info { flex-direction: column; gap: 5rem; margin: 5rem 0; }
  .partners__wrapper { width: auto; flex-wrap: wrap; gap: 3rem 4rem; }
  .partners__list { width: calc(50% - 2rem); }
  .callBtn { width: 100%; height: 30rem; margin: 0; }
  .callBtn__shape { left: 4rem; right: 4rem; }
  .callBtn__link { width: 100%; }

  .team__title { font-size: 15rem; }
  .team__description { width: auto; margin: 4rem 0 0; }
  .team__header { margin-bottom: 8rem; }
  .team__wrapper { flex-direction: column; gap: 4rem; }
  .team__text { flex: none; margin: 0; }
  .team__list { margin: 5rem 0 0; }

  .footer { margin-top: 10rem; }
  .footer__title { font-size: 17rem; }
  .footer__wrapper { flex-direction: column; gap: 6rem; margin-top: 8rem; }
  .footer__left { width: 100%; padding: 0; }
  .footer__link { margin: 4rem 0; }
  .footer__right { padding: 0 1.2rem 6rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
