*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 70px; -webkit-text-size-adjust: 100%; }
body { font-family: var(--font-sans); font-weight: 300; background: var(--color-bg-dark); color: var(--color-text-light); line-height: 1.6; overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
::selection { background: var(--color-gold); color: #111; }

.container { width: min(100% - 40px, var(--container)); margin-inline: auto; }
.container--narrow { width: min(100% - 40px, 680px); }
.section { padding-block: var(--section-padding); position: relative; }
.section--light { background: var(--color-bg-light); color: var(--color-text-dark); }
.section--dark { background: var(--color-bg-dark); }
.section__head { text-align: center; margin-bottom: 56px; }

.eyebrow { font-size: 0.8rem; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--color-gold); margin-bottom: 14px; }
.eyebrow--light { color: var(--color-text-light); }
.title { font-family: var(--font-serif); font-weight: 400; line-height: 1.15; font-size: clamp(2rem, 4.2vw, 2.9rem); letter-spacing: -.01em; }
.title--md { font-size: clamp(1.7rem, 3.4vw, 2.3rem); }
.title--sm { font-size: clamp(1.6rem, 3vw, 2.1rem); }
.title--left { text-align: left; }

/* Barra de progresso de scroll */
.progress { position: fixed; top: 0; left: 0; height: 2px; width: 100%; z-index: 200; background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light)); transform-origin: left; transform: scaleX(var(--p, 0)); }

/* Revelação ao rolar */
.reveal { opacity: 0; transform: translateY(32px); filter: blur(8px); transition: opacity .9s var(--ease) var(--d, 0s), transform .9s var(--ease) var(--d, 0s), filter .9s var(--ease) var(--d, 0s); will-change: opacity, transform; }
.reveal--left { transform: translateX(-60px); }
.reveal.is-visible { opacity: 1; transform: none; filter: none; }
.reveal--line { transform: scaleX(0); transform-origin: left; filter: none; }
.reveal--line.is-visible { transform: scaleX(1); }

/* Placeholders de imagem (somem quando a foto real existe) */
.ph { position: relative; overflow: hidden; background: #1a1411; }
.ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal, .hero__title .line > span { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; animation: none !important; }
}
