/* ==========================================================================
   Ceres Capital · Hoja de estilos
   Sistema visual «El Surco» (manual de marca, junio 2026)
   Layout: alterna fondo blanco con paneles Índigo Noche; escala de 8 px.
   ========================================================================== */

:root {
  /* Paleta de marca */
  --indigo: #16152E;      /* Índigo Noche: base institucional, texto y paneles */
  --lima: #C6F24E;        /* Lima Brote: CTAs y acción */
  --coral: #FF6B4A;       /* Coral: acento de urgencia y confidencialidad */
  --verde: #5B8A2B;       /* Verde Medio: segundo acento */
  --niebla: #E8E9EE;      /* Niebla: fondos de interfaz */
  --blanco: #FFFFFF;

  /* Derivados (neutros con sesgo índigo) */
  --tinta-suave: #4A4963;   /* texto secundario sobre blanco */
  --linea: #D7D8E1;         /* bordes de tarjeta */
  --indigo-2: #22213F;      /* superficie sobre índigo */
  --sobre-indigo: #C9C8DA;  /* texto secundario sobre índigo */

  /* Tipografía */
  --f-display: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;
  --f-body: "Inter", "Helvetica Neue", Arial, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  /* Escala modular de 8 px */
  --s1: 8px; --s2: 16px; --s3: 24px; --s4: 32px; --s5: 48px; --s6: 64px; --s7: 96px;

  /* Radios y sombras del manual */
  --r-card: 14px;
  --r-panel: 22px;
  --r-btn: 40px;
  --sombra: 0 1px 2px rgba(22,21,46,.06), 0 4px 12px rgba(22,21,46,.06);
  --sombra-hover: 0 2px 4px rgba(22,21,46,.08), 0 10px 28px rgba(22,21,46,.12), 0 1px 0 rgba(22,21,46,.04);
  --t: .18s ease;

  --ancho: 1180px;
  --gutter: 20px;
  color-scheme: light;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--blanco);
  color: var(--indigo);
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--f-display); line-height: 1.12; margin: 0; text-wrap: balance; letter-spacing: -0.01em; }
h1 { font-size: clamp(36px, 6vw, 62px); font-weight: 700; }
h2 { font-size: clamp(28px, 3.6vw, 42px); font-weight: 600; }
h3 { font-size: clamp(20px, 2vw, 24px); font-weight: 600; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; border-radius: 4px; }

.contenedor { width: 100%; max-width: var(--ancho); margin-inline: auto; padding-inline: var(--gutter); }
.salto { position: absolute; left: -9999px; top: 8px; background: var(--lima); color: var(--indigo); padding: 8px 16px; border-radius: var(--r-btn); z-index: 100; font-weight: 600; }
.salto:focus { left: 16px; }

.eyebrow {
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--tinta-suave);
}
.lead { font-size: clamp(17px, 1.6vw, 19px); color: var(--tinta-suave); max-width: 62ch; }
.texto { max-width: 65ch; color: var(--tinta-suave); }
.texto + .texto { margin-top: var(--s2); }

/* Marcador de posición: contenido pendiente de validar */
.ph {
  font-family: var(--f-mono);
  font-size: .86em;
  background: #FFF1ED;
  color: #8A2A14;
  border: 1px dashed var(--coral);
  border-radius: 4px;
  padding: 0 .35em;
  white-space: nowrap;
}

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px;
  padding: 12px 26px;
  border-radius: var(--r-btn);
  font-family: var(--f-body);
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: box-shadow var(--t), transform var(--t), background var(--t), color var(--t), border-color var(--t);
}
.btn svg { width: 16px; height: 16px; flex: none; }
.btn-primario { background: var(--lima); color: var(--indigo); box-shadow: 0 1px 0 rgba(22,21,46,.15); }
.btn-primario:hover { box-shadow: 0 6px 18px rgba(198,242,78,.35), 0 1px 0 rgba(22,21,46,.15); transform: translateY(-1px); }
.btn-indigo { background: var(--indigo); color: var(--blanco); }
.btn-indigo:hover { background: #262449; }
.btn-linea { border-color: currentColor; color: inherit; background: transparent; }
.btn-linea:hover { background: rgba(255,255,255,.08); }
.sobre-blanco .btn-linea:hover, .btn-linea.oscuro:hover { background: var(--niebla); }

/* ---------- Cabecera ---------- */
.cabecera {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50;
  background: rgba(255,255,255,.94);
  backdrop-filter: saturate(1.4) blur(10px);
  -webkit-backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--linea);
}
.cabecera .contenedor { display: flex; align-items: center; gap: var(--s3); min-height: 72px; }
.marca { display: flex; align-items: center; gap: 12px; text-decoration: none; flex: none; }
.marca-logo {
  width: 40px; height: 40px; flex: none;
  border: 1.5px dashed var(--coral); border-radius: 10px;
  display: grid; place-items: center;
  font-family: var(--f-mono); font-size: 8px; letter-spacing: .08em; color: #8A2A14; text-align: center; line-height: 1.1;
}
.marca-texto { display: flex; flex-direction: column; line-height: 1; }
.marca-texto b { font-family: var(--f-display); font-weight: 700; font-size: 22px; letter-spacing: -0.02em; }
.marca-texto span { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .32em; text-transform: uppercase; margin-top: 4px; }

.nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.nav a {
  text-decoration: none; font-size: 14.5px; font-weight: 500;
  padding: 8px 12px; border-radius: 8px; color: var(--tinta-suave);
  transition: color var(--t), background var(--t);
}
.nav a:hover { color: var(--indigo); background: var(--niebla); }
.nav a[aria-current="page"] { color: var(--indigo); box-shadow: inset 0 -2px 0 var(--lima); border-radius: 0; }
.nav .nav-secundario {
  font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  margin-left: 6px; padding-left: 16px; border-left: 1px solid var(--linea); border-radius: 0;
}
.cabecera .btn { min-height: 42px; padding: 9px 20px; font-size: 14px; flex: none; }
.menu-btn {
  display: none; margin-left: auto; width: 44px; height: 44px;
  border: 1px solid var(--linea); border-radius: 12px; background: var(--blanco); cursor: pointer;
  align-items: center; justify-content: center; color: var(--indigo);
}
.menu-btn svg { width: 20px; height: 20px; }

@media (max-width: 1080px) {
  .menu-btn { display: inline-flex; }
  .cabecera .btn-cabecera { display: none; }
  .nav {
    position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--blanco); border-bottom: 1px solid var(--linea);
    padding: 8px var(--gutter) 20px;
    box-shadow: 0 16px 32px rgba(22,21,46,.08);
  }
  .nav[data-abierto="false"] { display: none; }
  .nav a { padding: 14px 4px; border-radius: 0; border-bottom: 1px solid var(--niebla); font-size: 16px; }
  .nav a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--lima); padding-left: 14px; }
  .nav .nav-secundario { margin-left: 0; padding-left: 4px; border-left: 0; }
}

/* ---------- Héroe ---------- */
.heroe { padding-block: var(--s3) var(--s5); }
.panel {
  background: var(--indigo); color: var(--blanco);
  border-radius: var(--r-panel);
  position: relative; overflow: hidden;
}
.panel .eyebrow { color: var(--lima); }
.panel .lead, .panel .texto { color: var(--sobre-indigo); }
.heroe .panel { padding: clamp(32px, 6vw, 80px) clamp(24px, 6vw, 72px); }
/* Surcos: líneas paralelas de fondo (textura, no es el isotipo) */
.surcos::after {
  content: ""; position: absolute; inset: 0 0 0 auto; width: 55%;
  background: repeating-linear-gradient(-28deg, transparent 0 22px, rgba(198,242,78,.07) 22px 23px);
  -webkit-mask-image: linear-gradient(to left, #000 20%, transparent 95%);
          mask-image: linear-gradient(to left, #000 20%, transparent 95%);
  pointer-events: none;
}
.heroe-contenido { position: relative; z-index: 1; display: grid; gap: var(--s3); max-width: 820px; }
.heroe h1 span { color: var(--lima); }
.heroe-acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: var(--s1); }
.heroe-territorio {
  display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: var(--s2);
  font-family: var(--f-mono); font-size: 12px; letter-spacing: .08em; color: var(--sobre-indigo);
}
.heroe-territorio li { list-style: none; display: flex; align-items: center; gap: 8px; }
.heroe-territorio li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--verde); }
.heroe-territorio li:first-child::before { background: var(--lima); }

/* Héroe de página interior */
.heroe-interior .panel { padding: clamp(28px, 5vw, 64px) clamp(24px, 5vw, 64px); }
.heroe-interior h1 { font-size: clamp(32px, 5vw, 54px); }

/* ---------- Secciones ---------- */
.seccion { padding-block: clamp(48px, 7vw, 96px); }
.seccion-niebla { background: var(--niebla); }
.seccion-cabeza { display: grid; gap: var(--s2); margin-bottom: var(--s5); max-width: 760px; }

.rejilla { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.rejilla-2 { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.rejilla-4 { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.rejilla > *, .rejilla-2 > *, .rejilla-4 > * { min-width: 0; }

.tarjeta {
  background: var(--blanco);
  border: 1px solid var(--linea);
  border-radius: var(--r-card);
  padding: var(--s4);
  display: flex; flex-direction: column; gap: var(--s2);
  transition: box-shadow var(--t), border-color var(--t), transform var(--t);
}
a.tarjeta { text-decoration: none; }
a.tarjeta:hover, .tarjeta.interactiva:hover { border-color: var(--indigo); box-shadow: var(--sombra-hover); transform: translateY(-2px); }
.tarjeta p { color: var(--tinta-suave); }
.tarjeta .mas { margin-top: auto; font-weight: 600; font-size: 14.5px; display: inline-flex; gap: 8px; align-items: center; color: var(--indigo); }
.tarjeta .mas svg { width: 15px; height: 15px; transition: transform var(--t); }
a.tarjeta:hover .mas svg { transform: translateX(3px); }

.etiqueta {
  display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
  font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  padding: 5px 10px; border-radius: 40px; background: var(--niebla); color: var(--indigo);
}
.etiqueta::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--verde); }
.etiqueta.coral::before { background: var(--coral); }
.etiqueta.lima { background: var(--indigo); color: var(--lima); }
.etiqueta.lima::before { background: var(--lima); }

.lista-check { list-style: none; display: grid; gap: 10px; }
.lista-check li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; color: var(--tinta-suave); }
.lista-check li::before {
  content: ""; width: 20px; height: 20px; margin-top: 3px; border-radius: 50%;
  background: var(--niebla) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.6 2.6L14 7.6' fill='none' stroke='%2316152E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px no-repeat;
}
.panel .lista-check li { color: var(--sobre-indigo); }
.panel .lista-check li::before { background-color: var(--indigo-2); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.6 2.6L14 7.6' fill='none' stroke='%23C6F24E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

/* Aportaciones (capital, financiación, tecnología, ejecución) */
.aporte { display: grid; gap: var(--s1); padding-top: var(--s3); border-top: 2px solid var(--indigo); }
.aporte .eyebrow { color: var(--verde); }
.aporte p { color: var(--tinta-suave); }

/* Pasos del proceso (secuencia real) */
.pasos { list-style: none; counter-reset: paso; display: grid; gap: var(--s2); }
.pasos li {
  counter-increment: paso;
  display: grid; grid-template-columns: 56px 1fr; gap: var(--s2); align-items: start;
  padding: var(--s3); border: 1px solid var(--linea); border-radius: var(--r-card); background: var(--blanco);
}
.pasos li::before {
  content: counter(paso, decimal-leading-zero);
  font-family: var(--f-mono); font-weight: 500; font-size: 13px; letter-spacing: .08em;
  width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center;
  background: var(--indigo); color: var(--lima);
}
.pasos h3 { font-size: 19px; margin-bottom: 4px; }
.pasos p { color: var(--tinta-suave); }

/* Banda de confidencialidad */
.confidencial {
  display: grid; grid-template-columns: auto 1fr auto; gap: var(--s3); align-items: center;
  background: var(--blanco); border: 1.5px solid var(--indigo); border-radius: var(--r-card);
  padding: var(--s3) var(--s4);
}
.confidencial-icono {
  width: 52px; height: 52px; border-radius: 50%; background: var(--coral);
  display: grid; place-items: center; color: var(--indigo);
}
.confidencial-icono svg { width: 24px; height: 24px; }
.confidencial h3 { font-size: 20px; margin-bottom: 4px; }
.confidencial p { color: var(--tinta-suave); max-width: 70ch; }
.panel .confidencial { background: var(--indigo-2); border-color: rgba(255,255,255,.14); }
.panel .confidencial p { color: var(--sobre-indigo); }
@media (max-width: 760px) {
  .confidencial { grid-template-columns: 1fr; padding: var(--s3); }
}

/* Territorio */
.territorio { display: grid; gap: var(--s3); grid-template-columns: 1.25fr 1fr; align-items: stretch; }
.territorio > * { min-width: 0; }
.territorio .panel { padding: var(--s5) var(--s4); display: flex; flex-direction: column; gap: var(--s2); }
.provincias { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--s1); }
.provincias li {
  font-family: var(--f-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase;
  border: 1px solid rgba(198,242,78,.4); color: var(--lima); padding: 6px 12px; border-radius: 40px;
}
.regiones { display: grid; gap: var(--s3); align-content: start; }
.region { padding: var(--s3); border: 1px solid var(--linea); border-radius: var(--r-card); display: grid; gap: 6px; }
.region p { color: var(--tinta-suave); }
@media (max-width: 860px) { .territorio { grid-template-columns: 1fr; } }

/* Sedes */
.sedes { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.sede { display: grid; gap: 4px; font-style: normal; }
.sede b { font-family: var(--f-display); font-size: 18px; }
.sede span { color: var(--tinta-suave); }
.sede .etiqueta { margin-bottom: 6px; }

/* Selector de perfil */
.perfiles a.tarjeta h3 { font-size: 21px; }

/* Colaboradores */
.colaborador { align-items: flex-start; }
.logo-hueco {
  height: 64px; width: 100%; border: 1.5px dashed var(--linea); border-radius: 10px;
  display: grid; place-items: center; font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; color: var(--tinta-suave);
  background: repeating-linear-gradient(-45deg, transparent 0 10px, rgba(22,21,46,.025) 10px 20px);
}
.colaborador h3 { font-size: 19px; }

/* Equipo */
.persona { display: grid; gap: var(--s1); }
.persona-foto {
  aspect-ratio: 4 / 5; max-width: 100%; border-radius: var(--r-card); border: 1.5px dashed var(--linea);
  background: var(--niebla); display: grid; place-items: center;
  font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; color: var(--tinta-suave);
}

/* Ciudades (emprendedores) */
.tabla-envoltorio { overflow-x: auto; border: 1px solid var(--linea); border-radius: var(--r-card); }
table.ciudades { width: 100%; border-collapse: collapse; min-width: 560px; font-variant-numeric: tabular-nums; }
.ciudades th, .ciudades td { text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--linea); }
.ciudades thead th { font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-suave); background: var(--niebla); font-weight: 500; }
.ciudades tbody tr:last-child td { border-bottom: 0; }
.ciudades td:first-child { font-family: var(--f-display); font-weight: 600; font-size: 17px; }

/* Cifra de formato (no es dato: describe el formato del encuentro) */
.formato { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.formato div { border-top: 2px solid var(--lima); padding-top: var(--s2); }
.formato b { display: block; font-family: var(--f-display); font-size: 28px; font-weight: 700; color: var(--blanco); }
.formato span { color: var(--sobre-indigo); font-size: 15px; }

/* Bloque CTA de cierre */
.cta-final .panel { padding: clamp(32px, 6vw, 72px); display: grid; gap: var(--s4); grid-template-columns: 1.4fr auto; align-items: center; }
.cta-final .panel > * { position: relative; z-index: 1; min-width: 0; }
.cta-final h2 { color: var(--blanco); }
.cta-final .acciones { display: flex; flex-direction: column; gap: 12px; align-items: stretch; }
@media (max-width: 860px) { .cta-final .panel { grid-template-columns: 1fr; } .cta-final .acciones { align-items: flex-start; } }

/* Aviso legal en página de inversores */
.aviso {
  font-size: 13.5px; color: var(--tinta-suave); border-left: 2px solid var(--linea);
  padding: 4px 0 4px 16px; max-width: 80ch;
}

/* Newsletter */
.newsletter { display: grid; grid-template-columns: 1fr 1.1fr; gap: var(--s5); align-items: center; }
.newsletter > * { min-width: 0; }
.form-news { display: grid; gap: 12px; }
.form-fila { display: flex; gap: 10px; flex-wrap: wrap; }
.form-fila input[type="email"] {
  flex: 1 1 240px; min-height: 50px; padding: 12px 18px; font: inherit; font-size: 15px;
  border: 1.5px solid var(--linea); border-radius: var(--r-btn); background: var(--blanco); color: var(--indigo);
}
.form-fila input[type="email"]:focus { outline: none; border-color: var(--indigo); box-shadow: 0 0 0 3px rgba(198,242,78,.6); }
.form-news label.check { display: grid; grid-template-columns: 20px 1fr; gap: 10px; font-size: 13px; color: var(--tinta-suave); }
.form-news input[type="checkbox"] { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--indigo); }
.form-estado { font-size: 14px; min-height: 1.4em; }
@media (max-width: 860px) { .newsletter { grid-template-columns: 1fr; gap: var(--s3); } }

/* ---------- Pie ---------- */
.pie { background: var(--indigo); color: var(--sobre-indigo); padding-block: var(--s6) var(--s4); font-size: 14.5px; }
.pie a { text-decoration: none; color: var(--sobre-indigo); transition: color var(--t); }
.pie a:hover { color: var(--lima); }
.pie-rejilla { display: grid; gap: var(--s5); grid-template-columns: 1.3fr 1fr 1fr 1fr; }
.pie-rejilla > * { min-width: 0; }
.pie .marca-texto { color: var(--blanco); }
.pie .marca { margin-bottom: var(--s2); }
.pie-claim { font-family: var(--f-display); font-size: 20px; color: var(--blanco); margin-bottom: var(--s2); }
.pie h4 { font-family: var(--f-mono); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--lima); font-weight: 500; margin-bottom: var(--s2); }
.pie ul { list-style: none; display: grid; gap: 10px; }
.pie address { font-style: normal; display: grid; gap: 14px; }
.pie address b { color: var(--blanco); font-weight: 600; display: block; }
.redes { display: flex; gap: 10px; margin-top: var(--s3); flex-wrap: wrap; }
.redes a {
  width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.18);
  display: grid; place-items: center; transition: background var(--t), border-color var(--t), color var(--t);
}
.redes a:hover { background: var(--lima); border-color: var(--lima); color: var(--indigo); }
.redes svg { width: 18px; height: 18px; }
.grupo {
  margin-top: var(--s5); padding-block: var(--s3); border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12);
  display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: center; font-size: 13.5px;
}
.grupo strong { font-family: var(--f-mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--blanco); font-weight: 500; }
.pie-legal { margin-top: var(--s3); display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; font-size: 13px; }
.pie-legal ul { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.pie .ph { background: rgba(255,107,74,.12); color: #FFB4A3; }
.pie .marca-logo { color: #FFB4A3; }
@media (max-width: 960px) { .pie-rejilla { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pie-rejilla { grid-template-columns: 1fr; } }

/* CTA fijo en móvil */
.cta-movil { display: none; }
@media (max-width: 760px) {
  .cta-movil {
    display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255,255,255,.96); border-top: 1px solid var(--linea);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  }
  .cta-movil .btn { width: 100%; }
  body { padding-bottom: 76px; }
}

/* Páginas legales */
.legal h2 { font-size: 26px; margin: var(--s5) 0 var(--s2); }
.legal h3 { font-size: 18px; margin: var(--s3) 0 var(--s1); }
.legal p, .legal li { color: var(--tinta-suave); max-width: 75ch; }
.legal p + p { margin-top: 12px; }
.legal ul { padding-left: 20px; display: grid; gap: 6px; }

/* Utilidades */
.mt-1 { margin-top: var(--s1); } .mt-2 { margin-top: var(--s2); } .mt-3 { margin-top: var(--s3); } .mt-4 { margin-top: var(--s4); } .mt-5 { margin-top: var(--s5); }
.visualmente-oculto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Marcadores largos: que no desborden en móvil */
.ph { white-space: normal; overflow-wrap: anywhere; }
[hidden] { display: none !important; }

/* Isotipo oficial (mismo vector que Finanzas Corporativas) */
:root { --iso-a:#5B8A2B; --iso-b:#16152E; --iso-c:#C6F24E; --iso-dot:#FF6B4A; }
.pie { --iso-a:#E8E9EE; --iso-b:#E8E9EE; --iso-c:#E8E9EE; }
svg.marca-logo { width: 20px; height: 44px; border: 0; border-radius: 0; display: block; }

/* Formulario de contacto (contacto.html) y avisos de los formularios */
.form-contacto { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: 820px; position: relative; }
.form-contacto .completo { grid-column: 1 / -1; }
.form-contacto .campo { display: grid; gap: 6px; min-width: 0; }
.form-contacto label, .form-contacto legend { font-size: 14px; font-weight: 500; }
.form-contacto input:not([type="radio"]):not([type="checkbox"]), .form-contacto textarea {
  width: 100%; font: inherit; font-size: 15px; color: var(--indigo); background: var(--blanco);
  border: 1px solid var(--linea); border-radius: 12px; padding: 12px 14px;
}
.form-contacto input:focus, .form-contacto textarea:focus { outline: none; border-color: var(--indigo); box-shadow: 0 0 0 3px rgba(198,242,78,.6); }
.perfiles { border: 1px solid var(--linea); border-radius: var(--r-card); padding: 16px 18px; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; }
.perfiles legend { padding: 0 6px; }
.perfiles label { display: flex; gap: 10px; align-items: center; font-weight: 400; font-size: 15px; }
.perfiles input { width: 18px; height: 18px; accent-color: var(--indigo); }
.form-contacto label.check { display: grid; grid-template-columns: 20px 1fr; gap: 10px; font-size: 13px; font-weight: 400; color: var(--tinta-suave); }
.form-contacto input[type="checkbox"] { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--indigo); }
.info-datos { font-size: 12px; line-height: 1.5; color: var(--tinta-suave); margin: 0; }
.info-datos a, .form-estado a { color: inherit; }
.form-estado.is-error { color: #A3361C; }
.form-estado.is-ok { color: var(--verde); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 640px) { .form-contacto, .perfiles { grid-template-columns: 1fr; } }
