/*
 Theme Name:   apvIR (tema hijo de GeneratePress)
 Theme URI:    https://apvir.cl
 Description:  Tema hijo para apvir.cl. Colores y tipografía según el manual de normas gráficas de APV.
 Author:       APV S.A.
 Template:     generatepress
 Version:      1.2.2
 Text Domain:  apvir
*/

/* ===== Tokens de marca (manual APV) ===== */
:root {
	--apv-azul:        #0033AB; /* Pantone 286 C */
	--apv-azul-60:     #6685CD; /* trama 60% (por confirmar) */
	--apv-azul-10:     #E6EBF7; /* fondo suave */
	--negro:           #000000; /* bandas de imagen térmica (estilo Guide) */
	--texto:           #1D1D1F;
	--texto-2:         #595959;
	--borde:           #D9D9D9;
	--gris-fondo:      #F5F5F7;
	--blanco:          #FFFFFF;
	--fuente:          "Helvetica Neue", Helvetica, Arial, sans-serif;
	--radio:           12px;
	--ancho:           1200px;
}

body {
	font-family: var(--fuente);
	color: var(--texto);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
	font-family: var(--fuente);
	font-weight: 700;
	line-height: 1.15;
	color: var(--texto);
	letter-spacing: -0.01em;
}
h1 { font-size: clamp(32px, 4.5vw, 56px); }
h2 { font-size: clamp(26px, 3vw, 40px); }
h3 { font-size: clamp(20px, 2vw, 24px); }

a { color: var(--apv-azul); }
a:hover, a:focus { color: var(--texto); }

/* Botones */
.button, .wp-block-button__link, button[type="submit"], input[type="submit"] {
	background: var(--apv-azul);
	color: var(--blanco);
	border-radius: 999px;
	padding: 12px 24px;
	font-weight: 700;
	border: 0;
}
.button:hover, .wp-block-button__link:hover, button[type="submit"]:hover, input[type="submit"]:hover {
	background: #002680;
	color: var(--blanco);
}
.is-style-outline .wp-block-button__link, .button.secundario {
	background: transparent;
	color: var(--apv-azul);
	box-shadow: inset 0 0 0 2px var(--apv-azul);
}

/* Bandas de sección */
.banda-gris  { background: var(--gris-fondo); }
.banda-negra { background: var(--negro); color: var(--blanco); }
.banda-negra h1, .banda-negra h2, .banda-negra h3 { color: var(--blanco); }
.banda-azul  { background: var(--apv-azul); color: var(--blanco); }
.banda-azul h2, .banda-azul h3, .banda-azul a { color: var(--blanco); }

/* Cifras destacadas */
.cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 24px; text-align: center; }
.cifras strong { display: block; font-size: clamp(32px, 4vw, 48px); line-height: 1; font-variant-numeric: tabular-nums; }
.cifras span { font-size: 14px; opacity: .8; }

/* Etiqueta de stock */
.etiqueta-stock {
	display: inline-block;
	background: var(--apv-azul-10);
	color: var(--apv-azul);
	font-size: 13px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 999px;
}

/* Tabla de especificaciones */
.tabla-specs { width: 100%; border-collapse: collapse; font-size: 15px; }
.tabla-specs th, .tabla-specs td { padding: 12px 8px; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: top; }
.tabla-specs th { width: 38%; font-weight: 700; color: var(--texto-2); }

/* Imágenes */
img { height: auto; }

/* ===== Plantillas apvIR ===== */
.apvir .contenedor { max-width: var(--ancho); margin: 0 auto; padding: 0 20px; }
.apvir .seccion { padding: 64px 0; }
.apvir .seccion.contenedor { padding-left: 20px; padding-right: 20px; }
.migas { font-size: 14px; color: var(--texto-2); padding-top: 20px !important; }
.migas a { color: var(--texto-2); text-decoration: none; }
.antetitulo { color: var(--apv-azul); font-weight: 700; margin: 0 0 8px; }
.bajada { font-size: 19px; color: var(--texto-2); max-width: 60ch; }

/* Selector de modelos */
.selector-modelos { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 20px !important; }
.pastilla { padding: 8px 18px; border-radius: 999px; border: 1px solid var(--borde); color: var(--texto); text-decoration: none; font-weight: 700; font-size: 15px; }
.pastilla.activa, .pastilla:hover { background: var(--apv-azul); border-color: var(--apv-azul); color: var(--blanco); }

/* Hero */
.hero-producto, .hero-termino { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; padding-top: 32px !important; padding-bottom: 48px !important; }
.hero-img { background: var(--gris-fondo); border-radius: var(--radio); padding: 24px; text-align: center; }
.hero-img img { max-height: 520px; width: auto; }
.hero-img .miniaturas { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 16px; }
.hero-img .mini { background: #fff; border: 2px solid transparent; border-radius: 6px; padding: 4px; width: 64px; height: 64px; cursor: pointer; }
.hero-img .mini:hover, .hero-img .mini.activa { border-color: var(--apv-azul) !important; background: #fff !important; }
.hero-img .mini img { width: 100%; height: 100%; object-fit: contain; max-height: none; }
@media (min-width: 900px) {
	.hero-producto { grid-template-columns: 1.1fr 1fr; }
	.hero-termino { grid-template-columns: 1.2fr 1fr; }
}

/* CTA */
.ctas { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 24px 0 8px; }
.ctas .tel { font-weight: 700; text-decoration: none; }
.banda-azul .button { background: var(--blanco); color: var(--apv-azul); }
.banda-azul .button.secundario { background: transparent; color: var(--blanco); box-shadow: inset 0 0 0 2px var(--blanco); }
.banda-azul .tel { color: var(--blanco); }
.cta-final { text-align: center; }
.cta-final .ctas { justify-content: center; }
.link-tienda { font-weight: 700; }

/* Specs */
.grupo-specs { border-top: 1px solid var(--borde); }
.grupo-specs summary, .faq-item summary { cursor: pointer; font-weight: 700; font-size: 18px; padding: 18px 0; list-style: none; }
.grupo-specs summary::after, .faq-item summary::after { content: "+"; float: right; color: var(--apv-azul); }
.grupo-specs[open] summary::after, .faq-item[open] summary::after { content: "–"; }
.nota-legal { font-size: 13px; color: var(--texto-2); margin-top: 16px; }
.faq-item { border-top: 1px solid var(--borde); }
.faq-item p { color: var(--texto-2); }

/* Grilla de productos */
.grilla-productos { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; }
.card-producto { display: flex; flex-direction: column; gap: 8px; background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio); padding: 20px; text-decoration: none; color: var(--texto); transition: box-shadow .2s; }
.card-producto:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); color: var(--texto); }
.card-img { aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; background: var(--gris-fondo); border-radius: 8px; overflow: hidden; }
.card-img img { max-height: 100%; width: auto; object-fit: contain; }
.card-producto h3 { margin: 4px 0 0; font-size: 20px; }
.card-specs { list-style: none; margin: 0; padding: 0; font-size: 14px; color: var(--texto-2); }
.card-link { margin-top: auto; color: var(--apv-azul); font-weight: 700; }
.card-producto .etiqueta-stock { align-self: flex-start; }

/* Chips */
.chip { display: inline-block; margin: 0 8px 8px 0; padding: 6px 14px; border-radius: 999px; background: var(--apv-azul-10); color: var(--apv-azul); text-decoration: none; font-size: 15px; }
.grupo-chips h3 { font-size: 16px; color: var(--texto-2); margin-top: 16px; }

/* Imagen visible / térmica y video */
.comparador-img { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.video iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; }

/* Barra fija en móvil */
.barra-movil { display: none; }
@media (max-width: 768px) {
	.barra-movil { display: flex; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 99; padding: 10px 16px; background: var(--blanco); box-shadow: 0 -4px 16px rgba(0,0,0,.1); }
	.barra-movil .button { flex: 1; text-align: center; }
	body { padding-bottom: 72px; }
	.apvir .seccion { padding: 44px 0; }
}

/* Las plantillas apvIR usan todo el ancho; las bandas de color van de borde a borde */
body.single-producto #page,
body.post-type-archive-producto #page,
body.tax-linea #page,
body.tax-industria #page,
body.tax-aplicacion #page { max-width: none; }
body.single-producto .site-content,
body.post-type-archive-producto .site-content,
body.tax-linea .site-content,
body.tax-industria .site-content,
body.tax-aplicacion .site-content { display: block; padding: 0; }
.apvir { width: 100%; }

/* Inicio, índices y páginas generales */
body.home #page, body.page #page { max-width: none; }
body.home .site-content, body.page .site-content { display: block; padding: 0; }
.hero-inicio { padding-top: 72px !important; padding-bottom: 56px !important; text-align: center; }
.hero-inicio .bajada { margin: 0 auto; }
.hero-inicio .ctas { justify-content: center; }
.contenido-inicio .wp-block-columns { gap: 32px; }
.contenido-inicio strong { font-size: 1.15em; }
.grilla-terminos { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.card-termino { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid var(--borde); border-radius: var(--radio); background: var(--blanco); color: var(--texto); text-decoration: none; }
.card-termino:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); color: var(--texto); }
.card-termino img { border-radius: 8px; aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.card-termino h3 { margin: 6px 0 0; font-size: 20px; }
.card-termino p { margin: 0; font-size: 15px; color: var(--texto-2); }
.cabecera-pagina { padding-top: 24px; padding-bottom: 8px; }
.contenido-pagina { padding-bottom: 64px; max-width: 860px !important; }
.contenido-pagina table { width: 100%; border-collapse: collapse; font-size: 15px; }
.contenido-pagina th, .contenido-pagina td { border-bottom: 1px solid var(--borde); padding: 10px 8px; text-align: left; }

/* Comparador */
.comp-controles { margin-bottom: 12px; font-size: 15px; }
.comp-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.comp-tabla { width: 100%; min-width: 680px; border-collapse: collapse; font-size: 15px; table-layout: fixed; }
.comp-tabla th, .comp-tabla td { padding: 12px 10px; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: top; }
.comp-tabla thead th { vertical-align: bottom; }
.comp-tabla thead img { display: block; max-height: 140px; width: auto; margin: 12px auto; }
.comp-tabla select { width: 100%; font-weight: 700; padding: 8px; border-radius: 8px; border: 1px solid var(--borde); }
.comp-etiqueta { width: 24%; color: var(--texto-2); font-weight: 700; }
.comp-grupo th { background: var(--gris-fondo); font-size: 16px; }
.comp-ctas { display: flex; gap: 12px; align-items: center; margin-top: 8px; font-size: 14px; }
.comp-ctas .button { padding: 8px 16px; }
.comp-tabla.solo-dif tbody tr:not(.es-distinto):not(.comp-grupo) { display: none; }
.comp-tabla .es-distinto td { background: var(--apv-azul-10); }
.comp-tabla:not(.solo-dif) .es-distinto td { background: transparent; }

/* Selector */
.selector fieldset { border: 1px solid var(--borde); border-radius: var(--radio); padding: 20px; margin: 0 0 20px; }
.selector legend { font-weight: 700; font-size: 18px; padding: 0 8px; }
.selector label { display: block; padding: 10px 0; cursor: pointer; }
.selector input[type="radio"] { margin-right: 10px; accent-color: var(--apv-azul); }
.sel-caja { margin-top: 32px; padding: 28px; border-radius: var(--radio); background: var(--gris-fondo); }
.sel-principal { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: center; }
.sel-principal img { max-height: 260px; width: auto; margin: 0 auto; }
@media (min-width: 760px) { .sel-principal { grid-template-columns: 1fr 1.4fr; } }

/* ===== Ajustes v1.1: botones APV por sobre los colores de GeneratePress ===== */
a.button, a.button:visited, .button, button.button, .apvir-form button[type="submit"] {
	background-color: var(--apv-azul) !important;
	color: var(--blanco) !important;
	border: 0 !important;
	border-radius: 999px !important;
	text-decoration: none !important;
}
a.button:hover, a.button:focus, .button:hover, .apvir-form button[type="submit"]:hover { background-color: #002680 !important; color: var(--blanco) !important; }
a.button.secundario, a.button.secundario:visited {
	background-color: transparent !important;
	color: var(--apv-azul) !important;
	box-shadow: inset 0 0 0 2px var(--apv-azul);
}
a.button.secundario:hover { background-color: var(--apv-azul-10) !important; color: var(--apv-azul) !important; }
.banda-azul a.button, .banda-azul a.button:visited { background-color: var(--blanco) !important; color: var(--apv-azul) !important; }
.banda-azul a.button.secundario, .banda-azul a.button.secundario:visited { background-color: transparent !important; color: var(--blanco) !important; box-shadow: inset 0 0 0 2px var(--blanco); }

/* Formularios */
.apvir-form { max-width: 760px; margin: 8px 0 48px; }
.apvir-form .campos { display: grid; grid-template-columns: 1fr; gap: 16px; margin-bottom: 16px; }
@media (min-width: 700px) { .apvir-form .campos { grid-template-columns: 1fr 1fr; } .apvir-form .ancho { grid-column: 1 / -1; } }
.apvir-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 700; font-size: 15px; }
.apvir-form input[type="text"], .apvir-form input[type="email"], .apvir-form input[type="tel"], .apvir-form select, .apvir-form textarea {
	font: inherit; font-weight: 400; padding: 12px; border: 1px solid var(--borde); border-radius: 8px; background: var(--blanco); width: 100%;
}
.apvir-form .check { flex-direction: row; align-items: flex-start; gap: 10px; font-weight: 400; margin: 10px 0; }
.apvir-form .check input { margin-top: 5px; accent-color: var(--apv-azul); }
.apvir-form button[type="submit"] { padding: 14px 28px; font-weight: 700; margin-top: 12px; cursor: pointer; }
.apvir-form-error { background: #FDECEC; color: #8A1C1C; padding: 12px 16px; border-radius: 8px; }
.apvir-hp { position: absolute; left: -9999px; height: 1px; overflow: hidden; }

/* Pie de página APV */
.site-info { background: var(--apv-azul) !important; color: var(--blanco); }
.site-info a { color: var(--blanco); }
.pie-apv { font-size: 14px; line-height: 1.7; text-align: center; }

/* Menú en una línea y contenido alineado con el título */
@media (min-width: 1025px) {
	.main-navigation .main-nav ul li a { padding-left: 12px; padding-right: 12px; font-size: 15px; }
	.inside-header { max-width: var(--ancho); }
}
.apvir .contenido-pagina { max-width: var(--ancho) !important; }
.apvir .contenido-pagina > * { max-width: 860px; }
.apvir .contenido-pagina > .apvir-form { max-width: 760px; }

/* Logo APV en el encabezado */
.site-branding-container { gap: 14px; }
.site-header .header-image, .site-logo img { max-height: 42px !important; width: auto !important; }
.site-branding .main-title { font-size: 17px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.2; }
.site-branding .main-title a { color: #1d1d1f; }
@media (max-width: 768px) {
	.site-header .header-image, .site-logo img { max-height: 32px !important; }
	.site-branding .main-title { font-size: 15px; }
}
@media (min-width: 769px) { .main-navigation .main-nav ul li a { padding-left: 11px; padding-right: 11px; font-size: 14px; } }
.site-branding .main-title { font-size: 16px; }
@media (min-width: 769px) and (max-width: 1180px) { .site-branding .main-title { display: none; } }
