/* ─────────────────────────────────────────────
   FERNANDA CALDEIRA — Minimal Monochrome
   Black · White · Grays only
   System fonts · Breathing room · Clean lines
   ───────────────────────────────────────────── */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Great+Vibes&display=swap');

/* ── TOKENS ── */
:root {
  /* ── Grayscale Core ── */
  --black:      #0A0A0A;
  --white:      #FFFFFF;
  --gray-900:   #111111;
  --gray-700:   #333333;
  --gray-500:   #777777;
  --gray-300:   #C8C8C8;
  --gray-100:   #F0F0F0;
  --gray-50:    #F8F8F8;

  /* Semantic map — everything resolves to gray */
  --blue-deep:   #0A0A0A;
  --blue-navy:   #111111;
  --blue-dark:   #333333;
  --blue-mid:    #777777;
  --blue-vivid:  #333333;
  --blue-bright: #555555;
  --blue-sky:    #999999;
  --blue-pale:   #E8E8E8;
  --dark:        #0A0A0A;
  --off-white:   #F8F8F8;

  --magenta:    #333333;
  --magenta-dk: #111111;
  --orange:     #555555;
  --teal:       #333333;
  --yellow:     #555555;
  --accent:     #333333;

  --crimson-deep:  #111111;
  --crimson-dark:  #333333;
  --crimson-rich:  #555555;
  --crimson-mid:   #333333;
  --rose-muted:    #999999;
  --rose-pale:     rgba(0,0,0,.04);

  --cream:         #F8F8F8;
  --cream-warm:    #F0F0F0;
  --cream-deep:    #DEDEDE;
  --cream-card:    #FFFFFF;

  --gold:          #333333;
  --gold-warm:     #555555;
  --gold-pale:     rgba(0,0,0,.06);
  --gold-deep:     #111111;

  /* Text */
  --text-dark:        #0A0A0A;
  --text-mid:         #333333;
  --text-light:       #777777;
  --text-on-crimson:  #FFFFFF;

  /* Type — system fonts */
  --sans:   system-ui, Arial, Helvetica, sans-serif;
  --serif:  Georgia, 'Times New Roman', Times, serif;
  --mono:   'Courier New', Courier, monospace;

  /* System */
  --radius:      0px;
  --radius-lg:   0px;
  --transition:  0.18s ease;
  --shadow:      none;
  --shadow-lg:   none;
  --shadow-gold: none;
}

/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: auto; font-size: 16px; } /* Lenis handles smooth scroll */
body {
  font-family: var(--sans);
  background: var(--cream);
  color: var(--text-dark);
  line-height: 1.75;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; }

/* ── LAYOUT ── */
.container {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 1.75rem;
}
.section { padding: 108px 0; }
.section-alt { background: var(--cream-warm); }

/* ── TYPOGRAPHY ── */
h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1.18;
  color: var(--text-dark);
}
h1 { font-size: clamp(2.8rem, 5.5vw, 4.8rem); }
h2 { font-size: clamp(2rem, 3.8vw, 3.2rem); }
h3 { font-size: clamp(1.4rem, 2.5vw, 2rem); }
h4 { font-size: 1.2rem; }

p { color: var(--text-mid); margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }

.section-kicker {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--crimson-rich);
  margin-bottom: 0.8rem;
  display: block;
}

/* ── BUTTONS ── */
.btn {
  display: inline-block;
  padding: 0.9rem 2.4rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--crimson-dark);
  color: var(--cream);
  border-radius: var(--radius);
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition);
  border: 1.5px solid var(--crimson-dark);
  margin-top: 1.75rem;
  position: relative;
  overflow: hidden;
}
.btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(150,150,150,.18) 0%, transparent 60%);
  opacity: 0;
  transition: opacity var(--transition);
}
.btn:hover {
  background: var(--crimson-rich);
  border-color: var(--crimson-rich);
  transform: translateY(-3px);
  box-shadow: var(--shadow-gold);
}
.btn:hover::after { opacity: 1; }

.btn-outline {
  background: transparent;
  color: var(--crimson-dark);
  border-color: var(--crimson-dark);
}
.btn-outline::after { display: none; }
.btn-outline:hover {
  background: var(--crimson-dark);
  color: var(--cream);
  box-shadow: var(--shadow);
}

.btn-hero {
  background: transparent;
  color: var(--white);
  border-color: rgba(255,255,255,.5);
  backdrop-filter: none;
}
.btn-hero:hover {
  background: var(--white);
  border-color: var(--white);
  color: var(--black);
  box-shadow: none;
}

.btn-full { width: 100%; text-align: center; }

.btn-whatsapp {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  background: #25D366;
  color: #fff;
  border-color: #25D366;
  margin-top: 1.5rem;
}
.btn-whatsapp:hover { background: #1aad55; border-color: #1aad55; box-shadow: 0 4px 20px rgba(37,211,102,.35); }
.btn-whatsapp .wa-icon { width: 19px; height: 19px; flex-shrink: 0; }

/* ── HEADER ── */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: transparent;
  transition: background var(--transition), padding var(--transition), box-shadow var(--transition);
  padding: 1.5rem 0;
}
.site-header.scrolled {
  background: var(--white);
  box-shadow: none;
  border-bottom: 1px solid var(--gray-300);
  padding: 0.85rem 0;
}
.site-header--solid {
  background: var(--white) !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--gray-300);
  padding: 0.85rem 0 !important;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.site-logo {
  display: flex;
  flex-direction: column;
  line-height: 1;
  text-decoration: none;
  gap: 0.25rem;
}
.logo-name {
  font-family: var(--serif);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: -0.01em;
}
.logo-sub {
  font-size: 0.6rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  font-family: var(--mono);
}

/* When header is white (scrolled/solid), flip logo/nav to dark */
.site-header.scrolled .logo-name,
.site-header--solid .logo-name { color: var(--black); }
.site-header.scrolled .logo-sub,
.site-header--solid .logo-sub  { color: var(--gray-500); }
.site-header.scrolled .site-nav a,
.site-header--solid .site-nav a { color: var(--black); opacity: 0.6; }
.site-header.scrolled .site-nav a:hover,
.site-header--solid .site-nav a:hover,
.site-header.scrolled .site-nav a.nav-active,
.site-header--solid .site-nav a.nav-active { opacity: 1; color: var(--black); }
.site-header.scrolled .lang-toggle,
.site-header--solid .lang-toggle { color: var(--black); }
.site-header.scrolled .menu-toggle,
.site-header--solid .menu-toggle { color: var(--black); }

.site-nav ul {
  display: flex;
  gap: 2.2rem;
  list-style: none;
}
.site-nav a {
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-family: var(--mono);
  color: rgba(255,255,255,.75);
  opacity: 1;
  transition: opacity var(--transition), color var(--transition);
  position: relative;
  padding-bottom: 2px;
  text-decoration: none;
}
.site-nav a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0; right: 100%;
  height: 1px;
  background: var(--white);
  transition: right var(--transition);
}
.site-nav a:hover,
.site-nav a.nav-active { opacity: 1; color: var(--white); }
.site-nav a:hover::after,
.site-nav a.nav-active::after { right: 0; }

.header-actions { display: flex; align-items: center; gap: 1.1rem; }

.lang-toggle {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-on-crimson);
  opacity: 0.62;
  transition: opacity var(--transition);
  padding: 0.3rem 0;
}
.lang-toggle:hover { opacity: 1; }
.lang-toggle .active { opacity: 1; color: var(--gold-warm); font-weight: 500; }
.lang-divider { opacity: 0.35; }

.menu-toggle {
  display: none;
  font-size: 1.35rem;
  color: var(--cream);
  padding: 0.2rem;
}

/* ── HERO ── */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background: var(--crimson-deep) url('../images/hero.jpg') center/cover no-repeat;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(160deg,
      rgba(74,16,32,.92)  0%,
      rgba(107,25,41,.75) 45%,
      rgba(139,36,56,.48) 75%,
      rgba(139,36,56,.22) 100%);
}
.hero-overlay::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 30%, var(--gold-warm) 60%, transparent 100%);
  opacity: 0.65;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 740px;
  padding-top: 80px;
}
.hero-kicker {
  font-size: 0.7rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold-warm);
  margin-bottom: 1.4rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;           /* words wrap at word boundary, not char boundary */
  gap: 0.4rem 0.75rem;
}
.hero-kicker::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--gold);
}
.hero-headline {
  font-family: var(--serif);
  font-size: clamp(3.2rem, 6.5vw, 5.5rem);
  font-weight: 300;
  font-style: italic;
  color: var(--cream);
  line-height: 1.12;
  margin-bottom: 0;
}

.hero-scroll-arrow {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  color: var(--gold-warm);
  opacity: 0.55;
  animation: bounce 2.4s infinite;
  transition: opacity var(--transition);
}
.hero-scroll-arrow:hover { opacity: 1; }
.hero-scroll-arrow svg { width: 28px; height: 28px; }
@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  55%       { transform: translateX(-50%) translateY(9px); }
}

/* ── STATS STRIP ── */
.stats-strip {
  background: var(--crimson-rich);
  padding: 3.5rem 0;
  position: relative;
  overflow: hidden;
}
.stats-strip::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -45deg,
    rgba(150,150,150,.05) 0px,
    rgba(150,150,150,.05) 1px,
    transparent 1px,
    transparent 28px
  );
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  text-align: center;
  position: relative;
  z-index: 1;
}
.stat-item {
  padding: 1rem 1.5rem;
  border-right: 1px solid rgba(150,150,150,.22);
}
.stat-item:last-child { border-right: none; }
.stat-number {
  font-family: var(--serif);
  font-size: clamp(2.8rem, 4.5vw, 3.8rem);
  color: var(--gold-warm);
  line-height: 1;
  font-style: italic;
}
.stat-plus {
  font-family: var(--serif);
  font-size: 2rem;
  color: var(--gold);
}
.stat-item p {
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-on-crimson);
  opacity: 0.65;
  margin-top: 0.5rem;
  margin-bottom: 0;
}

/* ── HOME INTRO ── */
.home-intro {
  text-align: center;
  padding: 100px 0;
}
.home-intro h2 { max-width: 660px; margin: 0.6rem auto 1.4rem; font-style: italic; }
.home-intro p  { max-width: 540px; margin: 0 auto 0.5rem; }

/* ── HOME SERVICES PREVIEW ── */
.home-services {
  padding: 100px 0;
  background: var(--crimson-dark);
  position: relative;
  overflow: hidden;
}
.home-services::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 15% 85%, rgba(150,150,150,.09) 0%, transparent 60%),
              radial-gradient(ellipse 60% 80% at 85% 15%, rgba(150,150,150,.06) 0%, transparent 55%);
  pointer-events: none;
}
.home-services .section-kicker { color: var(--gold-warm); }
.home-services .section-header h2 { color: var(--cream); }
.home-services .servico-card { background: rgba(255,255,255,.06); border-color: rgba(150,150,150,.2); }
.home-services .servico-card:hover { background: rgba(255,255,255,.10); }
.home-services .servico-card h3,
.home-services .servico-card p,
.home-services .servico-card li { color: var(--text-on-crimson); }
.home-services .servico-card p   { opacity: 0.82; }
.home-services .servico-card li  { opacity: 0.78; }
.home-services .servico-card li::before { background: var(--gold); }

/* ── HOME PORTFOLIO STRIP ── */
.home-portfolio { padding: 100px 0; }
.home-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  margin-bottom: 2.75rem;
}
.home-portfolio-grid .portfolio-item { aspect-ratio: 4/3; }

/* ── HOME TESTIMONIAL ── */
.home-testimonial {
  background: var(--crimson-deep);
  padding: 100px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.home-testimonial::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 70% 50% at 50% 100%, rgba(150,150,150,.12) 0%, transparent 65%);
  pointer-events: none;
}
.home-testimonial .section-kicker { color: var(--gold-warm); }
.home-testimonial blockquote { max-width: 720px; margin: 0 auto; position: relative; z-index: 1; }
.home-testimonial blockquote p {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.35rem, 2.5vw, 1.9rem);
  color: var(--cream);
  line-height: 1.55;
  margin-bottom: 2rem;
}
.home-testimonial blockquote footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
}
.home-testimonial cite {
  font-style: normal;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--gold-warm);
  letter-spacing: 0.06em;
}
.home-testimonial footer span {
  font-size: 0.7rem;
  color: var(--text-on-crimson);
  opacity: 0.5;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ── CTA STRIP ── */
.cta-strip {
  background: var(--cream-warm);
  padding: 100px 0;
  text-align: center;
  position: relative;
}
.cta-strip::before,
.cta-strip::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold), var(--gold-warm), var(--gold), transparent);
  opacity: 0.4;
}
.cta-strip::before { top: 0; }
.cta-strip::after  { bottom: 0; }
.cta-strip h2 { margin-bottom: 1rem; font-style: italic; }
.cta-strip p  { max-width: 500px; margin: 0 auto 0; }

/* ── ACTIVE NAV ── */
.site-nav a.nav-active { opacity: 1; color: var(--gold-warm); }

/* ── PAGE BANNER ── */
.page-banner {
  background: var(--crimson-deep) url('../images/hero.jpg') center/cover no-repeat;
  position: relative;
  padding: 9.5rem 0 5.5rem;
  overflow: hidden;
}
.page-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(74,16,32,.94) 0%, rgba(107,25,41,.76) 55%, rgba(107,25,41,.5) 100%);
}
.page-banner::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 25%, var(--gold-warm) 50%, var(--gold) 75%, transparent 100%);
  opacity: 0.65;
}
.page-banner-content { position: relative; z-index: 2; }
.page-banner-content .section-kicker { color: var(--gold-warm); }
.page-banner-content h1 {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 300;
  color: var(--cream);
  font-size: clamp(2.8rem, 5.5vw, 4.4rem);
  line-height: 1.15;
  margin-top: 0.5rem;
}

/* ── SOBRE ── */
.sobre-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 5.5rem;
  align-items: center;
}
.sobre-image { position: relative; }
.image-frame {
  aspect-ratio: 3/4;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--cream-deep);
}
.image-frame img { width: 100%; height: 100%; object-fit: cover; }
.image-frame.placeholder {
  background: linear-gradient(145deg, var(--rose-pale) 0%, var(--cream-deep) 100%);
}
.sobre-accent-box {
  position: absolute;
  bottom: -1.75rem;
  right: -1.75rem;
  width: 58%;
  height: 58%;
  border: 1.5px solid var(--gold);
  border-radius: var(--radius-lg);
  z-index: -1;
  opacity: 0.45;
}
.sobre-accent-box::before {
  content: '';
  position: absolute;
  inset: 10px;
  border: 1px solid var(--gold-pale);
  border-radius: var(--radius);
  opacity: 0.6;
}
.sobre-text h2 { margin-bottom: 1.5rem; font-style: italic; }
.sobre-text p  { margin-bottom: 1.1rem; }

/* SOBRE — values */
.sobre-values {
  background: var(--crimson-dark);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}
.sobre-values::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 90% 70% at 50% 110%, rgba(150,150,150,.12) 0%, transparent 60%);
  pointer-events: none;
}
.sobre-values .section-kicker { color: var(--gold-warm); }
.sobre-values .section-header h2 { color: var(--cream); font-style: italic; }
.sobre-values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 3rem;
}
.sobre-value-item {
  text-align: center;
  padding: 2.5rem 2rem;
  border: 1px solid rgba(150,150,150,.22);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.05);
  transition: background var(--transition), border-color var(--transition);
}
.sobre-value-item:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(150,150,150,.4);
}
.sobre-value-icon {
  margin-bottom: 1.1rem;
  display: flex;
  justify-content: center;
}
.sobre-value-icon svg { width: 30px; height: 30px; color: var(--gold-warm); }
.sobre-value-item h3 { font-size: 1.4rem; margin-bottom: 0.7rem; color: var(--cream); font-style: italic; }
.sobre-value-item p  { font-size: 0.9rem; color: var(--text-on-crimson); opacity: 0.78; }

/* ── SERVIÇOS ── */
.section-header { text-align: center; margin-bottom: 3.75rem; }
.section-header h2 { margin-top: 0.5rem; }

.servicos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
  align-items: stretch;
}
.servico-card {
  background: var(--cream-card);
  border-radius: var(--radius-lg);
  padding: 2.75rem 2.25rem;
  border: 1px solid var(--cream-deep);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
  position: relative;
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.servico-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: 0;
  transition: opacity var(--transition);
}
.servico-card:hover {
  transform: translateY(-7px);
  box-shadow: var(--shadow-lg);
}
.servico-card:hover::before { opacity: 1; }

.servico-card--featured {
  background: var(--crimson-dark);
  border-color: var(--crimson-dark);
}
.servico-card--featured::before {
  background: linear-gradient(90deg, transparent, var(--gold-warm), transparent);
  opacity: 0.5;
}
.servico-card--featured:hover::before { opacity: 1; }
.servico-card--featured h3 { color: #FFFFFF; }
.servico-card--featured p  { color: rgba(255, 248, 244, 0.96); }
.servico-card--featured li { color: rgba(255, 248, 244, 0.92); }
.servico-card--featured li::before { background: var(--gold-warm); }

.servico-icon { margin-bottom: 1.4rem; }
.servico-icon svg { width: 34px; height: 34px; color: var(--gold); display: block; }
.servico-card--featured .servico-icon svg { color: var(--gold-warm); }
.servico-card h3 { margin-bottom: 0.85rem; font-style: italic; }
.servico-card p  { font-size: 0.93rem; margin-bottom: 1.4rem; }

.servico-card ul { display: flex; flex-direction: column; gap: 0.5rem; }
.servico-card li {
  font-size: 0.8rem;
  color: var(--text-light);
  padding-left: 1.1rem;
  position: relative;
}
.servico-card li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
}

/* ── PROCESSO ── */
.processo { padding: 100px 0; }
.processo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-top: 3.5rem;
}
.processo-step {
  text-align: center;
  padding: 2.25rem 1.25rem;
  position: relative;
}
.processo-step:not(:last-child)::after {
  content: '→';
  position: absolute;
  right: -0.8rem;
  top: 2.4rem;
  color: var(--gold);
  font-size: 1.1rem;
  opacity: 0.6;
}
.step-number {
  font-family: var(--serif);
  font-size: 3.2rem;
  font-style: italic;
  color: var(--rose-pale);
  line-height: 1;
  display: block;
  margin-bottom: 0.85rem;
}
.processo-step h4 { margin-bottom: 0.6rem; font-style: italic; }
.processo-step p  { font-size: 0.88rem; }

/* ── PORTFOLIO ── */
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
.portfolio-item {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  aspect-ratio: 4/3;
  cursor: pointer;
}
.portfolio-item--large {
  grid-column: 1 / 3;
  aspect-ratio: 16/9;
}
.placeholder-img {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--rose-muted) 0%, var(--crimson-deep) 60%, var(--crimson-rich) 100%);
  opacity: 0.6;
  transition: transform 0.65s ease;
}
.portfolio-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.65s ease;
}
.portfolio-item:hover img,
.portfolio-item:hover .placeholder-img { transform: scale(1.07); }

.portfolio-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 1.75rem 1.5rem;
  background: linear-gradient(to top, rgba(74,16,32,.92) 0%, rgba(74,16,32,.4) 60%, transparent 100%);
  transform: translateY(5px);
  transition: transform var(--transition);
}
.portfolio-item:hover .portfolio-overlay { transform: translateY(0); }
.portfolio-cat {
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-warm);
  margin-bottom: 0.35rem;
}
.portfolio-overlay h4 {
  font-family: var(--serif);
  color: var(--cream);
  font-weight: 400;
  font-style: italic;
  font-size: 1.2rem;
}

/* ── DEPOIMENTOS ── */
.depoimentos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
}
.depoimento-card {
  background: var(--cream-card);
  border-radius: var(--radius-lg);
  padding: 2.75rem;
  border: 1px solid var(--cream-deep);
  position: relative;
  transition: transform var(--transition), box-shadow var(--transition);
}
.depoimento-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.depoimento-card::before {
  content: '\201C';
  font-family: var(--serif);
  font-size: 6rem;
  font-style: italic;
  color: var(--rose-pale);
  position: absolute;
  top: 0.75rem;
  left: 1.75rem;
  line-height: 1;
  pointer-events: none;
}
.depoimento-card p {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.72;
  color: var(--text-dark);
  margin-bottom: 1.75rem;
  position: relative;
  z-index: 1;
}
.depoimento-card footer {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--cream-deep);
}
.depoimento-card cite {
  font-style: normal;
  font-weight: 500;
  font-size: 0.88rem;
  color: var(--crimson-dark);
  letter-spacing: 0.03em;
}
.depoimento-card footer span {
  font-size: 0.72rem;
  color: var(--text-light);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* ── CONTATO ── */
.contato-grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 5.5rem;
  align-items: start;
}
.contato-text h2 { margin-bottom: 1rem; font-style: italic; }
.contato-text p  { margin-bottom: 0; }

.contato-info { display: flex; flex-direction: column; gap: 1.4rem; margin-top: 2.25rem; }
.contato-info-item { display: flex; align-items: flex-start; gap: 1rem; }
.contato-info-icon { flex-shrink: 0; margin-top: 0.2rem; }
.contato-info-icon svg { width: 18px; height: 18px; color: var(--gold); display: block; }
.contato-info-item strong {
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--crimson-rich);
  margin-bottom: 0.2rem;
  font-weight: 500;
}
.contato-info-item span,
.contato-info-item a  { font-size: 0.93rem; color: var(--text-mid); }
.contato-info-item a:hover { color: var(--crimson-dark); }

.contato-form { display: flex; flex-direction: column; gap: 1.3rem; }
.form-group   { display: flex; flex-direction: column; gap: 0.45rem; }
.form-group label {
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--crimson-rich);
  font-weight: 500;
}
.form-group input,
.form-group textarea,
.form-group select {
  padding: 0.9rem 1.1rem;
  border: 1.5px solid var(--cream-deep);
  border-radius: var(--radius);
  background: var(--cream-card);
  color: var(--text-dark);
  font-size: 0.95rem;
  transition: border-color var(--transition), box-shadow var(--transition);
  appearance: none;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  outline: none;
  border-color: var(--crimson-mid);
  box-shadow: 0 0 0 3px rgba(168,48,72,.12);
}
.form-group textarea { resize: vertical; }

.form-success {
  font-size: 0.85rem;
  color: var(--crimson-dark);
  text-align: center;
  padding: 0.85rem;
  background: rgba(107,25,41,.07);
  border: 1px solid rgba(107,25,41,.18);
  border-radius: var(--radius);
}
.hidden { display: none; }

/* ── FOOTER ── */
.site-footer {
  background: var(--crimson-deep);
  padding: 3.5rem 0;
  position: relative;
}
.site-footer::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold), var(--gold-warm), var(--gold), transparent);
  opacity: 0.5;
}
.footer-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
}
.footer-brand { display: flex; flex-direction: column; gap: 0.3rem; }
.footer-brand .logo-name { font-size: 1.25rem; }
.footer-nav  { display: flex; gap: 1.75rem; }
.footer-nav a {
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-on-crimson);
  opacity: 0.55;
  transition: opacity var(--transition), color var(--transition);
}
.footer-nav a:hover { opacity: 1; color: var(--gold-warm); }
.footer-bottom {
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.footer-copy {
  font-size: 0.68rem;
  color: var(--text-on-crimson);
  opacity: 0.35;
  margin: 0;
}
.footer-credit {
  font-size: 0.68rem;
  color: var(--text-on-crimson);
  opacity: 0.45;
  margin: 0;
}
.footer-credit a {
  color: var(--gold-warm);
  opacity: 0.8;
  transition: opacity var(--transition);
  text-decoration: none;
}
.footer-credit a:hover { opacity: 1; }

/* ── WHATSAPP FLOAT ── */
.wa-float {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 999;
  width: 54px;
  height: 54px;
  background: #25D366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  box-shadow: 0 4px 20px rgba(37,211,102,.42);
  transition: transform var(--transition), box-shadow var(--transition);
}
.wa-float:hover {
  transform: scale(1.12);
  box-shadow: 0 8px 28px rgba(37,211,102,.55);
}
.wa-float svg { width: 27px; height: 27px; }

/* ── REVEAL ANIMATION — initial hidden state (GSAP animates in) ── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  /* No CSS transition — GSAP handles all animation */
}

/* ── RESPONSIVE ── */
@media (max-width: 960px) {
  .sobre-grid          { grid-template-columns: 1fr; gap: 3.5rem; }
  .sobre-image         { max-width: 420px; margin: 0 auto; }
  .servicos-grid       { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
  .portfolio-grid      { grid-template-columns: 1fr 1fr; }
  .portfolio-item--large { grid-column: 1 / 3; }
  .depoimentos-grid    { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
  .contato-grid        { grid-template-columns: 1fr; gap: 3rem; }
  .footer-inner        { grid-template-columns: 1fr; text-align: center; gap: 1.5rem; }
  .footer-nav          { justify-content: center; flex-wrap: wrap; }
  .footer-bottom       { text-align: center; align-items: center; }
  .stats-grid          { grid-template-columns: repeat(3, 1fr); }
  .sobre-values-grid   { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
  .processo-grid       { grid-template-columns: 1fr 1fr; }
  .processo-step:nth-child(2)::after,
  .processo-step:nth-child(4)::after { display: none; }
  .home-portfolio-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
  .site-nav {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--crimson-deep);
    padding: 1.75rem;
    border-top: 1px solid rgba(150,150,150,.2);
  }
  .site-nav.open  { display: flex; }
  .site-nav ul    { flex-direction: column; gap: 1.4rem; }
  .site-nav a     { font-size: 0.88rem; }
  .menu-toggle    { display: block; }
  .section        { padding: 72px 0; }
  .portfolio-grid { grid-template-columns: 1fr; }
  .portfolio-item--large { grid-column: 1; aspect-ratio: 4/3; }
  .stats-grid     { grid-template-columns: 1fr; gap: 0; }
  .stat-item      { border-right: none; border-bottom: 1px solid rgba(150,150,150,.15); padding: 1.75rem; }
  .stat-item:last-child { border-bottom: none; }
  .processo-grid  { grid-template-columns: 1fr; }
  .processo-step::after { display: none !important; }
  .home-portfolio-grid  { grid-template-columns: 1fr; }
  .home-services .servicos-grid { max-width: 100%; }
}

/* ═══════════════════════════════════════════
   NEW FEATURES
   ═══════════════════════════════════════════ */

/* ── CUSTOM CURSOR ── */
.cursor-dot,
.cursor-ring {
  position: fixed;
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  top: 0; left: 0;
  transform: translate(-50%, -50%);
  will-change: left, top;
}
.cursor-dot {
  width: 7px; height: 7px;
  background: var(--crimson-dark);
  transition: background 0.3s, transform 0.15s;
  z-index: 10000;
}
.cursor-ring {
  width: 36px; height: 36px;
  border: 1.5px solid var(--crimson-mid);
  opacity: 0.65;
  transition: width 0.35s ease, height 0.35s ease, border-color 0.35s, opacity 0.35s;
  z-index: 9999;
}
body.cursor-hover .cursor-ring  { width: 58px; height: 58px; border-color: var(--gold); opacity: 1; }
body.cursor-hover .cursor-dot   { background: var(--gold); transform: translate(-50%, -50%) scale(1.4); }
body.cursor-link  .cursor-ring  { width: 48px; height: 48px; border-color: var(--crimson-mid); }
@media (hover: none) { .cursor-dot, .cursor-ring { display: none; } }

/* ── WORD-BY-WORD REVEAL ── */
.word-reveal {
  display: inline-block;
  opacity: 0;
  transform: translateY(10px);
  animation: wordUp 0.55s cubic-bezier(.22,1,.36,1) forwards;
}
.kicker-sep { opacity: 0; animation: fadeUp 0.4s ease forwards; }
@keyframes wordUp {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeUp {
  to { opacity: 0.6; }
}

/* ── SCRIPT / HANDWRITTEN ACCENT ── */
.script-accent {
  font-family: var(--mono);
  font-size: 1.4rem;
  color: var(--accent);
  line-height: 1.1;
  display: block;
  letter-spacing: 0.04em;
}

/* ── MANIFESTO ── */
.manifesto {
  background: #180E0E;
  padding: 130px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.manifesto::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 60% at 50% 50%, rgba(107,25,41,.35) 0%, transparent 65%),
    radial-gradient(ellipse 40% 40% at 80% 20%, rgba(150,150,150,.08) 0%, transparent 55%);
  pointer-events: none;
}
.manifesto-inner { position: relative; z-index: 1; max-width: 860px; margin: 0 auto; }
.manifesto-text {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.6rem, 3vw, 2.7rem);
  color: var(--cream);
  line-height: 1.5;
  margin-bottom: 2.5rem;
}
.manifesto-text em { color: var(--gold-warm); font-style: normal; }
.manifesto-sig {
  font-family: var(--mono);
  font-size: 1.4rem;
  color: var(--accent);
  display: block;
  letter-spacing: 0.04em;
  opacity: 0.9;
}

/* ── HOW IT WORKS ── */
.how-it-works { padding: 108px 0; background: var(--cream-warm); }
.how-it-works .section-header { margin-bottom: 4rem; }
.hiw-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  position: relative;
}
/* Connecting gold line between steps */
.hiw-grid::before {
  content: '';
  position: absolute;
  top: 38px;
  left: calc(16.67% + 0.5rem);
  right: calc(16.67% + 0.5rem);
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), var(--gold-warm), var(--gold), transparent);
  opacity: 0.3;
  pointer-events: none;
}
.hiw-step {
  text-align: center;
  padding: 2.75rem 2rem;
  background: var(--cream-card);
  border-radius: var(--radius-lg);
  border: 1px solid var(--cream-deep);
  transition: transform var(--transition), box-shadow var(--transition);
}
.hiw-step:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow);
}
.hiw-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px; height: 54px;
  border-radius: 50%;
  border: 1.5px solid var(--gold);
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.35rem;
  color: var(--gold);
  margin: 0 auto 1.5rem;
  background: var(--cream-card);
  position: relative;
  z-index: 1;
}
.hiw-step h4 { font-style: italic; margin-bottom: 0.65rem; font-size: 1.3rem; }
.hiw-step p  { font-size: 0.9rem; }
.hiw-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: var(--gold);
  opacity: 0.4;
  margin-top: 1.25rem;
}

/* ── SIGNATURE MOMENT (full-bleed dark contrast) ── */
.signature-moment {
  background: #180E0E;
  padding: 108px 0;
  position: relative;
  overflow: hidden;
}
.signature-moment::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 55% 90% at 0% 50%, rgba(107,25,41,.45) 0%, transparent 55%),
    radial-gradient(ellipse 55% 90% at 100% 50%, rgba(150,150,150,.1) 0%, transparent 55%);
  pointer-events: none;
}
.signature-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}
.signature-text .section-kicker { color: var(--gold-warm); }
.signature-text h2 { color: var(--cream); font-style: italic; margin-bottom: 1.5rem; }
.signature-text p  { color: rgba(255,255,255,.72); margin-bottom: 0; }
.signature-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
.signature-stat {
  text-align: center;
  padding: 2.5rem 1.5rem;
  border: 1px solid rgba(150,150,150,.22);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.03);
  transition: background var(--transition), border-color var(--transition);
}
.signature-stat:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(150,150,150,.4);
}
.signature-stat-number {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(3rem, 5vw, 4.5rem);
  color: var(--gold-warm);
  line-height: 1;
  display: block;
}
.signature-stat p {
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-top: 0.65rem;
}

/* ── PRESS STRIP ── */
.press-strip {
  padding: 64px 0;
  background: var(--cream);
  border-top: 1px solid var(--cream-deep);
  border-bottom: 1px solid var(--cream-deep);
}
.press-label {
  text-align: center;
  font-size: 0.65rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--text-light);
  margin-bottom: 2.5rem;
}
.press-logos {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3.5rem;
  flex-wrap: wrap;
}
.press-logo {
  font-family: var(--serif);
  font-size: 1.05rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-mid);
  opacity: 0.3;
  transition: opacity var(--transition);
}
.press-logo:hover { opacity: 0.65; }

/* ── HORIZONTAL FILMSTRIP ── */
.filmstrip-section { padding: 108px 0; overflow: hidden; }
.filmstrip-section .section-header {
  max-width: 1140px;
  margin-left: auto; margin-right: auto;
  padding-left: 1.75rem; padding-right: 1.75rem;
  margin-bottom: 3rem;
}
.filmstrip-track-wrap {
  position: relative;
}
/* Fade edges */
.filmstrip-track-wrap::before,
.filmstrip-track-wrap::after {
  content: '';
  position: absolute;
  top: 0; bottom: 2rem;
  width: 100px;
  z-index: 2;
  pointer-events: none;
}
.filmstrip-track-wrap::before { left: 0;  background: linear-gradient(to right, var(--cream), transparent); }
.filmstrip-track-wrap::after  { right: 0; background: linear-gradient(to left,  var(--cream), transparent); }

.filmstrip-track {
  display: flex;
  gap: 1.5rem;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  padding: 0.5rem 8vw 1.5rem;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
}
.filmstrip-track:active { cursor: grabbing; }
.filmstrip-track::-webkit-scrollbar { display: none; }

.filmstrip-item {
  flex: 0 0 380px;
  scroll-snap-align: start;
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  aspect-ratio: 3/4;
  transition: transform 0.4s ease;
}
.filmstrip-item--wide {
  flex: 0 0 580px;
  aspect-ratio: 16/10;
}
.filmstrip-item:hover { transform: scale(1.015); }
.filmstrip-item .placeholder-img {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--rose-muted) 0%, var(--crimson-deep) 55%, var(--crimson-rich) 100%);
  opacity: 0.65;
}
.filmstrip-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
  display: block;
}
.filmstrip-item:hover img { transform: scale(1.06); }
.filmstrip-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 2rem 1.75rem;
  background: linear-gradient(to top, rgba(74,16,32,.92) 0%, rgba(74,16,32,.3) 65%, transparent 100%);
}
.filmstrip-overlay .portfolio-cat  { font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-warm); margin-bottom: 0.3rem; }
.filmstrip-overlay h4 { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--cream); font-size: 1.2rem; }

.filmstrip-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 2rem;
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-light);
}
.filmstrip-hint svg { width: 18px; height: 18px; color: var(--gold); animation: nudge 2s infinite; }
@keyframes nudge {
  0%, 100% { transform: translateX(0); opacity: 0.5; }
  50%       { transform: translateX(6px); opacity: 1; }
}

/* ── TIMELINE ── */
.timeline { padding: 108px 0; }
.timeline-items {
  position: relative;
  margin-top: 3.5rem;
  max-width: 760px;
  margin-left: auto; margin-right: auto;
}
/* Vertical gold thread */
.timeline-items::before {
  content: '';
  position: absolute;
  left: 96px;
  top: 8px; bottom: 8px;
  width: 1px;
  background: linear-gradient(to bottom, transparent, var(--gold) 15%, var(--gold-warm) 50%, var(--gold) 85%, transparent);
  opacity: 0.38;
}
.timeline-item {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 2.5rem;
  margin-bottom: 3.25rem;
  position: relative;
}
.timeline-item:last-child { margin-bottom: 0; }
.timeline-year {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.5rem;
  color: var(--gold);
  text-align: right;
  padding-top: 0.15rem;
  position: relative;
}
.timeline-year::after {
  content: '';
  position: absolute;
  right: -2.6rem;
  top: 0.65rem;
  width: 10px; height: 10px;
  border-radius: 50%;
  border: 2px solid var(--gold);
  background: var(--cream);
  box-shadow: 0 0 0 3px rgba(150,150,150,.15);
}
.timeline-content { padding-left: 0.5rem; }
.timeline-content h4 { font-style: italic; margin-bottom: 0.5rem; font-size: 1.2rem; }
.timeline-content p  { font-size: 0.9rem; }

/* ── ENHANCED CARD HOVER WASH ── */
.servico-card:not(.servico-card--featured) {
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition), border-color var(--transition);
}
.servico-card:not(.servico-card--featured):hover {
  background: var(--crimson-dark);
  border-color: var(--crimson-dark);
}
.servico-card:not(.servico-card--featured):hover h3 { color: var(--cream); }
.servico-card:not(.servico-card--featured):hover p  { color: rgba(255,255,255,.8); }
.servico-card:not(.servico-card--featured):hover li { color: rgba(255,255,255,.65); }
.servico-card:not(.servico-card--featured):hover li::before { background: var(--gold-warm); }
.servico-card:not(.servico-card--featured):hover .servico-icon svg { color: var(--gold-warm); }

/* ── RESPONSIVE — new features ── */
@media (max-width: 960px) {
  .signature-inner  { grid-template-columns: 1fr; gap: 3rem; }
  .signature-stats  { grid-template-columns: 1fr 1fr; }
  .hiw-grid { grid-template-columns: 1fr; max-width: 420px; margin-left: auto; margin-right: auto; }
  .hiw-grid::before { display: none; }
  .filmstrip-item { flex: 0 0 300px; }
  .filmstrip-item--wide { flex: 0 0 460px; aspect-ratio: 4/3; }
  .timeline-items::before { left: 76px; }
  .timeline-item { grid-template-columns: 76px 1fr; gap: 2rem; }
  .timeline-year::after { right: -2.1rem; }
}
@media (max-width: 700px) {
  .manifesto { padding: 80px 0; }
  .manifesto-text { font-size: 1.4rem; }
  .press-logos { gap: 2rem; }
  .filmstrip-item { flex: 0 0 78vw; }
  .filmstrip-item--wide { flex: 0 0 88vw; aspect-ratio: 4/3; }
  .signature-stats { grid-template-columns: 1fr 1fr; }
  .timeline-items::before { left: 58px; }
  .timeline-item { grid-template-columns: 58px 1fr; gap: 1.5rem; }
  .timeline-year { font-size: 1.2rem; }
  .timeline-year::after { right: -1.75rem; }
}


/* ═══════════════════════════════════════════
   PREMIUM LIBRARIES
   ═══════════════════════════════════════════ */

/* ── CURSOR — update will-change (GSAP drives left/top) ── */
.cursor-dot,
.cursor-ring { will-change: left, top; }

/* ── CURSOR VIEW STATE ("Ver →" label on image hover) ── */
body.cursor-view .cursor-ring {
  width: 68px;
  height: 68px;
  border-color: transparent;
  background: rgba(74, 16, 32, 0.88);
  opacity: 1;
}
body.cursor-view .cursor-ring::after {
  content: 'Ver →';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--sans);
  font-size: 0.58rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-warm);
  white-space: nowrap;
  pointer-events: none;
}
body.cursor-view .cursor-dot { opacity: 0; }

/* ── BARBA PAGE TRANSITION — container base ── */
[data-barba="container"] {
  opacity: 1;
  min-height: 60vh;
}

/* ── SPLITTING.JS — char animation ── */
[data-splitting] .char {
  display: inline-block;
  opacity: 0;                /* GSAP animates to 1 */
  will-change: transform, opacity;
}
/* Keep entire words together — prevents mid-word line breaks on mobile */
[data-splitting] .word {
  display: inline-block;
  white-space: nowrap;
}
/* Spaces between words */
[data-splitting] .whitespace { display: inline; }

/* ── SWIPER — testimonials theme ── */
.depo-swiper {
  padding-bottom: 3.5rem !important;
  overflow: visible !important;    /* allow glare to escape card bounds */
}
.depo-swiper .swiper-slide {
  height: auto;                    /* equal-height slides */
}
.depo-swiper .swiper-pagination {
  bottom: 0;
}
.depo-swiper .swiper-pagination-bullet {
  background: var(--crimson-mid);
  opacity: 0.3;
  width: 7px; height: 7px;
  transition: opacity 0.3s, background 0.3s, transform 0.3s;
}
.depo-swiper .swiper-pagination-bullet-active {
  background: var(--gold);
  opacity: 1;
  transform: scale(1.35);
}
.depo-swiper .swiper-button-prev,
.depo-swiper .swiper-button-next {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--cream-card);
  border: 1px solid var(--cream-deep);
  box-shadow: var(--shadow);
  color: var(--crimson-dark);
  top: auto;
  bottom: -0.25rem;
  transition: background var(--transition), border-color var(--transition), color var(--transition);
}
.depo-swiper .swiper-button-prev { left: calc(50% - 72px); }
.depo-swiper .swiper-button-next { right: calc(50% - 72px); }
.depo-swiper .swiper-button-prev:hover,
.depo-swiper .swiper-button-next:hover {
  background: var(--crimson-deep);
  border-color: var(--crimson-deep);
  color: var(--gold-warm);
}
.depo-swiper .swiper-button-prev::after,
.depo-swiper .swiper-button-next::after { font-size: 0.9rem; font-weight: 700; }

/* ── TSPARTICLES — hero canvas container ── */
#tsparticles {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
#tsparticles canvas { position: absolute; inset: 0; }

/* ── MAGNETIC BUTTON — transform-origin for GSAP x/y ── */
.btn { transform-origin: center center; }
/* NOTE: .btn keeps overflow:hidden (defined above) so ripple is clipped correctly */

/* ── HERO ELEMENTS — start hidden for GSAP entrance ── */
.hero-headline,
.hero .btn-hero,
.hero-scroll-arrow { opacity: 0; }

/* ── VANILLA TILT — glare element style ── */
.js-tilt-glare-inner { background: linear-gradient(0deg, transparent, rgba(150,150,150,.08)) !important; }

/* ── SCROLL TO TOP BUTTON ── */
.scroll-top {
  position: fixed;
  bottom: 2rem;
  left: 2rem;
  z-index: 998;
  width: 46px;
  height: 46px;
  background: var(--crimson-deep);
  border: 1px solid rgba(150,150,150,0.35);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-warm);
  box-shadow: 0 4px 20px rgba(74, 16, 32, 0.35);
  cursor: pointer;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.38s ease, transform 0.38s ease,
              background 0.3s ease, border-color 0.3s ease;
  pointer-events: none;
}
.scroll-top.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.scroll-top:hover {
  background: var(--crimson-dark);
  border-color: var(--gold);
  box-shadow: 0 6px 28px rgba(74, 16, 32, 0.45);
}
.scroll-top svg { width: 18px; height: 18px; display: block; }

/* ── RIPPLE EFFECT ── */
.btn-ripple {
  position: absolute;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  margin: -4px;
  background: rgba(150,150,150,0.45);
  pointer-events: none;
  transform: scale(0);
  animation: ripple-expand 0.65s ease-out forwards;
}
@keyframes ripple-expand {
  to { transform: scale(30); opacity: 0; }
}

/* ── SECTION PILL ── */
.section-pill {
  position: fixed;
  top: 5rem;
  right: 1rem;
  z-index: 990;
  background: rgba(74, 16, 32, 0.88);
  color: var(--gold-warm);
  font-family: var(--sans);
  font-size: 0.6rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.4rem 0.9rem;
  border-radius: 20px;
  border: 1px solid rgba(150,150,150,0.25);
  backdrop-filter: blur(8px);
  opacity: 0;
  transform: translateX(10px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none;
  white-space: nowrap;
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.section-pill.visible {
  opacity: 1;
  transform: translateX(0);
}

/* ── BOTTOM SHEET (mobile contact) ── */
.bottom-sheet {
  position: fixed;
  inset: 0;
  z-index: 9000;
  pointer-events: none;
}
.bottom-sheet.open {
  pointer-events: all;
}
.bottom-sheet-overlay {
  position: absolute;
  inset: 0;
  background: rgba(26, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.38s ease;
}
.bottom-sheet.open .bottom-sheet-overlay {
  opacity: 1;
}
.bottom-sheet-panel {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--cream);
  border-radius: 20px 20px 0 0;
  padding: 1.5rem 2rem 3rem;
  transform: translateY(100%);
  transition: transform 0.45s cubic-bezier(0.32, 0.72, 0, 1);
  border-top: 1px solid var(--cream-deep);
}
.bottom-sheet.open .bottom-sheet-panel {
  transform: translateY(0);
}
.bottom-sheet-handle {
  width: 40px;
  height: 4px;
  background: var(--cream-deep);
  border-radius: 2px;
  margin: 0 auto 1.75rem;
}
.bottom-sheet-inner {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}
.bottom-sheet-inner h3 {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.6rem;
  color: var(--text-dark);
  margin-bottom: 0.4rem;
}
.bottom-sheet-inner > p {
  font-size: 0.85rem;
  color: var(--text-light);
  margin-bottom: 1.5rem;
}
.bottom-sheet-inner .btn {
  width: 100%;
  max-width: 320px;
  justify-content: center;
  text-align: center;
}
.bottom-sheet-inner .btn-whatsapp {
  margin-top: 0.75rem;
}
.bottom-sheet-close {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--cream-warm);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-mid);
  transition: background var(--transition);
}
.bottom-sheet-close:hover { background: var(--cream-deep); }
.bottom-sheet-close svg { width: 16px; height: 16px; }

/* ── PROGRESSIVE BLUR REVEAL ── */
.filmstrip-item .placeholder-img,
.filmstrip-item img {
  filter: blur(10px);
  transition: filter 0.75s ease, transform 0.65s ease;
}
.filmstrip-item.revealed .placeholder-img,
.filmstrip-item.revealed img {
  filter: blur(0);
}
/* Also apply to portfolio items and sobre image if photos exist */
.portfolio-item img,
.sobre-image .image-frame img {
  filter: blur(10px);
  transition: filter 0.75s ease, transform 0.65s ease;
}
.portfolio-item.revealed img,
.sobre-image.revealed .image-frame img {
  filter: blur(0);
}

/* ── RESPONSIVE — library overrides ── */
@media (max-width: 700px) {
  .depo-swiper .swiper-button-prev,
  .depo-swiper .swiper-button-next { display: none; }
  .scroll-top { bottom: 1.25rem; left: 1.25rem; width: 40px; height: 40px; }
  .section-pill { display: none; }
  .bottom-sheet-panel { padding: 1.25rem 1.5rem 2.5rem; }
}


/* ═══════════════════════════════════════════
   MINIMAL MONOCHROME — SECTION STRUCTURE
   White space · Gray scale · Clean separation
   ═══════════════════════════════════════════ */

/* ── Kill all decorative pseudo-elements ── */
.hero-overlay::after,
.home-services::before,
.signature-moment::before,
.home-testimonial::before,
.cta-strip::before,
.cta-strip::after,
.site-footer::before,
.page-banner::after { display: none; }

/* ── Hero: dark overlay, full photo ── */
.hero-overlay {
  background: rgba(0,0,0,.55);
}

/* ── Stats strip: white, thin border top ── */
.stats-strip              { background: var(--white); border-top: 1px solid var(--gray-300); }
.stats-strip .stat-number { color: var(--black); }
.stats-strip .stat-plus   { color: var(--gray-500); }
.stats-strip .stat-item p { color: var(--gray-500); opacity: 1; }
.stats-strip .stat-item   { border-right-color: var(--gray-300); }

/* ── Home services: white, minimal cards ── */
.home-services                    { background: var(--white); }
.home-services .section-kicker    { color: var(--gray-500); }
.home-services .section-header h2 { color: var(--black); }
.home-services .servico-card {
  background:   var(--white);
  border: 1px solid var(--gray-300);
  box-shadow: none;
}
.home-services .servico-card h3           { color: var(--black); }
.home-services .servico-card p            { color: var(--gray-500); opacity: 1; }
.home-services .servico-card li           { color: var(--gray-500); }
.home-services .servico-card li::before   { background: var(--gray-500); }
.home-services .servico-icon svg          { color: var(--gray-700); }
.home-services .servico-card:not(.servico-card--featured):hover {
  background:   var(--gray-50);
  border-color: var(--gray-500);
  box-shadow:   none;
}
.home-services .servico-card--featured {
  background:   var(--black);
  border-color: var(--black);
}
.home-services .servico-card--featured h3  { color: var(--white); }
.home-services .servico-card--featured p   { color: rgba(255,255,255,.65); }
.home-services .servico-card--featured li  { color: rgba(255,255,255,.5); }
.home-services .servico-card--featured li::before         { background: rgba(255,255,255,.4); }
.home-services .servico-card--featured .servico-icon svg  { color: rgba(255,255,255,.7); }
.home-services .servico-card--featured::before            { display: none; }

/* ── Manifesto: black ── */
.manifesto          { background: var(--black); }
.manifesto-text em  { color: var(--white); font-style: italic; }
.manifesto-sig      { color: var(--gray-300); }

/* ── How it works: off-white ── */
.how-it-works                    { background: var(--gray-50); }
.how-it-works .section-kicker    { color: var(--gray-500); }
.how-it-works .section-header h2 { color: var(--black); }
.how-it-works .hiw-step {
  background:   var(--white);
  border: 1px solid var(--gray-300);
  box-shadow: none;
}
.how-it-works .hiw-step:hover    { border-color: var(--gray-500); }
.how-it-works .hiw-step h4,
.how-it-works .hiw-step p        { color: var(--black); }
.how-it-works .hiw-step p        { opacity: 1; color: var(--gray-500); }
.how-it-works .hiw-number {
  border: 1px solid var(--gray-300);
  color:      var(--gray-500);
  background: transparent;
}
.how-it-works .hiw-grid::before  { display: none; }
.how-it-works .hiw-arrow         { color: var(--gray-300); opacity: 1; }

/* ── Filmstrip: white ── */
.filmstrip-section            { background: var(--white); }
.filmstrip-track-wrap::before { background: linear-gradient(to right, var(--white), transparent); }
.filmstrip-track-wrap::after  { background: linear-gradient(to left,  var(--white), transparent); }
.filmstrip-hint               { color: var(--gray-500); }
.filmstrip-hint svg           { color: var(--gray-500); }

/* ── Signature moment: black ── */
.signature-moment             { background: var(--black); }
.signature-text h2            { color: var(--white); }
.signature-text p             { color: rgba(255,255,255,.6); }
.signature-stat               { border: 1px solid rgba(255,255,255,.2); background: transparent; }
.signature-stat:hover         { border-color: rgba(255,255,255,.5); }
.signature-stat-number        { color: var(--white); }
.signature-stat p             { color: rgba(255,255,255,.5); margin-top: 0.65rem; }

/* ── Press strip: off-white ── */
.press-strip      { background: var(--gray-50); }
.press-logo:hover { opacity: 0.6; color: var(--black); }

/* ── Home testimonial: black ── */
.home-testimonial                     { background: var(--black); }
.home-testimonial .section-kicker     { color: rgba(255,255,255,.4); }
.home-testimonial blockquote p        { color: var(--white); }
.home-testimonial cite                { color: rgba(255,255,255,.7); }
.home-testimonial footer span         { color: rgba(255,255,255,.4); }

/* ── CTA strip: off-white ── */
.cta-strip              { background: var(--gray-50); }
.cta-strip h2           { color: var(--black); }
.cta-strip p            { color: var(--gray-500); }
.cta-strip .btn {
  background:   var(--black);
  color:        var(--white);
  border: 1px solid var(--black);
}
.cta-strip .btn:hover   { background: var(--gray-700); border-color: var(--gray-700); }

/* ── Footer: black ── */
.site-footer { background: var(--black); }

/* ── Page banner (inner pages): black + photo ── */
.page-banner { background: var(--black) url('../images/hero.jpg') center/cover no-repeat; }
.page-banner::before { background: rgba(0,0,0,.68); }

/* ── Sobre values ── */
.sobre-values .sobre-value-item {
  background:   transparent;
  border: 1px solid rgba(255,255,255,.2);
}
.sobre-values .sobre-value-item:hover {
  background:   rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.4);
}
.sobre-value-item h3       { color: var(--white); }
.sobre-value-item p        { color: rgba(255,255,255,.6); opacity: 1; }
.sobre-value-icon svg      { color: rgba(255,255,255,.5); }

/* ── Contato ── */
.contato-info-item strong  { color: var(--black); }
.form-group label          { color: var(--gray-700); font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; }
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  border-color: var(--black);
  box-shadow: none;
}
.form-success { color: var(--black); background: var(--gray-50); border: 1px solid var(--gray-300); }

/* ── Portfolio placeholders: grays ── */
.placeholder-img              { background: var(--gray-300); opacity: 1; }
.filmstrip-item .placeholder-img { background: var(--gray-100); }

/* Portfolio + filmstrip overlays ── */
.portfolio-overlay {
  background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.28) 60%, transparent 100%);
}
.filmstrip-overlay {
  background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.18) 65%, transparent 100%);
}
.portfolio-cat                    { color: rgba(255,255,255,.6); }
.filmstrip-overlay .portfolio-cat { color: rgba(255,255,255,.6); }

/* ── Servico cards on inner Serviços page ── */
.servico-card { border: 1px solid var(--gray-300); box-shadow: none; }
.servico-card:not(.servico-card--featured):hover {
  background:   var(--gray-50);
  border-color: var(--gray-500);
}

/* ── Depoimento cards ── */
.depoimento-card        { border: 1px solid var(--gray-300); box-shadow: none; }
.depoimento-card:hover  { border-color: var(--gray-500); }
.depoimento-card cite   { color: var(--black); }
.depoimento-card footer { border-top: 1px solid var(--gray-300); }

/* ── Timeline ── */
.timeline-year          { color: var(--gray-500); }
.timeline-year::after   { border-color: var(--gray-300); background: var(--white); }
.timeline-items::before { background: var(--gray-300); width: 1px; }

/* ── Processo step arrows ── */
.step-number                           { color: rgba(0,0,0,.05); }
.processo-step:not(:last-child)::after { color: var(--gray-300); }

/* ── Sobre accent box ── */
.sobre-accent-box         { border: 1px solid var(--gray-300); opacity: 0.5; }
.sobre-accent-box::before { border-color: var(--gray-300); }

/* ── Cursor ── */
.cursor-dot                          { background: var(--black); }
.cursor-ring                         { border-color: var(--gray-500); }
body.cursor-hover .cursor-ring       { border-color: var(--black); }
body.cursor-hover .cursor-dot        { background: var(--black); }
body.cursor-link  .cursor-ring       { border-color: var(--black); }
body.cursor-view  .cursor-ring       { background: rgba(0,0,0,.8); border-color: transparent; }
body.cursor-view  .cursor-ring::after{ color: var(--white); }
body.cursor-view  .cursor-dot        { opacity: 0; }

/* ── Section pill ── */
.section-pill {
  background:   var(--gray-900);
  color:        var(--white);
  border: 1px solid var(--gray-700);
  border-radius: 0;
}

/* ── Scroll-to-top button ── */
.scroll-top       { background: var(--white); border: 1px solid var(--gray-300); color: var(--gray-500); box-shadow: none; }
.scroll-top:hover { background: var(--black); color: var(--white); border-color: var(--black); }

/* ── Ripple ── */
.btn-ripple { background: rgba(0,0,0,.15); }

/* ── Swiper ── */
.depo-swiper .swiper-pagination-bullet               { background: var(--gray-300); }
.depo-swiper .swiper-pagination-bullet-active        { background: var(--black); }
.depo-swiper .swiper-button-prev,
.depo-swiper .swiper-button-next                     { color: var(--gray-500); border: 1px solid var(--gray-300); }
.depo-swiper .swiper-button-prev:hover,
.depo-swiper .swiper-button-next:hover               { background: var(--black); border-color: var(--black); color: var(--white); }

/* ── Vanilla-tilt glare: off ── */
.js-tilt-glare-inner { background: none !important; }

/* ── Mobile nav: black ── */
@media (max-width: 700px) {
  .site-nav { background: var(--black); border-top: 1px solid rgba(255,255,255,.15); }
}


/* ═══════════════════════════════════════════
   MINIMAL MONOCHROME — TYPOGRAPHY SYSTEM
   Georgia serif · system-ui body · Courier labels
   ═══════════════════════════════════════════ */

/* ── Headlines: Georgia serif ── */
h1, h2 {
  font-family: var(--serif);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
  font-style: normal;
  text-transform: none;
}
h3, h4 {
  font-family: var(--sans);
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Editorial text ── */
.manifesto-text,
blockquote p {
  font-family: 'Cormorant Garamond', Georgia, serif;
  text-transform: none;
  font-style: italic;
  line-height: 1.6;
  letter-spacing: 0;
}
.manifesto-sig {
  font-family: var(--mono);
  font-style: normal;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  color: var(--gray-500);
}

/* ── Logo ── */
.logo-name {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: -0.01em;
}
.logo-sub {
  font-family: var(--mono);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  color: var(--gray-500);
  text-transform: uppercase;
}

/* ── Nav links: clean sans, no underline (monochrome doesn't need it) ── */
.site-nav a {
  font-family: var(--mono);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}
.site-nav a:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-nav a {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
}
.footer-nav a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ── Section kicker: small monospace ── */
.section-kicker {
  font-family: var(--mono);
  font-size: 0.65rem;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gray-500);
  margin-bottom: 0.75rem;
  display: block;
}

/* ── HERO: large Georgia serif ── */
.hero-headline {
  font-family: var(--serif);
  font-size: clamp(3.5rem, 11vw, 9rem);
  line-height: 0.95;
  text-transform: none;
  letter-spacing: -0.03em;
  color: var(--white);
  font-style: normal;
  font-weight: 700;
  margin-bottom: 1rem;
}

/* Tagline ── */
.hero-tagline {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: clamp(1.1rem, 2.2vw, 1.55rem);
  color: rgba(255,255,255,.72);
  line-height: 1.5;
  max-width: 460px;
  margin-bottom: 2.5rem;
  letter-spacing: 0;
  text-transform: none;
}

/* ── Page banner h1 ── */
.page-banner-content h1 {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(2.8rem, 8vw, 6rem);
  line-height: 1.0;
  text-transform: none;
  letter-spacing: -0.025em;
  color: var(--white);
  margin-top: 0.5rem;
}

/* ── Section h2 on dark backgrounds ── */
.home-services .section-header h2,
.sobre-values .section-header h2,
.home-testimonial h2,
.signature-moment .signature-text h2 {
  font-family: var(--serif);
  font-style: normal;
}
.manifesto-text {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
}

/* ═══════════════════════════════════════════
   TICKER BAND — minimal monochrome
   ═══════════════════════════════════════════ */
.ticker-band {
  overflow: hidden;
  white-space: nowrap;
  padding: 0.7rem 0;
  user-select: none;
  position: relative;
  z-index: 1;
}
.ticker-band--yellow  { background: var(--gray-50);  border-top: 1px solid var(--gray-300); border-bottom: 1px solid var(--gray-300); }
.ticker-band--magenta { background: var(--black);    border-top: 1px solid var(--black);    border-bottom: 1px solid var(--black); }
.ticker-band--teal    { background: var(--gray-50);  border-top: 1px solid var(--gray-300); border-bottom: 1px solid var(--gray-300); }
.ticker-band--orange  { background: var(--white);    border-top: 1px solid var(--gray-300); border-bottom: 1px solid var(--gray-300); }

.ticker-track {
  display: inline-flex;
  align-items: center;
  animation: ticker-scroll 28s linear infinite;
  will-change: transform;
}
.ticker-track span {
  font-family: var(--mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  padding: 0 2rem;
  flex-shrink: 0;
}
.ticker-band--yellow  .ticker-track span { color: var(--gray-700); }
.ticker-band--magenta .ticker-track span { color: rgba(255,255,255,.7); }
.ticker-band--teal    .ticker-track span { color: var(--gray-700); }
.ticker-band--orange  .ticker-track span { color: var(--gray-500); }

.ticker-sep {
  font-size: 0.4rem;
  opacity: 0.4;
  padding: 0 0.5rem;
  flex-shrink: 0;
}
.ticker-band--yellow  .ticker-sep { color: var(--gray-500); }
.ticker-band--magenta .ticker-sep { color: rgba(255,255,255,.3); }
.ticker-band--teal    .ticker-sep { color: var(--gray-500); }
.ticker-band--orange  .ticker-sep { color: var(--gray-300); }

@keyframes ticker-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── Stats numbers ── */
.stat-number {
  font-family: var(--serif);
  font-style: normal;
  font-weight: 700;
}

/* ── Step numbers ── */
.step-number {
  font-family: var(--serif);
  font-size: 4rem;
  font-weight: 700;
  font-style: normal;
  color: rgba(0,0,0,.05);
}

/* ── How-it-works number ── */
.hiw-number {
  font-family: var(--mono);
  font-style: normal;
  font-weight: 400;
  color: var(--gray-300);
}

/* ── Timeline year ── */
.timeline-year {
  font-family: var(--mono);
  font-style: normal;
  letter-spacing: 0.08em;
  font-size: 0.9rem;
  color: var(--gray-500);
}

/* ── Servico card headings ── */
.servico-card h3 {
  font-family: var(--serif);
  font-size: 1.35rem;
  font-style: normal;
  font-weight: 700;
  text-transform: none;
  letter-spacing: -0.01em;
  line-height: 1.15;
}

/* ── HIW step headings ── */
.hiw-step h4, .processo-step h4 {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-style: normal;
  font-weight: 700;
  text-transform: none;
  letter-spacing: -0.01em;
}

/* ── Footer brand ── */
.footer-brand .logo-name { font-size: 1.05rem; }

@media (max-width: 700px) {
  .hero-headline      { font-size: clamp(3rem, 16vw, 5.5rem); }
  .page-banner-content h1 { font-size: clamp(2.4rem, 12vw, 4.5rem); }
}

/* ═══════════════════════════════════════════
   MINIMALISM — SPACING & DENSITY REDUCTIONS
   ═══════════════════════════════════════════ */

/* Reduce section vertical padding across the board */
.section        { padding: 72px 0; }
.stats-strip    { padding: 48px 0; }
.home-services  { padding: 80px 0; }
.how-it-works   { padding: 80px 0; }
.manifesto      { padding: 100px 0; }
.signature-moment { padding: 80px 0; }
.home-testimonial { padding: 80px 0; }
.cta-strip      { padding: 80px 0; }
.filmstrip-section { padding-top: 72px; padding-bottom: 72px; }
.press-strip    { padding: 40px 0; }
.page-banner    { padding: 100px 0 80px; }

/* Tighter grid gaps */
.servicos-grid  { gap: 20px; }
.hiw-grid       { gap: 20px; }

/* Section header: less bottom margin */
.section-header { margin-bottom: 48px; }
.section-header h2 { margin-bottom: 0.5rem; }

/* Cards: less internal padding */
.servico-card  { padding: 28px 24px; }
.hiw-step      { padding: 28px 24px; }
.depoimento-card { padding: 32px 28px; }

/* Remove card border-radius everywhere */
.servico-card,
.hiw-step,
.depoimento-card,
.btn,
input, textarea, select { border-radius: 0 !important; }

/* Button: clean, no radius */
.btn {
  padding: 0.7rem 2rem;
  font-family: var(--mono);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 0;
}

/* Tighten hero vertical padding */
.hero { min-height: 90vh; }

/* Remove background decorations from header */
.site-header { border-bottom: 1px solid var(--gray-300); }
.site-header--solid { background: var(--white) !important; }

/* Quiet the footer */
.footer-nav { gap: 1.5rem; }
.footer-copy, .footer-credit { color: var(--gray-500); font-size: 0.75rem; }
.footer-credit a { color: var(--gray-500); }
.footer-credit a:hover { color: var(--white); }

/* Reduce hero kicker prominence */
.hero-kicker { font-size: 0.65rem; letter-spacing: 0.2em; opacity: 0.65; }

/* Quiet the WA float button */
.wa-float { background: var(--black); box-shadow: none; border: 1px solid rgba(255,255,255,.15); }
