/* AIReceptionistGo — base reutilizable: reset, tipografía, rejilla, botones, cabecera, pie y formularios.
   Lo específico de la Home vive en home.css. Sin framework. */

/* Regla fija de la casa: el móvil no «baila». hidden de respaldo, clip después (no crea contenedor de scroll). */
html, body { overflow-x: hidden; overflow-x: clip; }

*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body {
	margin: 0;
	font-family: var(--arg-font-sans);
	font-size: var(--fs-18);
	line-height: var(--lh-body);
	font-weight: 400;
	color: var(--arg-text);
	background: var(--arg-surface);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}
img, video, svg { max-width: 100%; height: auto; display: block; }
svg { flex-shrink: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
p, ul, ol, figure, blockquote, dl, dd { margin: 0; }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }
table { border-collapse: collapse; font-variant-numeric: tabular-nums; }

h1, h2, h3, h4 {
	margin: 0;
	font-family: var(--arg-font-display);
	font-weight: 600;
	text-wrap: balance;
	color: inherit;
}
h2 { font-size: var(--fs-h2); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); }
h3 { font-size: var(--fs-28); line-height: var(--lh-sub); letter-spacing: -0.018em; }
p { text-wrap: pretty; }

a { color: var(--arg-link); text-decoration: underline; text-underline-offset: 0.15em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
.sobre-oscuro a:not(.boton) { color: var(--arg-on-dark-accent); }

:focus-visible { outline: 3px solid var(--arg-focus-ring); outline-offset: 3px; border-radius: 2px; }
.sobre-oscuro :focus-visible { outline-color: var(--arg-lime); }

.solo-lectores {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.saltar {
	position: absolute; left: var(--sp-16); top: -100px; z-index: 100;
	padding: var(--sp-12) var(--sp-16); background: var(--arg-ink); color: var(--arg-white);
	border-radius: var(--radius-sm); font-weight: 600;
}
.saltar:focus { top: var(--sp-16); }

/* Rejilla */
.contenedor { width: min(var(--container), 100% - 2 * var(--gutter)); margin-inline: auto; }
.seccion { padding-block: var(--section-y); }
.seccion--blanca { background: var(--arg-white); }
.seccion--crema { background: var(--arg-surface); }
.seccion--oscura { background: var(--arg-surface-dark); color: var(--arg-on-dark); }
.seccion--lima { background: var(--arg-lime); color: var(--arg-ink); }
.encabezado { max-width: 1040px; margin-bottom: var(--sp-48); }
.encabezado h2 + p { margin-top: var(--sp-16); }
.intro { font-size: var(--fs-18); line-height: 1.5; color: var(--arg-text-weak); max-width: var(--measure); }
@media (min-width: 768px) { .intro { font-size: var(--fs-20); } }
.sobre-oscuro .intro { color: var(--arg-on-dark-weak); }
.prosa { max-width: var(--measure); }
.prosa > * + * { margin-top: var(--sp-16); }
.prosa h3 { margin-top: var(--sp-48); }
.texto-pequeno { font-size: var(--fs-16); line-height: 1.5; color: var(--arg-text-weak); max-width: var(--measure); }
.mono-etiqueta {
	font-family: var(--arg-font-mono); font-size: var(--fs-14); font-weight: 500; line-height: 1.4;
	letter-spacing: var(--ls-caps); text-transform: uppercase;
}

/* Botones: L = 64 px, M = 48 px (Figma). Un primario por bloque. */
.boton {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-8);
	min-height: var(--btn-l); padding: 0 var(--sp-24);
	border: 2px solid transparent; border-radius: var(--radius-md);
	font-family: var(--arg-font-sans); font-size: var(--fs-18); font-weight: 600; line-height: 1.3;
	text-align: center; text-decoration: none; cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.boton svg { width: 20px; height: 20px; }
.boton--m { min-height: var(--btn-m); padding: 0 var(--sp-24); font-size: var(--fs-16); }
.boton--lima { background: var(--arg-action); color: var(--arg-action-text); border-color: var(--arg-action); }
.boton--lima:hover { background: var(--arg-action-hover); border-color: var(--arg-action-hover); }
.boton--tinta { background: var(--arg-ink); color: var(--arg-white); border-color: var(--arg-ink); }
.boton--tinta:hover { background: var(--arg-neutral-800); border-color: var(--arg-neutral-800); }
.boton--borde { background: transparent; color: var(--arg-ink); border-color: var(--arg-ink); }
.boton--borde:hover { background: rgba(21, 26, 23, .06); }
.sobre-oscuro .boton--borde { color: var(--arg-white); border-color: var(--arg-white); }
.sobre-oscuro .boton--borde:hover { background: rgba(255, 255, 255, .08); }
.boton--ancho { width: 100%; }
.par-botones { display: grid; gap: var(--sp-16); }
@media (min-width: 600px) { .par-botones { grid-template-columns: 1fr 1fr; } }

.icono-caja {
	display: inline-grid; place-items: center; flex: none;
	width: var(--caja, 28px); height: var(--caja, 28px);
	border-radius: 50%; background: var(--arg-lime-tint); color: var(--arg-ink);
}
.icono-caja svg { width: calc(var(--caja, 28px) / 2); height: calc(var(--caja, 28px) / 2); }
.icono-caja--lima { background: var(--arg-lime); }
.icono-caja--36 { --caja: 36px; }
.icono-caja--56 { --caja: 56px; }
.icono-caja--64 { --caja: 64px; }
.icono-caja--72 { --caja: 72px; }

.lista-check { list-style: none; padding: 0; display: grid; gap: var(--sp-12); }
.lista-check li { display: flex; gap: var(--sp-12); align-items: flex-start; }
.lista-check .icono-caja { margin-top: 0; }
.lista-check--simple svg { width: 18px; height: 18px; color: var(--arg-lime); margin-top: 3px; }

/* Aviso superior (Configuración → Sitio y botones). Sin JS ni cierre; el enlace mide 44 px de alto. */
.aviso-sitio { background: var(--arg-surface-dark); color: var(--arg-on-dark); }
.aviso-sitio__texto {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; column-gap: var(--sp-12);
	min-height: var(--target); padding-block: var(--sp-4);
	font-size: var(--fs-16); line-height: 1.4; text-align: center;
}
.aviso-sitio__enlace {
	display: inline-flex; align-items: center; gap: var(--sp-4); min-height: var(--target);
	font-weight: 600; text-decoration: underline; text-underline-offset: 3px;
}
.aviso-sitio__enlace svg { width: 16px; height: 16px; flex: none; }

/* Cabecera */
.cabecera {
	position: sticky; top: 0; z-index: 50;
	background: var(--arg-surface); border-bottom: 1px solid var(--arg-border);
}
.cabecera__fila { display: flex; align-items: center; gap: var(--sp-24); min-height: 72px; }
/* Área pulsable de 44 px de alto (el logo no cambia de tamaño). */
.cabecera__logo { display: inline-flex; align-items: center; flex: none; min-height: var(--target); }
.cabecera__logo img { width: 160px; height: auto; }
.cabecera__nav { display: none; }
/* Solo el primer nivel: los paneles del megamenú (navegacion.css) llevan sus propias listas y enlaces. */
.cabecera__nav > ul { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--sp-8); }
.cabecera__nav > ul > li > a, .cabecera__nivel, .cabecera__enlace {
	display: inline-flex; align-items: center; gap: var(--sp-8); min-height: var(--target);
	padding: 0 var(--sp-12); color: var(--arg-ink); font-size: var(--fs-16); font-weight: 500; text-decoration: none;
	border-radius: var(--radius-sm);
}
.cabecera__nav > ul > li > a:hover, .cabecera__nivel:hover, .cabecera__enlace:hover { text-decoration: underline; }
.cabecera__acciones { margin-left: auto; display: flex; align-items: center; gap: var(--sp-8); }
.cabecera__muestra { color: var(--arg-link); display: none; }
.cabecera__muestra svg { width: 14px; height: 14px; }
.cabecera__telefono-texto { display: none; }
.cabecera__icono-boton {
	display: inline-grid; place-items: center; width: var(--target); height: var(--target);
	border: 1px solid var(--arg-ink); border-radius: 50%; background: transparent; color: var(--arg-ink); cursor: pointer;
}
.cabecera__icono-boton svg { width: 20px; height: 20px; }
.cabecera__menu-boton { border: 0; border-radius: var(--radius-sm); }
.cabecera__menu-boton svg { width: 24px; height: 24px; }
.cabecera__movil { border-top: 1px solid var(--arg-border); padding-block: var(--sp-16); }
.cabecera__movil[hidden] { display: none; }
.cabecera__movil > ul { list-style: none; margin: 0; padding: 0; display: grid; }
.cabecera__movil > ul > li > a {
	display: flex; align-items: center; min-height: 48px; color: var(--arg-ink);
	font-size: var(--fs-18); font-weight: 500; text-decoration: none; border-bottom: 1px solid var(--arg-border);
}
@media (max-width: 420px) {
	.cabecera__logo img { width: 128px; }
	.cabecera__fila { gap: var(--sp-8); }
	.cabecera__acciones .boton--m { padding: 0 var(--sp-16); }
}
@media (min-width: 1100px) {
	.cabecera__fila { min-height: 80px; gap: var(--sp-32); }
	.cabecera__logo img { width: 164px; }
	.cabecera__nav { display: block; }
	.cabecera__muestra { display: inline-flex; }
	.cabecera__telefono-texto { display: inline; }
	.cabecera__telefono .cabecera__icono-boton { border: 0; width: auto; height: auto; }
	.cabecera__menu-boton, .cabecera__movil { display: none !important; }
}

/* Pie */
.pie { background: var(--arg-surface-dark); color: var(--arg-on-dark); padding-block: var(--sp-64) var(--sp-48); }
.pie a:not(.boton) { color: var(--arg-on-dark-weak); text-decoration: none; }
.pie a:not(.boton):hover { color: var(--arg-white); text-decoration: underline; }
.pie__marca { display: inline-flex; align-items: center; min-height: var(--target); }
.pie__marca img { width: 164px; height: auto; }
.pie__lema { font-family: var(--arg-font-display); font-weight: 600; font-size: var(--fs-28); line-height: 1.15; margin-top: var(--sp-16); }
.pie__desc { color: var(--arg-on-dark-weak); font-size: var(--fs-16); margin-top: var(--sp-12); max-width: 34ch; }
.pie__telefono { display: inline-flex; align-items: center; gap: var(--sp-8); min-height: var(--target); margin-top: var(--sp-16); color: var(--arg-white) !important; font-weight: 600; }
.pie__telefono svg { width: 18px; height: 18px; color: var(--arg-lime); }
.pie__redes { list-style: none; padding: 0; margin: var(--sp-16) 0 0; display: flex; flex-wrap: wrap; gap: var(--sp-8); }
.pie__redes a {
	display: inline-grid; place-items: center; width: var(--target); height: var(--target);
	border: 1px solid var(--arg-neutral-700); border-radius: 50%; color: var(--arg-white);
}
.pie__redes a:hover { border-color: var(--arg-lime); }
.pie__redes svg { width: 18px; height: 18px; }
.pie__columna h2 { font-family: var(--arg-font-mono); font-size: var(--fs-14); font-weight: 500; letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--arg-lime); line-height: 1.4; }
.pie__columna ul { list-style: none; padding: 0; margin: var(--sp-16) 0 0; display: grid; gap: var(--sp-4); }
.pie__columna a { display: inline-flex; align-items: center; min-height: var(--target); font-size: var(--fs-16); line-height: 1.3; }
.pie__base {
	display: grid; gap: var(--sp-12); margin-top: var(--sp-48); padding-top: var(--sp-32);
	border-top: 1px solid var(--arg-neutral-700); color: var(--arg-on-dark-weak); font-size: var(--fs-14); line-height: 1.5;
}
@media (min-width: 1100px) {
	.pie__base { grid-template-columns: 1fr auto; }
}
/* Rejilla del pie (arriba + columnas) y megamenú: assets/css/navegacion.css. */

/* Formularios (WPForms y los propios): etiqueta encima, borde a 3:1, alto ≥ 48. */
.tarjeta-formulario { background: var(--arg-white); color: var(--arg-ink); border-radius: var(--radius-lg); padding: var(--sp-24); }
.tarjeta-formulario a { color: var(--arg-link); }
.tarjeta-formulario .wpforms-container { margin: 0 !important; }
.tarjeta-formulario .wpforms-field-container { display: grid; gap: var(--sp-16); }
@media (min-width: 600px) { .tarjeta-formulario .wpforms-field-container { grid-template-columns: 1fr 1fr; } }
.tarjeta-formulario .wpforms-field { padding: 0 !important; margin: 0 !important; }
.tarjeta-formulario .wpforms-field-label { font-size: var(--fs-16) !important; font-weight: 600 !important; color: var(--arg-ink) !important; margin: 0 0 var(--sp-8) !important; }
.tarjeta-formulario input[type="text"], .tarjeta-formulario input[type="email"], .tarjeta-formulario input[type="tel"] {
	width: 100% !important; max-width: none !important; min-height: 52px !important; height: auto !important;
	padding: var(--sp-12) var(--sp-16) !important; border: 1px solid var(--arg-border-control) !important;
	border-radius: var(--radius-sm) !important; background: var(--arg-white) !important; font-size: var(--fs-18) !important; color: var(--arg-ink) !important;
}
.tarjeta-formulario input::placeholder { color: var(--arg-neutral-600); opacity: 1; }
.tarjeta-formulario .wpforms-submit-container { padding: 0 !important; margin-top: var(--sp-16) !important; }
.tarjeta-formulario button[type="submit"] {
	width: 100% !important; min-height: var(--btn-l) !important; height: auto !important; border-radius: var(--radius-md) !important;
	background: var(--arg-action) !important; color: var(--arg-action-text) !important; border: 2px solid var(--arg-action) !important;
	font-size: var(--fs-18) !important; font-weight: 600 !important; cursor: pointer;
}
.tarjeta-formulario button[type="submit"]:hover { background: var(--arg-action-hover) !important; }
.tarjeta-formulario label.wpforms-error, .tarjeta-formulario .wpforms-error { color: #BF281F !important; font-size: var(--fs-14) !important; }
.tarjeta-formulario .nota { margin-top: var(--sp-16); font-size: var(--fs-14); line-height: 1.5; color: var(--arg-text-weak); }
/* Los mismos campos y botón en cualquier formulario de WPForms (/contact/, la auditoría), no solo en
   las tarjetas: sin esto, WPForms pinta su botón azul por defecto. Las tarjetas (cierre de la Home,
   /get-started/) se quedan con sus propias reglas de arriba. */
.wpforms-container:not(.tarjeta-formulario .wpforms-container) input[type="text"], .wpforms-container:not(.tarjeta-formulario .wpforms-container) input[type="email"], .wpforms-container:not(.tarjeta-formulario .wpforms-container) input[type="tel"], .wpforms-container:not(.tarjeta-formulario .wpforms-container) select {
	width: 100% !important; max-width: none !important; min-height: 52px !important; height: auto !important;
	padding: var(--sp-12) var(--sp-16) !important; border: 1px solid var(--arg-border-control) !important;
	border-radius: var(--radius-sm) !important; background-color: var(--arg-white) !important; font-size: var(--fs-18) !important; color: var(--arg-ink) !important;
}
.wpforms-container:not(.tarjeta-formulario .wpforms-container) .wpforms-field-label { font-size: var(--fs-16) !important; font-weight: 600 !important; color: var(--arg-ink) !important; }
.wpforms-container:not(.tarjeta-formulario .wpforms-container) .wpforms-field-checkbox li label { font-size: var(--fs-16) !important; line-height: 1.5 !important; color: var(--arg-ink) !important; }
.wpforms-container:not(.tarjeta-formulario .wpforms-container) .wpforms-field-checkbox input[type="checkbox"] { width: 22px !important; height: 22px !important; accent-color: var(--arg-leaf); }
.wpforms-container:not(.tarjeta-formulario .wpforms-container) button[type="submit"] {
	min-height: var(--btn-l) !important; height: auto !important; padding: var(--sp-12) var(--sp-24) !important; border-radius: var(--radius-md) !important;
	background: var(--arg-action) !important; color: var(--arg-action-text) !important; border: 2px solid var(--arg-action) !important;
	font-size: var(--fs-18) !important; font-weight: 600 !important; cursor: pointer;
}
.wpforms-container:not(.tarjeta-formulario .wpforms-container) button[type="submit"]:hover { background: var(--arg-action-hover) !important; }
.wpforms-container:not(.tarjeta-formulario .wpforms-container) button[type="submit"]:focus-visible, .wpforms-container:not(.tarjeta-formulario .wpforms-container) input:focus-visible, .wpforms-container:not(.tarjeta-formulario .wpforms-container) select:focus-visible { outline: 3px solid var(--arg-focus-ring); outline-offset: 3px; box-shadow: none; }

/* Prosa genérica (plantilla de respaldo) */
.pagina-generica h1 { font-size: var(--fs-h2); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); margin-bottom: var(--sp-32); }
.pagina-generica .prosa h2 { margin-top: var(--sp-64); font-size: var(--fs-h2-s); }
.pagina-generica .prosa table { width: 100%; font-size: var(--fs-16); }
.pagina-generica .prosa th, .pagina-generica .prosa td { text-align: left; padding: var(--sp-8); border-bottom: 1px solid var(--arg-border); }
.pagina-generica .prosa blockquote { border-left: 3px solid var(--arg-lime); padding-left: var(--sp-16); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
