/* =================================================================
   Vega & Ramos Sociedade de Advogados — site.css
   Domínio oficial: www.vegaeramos.com.br
   ================================================================= */

@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&display=swap");

@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-Variable.ttf") format("truetype-variations");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Libre Baskerville";
  src: url("assets/fonts/LibreBaskerville-Italic-Variable.ttf") format("truetype-variations");
  font-weight: 400 700;
  font-style: italic;
  font-display: swap;
}

/* ── Variables ──────────────────────────────────────────────────── */
:root {
  --vr-red-900: #780A07;
  --vr-red-700: #9C110F;
  --vr-red-400: #C30303;
  --vr-ink:     #111111;
  --vr-gray-700:#6A6A6A;
  --vr-gray-500:#A6A6A6;
  --vr-gray-200:#EDEDED;
  --vr-gray-100:#F4F4F4;
  --vr-white:   #FFFFFF;
  --vr-fd: "Cormorant Garamond","Libre Baskerville",Georgia,"Times New Roman",serif;
  --vr-fs: "Libre Baskerville",Georgia,"Times New Roman",serif;
  --vr-mw: 1180px;
}

/* ── Reset ──────────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--vr-fs);
  color: var(--vr-ink);
  background: var(--vr-white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
img.header-logo-img,.footer-logo,.header-logo img { object-fit: contain; }
a { color: inherit; transition: color .18s ease-out; }
button { font-family: inherit; cursor: pointer; }
input,select,textarea { font-family: inherit; border-radius: 0; }
::selection { background: var(--vr-red-700); color: #fff; }

/* ── Layout ─────────────────────────────────────────────────────── */
.container { max-width: var(--vr-mw); margin-inline: auto; padding-inline: 20px; width: 100%; }

/* ── Header ─────────────────────────────────────────────────────── */
.site-header {
  position: fixed; inset-block-start: 0; inset-inline: 0;
  z-index: 60; background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--vr-gray-200);
}
.site-header .container {
  height: 78px; display: flex; align-items: center;
  justify-content: space-between; gap: 32px;
}
.header-logo { display: flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.header-logo img { height: 35px; width: auto; max-width: none; object-fit: contain; }

/* Desktop nav */
.site-nav { display: flex; align-items: center; gap: 34px; }
.nav-link {
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  text-decoration: none; color: var(--vr-ink); padding: 8px 0; white-space: nowrap;
}
.nav-link:hover,.nav-link.active { color: var(--vr-red-700); }
.nav-cta {
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  text-decoration: none; color: #fff; background: var(--vr-red-700);
  padding: 14px 28px; transition: background .18s; white-space: nowrap;
}
.nav-cta:hover { background: var(--vr-red-900); color: #fff; }

/* Dropdown */
.nav-dd { position: relative; }
.nav-dd-btn {
  display: inline-flex; align-items: baseline; gap: 7px;
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  text-decoration: none; color: var(--vr-ink); padding: 8px 0; white-space: nowrap;
}
.nav-dd-btn:hover { color: var(--vr-red-700); }
.nav-dd-arrow { font-size: 9px; color: var(--vr-red-700); transition: transform .18s; }
.nav-dd:hover .nav-dd-arrow { transform: rotate(180deg); }
.nav-dd-panel {
  position: absolute; top: 100%; left: -28px; padding-top: 14px;
  opacity: 0; pointer-events: none; transition: opacity .18s; z-index: 10;
}
.nav-dd:hover .nav-dd-panel,
.nav-dd:focus-within .nav-dd-panel { opacity: 1; pointer-events: all; }
.nav-dd-menu {
  background: #fff; border: 1px solid var(--vr-gray-200);
  border-top: 2px solid var(--vr-red-700);
  box-shadow: 0 18px 40px rgba(17,17,17,.10);
  min-width: 300px; display: flex; flex-direction: column; padding: 14px 0;
}
.nav-dd-menu a {
  font-size: 14px; text-decoration: none; color: var(--vr-ink);
  padding: 12px 28px; transition: background .15s, color .15s;
}
.nav-dd-menu a:hover { background: var(--vr-gray-100); color: var(--vr-red-700); }

/* Hamburger */
.ham-btn {
  display: none; background: none; border: none; padding: 10px;
  align-items: center; justify-content: center; flex-shrink: 0;
}
.ham-icon { font-family: var(--vr-fd); font-size: 28px; color: var(--vr-ink); line-height: 1; display: block; }

/* Mobile menu */
.mobile-menu {
  display: none; position: fixed; top: 78px; inset-inline: 0; bottom: 0;
  background: #fff; z-index: 59; overflow-y: auto;
}
.mobile-menu.open { display: block; }
.mob-inner { padding: 28px 24px 48px; display: flex; flex-direction: column; }
.mob-group { padding: 20px 0; border-bottom: 1px solid var(--vr-gray-200); }
.mob-group-last { border-bottom: none; }
.mob-label { font-size: 10px; letter-spacing: .24em; text-transform: uppercase; color: var(--vr-red-700); display: block; margin-bottom: 16px; }
.mob-links { display: flex; flex-direction: column; gap: 14px; }
.mob-links a { font-size: 18px; text-decoration: none; color: var(--vr-ink); }
.mob-links a:hover { color: var(--vr-red-700); }
.mob-cta { padding-top: 28px; }
.mob-cta a {
  display: block; text-align: center; font-size: 12px; letter-spacing: .18em;
  text-transform: uppercase; text-decoration: none; color: #fff;
  background: var(--vr-red-700); padding: 18px 32px; transition: background .18s;
}
.mob-cta a:hover { background: var(--vr-red-900); }

/* ── Eyebrow ─────────────────────────────────────────────────────── */
.eyebrow-row { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; }
.eyebrow-line { flex-shrink: 0; display: inline-block; width: 56px; height: 1px; background: var(--vr-red-700); }
.eyebrow-line--white { background: rgba(255,255,255,.5); }
.eyebrow-line--red { background: var(--vr-red-400); }
.eyebrow-text { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--vr-gray-700); }
.eyebrow-text--white { color: rgba(255,255,255,.62); }

/* ── Typography ─────────────────────────────────────────────────── */
.t-xl { font-family: var(--vr-fd); font-weight: 500; font-size: clamp(44px,7vw,88px); line-height: 1.04; letter-spacing: -.01em; text-wrap: balance; }
.t-d  { font-family: var(--vr-fd); font-weight: 500; font-size: clamp(32px,4.5vw,54px); line-height: 1.1; letter-spacing: -.01em; text-wrap: balance; }
.t-md { font-family: var(--vr-fd); font-weight: 500; font-size: clamp(28px,3.8vw,48px); line-height: 1.12; letter-spacing: -.01em; text-wrap: balance; }
.t-sm { font-family: var(--vr-fd); font-weight: 500; font-size: clamp(24px,2.8vw,38px); line-height: 1.12; }
.t-partner { font-family: var(--vr-fd); font-weight: 500; font-size: clamp(44px,5.5vw,68px); line-height: 1.0; }
.t-lede { font-style: italic; font-size: clamp(17px,1.5vw,21px); line-height: 1.55; color: var(--vr-gray-700); }
.t-body { font-size: 16px; line-height: 1.75; }
.t-body-sm { font-size: 15px; line-height: 1.65; }
.t-body-xs { font-size: 14px; line-height: 1.7; }
.c-red { color: var(--vr-red-700); }
.c-muted { color: var(--vr-gray-700); }
.c-white { color: #fff; }
.c-w88 { color: rgba(255,255,255,.88); }
.c-w78 { color: rgba(255,255,255,.78); }
.c-w62 { color: rgba(255,255,255,.62); }
em.red { color: var(--vr-red-700); font-style: italic; }
strong { color: var(--vr-ink); }

/* ── Backgrounds ─────────────────────────────────────────────────── */
.bg-white { background: #fff; }
.bg-gray  { background: var(--vr-gray-100); }
.bg-dark  { background: var(--vr-ink); color: #fff; }
.bg-red   { background: var(--vr-red-900); color: #fff; }

/* ── Spacing ─────────────────────────────────────────────────────── */
.py-xl { padding-block: 120px; }
.py-lg { padding-block: 110px; }
.py-md { padding-block: 96px; }
.py-sm { padding-block: 72px; }
.px-s  { padding-inline: 20px; }

/* ── Grids ───────────────────────────────────────────────────────── */
.g-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.g-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 28px; }
.g-4 { display: grid; grid-template-columns: repeat(4,1fr); }
.g-a { display: grid; grid-template-columns: 7fr 5fr; gap: 72px; align-items: start; }
.g-b { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; align-items: start; }
.g-c { display: grid; grid-template-columns: 6fr 5fr; gap: 80px; align-items: start; }

/* ── Cards ───────────────────────────────────────────────────────── */
.card {
  background: #fff; border: 1px solid var(--vr-gray-200);
  padding: 44px 36px 40px; display: flex; flex-direction: column; gap: 18px;
  transition: border-color .18s; text-decoration: none; color: var(--vr-ink);
}
.card:hover { border-color: var(--vr-red-700); }
.card-bar { display: block; width: 88px; height: 2px; background: var(--vr-red-400); flex-shrink: 0; }
.card-eyebrow { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--vr-gray-700); }
.card-title { font-weight: 700; font-size: 22px; line-height: 1.3; }
.card-body { font-size: 15px; line-height: 1.65; color: var(--vr-gray-700); flex: 1; }
.card-link { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--vr-red-700); }

/* Frente card */
.frente { background: #fff; border: 1px solid var(--vr-gray-200); padding: 40px 36px; display: flex; flex-direction: column; gap: 16px; }
.frente h3 { font-weight: 700; font-size: 19px; line-height: 1.35; }
.frente p { font-size: 15px; line-height: 1.65; color: var(--vr-gray-700); }

/* Article card */
.art-card { text-decoration: none; color: var(--vr-ink); border-top: 2px solid var(--vr-ink); padding-top: 28px; display: flex; flex-direction: column; gap: 16px; transition: border-top-color .18s; }
.art-card:hover { border-top-color: var(--vr-red-700); }
.art-tag { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--vr-red-700); }
.art-title { font-weight: 700; font-size: 20px; line-height: 1.4; }
.art-excerpt { font-size: 14px; line-height: 1.65; color: var(--vr-gray-700); }
.art-link { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }

/* Article list */
.art-list-item { padding: 32px 0; border-bottom: 1px solid var(--vr-gray-200); text-decoration: none; color: var(--vr-ink); display: flex; flex-direction: column; gap: 12px; }
.art-list-item:first-child { border-top: 1px solid var(--vr-gray-200); }
.art-list-item:hover .art-list-title { color: var(--vr-red-700); }
.art-list-meta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.art-list-tag { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--vr-red-700); }
.art-list-date { font-size: 12px; color: var(--vr-gray-700); }
.art-list-title { font-weight: 700; font-size: 22px; line-height: 1.35; transition: color .18s; }
.art-list-excerpt { font-size: 15px; line-height: 1.65; color: var(--vr-gray-700); max-width: 720px; }
.art-list-readmore { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--vr-red-700); }

/* ── Credibility bar ─────────────────────────────────────────────── */
.cred-bar { background: var(--vr-ink); color: #fff; display: grid; grid-template-columns: repeat(4,1fr); }
.cred-item { padding: 30px 36px; display: flex; flex-direction: column; gap: 8px; border-right: 1px solid rgba(255,255,255,.14); position: relative; transition: background .2s ease-out; }
.cred-item::after { content: ""; position: absolute; left: 36px; right: 36px; bottom: 0; height: 2px; background: var(--vr-red-700); transform: scaleX(0); transform-origin: left; transition: transform .2s ease-out; }
.cred-item:hover { background: rgba(255,255,255,.05); }
.cred-item:hover::after { transform: scaleX(1); }
.cred-item:last-child { border-right: none; }
.cred-value { font-family: var(--vr-fd); font-size: 30px; font-weight: 500; line-height: 1; }
.cred-label { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.62); }

/* ── Buttons ─────────────────────────────────────────────────────── */
.btn {
  display: inline-block; font-size: 13px; letter-spacing: .18em; text-transform: uppercase;
  text-decoration: none; border: none; cursor: pointer; transition: background .18s; white-space: nowrap;
  padding: 20px 40px; font-family: var(--vr-fs); border-radius: 0;
}
.btn-primary { color: #fff; background: var(--vr-red-700); }
.btn-primary:hover { background: var(--vr-red-900); color: #fff; }
.btn-sm { padding: 18px 32px; }
.btn-arrow {
  display: inline-flex; align-items: center; gap: 10px; font-size: 13px;
  letter-spacing: .18em; text-transform: uppercase; text-decoration: none;
  color: var(--vr-ink); padding: 16px 4px; border-bottom: 1px solid var(--vr-ink);
  transition: color .18s, border-color .18s; white-space: nowrap;
}
.btn-arrow:hover { color: var(--vr-red-700); border-bottom-color: var(--vr-red-700); }
.btn-arrow span, .btn-arrow-white span { display: inline-block; transition: transform .18s ease-out; }
.btn-arrow:hover span, .btn-arrow-white:hover span { transform: translateX(6px); }
.btn-arrow-white {
  color: #fff; border-bottom-color: rgba(255,255,255,.6);
  padding-block: 0; padding-bottom: 8px;
}
.btn-arrow-white:hover { opacity: .85; color: #fff; border-bottom-color: rgba(255,255,255,.6); }
.cta-row { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; margin-top: 48px; }

/* ── Steps / Method ──────────────────────────────────────────────── */
.steps { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--vr-gray-200); }
.step { display: flex; flex-direction: column; gap: 18px; padding: 44px 36px 44px 0; border-right: 1px solid var(--vr-gray-200); }
.step:not(:first-child) { padding-left: 36px; }
.step:last-child { border-right: none; padding-right: 0; }
.step-num { font-family: var(--vr-fd); font-size: 56px; font-weight: 400; color: var(--vr-red-700); line-height: 1; }
.step h3 { font-weight: 700; font-size: 18px; line-height: 1.3; }
.step p { font-size: 14px; line-height: 1.7; color: var(--vr-gray-700); }

/* Steps vertical (método page) */
.steps-v { border-top: 1px solid var(--vr-gray-200); }
.step-v { display: grid; grid-template-columns: 80px 1fr; gap: 32px; padding: 48px 0; border-bottom: 1px solid var(--vr-gray-200); align-items: start; }
.step-v:last-child { border-bottom: none; }
.step-v-num { font-family: var(--vr-fd); font-size: 64px; font-weight: 400; color: var(--vr-red-700); line-height: 1; text-align: right; }
.step-v-content { display: flex; flex-direction: column; gap: 14px; padding-top: 8px; }
.step-v-content h3 { font-weight: 700; font-size: 22px; line-height: 1.3; }
.step-v-content p { font-size: 16px; line-height: 1.75; color: var(--vr-gray-700); }

/* ── Risk list ───────────────────────────────────────────────────── */
.risk-list { border-top: 1px solid rgba(255,255,255,.25); }
.risk-item { display: flex; gap: 20px; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.25); }
.risk-item:last-child { border-bottom: none; }
.risk-glyph { font-family: var(--vr-fd); font-size: 22px; font-style: italic; color: rgba(255,255,255,.7); min-width: 36px; }
.risk-text { font-size: 15px; line-height: 1.65; color: rgba(255,255,255,.92); }

/* ── Partners ────────────────────────────────────────────────────── */
.partner-card { display: grid; grid-template-columns: 280px 1fr; gap: 36px; align-items: center; border: 1px solid rgba(255,255,255,.12); padding: 36px; }
.partner-photo { width: 280px; height: 360px; object-fit: cover; object-position: top; filter: grayscale(.18) contrast(.96) brightness(.92); }
.partner-info { display: flex; flex-direction: column; gap: 14px; max-width: 620px; }
.partner-bar { display: block; width: 88px; height: 2px; background: var(--vr-red-400); }
.partner-name { font-family: var(--vr-fd); font-weight: 500; font-size: 36px; line-height: 1.05; }
.partner-role { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: rgba(255,255,255,.62); }
.partner-bio { font-size: 14px; line-height: 1.7; color: rgba(255,255,255,.78); }
.partner-link { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; color: #fff; border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: 6px; align-self: flex-start; transition: opacity .18s; }
.partner-link:hover { opacity: .85; }

/* Partner hero page */
.partner-hero { padding-top: 78px; background: var(--vr-ink); min-height: 680px; display: flex; align-items: stretch; }
.partner-hero-inner { max-width: var(--vr-mw); margin-inline: auto; padding-inline: 20px; display: grid; align-items: end; width: 100%; }
.partner-hero-photo { display: flex; align-items: flex-end; padding-top: 80px; }
.partner-hero-photo img { width: 100%; max-width: 460px; object-fit: cover; filter: grayscale(.18) contrast(.96) brightness(.88); }
.partner-hero-info { padding: 96px 0 80px; display: flex; flex-direction: column; justify-content: flex-end; gap: 24px; color: #fff; }

/* ── FAQ ─────────────────────────────────────────────────────────── */
.faq-list { border-top: 1px solid var(--vr-gray-200); }
.faq-item { border-bottom: 1px solid var(--vr-gray-200); }
.faq-btn { width: 100%; background: none; border: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 4px; text-align: left; }
.faq-q { font-weight: 700; font-size: 17px; line-height: 1.5; color: var(--vr-ink); font-family: var(--vr-fs); }
.faq-icon { font-family: var(--vr-fd); font-size: 28px; color: var(--vr-red-700); line-height: 1; flex-shrink: 0; }
.faq-a { display: none; font-size: 15px; line-height: 1.75; color: var(--vr-gray-700); padding: 0 48px 26px 4px; }
.faq-item.open .faq-a { display: block; }

/* ── Breadcrumb ──────────────────────────────────────────────────── */
.breadcrumb { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--vr-gray-500); margin-bottom: 44px; flex-wrap: wrap; }
.breadcrumb a { color: var(--vr-gray-700); text-decoration: none; }
.breadcrumb a:hover { color: var(--vr-red-700); }

/* ── Forms ───────────────────────────────────────────────────────── */
.form-card { background: #fff; border: 1px solid var(--vr-gray-200); border-top: 3px solid var(--vr-red-700); padding: 44px; }
.form-fields { display: flex; flex-direction: column; gap: 22px; }
.form-field { display: flex; flex-direction: column; gap: 8px; }
.form-label { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--vr-gray-700); }
.form-input,.form-select,.form-textarea {
  font-size: 15px; padding: 14px 16px; border: 1px solid #DADADA;
  background: #fff; color: var(--vr-ink); outline: none; width: 100%;
  appearance: none; -webkit-appearance: none; transition: border-color .18s;
}
.form-input:focus,.form-select:focus,.form-textarea:focus { border-color: var(--vr-red-700); }
.form-textarea { resize: vertical; }
.form-sel-wrap { position: relative; }
.form-sel-wrap::after { content:"▾"; position:absolute; right:16px; top:50%; transform:translateY(-50%); color:var(--vr-gray-700); pointer-events:none; font-size:11px; }
.form-error { font-size: 13px; min-height: 20px; }
.form-error.err { color: var(--vr-red-700); }
.form-error.info { color: var(--vr-gray-700); }
.form-note { font-size: 12px; line-height: 1.6; color: var(--vr-gray-500); }
.form-submit { width: 100%; padding: 18px 32px; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: #fff; background: var(--vr-red-700); border: none; cursor: pointer; transition: background .18s; font-family: var(--vr-fs); border-radius: 0; }
.form-submit:hover { background: var(--vr-red-900); }
.form-submit:disabled { opacity: .6; cursor: not-allowed; }
.form-check-row { display: flex; align-items: flex-start; gap: 12px; }
.form-check-row input[type="checkbox"] { width: 16px; height: 16px; margin-top: 3px; flex-shrink: 0; accent-color: var(--vr-red-700); }
.form-check-row label { font-size: 13px; line-height: 1.5; color: var(--vr-gray-700); cursor: pointer; }
.form-check-row label a { color: var(--vr-red-700); }

/* ── Contact info ────────────────────────────────────────────────── */
.contact-info { display: flex; flex-direction: column; gap: 10px; border-top: 1px solid #DADADA; padding-top: 28px; margin-top: 8px; }
.contact-info span { font-size: 14px; color: var(--vr-gray-700); }
.contact-info span.dark { color: var(--vr-ink); }
.contact-info a { font-size: 14px; color: var(--vr-red-700); text-decoration: none; }
.contact-info a:hover { color: var(--vr-red-900); }

/* ── Footer ──────────────────────────────────────────────────────── */
.site-footer { background: var(--vr-ink); color: #fff; padding-top: 96px; }
.footer-grid { display: grid; grid-template-columns: 4fr 2.6fr 2.6fr 2.2fr; gap: 56px; padding-bottom: 72px; }
.footer-brand { display: flex; flex-direction: column; gap: 24px; }
.footer-logo { height: 36px; width: auto; max-width: none; object-fit: contain; align-self: flex-start; }
.footer-official { font-size: 12px; line-height: 1.7; color: rgba(255,255,255,.5); max-width: 320px; }
.footer-social { display: flex; gap: 16px; margin-top: 4px; }
.footer-social a { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.62); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.3); padding-bottom: 4px; }
.footer-social a:hover { color: #fff; border-bottom-color: #fff; }
.footer-tagline { font-family: var(--vr-fd); font-style: italic; font-size: 20px; line-height: 1.4; color: rgba(255,255,255,.78); max-width: 300px; }
.footer-addr { font-size: 13px; line-height: 1.7; color: rgba(255,255,255,.62); display: flex; flex-direction: column; gap: 3px; }
.footer-addr a { color: rgba(255,255,255,.62); text-decoration: none; }
.footer-addr a:hover { color: #fff; }
.footer-col { display: flex; flex-direction: column; gap: 16px; }
.footer-col-title { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: rgba(255,255,255,.45); margin-bottom: 6px; }
.footer-link { font-size: 14px; text-decoration: none; color: rgba(255,255,255,.78); }
.footer-link:hover { color: #fff; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.14); padding: 28px 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; flex-wrap: wrap; }
.footer-legal { font-size: 12px; color: rgba(255,255,255,.45); line-height: 1.7; }
.footer-bar { height: 10px; background: var(--vr-red-900); }

/* ── WhatsApp float ──────────────────────────────────────────────── */
.wa-btn { position: fixed; right: 28px; bottom: 28px; z-index: 70; width: 58px; height: 58px; background: var(--vr-red-900); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 28px rgba(17,17,17,.28); transition: background .18s; text-decoration: none; }
.wa-btn:hover { background: var(--vr-red-700); }

/* ── Heroes ──────────────────────────────────────────────────────── */
.hero-home { padding: 196px 20px 0; background: #fff; position: relative; overflow: hidden; }
.hero-home .container { position: relative; z-index: 2; }
.hero-spot {
  position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0;
  transition: opacity .4s ease-out;
  background: radial-gradient(620px circle at var(--mx,60%) var(--my,38%), rgba(156,17,15,.05), transparent 64%);
}
.hero-home:hover .hero-spot { opacity: 1; }
.hero-mark {
  position: absolute; right: -3vw; top: 34px; z-index: 1;
  font-family: var(--vr-fd); font-style: italic; font-weight: 500;
  font-size: clamp(300px,36vw,540px); line-height: .82;
  color: transparent; -webkit-text-stroke: 1px rgba(156,17,15,.13);
  pointer-events: none; user-select: none; will-change: transform;
  transition: transform .6s ease-out;
}
.hero-home .t-xl em.red { position: relative; transition: color .18s ease-out; }
.hero-home .t-xl em.red::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .02em; height: 2px;
  background: var(--vr-red-700); transform: scaleX(0); transform-origin: left;
  transition: transform .2s ease-out;
}
.hero-home .t-xl:hover em.red { color: var(--vr-red-900); }
.hero-home .t-xl:hover em.red::after { transform: scaleX(1); }
@media (max-width: 900px) { .hero-mark { display: none; } }
.hero-page { padding: 158px 20px 72px; background: #fff; }

/* ── Article styles ──────────────────────────────────────────────── */
.art-header { padding: 158px 20px 56px; background: #fff; }
.art-meta { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 32px; }
.art-date,.art-author { font-size: 12px; color: var(--vr-gray-700); }
.art-body { max-width: 760px; margin-inline: auto; padding: 0 20px 80px; }
.art-body h2 { font-family: var(--vr-fd); font-weight: 500; font-size: clamp(24px,2.8vw,34px); line-height: 1.2; margin-top: 52px; margin-bottom: 18px; }
.art-body h3 { font-weight: 700; font-size: 20px; line-height: 1.35; margin-top: 36px; margin-bottom: 14px; }
.art-body p { font-size: 17px; line-height: 1.75; margin-bottom: 20px; }
.art-body ul,.art-body ol { margin: 0 0 20px 24px; }
.art-body li { font-size: 17px; line-height: 1.75; margin-bottom: 8px; }
.art-highlight { background: var(--vr-gray-100); border-left: 3px solid var(--vr-red-700); padding: 28px 32px; margin: 40px 0; font-style: italic; font-size: 17px; line-height: 1.7; }
.art-author-box { border-top: 1px solid var(--vr-gray-200); padding-top: 40px; margin-top: 56px; display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.art-author-photo { width: 80px; height: 80px; object-fit: cover; object-position: top; flex-shrink: 0; filter: grayscale(.18) contrast(.96) brightness(.92); }

/* ── Institutional brand page ────────────────────────────────────── */
.brand-channels { display: flex; flex-direction: column; gap: 14px; }
.brand-channel { display: flex; align-items: center; gap: 16px; font-size: 15px; }
.brand-channel-label { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--vr-gray-700); min-width: 100px; }
.brand-channel-val { color: var(--vr-ink); }
.brand-channel-val a { color: var(--vr-red-700); text-decoration: none; }

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .g-4 { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .cred-bar { grid-template-columns: 1fr 1fr; }
  .cred-item:nth-child(2) { border-right: none; }
  .g-a,.g-b { gap: 48px; }
}

@media (max-width: 1024px) {
  .site-nav { display: none; }
  .ham-btn { display: flex; }
}

@media (max-width: 768px) {
  .hero-home { padding-top: 130px; }
  .hero-page { padding-top: 120px; padding-bottom: 48px; }
  .partner-hero { min-height: auto; }
  .partner-hero-inner { grid-template-columns: 1fr !important; }
  .partner-hero-photo { display: none; }
  .partner-hero-info { padding: 60px 0 56px !important; }
  div[style*="grid-template-columns:240px 1fr"] { grid-template-columns: 1fr !important; padding: 28px 20px !important; }
  div[style*="grid-template-columns:240px 1fr"] img { width: 100% !important; max-width: 320px; height: auto !important; }
  .header-logo img { height: 29px; }
  .g-2,.g-3,.g-a,.g-b,.g-c { grid-template-columns: 1fr; gap: 24px; }
  .steps { grid-template-columns: 1fr; }
  .step,.step:not(:first-child),.step:last-child { padding: 32px 0; border-right: none; border-bottom: 1px solid var(--vr-gray-200); }
  .step:last-child { border-bottom: none; padding-right: 0; }
  .step:not(:first-child) { padding-left: 0; }
  .partner-card { grid-template-columns: 1fr; }
  .partner-photo { width: 100%; max-width: 340px; height: 280px; }
  .py-xl { padding-block: 80px; }
  .py-lg { padding-block: 72px; }
  .py-md { padding-block: 56px; }
  .cta-row { flex-direction: column; align-items: flex-start; }
  .card { padding: 32px 24px; }
  .frente { padding: 28px 20px; }
  .footer-grid { grid-template-columns: 1fr; gap: 40px; }
  .footer-bottom { flex-direction: column; }
  .wa-btn { right: 20px; bottom: 20px; }
  .form-card { padding: 28px 20px; }
  .art-body { padding-inline: 16px; }
  .step-v { grid-template-columns: 56px 1fr; gap: 20px; }
  .step-v-num { font-size: 48px; }
}

@media (max-width: 480px) {
  .header-logo img { height: 25px; }
  .breadcrumb { margin-bottom: 32px; }
  .cred-bar { grid-template-columns: 1fr; }
  .cred-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.14); }
  .cred-item:last-child { border-bottom: none; }
}

@media print {
  .site-header,.mobile-menu,.wa-btn,.ham-btn { display: none !important; }
  body { padding-top: 0; }
}

/* ── Scroll reveal ───────────────────────────────────────────────── */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease-out, transform .6s ease-out; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ── GEO / FAQ section heading reuse ─────────────────────────────── */
.geo-q { font-weight: 700; font-size: 17px; line-height: 1.45; margin: 0 0 10px; }
.geo-a { font-size: 15px; line-height: 1.7; color: var(--vr-gray-700); margin: 0; }
