/* Global base + shared components, verbatim from source <style> (shared by all sections). */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 72px; touch-action: manipulation; overflow-x: hidden; overflow-x: clip; overscroll-behavior-x: none; }
body { margin: 0; background: var(--papel); color: var(--texto); font: 400 16px/1.6 var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; overflow-x: clip; overscroll-behavior-x: none; }
img, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--rosa); outline-offset: 3px; }
em.s, .s { font-family: var(--serif); font-style: italic; font-weight: 400; letter-spacing: -.01em; }
.ico { width: 1em; height: 1em; flex: none; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cont { width: min(var(--larg), calc(100% - 40px)); margin-inline: auto; }
.rot { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; }

/* Brand marks: painted with currentColor through a PNG mask (paths relative to this file) */
.logo { display: block; background: currentColor; -webkit-mask: url("../fotos/marca.png") center / contain no-repeat; mask: url("../fotos/marca.png") center / contain no-repeat; aspect-ratio: 1272 / 172; }
.lockup { display: block; background: currentColor; -webkit-mask: url("../fotos/logo.png") center / contain no-repeat; mask: url("../fotos/logo.png") center / contain no-repeat; aspect-ratio: 1272 / 509; }

/* Button: fill wipes up from below via ::before (translateY(101%) -> 0, .5s ease) */
.btn { --bg: var(--marfim); --fg: var(--tinta); --bg2: var(--blush); position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 28px; background: var(--bg); color: var(--fg); border: 0; border-radius: 0; font-size: 12.5px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; overflow: hidden; isolation: isolate; transition: color .4s var(--ease); }
.btn::before { content: ''; position: absolute; inset: 0; background: var(--bg2); transform: translateY(101%); transition: transform .5s var(--ease); z-index: -1; }
.btn:hover::before { transform: translateY(0); }
.btn.escuro { --bg: var(--tinta); --fg: var(--marfim); --bg2: var(--tinta-3); }
.btn.contorno { --bg: transparent; --fg: currentColor; box-shadow: inset 0 0 0 1px currentColor; }
.btn .ico { font-size: 16px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* shared .link rules (source lines 84-86) */
.link { position: relative; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.link::after { content: ''; position: absolute; left: 0; right: 0; bottom: -3px; height: 1px; background: currentColor; transform: scaleX(.25); transform-origin: left; transition: transform .45s var(--ease); }
.link:hover::after { transform: scaleX(1); }
