/* ============================================================
   HONRAMOS TU DERECHO — main.css
   Design system + todos los componentes del sitio multipágina
   ============================================================
   ÍNDICE
   0.  Tokens (Custom Properties)
   1.  Reset & Base
   2.  Layout
   3.  Skip link
   4.  Botones
   5.  Formularios
   6.  Navegación (header, dropdown, mobile)
   7.  Top Banner
   8.  Footer
   9.  Sticky CTA
   10. Breadcrumbs
   11. Patrones tipográficos de sección
   12. Hero — Home
   13. Secciones Landing (home: elegibilidad → cta-final)
   14. Form Card (sección agendar)
   15. Heroes internos (páginas interiores)
   16. Bloque de servicio destacado ($50k)
   17. Service cards / grid
   18. Página Nosotros
   19. Página Servicios hub
   20. Página Proceso
   21. Página FAQ
   22. Página Agendar
   23. Página Contacto
   24. Página Gracias
   25. Página Recursos
   26. Animaciones
   27. Responsive
   ============================================================ */

/* ─── 0. TOKENS ──────────────────────────────────────────── */
:root {
  --color-navy:        #0B1D38;
  --color-navy-deep:   #101A2E;
  --color-navy-mid:    #162540;
  --color-navy-light:  #1E3055;
  --color-gold:        #C9A84E;
  --color-gold-soft:   #E4C36A;
  --color-gold-muted:  #A8894A;
  --color-ivory:       #F7F3EA;
  --color-ivory-deep:  #EDE8DC;
  --color-sand:        #F2E4CC;
  --color-text:        #49515A;
  --color-text-light:  #6B7380;
  --color-text-xlight: #9CA3AD;
  --color-white:       #FFFFFF;
  --color-border:      #DDD8CC;
  --color-success:     #2D7A5F;
  --color-error:       #B83232;

  --font-serif:  'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-sans:   'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --fs-xs:    0.75rem;
  --fs-sm:    0.875rem;
  --fs-base:  1rem;
  --fs-md:    1.125rem;
  --fs-lg:    1.25rem;
  --fs-xl:    1.5rem;
  --fs-2xl:   1.875rem;
  --fs-3xl:   2.25rem;
  --fs-4xl:   2.75rem;
  --fs-5xl:   3.5rem;

  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-7:  1.75rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-14: 3.5rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  --container-max: 1160px;
  --container-pad: var(--space-5);

  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   16px;
  --radius-xl:   24px;
  --radius-full: 9999px;

  --shadow-sm:   0 1px 3px rgba(11,29,56,.08), 0 1px 2px rgba(11,29,56,.06);
  --shadow-md:   0 4px 16px rgba(11,29,56,.10), 0 2px 6px rgba(11,29,56,.07);
  --shadow-lg:   0 12px 40px rgba(11,29,56,.14), 0 4px 12px rgba(11,29,56,.08);
  --shadow-gold: 0 4px 20px rgba(201,168,78,.25);

  --trans-fast:  150ms ease;
  --trans-base:  250ms ease;
  --trans-slow:  400ms ease;

  --z-sticky:  100;
  --z-header:  200;
  --z-dropdown:250;
  --z-overlay: 300;
  --z-float:   400;
}

/* ─── 1. RESET & BASE ────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  scroll-behavior: smooth;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: 1.65;
  color: var(--color-text);
  background: var(--color-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img, picture, video, canvas, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; }
p, h1, h2, h3, h4 { overflow-wrap: break-word; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* ─── 2. LAYOUT ──────────────────────────────────────────── */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}
.container--narrow { max-width: 820px; }
.container--wide   { max-width: 1280px; }

/* ─── 3. SKIP LINK ───────────────────────────────────────── */
.skip-link {
  position: absolute;
  top: -9999px;
  left: var(--space-4);
  background: var(--color-gold);
  color: var(--color-navy);
  padding: var(--space-3) var(--space-6);
  border-radius: var(--radius-md);
  font-weight: 600;
  z-index: var(--z-float);
}
.skip-link:focus { top: var(--space-4); }

/* ─── 4. BOTONES ─────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-6);
  border-radius: var(--radius-full);
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.3;
  cursor: pointer;
  border: 2px solid transparent;
  transition: background var(--trans-fast), color var(--trans-fast),
              border-color var(--trans-fast), box-shadow var(--trans-fast),
              transform var(--trans-fast);
  text-align: center;
  white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn-gold {
  background: var(--color-gold);
  color: var(--color-navy);
  border-color: var(--color-gold);
}
.btn-gold:hover {
  background: var(--color-gold-soft);
  border-color: var(--color-gold-soft);
  box-shadow: var(--shadow-gold);
}

.btn-navy {
  background: var(--color-navy);
  color: var(--color-white);
  border-color: var(--color-navy);
}
.btn-navy:hover { background: var(--color-navy-mid); }

.btn-outline {
  background: transparent;
  color: var(--color-navy);
  border-color: var(--color-navy);
}
.btn-outline:hover { background: var(--color-navy); color: var(--color-white); }

.btn-outline-light {
  background: transparent;
  color: var(--color-white);
  border-color: rgba(255,255,255,.45);
}
.btn-outline-light:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.7); }

.btn-outline-dark {
  background: transparent;
  color: var(--color-navy);
  border-color: var(--color-border);
}
.btn-outline-dark:hover { border-color: var(--color-navy); }

.btn-ghost {
  background: transparent;
  color: var(--color-gold-soft);
  border-color: transparent;
  padding-left: var(--space-2);
  padding-right: var(--space-2);
}
.btn-ghost:hover { color: var(--color-gold); }

.btn-wa {
  background: #25D366;
  color: var(--color-white);
  border-color: #25D366;
  font-weight: 600;
}
.btn-wa:hover {
  background: #1aaa50;
  border-color: #1aaa50;
  box-shadow: 0 6px 20px rgba(37,211,102,.28);
}

.btn-sm  { padding: var(--space-2) var(--space-4); font-size: var(--fs-xs); }
.btn-lg  { padding: var(--space-4) var(--space-8); font-size: var(--fs-base); }
.btn-xl  { padding: var(--space-5) var(--space-10); font-size: var(--fs-md); }
.btn-full { width: 100%; justify-content: center; }

@media (max-width: 639px) {
  .btn-lg, .btn-xl { white-space: normal; text-align: center; line-height: 1.35; }
}

/* ─── 5. FORMULARIOS ─────────────────────────────────────── */
.form-group { display: flex; flex-direction: column; gap: var(--space-2); }
.form-row   { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }

.form-label {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--color-navy);
  line-height: 1.3;
}
.campo-req     { color: var(--color-gold); }
.campo-opcional {
  font-weight: 400;
  color: var(--color-text-xlight);
  font-size: var(--fs-xs);
  margin-left: var(--space-1);
}

.form-input,
.form-select {
  padding: var(--space-3) var(--space-4);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--fs-base);
  color: var(--color-navy);
  background: var(--color-white);
  transition: border-color var(--trans-fast), box-shadow var(--trans-fast);
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
}
.form-input::placeholder { color: var(--color-text-xlight); }
.form-input:focus,
.form-select:focus {
  outline: none;
  border-color: var(--color-gold);
  box-shadow: 0 0 0 3px rgba(201,168,78,.15);
}
.form-input.error,
.form-select.error { border-color: var(--color-error); }

.form-select {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7.5l5 5 5-5' stroke='%2349515A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px;
  padding-right: var(--space-10);
}

.form-error {
  font-size: var(--fs-xs);
  color: var(--color-error);
  min-height: 1em;
  line-height: 1.4;
}

/* Custom checkboxes */
.cb-group { display: flex; flex-direction: column; gap: var(--space-4); }
.cb-item  { display: flex; flex-direction: column; gap: var(--space-1); }
.cb-wrap  { display: flex; align-items: flex-start; gap: var(--space-3); cursor: pointer; position: relative; }
.cb-native { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.cb-box {
  display: flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; min-width: 18px;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  margin-top: 1px;
  transition: background var(--trans-fast), border-color var(--trans-fast);
}
.cb-native:checked ~ .cb-box {
  background: var(--color-gold);
  border-color: var(--color-gold);
}
.cb-native:checked ~ .cb-box::after {
  content: '';
  display: block;
  width: 9px; height: 5px;
  border-left: 2px solid var(--color-navy);
  border-bottom: 2px solid var(--color-navy);
  transform: rotate(-45deg) translate(1px,-1px);
}
.cb-native:focus-visible ~ .cb-box { outline: 2px solid var(--color-gold); outline-offset: 2px; }
.cb-wrap:hover .cb-box { border-color: var(--color-gold-muted); }
.cb-text { font-size: var(--fs-xs); color: var(--color-text); line-height: 1.65; }
.cb-text a { color: var(--color-gold-muted); text-decoration: underline; text-decoration-color: rgba(168,137,74,.4); }
.cb-text a:hover { color: var(--color-gold); }

/* Icon-input pattern */
.fi-wrap { position: relative; display: flex; align-items: center; }
.fi-icon {
  position: absolute; left: 11px; top: 50%; transform: translateY(-50%);
  display: flex; align-items: center;
  color: var(--color-text-xlight);
  pointer-events: none;
  transition: color var(--trans-fast);
  z-index: 1; line-height: 0;
}
.fi-wrap:focus-within .fi-icon { color: var(--color-gold); }
.fi-input { padding-left: 36px; }

/* Form states */
.form-success {
  display: flex; align-items: center; gap: var(--space-3);
  background: rgba(45,122,95,.1);
  border: 1px solid rgba(45,122,95,.3);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
  font-size: var(--fs-sm);
  color: var(--color-success);
  font-weight: 500;
}
.form-success[hidden] { display: none; }
.form-error-general {
  background: rgba(184,50,50,.08);
  border: 1px solid rgba(184,50,50,.25);
  border-radius: var(--radius-md);
  padding: var(--space-3) var(--space-5);
  font-size: var(--fs-sm);
  color: var(--color-error);
}
.form-error-general[hidden] { display: none; }
.form-seguridad {
  display: flex; align-items: center; justify-content: center;
  gap: var(--space-2);
  font-size: var(--fs-xs);
  color: var(--color-text-light);
  text-align: center;
}

/* ─── 6. NAVEGACIÓN ──────────────────────────────────────── */
.top-banner {
  background: var(--color-navy-mid);
  border-bottom: 1px solid rgba(201,168,78,.2);
  padding-block: 10px;
}
.top-banner-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}
.top-banner-text {
  font-size: var(--fs-xs);
  color: rgba(247,243,234,.8);
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex: 1;
}
.top-banner-link { color: var(--color-gold-soft); text-decoration: underline; text-underline-offset: 3px; }
.top-banner-link:hover { color: var(--color-gold); }
.top-banner-close {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px;
  background: transparent;
  border: none;
  color: rgba(247,243,234,.5);
  border-radius: var(--radius-sm);
  cursor: pointer;
  flex-shrink: 0;
  transition: color var(--trans-fast), background var(--trans-fast);
}
.top-banner-close:hover { color: var(--color-white); background: rgba(255,255,255,.08); }
.top-banner[hidden] { display: none; }

.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-header);
  background: var(--color-navy);
  border-bottom: 1px solid rgba(255,255,255,.08);
  transition: box-shadow var(--trans-base);
}
.site-header.scrolled { box-shadow: 0 4px 20px rgba(11,29,56,.4); }

.header-container {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  height: 72px;
}

.site-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
}
.site-logo img { height: 42px; width: auto; }

/* Desktop nav */
.site-nav { display: flex; flex: 1; }
.nav-list {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  list-style: none;
}
.nav-link {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 12px;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: rgba(255,255,255,.82);
  border-radius: var(--radius-md);
  transition: color var(--trans-fast), background var(--trans-fast);
  cursor: pointer;
  background: none;
  border: none;
  line-height: 1.3;
  white-space: nowrap;
}
.nav-link:hover,
.nav-link:focus-visible { color: var(--color-white); background: rgba(255,255,255,.08); }
.nav-link.active { color: var(--color-gold-soft); }
.nav-chevron {
  width: 14px; height: 14px;
  transition: transform var(--trans-fast);
  flex-shrink: 0;
}
.nav-item-dropdown.is-open .nav-chevron { transform: rotate(180deg); }

/* Dropdown panel */
.nav-item-dropdown { position: relative; }
.nav-dropdown-panel {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--color-navy);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  min-width: 580px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5), 0 4px 16px rgba(0,0,0,.2);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--trans-base), visibility var(--trans-base);
  z-index: var(--z-dropdown);
}
.nav-item-dropdown:hover .nav-dropdown-panel,
.nav-item-dropdown:focus-within .nav-dropdown-panel,
.nav-item-dropdown.is-open .nav-dropdown-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.dropdown-cols { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--space-6); margin-bottom: var(--space-4); }
.dropdown-col { display: flex; flex-direction: column; gap: var(--space-2); }
.dropdown-col-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gold-muted);
  margin-bottom: var(--space-1);
}
.dropdown-link {
  font-size: var(--fs-sm);
  color: rgba(255,255,255,.72);
  padding: 6px 8px;
  border-radius: var(--radius-sm);
  transition: color var(--trans-fast), background var(--trans-fast);
}
.dropdown-link:hover { color: var(--color-gold-soft); background: rgba(255,255,255,.07); }
.dropdown-footer {
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: var(--space-3);
  text-align: center;
}
.dropdown-all {
  font-size: var(--fs-xs);
  color: var(--color-gold-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  transition: color var(--trans-fast);
}
.dropdown-all:hover { color: var(--color-gold-soft); }

/* Header actions */
.header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-left: auto;
  flex-shrink: 0;
}
.header-wa-btn { gap: var(--space-2); }

/* Hamburger */
.nav-mobile-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px; height: 40px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 4px;
  border-radius: var(--radius-md);
  transition: background var(--trans-fast);
}
.nav-mobile-toggle:hover { background: rgba(255,255,255,.08); }
.hamburger-bar {
  display: block;
  width: 22px; height: 2px;
  background: rgba(255,255,255,.85);
  border-radius: 2px;
  transition: transform var(--trans-base), opacity var(--trans-base);
}
.nav-mobile-toggle.is-open .hamburger-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-mobile-toggle.is-open .hamburger-bar:nth-child(2) { opacity: 0; }
.nav-mobile-toggle.is-open .hamburger-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Nav close btn inside mobile */
.nav-close-btn {
  display: none;
  position: absolute;
  top: 20px; right: 20px;
  background: rgba(255,255,255,.08);
  border: none;
  color: rgba(255,255,255,.7);
  width: 40px; height: 40px;
  border-radius: var(--radius-md);
  cursor: pointer;
  align-items: center;
  justify-content: center;
}

/* ─── 7. FOOTER ──────────────────────────────────────────── */
.site-footer {
  background: var(--color-navy-deep);
  padding-block: var(--space-16) var(--space-8);
  border-top: 1px solid rgba(255,255,255,.06);
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: var(--space-8);
  margin-bottom: var(--space-12);
}
.footer-brand {}
.footer-logo { display: inline-flex; margin-bottom: var(--space-4); }
.footer-logo img { height: 68px; width: auto; }
.footer-tagline {
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.55);
  line-height: 1.65;
  margin-bottom: var(--space-5);
  max-width: 240px;
}
.footer-contact-links { display: flex; flex-direction: column; gap: var(--space-2); }
.footer-contact-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.65);
  transition: color var(--trans-fast);
}
.footer-contact-link:hover { color: var(--color-gold-soft); }

.footer-nav-title {
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--color-gold-muted);
  margin-bottom: var(--space-4);
}
.footer-nav-list { display: flex; flex-direction: column; gap: var(--space-2); }
.footer-nav-list a {
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.6);
  transition: color var(--trans-fast);
}
.footer-nav-list a:hover { color: var(--color-gold-soft); }

.footer-bottom {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-6);
  padding-top: var(--space-8);
  border-top: 1px solid rgba(255,255,255,.07);
  flex-wrap: wrap;
}
.footer-copy {
  font-size: var(--fs-xs);
  color: rgba(247,243,234,.35);
  line-height: 1.7;
}
.footer-legal-nav { display: flex; align-items: center; gap: var(--space-5); flex-wrap: wrap; }
.footer-legal-nav a {
  font-size: var(--fs-xs);
  color: rgba(247,243,234,.4);
  transition: color var(--trans-fast);
}
.footer-legal-nav a:hover { color: rgba(247,243,234,.75); }

/* ─── 8. STICKY CTA ──────────────────────────────────────── */
.sticky-cta {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: var(--z-sticky);
  background: var(--color-navy);
  border-top: 1px solid rgba(255,255,255,.1);
  padding: var(--space-3) var(--space-4);
  padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
}
@media (max-width: 767px) {
  .sticky-cta {
    display: flex;
    align-items: center;
    gap: var(--space-3);
  }
  .sticky-cta-text { flex: 1; font-size: var(--fs-xs); color: rgba(255,255,255,.7); line-height: 1.3; }
  .sticky-cta-text strong { color: var(--color-white); display: block; }
  .sticky-cta .btn { flex-shrink: 0; }
  .sticky-cta[hidden] { display: none !important; }
}

/* ─── 9. BREADCRUMBS ─────────────────────────────────────── */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  font-size: var(--fs-xs);
  color: rgba(247,243,234,.5);
  margin-bottom: var(--space-5);
}
.breadcrumb a { color: rgba(247,243,234,.6); transition: color var(--trans-fast); }
.breadcrumb a:hover { color: var(--color-gold-soft); }
.breadcrumb-sep { color: rgba(247,243,234,.25); }
.breadcrumb-current { color: var(--color-gold-soft); font-weight: 500; }

/* Light breadcrumb (on white/ivory backgrounds) */
.breadcrumb--light { color: var(--color-text-light); }
.breadcrumb--light a { color: var(--color-text-light); }
.breadcrumb--light a:hover { color: var(--color-gold-muted); }
.breadcrumb--light .breadcrumb-sep { color: var(--color-text-xlight); }
.breadcrumb--light .breadcrumb-current { color: var(--color-gold-muted); }

/* ─── 10. PATRONES TIPOGRÁFICOS ──────────────────────────── */
.seccion-kicker {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-gold-muted);
  margin-bottom: var(--space-3);
}
.seccion-kicker.centrado { display: block; text-align: center; }
.seccion-kicker.claro { color: var(--color-gold-soft); }

.seccion-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-2xl);
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-navy);
  margin-bottom: var(--space-5);
}
.seccion-titulo-claro {
  font-family: var(--font-serif);
  font-size: var(--fs-2xl);
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-white);
  margin-bottom: var(--space-5);
}
@media (min-width: 768px) {
  .seccion-titulo,
  .seccion-titulo-claro { font-size: var(--fs-3xl); }
}

.seccion-sub {
  font-size: var(--fs-md);
  color: var(--color-text);
  line-height: 1.7;
  max-width: min(640px, 100%);
  margin-bottom: var(--space-10);
}
.seccion-sub.centrado { margin-inline: auto; text-align: center; }
.seccion-sub.claro { color: rgba(247,243,234,.75); }

.centrado { text-align: center; }
.br-desktop { display: none; }
@media (min-width: 768px) { .br-desktop { display: block; } }

/* Trust badge */
.trust-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-xs);
  font-weight: 500;
  color: rgba(247,243,234,.65);
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--radius-full);
  padding: 6px 12px;
}
.trust-badge svg { color: var(--color-gold-soft); flex-shrink: 0; }
.trust-badge--light { color: var(--color-text); background: var(--color-ivory); border-color: var(--color-border); }
.trust-badge--light svg { color: var(--color-gold); }

/* ─── 11. HERO — HOME ────────────────────────────────────── */
.hero {
  background: linear-gradient(160deg, var(--color-navy) 0%, var(--color-navy-deep) 50%, #0d1f3a 100%);
  position: relative;
  overflow: hidden;
  padding-block: var(--space-20) var(--space-24);
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero::before {
  content: '';
  position: absolute;
  top: -30%; right: -10%;
  width: 60%; height: 160%;
  background: radial-gradient(ellipse, rgba(201,168,78,.08) 0%, transparent 65%);
  pointer-events: none;
}

.hero-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-12);
  align-items: center;
  position: relative;
  z-index: 1;
}
@media (min-width: 900px) {
  .hero-container { grid-template-columns: 1fr 420px; gap: var(--space-16); }
}

.hero-content { max-width: 660px; }
.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-gold-soft);
  margin-bottom: var(--space-5);
}
.hero-headline {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.18;
  color: var(--color-white);
  margin-bottom: var(--space-6);
}
.hero-headline em { font-style: italic; color: var(--color-gold-soft); }
.hero-sub {
  font-size: var(--fs-md);
  color: rgba(247,243,234,.75);
  line-height: 1.75;
  margin-bottom: var(--space-8);
  max-width: 580px;
}
.hero-ctas { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; margin-bottom: var(--space-8); }
.hero-nota {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-xs);
  color: rgba(247,243,234,.4);
}
.hero-nota strong { color: rgba(247,243,234,.65); }

.hero-visual {
  position: relative;
  display: flex;
  justify-content: center;
}
.hero-img-wrap {
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0,0,0,.5);
}
.hero-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-xl);
  object-fit: cover;
}
.hero-price-badge {
  position: absolute;
  bottom: -16px;
  right: 20px;
  background: var(--color-gold);
  color: var(--color-navy);
  border-radius: var(--radius-lg);
  padding: var(--space-3) var(--space-5);
  box-shadow: var(--shadow-gold);
  text-align: center;
}
.hero-price-badge .price-label { font-size: var(--fs-xs); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; display: block; }
.hero-price-badge .price-value { font-family: var(--font-serif); font-size: var(--fs-xl); font-weight: 700; display: block; }

/* Img placeholder fallback */
.img-placeholder-fallback {
  background: linear-gradient(135deg, var(--color-navy-mid) 0%, var(--color-navy-light) 100%);
  min-height: 400px;
  border-radius: var(--radius-xl);
  display: flex;
  align-items: center;
  justify-content: center;
}
.img-placeholder-fallback img { opacity: 0; }
.img-placeholder-fallback::after {
  content: 'Foto de Angélica Vecino';
  font-size: var(--fs-sm);
  color: rgba(255,255,255,.3);
}

/* ─── 12. SECCIONES LANDING (HOME) ───────────────────────── */

/* Elegibilidad */
.elegibilidad {
  background: var(--color-ivory);
  padding-block: var(--space-20);
}
.elegibilidad-header { max-width: 640px; margin-bottom: var(--space-12); }

.condiciones-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--space-5);
  margin-bottom: var(--space-10);
}
.condicion-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  transition: box-shadow var(--trans-base), border-color var(--trans-base);
}
.condicion-card:hover { box-shadow: var(--shadow-md); border-color: var(--color-gold); }
.condicion-num {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--color-gold);
  min-width: 32px;
}
.condicion-text h3 { font-size: var(--fs-sm); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-2); }
.condicion-text p { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; }

.elegibilidad-nota {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  background: rgba(11,29,56,.05);
  border-left: 3px solid var(--color-gold);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  padding: var(--space-4) var(--space-5);
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.6;
  margin-bottom: var(--space-8);
  max-width: 640px;
}
.nota-icon { flex-shrink: 0; margin-top: 1px; }
.elegibilidad-cta { display: flex; gap: var(--space-4); flex-wrap: wrap; }
.coyuntural-tag {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--color-navy);
  background: rgba(201,168,78,.2);
  border-radius: var(--radius-sm);
  padding: 2px 8px;
  vertical-align: middle;
  margin-left: var(--space-2);
}

/* Problema */
.problema {
  background: var(--color-navy);
  padding-block: var(--space-20);
  position: relative;
  overflow: hidden;
}
.problema::before {
  content: '';
  position: absolute;
  bottom: -20%; left: -10%;
  width: 50%; height: 140%;
  background: radial-gradient(ellipse, rgba(201,168,78,.05) 0%, transparent 70%);
  pointer-events: none;
}
.problema-inner { max-width: 900px; margin-inline: auto; text-align: center; position: relative; }
.problema-quote {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 3vw, 2.25rem);
  font-weight: 700;
  color: var(--color-white);
  line-height: 1.35;
  margin-bottom: var(--space-8);
}
.problema-quote em { font-style: italic; color: var(--color-gold-soft); }
.problema-lead {
  font-size: var(--fs-md);
  color: rgba(247,243,234,.7);
  line-height: 1.75;
  margin-bottom: var(--space-10);
  max-width: 680px;
  margin-inline: auto;
}
.problema-cta { display: flex; justify-content: center; gap: var(--space-4); flex-wrap: wrap; }

/* Asesoría */
.asesoria {
  background: var(--color-ivory);
  padding-block: var(--space-20);
}
.asesoria-layout {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}
@media (min-width: 768px) {
  .asesoria-layout { flex-direction: row; align-items: flex-start; gap: var(--space-16); }
  .asesoria-contenido { flex: 1; min-width: 0; }
  .asesoria-visual { flex: 0 0 400px; }
}
.asesoria-header { margin-bottom: var(--space-8); }
.asesoria-subtitulo {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-5);
  margin-top: 0;
}
.asesoria-items { display: flex; flex-direction: column; gap: var(--space-4); margin-bottom: var(--space-8); }
.asesoria-item {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
}
.asesoria-item-icon {
  width: 36px; height: 36px; min-width: 36px;
  background: rgba(201,168,78,.12);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-gold);
}
.asesoria-item-text h3 { font-size: var(--fs-sm); font-weight: 600; color: var(--color-navy); margin-bottom: 4px; }
.asesoria-item-text p { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; }

.asesoria-no-incluye { margin-top: var(--space-8); }
.no-incluye-box {
  background: var(--color-navy);
  border-radius: var(--radius-lg);
  padding: var(--space-5) var(--space-6);
  position: sticky;
  top: calc(72px + var(--space-5));
}
.no-incluye-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  color: var(--color-white);
  margin-bottom: var(--space-4);
}
.no-incluye-lista { display: flex; flex-direction: column; gap: var(--space-3); }
.no-incluye-lista li {
  display: flex;
  gap: var(--space-3);
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.75);
}
.no-incluye-nota {
  font-size: var(--fs-xs);
  color: rgba(247,243,234,.45);
  line-height: 1.6;
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid rgba(255,255,255,.08);
}

.asesoria-img {
  width: 100%;
  border-radius: var(--radius-xl);
  object-fit: cover;
  box-shadow: var(--shadow-lg);
}

/* Proceso (home) */
.proceso {
  background: var(--color-navy-deep);
  padding-block: var(--space-20);
  position: relative;
  overflow: hidden;
}
.proceso-header { max-width: 600px; margin-bottom: var(--space-12); }
.proceso .seccion-kicker { color: var(--color-gold); }
.proceso-pasos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-6);
  margin-bottom: var(--space-10);
}
.proceso-paso {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  transition: background var(--trans-base), border-color var(--trans-base);
}
.proceso-paso:hover { background: rgba(255,255,255,.07); border-color: rgba(201,168,78,.25); }
.paso-num {
  font-family: var(--font-serif);
  font-size: var(--fs-3xl);
  font-weight: 700;
  color: rgba(201,168,78,.25);
  line-height: 1;
  margin-bottom: var(--space-3);
}
.paso-titulo { font-size: var(--fs-base); font-weight: 700; color: var(--color-white); margin-bottom: var(--space-2); }
.paso-desc { font-size: var(--fs-sm); color: rgba(247,243,234,.6); line-height: 1.65; }
.proceso-cta { display: flex; gap: var(--space-4); flex-wrap: wrap; }

/* Perfil */
.perfil {
  background: var(--color-ivory);
  padding-block: var(--space-20);
}
.perfil-layout {
  display: flex;
  flex-direction: column;
  gap: var(--space-10);
}
@media (min-width: 768px) {
  .perfil-layout { flex-direction: row; align-items: flex-start; gap: var(--space-12); }
  .perfil-visual { flex: 0 0 340px; }
  .perfil-contenido { flex: 1; min-width: 0; }
}
.perfil-img-wrap {
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.perfil-img { width: 100%; border-radius: var(--radius-xl); object-fit: cover; }
.perfil-cred-badge {
  position: absolute;
  bottom: 16px; left: 16px; right: 16px;
  background: rgba(11,29,56,.85);
  backdrop-filter: blur(8px);
  border-radius: var(--radius-md);
  padding: var(--space-3) var(--space-4);
  font-size: var(--fs-xs);
  color: rgba(247,243,234,.8);
}
.perfil-cred-badge strong { color: var(--color-gold-soft); display: block; font-size: var(--fs-sm); }

.perfil-bio {
  font-size: var(--fs-md);
  color: var(--color-text);
  line-height: 1.75;
  margin-bottom: var(--space-6);
}
.perfil-highlights { display: flex; flex-direction: column; gap: var(--space-3); margin-bottom: var(--space-8); }
.perfil-highlight {
  display: flex;
  gap: var(--space-3);
  align-items: flex-start;
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.6;
}
.perfil-highlight svg { color: var(--color-gold); flex-shrink: 0; margin-top: 2px; }

/* Confianza */
.confianza {
  background: var(--color-white);
  padding-block: var(--space-20);
}
.confianza-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-12);
}
.confianza-item {
  padding: var(--space-6);
  border-radius: var(--radius-lg);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  text-align: center;
  transition: box-shadow var(--trans-base);
}
.confianza-item:hover { box-shadow: var(--shadow-md); }
.confianza-icon {
  width: 48px; height: 48px;
  background: rgba(201,168,78,.1);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto var(--space-4);
  color: var(--color-gold);
}
.confianza-titulo { font-size: var(--fs-base); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-2); }
.confianza-item p { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; }

/* Precio */
.precio { background: var(--color-ivory); padding-block: var(--space-20); }
.precio-layout {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}
@media (min-width: 768px) {
  .precio-layout { flex-direction: row; align-items: flex-start; gap: var(--space-16); }
  .precio-texto { flex: 1; min-width: 0; }
  .precio-img-wrap { flex: 0 0 360px; position: sticky; top: 100px; }
}
.precio-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  margin-block: var(--space-8);
  box-shadow: var(--shadow-sm);
}
.precio-card-header {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: var(--space-3);
  background: var(--color-navy);
  padding: var(--space-5) var(--space-8);
}
.precio-etiqueta { font-size: var(--fs-sm); font-weight: 600; color: rgba(247,243,234,.85); letter-spacing: .04em; }
.precio-valor {
  font-family: var(--font-serif);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--color-gold-soft);
  white-space: nowrap;
}
.precio-incluye-lista { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6) var(--space-8); }
.precio-incluye-lista li {
  display: flex; align-items: center; gap: var(--space-3);
  font-size: var(--fs-sm); color: var(--color-text);
}
.precio-por-persona {
  font-size: var(--fs-xs);
  color: var(--color-text-light);
  border-top: 1px solid var(--color-border);
  padding: var(--space-4) var(--space-8);
  font-style: italic;
  line-height: 1.6;
}
.precio-nota-legal {
  font-size: var(--fs-xs);
  color: var(--color-text-xlight);
  line-height: 1.6;
  margin-bottom: var(--space-8);
}
.precio-cta { width: 100%; }
@media (min-width: 480px) { .precio-cta { width: auto; } }
.precio-img { width: 100%; border-radius: var(--radius-xl); object-fit: cover; box-shadow: var(--shadow-lg); }

/* Servicios grid (home) */
.home-servicios {
  background: var(--color-white);
  padding-block: var(--space-20);
}
.servicios-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-10);
}
.servicio-card {
  display: flex;
  flex-direction: column;
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
  text-decoration: none;
  color: inherit;
}
.servicio-card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--color-gold);
  transform: translateY(-2px);
}
.servicio-card-icon {
  width: 44px; height: 44px;
  background: rgba(201,168,78,.1);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-gold);
  margin-bottom: var(--space-4);
  flex-shrink: 0;
}
.servicio-card h3,
.servicio-card-titulo { font-size: var(--fs-base); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-2); line-height: 1.3; }
.servicio-card p,
.servicio-card-desc  { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; flex: 1; margin-bottom: var(--space-4); }
.servicio-card-link,
.servicio-card-cta { font-size: var(--fs-xs); font-weight: 600; color: var(--color-gold-muted); letter-spacing: .04em; }
.servicio-card:hover .servicio-card-link,
.servicio-card:hover .servicio-card-cta { color: var(--color-gold); }
.servicio-card-precio {
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--color-gold-muted);
  padding: var(--space-1) var(--space-3);
  border: 1px solid rgba(201,168,78,.25);
  border-radius: 99px;
  display: inline-block;
  margin-top: auto;
}
.servicio-card-tag {
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--color-navy);
  background: rgba(201,168,78,.15);
  border-radius: 99px;
  padding: var(--space-1) var(--space-3);
  display: inline-block;
  margin-top: auto;
}
.servicio-card--ver-todos {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: var(--color-ivory);
}
.servicio-card--ver-todos .servicio-card-titulo { color: var(--color-ivory); }
.servicio-card--ver-todos .servicio-card-desc { color: rgba(247,243,234,.65); }
.servicio-card--ver-todos .servicio-card-icon { background: rgba(255,255,255,.08); color: var(--color-gold); }
.servicio-card--ver-todos .servicio-card-cta { color: var(--color-gold); }
.servicio-card--ver-todos:hover { border-color: var(--color-gold); box-shadow: 0 8px 32px rgba(201,168,78,.2); }

/* Testimonios */
.testimonios { background: var(--color-navy); padding-block: var(--space-20); }
.testimonios-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-10);
}
.testimonio-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.testimonio-stars { display: flex; gap: 3px; color: var(--color-gold-soft); }
.testimonio-texto {
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.8);
  line-height: 1.7;
  flex: 1;
  font-style: italic;
}
.testimonio-autor { display: flex; align-items: center; gap: var(--space-3); }
.testimonio-avatar {
  width: 40px; height: 40px;
  background: linear-gradient(135deg, var(--color-navy-light), var(--color-gold-muted));
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-serif); font-size: var(--fs-sm); font-weight: 700;
  color: var(--color-white);
  flex-shrink: 0;
}
.testimonio-nombre { font-size: var(--fs-sm); font-weight: 600; color: var(--color-white); }
.testimonio-ciudad { font-size: var(--fs-xs); color: rgba(247,243,234,.45); }

/* FAQ (home y página FAQ) */
.faq { background: var(--color-ivory); padding-block: var(--space-20); }
.faq-container { max-width: 800px; }
.faq-lista { display: flex; flex-direction: column; gap: var(--space-2); margin-top: var(--space-10); }
.faq-item {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color var(--trans-fast);
}
.faq-item:hover { border-color: var(--color-gold); }
.faq-pregunta {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-5) var(--space-6);
  background: none;
  border: none;
  font-size: var(--fs-base);
  font-weight: 600;
  color: var(--color-navy);
  cursor: pointer;
  text-align: left;
  min-height: 52px;
  transition: color var(--trans-fast);
}
.faq-pregunta:hover { color: var(--color-gold-muted); }
.faq-icon {
  width: 24px; height: 24px; min-width: 24px;
  background: rgba(201,168,78,.1);
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-gold);
  transition: transform var(--trans-base), background var(--trans-base);
}
.faq-pregunta[aria-expanded="true"] .faq-icon { transform: rotate(45deg); background: var(--color-gold); color: var(--color-navy); }
.faq-respuesta { overflow: hidden; }
.faq-respuesta[hidden] { display: none; }
.faq-respuesta-inner {
  padding: 0 var(--space-6) var(--space-5);
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.7;
}
.faq-respuesta-inner p + p { margin-top: var(--space-3); }
.faq-respuesta-inner a { color: var(--color-gold-muted); text-decoration: underline; }
.faq-respuesta-inner a:hover { color: var(--color-gold); }

/* Agendar (home form section) */
.agendar { background: var(--color-navy-deep); padding-block: var(--space-20); }
.agendar-container { max-width: 1100px; }
.agendar-layout {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  align-items: flex-start;
}
@media (min-width: 768px) {
  .agendar-layout { flex-direction: row; gap: var(--space-12); align-items: flex-start; }
  .agendar-info { flex: 1; min-width: 0; }
  .agendar-form-wrap { flex: 0 0 46%; max-width: 460px; }
}
@media (min-width: 1024px) {
  .agendar-layout { gap: var(--space-16); }
  .agendar-form-wrap { flex: 0 0 460px; max-width: none; }
}
.agendar-desc { font-size: var(--fs-md); color: rgba(247,243,234,.75); line-height: 1.75; margin-bottom: var(--space-8); }
.agendar-chips { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); margin-bottom: var(--space-8); }
.agendar-chip {
  display: flex; align-items: center; gap: var(--space-2);
  padding: var(--space-3);
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.11);
  border-radius: var(--radius-md);
  font-size: var(--fs-xs); font-weight: 500;
  color: rgba(247,243,234,.85);
  line-height: 1.3;
  transition: background var(--trans-fast), border-color var(--trans-fast);
}
.agendar-chip:hover { background: rgba(255,255,255,.11); border-color: rgba(201,168,78,.3); }
.agendar-chip svg { flex-shrink: 0; color: var(--color-gold-soft); }

.agendar-precio-pill {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: var(--space-3) var(--space-5);
  padding: var(--space-4) var(--space-5);
  background: linear-gradient(135deg, rgba(201,168,78,.13), rgba(228,195,106,.05));
  border: 1px solid rgba(201,168,78,.28);
  border-radius: var(--radius-lg);
  margin-bottom: var(--space-6);
}
.precio-pill-label { font-size: var(--fs-xs); color: rgba(247,243,234,.55); text-transform: uppercase; letter-spacing: .08em; width: 100%; }
.precio-pill-amount { font-family: var(--font-serif); font-size: var(--fs-xl); font-weight: 700; color: var(--color-gold-soft); margin-top: calc(var(--space-1)*-1); }
.precio-pill-note { font-size: var(--fs-xs); color: rgba(247,243,234,.45); line-height: 1.4; }

.agendar-about {
  display: flex; align-items: center; gap: var(--space-4);
  padding: var(--space-4);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: var(--radius-md);
}
.agendar-about-av {
  width: 44px; height: 44px; flex-shrink: 0;
  border-radius: var(--radius-full);
  background: linear-gradient(135deg, var(--color-navy-light), var(--color-gold-muted));
  border: 2px solid rgba(201,168,78,.35);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-serif); font-size: var(--fs-sm); font-weight: 700;
  color: var(--color-white); letter-spacing: .04em;
}
.agendar-about-tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.agendar-about-tx strong { font-size: var(--fs-sm); font-weight: 600; color: var(--color-ivory); white-space: nowrap; }
.agendar-about-tx span { font-size: var(--fs-xs); color: rgba(247,243,234,.5); line-height: 1.3; }

/* Form card */
.agendar-form-wrap { width: 100%; }
.form-card {
  background: var(--color-white);
  border-radius: var(--radius-xl);
  box-shadow: 0 24px 64px rgba(11,29,56,.4), 0 6px 20px rgba(11,29,56,.2);
  overflow: hidden;
  width: 100%;
}
.form-card-header {
  display: flex; align-items: center; gap: var(--space-4);
  padding: var(--space-5) var(--space-6);
  background: linear-gradient(135deg, var(--color-navy), var(--color-navy-light));
  border-bottom: 1px solid rgba(201,168,78,.2);
}
.form-card-icon {
  width: 44px; height: 44px; flex-shrink: 0;
  background: rgba(201,168,78,.15);
  border: 1px solid rgba(201,168,78,.25);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-gold-soft);
}
.form-card-head-tx { flex: 1; min-width: 0; }
.form-card-title { font-family: var(--font-serif); font-size: var(--fs-lg); font-weight: 700; color: var(--color-white); line-height: 1.2; }
.form-card-subtitle { font-size: var(--fs-xs); color: rgba(247,243,234,.58); margin-top: 3px; }
.form-card-badge {
  flex-shrink: 0;
  background: var(--color-gold); color: var(--color-navy);
  font-family: var(--font-sans); font-size: var(--fs-sm); font-weight: 700;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full); white-space: nowrap;
}
.form-steps {
  display: flex; align-items: flex-start;
  padding: var(--space-4) var(--space-6);
  background: var(--color-ivory);
  border-bottom: 1px solid var(--color-border);
  gap: 0;
}
.form-step { display: flex; flex-direction: column; align-items: center; gap: var(--space-1); flex: 0 0 auto; }
.form-step-num {
  width: 26px; height: 26px;
  background: var(--color-navy); color: var(--color-white);
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  font-size: var(--fs-xs); font-weight: 700;
}
.form-step-label { font-size: 10px; font-weight: 600; color: var(--color-navy); text-align: center; white-space: nowrap; text-transform: uppercase; letter-spacing: .06em; }
.form-step-conn { flex: 1; height: 1.5px; background: linear-gradient(90deg, var(--color-gold-muted), rgba(201,168,78,.25)); align-self: flex-start; margin-top: 12px; }
.form-card .agendar-form {
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  padding: var(--space-5) var(--space-6);
  display: flex; flex-direction: column; gap: var(--space-4);
}
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.btn-form-submit { display: flex; align-items: center; justify-content: center; gap: var(--space-3); }
.form-card-footer { padding: var(--space-4) var(--space-6) var(--space-5); background: var(--color-ivory); border-top: 1px solid var(--color-border); }
.form-card-divider {
  display: flex; align-items: center; gap: var(--space-3);
  margin-bottom: var(--space-3);
  font-size: var(--fs-xs); color: var(--color-text-xlight);
  text-transform: uppercase; letter-spacing: .08em;
}
.form-card-divider::before,
.form-card-divider::after { content: ''; flex: 1; height: 1px; background: var(--color-border); }

/* CTA Final */
.cta-final {
  background: linear-gradient(135deg, var(--color-navy), var(--color-navy-mid) 60%, var(--color-navy-light));
  padding-block: var(--space-24);
  position: relative;
  overflow: hidden;
}
.cta-final::before {
  content: '';
  position: absolute; top: -50%; left: -20%;
  width: 60%; height: 200%;
  background: radial-gradient(ellipse, rgba(201,168,78,.07), transparent 70%);
  pointer-events: none;
}
.cta-final-inner { max-width: 720px; margin-inline: auto; text-align: center; position: relative; z-index: 1; }
.cta-final-headline {
  font-family: var(--font-serif);
  font-size: var(--fs-3xl);
  font-weight: 700;
  color: var(--color-white);
  line-height: 1.25;
  margin-bottom: var(--space-5);
}
.cta-final-headline em { font-style: italic; color: var(--color-gold-soft); }
@media (min-width: 768px) { .cta-final-headline { font-size: var(--fs-4xl); } }
.cta-final-sub { font-size: var(--fs-md); color: rgba(247,243,234,.75); line-height: 1.75; margin-bottom: var(--space-10); max-width: 600px; margin-inline: auto; }
.cta-final-acciones { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-4); margin-bottom: var(--space-8); }
.cta-final-nota { font-size: var(--fs-xs); color: rgba(247,243,234,.4); line-height: 1.6; }

/* ─── 13. HÉROES PÁGINAS INTERIORES ──────────────────────── */
.page-hero {
  background: linear-gradient(160deg, var(--color-navy), var(--color-navy-mid));
  padding-block: var(--space-16) var(--space-20);
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute; top: -40%; right: -15%;
  width: 50%; height: 180%;
  background: radial-gradient(ellipse, rgba(201,168,78,.06), transparent 65%);
  pointer-events: none;
}
.page-hero-inner { position: relative; z-index: 1; max-width: 760px; }
.page-hero-titulo {
  font-family: var(--font-serif);
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--color-white);
  line-height: 1.2;
  margin-bottom: var(--space-4);
}
.page-hero-sub { font-size: var(--fs-md); color: rgba(247,243,234,.72); line-height: 1.7; margin-bottom: var(--space-6); max-width: 640px; }
.page-hero-ctas { display: flex; flex-wrap: wrap; gap: var(--space-4); }

/* Hero de página con imagen lateral (Tier 2 — nuevos espacios) */
.page-hero-layout { display: flex; flex-direction: column; gap: var(--space-10); }
@media (min-width: 1024px) {
  .page-hero-layout { flex-direction: row; align-items: center; gap: var(--space-12); }
  .page-hero-layout .page-hero-inner { flex: 1; min-width: 0; max-width: none; }
  .page-hero-media { flex: 0 0 360px; position: relative; z-index: 1; }
}
.page-hero-media .img-placeholder-container { aspect-ratio: 4 / 5; }
.page-hero-media .img-placeholder-container img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  border-radius: var(--radius-xl); box-shadow: var(--shadow-lg);
}
.page-hero-media .img-placeholder-container.img-placeholder-fallback { height: 100%; min-height: 320px; }
.page-hero-media .img-placeholder-container.img-placeholder-fallback::after { content: ''; }

/* ─── 14. BLOQUE DIAGNÓSTICO $50K ────────────────────────── */
.diagnostico-bloque {
  background: var(--color-navy);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-10);
  margin-block: var(--space-10);
  display: flex;
  align-items: center;
  gap: var(--space-8);
  flex-wrap: wrap;
}
.diagnostico-bloque-icon {
  width: 60px; height: 60px; min-width: 60px;
  background: rgba(201,168,78,.15);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-gold-soft);
}
.diagnostico-bloque-content { flex: 1; min-width: 200px; }
.diagnostico-bloque-titulo { font-family: var(--font-serif); font-size: var(--fs-xl); font-weight: 700; color: var(--color-white); margin-bottom: var(--space-2); }
.diagnostico-bloque-desc { font-size: var(--fs-sm); color: rgba(247,243,234,.65); line-height: 1.65; }
.diagnostico-bloque-precio {
  text-align: center; flex-shrink: 0;
}
.diagnostico-precio-value { font-family: var(--font-serif); font-size: var(--fs-2xl); font-weight: 700; color: var(--color-gold-soft); display: block; }
.diagnostico-precio-label { font-size: var(--fs-xs); color: rgba(247,243,234,.45); text-transform: uppercase; letter-spacing: .06em; }

/* ─── 15. PÁGINA NOSOTROS ────────────────────────────────── */
.nosotros-manifiesto {
  background: var(--color-navy-deep);
  padding-block: var(--space-20);
  text-align: center;
}
.manifiesto-text {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--color-white);
  line-height: 1.45;
  max-width: 820px;
  margin-inline: auto;
}
.manifiesto-text em { font-style: italic; color: var(--color-gold-soft); }

/* Imagen banner del manifiesto (Tier 2 — nuevo espacio) */
.manifiesto-media { margin-top: var(--space-10); max-width: 920px; margin-inline: auto; }
.manifiesto-media .img-placeholder-container { aspect-ratio: 16 / 9; }
.manifiesto-media .img-placeholder-container img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  border-radius: var(--radius-xl); box-shadow: var(--shadow-lg);
}
.manifiesto-media .img-placeholder-container.img-placeholder-fallback { height: 100%; min-height: 220px; }
.manifiesto-media .img-placeholder-container.img-placeholder-fallback::after { content: ''; }

.nosotros-perfil { background: var(--color-ivory); padding-block: var(--space-20); }
.perfil-page-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-12);
}
@media (min-width: 768px) { .perfil-page-layout { grid-template-columns: 360px 1fr; } }
.perfil-page-foto { border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-lg); }
.perfil-page-foto img { width: 100%; object-fit: cover; }
.perfil-page-content {}
.perfil-page-nombre { font-family: var(--font-serif); font-size: var(--fs-2xl); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-2); }
.perfil-page-cargo { font-size: var(--fs-base); color: var(--color-gold-muted); font-weight: 500; margin-bottom: var(--space-6); }
.perfil-page-bio { font-size: var(--fs-md); color: var(--color-text); line-height: 1.75; margin-bottom: var(--space-6); }
.perfil-page-credenciales { display: flex; flex-direction: column; gap: var(--space-3); }
.credencial-item { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--fs-sm); color: var(--color-text); line-height: 1.5; }
.credencial-item svg { color: var(--color-gold); flex-shrink: 0; margin-top: 2px; }

.nosotros-valores { background: var(--color-white); padding-block: var(--space-20); }
.valores-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-10);
}
.valor-card {
  padding: var(--space-6);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: var(--color-ivory);
  transition: box-shadow var(--trans-base);
}
.valor-card:hover { box-shadow: var(--shadow-md); }
.valor-card-icon { color: var(--color-gold); margin-bottom: var(--space-4); }
.valor-card h3 { font-size: var(--fs-base); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-2); }
.valor-card p { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; }

.etica-nota {
  background: var(--color-navy);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-10);
  margin-top: var(--space-10);
  display: flex;
  gap: var(--space-6);
  align-items: flex-start;
}
.etica-nota-icon { color: var(--color-gold-soft); flex-shrink: 0; margin-top: 4px; }
.etica-nota-text h3 { font-family: var(--font-serif); font-size: var(--fs-lg); color: var(--color-white); margin-bottom: var(--space-3); }
.etica-nota-text p { font-size: var(--fs-sm); color: rgba(247,243,234,.7); line-height: 1.7; }

/* ─── 16. PÁGINA SERVICIOS HUB ───────────────────────────── */
.servicios-hub { background: var(--color-white); padding-block: var(--space-20); }
.servicios-familia { margin-bottom: var(--space-16); }
.servicios-familia:last-child { margin-bottom: 0; }
.familia-titulo {
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--color-gold-muted);
  border-left: 3px solid var(--color-gold);
  padding-left: var(--space-4);
  margin-bottom: var(--space-6);
}
.familia-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--space-4); }

.servicio-card-lg {
  display: flex;
  flex-direction: column;
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6) var(--space-7);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
  text-decoration: none;
  color: inherit;
}
.servicio-card-lg:hover { box-shadow: var(--shadow-md); border-color: var(--color-gold); transform: translateY(-2px); }
.servicio-card-lg h3 { font-size: var(--fs-base); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-2); line-height: 1.3; }
.servicio-card-lg p { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; flex: 1; margin-bottom: var(--space-4); }
.servicio-card-lg .card-arrow { font-size: var(--fs-xs); font-weight: 600; color: var(--color-gold-muted); display: flex; align-items: center; gap: var(--space-2); }
.servicio-card-lg:hover .card-arrow { color: var(--color-gold); }

/* ─── 17. PÁGINAS DE SERVICIO INDIVIDUAL ─────────────────── */
.servicio-para-quien { background: var(--color-white); padding-block: var(--space-16); }
.para-quien-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-4); margin-top: var(--space-8); }
.para-quien-item {
  display: flex; gap: var(--space-3); align-items: flex-start;
  padding: var(--space-5);
  background: var(--color-ivory);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  font-size: var(--fs-sm); color: var(--color-text); line-height: 1.5;
}
.para-quien-item svg { color: var(--color-gold); flex-shrink: 0; margin-top: 2px; }

.servicio-content { background: var(--color-ivory); padding-block: var(--space-16); }
.servicio-content-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-10); }
@media (min-width: 900px) { .servicio-content-grid { grid-template-columns: 1fr 360px; } }
.content-main {}
.content-side { display: flex; flex-direction: column; gap: var(--space-6); }

.content-block { margin-bottom: var(--space-10); }
.content-block:last-child { margin-bottom: 0; }
.content-block-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-5);
  padding-bottom: var(--space-3);
  border-bottom: 2px solid var(--color-ivory-deep);
}
.content-list { display: flex; flex-direction: column; gap: var(--space-3); }
.content-list li { display: flex; gap: var(--space-3); align-items: flex-start; font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; }
.content-list li svg { color: var(--color-gold); flex-shrink: 0; margin-top: 3px; }

.side-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5) var(--space-6);
}
.side-card-title { font-size: var(--fs-sm); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-3); }
.side-card ul { display: flex; flex-direction: column; gap: var(--space-2); }
.side-card ul li { display: flex; gap: var(--space-2); font-size: var(--fs-sm); color: var(--color-text); line-height: 1.5; }
.side-card ul li::before { content: '—'; color: var(--color-gold); flex-shrink: 0; }

.side-card-diagnostico {
  background: var(--color-navy);
  border: none;
}
.side-card-diagnostico .side-card-title { color: var(--color-white); }
.diagnostico-precio-big { font-family: var(--font-serif); font-size: var(--fs-3xl); font-weight: 700; color: var(--color-gold-soft); display: block; margin-block: var(--space-3) var(--space-2); }
.diagnostico-precio-desc { font-size: var(--fs-xs); color: rgba(247,243,234,.5); line-height: 1.5; margin-bottom: var(--space-5); }
.side-card-diagnostico .btn { width: 100%; }

/* ─── 18. PÁGINA PROCESO ─────────────────────────────────── */
.proceso-page { background: var(--color-white); padding-block: var(--space-20); }
.proceso-timeline { position: relative; padding-left: var(--space-10); }
.proceso-timeline::before {
  content: '';
  position: absolute;
  left: 19px; top: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--color-gold) 0%, var(--color-border) 100%);
}
.proceso-timeline-paso {
  position: relative;
  padding-bottom: var(--space-12);
}
.proceso-timeline-paso:last-child { padding-bottom: 0; }
.proceso-paso-bullet {
  position: absolute;
  left: calc(-1 * var(--space-10) + 7px);
  top: 6px;
  width: 24px; height: 24px;
  background: var(--color-navy);
  border: 3px solid var(--color-gold);
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 700;
  color: var(--color-gold);
  z-index: 1;
}
.proceso-paso-label { font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--color-gold-muted); margin-bottom: var(--space-2); }
.proceso-paso-titulo { font-family: var(--font-serif); font-size: var(--fs-xl); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-3); }
.proceso-paso-desc { font-size: var(--fs-base); color: var(--color-text); line-height: 1.75; max-width: 640px; }
.proceso-paso-nota {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font-size: var(--fs-xs); color: var(--color-text-light);
  background: var(--color-ivory); border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-4);
  margin-top: var(--space-3);
  border: 1px solid var(--color-border);
}

/* ─── 19. PÁGINA CONTACTO ────────────────────────────────── */
.contacto-page { background: var(--color-white); padding-block: var(--space-20); }
.contacto-layout { display: grid; grid-template-columns: 1fr; gap: var(--space-12); }
@media (min-width: 768px) { .contacto-layout { grid-template-columns: 1fr 1fr; } }
.contacto-info {}
.contacto-info-titulo { font-family: var(--font-serif); font-size: var(--fs-2xl); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-4); }
.contacto-info-desc { font-size: var(--fs-md); color: var(--color-text); line-height: 1.7; margin-bottom: var(--space-8); }
.contacto-canales { display: flex; flex-direction: column; gap: var(--space-4); }
.contacto-canal {
  display: flex; align-items: center; gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition: border-color var(--trans-fast);
  text-decoration: none;
  color: inherit;
}
.contacto-canal:hover { border-color: var(--color-gold); }
.canal-icon { width: 40px; height: 40px; border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.canal-icon--wa { background: rgba(37,211,102,.1); color: #25D366; }
.canal-icon--email { background: rgba(201,168,78,.1); color: var(--color-gold); }
.canal-label { font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--color-text-xlight); display: block; }
.canal-valor { font-size: var(--fs-sm); font-weight: 600; color: var(--color-navy); }

.contacto-form-wrap { background: var(--color-ivory); border-radius: var(--radius-xl); padding: var(--space-8); }
.contacto-form { display: flex; flex-direction: column; gap: var(--space-5); }

/* ─── 20. PÁGINA GRACIAS ─────────────────────────────────── */
.gracias-page {
  background: var(--color-ivory);
  min-height: 60vh;
  display: flex;
  align-items: center;
  padding-block: var(--space-24);
}
.gracias-inner { max-width: 600px; margin-inline: auto; text-align: center; }
.gracias-icon {
  width: 72px; height: 72px;
  background: rgba(45,122,95,.12);
  border: 2px solid rgba(45,122,95,.3);
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto var(--space-6);
  color: var(--color-success);
}
.gracias-titulo { font-family: var(--font-serif); font-size: var(--fs-3xl); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-4); }
.gracias-desc { font-size: var(--fs-md); color: var(--color-text); line-height: 1.7; margin-bottom: var(--space-8); }
.gracias-pasos { display: flex; flex-direction: column; gap: var(--space-4); margin-bottom: var(--space-8); text-align: left; }
.gracias-paso { display: flex; gap: var(--space-4); align-items: flex-start; font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; }
.gracias-paso-num { width: 24px; height: 24px; background: var(--color-navy); color: var(--color-white); border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; font-size: var(--fs-xs); font-weight: 700; flex-shrink: 0; margin-top: 2px; }
.gracias-ctas { display: flex; justify-content: center; gap: var(--space-4); flex-wrap: wrap; }

/* ─── 21. PÁGINA RECURSOS ────────────────────────────────── */
.recursos-page { background: var(--color-white); padding-block: var(--space-20); }
.recursos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--space-6); margin-top: var(--space-10); }
.recurso-card {
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: box-shadow var(--trans-base), border-color var(--trans-base);
  text-decoration: none; color: inherit; display: flex; flex-direction: column;
}
.recurso-card:hover { box-shadow: var(--shadow-md); border-color: var(--color-gold); }
.recurso-card-tag {
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  padding: var(--space-2) var(--space-4);
  background: var(--color-navy); color: var(--color-gold-soft);
}
.recurso-card-body { padding: var(--space-5) var(--space-5) var(--space-5); flex: 1; display: flex; flex-direction: column; }
.recurso-card h3 { font-size: var(--fs-base); font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-2); line-height: 1.3; }
.recurso-card p { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; flex: 1; margin-bottom: var(--space-4); }
.recurso-card-link { font-size: var(--fs-xs); font-weight: 600; color: var(--color-gold-muted); display: flex; align-items: center; gap: var(--space-2); }
.recurso-card:hover .recurso-card-link { color: var(--color-gold); }

/* ─── 22. ANIMACIONES ────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--trans-slow), transform var(--trans-slow);
}
.reveal.visible { opacity: 1; transform: translateY(0); }

.reveal-delay-1 { transition-delay: 100ms; }
.reveal-delay-2 { transition-delay: 200ms; }
.reveal-delay-3 { transition-delay: 300ms; }
.reveal-delay-4 { transition-delay: 400ms; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ─── 23. RESPONSIVE ─────────────────────────────────────── */
@media (max-width: 1023px) {
  .site-nav   { display: none; }
  .header-actions .header-wa-btn { display: none; }
  .nav-mobile-toggle { display: flex; margin-left: auto; }

  /* Mobile nav panel */
  .site-nav.nav-open {
    display: flex;
    flex-direction: column;
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    background: var(--color-navy-deep);
    padding: 84px var(--space-5) var(--space-8);
    overflow-y: auto;
  }
  .nav-close-btn { display: flex; }
  .site-nav.nav-open .nav-list { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
  .site-nav.nav-open .nav-link { font-size: var(--fs-lg); padding: var(--space-4) var(--space-3); border-bottom: 1px solid rgba(255,255,255,.06); border-radius: 0; color: rgba(255,255,255,.85); }
  .site-nav.nav-open .nav-link:hover { background: rgba(255,255,255,.05); color: var(--color-white); }
  .site-nav.nav-open .nav-dropdown-panel { display: none; position: static; transform: none; min-width: 0; box-shadow: none; border: none; border-radius: 0; padding: 0 0 var(--space-2) var(--space-5); background: transparent; opacity: 1; visibility: visible; pointer-events: auto; }
  .site-nav.nav-open .nav-item-dropdown.is-open .nav-dropdown-panel { display: block; }
  .site-nav.nav-open .dropdown-cols { grid-template-columns: 1fr; gap: 0; }
  .site-nav.nav-open .dropdown-col-title { display: none; }
  .site-nav.nav-open .dropdown-col { gap: 0; }
  .site-nav.nav-open .dropdown-link { padding: var(--space-3) var(--space-3); font-size: var(--fs-base); border-bottom: 1px solid rgba(255,255,255,.04); display: block; }
  .site-nav.nav-open .dropdown-footer { text-align: left; padding-left: var(--space-3); border: none; padding-top: var(--space-2); }
  .site-nav.nav-open .nav-chevron { margin-left: auto; }
  body.nav-open { overflow: hidden; }
}

@media (max-width: 767px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-tagline { max-width: none; }
  .footer-bottom { flex-direction: column; align-items: center; text-align: center; }
  .footer-legal-nav { justify-content: center; }

  .form-input, .form-select { font-size: 16px; }
  .form-row { grid-template-columns: 1fr; }
  .form-row-2 { grid-template-columns: 1fr; }

  .agendar-chips { grid-template-columns: 1fr 1fr; gap: var(--space-2); }
  .agendar-chip { font-size: 11px; padding: var(--space-2) var(--space-3); }
  .agendar { padding-block: var(--space-12); }

  .form-card-header { padding: var(--space-4); gap: var(--space-3); }
  .form-card-title { font-size: var(--fs-base); }
  .form-card-badge { display: none; }
  .form-steps { padding: var(--space-3) var(--space-4); }
  .form-card .agendar-form { padding: var(--space-4); }
  .form-card-footer { padding: var(--space-4); }

  .diagnostico-bloque { flex-direction: column; text-align: center; padding: var(--space-6); }
  .proceso-timeline { padding-left: var(--space-8); }
  .hero-ctas { flex-direction: column; align-items: stretch; }
  .hero-ctas .btn { width: 100%; justify-content: center; }

  .no-incluye-box { position: static; }
  .elegibilidad, .problema, .asesoria, .confianza, .precio, .faq, .perfil, .proceso, .nosotros-manifiesto, .nosotros-perfil, .nosotros-valores, .servicios-hub, .proceso-page, .recursos-page, .contacto-page { padding-block: var(--space-12); }
  .cta-final { padding-block: var(--space-16); }
  .page-hero { padding-block: var(--space-12) var(--space-16); }

  /* ── Encabezados de sección: más aire entre kicker / título / texto ── */
  .seccion-kicker { margin-bottom: var(--space-2); }
  .seccion-titulo, .seccion-titulo-claro { margin-bottom: var(--space-4); }
  .seccion-sub { margin-bottom: var(--space-7); }

  /* ── Elegibilidad: respiración entre bloques ── */
  .elegibilidad-header { margin-bottom: var(--space-8); }
  .condiciones-grid { margin-bottom: var(--space-7); }
  .elegibilidad-nota { padding: var(--space-3) var(--space-4); margin-bottom: var(--space-6); }

  /* ── Precio: tarjeta más compacta ── */
  .precio-card-header { padding: var(--space-4) var(--space-5); }
  .precio-incluye-lista { padding: var(--space-5); gap: var(--space-3); }
  .precio-por-persona { padding: var(--space-3) var(--space-5); }
  .precio-card { margin-block: var(--space-6); }

  /* ── FAQ: filas más compactas, sin perder el área de toque ── */
  .faq-pregunta { padding: var(--space-4) var(--space-5); }
  .faq-respuesta { padding: 0 var(--space-5) var(--space-6); }

  /* ── Perfil (home): datos en 2 columnas, más compacto ── */
  #perfil .perfil-datos-wrap { grid-template-columns: repeat(2, 1fr) !important; gap: var(--space-4) var(--space-3) !important; }

  /* ── Asesoría: lista de inclusiones más ajustada ── */
  .asesoria-lista { gap: var(--space-4); margin-top: var(--space-4); }
  .asesoria-header { margin-bottom: var(--space-6); }

  /* ── Proceso: pasos más ajustados ── */
  .pasos-lista { gap: var(--space-2); margin-bottom: var(--space-7); }
  .paso { padding: var(--space-4) var(--space-5); gap: var(--space-4); }
}

@media (max-width: 479px) {
  .servicios-grid { grid-template-columns: 1fr; }
  .para-quien-grid { grid-template-columns: 1fr; }
  .hero-nota { align-items: flex-start; font-size: 10px; }

  .problema-quote { font-size: var(--fs-xl); }
  .btn-lg, .btn-xl { white-space: normal; line-height: 1.35; }
  .elegibilidad-cta .btn, .proceso-cta .btn { width: 100%; white-space: normal; }
}

@media (max-width: 359px) {
  .site-logo img { height: 32px; }
  .btn-sm { padding: var(--space-2) var(--space-3); }
}

/* iOS safe area */
.sticky-cta { padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px)); }

/* Max-width overflow guard */
html, body { max-width: 100%; }

/* ─── 28. CORRECCIONES Y ESTILOS COMPLEMENTARIOS ────────────── */
/* Clases reales del HTML que no tenían CSS equivalente */

/* Reveal alias (JS añade 'revealed', CSS tenía 'visible') */
.reveal.revealed { opacity: 1; transform: translateY(0); }

/* Top-banner: flex directo sin .top-banner-inner */
.top-banner {
  padding-inline: var(--container-pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

/* ── Top-banner mobile: una sola fila, compacto y premium ── */
@media (max-width: 767px) {
  .top-banner {
    padding-inline: var(--space-3);
    padding-block: 7px;
    gap: var(--space-2);
  }
  .top-banner-text {
    font-size: 11.5px;
    line-height: 1.3;
    gap: 5px;
    white-space: nowrap;
    overflow: hidden;
  }
  .top-banner-text strong {
    flex-shrink: 0;
    color: var(--color-gold-soft);
    font-weight: 700;
  }
  .top-banner-detail { display: none; }
  .top-banner-link {
    flex-shrink: 0;
    font-weight: 700;
    text-decoration: none;
  }
  .top-banner-close { width: 22px; height: 22px; }
}
@media (max-width: 359px) {
  .top-banner-text { font-size: 10.5px; }
}

/* ── Nav container + logo aliases ── */
.nav-container {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  height: 72px;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}
.nav-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
}
.nav-logo img, .logo-img { height: 60px; width: auto; display: block; }
.logo-text-fallback { display: none; flex-direction: column; line-height: 1.1; }
.logo-marca { font-family: var(--font-serif); font-size: var(--fs-base); font-weight: 700; color: var(--color-gold-soft); }
.logo-slogan { font-size: var(--fs-xs); color: rgba(247,243,234,.6); }
.nav-arrow { width: 14px; height: 14px; transition: transform var(--trans-fast); flex-shrink: 0; }
.nav-item-dropdown.is-open .nav-arrow { transform: rotate(180deg); }
.nav-link--active { color: var(--color-gold-soft) !important; }
.nav-cta { margin-left: auto; flex-shrink: 0; }

/* ── Hero: overlay / background-image approach ── */
.hero { padding-block: 0; }
.hero-media { position: absolute; inset: 0; z-index: 0; }
.hero-media img,
.hero .hero-img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center top;
  border-radius: 0;
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(11,29,56,.88) 0%, rgba(11,29,56,.72) 50%, rgba(11,29,56,.55) 100%);
}
.hero-content {
  position: relative; z-index: 1;
  display: flex; flex: 1; flex-direction: column; justify-content: center;
  padding-block: var(--space-20) var(--space-24);
  max-width: none; width: 100%;
}
.hero-inner {
  display: grid; grid-template-columns: 1fr;
  gap: var(--space-8); align-items: center;
}
@media (min-width: 900px) {
  .hero-inner { grid-template-columns: 1fr auto; gap: var(--space-16); }
}
.hero-text { max-width: 640px; }
.hero-subheadline {
  font-size: var(--fs-md); color: rgba(247,243,234,.75);
  line-height: 1.75; margin-bottom: var(--space-5); max-width: 580px;
}
.hero-urgencia {
  display: flex; align-items: center; gap: var(--space-2);
  font-size: var(--fs-xs); color: rgba(247,243,234,.5);
  margin-bottom: var(--space-8); line-height: 1.4;
}
.urgencia-dot {
  width: 8px; height: 8px; min-width: 8px;
  background: var(--color-gold); border-radius: var(--radius-full);
  flex-shrink: 0; animation: pulse-dot 2s ease-in-out infinite;
}
@keyframes pulse-dot { 0%,100% { opacity:1; } 50% { opacity:.45; } }
.hero-badge-wrap { display: none; }
@media (min-width: 900px) {
  .hero-badge-wrap { display: flex; align-items: center; justify-content: center; }
}
.hero-badge {
  background: rgba(201,168,78,.12); border: 1px solid rgba(201,168,78,.25);
  border-radius: var(--radius-xl); padding: var(--space-8) var(--space-10);
  text-align: center; backdrop-filter: blur(8px);
}
.badge-num {
  font-family: var(--font-serif); font-size: 3.5rem; font-weight: 700;
  color: var(--color-gold-soft); display: block; line-height: 1;
}
.badge-label {
  font-size: var(--fs-sm); color: rgba(247,243,234,.65);
  line-height: 1.45; margin-top: var(--space-3); display: block;
}

/* Img placeholder container (onerror en imagen) */
.img-placeholder-container { border-radius: var(--radius-xl); overflow: hidden; }
.img-placeholder-container.img-placeholder-fallback {
  background: linear-gradient(135deg, var(--color-navy-mid), var(--color-navy-light));
  min-height: 280px; display: flex; align-items: center; justify-content: center;
}
.img-placeholder-container.img-placeholder-fallback img { display: none; }

/* ── Elegibilidad: subclases de condicion-card ── */
.condicion-card { flex-direction: column; gap: var(--space-3); align-items: flex-start; }
.condicion-icon { color: var(--color-gold); flex-shrink: 0; }
.condicion-titulo { font-size: var(--fs-sm); font-weight: 700; color: var(--color-navy); }
.condicion-num {
  font-family: var(--font-serif); font-size: var(--fs-2xl); font-weight: 700;
  color: var(--color-gold); display: block; line-height: 1; margin-block: var(--space-1);
}
.condicion-desc { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.5; }

/* Mobile: 2 tarjetas por fila, compactas */
@media (max-width: 767px) {
  .condiciones-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
  }
  .condicion-card {
    padding: var(--space-4);
    gap: var(--space-2);
  }
  .condicion-icon svg { width: 28px; height: 28px; }
  .condicion-titulo { font-size: 0.8rem; line-height: 1.3; }
  .condicion-num { font-size: var(--fs-xl); margin-block: 2px; }
  .condicion-desc { font-size: 0.78rem; line-height: 1.4; }
}

/* ── Problema: layout 2 columnas + texto sobre fondo oscuro ── */
.problema .seccion-kicker { color: var(--color-gold-soft); }
.problema .seccion-titulo { color: var(--color-white); }
.problema-layout { display: flex; flex-direction: column; gap: var(--space-10); }
@media (min-width: 768px) {
  .problema-layout { flex-direction: row; align-items: flex-start; gap: var(--space-12); }
  .problema-img-wrap { flex: 0 0 280px; }
  .problema-texto { flex: 1; min-width: 0; }
}
.problema-img-wrap { border-radius: var(--radius-xl); overflow: hidden; }
.problema-img-wrap .img-placeholder-container { aspect-ratio: 4 / 3; }
.problema-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}
@media (min-width: 768px) {
  .problema-img-wrap .img-placeholder-container { aspect-ratio: 3 / 4; }
}
.problema-lista {
  list-style: none; display: flex; flex-direction: column; gap: var(--space-4);
  margin-block: var(--space-6);
}
.problema-lista li {
  display: flex; gap: var(--space-3); align-items: flex-start;
  font-size: var(--fs-sm); color: rgba(247,243,234,.78); line-height: 1.65;
}
.lista-icon { flex-shrink: 0; display: flex; align-items: center; margin-top: 1px; }
blockquote.problema-quote {
  font-style: italic; font-family: var(--font-serif);
  font-size: var(--fs-lg); font-weight: 700; color: var(--color-white);
  border-left: 3px solid var(--color-gold); padding-left: var(--space-5);
  line-height: 1.5; margin: var(--space-4) 0 0;
}

/* ── Asesoría: grid + lista con check icons ── */
.asesoria-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-8); }
@media (min-width: 768px) {
  .asesoria-grid { grid-template-columns: 1fr 340px; gap: var(--space-12); }
}
.asesoria-lista {
  list-style: none; display: flex; flex-direction: column; gap: var(--space-5);
  margin-top: var(--space-5);
}
.asesoria-lista li {
  display: flex; gap: var(--space-4); align-items: flex-start;
  font-size: var(--fs-sm); color: var(--color-text); line-height: 1.65;
}
.asesoria-lista li div strong { font-size: var(--fs-sm); font-weight: 700; color: var(--color-navy); display: block; margin-bottom: 2px; }
.asesoria-lista li div p { margin: 0; font-size: var(--fs-sm); color: var(--color-text); line-height: 1.6; }
.check-icon { flex-shrink: 0; display: flex; align-items: center; color: var(--color-gold); margin-top: 1px; }

/* ── Proceso: pasos-lista (home) ── */
.pasos-lista {
  list-style: none; display: flex; flex-direction: column; gap: var(--space-3);
  margin-bottom: var(--space-10);
}
.paso {
  display: flex; gap: var(--space-5); align-items: flex-start;
  padding: var(--space-5) var(--space-6);
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-lg);
  transition: background var(--trans-base), border-color var(--trans-base);
}
.paso:hover { background: rgba(255,255,255,.07); border-color: rgba(201,168,78,.25); }
.paso-num {
  font-family: var(--font-serif); font-size: var(--fs-2xl); font-weight: 700;
  color: rgba(201,168,78,.3); line-height: 1; min-width: 44px; flex-shrink: 0;
}
.paso-contenido { flex: 1; min-width: 0; }

/* ── Perfil: foto frame + credencial + datos ── */
@media (min-width: 768px) {
  .perfil-img-wrap { flex: 0 0 340px !important; }
  .perfil-texto    { flex: 1; min-width: 0; }
}
.perfil-img-frame { border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-lg); }
.perfil-img-frame img { width: 100%; object-fit: cover; }
.perfil-credencial {
  margin-top: var(--space-4); background: var(--color-navy);
  border-radius: var(--radius-lg); padding: var(--space-4) var(--space-5);
}
.credencial-label {
  font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; color: var(--color-gold-muted); margin-bottom: var(--space-2);
}
.credencial-texto { font-size: var(--fs-sm); color: rgba(247,243,234,.75); line-height: 1.5; margin-bottom: 2px; }
.credencial-nota { font-size: var(--fs-xs); color: rgba(247,243,234,.4); margin-top: var(--space-2); }
.perfil-cargo { font-size: var(--fs-base); color: var(--color-gold-muted); font-weight: 500; margin-bottom: var(--space-5); }
.perfil-datos-wrap {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4);
  margin-top: var(--space-6); padding-top: var(--space-6); border-top: 1px solid var(--color-border);
}
.perfil-dato { display: flex; flex-direction: column; gap: 3px; }
.dato-titulo { font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--color-gold-muted); }
.dato-valor { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.5; }
.placeholder-tp { font-style: italic; }

/* ── Confianza: card alias ── */
.confianza-card {
  padding: var(--space-6); border-radius: var(--radius-lg);
  background: var(--color-ivory); border: 1px solid var(--color-border);
  transition: box-shadow var(--trans-base);
}
.confianza-card:hover { box-shadow: var(--shadow-md); }

/* ── FAQ arrow toggle ── */
.faq-arrow {
  width: 20px; height: 20px; min-width: 20px; flex-shrink: 0;
  color: var(--color-text-xlight); transition: transform var(--trans-base), color var(--trans-base);
}
.faq-pregunta[aria-expanded="true"] .faq-arrow { transform: rotate(180deg); color: var(--color-gold); }

/* ── Sticky CTA: variantes de botón ── */
.sticky-cta-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--space-2); padding: var(--space-3) var(--space-5);
  border-radius: var(--radius-full); font-size: var(--fs-sm); font-weight: 600;
  cursor: pointer; text-align: center; border: none;
  transition: all var(--trans-fast); text-decoration: none;
  line-height: 1.3; white-space: nowrap;
}
.sticky-cta-primary {
  flex: 1; background: var(--color-gold); color: var(--color-navy);
}
.sticky-cta-primary:hover { background: var(--color-gold-soft); }
.sticky-cta-wa {
  background: #25D366; color: var(--color-white); flex-shrink: 0;
  width: 44px; height: 44px; padding: 0; border-radius: var(--radius-full);
}
.sticky-cta-wa:hover { background: #1aaa50; }

/* ── Botón flotante WhatsApp ── */
.wa-float {
  position: fixed; bottom: var(--space-6); right: var(--space-5);
  z-index: var(--z-float); width: 56px; height: 56px;
  background: #25D366; color: var(--color-white); border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,.4), var(--shadow-md);
  transition: background var(--trans-fast), transform var(--trans-fast), box-shadow var(--trans-fast);
  text-decoration: none;
}
.wa-float:hover {
  background: #1aaa50; transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(37,211,102,.45), var(--shadow-lg);
}
@media (max-width: 767px) {
  .wa-float { display: none; }
}
.wa-float-tooltip {
  position: absolute; right: calc(100% + var(--space-3));
  background: var(--color-navy-deep); color: var(--color-white);
  font-size: var(--fs-xs); font-weight: 500; white-space: nowrap;
  padding: var(--space-2) var(--space-3); border-radius: var(--radius-md);
  box-shadow: var(--shadow-md); opacity: 0; pointer-events: none;
  transition: opacity var(--trans-base);
}
.wa-float:hover .wa-float-tooltip { opacity: 1; }

/* Responsive extras */
@media (max-width: 767px) {
  .hero-text { max-width: none; }
  .perfil-datos-wrap { grid-template-columns: 1fr; }
  .problema-layout { flex-direction: column; }
}
@media (max-width: 479px) {
  .badge-num { font-size: var(--fs-4xl); }
  .perfil-datos-wrap { grid-template-columns: 1fr; }
}

/* ============================================================
   29. SECCIÓN MAESTRA — Tipografía 50+, páginas internas,
       aliases de clases, espaciado premium
   ============================================================ */

/* ── 29.A TIPOGRAFÍA OPTIMIZADA PARA AUDIENCIA 50+ ── */
html { font-size: 17px; }

body {
  line-height: 1.8;
  letter-spacing: 0.01em;
}

p { line-height: 1.85; }

h1, h2, h3, h4 { letter-spacing: -0.015em; }

.seccion-sub {
  font-size: 1.1rem;
  line-height: 1.85;
  color: var(--color-text);
}

.seccion-sub.centrado { max-width: 680px; margin-inline: auto; }

/* Aumentar tamaños mínimos — nunca menos de 0.9rem en contenido */
.seccion-kicker { font-size: 0.78rem; letter-spacing: 0.1em; }

/* Claro override para texto dentro de fondos oscuros */
.seccion-titulo-claro { color: var(--color-white); }

/* ── 29.B SEPARADORES DE SECCIÓN — ESPACIADO PREMIUM ── */
/* Ensure all main sections breathe on desktop */
.nosotros-manifiesto,
.perfil-page,
.valores,
.etica,
.proceso-esperar,
.proceso-faq,
.faq-page,
.contacto-page,
.recursos-nota-editorial,
.recursos-section,
.servicios-intro,
.servicios-familia,
.servicio-para-quien,
.servicio-content,
.seccion-faq {
  padding-block: var(--space-20);
}

.gracias-page { padding-block: var(--space-24); }

/* ── 29.C NOSOTROS — MANIFIESTO ── */
.nosotros-manifiesto {
  background: var(--color-navy-deep);
  position: relative;
}
.nosotros-manifiesto::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(201,168,78,.05), transparent 60%);
  pointer-events: none;
}
.manifiesto-texto {
  max-width: 760px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}
.manifiesto-texto p {
  font-size: var(--fs-md);
  color: rgba(247,243,234,.78);
  line-height: 1.9;
}
.manifiesto-texto p:first-child {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  color: rgba(247,243,234,.9);
  border-left: 3px solid var(--color-gold);
  padding-left: var(--space-5);
}

/* ── 29.D NOSOTROS — PERFIL PAGE ── */
.perfil-page { background: var(--color-ivory); }

.perfil-page-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-12);
  align-items: flex-start;
}
@media (min-width: 768px) {
  .perfil-page-layout { grid-template-columns: 360px 1fr; gap: var(--space-16); }
}

.perfil-page-img-wrap {
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  flex: 0 0 360px;
}
.perfil-page-img-wrap img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.perfil-credencial {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: rgba(11,29,56,.88);
  backdrop-filter: blur(10px);
  padding: var(--space-4) var(--space-5);
  border-top: 1px solid rgba(201,168,78,.2);
}
.credencial-label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gold-muted);
  margin-bottom: var(--space-1);
}
.credencial-texto {
  font-size: 0.82rem;
  color: rgba(247,243,234,.82);
  line-height: 1.5;
}
.credencial-nota {
  font-size: 0.72rem;
  color: rgba(247,243,234,.5);
  margin-top: var(--space-1);
}

.perfil-page-texto { min-width: 0; }

.perfil-cargo {
  font-size: var(--fs-base);
  color: var(--color-gold-muted);
  font-weight: 500;
  line-height: 1.5;
  margin-bottom: var(--space-6);
  border-left: 3px solid var(--color-gold);
  padding-left: var(--space-4);
}

.perfil-bio {
  font-size: var(--fs-md);
  color: var(--color-text);
  line-height: 1.85;
  margin-bottom: var(--space-5);
}

.perfil-datos-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-border);
}

.perfil-dato { display: flex; flex-direction: column; gap: 3px; }

.dato-titulo {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--color-gold-muted);
}

.dato-valor {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.55;
}

/* ── 29.E NOSOTROS — VALORES ── */
.valores {
  background: var(--color-white);
  border-top: 1px solid var(--color-border);
}

.valores-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-12);
}

.valor-card {
  padding: var(--space-7) var(--space-6);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: var(--color-ivory);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.valor-card:hover {
  box-shadow: var(--shadow-md);
  border-color: rgba(201,168,78,.4);
  transform: translateY(-2px);
}

.valor-icon {
  width: 48px; height: 48px;
  background: rgba(201,168,78,.08);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-gold);
  margin-bottom: var(--space-2);
  flex-shrink: 0;
}

.valor-titulo {
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.3;
}

.valor-desc {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.75;
  flex: 1;
}

/* ── 29.F NOSOTROS — ÉTICA ── */
.etica {
  background: var(--color-navy);
  padding-block: var(--space-20);
}

.etica-nota {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(201,168,78,.18);
  border-radius: var(--radius-xl);
  padding: var(--space-10) var(--space-10);
  max-width: 860px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.etica-nota .seccion-kicker { color: var(--color-gold-muted); }
.etica-nota .seccion-titulo { color: var(--color-white); font-size: var(--fs-xl); }

.etica-nota p {
  font-size: var(--fs-base);
  color: rgba(247,243,234,.72);
  line-height: 1.85;
}

.etica-nota p:first-of-type {
  color: rgba(247,243,234,.82);
}

/* ── 29.G PROCESO — ESPERAR SECTION ── */
.proceso-esperar {
  background: var(--color-ivory);
  border-top: 1px solid var(--color-border);
}

.esperar-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-12);
}

.esperar-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-6);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  transition: box-shadow var(--trans-base), border-color var(--trans-base);
}
.esperar-item:hover {
  box-shadow: var(--shadow-sm);
  border-color: rgba(201,168,78,.35);
}

.esperar-icon {
  width: 48px; height: 48px;
  background: rgba(201,168,78,.08);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-gold);
  flex-shrink: 0;
}

.esperar-item h3 {
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.3;
}

.esperar-item p {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.75;
}

/* ── 29.H PROCESO — PROCESO-PASO ALIAS ── */
.proceso-paso-contenido { flex: 1; min-width: 0; }

/* ── 29.I PROCESO — FAQ SECTION ── */
.proceso-faq {
  background: var(--color-white);
}

/* ── 29.J FAQ PAGE ── */
.faq-page {
  background: var(--color-white);
}

.faq-container { max-width: 820px; margin-inline: auto; }

.faq-categoria {
  margin-bottom: var(--space-16);
}
.faq-categoria:last-child { margin-bottom: 0; }

.faq-categoria-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--color-navy);
  padding-bottom: var(--space-4);
  margin-bottom: var(--space-6);
  border-bottom: 2px solid var(--color-border);
  position: relative;
}
.faq-categoria-titulo::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 40px; height: 2px;
  background: var(--color-gold);
}

/* FAQ list / item (shared: .faq-lista already has some styles) */
.faq-lista {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.faq-item {
  border-bottom: 1px solid var(--color-border);
}
.faq-item:last-child { border-bottom: none; }

.faq-pregunta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  width: 100%;
  padding: var(--space-5) var(--space-6);
  background: var(--color-white);
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: var(--fs-base);
  font-weight: 600;
  color: var(--color-navy);
  line-height: 1.45;
  transition: background var(--trans-fast);
}
.faq-pregunta:hover { background: var(--color-ivory); }
.faq-pregunta[aria-expanded="true"] { background: var(--color-ivory); color: var(--color-navy); }

.faq-pregunta span { flex: 1; }

.faq-respuesta {
  padding: 0 var(--space-6) var(--space-8);
  background: var(--color-ivory);
}
.faq-respuesta p {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.85;
  margin-bottom: var(--space-3);
}
.faq-respuesta p:last-child { margin-bottom: 0; }
.faq-respuesta ul {
  padding-left: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-top: var(--space-3);
}
.faq-respuesta ul li {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.75;
}

/* ── 29.K AGENDAR — COMPACT HERO & AVISO ── */
.page-hero--compact {
  padding-block: var(--space-12) var(--space-16);
}

.agendar-aviso {
  background: rgba(201,168,78,.07);
  border: 1px solid rgba(201,168,78,.25);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-8);
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.7;
  display: flex;
  gap: var(--space-3);
  align-items: flex-start;
}
.agendar-aviso svg { color: var(--color-gold); flex-shrink: 0; margin-top: 2px; }

/* ── 29.L CONTACTO — CANALES Y LAYOUT ── */
.contacto-page { background: var(--color-white); }

.contacto-layout {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  margin-bottom: var(--space-16);
}
@media (min-width: 768px) {
  .contacto-layout { flex-direction: row; gap: var(--space-8); }
  .contacto-canal { flex: 1; }
}

.contacto-canal {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  padding: var(--space-8) var(--space-7);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  transition: box-shadow var(--trans-base), border-color var(--trans-base);
  text-decoration: none;
  color: inherit;
}
.contacto-canal:hover { box-shadow: var(--shadow-sm); border-color: rgba(201,168,78,.35); }

.canal-icon {
  width: 60px; height: 60px;
  border-radius: var(--radius-lg);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.canal-icon--wa { background: rgba(37,211,102,.1); color: #25D366; }
.canal-icon--email { background: rgba(201,168,78,.1); color: var(--color-gold); }

.canal-contenido { display: flex; flex-direction: column; gap: var(--space-3); }

.canal-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.2;
}

.canal-desc {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.8;
}

/* Contacto info adicional */
.contacto-info {
  background: var(--color-navy);
  border-radius: var(--radius-xl);
  padding: var(--space-10);
  margin-top: var(--space-4);
}

.contacto-info-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
}
@media (min-width: 768px) {
  .contacto-info-grid { grid-template-columns: repeat(3, 1fr); }
}

.contacto-info-item { display: flex; flex-direction: column; gap: var(--space-3); }

.contacto-info-item h3 {
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-gold-soft);
  line-height: 1.3;
}

.contacto-info-item p {
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.7);
  line-height: 1.75;
}

.contacto-info-item .btn {
  margin-top: var(--space-2);
  align-self: flex-start;
}

/* Contacto nota disclaimer */
.contacto-nota {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-6);
  background: rgba(201,168,78,.06);
  border: 1px solid rgba(201,168,78,.2);
  border-radius: var(--radius-md);
  margin-top: var(--space-8);
}
.contacto-nota svg { color: var(--color-gold); flex-shrink: 0; margin-top: 2px; }
.contacto-nota span {
  font-size: var(--fs-sm);
  color: var(--color-text-light);
  line-height: 1.75;
}

/* ── 29.M GRACIAS PAGE ── */
.gracias-page {
  background: var(--color-ivory);
  min-height: 70vh;
  display: flex;
  align-items: center;
}

.gracias-inner {
  max-width: 640px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-6);
}

.gracias-icon {
  width: 88px; height: 88px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(201,168,78,.08);
  border-radius: var(--radius-full);
  border: 2px solid rgba(201,168,78,.25);
  color: var(--color-gold);
  flex-shrink: 0;
}

.gracias-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-3xl);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.2;
}

.gracias-sub {
  font-size: var(--fs-md);
  color: var(--color-text);
  line-height: 1.85;
  max-width: 560px;
}

.gracias-pasos {
  width: 100%;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.gracias-pasos-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-navy);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--color-border);
}

.gracias-paso {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
}

.gracias-paso-num {
  width: 32px; height: 32px;
  min-width: 32px;
  background: var(--color-navy);
  color: var(--color-gold-soft);
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  font-size: var(--fs-sm);
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 2px;
}

.gracias-paso-tx {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.gracias-paso-tx strong {
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.35;
}

.gracias-paso-tx p {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.75;
  margin: 0;
}

.gracias-nota {
  width: 100%;
  padding: var(--space-4) var(--space-5);
  background: rgba(201,168,78,.06);
  border: 1px solid rgba(201,168,78,.18);
  border-radius: var(--radius-md);
  font-size: var(--fs-sm);
  color: var(--color-text-light);
  line-height: 1.75;
  text-align: left;
}
.gracias-nota a { color: var(--color-gold-muted); text-decoration: underline; }
.gracias-nota a:hover { color: var(--color-gold); }

/* ── 29.N RECURSOS PAGE ── */
.recursos-nota-editorial {
  background: var(--color-navy);
  padding-block: var(--space-10);
}

.nota-editorial {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  max-width: 800px;
  margin-inline: auto;
  padding: var(--space-6) var(--space-8);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(201,168,78,.2);
  border-radius: var(--radius-lg);
}
.nota-editorial svg { color: var(--color-gold); flex-shrink: 0; margin-top: 3px; }
.nota-editorial span {
  font-size: var(--fs-base);
  color: rgba(247,243,234,.72);
  line-height: 1.8;
}
.nota-editorial strong { color: rgba(247,243,234,.9); }
.nota-editorial a { color: var(--color-gold-soft); text-decoration: underline; }

.recursos-section { background: var(--color-white); }

.recursos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-12);
}

.recurso-card {
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}
.recurso-card:hover {
  box-shadow: var(--shadow-md);
  border-color: rgba(201,168,78,.4);
  transform: translateY(-2px);
}

.recurso-card-header {
  padding: var(--space-3) var(--space-5);
  background: var(--color-navy);
  display: flex;
  align-items: center;
}

.recurso-card-tag {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gold-soft);
}

.recurso-card-titulo {
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.4;
  padding: var(--space-5) var(--space-5) var(--space-3);
}

.recurso-card-desc {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.8;
  padding: 0 var(--space-5) var(--space-5);
  flex: 1;
}

.recurso-card-nota {
  font-size: var(--fs-xs);
  color: var(--color-text-xlight);
  font-style: italic;
  padding: var(--space-3) var(--space-5) var(--space-5);
  border-top: 1px solid var(--color-border);
  line-height: 1.6;
}

.recursos-proximamente {
  margin-top: var(--space-16);
  padding: var(--space-8) var(--space-10);
  background: var(--color-ivory);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
}
.recursos-proximamente p {
  font-size: var(--fs-base);
  color: var(--color-text-light);
  line-height: 1.75;
  max-width: 560px;
}

/* ── 29.O SERVICIOS HUB — INTRO Y FAMILIAS ── */
.servicios-intro {
  background: var(--color-navy);
  padding-block: var(--space-12);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.servicios-intro-texto {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.servicios-intro-texto .seccion-sub {
  color: rgba(247,243,234,.72);
  text-align: center;
}

.servicios-familia {
  background: var(--color-white);
  padding-block: var(--space-20);
  border-bottom: 1px solid var(--color-border);
}
.servicios-familia:last-of-type { border-bottom: none; }

.servicios-familia--alt {
  background: var(--color-ivory);
}

.familia-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-10);
}

/* Servicio card-lg subcomponents */
.servicio-card-lg {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: var(--space-7);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}
.servicios-familia--alt .servicio-card-lg { background: var(--color-white); }
.servicio-card-lg:hover {
  box-shadow: var(--shadow-md);
  border-color: rgba(201,168,78,.4);
  transform: translateY(-2px);
}

.servicio-card-lg-header {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
}

.servicio-card-lg-icon {
  width: 52px; height: 52px;
  min-width: 52px;
  background: rgba(11,29,56,.06);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-navy);
  flex-shrink: 0;
}

.servicio-card-lg-titulo {
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.35;
  margin-bottom: var(--space-1);
}

.servicio-card-lg-precio {
  display: inline-block;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--color-gold-muted);
  padding: 2px var(--space-3);
  border: 1px solid rgba(201,168,78,.3);
  border-radius: 99px;
}

.servicio-card-lg-tag {
  display: inline-block;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--color-navy);
  background: rgba(201,168,78,.12);
  padding: 2px var(--space-3);
  border-radius: 99px;
}

.servicio-card-lg-desc {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.8;
  flex: 1;
}

.servicio-card-lg-nota {
  font-size: var(--fs-xs);
  color: var(--color-text-xlight);
  line-height: 1.6;
  padding: var(--space-3) var(--space-4);
  background: var(--color-ivory);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
}

.servicio-card-lg-alerta {
  color: #8A5C1A;
  background: rgba(201,168,78,.08);
  border-color: rgba(201,168,78,.25);
}

/* ── 29.P PÁGINAS DE SERVICIO — PARA QUIÉN ── */
.servicio-para-quien {
  background: var(--color-white);
}

.para-quien-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-10);
}

.para-quien-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-6) var(--space-6);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  transition: box-shadow var(--trans-base), border-color var(--trans-base);
}
.para-quien-card:hover { box-shadow: var(--shadow-sm); border-color: rgba(201,168,78,.35); }

.para-quien-icon {
  width: 44px; height: 44px;
  background: rgba(201,168,78,.1);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-gold);
  flex-shrink: 0;
}

.para-quien-card-titulo {
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.35;
}

.para-quien-card p {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.8;
}

/* ── 29.Q PÁGINAS DE SERVICIO — LAYOUT PRINCIPAL + ASIDE ── */
.servicio-content { background: var(--color-ivory); }

.servicio-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-10);
  align-items: flex-start;
}
@media (min-width: 960px) {
  .servicio-layout { grid-template-columns: 1fr 340px; gap: var(--space-12); }
}

.servicio-main { min-width: 0; }

/* Content blocks */
.content-block {
  margin-bottom: var(--space-10);
  padding-bottom: var(--space-10);
  border-bottom: 1px solid var(--color-border);
}
.content-block:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }

.content-block .seccion-titulo {
  margin-bottom: var(--space-5);
}

.content-block p {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.85;
  margin-bottom: var(--space-4);
}
.content-block p:last-of-type { margin-bottom: 0; }

.content-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: 0;
  list-style: none;
  margin-top: var(--space-4);
}

.content-list li {
  display: flex;
  gap: var(--space-3);
  align-items: flex-start;
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.8;
}
.content-list li::before {
  content: '—';
  color: var(--color-gold);
  flex-shrink: 0;
  font-weight: 700;
  margin-top: 1px;
}

.content-block--aviso {
  background: rgba(201,168,78,.05);
  border: 1px solid rgba(201,168,78,.2);
  border-radius: var(--radius-lg);
  padding: var(--space-7) var(--space-7);
  border-bottom: none;
  margin-bottom: var(--space-10);
}
.content-block--aviso .seccion-titulo { color: var(--color-navy); }

.content-list--aviso li::before { content: '✕'; color: #B83232; }

.content-aviso-nota {
  font-size: var(--fs-sm);
  color: var(--color-text-light);
  font-style: italic;
  line-height: 1.75;
  margin-top: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid rgba(201,168,78,.15);
}

.content-block--cta {
  background: var(--color-navy);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-8);
  border-bottom: none;
}
.content-block--cta .seccion-titulo { color: var(--color-white); }
.content-block--cta p { color: rgba(247,243,234,.72); }

/* ── 29.R SIDE CARD DIAGNÓSTICO (estructura nueva) ── */
.side-card-diagnostico {
  background: var(--color-navy);
  border: 1px solid rgba(201,168,78,.2);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

@media (min-width: 960px) {
  .side-card-diagnostico {
    position: sticky;
    top: 100px;
  }
}

.side-card-diagnostico .diagnostico-bloque {
  background: transparent;
  padding: var(--space-8);
  border-radius: 0;
  margin: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.diagnostico-icon {
  width: 52px; height: 52px;
  background: rgba(201,168,78,.15);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-gold-soft);
  flex-shrink: 0;
}

.diagnostico-content { display: flex; flex-direction: column; gap: var(--space-3); }

.diagnostico-kicker {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gold-muted);
}

.diagnostico-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-white);
  line-height: 1.3;
}

.diagnostico-desc {
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.65);
  line-height: 1.8;
}

.diagnostico-precio {
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-gold-soft);
  font-family: var(--font-serif);
  padding: var(--space-3) 0;
  border-top: 1px solid rgba(201,168,78,.2);
  border-bottom: 1px solid rgba(201,168,78,.2);
  margin-block: var(--space-2);
}

.btn-full { width: 100%; justify-content: center; }

/* ── 29.S SECCIÓN FAQ EN PÁGINAS DE SERVICIO (details/summary) ── */
.seccion-faq {
  background: var(--color-white);
  border-top: 1px solid var(--color-border);
}

.container--narrow { max-width: 760px; }

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-top: var(--space-8);
}

details.faq-item { border-bottom: 1px solid var(--color-border); }
details.faq-item:last-child { border-bottom: none; }

summary.faq-pregunta {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-5) var(--space-6);
  background: var(--color-white);
  cursor: pointer;
  font-size: var(--fs-base);
  font-weight: 600;
  color: var(--color-navy);
  line-height: 1.45;
  transition: background var(--trans-fast);
  user-select: none;
}
summary.faq-pregunta::-webkit-details-marker { display: none; }
summary.faq-pregunta::marker { display: none; }

summary.faq-pregunta::after {
  content: '';
  width: 20px; height: 20px;
  min-width: 20px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7.5l5 5 5-5' stroke='%239CA3AD' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform var(--trans-base);
  flex-shrink: 0;
}

details.faq-item[open] summary.faq-pregunta { background: var(--color-ivory); }
details.faq-item[open] summary.faq-pregunta::after { transform: rotate(180deg); }
summary.faq-pregunta:hover { background: var(--color-ivory); }

details.faq-item .faq-respuesta {
  display: block;
  padding: var(--space-2) var(--space-6) var(--space-6);
  background: var(--color-ivory);
}
details.faq-item .faq-respuesta p {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.85;
  margin-bottom: var(--space-3);
}
details.faq-item .faq-respuesta p:last-child { margin-bottom: 0; }

.faq-mas {
  margin-top: var(--space-6);
  text-align: center;
  font-size: var(--fs-sm);
  color: var(--color-text-light);
}
.faq-mas a {
  color: var(--color-gold-muted);
  font-weight: 600;
  text-decoration: none;
  transition: color var(--trans-fast);
}
.faq-mas a:hover { color: var(--color-gold); text-decoration: underline; }

/* ── 29.T HERO BADGES (precio y aviso en page-hero) ── */
.hero-precio-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-5);
  background: rgba(201,168,78,.15);
  border: 1px solid rgba(201,168,78,.3);
  border-radius: var(--radius-full);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--color-gold-soft);
  margin-top: var(--space-5);
  letter-spacing: 0.02em;
}

.hero-aviso-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-5);
  background: rgba(255,180,0,.1);
  border: 1px solid rgba(255,180,0,.25);
  border-radius: var(--radius-full);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: #E0B84A;
  margin-top: var(--space-5);
  letter-spacing: 0.02em;
}

/* ── 29.U PROCESO — TIMELINE CONTENIDO ALIAS ── */
.proceso-timeline {
  list-style: none;
  margin-top: var(--space-12);
}

/* ── 29.V RESPONSIVE — PÁGINAS INTERNAS ── */
@media (max-width: 767px) {
  .nosotros-manifiesto,
  .perfil-page,
  .valores,
  .etica,
  .proceso-esperar,
  .proceso-faq,
  .faq-page,
  .contacto-page,
  .recursos-nota-editorial,
  .recursos-section,
  .servicios-intro,
  .servicios-familia,
  .servicio-para-quien,
  .servicio-content,
  .seccion-faq { padding-block: var(--space-12); }

  .gracias-page { padding-block: var(--space-16); }

  .perfil-page-img-wrap { flex: none; }
  .perfil-datos-wrap { grid-template-columns: 1fr; }

  .etica-nota { padding: var(--space-7) var(--space-6); }

  .esperar-grid { grid-template-columns: 1fr; gap: var(--space-4); }

  .contacto-info { padding: var(--space-7) var(--space-6); }
  .contacto-info-grid { grid-template-columns: 1fr; gap: var(--space-6); }

  .gracias-pasos { padding: var(--space-6); }

  .nota-editorial { padding: var(--space-5) var(--space-5); }

  .familia-grid { grid-template-columns: 1fr; }
  .servicio-card-lg { padding: var(--space-6); }

  .para-quien-grid { grid-template-columns: 1fr; }

  .content-block--aviso { padding: var(--space-6); }
  .content-block--cta { padding: var(--space-6); }

  .side-card-diagnostico .diagnostico-bloque { padding: var(--space-6); }

  .faq-pregunta { padding: var(--space-4) var(--space-5); font-size: var(--fs-sm); }
  .faq-respuesta { padding: 0 var(--space-5) var(--space-4); }
  summary.faq-pregunta { padding: var(--space-4) var(--space-5); font-size: var(--fs-sm); }
  details.faq-item .faq-respuesta { padding: var(--space-2) var(--space-5) var(--space-5); }

  .recursos-grid { grid-template-columns: 1fr; }

  .servicios-intro-texto .seccion-sub { text-align: left; }
}

@media (max-width: 479px) {
  .esperar-grid { grid-template-columns: 1fr; }
  .para-quien-grid { grid-template-columns: 1fr; }
  .recursos-grid { grid-template-columns: 1fr; }
  .familia-grid { grid-template-columns: 1fr; }
  .gracias-titulo { font-size: var(--fs-2xl); }
  html { font-size: 16px; }
}

/* ============================================================
   30. ARMONÍA VISUAL — Fondos, contraste, jerarquía, premium
   Sistema definitivo de colores y espaciado por sección
   ============================================================ */

/* ── 30.A SISTEMA DE FONDOS — CONTRASTE ENTRE SECCIONES ── */

/* NOSOTROS: hero(navy) → manifiesto(ivory) → perfil(white) → valores(ivory) → etica(navy) → cta(navy) */
.nosotros-manifiesto {
  background: var(--color-ivory) !important;
  border-top: none;
  border-bottom: 1px solid var(--color-border);
}
.nosotros-manifiesto::before { display: none; }

/* Adaptar textos del manifiesto al fondo claro */
.nosotros-manifiesto .seccion-kicker        { color: var(--color-gold-muted); }
.nosotros-manifiesto .seccion-titulo-claro  { color: var(--color-navy) !important; }
.nosotros-manifiesto .manifiesto-texto p    { color: var(--color-text); }
.nosotros-manifiesto .manifiesto-texto p:first-child {
  color: var(--color-navy);
  font-size: var(--fs-xl);
  border-left: 4px solid var(--color-gold);
  padding-left: var(--space-6);
  text-align: left;
}

.perfil-page       { background: var(--color-white) !important; }
.valores           { background: var(--color-ivory) !important; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.etica             { background: var(--color-navy)  !important; }

/* PROCESO: hero(navy) → timeline(white) → esperar(ivory) → faq(white) → cta(navy) */
.proceso-page      { background: var(--color-white)  !important; }
.proceso-esperar   { background: var(--color-ivory)  !important; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.proceso-faq       { background: var(--color-white)  !important; }

/* FAQ: hero(navy) → faq-page(white) → cta(navy) */
.faq-page          { background: var(--color-white)  !important; }

/* CONTACTO: hero(navy) → contacto(white) → cta(navy) */
.contacto-page     { background: var(--color-white)  !important; }

/* RECURSOS: hero(navy) → nota(ivory) → section(white) → cta(navy) */
.recursos-nota-editorial {
  background: var(--color-ivory) !important;
  border-bottom: 1px solid var(--color-border);
  padding-block: var(--space-10) !important;
}
.recursos-nota-editorial .nota-editorial {
  background: var(--color-white);
  border: 1px solid var(--color-border);
}
.recursos-nota-editorial .nota-editorial span { color: var(--color-text); }
.recursos-nota-editorial .nota-editorial strong { color: var(--color-navy); }
.recursos-nota-editorial .nota-editorial a { color: var(--color-gold-muted); }
.recursos-nota-editorial .nota-editorial svg { color: var(--color-gold); }
.recursos-section      { background: var(--color-white) !important; }

/* SERVICIOS HUB: hero(navy) → intro(ivory) → familia(white/ivory alternating) → cta(navy) */
.servicios-intro {
  background: var(--color-ivory) !important;
  border-bottom: 1px solid var(--color-border);
  padding-block: var(--space-12) !important;
}
.servicios-intro .seccion-sub { color: var(--color-text) !important; }
.servicios-familia             { background: var(--color-white)  !important; }
.servicios-familia--alt        { background: var(--color-ivory)  !important; }

/* SERVICIO INDIVIDUAL: hero(navy) → para-quien(white) → content(ivory) → faq(white) */
.servicio-para-quien { background: var(--color-white)  !important; }
.servicio-content    { background: var(--color-ivory)  !important; }
.seccion-faq         { background: var(--color-white)  !important; border-top: 1px solid var(--color-border); }

/* GRACIAS: siempre marfil */
.gracias-page { background: var(--color-ivory) !important; }

/* ── 30.B SECCIÓN padding DEFINITIVO (máxima especificidad) ── */
section.page-hero            { padding-block: var(--space-16) var(--space-20); }
section.nosotros-manifiesto  { padding-block: var(--space-20); }
section.perfil-page          { padding-block: var(--space-20); }
section.valores              { padding-block: var(--space-20); }
section.etica                { padding-block: var(--space-20); }
section.proceso-page         { padding-block: var(--space-20); }
section.proceso-esperar      { padding-block: var(--space-20); }
section.proceso-faq          { padding-block: var(--space-16); }
section.faq-page             { padding-block: var(--space-20); }
section.contacto-page        { padding-block: var(--space-20); }
section.recursos-section     { padding-block: var(--space-20); }
section.servicios-familia    { padding-block: var(--space-20); }
section.servicio-para-quien  { padding-block: var(--space-16); }
section.servicio-content     { padding-block: var(--space-20); }
section.seccion-faq          { padding-block: var(--space-16); }
section.gracias-page         { padding-block: var(--space-24); min-height: 80vh; }

/* ── 30.C SECCIÓN MANIFIESTO — layout centrado sobre fondo claro ── */
.manifiesto-texto {
  max-width: 780px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-7);
  text-align: left;
}
.manifiesto-texto p {
  font-size: var(--fs-md);
  color: var(--color-text);
  line-height: 1.9;
}
.manifiesto-texto p + p { padding-top: var(--space-2); }

.manifiesto-pilares {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
  margin-top: var(--space-8);
}
.manifiesto-pilar {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-5);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--color-navy);
}
.manifiesto-pilar svg { color: var(--color-gold); flex-shrink: 0; }
@media (max-width: 599px) {
  .manifiesto-pilares { gap: var(--space-2); }
  .manifiesto-pilar { padding: var(--space-2) var(--space-4); font-size: 0.78rem; }
  .manifiesto-pilar svg { width: 15px; height: 15px; }
}

/* ── 30.D PERFIL PAGE — layout visual mejorado ── */
.perfil-page-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-12);
}
@media (min-width: 800px) {
  .perfil-page-layout {
    grid-template-columns: 380px 1fr;
    gap: var(--space-16);
    align-items: start;
  }
}

.perfil-page-img-wrap {
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  position: relative;
  background: var(--color-ivory-deep);
}
.perfil-page-img-wrap img {
  width: 100%;
  display: block;
  object-fit: cover;
  aspect-ratio: 3/4;
}

.perfil-page-texto {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding-block: var(--space-4);
}

.perfil-page-texto .seccion-kicker { color: var(--color-gold-muted); margin-bottom: 0; }
.perfil-page-texto .seccion-titulo { color: var(--color-navy); margin-bottom: 0; }

.perfil-cargo {
  font-size: var(--fs-base);
  color: var(--color-text-light);
  font-weight: 500;
  line-height: 1.6;
  border-left: 3px solid var(--color-gold);
  padding-left: var(--space-4);
  margin: 0;
}

.perfil-bio {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.9;
  margin: 0;
}

.perfil-datos-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4) var(--space-6);
  margin-top: var(--space-6);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-border);
}

/* ── 30.E VALORES — cards premium ── */
.valores-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
  margin-top: var(--space-10);
}
@media (min-width: 900px) { .valores-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 599px) { .valores-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-3); } }

.valor-card {
  padding: var(--space-7) var(--space-6);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}
.valor-card:hover { box-shadow: var(--shadow-md); border-color: rgba(201,168,78,.45); transform: translateY(-3px); }

.valor-icon {
  width: 52px; height: 52px;
  background: rgba(201,168,78,.1);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.valor-titulo {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.3;
  margin: 0;
}

.valor-desc {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.8;
  flex: 1;
  margin: 0;
}

/* ── 30.F ÉTICA — card sobre fondo navy ── */
.etica { padding-block: var(--space-20) !important; }

.etica-nota {
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(201,168,78,.22) !important;
  border-radius: var(--radius-xl) !important;
  padding: var(--space-10) var(--space-12) !important;
  max-width: 880px !important;
  margin-inline: auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-5) !important;
}
.etica-nota .seccion-kicker   { color: var(--color-gold-muted); margin-bottom: 0; }
.etica-nota .seccion-titulo   { color: var(--color-white) !important; font-size: var(--fs-xl); margin-bottom: 0; }
.etica-nota p {
  font-size: var(--fs-base) !important;
  color: rgba(247,243,234,.75) !important;
  line-height: 1.9 !important;
  margin: 0 !important;
}

.etica-comparativa {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
}
.etica-col-title {
  font-size: var(--fs-sm) !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--space-3) !important;
}
.etica-col--si .etica-col-title { color: var(--color-gold-soft) !important; }
.etica-col--no .etica-col-title { color: rgba(247,243,234,.4) !important; }
.etica-lista { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.etica-lista li { display: flex; align-items: flex-start; gap: var(--space-2); font-size: var(--fs-sm); line-height: 1.6; color: rgba(247,243,234,.7); }
.etica-lista svg { flex-shrink: 0; margin-top: 3px; }
.etica-col--si .etica-lista svg { color: var(--color-gold); }
.etica-col--no .etica-lista svg { color: rgba(247,243,234,.3); }
.etica-cierre {
  font-style: italic !important;
  text-align: center;
  padding-top: var(--space-5) !important;
  border-top: 1px solid rgba(201,168,78,.15);
}
@media (max-width: 599px) {
  .etica-comparativa { grid-template-columns: 1fr; gap: var(--space-5); }
}

/* ── 30.G PROCESO — timeline mejorado ── */
.proceso-page { padding-block: var(--space-20) !important; }

.proceso-timeline {
  list-style: none;
  padding-left: var(--space-12);
  position: relative;
  margin-top: var(--space-12);
}
.proceso-timeline::before {
  content: '';
  position: absolute;
  left: 15px; top: 8px; bottom: 8px;
  width: 2px;
  background: linear-gradient(to bottom, var(--color-gold), var(--color-border));
}
.proceso-timeline-paso {
  position: relative;
  padding-bottom: var(--space-12);
  display: flex;
  flex-direction: column;
  gap: 0;
}
.proceso-timeline-paso:last-child { padding-bottom: 0; }

.proceso-paso-bullet {
  position: absolute;
  left: calc(-1 * var(--space-12) + 3px);
  top: 4px;
  width: 28px; height: 28px;
  background: var(--color-white);
  border: 3px solid var(--color-gold);
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
  color: var(--color-gold);
  z-index: 1;
  box-shadow: 0 0 0 4px var(--color-white);
}

.proceso-paso-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.3;
  margin-bottom: var(--space-3);
}

.proceso-paso-desc {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.85;
  max-width: 680px;
  margin-bottom: var(--space-3);
}

.proceso-paso-nota {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-sm);
  color: var(--color-text-light);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-4);
}

/* ── 30.H PROCESO ESPERAR — grid premium ── */
.esperar-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
  margin-top: var(--space-10);
}
@media (min-width: 900px) { .esperar-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 599px) { .esperar-grid { grid-template-columns: 1fr; } }

.esperar-item {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-7) var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}
.esperar-item:hover { box-shadow: var(--shadow-md); border-color: rgba(201,168,78,.4); transform: translateY(-3px); }

.esperar-icon {
  width: 52px; height: 52px;
  background: rgba(201,168,78,.1);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.esperar-item h3 { font-size: var(--fs-md); font-weight: 700; color: var(--color-navy); line-height: 1.3; margin: 0; }
.esperar-item p  { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.8; margin: 0; }

/* ── 30.I FAQ — sección título con separador gold ── */
.faq-categoria { margin-bottom: var(--space-14) !important; }
.faq-categoria:last-child { margin-bottom: 0 !important; }

.faq-categoria-titulo {
  font-family: var(--font-serif) !important;
  font-size: var(--fs-xl) !important;
  font-weight: 700 !important;
  color: var(--color-navy) !important;
  padding-bottom: var(--space-4) !important;
  margin-bottom: var(--space-6) !important;
  border-bottom: 2px solid var(--color-border) !important;
  position: relative !important;
}
.faq-categoria-titulo::after {
  content: '' !important;
  position: absolute !important;
  bottom: -2px; left: 0 !important;
  width: 48px; height: 2px !important;
  background: var(--color-gold) !important;
}

.faq-lista {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.faq-item   { border-bottom: 1px solid var(--color-border); }
.faq-item:last-child { border-bottom: none; }

.faq-pregunta {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: var(--space-4) !important;
  width: 100% !important;
  padding: var(--space-5) var(--space-6) !important;
  background: var(--color-white) !important;
  border: none !important;
  cursor: pointer !important;
  text-align: left !important;
  font-size: var(--fs-base) !important;
  font-weight: 600 !important;
  color: var(--color-navy) !important;
  line-height: 1.45 !important;
  transition: background var(--trans-fast) !important;
}
.faq-pregunta:hover { background: var(--color-ivory) !important; }
.faq-pregunta[aria-expanded="true"] { background: var(--color-ivory) !important; }
.faq-pregunta span { flex: 1; }

.faq-respuesta {
  background: var(--color-ivory);
  padding: var(--space-2) var(--space-6) var(--space-8) !important;
  border-top: 1px solid var(--color-border);
}
.faq-respuesta p {
  font-size: var(--fs-base) !important;
  color: var(--color-text) !important;
  line-height: 1.85 !important;
  margin-bottom: var(--space-4) !important;
}
.faq-respuesta p:last-child { margin-bottom: 0 !important; }

/* ── 30.J CONTACTO — cards de canal premium ── */
.contacto-layout {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: var(--space-6) !important;
  margin-bottom: var(--space-12) !important;
}
@media (min-width: 768px) {
  .contacto-layout { grid-template-columns: 1fr 1fr !important; }
}

.contacto-canal {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: var(--space-5) !important;
  padding: var(--space-8) var(--space-8) !important;
  background: var(--color-ivory) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-xl) !important;
  transition: box-shadow var(--trans-base), border-color var(--trans-base) !important;
}
.contacto-canal:hover { box-shadow: var(--shadow-md) !important; border-color: rgba(201,168,78,.45) !important; }

.canal-icon {
  width: 64px; height: 64px;
  border-radius: var(--radius-lg);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.canal-icon--wa    { background: rgba(37,211,102,.12); color: #25D366; }
.canal-icon--email { background: rgba(201,168,78,.12); color: var(--color-gold); }

.canal-contenido { display: flex; flex-direction: column; gap: var(--space-3); width: 100%; }

.canal-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.25;
}
.canal-desc { font-size: var(--fs-base); color: var(--color-text); line-height: 1.8; }

/* ── 30.K GRACIAS — centrada y elegante ── */
.gracias-inner {
  max-width: 640px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-7);
}

.gracias-icon {
  width: 96px; height: 96px;
  background: rgba(201,168,78,.08);
  border: 2px solid rgba(201,168,78,.3);
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: var(--space-2);
}

.gracias-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-4xl);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.15;
  margin: 0;
}

.gracias-sub {
  font-size: var(--fs-lg);
  color: var(--color-text);
  line-height: 1.8;
  margin: 0;
  max-width: 520px;
}

.gracias-pasos {
  width: 100%;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-8);
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: var(--space-7);
}

.gracias-pasos-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-navy);
  padding-bottom: var(--space-5);
  border-bottom: 1px solid var(--color-border);
  margin: 0;
}

.gracias-paso {
  display: flex;
  align-items: flex-start;
  gap: var(--space-5);
}

.gracias-paso-num {
  width: 36px; height: 36px; min-width: 36px;
  background: var(--color-navy);
  color: var(--color-gold-soft);
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  font-size: var(--fs-sm); font-weight: 700;
  flex-shrink: 0;
}

.gracias-paso-tx strong { font-size: var(--fs-base); font-weight: 700; color: var(--color-navy); display: block; margin-bottom: var(--space-2); }
.gracias-paso-tx p     { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.8; margin: 0; }

.gracias-nota {
  width: 100%;
  padding: var(--space-5) var(--space-6);
  background: rgba(201,168,78,.06);
  border: 1px solid rgba(201,168,78,.2);
  border-radius: var(--radius-lg);
  font-size: var(--fs-sm);
  color: var(--color-text-light);
  line-height: 1.8;
  text-align: left;
}
.gracias-nota a { color: var(--color-gold-muted); text-decoration: underline; }
.gracias-nota a:hover { color: var(--color-gold); }

/* ── 30.L RECURSOS — grid editorial de artículos ── */
.recursos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-7);
  margin-top: var(--space-12);
}

.recurso-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}
.recurso-card:hover { box-shadow: var(--shadow-lg); border-color: rgba(201,168,78,.45); transform: translateY(-4px); }

.recurso-card-header {
  background: var(--color-navy);
  padding: var(--space-3) var(--space-6);
}
.recurso-card-tag {
  font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.1em; color: var(--color-gold-soft);
}
.recurso-card-titulo {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.4;
  padding: var(--space-6) var(--space-6) var(--space-3);
  margin: 0;
}
.recurso-card-desc {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.8;
  padding: 0 var(--space-6) var(--space-6);
  flex: 1;
  margin: 0;
}
.recurso-card-nota {
  font-size: var(--fs-xs);
  color: var(--color-text-xlight);
  font-style: italic;
  padding: var(--space-3) var(--space-6) var(--space-5);
  border-top: 1px solid var(--color-border);
  line-height: 1.6;
  margin: 0;
}

.recursos-proximamente {
  margin-top: var(--space-14);
  padding: var(--space-10) var(--space-12);
  background: var(--color-ivory);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
}
.recursos-proximamente p { font-size: var(--fs-base); color: var(--color-text-light); line-height: 1.75; max-width: 560px; margin: 0; }

/* ── 30.M SERVICIOS HUB ── */
.servicios-intro-texto {
  max-width: 820px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.servicios-intro-texto .seccion-sub {
  color: var(--color-text) !important;
  font-size: var(--fs-md) !important;
  line-height: 1.85 !important;
  text-align: center;
  max-width: 740px;
  margin-inline: auto;
}

.familia-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-7);
  margin-top: var(--space-10);
}

.servicio-card-lg {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}
.servicio-card-lg:hover { box-shadow: var(--shadow-lg); border-color: rgba(201,168,78,.5); transform: translateY(-4px); }

.servicio-card-lg-header {
  display: flex;
  align-items: flex-start;
  gap: var(--space-5);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--color-border);
}
.servicio-card-lg-icon {
  width: 56px; height: 56px; min-width: 56px;
  background: rgba(11,29,56,.06);
  border-radius: var(--radius-lg);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-navy);
}
.servicio-card-lg-titulo { font-size: var(--fs-md); font-weight: 700; color: var(--color-navy); line-height: 1.35; margin: 0; }
.servicio-card-lg-precio { display: inline-block; font-size: var(--fs-xs); font-weight: 600; color: var(--color-gold-muted); padding: 3px var(--space-3); border: 1px solid rgba(201,168,78,.3); border-radius: 99px; margin-top: var(--space-2); }
.servicio-card-lg-tag    { display: inline-block; font-size: var(--fs-xs); font-weight: 600; color: var(--color-navy); background: rgba(201,168,78,.12); padding: 3px var(--space-3); border-radius: 99px; margin-top: var(--space-2); }
.servicio-card-lg-desc   { font-size: var(--fs-base); color: var(--color-text); line-height: 1.85; flex: 1; margin: 0; }
.servicio-card-lg-nota   { font-size: var(--fs-xs); color: var(--color-text-xlight); line-height: 1.65; padding: var(--space-3) var(--space-4); background: var(--color-ivory); border-radius: var(--radius-md); border: 1px solid var(--color-border); margin: 0; }
.servicio-card-lg-alerta { color: #8A5C1A !important; background: rgba(201,168,78,.08) !important; border-color: rgba(201,168,78,.25) !important; }

/* ── 30.N PÁGINAS DE SERVICIO — para-quien + layout ── */
.para-quien-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-10);
}
.para-quien-card {
  display: flex; flex-direction: column; gap: var(--space-4);
  padding: var(--space-7) var(--space-6);
  background: var(--color-ivory); border: 1px solid var(--color-border); border-radius: var(--radius-lg);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}
.para-quien-card:hover { box-shadow: var(--shadow-md); border-color: rgba(201,168,78,.45); transform: translateY(-3px); }
.para-quien-icon      { width: 48px; height: 48px; background: rgba(201,168,78,.1); border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; color: var(--color-gold); }
.para-quien-card-titulo { font-size: var(--fs-base); font-weight: 700; color: var(--color-navy); line-height: 1.35; margin: 0; }
.para-quien-card p    { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.8; margin: 0; }

.servicio-layout { display: grid; grid-template-columns: 1fr; gap: var(--space-10); align-items: start; }
@media (min-width: 960px) { .servicio-layout { grid-template-columns: 1fr 320px; gap: var(--space-14); } }
.servicio-main { display: flex; flex-direction: column; gap: var(--space-10); }

.content-block { display: flex; flex-direction: column; gap: var(--space-5); padding-bottom: var(--space-10); border-bottom: 1px solid var(--color-border); }
.content-block:last-child { border-bottom: none; padding-bottom: 0; }
.content-block p { font-size: var(--fs-base); color: var(--color-text); line-height: 1.9; margin: 0; }

.content-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.content-list li { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--fs-base); color: var(--color-text); line-height: 1.8; }
.content-list li::before { content: '—'; color: var(--color-gold); font-weight: 700; flex-shrink: 0; }
.content-list--aviso li::before { content: '✕'; color: var(--color-error); }

.content-block--aviso { background: rgba(201,168,78,.06); border: 1px solid rgba(201,168,78,.2) !important; border-radius: var(--radius-lg); padding: var(--space-7) var(--space-8) !important; border-bottom: none !important; }
.content-block--cta   { background: var(--color-navy) !important; border-radius: var(--radius-xl); padding: var(--space-8) !important; border-bottom: none !important; }
.content-block--cta .seccion-titulo { color: var(--color-white) !important; }
.content-block--cta p               { color: rgba(247,243,234,.72) !important; }
.content-aviso-nota { font-size: var(--fs-sm); color: var(--color-text-light); font-style: italic; line-height: 1.75; padding-top: var(--space-4); border-top: 1px solid rgba(201,168,78,.15); margin: 0; }

@media (min-width: 960px) { .side-card-diagnostico { position: sticky; top: 100px; } }
.side-card-diagnostico { background: var(--color-navy) !important; border: 1px solid rgba(201,168,78,.2) !important; border-radius: var(--radius-xl) !important; overflow: hidden; }
.diagnostico-bloque { display: flex !important; flex-direction: column !important; gap: var(--space-5) !important; padding: var(--space-8) !important; background: transparent !important; border-radius: 0 !important; margin: 0 !important; }
.diagnostico-icon   { width: 52px; height: 52px; background: rgba(201,168,78,.15); border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; color: var(--color-gold-soft); }
.diagnostico-content { display: flex; flex-direction: column; gap: var(--space-3); }
.diagnostico-kicker  { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-gold-muted); }
.diagnostico-titulo  { font-family: var(--font-serif); font-size: var(--fs-lg); font-weight: 700; color: var(--color-white); line-height: 1.3; margin: 0; }
.diagnostico-desc    { font-size: var(--fs-sm); color: rgba(247,243,234,.65); line-height: 1.8; margin: 0; }
.diagnostico-precio  { font-size: var(--fs-lg); font-weight: 700; font-family: var(--font-serif); color: var(--color-gold-soft); padding: var(--space-3) 0; border-top: 1px solid rgba(201,168,78,.2); border-bottom: 1px solid rgba(201,168,78,.2); }
.btn-full { width: 100% !important; justify-content: center !important; }

/* ── 30.O DETAILS/SUMMARY FAQ (service pages) ── */
.seccion-faq .container--narrow { max-width: 760px; }

.faq-list { margin-top: var(--space-8); border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; }
details.faq-item { border-bottom: 1px solid var(--color-border); }
details.faq-item:last-child { border-bottom: none; }

summary.faq-pregunta {
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: var(--space-5) var(--space-7) !important;
  background: var(--color-white) !important;
  cursor: pointer !important;
  font-size: var(--fs-base) !important;
  font-weight: 600 !important;
  color: var(--color-navy) !important;
  line-height: 1.45 !important;
  transition: background var(--trans-fast) !important;
  user-select: none;
  gap: var(--space-4);
}
summary.faq-pregunta::-webkit-details-marker { display: none !important; }
summary.faq-pregunta::marker { display: none !important; }
summary.faq-pregunta:hover { background: var(--color-ivory) !important; }
details[open] summary.faq-pregunta { background: var(--color-ivory) !important; }
summary.faq-pregunta::after { content: '＋'; font-size: var(--fs-xl); font-weight: 300; color: var(--color-gold); flex-shrink: 0; line-height: 1; }
details[open] summary.faq-pregunta::after { content: '－'; }

details.faq-item .faq-respuesta { padding: var(--space-5) var(--space-7) var(--space-7) !important; background: var(--color-ivory) !important; border-top: 1px solid var(--color-border); }
details.faq-item .faq-respuesta p { font-size: var(--fs-base) !important; color: var(--color-text) !important; line-height: 1.85 !important; margin-bottom: var(--space-4) !important; }
details.faq-item .faq-respuesta p:last-child { margin-bottom: 0 !important; }

.faq-mas { margin-top: var(--space-6); text-align: center; }
.faq-mas a { font-size: var(--fs-sm); font-weight: 600; color: var(--color-gold-muted); text-decoration: none; }
.faq-mas a:hover { color: var(--color-gold); text-decoration: underline; }

/* ── 30.P HERO BADGES ── */
.hero-precio-badge, .hero-aviso-badge {
  display: inline-flex; align-items: center; gap: var(--space-2);
  padding: var(--space-2) var(--space-5); border-radius: var(--radius-full);
  font-size: var(--fs-sm); font-weight: 600; letter-spacing: 0.02em; margin-top: var(--space-5);
}
.hero-precio-badge { background: rgba(201,168,78,.15); border: 1px solid rgba(201,168,78,.3); color: var(--color-gold-soft); }
.hero-aviso-badge  { background: rgba(255,180,0,.1);  border: 1px solid rgba(255,180,0,.25);  color: #E0B84A; }

/* ── 30.Q NOTA EDITORIAL RECURSOS ── */
.nota-editorial {
  display: flex; align-items: flex-start; gap: var(--space-4);
  padding: var(--space-6) var(--space-8);
  background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-lg);
  max-width: 820px; margin-inline: auto;
}
.nota-editorial svg    { color: var(--color-gold); flex-shrink: 0; margin-top: 2px; }
.nota-editorial span   { font-size: var(--fs-base); color: var(--color-text); line-height: 1.8; }
.nota-editorial strong { color: var(--color-navy); }
.nota-editorial a      { color: var(--color-gold-muted); text-decoration: underline; }

/* ── 30.R RESPONSIVE FINAL ── */
@media (max-width: 767px) {
  section.nosotros-manifiesto,
  section.perfil-page,
  section.valores,
  section.etica,
  section.proceso-page,
  section.proceso-esperar,
  section.proceso-faq,
  section.faq-page,
  section.contacto-page,
  section.recursos-section,
  section.servicios-familia,
  section.servicio-para-quien,
  section.servicio-content,
  section.seccion-faq { padding-block: var(--space-14); }

  section.gracias-page { padding-block: var(--space-16); min-height: 0; }

  .manifiesto-texto p:first-child { font-size: var(--fs-md); border-left-width: 3px; padding-left: var(--space-4); }
  .perfil-page-layout { grid-template-columns: 1fr; gap: var(--space-10); }
  .perfil-datos-wrap  { grid-template-columns: 1fr; }
  .etica-nota { padding: var(--space-7) var(--space-6) !important; }

  .esperar-grid { grid-template-columns: 1fr 1fr; }
  .valores-grid { grid-template-columns: 1fr 1fr; }

  .servicio-layout { grid-template-columns: 1fr; }
  .servicio-card-lg { padding: var(--space-6); }
  .content-block--aviso { padding: var(--space-6) !important; }
  .content-block--cta   { padding: var(--space-6) !important; }
  .diagnostico-bloque   { padding: var(--space-6) !important; }

  summary.faq-pregunta { padding: var(--space-4) var(--space-5) !important; font-size: var(--fs-sm) !important; }
  details.faq-item .faq-respuesta { padding: var(--space-4) var(--space-5) var(--space-5) !important; }
  .faq-pregunta { padding: var(--space-4) var(--space-5) !important; }
  .faq-respuesta { padding: var(--space-2) var(--space-5) var(--space-5) !important; }

  .gracias-pasos  { padding: var(--space-6); }
  .gracias-titulo { font-size: var(--fs-3xl); }
  .contacto-info  { padding: var(--space-7) var(--space-6); }
  .contacto-info-grid { grid-template-columns: 1fr; }
  .recursos-proximamente { padding: var(--space-7) var(--space-6); }
  .nota-editorial        { padding: var(--space-5); }
  html { font-size: 16px; }
}

@media (max-width: 479px) {
  .esperar-grid  { grid-template-columns: 1fr; }
  .familia-grid  { grid-template-columns: 1fr; }
  .recursos-grid { grid-template-columns: 1fr; }
  section.nosotros-manifiesto,
  section.perfil-page,
  section.valores,
  section.etica,
  section.proceso-page,
  section.proceso-esperar,
  section.proceso-faq,
  section.faq-page,
  section.contacto-page,
  section.recursos-section,
  section.servicios-familia,
  section.servicio-para-quien,
  section.servicio-content,
  section.seccion-faq { padding-block: var(--space-12); }
  html { font-size: 16px; }
}

.recursos-proximamente {
  margin-top: var(--space-14);
  padding: var(--space-10) var(--space-12);
  background: var(--color-ivory);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
}
.recursos-proximamente p { font-size: var(--fs-base); color: var(--color-text-light); line-height: 1.75; max-width: 560px; margin: 0; }

/* ── 30.M SERVICIOS HUB — familias y cards ── */
.servicios-intro-texto {
  max-width: 820px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.servicios-intro-texto .seccion-sub {
  color: var(--color-text) !important;
  font-size: var(--fs-md) !important;
  line-height: 1.85 !important;
  text-align: center;
  max-width: 740px;
  margin-inline: auto;
}

.familia-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-7);
  margin-top: var(--space-10);
}

.servicio-card-lg {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-8);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}
.servicios-familia--alt .servicio-card-lg { background: var(--color-white); }
.servicio-card-lg:hover { box-shadow: var(--shadow-lg); border-color: rgba(201,168,78,.5); transform: translateY(-4px); }

.servicio-card-lg-header {
  display: flex;
  align-items: flex-start;
  gap: var(--space-5);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--color-border);
}
.servicio-card-lg-icon {
  width: 56px; height: 56px; min-width: 56px;
  background: rgba(11,29,56,.06);
  border-radius: var(--radius-lg);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-navy);
}
.servicio-card-lg-titulo {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.35;
  margin: 0;
}
.servicio-card-lg-precio {
  display: inline-block;
  font-size: var(--fs-xs); font-weight: 600; color: var(--color-gold-muted);
  padding: 3px var(--space-3);
  border: 1px solid rgba(201,168,78,.3);
  border-radius: 99px; margin-top: var(--space-2);
}
.servicio-card-lg-tag {
  display: inline-block;
  font-size: var(--fs-xs); font-weight: 600; color: var(--color-navy);
  background: rgba(201,168,78,.12);
  padding: 3px var(--space-3); border-radius: 99px; margin-top: var(--space-2);
}
.servicio-card-lg-desc {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.85;
  flex: 1;
  margin: 0;
}
.servicio-card-lg-nota {
  font-size: var(--fs-xs); color: var(--color-text-xlight);
  line-height: 1.65;
  padding: var(--space-3) var(--space-4);
  background: var(--color-ivory);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  margin: 0;
}
.servicio-card-lg-alerta { color: #8A5C1A !important; background: rgba(201,168,78,.08) !important; border-color: rgba(201,168,78,.25) !important; }

/* ── 30.N PÁGINAS DE SERVICIO — para-quien + layout ── */
.para-quien-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-10);
}

.para-quien-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-7) var(--space-6);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  transition: box-shadow var(--trans-base), border-color var(--trans-base), transform var(--trans-base);
}
.para-quien-card:hover { box-shadow: var(--shadow-md); border-color: rgba(201,168,78,.45); transform: translateY(-3px); }
.para-quien-icon { width: 48px; height: 48px; background: rgba(201,168,78,.1); border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; color: var(--color-gold); }
.para-quien-card-titulo { font-size: var(--fs-base); font-weight: 700; color: var(--color-navy); line-height: 1.35; margin: 0; }
.para-quien-card p { font-size: var(--fs-sm); color: var(--color-text); line-height: 1.8; margin: 0; }

/* layout: main + aside pegado al tope en desktop */
.servicio-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-10);
  align-items: start;
}
@media (min-width: 960px) { .servicio-layout { grid-template-columns: 1fr 320px; gap: var(--space-14); } }
.servicio-main { display: flex; flex-direction: column; gap: var(--space-10); }

/* content blocks */
.content-block {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding-bottom: var(--space-10);
  border-bottom: 1px solid var(--color-border);
}
.content-block:last-child { border-bottom: none; padding-bottom: 0; }
.content-block p { font-size: var(--fs-base); color: var(--color-text); line-height: 1.9; margin: 0; }

.content-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.content-list li { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--fs-base); color: var(--color-text); line-height: 1.8; }
.content-list li::before { content: '—'; color: var(--color-gold); font-weight: 700; flex-shrink: 0; }
.content-list--aviso li::before { content: '✕'; color: var(--color-error); }

.content-block--aviso {
  background: rgba(201,168,78,.06);
  border: 1px solid rgba(201,168,78,.2) !important;
  border-radius: var(--radius-lg);
  padding: var(--space-7) var(--space-8) !important;
  border-bottom: none !important;
}
.content-block--cta {
  background: var(--color-navy) !important;
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-8) !important;
  border-bottom: none !important;
}
.content-block--cta .seccion-titulo { color: var(--color-white) !important; }
.content-block--cta p               { color: rgba(247,243,234,.72) !important; }

.content-aviso-nota {
  font-size: var(--fs-sm); color: var(--color-text-light); font-style: italic;
  line-height: 1.75; padding-top: var(--space-4); border-top: 1px solid rgba(201,168,78,.15);
  margin: 0;
}

/* aside sticky */
@media (min-width: 960px) { .side-card-diagnostico { position: sticky; top: 100px; } }

.side-card-diagnostico {
  background: var(--color-navy) !important;
  border: 1px solid rgba(201,168,78,.2) !important;
  border-radius: var(--radius-xl) !important;
  overflow: hidden;
}
.diagnostico-bloque {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-5) !important;
  padding: var(--space-8) !important;
  background: transparent !important;
  border-radius: 0 !important;
  margin: 0 !important;
  flex-wrap: nowrap !important;
}
.diagnostico-icon { width: 52px; height: 52px; background: rgba(201,168,78,.15); border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; color: var(--color-gold-soft); }
.diagnostico-content { display: flex; flex-direction: column; gap: var(--space-3); }
.diagnostico-kicker { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-gold-muted); }
.diagnostico-titulo { font-family: var(--font-serif); font-size: var(--fs-lg); font-weight: 700; color: var(--color-white); line-height: 1.3; margin: 0; }
.diagnostico-desc   { font-size: var(--fs-sm); color: rgba(247,243,234,.65); line-height: 1.8; margin: 0; }
.diagnostico-precio {
  font-size: var(--fs-lg); font-weight: 700; font-family: var(--font-serif);
  color: var(--color-gold-soft);
  padding: var(--space-3) 0;
  border-top: 1px solid rgba(201,168,78,.2);
  border-bottom: 1px solid rgba(201,168,78,.2);
}

/* ── 30.O DETALLES SUMMARY FAQ (service pages) ── */
.faq-list {
  margin-top: var(--space-8);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

details.faq-item          { border-bottom: 1px solid var(--color-border); }
details.faq-item:last-child { border-bottom: none; }

summary.faq-pregunta {
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: var(--space-5) var(--space-7) !important;
  background: var(--color-white) !important;
  cursor: pointer !important;
  font-size: var(--fs-base) !important;
  font-weight: 600 !important;
  color: var(--color-navy) !important;
  line-height: 1.45 !important;
  transition: background var(--trans-fast) !important;
  user-select: none;
  gap: var(--space-4);
}
summary.faq-pregunta::-webkit-details-marker { display: none !important; }
summary.faq-pregunta::marker { display: none !important; }
summary.faq-pregunta:hover  { background: var(--color-ivory) !important; }
details[open] summary.faq-pregunta { background: var(--color-ivory) !important; }

summary.faq-pregunta::after {
  content: '＋';
  font-size: var(--fs-xl);
  font-weight: 300;
  color: var(--color-gold);
  flex-shrink: 0;
  line-height: 1;
  transition: transform var(--trans-base);
}
details[open] summary.faq-pregunta::after { content: '－'; }

details.faq-item .faq-respuesta {
  padding: var(--space-5) var(--space-7) var(--space-7) !important;
  background: var(--color-ivory) !important;
  border-top: 1px solid var(--color-border);
}
details.faq-item .faq-respuesta p {
  font-size: var(--fs-base) !important;
  color: var(--color-text) !important;
  line-height: 1.85 !important;
  margin-bottom: var(--space-4) !important;
}
details.faq-item .faq-respuesta p:last-child { margin-bottom: 0 !important; }

.faq-mas { margin-top: var(--space-6); text-align: center; }
.faq-mas a { font-size: var(--fs-sm); font-weight: 600; color: var(--color-gold-muted); text-decoration: none; }
.faq-mas a:hover { color: var(--color-gold); text-decoration: underline; }

/* ── 30.P HERO BADGES ── */
.hero-precio-badge, .hero-aviso-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-full);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  margin-top: var(--space-5);
}
.hero-precio-badge {
  background: rgba(201,168,78,.15);
  border: 1px solid rgba(201,168,78,.3);
  color: var(--color-gold-soft);
}
.hero-aviso-badge {
  background: rgba(255,180,0,.1);
  border: 1px solid rgba(255,180,0,.25);
  color: #E0B84A;
}

/* ── 30.Q NOTA EDITORIAL RECURSOS ── */
.nota-editorial {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6) var(--space-8);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  max-width: 820px;
  margin-inline: auto;
}
.nota-editorial svg   { color: var(--color-gold); flex-shrink: 0; margin-top: 2px; }
.nota-editorial span  { font-size: var(--fs-base); color: var(--color-text); line-height: 1.8; }
.nota-editorial strong { color: var(--color-navy); }
.nota-editorial a     { color: var(--color-gold-muted); text-decoration: underline; }

/* ── 30.R RESPONSIVE FINAL (todas las páginas internas) ── */
@media (max-width: 767px) {
  section.nosotros-manifiesto,
  section.perfil-page,
  section.valores,
  section.etica,
  section.proceso-page,
  section.proceso-esperar,
  section.proceso-faq,
  section.faq-page,
  section.contacto-page,
  section.recursos-section,
  section.servicios-familia,
  section.servicio-para-quien,
  section.servicio-content,
  section.seccion-faq { padding-block: var(--space-14); }

  section.gracias-page { padding-block: var(--space-16); min-height: 0; }

  .manifiesto-texto p:first-child { font-size: var(--fs-md); }

  .perfil-page-layout { grid-template-columns: 1fr; gap: var(--space-10); }
  .perfil-datos-wrap { grid-template-columns: 1fr; }
  .perfil-page .perfil-datos-wrap { grid-template-columns: repeat(2, 1fr) !important; gap: var(--space-4) var(--space-3) !important; }

  .etica-nota { padding: var(--space-6) var(--space-5) !important; }
  .etica-nota .seccion-titulo { font-size: var(--fs-lg) !important; }

  .esperar-grid { grid-template-columns: 1fr; gap: var(--space-4); }
  .valores-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
  .valor-card { padding: var(--space-4); gap: var(--space-2); }
  .valor-icon { width: 36px; height: 36px; }
  .valor-icon svg { width: 20px; height: 20px; }
  .valor-titulo { font-size: 0.85rem; line-height: 1.3; }
  .valor-desc { font-size: 0.78rem; line-height: 1.5; }
  .para-quien-grid { grid-template-columns: 1fr; }
  .familia-grid { grid-template-columns: 1fr; }
  .recursos-grid { grid-template-columns: 1fr; }

  .servicio-layout { grid-template-columns: 1fr; }
  .servicio-card-lg { padding: var(--space-6) var(--space-6); }
  .content-block--aviso { padding: var(--space-6) !important; }
  .content-block--cta   { padding: var(--space-6) !important; }
  .diagnostico-bloque   { padding: var(--space-6) !important; }

  .faq-pregunta { padding: var(--space-4) var(--space-5) !important; }
  .faq-respuesta { padding: var(--space-2) var(--space-5) var(--space-5) !important; }
  summary.faq-pregunta { padding: var(--space-4) var(--space-5) !important; }
  details.faq-item .faq-respuesta { padding: var(--space-4) var(--space-5) var(--space-6) !important; }

  .gracias-pasos { padding: var(--space-6); }
  .gracias-titulo { font-size: var(--fs-3xl); }

  .contacto-info-grid { grid-template-columns: 1fr; }
  .contacto-info { padding: var(--space-7) var(--space-6); }

  .recursos-proximamente { padding: var(--space-7) var(--space-6); }
  .nota-editorial { padding: var(--space-5) var(--space-5); }

  html { font-size: 16px; }
}

@media (max-width: 479px) {
  .esperar-grid  { grid-template-columns: 1fr; }
  .familia-grid  { grid-template-columns: 1fr; }
  .recursos-grid { grid-template-columns: 1fr; }
  section.nosotros-manifiesto,
  section.perfil-page,
  section.valores,
  section.etica,
  section.proceso-page,
  section.proceso-esperar,
  section.proceso-faq,
  section.faq-page,
  section.contacto-page,
  section.recursos-section,
  section.servicios-familia,
  section.servicio-para-quien,
  section.servicio-content,
  section.seccion-faq { padding-block: var(--space-12); }
}

/* ── 31. ELEMENTOS LEGALES — aviso de validación y badge ── */

/* Caja de aviso importante (nota de validación jurídica) */
.content-aviso {
  display: flex;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-6);
  border-radius: var(--radius-md);
  border-left: 4px solid rgba(201,168,78,.5);
  background: rgba(201,168,78,.06);
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.8;
  margin-top: var(--space-6);
}
.content-aviso strong { color: #8A5C1A; font-weight: 700; }
.content-aviso em { color: var(--color-navy); font-style: italic; }

.content-aviso--importante {
  border-left-color: var(--color-gold);
  background: rgba(201,168,78,.08);
}

/* Badge inline en headings */
.badge-aviso {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8A5C1A;
  background: rgba(201,168,78,.12);
  border: 1px solid rgba(201,168,78,.3);
  border-radius: var(--radius-full);
  padding: 2px var(--space-3);
  vertical-align: middle;
  margin-left: var(--space-2);
  white-space: nowrap;
}

/* ── 32. CORRECCIONES SERVICIO — padding y spacing definitivos ── */
.side-card-diagnostico { padding: 0 !important; }
section.servicio-para-quien { border-bottom: 1px solid var(--color-border) !important; }
.content-block { margin-bottom: 0 !important; }

/* ── 33. MEGAMENÚ SERVICIOS — rediseño premium ── */

/* Eliminar el gap entre trigger y panel para evitar cierre accidental */
.nav-dropdown-panel {
  top: 100% !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(-6px) !important;
  min-width: 760px !important;
  padding: 0 !important;
  background: #060f1e !important;
  border: 1px solid rgba(201,168,78,.22) !important;
  border-top: 2px solid var(--color-gold) !important;
  border-radius: 0 0 16px 16px !important;
  box-shadow: 0 24px 72px rgba(0,0,0,.65), 0 6px 24px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.04) !important;
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease !important;
}

/* Arrow caret apuntando al trigger */
.nav-dropdown-panel::before {
  content: '' !important;
  position: absolute !important;
  top: -9px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 0 !important;
  height: 0 !important;
  border-left: 8px solid transparent !important;
  border-right: 8px solid transparent !important;
  border-bottom: 8px solid var(--color-gold) !important;
  z-index: 2 !important;
}

/* Slide + fade al aparecer */
.nav-item-dropdown:hover .nav-dropdown-panel,
.nav-item-dropdown:focus-within .nav-dropdown-panel,
.nav-item-dropdown.is-open .nav-dropdown-panel {
  transform: translateX(-50%) translateY(0) !important;
}

/* Área superior del panel: header sutil */
.dropdown-cols {
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: var(--space-6) var(--space-6) var(--space-5) !important;
}

/* Columnas con separador vertical */
.dropdown-col {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-1) !important;
  padding: 0 var(--space-5) !important;
  border-right: 1px solid rgba(255,255,255,.06) !important;
}
.dropdown-col:first-child { padding-left: 0 !important; }
.dropdown-col:last-child  { padding-right: 0 !important; border-right: none !important; }

/* Título de categoría */
.dropdown-col-title {
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--color-gold) !important;
  opacity: 0.75 !important;
  padding-bottom: var(--space-3) !important;
  margin-bottom: var(--space-2) !important;
  border-bottom: 1px solid rgba(201,168,78,.15) !important;
}

/* Cada enlace del dropdown */
.dropdown-link {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  padding: 7px 10px !important;
  border-radius: 6px !important;
  border-left: 2px solid transparent !important;
  text-decoration: none !important;
  transition: background 0.14s ease, border-color 0.14s ease !important;
}
.dropdown-link strong {
  display: block !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: rgba(255,255,255,.85) !important;
  line-height: 1.35 !important;
  transition: color 0.14s ease !important;
}
.dropdown-link span {
  display: block !important;
  font-size: 11px !important;
  color: rgba(255,255,255,.38) !important;
  line-height: 1.3 !important;
  transition: color 0.14s ease !important;
}
.dropdown-link:hover {
  background: rgba(201,168,78,.09) !important;
  border-left-color: var(--color-gold) !important;
}
.dropdown-link:hover strong { color: var(--color-gold-soft) !important; }
.dropdown-link:hover span  { color: rgba(255,255,255,.6) !important; }

/* Footer del dropdown */
.dropdown-footer {
  border-top: 1px solid rgba(255,255,255,.07) !important;
  padding: var(--space-4) var(--space-6) !important;
  text-align: center !important;
  background: rgba(255,255,255,.02) !important;
  margin: 0 !important;
}
.dropdown-all {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--color-gold-muted) !important;
  transition: color 0.14s ease, gap 0.14s ease !important;
  text-decoration: none !important;
}
.dropdown-all:hover {
  color: var(--color-gold-soft) !important;
  gap: 10px !important;
}

/* Trigger activo cuando dropdown está abierto */
.nav-item-dropdown.is-open > .nav-link,
.nav-item-dropdown:hover > .nav-link {
  color: var(--color-white) !important;
  background: rgba(255,255,255,.08) !important;
}
.nav-item-dropdown.is-open > .nav-link .nav-arrow,
.nav-item-dropdown:hover > .nav-link .nav-arrow {
  transform: rotate(180deg) !important;
}

/* Mobile: override del megamenú para mantener el estilo del panel lateral */
@media (max-width: 1023px) {
  .nav-dropdown-panel {
    top: auto !important;
    left: auto !important;
    transform: none !important;
    min-width: 0 !important;
    border: none !important;
    border-top: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    padding: 0 !important;
    background: transparent !important;
  }
  .nav-dropdown-panel::before { display: none !important; }
  .nav-item-dropdown.is-open .nav-dropdown-panel,
  .nav-item-dropdown:hover .nav-dropdown-panel,
  .nav-item-dropdown:focus-within .nav-dropdown-panel {
    transform: none !important;
  }
  .dropdown-cols {
    padding: 0 0 var(--space-2) var(--space-5) !important;
    grid-template-columns: 1fr !important;
  }
  .dropdown-col {
    padding: 0 !important;
    border-right: none !important;
    gap: 0 !important;
  }
  .dropdown-col-title { display: none !important; }
  .dropdown-link {
    border-left: none !important;
    border-radius: 0 !important;
    padding: var(--space-3) var(--space-3) !important;
    border-bottom: 1px solid rgba(255,255,255,.04) !important;
  }
  .dropdown-link:hover { background: rgba(255,255,255,.05) !important; }
  .dropdown-footer {
    background: transparent !important;
    border-top: none !important;
    padding: var(--space-2) var(--space-3) !important;
    text-align: left !important;
  }
}

/* ── 33b. MEGAMENÚ MÓVIL — submenú "Servicios" premium y compacto ── */
@media (max-width: 1023px) {
  /* Despliegue del panel dentro del menú móvil, sin recortes de altura */
  .site-nav.nav-open .nav-dropdown-panel {
    display: none !important;
    position: static !important;
    max-height: none !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  .site-nav.nav-open .nav-item-dropdown.is-open .nav-dropdown-panel {
    display: block !important;
    animation: dropdownPanelReveal .25s ease !important;
  }
  @keyframes dropdownPanelReveal {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  /* Lista vertical agrupada por categoría, con guía lateral dorada */
  .site-nav.nav-open .dropdown-cols {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: var(--space-1) 0 var(--space-2) var(--space-3) !important;
    padding: var(--space-1) 0 var(--space-2) var(--space-4) !important;
    border-left: 1px solid rgba(201,168,78,.18) !important;
  }
  .site-nav.nav-open .dropdown-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
    padding: 0 !important;
    border-right: none !important;
  }

  /* Etiquetas de categoría: visibles, discretas y en mayúsculas */
  .site-nav.nav-open .dropdown-col-title {
    display: block !important;
    font-size: 9.5px !important;
    font-weight: 800 !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
    color: var(--color-gold-muted) !important;
    opacity: .8 !important;
    margin: var(--space-3) 0 6px 2px !important;
    padding: 0 !important;
    border-bottom: none !important;
  }
  .site-nav.nav-open .dropdown-col:first-child .dropdown-col-title { margin-top: 2px !important; }

  /* Enlaces: fila compacta, con indicador de punto y texto legible */
  .site-nav.nav-open .dropdown-link {
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
    position: relative !important;
    padding: 8px var(--space-2) 8px var(--space-4) !important;
    border-radius: var(--radius-md) !important;
    border: none !important;
    transition: background .14s ease !important;
  }
  .site-nav.nav-open .dropdown-link::before {
    content: '' !important;
    position: absolute !important;
    left: 2px !important;
    top: 16px !important;
    width: 4px !important;
    height: 4px !important;
    border-radius: 50% !important;
    background: rgba(201,168,78,.4) !important;
    transition: background .14s ease, transform .14s ease !important;
  }
  .site-nav.nav-open .dropdown-link strong {
    font-size: 13.5px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,.9) !important;
    line-height: 1.3 !important;
  }
  .site-nav.nav-open .dropdown-link span {
    font-size: 11.5px !important;
    color: rgba(255,255,255,.5) !important;
    line-height: 1.3 !important;
  }
  .site-nav.nav-open .dropdown-link:active,
  .site-nav.nav-open .dropdown-link:focus-visible {
    background: rgba(201,168,78,.08) !important;
  }
  .site-nav.nav-open .dropdown-link:active::before,
  .site-nav.nav-open .dropdown-link:focus-visible::before {
    background: var(--color-gold) !important;
    transform: scale(1.6) !important;
  }

  /* "Ver todos los servicios", alineado con la lista */
  .site-nav.nav-open .dropdown-footer {
    margin: 0 0 0 var(--space-3) !important;
    padding: var(--space-2) 0 var(--space-1) var(--space-4) !important;
    border-top: none !important;
    background: transparent !important;
    text-align: left !important;
  }
  .site-nav.nav-open .dropdown-all {
    font-size: 11px !important;
    letter-spacing: .08em !important;
  }
}

/* ── 34. NUESTRA DIFERENCIA — grid 3 columnas, layout compacto ── */

/* Confianza usa fondo blanco para diferenciarse visualmente de la sección Perfil (ivory) que la precede */
section.confianza {
  background: var(--color-white) !important;
}

/* Grid exacto de 3 columnas en desktop */
.confianza-grid {
  grid-template-columns: repeat(3, 1fr) !important;
  gap: var(--space-4) !important;
  margin-top: var(--space-10) !important;
}

/* Card con layout interno: ícono + título en fila, descripción debajo */
.confianza-card {
  display: grid !important;
  grid-template-columns: 36px 1fr !important;
  grid-template-rows: auto auto !important;
  column-gap: var(--space-4) !important;
  row-gap: 6px !important;
  padding: var(--space-5) !important;
  background: var(--color-white) !important;
  border: 1px solid var(--color-border) !important;
  border-left: 3px solid rgba(201,168,78,.45) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: none !important;
  transition: box-shadow 0.18s ease, border-left-color 0.18s ease !important;
}
.confianza-card:hover {
  box-shadow: 0 6px 24px rgba(11,29,56,.08) !important;
  border-left-color: var(--color-gold) !important;
}

/* Ícono: columna 1, fila 1, centrado verticalmente con el título */
.confianza-card .confianza-icon {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  background: rgba(201,168,78,.08) !important;
  border-radius: var(--radius-md) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
}
.confianza-card .confianza-icon svg {
  width: 22px !important;
  height: 22px !important;
}

/* Título: columna 2, fila 1 */
.confianza-card .confianza-titulo {
  grid-column: 2 !important;
  grid-row: 1 !important;
  font-size: var(--fs-base) !important;
  font-weight: 700 !important;
  color: var(--color-navy) !important;
  margin-bottom: 0 !important;
  line-height: 1.3 !important;
  align-self: center !important;
}

/* Descripción: columna 2, fila 2 — alineada debajo del título */
.confianza-card p {
  grid-column: 2 !important;
  grid-row: 2 !important;
  font-size: var(--fs-sm) !important;
  color: var(--color-text) !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}

/* Tablet y mobile: 2 columnas siempre (compacto, evita scroll largo) */
@media (max-width: 1023px) {
  .confianza-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 767px) {
  .confianza-grid { margin-top: var(--space-7) !important; }
}

/* Mobile: tarjeta compacta con ícono sobre el título */
@media (max-width: 639px) {
  .confianza-grid { gap: var(--space-3) !important; }
  .confianza-card {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto !important;
    row-gap: var(--space-2) !important;
    padding: var(--space-4) !important;
  }
  .confianza-card .confianza-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
  }
  .confianza-card .confianza-icon svg { width: 18px !important; height: 18px !important; }
  .confianza-card .confianza-titulo {
    grid-column: 1 !important;
    grid-row: 2 !important;
    font-size: 0.85rem !important;
    line-height: 1.35 !important;
  }
  .confianza-card p {
    grid-column: 1 !important;
    grid-row: 3 !important;
    font-size: 0.78rem !important;
    line-height: 1.55 !important;
  }
}

/* ── 35. NUESTROS SERVICIOS — grid 3 columnas desktop ── */
.servicios-grid {
  grid-template-columns: repeat(3, 1fr) !important;
}
@media (min-width: 640px) and (max-width: 1023px) {
  .servicios-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 639px) {
  .servicios-grid { grid-template-columns: 1fr !important; }
}

/* ── 36. BANDA CTA INTERMEDIA — pico de confianza ── */
.banda-cta {
  background: var(--color-navy);
  border-top: 1px solid rgba(201,168,78,.18);
  border-bottom: 1px solid rgba(201,168,78,.18);
  padding-block: var(--space-8);
}
.banda-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-8);
}
.banda-cta-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-md);
  font-weight: 600;
  color: var(--color-white);
  margin-bottom: var(--space-1);
  line-height: 1.35;
}
.banda-cta-sub {
  font-size: var(--fs-sm);
  color: rgba(255,255,255,.58);
  line-height: 1.5;
}
.banda-cta-sub strong {
  color: var(--color-gold-soft);
  font-weight: 600;
}
@media (max-width: 767px) {
  .banda-cta-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-5);
  }
  .banda-cta-inner .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ── 37. PRECIO — descuento y promo hero ── */

/* Hero promo block */
.hero-promo {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin-top: var(--space-3);
}
.hero-promo-precios {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.hero-promo-antes {
  font-size: var(--fs-sm);
  color: rgba(255,255,255,.45);
  text-decoration: line-through;
  text-decoration-color: rgba(201,168,78,.55);
  font-weight: 400;
}
.hero-promo-ahora {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--color-gold);
  letter-spacing: -.01em;
}
.hero-promo-badge {
  display: inline-block;
  padding: 0.2em 0.65em;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--color-navy);
  background: var(--color-gold);
  border-radius: 2px;
  vertical-align: middle;
  line-height: 1.5;
}
.hero-promo-nota {
  font-size: var(--fs-xs);
  color: rgba(255,255,255,.42);
  margin: 0;
}

/* Pricing card discount display */
.precio-descuento-wrap {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.precio-regular-tachado {
  font-size: var(--fs-sm);
  color: rgba(255,255,255,.38);
  text-decoration: line-through;
  text-decoration-color: rgba(201,168,78,.45);
  font-weight: 400;
}
.precio-tag-lanzamiento {
  display: inline-block;
  padding: 0.18em 0.6em;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--color-navy);
  background: var(--color-gold);
  border-radius: 2px;
  line-height: 1.5;
  white-space: nowrap;
}
.precio-card-header .precio-valor {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-gold);
  letter-spacing: -.02em;
  line-height: 1.1;
}
@media (max-width: 639px) {
  .hero-promo-ahora { font-size: 1.15rem; }
  .precio-card-header .precio-valor { font-size: 1.5rem; }
}

/* ── 38. ARMONÍA COLORIMÉTRICA — HOME ── */

/* 38.A Confianza: separador visual fino sobre el ivory del Perfil */
section.confianza {
  border-top: 1px solid var(--color-border) !important;
}

/* 38.B Precio: fondo navy para tratamiento de pricing premium
   La tarjeta blanca "flota" sobre el oscuro — efecto joyería */
section.precio {
  background: var(--color-navy) !important;
}
section.precio .seccion-kicker {
  color: var(--color-gold-soft) !important;
}
section.precio .seccion-titulo {
  color: var(--color-white) !important;
}
section.precio .precio-nota-legal {
  color: rgba(247,243,234,.48) !important;
}
section.precio .precio-card {
  box-shadow: 0 8px 48px rgba(0,0,0,.38), 0 0 0 1px rgba(201,168,78,.22) !important;
}

/* 38.C CTA Final: ivory para romper el doble-navy (Agendar + CTA Final)
   Cierre cálido y elegante antes del footer oscuro */
section.cta-final {
  background: var(--color-ivory) !important;
}
section.cta-final::before {
  background: radial-gradient(ellipse, rgba(201,168,78,.1), transparent 70%) !important;
}
section.cta-final .seccion-kicker {
  color: var(--color-gold-muted) !important;
}
section.cta-final .cta-final-headline {
  color: var(--color-navy) !important;
}
section.cta-final .cta-final-headline em {
  color: var(--color-gold-muted) !important;
}
section.cta-final .cta-final-sub {
  color: var(--color-text) !important;
}
section.cta-final .cta-final-nota {
  color: rgba(73,81,90,.55) !important;
}
/* Botón outline: adaptar del blanco al navy para fondo claro */
section.cta-final .btn-outline-light {
  border-color: var(--color-navy) !important;
  color: var(--color-navy) !important;
  background: transparent !important;
}
section.cta-final .btn-outline-light:hover,
section.cta-final .btn-outline-light:focus-visible {
  background: var(--color-navy) !important;
  color: var(--color-white) !important;
}

/* ---------------------------------------------------------
   38.D ARMONÍA COLORIMÉTRICA — HOME (continuación)
   Rompe los tramos repetidos de tono y crea momentos de
   contraste deliberados a lo largo del scroll completo:
   - Problema: pasa de navy a ivory (respiro tras el Hero oscuro)
   - Situaciones: tono "arena" propio entre dos ivory (Problema/Elegibilidad)
   - Asesoría: blanco puro, distinto del marfil/ivory circundante
   - Perfil: navy — segundo momento oscuro consecutivo con Proceso,
     pero con gradiente propio, brillo dorado y borde superior dorado
     para marcar el cambio de sección
   - Banda CTA: dorado — "spotlight" entre dos secciones navy
     (Perfil/Confianza y Precio)
   - FAQ: tono "arena" — único tramo claro entre Precio y Agendar (ambos navy)
   --------------------------------------------------------- */

/* Problema: de navy a ivory */
section#problema.problema {
  background: var(--color-ivory) !important;
}
section#problema .seccion-kicker {
  color: var(--color-gold-muted) !important;
}
section#problema .seccion-titulo {
  color: var(--color-navy) !important;
}
section#problema .problema-lead {
  color: var(--color-text) !important;
}
section#problema .problema-lista li {
  color: var(--color-text) !important;
}
section#problema blockquote.problema-quote {
  color: var(--color-navy) !important;
}

/* Situaciones: tono arena cálido propio, entre dos ivory */
section#situaciones.home-situaciones {
  background: var(--color-sand) !important;
  border-top: 1px solid var(--color-border) !important;
  border-bottom: 1px solid var(--color-border) !important;
}

/* Asesoría: blanco puro, distinto del ivory que la rodea */
section#asesoria.asesoria {
  background: var(--color-white) !important;
  border-top: 1px solid var(--color-border) !important;
}

/* Perfil: navy — momento de autoridad antes de Confianza */
section#perfil.perfil {
  background: linear-gradient(160deg, var(--color-navy) 0%, var(--color-navy-deep) 100%) !important;
  border-top: 1px solid rgba(201,168,78,.15) !important;
  position: relative !important;
  overflow: hidden !important;
}
section#perfil.perfil::before {
  content: '';
  position: absolute;
  top: -25%;
  right: -10%;
  width: 55%;
  height: 150%;
  background: radial-gradient(ellipse, rgba(201,168,78,.08) 0%, transparent 65%);
  pointer-events: none;
}
section#perfil .seccion-kicker {
  color: var(--color-gold-soft) !important;
}
section#perfil .seccion-titulo {
  color: var(--color-white) !important;
}
section#perfil .perfil-cargo {
  color: var(--color-gold-soft) !important;
}
section#perfil .perfil-bio {
  color: rgba(247,243,234,.75) !important;
}
section#perfil .perfil-datos-wrap {
  border-top-color: rgba(255,255,255,.12) !important;
}
section#perfil .dato-titulo {
  color: var(--color-gold-soft) !important;
}
section#perfil .dato-valor {
  color: rgba(247,243,234,.8) !important;
}
section#perfil .perfil-credencial {
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(201,168,78,.22) !important;
}
section#perfil .credencial-label {
  color: var(--color-gold-soft) !important;
}

/* Banda CTA: dorado — spotlight entre Confianza (blanco) y Precio (navy) */
section.banda-cta {
  background: linear-gradient(135deg, var(--color-gold) 0%, var(--color-gold-soft) 100%) !important;
  border-top: 1px solid rgba(11,29,56,.12) !important;
  border-bottom: 1px solid rgba(11,29,56,.12) !important;
}
section.banda-cta .banda-cta-titulo {
  color: var(--color-navy) !important;
}
section.banda-cta .banda-cta-sub {
  color: rgba(11,29,56,.62) !important;
}
section.banda-cta .banda-cta-sub strong {
  color: var(--color-navy) !important;
}
section.banda-cta .btn-gold {
  background: var(--color-navy) !important;
  color: var(--color-white) !important;
  border-color: var(--color-navy) !important;
}
section.banda-cta .btn-gold:hover,
section.banda-cta .btn-gold:focus-visible {
  background: var(--color-navy-mid) !important;
  border-color: var(--color-navy-mid) !important;
  box-shadow: 0 6px 24px rgba(11,29,56,.3) !important;
}

/* FAQ: tono arena — respiro claro entre Precio y Agendar (ambas navy) */
section#faq.faq {
  background: var(--color-sand) !important;
}

/* =========================================================
   39. FAQ PAGE — nav bar, categories, accordion, callouts
   ========================================================= */

/* ---------------------------------------------------------
   39.1 Sticky category nav bar
   --------------------------------------------------------- */
.faq-nav-bar {
  position: sticky;
  top: 64px;
  z-index: 90;
  background: var(--color-white);
  border-bottom: 1px solid var(--color-border);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.faq-nav-bar::-webkit-scrollbar { display: none; }
.faq-nav-bar .container {
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
}

.faq-nav-chips {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: nowrap;
  min-width: max-content;
}

.faq-nav-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0.42em 1em;
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-text);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: 100px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.18s, color 0.18s, border-color 0.18s, box-shadow 0.18s;
}
.faq-nav-chip svg {
  flex-shrink: 0;
  color: var(--color-gold-muted);
  transition: color 0.18s;
}
.faq-nav-chip:hover,
.faq-nav-chip:focus-visible {
  background: var(--color-ivory-deep);
  border-color: var(--color-gold);
  color: var(--color-navy);
  outline: none;
  box-shadow: 0 0 0 2px rgba(201,168,78,.25);
}
.faq-nav-chip:hover svg,
.faq-nav-chip:focus-visible svg {
  color: var(--color-gold);
}
.faq-nav-chip.active {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: var(--color-white);
}
.faq-nav-chip.active svg { color: var(--color-gold); }

/* ---------------------------------------------------------
   39.2 FAQ page section
   --------------------------------------------------------- */
section.faq-page {
  background: var(--color-white) !important;
  padding-top: var(--space-12) !important;
  padding-bottom: var(--space-16) !important;
}

.faq-categorias {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

/* ---------------------------------------------------------
   39.3 Category header
   --------------------------------------------------------- */
.faq-categoria {
  scroll-margin-top: 140px;
}

.faq-categoria-header {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding-bottom: var(--space-5);
  margin-bottom: var(--space-6);
  border-bottom: 2px solid var(--color-ivory-deep);
  position: relative;
}
.faq-categoria-header::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 48px;
  height: 2px;
  background: var(--color-gold);
  border-radius: 2px;
}

.faq-categoria-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: rgba(201,168,78,.1);
  border: 1px solid rgba(201,168,78,.25);
  border-radius: 10px;
  flex-shrink: 0;
  color: var(--color-gold-muted);
}
.faq-categoria-icon svg { display: block; }

.faq-categoria-meta { flex: 1; min-width: 0; }

.faq-categoria-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 var(--space-1) 0;
  padding-top: 0 !important;
}
/* Override any ::before / ::after from old .faq-categoria-titulo rules */
.faq-page .faq-categoria-titulo::before,
.faq-page .faq-categoria-titulo::after { display: none !important; }

.faq-categoria-desc {
  font-size: var(--fs-sm);
  color: var(--color-text);
  margin: 0;
  opacity: 0.75;
}

.faq-categoria-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--color-gold-muted);
  background: rgba(201,168,78,.1);
  border: 1px solid rgba(201,168,78,.22);
  border-radius: 100px;
  flex-shrink: 0;
  margin-top: 6px;
}

/* ---------------------------------------------------------
   39.4 FAQ list & item cards
   --------------------------------------------------------- */
.faq-page .faq-lista {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  border: none !important;
  padding: 0 !important;
}

.faq-page .faq-item {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.faq-page .faq-item:hover {
  border-color: rgba(201,168,78,.45);
  box-shadow: 0 2px 16px rgba(11,29,56,.06);
}
.faq-page .faq-item.abierto {
  border-color: var(--color-gold);
  box-shadow: 0 4px 24px rgba(11,29,56,.09);
}

/* ---------------------------------------------------------
   39.5 Question button
   --------------------------------------------------------- */
.faq-page .faq-pregunta {
  width: 100%;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s;
}
.faq-page .faq-pregunta:hover,
.faq-page .faq-item.abierto .faq-pregunta {
  background: rgba(201,168,78,.05) !important;
}

.faq-pregunta-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 700;
  color: rgba(73,81,90,.5);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: 50%;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.faq-item.abierto .faq-pregunta-num {
  background: var(--color-gold);
  color: var(--color-navy);
  border-color: var(--color-gold);
}

.faq-pregunta-texto {
  flex: 1;
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  font-weight: 600;
  color: var(--color-navy);
  line-height: 1.45;
}

.faq-page .faq-arrow {
  flex-shrink: 0;
  color: var(--color-gold-muted);
  transition: transform 0.28s ease, color 0.2s;
}
.faq-page .faq-item.abierto .faq-arrow {
  transform: rotate(180deg);
  color: var(--color-gold);
}

/* ---------------------------------------------------------
   39.6 Smooth accordion — CSS grid-template-rows trick
   --------------------------------------------------------- */
.faq-page .faq-respuesta {
  display: grid !important;
  grid-template-rows: 0fr !important;
  transition: grid-template-rows 0.28s ease !important;
  padding: 0 !important;
  background: transparent !important;
  border-top: none !important;
}
/* Keep hidden attribute from blocking grid display */
.faq-page .faq-respuesta[hidden] {
  display: grid !important;
}
.faq-page .faq-respuesta-inner {
  overflow: hidden !important;
  min-height: 0 !important;
}
.faq-page .faq-item.abierto .faq-respuesta {
  grid-template-rows: 1fr !important;
}

.faq-page .faq-respuesta-inner {
  background: var(--color-ivory);
  border-top: 1px solid var(--color-border);
  padding: var(--space-5) var(--space-5) var(--space-5) calc(var(--space-5) + 28px + var(--space-3));
}
.faq-page .faq-respuesta-inner p {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.8;
  margin: 0 0 var(--space-3) 0;
}
.faq-page .faq-respuesta-inner p:last-child { margin-bottom: 0; }
.faq-page .faq-respuesta-inner ul {
  padding-left: var(--space-5);
  margin: 0 0 var(--space-3) 0;
}
.faq-page .faq-respuesta-inner li {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.75;
  margin-bottom: var(--space-1);
}
.faq-page .faq-respuesta-inner strong {
  color: var(--color-navy);
}

/* ---------------------------------------------------------
   39.7 Callout box inside answers
   --------------------------------------------------------- */
.faq-nota-callout {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4);
  margin-top: var(--space-3);
  background: rgba(11,29,56,.04);
  border-left: 3px solid var(--color-gold);
  border-radius: 0 6px 6px 0;
}
.faq-nota-callout-icon {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--color-gold-muted);
}
.faq-nota-callout-text {
  font-size: var(--fs-sm) !important;
  color: var(--color-navy) !important;
  margin: 0 !important;
  line-height: 1.65 !important;
}
.faq-nota-callout-text strong {
  color: var(--color-navy) !important;
}

/* ---------------------------------------------------------
   39.8 Mobile responsive
   --------------------------------------------------------- */
@media (max-width: 767px) {
  .faq-nav-bar { top: 56px; overflow-x: visible; }
  .faq-nav-chips {
    flex-wrap: wrap;
    min-width: 0;
    justify-content: center;
  }
  .faq-nav-chip {
    font-size: 0.75rem;
    padding: 0.36em 0.75em;
  }

  .faq-categorias { gap: var(--space-12); }

  .faq-categoria-header {
    gap: var(--space-3);
    padding-bottom: var(--space-4);
    margin-bottom: var(--space-4);
  }
  .faq-categoria-icon {
    width: 38px;
    height: 38px;
  }
  .faq-categoria-titulo { font-size: var(--fs-lg); }

  .faq-page .faq-pregunta {
    padding: var(--space-3) var(--space-4);
    gap: var(--space-2);
  }
  .faq-pregunta-num {
    width: 24px;
    height: 24px;
    font-size: 0.65rem;
  }
  .faq-pregunta-texto { font-size: 0.9rem; }

  .faq-page .faq-respuesta-inner {
    padding: var(--space-4) var(--space-4) var(--space-4) var(--space-4);
  }
  .faq-page .faq-respuesta-inner p,
  .faq-page .faq-respuesta-inner li { font-size: 0.9rem; }
}

@media (max-width: 479px) {
  .faq-categoria-icon { display: none; }
  .faq-categoria-header { gap: var(--space-2); }
  .faq-pregunta-num { display: none; }
  .faq-page .faq-respuesta-inner {
    padding: var(--space-3);
  }
}

/* =========================================================
   40. PROCESO PAGE v2 — hero, timeline, prep, compromisos,
       después, faq-v2, aclaración positiva
   ========================================================= */

/* 40.1 Hero additions */
.proceso-hero { padding-bottom: var(--space-14) !important; }

.proceso-hero-stepper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-top: var(--space-10);
  margin-bottom: var(--space-8);
}
.proceso-hero-step-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
}
.proceso-hero-step-circle {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(201,168,78,.12);
  border: 1.5px solid rgba(201,168,78,.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--color-gold);
  letter-spacing: .03em;
}
.proceso-hero-step-label {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 500;
  color: rgba(247,243,234,.55);
  white-space: nowrap;
}
.proceso-hero-step-line {
  flex: 1;
  min-width: 24px;
  max-width: 80px;
  height: 1px;
  background: linear-gradient(90deg, rgba(201,168,78,.35), rgba(201,168,78,.15));
  margin-bottom: calc(var(--space-2) + 0.68rem * 1.4);
}

.proceso-hero-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid rgba(201,168,78,.18);
}
.proceso-hero-stat { text-align: center; }
.proceso-hero-stat-val {
  display: block;
  font-family: var(--font-sans);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--color-gold);
  line-height: 1.2;
}
.proceso-hero-stat-lbl {
  display: block;
  font-size: 0.72rem;
  color: rgba(247,243,234,.5);
  margin-top: 2px;
}
.proceso-hero-stat-sep {
  width: 1px;
  height: 32px;
  background: rgba(201,168,78,.2);
}

/* 40.2 Timeline section */
.proceso-main {
  background: var(--color-white) !important;
  padding-block: var(--space-20) !important;
}
.proceso-main-header {
  max-width: 680px;
  margin: 0 auto var(--space-14);
  text-align: center;
}

.proceso-timeline-v2 {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.proceso-step {
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: var(--space-6);
  align-items: start;
}
.proceso-step + .proceso-step { margin-top: 0; }

.proceso-step-spine {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 4px;
  height: 100%;
}
.proceso-step-num-wrap {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--color-navy);
  border: 2px solid var(--color-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  transition: background 0.2s, box-shadow 0.2s;
}
.proceso-step-num-wrap--featured {
  background: var(--color-gold) !important;
  border-color: var(--color-gold) !important;
  box-shadow: 0 0 0 4px rgba(201,168,78,.2);
}
.proceso-step-num-wrap--featured .proceso-step-num { color: var(--color-navy) !important; }
.proceso-step-num-wrap--final {
  border-color: var(--color-gold-soft);
}
.proceso-step-num {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--color-gold);
  letter-spacing: .04em;
}
.proceso-step-connector {
  width: 2px;
  flex: 1;
  min-height: 32px;
  background: linear-gradient(180deg, var(--color-gold) 0%, rgba(201,168,78,.12) 100%);
  margin-top: var(--space-2);
}

.proceso-step-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: var(--space-6) var(--space-7);
  margin-bottom: var(--space-6);
  box-shadow: 0 2px 12px rgba(11,29,56,.05);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.proceso-step-card:hover {
  border-color: rgba(201,168,78,.4);
  box-shadow: 0 4px 24px rgba(11,29,56,.08);
}
.proceso-step-card--featured {
  border-color: rgba(201,168,78,.5) !important;
  background: linear-gradient(135deg, var(--color-white) 0%, rgba(201,168,78,.03) 100%) !important;
  box-shadow: 0 4px 24px rgba(11,29,56,.08), 0 0 0 1px rgba(201,168,78,.2) !important;
}

.proceso-step-heading {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.proceso-step-icon-wrap {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: rgba(201,168,78,.1);
  border: 1px solid rgba(201,168,78,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-gold-muted);
}
.proceso-step-icon-wrap--featured {
  background: rgba(201,168,78,.18) !important;
  border-color: rgba(201,168,78,.4) !important;
  color: var(--color-gold) !important;
}

/* Override existing margins inside new timeline */
.proceso-timeline-v2 .proceso-paso-titulo {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--color-navy);
  margin: 0;
}
.proceso-timeline-v2 .proceso-paso-desc {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.78;
  max-width: none;
  margin: 0 0 var(--space-4) 0;
}

.proceso-step-includes {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-4) 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.proceso-step-includes li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.6;
}
.proceso-step-includes li::before {
  content: '';
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 1px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8l3 3 7-7' stroke='%23C9A84E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.proceso-step-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}
.proceso-step-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0.3em 0.8em;
  font-family: var(--font-sans);
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--color-navy);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: 100px;
}
.proceso-step-chip--gold {
  background: rgba(201,168,78,.12) !important;
  border-color: rgba(201,168,78,.3) !important;
  color: var(--color-navy) !important;
}

/* 40.3 Preparación */
.proceso-prep {
  background: var(--color-ivory) !important;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding-block: var(--space-20) !important;
}
.proceso-prep-header {
  max-width: 620px;
  margin: 0 auto var(--space-10);
  text-align: center;
}
.proceso-prep-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
}
.proceso-prep-item {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.proceso-prep-item:hover {
  border-color: rgba(201,168,78,.4);
  box-shadow: 0 2px 16px rgba(11,29,56,.06);
}
.proceso-prep-item-icon {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: rgba(201,168,78,.1);
  border: 1px solid rgba(201,168,78,.18);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-gold-muted);
  flex-shrink: 0;
}
.proceso-prep-item h3 {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-navy);
  margin: 0;
  line-height: 1.35;
}
.proceso-prep-item p {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.65;
  margin: 0;
  flex: 1;
}
.proceso-prep-item-tag {
  display: inline-block;
  padding: 0.18em 0.6em;
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: .04em;
  border-radius: 4px;
  align-self: flex-start;
}
.proceso-prep-item-tag--esencial {
  background: var(--color-navy);
  color: var(--color-gold);
}
.proceso-prep-item-tag--importante {
  background: var(--color-ivory-deep);
  color: var(--color-navy);
}
.proceso-prep-item-tag--opcional {
  background: rgba(73,81,90,.1);
  color: var(--color-text);
}
.proceso-prep-nota {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  margin-top: var(--space-8);
  padding: var(--space-4) var(--space-5);
  background: rgba(11,29,56,.05);
  border-radius: 8px;
  font-size: var(--fs-sm);
  color: var(--color-navy);
  line-height: 1.65;
}

/* 40.4 Compromisos */
.proceso-compromisos {
  background: var(--color-white) !important;
  padding-block: var(--space-20) !important;
}
.proceso-compromisos-header {
  max-width: 620px;
  margin: 0 auto var(--space-10);
  text-align: center;
}
.proceso-compromisos-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
}
.proceso-compromisos-card {
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: var(--space-7);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.proceso-compromisos-card:hover {
  border-color: rgba(201,168,78,.4);
  box-shadow: 0 4px 20px rgba(11,29,56,.07);
}
.proceso-compromisos-card-icon {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  background: rgba(201,168,78,.1);
  border: 1px solid rgba(201,168,78,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-gold-muted);
  flex-shrink: 0;
}
.proceso-compromisos-card h3 {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-navy);
  margin: 0;
}
.proceso-compromisos-card p {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.75;
  margin: 0;
}

/* 40.5 Después */
.proceso-despues {
  background: var(--color-navy-deep) !important;
  padding-block: var(--space-20) !important;
  position: relative;
  overflow: hidden;
}
.proceso-despues::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(201,168,78,.06), transparent 65%);
  pointer-events: none;
}
.proceso-despues-header {
  max-width: 620px;
  margin: 0 auto var(--space-10);
  text-align: center;
  position: relative;
}
.proceso-despues-sub {
  font-size: var(--fs-md);
  color: rgba(247,243,234,.6);
  text-align: center;
  max-width: 560px;
  margin: var(--space-3) auto 0;
  line-height: 1.7;
}
.proceso-despues-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  position: relative;
}
.proceso-despues-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(201,168,78,.18);
  border-radius: 12px;
  padding: var(--space-7);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  transition: background 0.2s, border-color 0.2s;
}
.proceso-despues-card:hover {
  background: rgba(255,255,255,.07);
  border-color: rgba(201,168,78,.35);
}
.proceso-despues-card--highlight {
  background: rgba(201,168,78,.08) !important;
  border-color: rgba(201,168,78,.35) !important;
}
.proceso-despues-card-icon {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  background: rgba(201,168,78,.12);
  border: 1px solid rgba(201,168,78,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-gold);
  flex-shrink: 0;
}
.proceso-despues-card h3 {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-ivory);
  margin: 0;
}
.proceso-despues-card p {
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.65);
  line-height: 1.75;
  margin: 0;
  flex: 1;
}
.proceso-despues-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--color-gold);
  text-decoration: none;
  margin-top: auto;
  transition: gap 0.15s;
}
.proceso-despues-link:hover { gap: var(--space-2); }
.proceso-despues-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-12);
  position: relative;
}
.proceso-despues-cta-nota {
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.45);
  margin: 0;
}

/* 40.6 FAQ v2 (proceso) */
.proceso-faq-v2 {
  background: var(--color-white) !important;
  border-top: 1px solid var(--color-border);
  padding-block: var(--space-16) !important;
}
.proceso-faq-v2 .faq-lista {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  border: none !important;
  padding: var(--space-8) 0 0 !important;
}
.proceso-faq-v2 .faq-item {
  background: var(--color-white);
  border: 1px solid var(--color-border) !important;
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.proceso-faq-v2 .faq-item:hover {
  border-color: rgba(201,168,78,.4) !important;
  box-shadow: 0 2px 16px rgba(11,29,56,.06);
}
.proceso-faq-v2 .faq-item.abierto {
  border-color: var(--color-gold) !important;
  box-shadow: 0 4px 20px rgba(11,29,56,.08);
}
.proceso-faq-v2 .faq-pregunta {
  width: 100%;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-6);
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  text-align: left;
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  font-weight: 600;
  color: var(--color-navy);
  cursor: pointer;
  transition: background 0.15s;
}
.proceso-faq-v2 .faq-pregunta:hover,
.proceso-faq-v2 .faq-item.abierto .faq-pregunta {
  background: rgba(201,168,78,.04) !important;
}
.proceso-faq-v2 .faq-pregunta span { flex: 1; }
.proceso-faq-v2 .faq-arrow {
  flex-shrink: 0;
  color: var(--color-gold-muted);
  transition: transform 0.28s ease, color 0.2s;
}
.proceso-faq-v2 .faq-item.abierto .faq-arrow {
  transform: rotate(180deg);
  color: var(--color-gold);
}
/* Acordeon: estado cerrado muestra una linea de preview legible y completa */
.proceso-faq-v2 .faq-respuesta {
  display: block;
  max-height: calc(var(--space-4) + 1.8em + var(--space-4));
  overflow: hidden;
  transition: max-height 0.32s ease;
  background: var(--color-ivory);
  border-top: 1px solid var(--color-border);
}
.proceso-faq-v2 .faq-item.abierto .faq-respuesta {
  max-height: 600px;
}
.proceso-faq-v2 .faq-respuesta-inner {
  padding: var(--space-4) var(--space-6);
}
.proceso-faq-v2 .faq-respuesta-inner p {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.8;
  margin: 0 0 var(--space-3) 0;
}
.proceso-faq-v2 .faq-respuesta-inner p:last-child { margin-bottom: 0; }
.proceso-faq-link {
  margin-top: var(--space-8);
  text-align: center;
  font-size: var(--fs-sm);
  color: var(--color-text);
}
.proceso-faq-link a {
  color: var(--color-navy);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(201,168,78,.5);
  text-underline-offset: 3px;
}
.proceso-faq-link a:hover { text-decoration-color: var(--color-gold); }

/* 40.7 Positive reframe box (replaces negative "no incluye" blocks) */
.aclaracion-box {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  background: rgba(201,168,78,.06);
  border-left: 3px solid rgba(201,168,78,.45);
  border-radius: 0 6px 6px 0;
  font-size: var(--fs-sm);
  color: var(--color-navy);
  line-height: 1.7;
}

/* 40.8 Responsive */
@media (max-width: 1023px) {
  .proceso-prep-grid { grid-template-columns: repeat(2, 1fr); }
  .proceso-despues-grid { grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
}
@media (max-width: 767px) {
  /* Compact section rhythm on mobile */
  .proceso-main, .proceso-prep, .proceso-compromisos, .proceso-despues, .proceso-faq-v2 {
    padding-block: var(--space-12) !important;
  }
  .proceso-main-header,
  .proceso-prep-header,
  .proceso-compromisos-header,
  .proceso-despues-header {
    margin: 0 auto var(--space-8);
  }

  .proceso-hero-stepper { gap: 0; }
  .proceso-hero-step-line { min-width: 12px; max-width: 32px; }
  .proceso-hero-step-circle { width: 38px; height: 38px; font-size: 0.7rem; }
  .proceso-hero-stat-sep { display: none; }
  .proceso-hero-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-5) var(--space-3);
    text-align: center;
  }

  .proceso-step { grid-template-columns: 52px 1fr; gap: var(--space-4); }
  .proceso-step-num-wrap { width: 44px; height: 44px; }
  .proceso-step-card { padding: var(--space-5); margin-bottom: var(--space-4); }
  .proceso-timeline-v2 .proceso-paso-titulo { font-size: var(--fs-lg); }
  .proceso-paso-desc { font-size: var(--fs-sm) !important; }
  .proceso-step-includes li { font-size: 0.82rem; }

  .proceso-prep-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
  .proceso-prep-item { padding: var(--space-4); gap: var(--space-2); }
  .proceso-prep-item-icon { width: 32px; height: 32px; }
  .proceso-prep-item-icon svg { width: 16px; height: 16px; }
  .proceso-prep-item h3 { font-size: 0.85rem; line-height: 1.3; }
  .proceso-prep-item p { font-size: 0.78rem; line-height: 1.5; }
  .proceso-prep-item-tag { font-size: 0.62rem; padding: 0.16em 0.5em; }

  .proceso-compromisos-grid { grid-template-columns: 1fr; gap: var(--space-3); }
  .proceso-compromisos-card { padding: var(--space-5); gap: var(--space-2); }
  .proceso-compromisos-card-icon { width: 44px; height: 44px; }
  .proceso-compromisos-card h3 { font-size: var(--fs-base); }
  .proceso-compromisos-card p { font-size: var(--fs-sm); line-height: 1.65; }

  .proceso-despues-grid { grid-template-columns: 1fr; gap: var(--space-3); }
  .proceso-despues-card { padding: var(--space-5); gap: var(--space-2); }
  .proceso-despues-card-icon { width: 44px; height: 44px; }
  .proceso-despues-card h3 { font-size: var(--fs-base); }
  .proceso-despues-card p { font-size: var(--fs-sm); }
  .proceso-despues-cta { margin-top: var(--space-8); }

  .proceso-faq-v2 .faq-pregunta { padding: var(--space-4) var(--space-5); font-size: 0.9rem; }
  .proceso-faq-v2 .faq-respuesta-inner { padding: var(--space-4) var(--space-5); }
}
@media (max-width: 479px) {
  .proceso-hero-step-label { display: none; }
  .proceso-hero-step-line { min-width: 8px; max-width: 20px; }
  .proceso-hero-stat-val { font-size: 1.05rem; }
  .proceso-step { grid-template-columns: 44px 1fr; gap: var(--space-3); }
  .proceso-step-num-wrap { width: 38px; height: 38px; }
  .proceso-step-num { font-size: 0.72rem; }
  .proceso-step-card { padding: var(--space-4); }
  .proceso-step-heading { gap: var(--space-2); }
  .proceso-step-icon-wrap { width: 34px; height: 34px; }
  .proceso-prep-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   41. FAQ PAGE — override-fixes
   Corrige conflictos con reglas globales de alta especificidad
   que rompen el layout de la página /faq/
   ========================================================= */

/* 41.1 Estructura de la página */
section.faq-page {
  padding-top: var(--space-16) !important;
  padding-bottom: var(--space-24) !important;
}
/* FIX PRINCIPAL: .faq-container es el padre real de las .faq-categoria en el HTML
   (no .faq-categorias que no existe). Esto crea el espacio entre categorías. */
.faq-page .faq-container {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-20) !important;
  padding-top: var(--space-6) !important;
}
.faq-page .faq-categorias {
  gap: var(--space-20) !important;
}
.faq-page .faq-categoria {
  scroll-margin-top: 140px !important;
}

/* 41.2 Cabecera de categoría */
.faq-page .faq-categoria-header {
  display: flex !important;
  align-items: flex-start !important;
  gap: var(--space-4) !important;
  padding-bottom: var(--space-6) !important;
  margin-bottom: var(--space-10) !important;
  border-bottom: 2px solid var(--color-ivory-deep) !important;
}
.faq-page .faq-lista {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--space-3) !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* 41.3 Tarjeta de item */
.faq-page .faq-item {
  background: var(--color-white) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}
.faq-page .faq-item:hover {
  border-color: rgba(201,168,78,.45) !important;
  box-shadow: 0 2px 14px rgba(11,29,56,.06) !important;
}
.faq-page .faq-item.abierto {
  border-color: var(--color-gold) !important;
  box-shadow: 0 4px 20px rgba(11,29,56,.08) !important;
}

/* 41.4 Botón pregunta — fix layout completo */
.faq-page .faq-pregunta {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;   /* corrige space-between global */
  gap: var(--space-3) !important;
  padding: var(--space-5) var(--space-6) !important;
  width: 100% !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  text-align: left !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
  font-size: var(--fs-base) !important;
  font-weight: 600 !important;
  color: var(--color-navy) !important;
  line-height: 1.45 !important;
  min-height: unset !important;
}
.faq-page .faq-pregunta:hover {
  background: rgba(201,168,78,.05) !important;
  color: var(--color-navy) !important;
}
.faq-page .faq-item.abierto .faq-pregunta,
.faq-page .faq-pregunta[aria-expanded="true"] {
  background: rgba(201,168,78,.05) !important;
  color: var(--color-navy) !important;
}

/* 41.5 Número de pregunta — FIX CRÍTICO: evita flex:1 del global */
.faq-page .faq-pregunta .faq-pregunta-num {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: none !important;          /* cancela flex:1 del global */
  flex-shrink: 0 !important;
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  max-width: 26px !important;
  border-radius: 50% !important;
  font-family: var(--font-sans) !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  color: rgba(73,81,90,.55) !important;
  background: var(--color-ivory) !important;
  border: 1px solid var(--color-border) !important;
  transition: background 0.2s, color 0.2s, border-color 0.2s !important;
}
.faq-page .faq-item.abierto .faq-pregunta .faq-pregunta-num {
  background: var(--color-gold) !important;
  color: var(--color-navy) !important;
  border-color: var(--color-gold) !important;
}

/* 41.6 Texto de pregunta — debe ocupar el espacio restante */
.faq-page .faq-pregunta .faq-pregunta-texto {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  font-family: var(--font-sans) !important;
  font-size: var(--fs-base) !important;
  font-weight: 600 !important;
  color: var(--color-navy) !important;
  line-height: 1.45 !important;
}

/* 41.7 Flecha */
.faq-page .faq-pregunta .faq-arrow {
  flex-shrink: 0 !important;
  flex: none !important;
  color: var(--color-gold-muted) !important;
  transition: transform 0.28s ease, color 0.2s !important;
}
.faq-page .faq-item.abierto .faq-pregunta .faq-arrow {
  transform: rotate(180deg) !important;
  color: var(--color-gold) !important;
}

/* 41.8 Panel de respuesta — grid trick con padding correcto */
.faq-page .faq-respuesta {
  display: grid !important;
  grid-template-rows: 0fr !important;
  transition: grid-template-rows 0.28s ease !important;
  overflow: hidden !important;
  padding: 0 !important;
  background: transparent !important;
  border-top: none !important;
}
.faq-page .faq-respuesta[hidden] { display: grid !important; }
.faq-page .faq-item.abierto .faq-respuesta { grid-template-rows: 1fr !important; }
.faq-page .faq-respuesta-inner {
  overflow: hidden !important;
  min-height: 0 !important;
  background: var(--color-ivory) !important;
  border-top: 1px solid var(--color-border) !important;
  padding: var(--space-5) var(--space-6) var(--space-10) calc(26px + var(--space-3) + var(--space-5)) !important;
}
.faq-page .faq-respuesta-inner p {
  font-size: var(--fs-base) !important;
  color: var(--color-text) !important;
  line-height: 1.8 !important;
  margin: 0 0 var(--space-3) 0 !important;
}
.faq-page .faq-respuesta-inner p:last-child { margin-bottom: 0 !important; }
.faq-page .faq-respuesta-inner ul {
  padding-left: var(--space-5) !important;
  margin: 0 0 var(--space-3) 0 !important;
}
.faq-page .faq-respuesta-inner li {
  font-size: var(--fs-base) !important;
  color: var(--color-text) !important;
  line-height: 1.75 !important;
  margin-bottom: var(--space-1) !important;
}
.faq-page .faq-respuesta-inner strong { color: var(--color-navy) !important; }

/* 41.9 Callout dentro de respuestas */
.faq-page .faq-nota-callout {
  display: flex !important;
  align-items: flex-start !important;
  gap: var(--space-3) !important;
  padding: var(--space-4) !important;
  margin-top: var(--space-3) !important;
  background: rgba(11,29,56,.04) !important;
  border-left: 3px solid var(--color-gold) !important;
  border-radius: 0 6px 6px 0 !important;
}

/* 41.10 Mobile overrides */
@media (max-width: 767px) {
  .faq-page .faq-container { gap: var(--space-14) !important; padding-top: var(--space-4) !important; }
  .faq-page .faq-categorias { gap: var(--space-14) !important; }
  .faq-page .faq-categoria-header {
    margin-bottom: var(--space-8) !important;
    padding-bottom: var(--space-5) !important;
  }
  .faq-page .faq-lista { gap: var(--space-2) !important; }
  .faq-page .faq-pregunta {
    padding: var(--space-4) var(--space-5) !important;
    gap: var(--space-2) !important;
  }
  .faq-page .faq-pregunta .faq-pregunta-num {
    width: 22px !important; height: 22px !important;
    min-width: 22px !important; max-width: 22px !important;
    font-size: 0.6rem !important;
  }
  .faq-page .faq-pregunta .faq-pregunta-texto { font-size: 0.9rem !important; }
  .faq-page .faq-respuesta-inner {
    padding: var(--space-5) var(--space-5) var(--space-8) var(--space-5) !important;
  }
}
@media (max-width: 479px) {
  .faq-page .faq-container { gap: var(--space-12) !important; }
  .faq-page .faq-pregunta .faq-pregunta-num { display: none !important; }
  .faq-page .faq-respuesta-inner {
    padding: var(--space-4) var(--space-4) var(--space-8) !important;
  }
}

/* =========================================================
   42. SERVICIOS PAGE v2 — pain-first architecture
   ========================================================= */

/* 42.1 Hero additions */
.sv-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-8);
}
.sv-trust-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid rgba(247,243,234,.15);
}
.sv-trust-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 500;
  color: rgba(247,243,234,.72);
  white-space: nowrap;
}
.sv-trust-pill svg { color: var(--color-gold-soft); flex-shrink: 0; }

/* 42.2 Pain point discovery */
.sv-dolor {
  background: var(--color-white);
  padding-block: var(--space-20);
}
.sv-dolor-header {
  max-width: 640px;
  margin: 0 auto var(--space-12);
  text-align: center;
}
.sv-dolor-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
}
.sv-dolor-card {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.18s;
  cursor: pointer;
}
.sv-dolor-card:hover {
  border-color: rgba(201,168,78,.5);
  box-shadow: 0 4px 20px rgba(11,29,56,.08);
  transform: translateY(-2px);
}
.sv-dolor-card--destacado {
  background: var(--color-navy);
  border-color: transparent;
  align-items: center;
}
.sv-dolor-card--destacado:hover {
  border-color: var(--color-gold);
  box-shadow: 0 6px 28px rgba(11,29,56,.2);
}
.sv-dolor-card--destacado .sv-dolor-card-icon {
  background: rgba(201,168,78,.15);
  border-color: rgba(201,168,78,.3);
  color: var(--color-gold);
  width: 52px;
  height: 52px;
  flex-shrink: 0;
}
.sv-dolor-card--destacado .sv-dolor-card-pain {
  color: var(--color-ivory);
  font-size: var(--fs-base);
}
.sv-dolor-card--destacado .sv-dolor-card-servicio {
  color: var(--color-gold);
}
.sv-dolor-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  background: rgba(201,168,78,.08);
  border: 1px solid rgba(201,168,78,.2);
  border-radius: 10px;
  color: var(--color-gold-muted);
  transition: background 0.2s;
}
.sv-dolor-card:hover .sv-dolor-card-icon {
  background: rgba(201,168,78,.14);
}
.sv-dolor-card-body { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }
.sv-dolor-card-pain {
  font-family: var(--font-sans);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--color-navy);
  line-height: 1.5;
  margin: 0;
}
.sv-dolor-card-servicio {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-gold-muted);
  letter-spacing: .02em;
}

/* 42.3 Featured service */
.sv-destacado {
  background: var(--color-ivory);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding-block: var(--space-20);
}
.sv-dest-label {
  display: flex;
  justify-content: center;
  margin-bottom: var(--space-8);
}
.sv-dest-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0.45em 1.1em;
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--color-navy);
  background: rgba(201,168,78,.15);
  border: 1px solid rgba(201,168,78,.3);
  border-radius: 100px;
}
.sv-dest-pill svg { color: var(--color-gold-muted); }
.sv-dest-card {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: var(--space-10);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-gold);
  border-radius: 0 16px 16px 0;
  padding: var(--space-10);
  box-shadow: 0 4px 32px rgba(11,29,56,.07);
}
.sv-dest-head {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}
.sv-dest-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  background: rgba(201,168,78,.1);
  border: 1px solid rgba(201,168,78,.22);
  border-radius: 12px;
  color: var(--color-gold-muted);
}
.sv-dest-titulo {
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 2.2vw, 1.75rem);
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 var(--space-2) 0;
  line-height: 1.2;
}
.sv-dest-subtitulo {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  color: var(--color-text);
  margin: 0;
  line-height: 1.6;
}
.sv-dest-desc {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.8;
  margin: 0 0 var(--space-4) 0;
}
.sv-dest-precio-row {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  margin: var(--space-6) 0;
  padding: var(--space-4) var(--space-5);
  background: rgba(201,168,78,.06);
  border: 1px solid rgba(201,168,78,.2);
  border-radius: 10px;
}
.sv-dest-precio { display: flex; flex-direction: column; gap: 2px; }
.sv-dest-precio-valor {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1;
}
.sv-dest-precio-label {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  color: var(--color-text);
}
.sv-dest-meta {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  color: var(--color-text);
  opacity: 0.8;
  border-left: 1px solid var(--color-border);
  padding-left: var(--space-6);
  line-height: 1.6;
}
.sv-dest-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-2);
}

/* Right column */
.sv-dest-right {
  background: var(--color-ivory);
  border-radius: 10px;
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
.sv-dest-includes-titulo,
.sv-dest-para-ti-titulo {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--color-navy);
  margin: 0 0 var(--space-3) 0;
}
.sv-dest-includes {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.sv-dest-includes li,
.sv-dest-para-ti ul li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.6;
}
.sv-dest-includes li::before,
.sv-dest-para-ti ul li::before {
  content: '';
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 1px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8l3 3 7-7' stroke='%23C9A84E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.sv-dest-para-ti { border-top: 1px solid var(--color-border); padding-top: var(--space-5); }
.sv-dest-para-ti ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-2); }

/* 42.4 Jump nav */
.sv-jump-nav {
  position: sticky;
  top: 64px;
  z-index: 89;
  background: var(--color-white);
  border-bottom: 1px solid var(--color-border);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.sv-jump-nav::-webkit-scrollbar { display: none; }
.sv-jump-nav .container {
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
}
.sv-jump-chips {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: nowrap;
  min-width: max-content;
}
.sv-jump-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0.42em 1em;
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-text);
  background: var(--color-ivory);
  border: 1px solid var(--color-border);
  border-radius: 100px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.18s, color 0.18s, border-color 0.18s;
}
.sv-jump-chip svg { flex-shrink: 0; color: var(--color-gold-muted); }
.sv-jump-chip:hover {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: var(--color-white);
}
.sv-jump-chip:hover svg { color: var(--color-gold); }

/* 42.5 Service families */
.sv-familia {
  background: var(--color-white);
  padding-block: var(--space-20);
  border-bottom: 1px solid var(--color-border);
}
.sv-familia--alt {
  background: var(--color-ivory);
}
.sv-familia-header {
  max-width: 620px;
  margin: 0 auto var(--space-12);
  text-align: center;
}
.sv-familia-titulo {
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.2;
  margin: var(--space-3) 0 var(--space-4) 0;
}
.sv-familia-sub {
  font-size: var(--fs-base);
  color: var(--color-text);
  line-height: 1.7;
  margin: 0;
}
.sv-kicker-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0.3em 0.9em;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  border-radius: 100px;
}
.sv-kicker-pill--plan {
  background: rgba(11,29,56,.08);
  color: var(--color-navy);
  border: 1px solid rgba(11,29,56,.15);
}
.sv-kicker-pill--rec {
  background: rgba(201,168,78,.12);
  color: var(--color-navy);
  border: 1px solid rgba(201,168,78,.25);
}
.sv-kicker-pill--reclam {
  background: rgba(73,81,90,.1);
  color: var(--color-text);
  border: 1px solid rgba(73,81,90,.18);
}

/* 42.6 Service cards */
.sv-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
  align-items: start;
}
.sv-cards-grid--3col {
  grid-template-columns: repeat(3, 1fr);
}
.sv-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.18s;
  height: 100%;
}
.sv-card:hover {
  border-color: rgba(201,168,78,.5);
  box-shadow: 0 6px 28px rgba(11,29,56,.09);
  transform: translateY(-2px);
}
.sv-familia--alt .sv-card {
  background: var(--color-white);
}
.sv-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.sv-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  background: rgba(201,168,78,.08);
  border: 1px solid rgba(201,168,78,.2);
  border-radius: 12px;
  color: var(--color-gold-muted);
}
.sv-card-tag {
  display: inline-block;
  padding: 0.2em 0.65em;
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--color-text);
  background: var(--color-ivory-deep);
  border-radius: 4px;
}
.sv-card-pain {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.35;
  margin: 0;
}
.sv-card-nombre {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-gold-muted);
  margin: 0;
}
.sv-card-desc {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.75;
  margin: 0;
  flex: 1;
}
.sv-card-para-ti {
  background: var(--color-ivory);
  border-radius: 8px;
  padding: var(--space-4);
}
.sv-card-para-ti-label {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--color-navy);
  margin: 0 0 var(--space-3) 0;
}
.sv-card-para-ti ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.sv-card-para-ti ul li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  font-size: 0.82rem;
  color: var(--color-text);
  line-height: 1.55;
}
.sv-card-para-ti ul li::before {
  content: '';
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  margin-top: 2px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8l3 3 7-7' stroke='%23C9A84E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.sv-card-alerta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text);
  padding: var(--space-2) var(--space-3);
  background: rgba(201,168,78,.07);
  border: 1px solid rgba(201,168,78,.2);
  border-radius: 6px;
}
.sv-card-alerta svg { flex-shrink: 0; color: var(--color-gold-muted); }
.sv-card-btn {
  align-self: flex-start;
  margin-top: auto;
}

/* Btn outline for light backgrounds */
.btn-outline {
  background: transparent;
  color: var(--color-navy);
  border: 1.5px solid var(--color-navy);
}
.btn-outline:hover, .btn-outline:focus-visible {
  background: var(--color-navy);
  color: var(--color-gold);
  border-color: var(--color-navy);
}

/* 42.7 Por qué nosotros */
/* Color overrides — seccion-titulo base is navy, needs explicit white on dark bg */
.sv-porque .seccion-titulo,
.sv-porque .seccion-titulo.claro {
  color: var(--color-ivory) !important;
}
.sv-porque .seccion-kicker.claro {
  color: var(--color-gold-soft) !important;
}
.sv-porque {
  background: var(--color-navy-deep);
  padding-block: var(--space-20);
  position: relative;
  overflow: hidden;
}
.sv-porque::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(201,168,78,.07) 0%, transparent 70%);
  pointer-events: none;
}
.sv-porque-header {
  max-width: 580px;
  margin: 0 auto var(--space-14);
  text-align: center;
  position: relative;
}
.sv-porque-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5);
  position: relative;
}
.sv-pillar {
  background: rgba(247,243,234,.04);
  border: 1px solid rgba(247,243,234,.1);
  border-radius: 14px;
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  transition: background 0.2s, border-color 0.2s;
}
.sv-pillar:hover {
  background: rgba(247,243,234,.07);
  border-color: rgba(201,168,78,.3);
}
.sv-pillar-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(201,168,78,.12);
  border: 1px solid rgba(201,168,78,.25);
  border-radius: 12px;
  color: var(--color-gold-soft);
  flex-shrink: 0;
}
.sv-pillar-titulo {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-ivory);
  margin: 0;
  line-height: 1.3;
}
.sv-pillar-desc {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  color: rgba(247,243,234,.65);
  line-height: 1.7;
  margin: 0;
}

/* 42.8 Quick process */
.sv-proceso {
  background: var(--color-ivory);
  border-top: 1px solid var(--color-border);
  padding-block: var(--space-20);
}
.sv-proceso-header {
  max-width: 480px;
  margin: 0 auto var(--space-12);
  text-align: center;
}
.sv-proceso-steps {
  display: flex;
  align-items: flex-start;
  gap: 0;
  max-width: 860px;
  margin: 0 auto;
}
.sv-proceso-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-4);
}
.sv-proceso-line {
  flex: 0 0 80px;
  height: 2px;
  background: linear-gradient(90deg, rgba(201,168,78,.4), rgba(201,168,78,.15));
  margin-top: 23px;
  align-self: flex-start;
}
.sv-proceso-num {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-navy);
  color: var(--color-gold);
  border: 2px solid rgba(201,168,78,.3);
  border-radius: 50%;
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 700;
  flex-shrink: 0;
}
.sv-proceso-titulo {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-navy);
  margin: 0;
}
.sv-proceso-desc {
  font-size: var(--fs-sm);
  color: var(--color-text);
  line-height: 1.7;
  margin: 0;
  max-width: 220px;
}
.sv-proceso-cta {
  display: flex;
  justify-content: center;
  margin-top: var(--space-10);
}

/* 42.9 Responsive */
@media (max-width: 1199px) {
  .sv-dest-card { grid-template-columns: 1fr 320px; }
  .sv-porque-grid { grid-template-columns: repeat(2, 1fr); }
  .sv-cards-grid--3col { grid-template-columns: repeat(2, 1fr); }
  .sv-dolor-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1023px) {
  .sv-dest-card { grid-template-columns: 1fr; }
  .sv-dest-right { order: -1; }
  .sv-cards-grid--3col { grid-template-columns: 1fr 1fr; }
  .sv-proceso-line { flex: 0 0 48px; }
}
@media (max-width: 767px) {
  .sv-hero-actions { flex-direction: column; }
  .sv-hero-actions .btn { width: 100%; text-align: center; justify-content: center; }
  .sv-dolor-grid { grid-template-columns: 1fr; }
  .sv-dolor-card--destacado { grid-column: span 1; }
  .sv-cards-grid,
  .sv-cards-grid--3col { grid-template-columns: 1fr; }
  .sv-porque-grid { grid-template-columns: 1fr; }
  .sv-proceso-steps { flex-direction: column; align-items: center; gap: var(--space-4); }
  .sv-proceso-line { width: 2px; height: 40px; flex: 0 0 40px; margin-top: 0; margin-left: 23px; align-self: auto; background: linear-gradient(180deg, rgba(201,168,78,.4), rgba(201,168,78,.15)); }
  .sv-proceso-step { align-items: flex-start; flex-direction: row; text-align: left; }
  .sv-proceso-desc { max-width: none; }
  .sv-dest-card { padding: var(--space-6); border-left: none; border-top: 4px solid var(--color-gold); border-radius: 0 0 16px 16px; }
  .sv-trust-bar { gap: var(--space-3); }
}
@media (max-width: 479px) {
  .sv-dolor-card { gap: var(--space-3); padding: var(--space-4); }
  .sv-card { padding: var(--space-5); }
  .sv-pillar { padding: var(--space-5); }
}

/* =============================================================
   43. HOME — SITUACIONES (pain-first teaser)
   ============================================================= */
.home-situaciones {
  background: var(--color-ivory-deep);
  padding-block: var(--space-20);
}
.hs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  margin-top: var(--space-12);
}
.hs-cta-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-10);
  text-align: center;
}
.hs-cta-nota {
  font-size: var(--fs-sm);
  color: var(--color-text);
  opacity: 0.65;
}
@media (max-width: 1023px) {
  .hs-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .home-situaciones { padding-block: var(--space-12); }
  .hs-grid { grid-template-columns: 1fr; gap: var(--space-3); margin-top: var(--space-7); }
  .hs-cta-wrap { margin-top: var(--space-7); }
  .hs-grid .sv-dolor-card { padding: var(--space-4); gap: var(--space-3); }
  .hs-grid .sv-dolor-card-icon,
  .hs-grid .sv-dolor-card--destacado .sv-dolor-card-icon { width: 38px; height: 38px; }
  .hs-grid .sv-dolor-card-pain { font-size: 0.85rem; }
}
