/*
Theme Name: Glassnou
Theme URI: https://glassnou.com
Author: Glassnou
Description: Tema para Glassnou, taller de reparación, sustitución, tintado y venta de lunas de coche en Barcelona. Web multipágina con servicios, nosotros, aseguradoras, contacto, vídeos y blog. Datos editables en Apariencia > Personalizar.
Version: 2.2.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: glassnou
*/

/*
 * Sistema visual (ver DESIGN.md): el rojo del rótulo, el grafito del zócalo del taller
 * y el blanco de sus paredes. Una sola familia, Archivo, con su eje de anchura:
 * expandida para titulares (como un rótulo) y normal para leer.
 */
:root {
	--rotulo: #ea141c;
	--rotulo-oscuro: #bd0e15;
	--rotulo-claro: #ffebee;
	--grafito: #000000;
	--grafito-2: #16171b;
	--pared: #f6f6f4;
	--cemento: #8c9096;
	--tinta: #000000;
	--texto: #2d3036;
	--suave: #6a6e74;
	--linea: #e2e2df;
	--matricula: #1f3f99;
	--blanco: #fff;

	--f: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	/* Escala 1,25 */
	--t-xs: .875rem;
	--t-s: 1rem;
	--t-m: 1.25rem;
	--t-l: 1.5625rem;
	--t-xl: 1.953rem;
	--t-2xl: 2.441rem;
	--t-3xl: clamp(2.441rem, 5.2vw, 3.815rem);

	--r-ctrl: 6px;
	--r-img: 4px;
	--max: 1240px;
	--franja: 8px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: clip; font-family: var(--f); font-size: var(--t-s); line-height: 1.6; color: var(--texto); background: var(--blanco); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--rotulo); text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--rotulo); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--f); color: var(--tinta); margin: 0 0 .5em; line-height: 1.08; font-weight: 800; font-stretch: 125%; letter-spacing: -.02em; }
h2 { font-size: var(--t-2xl); }
h3 { font-size: var(--t-m); font-stretch: 112%; letter-spacing: -.01em; line-height: 1.2; }
p { margin: 0 0 1em; max-width: 68ch; }
.screen-reader-text { position: absolute; left: -9999px; }
.screen-reader-text:focus { left: 16px; top: 16px; z-index: 999; background: #fff; padding: 8px 12px; }

.gn-container { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 20px; }
.gn-section { padding: 88px 0; }
.gn-section--soft { background: var(--pared); }
.gn-section--dark { background: var(--grafito); color: #d9dadc; }
.gn-section--dark h2, .gn-section--dark h3 { color: #fff; }
.gn-center { text-align: center; }
.gn-center p { margin-left: auto; margin-right: auto; }
.gn-head { max-width: 760px; margin: 0 0 48px; }
.gn-head p { color: var(--suave); font-size: var(--t-m); line-height: 1.5; }
.gn-section--dark .gn-head p { color: var(--cemento); }
.gn-center .gn-head, .gn-head.gn-center { margin-left: auto; margin-right: auto; }

/* Logo: co-branding oficial Glass Talleres + Glassnou */
.gn-logo { display: inline-flex; align-items: center; text-decoration: none; line-height: 1; flex-shrink: 0; }
.gn-logo__img { height: 48px; width: auto; max-height: 52px; object-fit: contain; display: block; }
.gn-logo b { color: var(--rotulo); font-weight: 900; }
.gn-logo small { display: none; }
.custom-logo { max-height: 48px; width: auto; }

/* Botones: un radio para controles, sin flechas ni mayúsculas */
.gn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 12px 24px; border-radius: var(--r-ctrl); border: 2px solid transparent; cursor: pointer; font: inherit; font-weight: 700; font-stretch: 105%; text-decoration: none; white-space: nowrap; transition: background-color .15s, border-color .15s, color .15s; }
.gn-btn svg { width: 20px; height: 20px; flex: none; }
.gn-btn--red { background: var(--rotulo); color: #fff; }
.gn-btn--red:hover { background: var(--rotulo-oscuro); }
.gn-btn--dark { background: var(--grafito); color: #fff; }
.gn-btn--dark:hover { background: var(--tinta); }
.gn-btn--white { background: #fff; color: var(--tinta); }
.gn-btn--white:hover { background: var(--pared); }
.gn-btn--line, .gn-btn--outline { border-color: var(--tinta); color: var(--tinta); background: transparent; }
.gn-btn--line:hover, .gn-btn--outline:hover { background: var(--tinta); color: #fff; }
.gn-btn--outline-light { border-color: rgba(255,255,255,.6); color: #fff; background: transparent; }
.gn-btn--outline-light:hover { border-color: #fff; background: rgba(255,255,255,.1); }
.gn-btn--block { width: 100%; }
.gn-link { font-weight: 700; color: var(--rotulo); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.gn-stars { color: #f2a900; letter-spacing: 1px; }

/* Topbar y cabecera */
.gn-topbar { background: #000000; color: #a1a5ad; font-size: var(--t-xs); border-bottom: 1px solid #16171a; }
.gn-topbar .gn-container { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 8px; padding-bottom: 8px; }
.gn-topbar a { color: #f3f4f6; text-decoration: none; }
.gn-topbar a:hover { color: #fff; text-decoration: underline; }
.gn-topbar__items { display: flex; gap: 24px; align-items: center; }
.gn-topbar__items span, .gn-topbar__items a { display: inline-flex; align-items: center; gap: 6px; }
.gn-topbar svg { width: 15px; height: 15px; color: var(--rotulo); }

.gn-header { background: #000000; position: sticky; top: 0; z-index: 50; border-bottom: 4px solid var(--rotulo); box-shadow: 0 4px 20px rgba(0,0,0,.35); }
.admin-bar .gn-header { top: 32px; }
.gn-header .gn-container { display: flex; align-items: center; justify-content: space-between; height: 76px; gap: 24px; }
.gn-nav > ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; align-items: center; }
.gn-nav li { position: relative; }
.gn-nav a { display: inline-flex; align-items: center; white-space: nowrap; padding: 10px 14px; text-decoration: none; color: #a1a5ad; font-weight: 600; font-size: .95rem; border-radius: var(--r-ctrl); transition: color .18s ease; position: relative; }
.gn-nav a:hover { color: #ffffff; }
.gn-nav .is-current > a { color: #ffffff; font-weight: 700; background: transparent; }
.gn-nav .is-current > a::after { content: ""; position: absolute; bottom: 0; left: 14px; right: 14px; height: 3px; background: var(--rotulo); border-radius: 3px 3px 0 0; box-shadow: 0 0 10px rgba(234, 20, 28, .85); }
.gn-nav .has-sub > a::after { content: ""; display: inline-block; width: 5px; height: 5px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-left: 8px; vertical-align: 2px; }
.gn-nav .has-sub.is-current > a::after { position: static; width: 5px; height: 5px; background: transparent; box-shadow: none; border-radius: 0; }
.gn-sub { list-style: none; margin: 0; padding: 8px; position: absolute; top: 100%; left: 0; min-width: 260px; background: #0f1013; border: 1px solid #23262d; border-top: 3px solid var(--rotulo); border-radius: 0 0 var(--r-ctrl) var(--r-ctrl); display: none; box-shadow: 0 14px 30px rgba(0,0,0,.5); }
.gn-nav li:hover > .gn-sub, .gn-nav li:focus-within > .gn-sub { display: block; }
.gn-sub a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: var(--r-ctrl); color: #e5e7eb; }
.gn-sub a:hover { background: rgba(234, 20, 28, .22); color: #fff; }
.gn-sub svg { width: 20px; height: 20px; color: var(--rotulo); flex: none; }
.gn-header__actions { display: flex; align-items: center; gap: 18px; }
.gn-header__phone { display: flex; align-items: center; gap: 10px; text-decoration: none; color: #fff; line-height: 1.15; }
.gn-header__phone svg { width: 22px; height: 22px; color: var(--rotulo); }
.gn-header__phone small { display: block; color: #9ca3af; font-size: .75rem; }
.gn-header__phone strong { font-weight: 800; font-stretch: 110%; white-space: nowrap; color: #fff; }
.gn-menu-toggle { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
.gn-menu-toggle span { display: block; width: 26px; height: 3px; background: #fff; margin: 5px 0; border-radius: 2px; }

/* Hero: limpio, ordenado, de máxima jerarquía visual y confianza */
.gn-hero { background: var(--pared); overflow: hidden; }
.gn-hero--modern {
	background: radial-gradient(circle at 75% 25%, rgba(234, 20, 28, 0.12) 0%, transparent 45%), radial-gradient(circle at 20% 80%, rgba(255, 255, 255, 0.03) 0%, transparent 40%), #0c0d12;
	color: #fff;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.gn-hero .gn-container { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 56px; align-items: center; padding-top: 52px; padding-bottom: 64px; }
.gn-hero__text { padding-bottom: 0; }
.gn-hero__tag { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); color: #f1f2f4; font-size: .8rem; font-weight: 700; margin-bottom: 18px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.gn-hero h1 { font-size: clamp(2.3rem, 4.6vw, 3.6rem); font-weight: 900; font-stretch: 125%; letter-spacing: -.035em; line-height: 1.04; margin-bottom: 18px; color: #fff; }
.gn-hero__highlight { color: var(--rotulo); text-shadow: 0 0 30px rgba(234, 20, 28, 0.4); }
.gn-hero__lead { font-size: 1.12rem; line-height: 1.55; color: #b9bcc4; max-width: 38em; margin-bottom: 24px; }

/* Lista de ventajas ordenada */
.gn-hero__checks { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 12px; }
.gn-hero__checks li { display: flex; align-items: center; gap: 12px; font-size: .95rem; color: #d1d5db; line-height: 1.4; }
.gn-check-icon { width: 26px; height: 26px; border-radius: 50%; background: rgba(234, 20, 28, 0.16); color: var(--rotulo); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gn-check-icon svg { width: 14px; height: 14px; }
.gn-hero__checks strong { color: #fff; }

.gn-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 22px; align-items: center; }
.gn-btn--lg { min-height: 54px; padding: 14px 26px; font-size: 1rem; font-weight: 800; }
.gn-btn--whatsapp { background: #25d366; color: #fff; border: 0; font-weight: 700; display: inline-flex; align-items: center; gap: 8px; box-shadow: 0 4px 14px rgba(37, 211, 102, 0.35); }
.gn-btn--whatsapp:hover { background: #20ba5a; color: #fff; transform: translateY(-1px); }

.gn-hero__rating-bar { display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; color: #9ca3af; flex-wrap: wrap; }
.gn-hero__rating-bar .gn-stars { color: #f59e0b; font-size: 1.05rem; }
.gn-hero__rating-bar strong { color: #fff; font-size: .95rem; }

/* Vitrina fotográfica enriquecida: taller y unidad móvil */
.gn-hero__visual { position: relative; }
.gn-hero-showcase {
	position: relative;
	display: grid;
	grid-template-columns: 1.08fr 0.92fr;
	gap: 16px;
	align-items: end;
	max-width: 620px;
	margin: 0 0 0 auto;
}
@media (max-width: 1200px) {
	.gn-hero-showcase {
		grid-template-columns: 1fr;
		max-width: 440px;
		margin: 0 auto;
	}
	.gn-hero-card--mobile {
		display: none;
	}
}
.gn-hero-card {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	border: 1.5px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 25px 50px -15px rgba(0,0,0,0.8), 0 0 30px rgba(234, 20, 28, 0.12);
	background: #13141a;
}
.gn-hero-card--primary img {
	width: 100%;
	aspect-ratio: 4 / 5.2;
	object-fit: cover;
	object-position: 50% 25%;
	display: block;
}
.gn-hero-card--mobile {
	transform: translateY(18px);
	border-color: rgba(234, 20, 28, 0.35);
	box-shadow: 0 20px 40px -10px rgba(0,0,0,0.9), 0 0 24px rgba(234, 20, 28, 0.2);
}
.gn-hero-card--mobile img {
	width: 100%;
	aspect-ratio: 4 / 3.6;
	object-fit: cover;
	object-position: center;
	display: block;
}
.gn-hero-card__tag {
	position: absolute;
	top: 12px;
	left: 12px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	border-radius: 999px;
	background: rgba(10, 11, 15, 0.88);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.16);
	font-size: .72rem;
	font-weight: 700;
	color: #f3f4f6;
	z-index: 2;
}
.gn-hero-card__tag--red {
	background: rgba(234, 20, 28, 0.9);
	border-color: rgba(255, 255, 255, 0.25);
	color: #fff;
	box-shadow: 0 2px 10px rgba(234, 20, 28, 0.5);
}
.gn-hero-card__caption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 20px 16px 14px;
	background: linear-gradient(180deg, transparent 0%, rgba(10, 11, 15, 0.96) 65%);
	color: #fff;
}
.gn-hero-card__caption strong {
	display: block;
	font-size: .94rem;
	font-weight: 800;
	color: #fff;
	line-height: 1.25;
}
.gn-hero-card__caption span {
	display: block;
	font-size: .74rem;
	color: #a1a5ad;
	margin-top: 3px;
	line-height: 1.35;
}

/* Barra de cita con campo de matrícula mejorada */
.gn-platebar { background: #0c0d12; padding: 0 0 54px; }
.gn-platebar .gn-container { max-width: 1360px; }
.gn-bar-wrapper { width: 100%; }
.gn-bar {
	position: relative;
	top: -36px;
	margin-bottom: -36px;
	background: #171821;
	border-radius: 20px;
	padding: 28px 32px 24px;
	border: 1.5px solid rgba(255, 255, 255, 0.14);
	box-shadow: 0 30px 60px -15px rgba(0,0,0,0.8), 0 0 30px rgba(234, 20, 28, 0.08);
	color: #fff;
}
.gn-bar__header { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 20px; flex-wrap: wrap; }
.gn-bar__title { font-size: 1.35rem; font-weight: 800; font-stretch: 112%; color: #fff; margin: 0 0 4px; }
.gn-bar__subtitle { color: #9da1aa; font-size: .88rem; margin: 0; }
.gn-bar__trust-mini { display: flex; gap: 16px; font-size: .8rem; font-weight: 600; color: #22c55e; }
.gn-bar__trust-mini span { display: inline-flex; align-items: center; gap: 6px; }
.gn-bar__trust-mini svg { width: 14px; height: 14px; }

.gn-bar__fields { display: grid; grid-template-columns: 1.25fr 1fr 1.15fr 1.15fr auto; gap: 14px; align-items: end; }
.gn-bar__field span { display: block; font-size: .8rem; font-weight: 600; color: #c4c7cf; margin-bottom: 6px; }
.gn-bar__field input, .gn-bar__field select { width: 100%; height: 54px; font: inherit; color: #fff; border: 1.5px solid rgba(255, 255, 255, 0.12); border-radius: var(--r-ctrl); padding: 0 14px; background: #20222a; transition: border-color .2s, background .2s; }
.gn-bar__field input:focus, .gn-bar__field select:focus { border-color: var(--rotulo); outline: 0; background: #252833; }
.gn-bar .gn-btn { height: 54px; }
.gn-bar__submit { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 800; padding: 0 24px; }
.gn-bar__submit svg { width: 18px; height: 18px; }

.gn-bar__footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 14px; flex-wrap: wrap; font-size: .8rem; color: #8e929b; }
.gn-bar__footer .gn-check { margin-top: 0; color: #a1a5ad; }
.gn-bar__whatsapp-alt { font-size: .82rem; }
.gn-bar__whatsapp-alt a { color: #25d366; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; }
.gn-bar__whatsapp-alt a:hover { text-decoration: underline; }
.gn-bar__whatsapp-alt svg { width: 14px; height: 14px; }

.gn-plate {
	display: flex;
	align-items: stretch;
	height: 54px;
	background: #ffffff;
	border: 2px solid #14161f;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.9);
	transition: border-color .2s ease, box-shadow .2s ease;
}
.gn-plate:focus-within {
	border-color: var(--rotulo);
	box-shadow: 0 0 0 3px rgba(234, 20, 28, 0.35), 0 6px 18px rgba(0, 0, 0, 0.45);
}
.gn-plate__eu {
	width: 38px;
	flex: 0 0 38px;
	background: #003399;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	padding: 4px 0;
	user-select: none;
	box-sizing: border-box;
}
.gn-plate__eu-flag {
	width: 22px;
	height: 16px;
	display: block;
}
.gn-plate__country {
	color: #ffffff;
	font-weight: 900;
	font-size: 15px;
	line-height: 1;
	font-family: Arial, -apple-system, sans-serif;
	letter-spacing: 0.5px;
}
.gn-plate input {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	height: 100% !important;
	border: none !important;
	outline: none !important;
	background: transparent !important;
	color: #11141a !important;
	font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif !important;
	font-size: 1.55rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	padding: 0 14px !important;
	line-height: 50px !important;
	box-shadow: none !important;
}
.gn-plate input::placeholder {
	color: #9299a8 !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	opacity: 0.75 !important;
}

/* Estado confirmado de cita */
.gn-bar--confirmed {
	background: linear-gradient(135deg, #132219 0%, #151b1f 100%);
	border: 1.5px solid rgba(37, 211, 102, 0.35);
	text-align: center;
	padding: 36px 28px;
}
.gn-bar-confirmed__badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(37, 211, 102, 0.15);
	color: #25d366;
	font-size: .82rem;
	font-weight: 800;
	padding: 4px 12px;
	border-radius: 999px;
	margin-bottom: 12px;
}
.gn-bar-confirmed__content h3 { color: #fff; font-size: 1.6rem; font-weight: 900; margin-bottom: 8px; }
.gn-bar-confirmed__content h3 span { color: #ffd23f; font-family: monospace; background: #000; padding: 2px 10px; border-radius: 6px; border: 1px solid #333; margin-left: 6px; }
.gn-bar-confirmed__content p { color: #c4c7cc; font-size: 1rem; max-width: 600px; margin: 0 auto 20px; }
.gn-bar-confirmed__actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }

/* Formulario de cita (página de contacto) */
.gn-form { background: #fff; color: var(--texto); border-radius: var(--r-ctrl); padding: 32px; border: 1px solid var(--linea); }
.gn-form h2 { font-size: var(--t-xl); margin-bottom: 4px; }
.gn-form > p { color: var(--suave); }
.gn-field { margin-bottom: 14px; }
.gn-field label { display: block; font-size: .8rem; font-weight: 600; color: var(--suave); margin-bottom: 6px; }
.gn-input { position: relative; }
.gn-input svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: var(--suave); pointer-events: none; }
.gn-input input, .gn-input select, .gn-input textarea { width: 100%; font: inherit; color: var(--tinta); background: #fff; border: 1.5px solid var(--linea); border-radius: var(--r-ctrl); padding: 13px 14px 13px 44px; outline: 0; }
.gn-input input:focus, .gn-input select:focus { border-color: var(--tinta); }
.gn-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gn-check { display: flex; gap: 10px; align-items: flex-start; font-size: var(--t-xs); color: var(--suave); margin-top: 14px; }
.gn-check input { margin-top: 4px; accent-color: var(--rotulo); }
.gn-notice { padding: 12px 16px; border-radius: var(--r-ctrl); margin: 0 0 16px; font-weight: 600; max-width: none; }
.gn-notice--ok { background: #e6f4ea; color: #1b5e33; }
.gn-notice--error { background: var(--rotulo-claro); color: var(--rotulo-oscuro); }

/* Servicios: foto arriba, texto debajo */
.gn-services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.gn-services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.gn-hero-blocks { margin-bottom: 48px; }
.gn-hero-blocks__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.gn-hero-block { display: flex; flex-direction: column; background: #fff; border: 1.5px solid var(--linea); border-radius: 10px; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; position: relative; }
.gn-hero-block:hover { transform: translateY(-5px); border-color: #b0b4ba; box-shadow: 0 18px 36px -16px rgba(20,20,20,.18); }
.gn-hero-block__image { height: 200px; flex: 0 0 auto; position: relative; overflow: hidden; }
.gn-hero-block__image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.gn-hero-block:hover .gn-hero-block__image img { transform: scale(1.04); }
.gn-hero-block__badge { position: absolute; top: 12px; left: 12px; background: rgba(0, 0, 0, 0.85); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .03em; padding: 5px 10px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.18); z-index: 2; line-height: 1.2; }
.gn-hero-block__content { display: flex; flex-direction: column; flex: 1 1 auto; padding: 22px 20px; text-align: center; }
.gn-hero-block__content h3 { margin-bottom: 8px; font-size: 1.2rem; }
.gn-hero-block__content p { margin: 0 0 20px; font-size: .92rem; color: var(--suave); line-height: 1.5; }
.gn-hero-block__link { width: 100%; margin-top: auto; }

@media (max-width: 1100px) {
	.gn-hero-blocks__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.gn-hero-block { flex: 1 1 100%; }
}

@media (max-width: 900px) {
	.gn-hero-blocks__grid { grid-template-columns: 1fr; gap: 16px; }
}

@media (max-width: 600px) {
	.gn-hero-blocks__grid { grid-template-columns: 1fr; }
	.gn-hero-block { margin-bottom: 24px; }
}
.gn-service { text-decoration: none; color: var(--texto); display: flex; flex-direction: column; }
.gn-service img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-img); margin-bottom: 18px; }
.gn-service h3 { margin-bottom: 8px; }
.gn-service p { color: var(--suave); font-size: .95rem; }
.gn-service .gn-link { margin-top: auto; }
.gn-service:hover h3 { color: var(--rotulo); }

/* Imagen + texto */
.gn-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.gn-split--rev > :first-child { order: 2; }
.gn-split__media { position: relative; }
.gn-split__media img { border-radius: var(--r-img); width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.gn-split__badge { position: absolute; left: 0; bottom: 0; background: var(--rotulo); color: #fff; padding: 16px 20px; display: flex; gap: 12px; align-items: center; }
.gn-split__badge strong { font-size: var(--t-2xl); font-stretch: 125%; line-height: 1; }
.gn-split__badge span { font-size: var(--t-xs); line-height: 1.3; }
.gn-checks { list-style: none; padding: 0; margin: 24px 0 32px; display: grid; gap: 12px; }
.gn-checks li { display: flex; gap: 12px; align-items: flex-start; }
.gn-checks li::before { content: ""; flex: none; width: 20px; height: 20px; margin-top: 3px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d7141a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat; }

/* Pasos: es una secuencia, por eso van numerados */
.gn-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; counter-reset: step; border-top: 2px solid var(--tinta); }
.gn-step { padding: 24px 24px 0 0; }
.gn-step::before { counter-increment: step; content: counter(step); display: block; font-weight: 900; font-stretch: 125%; font-size: var(--t-2xl); color: var(--rotulo); line-height: 1; margin-bottom: 12px; }
.gn-step h3 { font-size: var(--t-m); }
.gn-step p { color: var(--suave); margin: 0; }
.gn-section--dark .gn-steps { border-top-color: var(--cemento); }
.gn-section--dark .gn-step p { color: #d9dadc; }

/* Vídeos */
.gn-video-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.gn-phone-frame { margin: 0; cursor: pointer; }
.gn-phone-frame__screen { position: relative; border-radius: 26px; padding: 7px; background: #15171a; }
.gn-phone-frame video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 20px; display: block; background: #000; }
.gn-phone-frame__sound { position: absolute; right: 16px; bottom: 16px; width: 38px; height: 38px; border-radius: 50%; background: rgba(0,0,0,.55); display: grid; place-items: center; color: #fff; }
.gn-phone-frame__sound svg { width: 20px; height: 20px; }
.gn-phone-frame.is-playing .gn-phone-frame__sound { background: var(--rotulo); }
.gn-phone-frame figcaption { margin-top: 14px; }
.gn-phone-frame figcaption strong { display: block; color: #fff; font-stretch: 112%; }
.gn-phone-frame figcaption span { color: var(--cemento); font-size: var(--t-xs); }
.gn-video-single { max-width: 320px; margin: 0 auto; }

/* Opiniones: citas con la franja roja encima, sin tarjetas */
.gn-reviews { display: grid; grid-template-columns: 260px repeat(3, minmax(0, 1fr)); gap: 40px; align-items: start; }
.gn-score { color: var(--tinta); text-decoration: none; display: flex; flex-direction: column; }
.gn-score__g { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--suave); margin-bottom: 8px; }
.gn-score__g svg { width: 20px; height: 20px; }
.gn-score strong { font-size: 4.5rem; font-weight: 900; font-stretch: 125%; line-height: 1; letter-spacing: -.04em; }
.gn-score .gn-stars { font-size: 1.2rem; margin: 6px 0; }
.gn-score small { color: var(--suave); }
.gn-score .gn-link { margin-top: 16px; }
.gn-review { border-top: var(--franja) solid var(--rotulo); padding-top: 20px; display: flex; flex-direction: column; }
.gn-review blockquote { margin: 10px 0 20px; font-size: var(--t-m); line-height: 1.45; color: var(--tinta); }
.gn-review footer { display: flex; align-items: center; gap: 12px; }
.gn-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--grafito); color: #fff; display: grid; place-items: center; font-weight: 800; flex: none; }
.gn-review footer strong { display: block; font-size: .95rem; color: var(--tinta); }
.gn-review footer small { color: var(--suave); }
.gn-quotes { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 40px; color: var(--suave); font-size: .95rem; }

/* Galería */
.gn-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 220px; gap: 12px; }
.gn-gallery figure { margin: 0; overflow: hidden; border-radius: var(--r-img); position: relative; }
.gn-gallery figure:nth-child(1) { grid-row: span 2; }
.gn-gallery figure:nth-child(5) { grid-column: span 2; }
.gn-gallery img { width: 100%; height: 100%; object-fit: cover; object-position: center 70%; }
.gn-gallery figcaption { position: absolute; left: 0; bottom: 0; background: #fff; color: var(--tinta); font-size: .8rem; font-weight: 600; padding: 6px 10px; max-width: 90%; }

/* Aseguradoras: marquesina continua, logotipos en gris */
.gn-marquee {
	position: relative;
	overflow: hidden;
	padding: 8px 0;
	margin: 8px 0 0;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.gn-marquee__track {
	display: flex;
	width: max-content;
	animation: gn-marquee 70s linear infinite;
	will-change: transform;
}
.gn-marquee:hover .gn-marquee__track,
.gn-marquee:focus-within .gn-marquee__track { animation-play-state: paused; }
.gn-marquee__item {
	flex: 0 0 auto;
	width: 190px;
	height: 104px;
	margin: 0 10px;
	padding: 20px 24px;
	margin-bottom: 0;
	background: #f7f6f3;
	border: 1px solid var(--linea);
	border-radius: var(--r-ctrl);
	display: grid;
	place-items: center;
}
.gn-marquee__item img {
	max-width: 100%;
	max-height: 58px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: grayscale(1) contrast(1.6) brightness(.96);
	mix-blend-mode: multiply;
	opacity: .9;
	transition: opacity .25s, filter .25s;
}
.gn-marquee__item:hover img { opacity: 1; filter: grayscale(1) contrast(1.5); }
.gn-marquee__note {
	margin: 24px auto 0;
	color: var(--suave);
	font-size: .95rem;
}
@keyframes gn-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.gn-marquee__track { animation: none; }
}
@media (max-width: 600px) {
	.gn-marquee__item { width: 150px; height: 88px; padding: 16px; margin: 0 7px; }
	.gn-marquee__item img { max-height: 46px; }
}
.gn-search { max-width: 460px; margin: 0 auto; }

/* Coche 3D con tintado interactivo */
.gn-tint3d { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(360px, 1fr); background: #fff; border: 1px solid var(--linea); border-radius: var(--r-ctrl); overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.06); }

/* Barra superior: Selector de 4 tipos de vehículos */
.gn-tint3d__topbar {
	grid-column: 1 / -1;
	background: #111319;
	color: #fff;
	padding: 16px 20px;
	border-bottom: 1px solid #232733;
}
.gn-tint3d__step-badge {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
	flex-wrap: wrap;
}
.gn-tint3d__step-hint {
	font-size: .82rem;
	color: #9ca3af;
}
.gn-tint3d__vehicle-tabs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
@media (max-width: 900px) {
	.gn-tint3d__vehicle-tabs {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 480px) {
	.gn-tint3d__vehicle-tabs {
		grid-template-columns: 1fr;
	}
}
.gn-tint3d__vtab {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	background: #191c24;
	border: 2px solid #272b38;
	border-radius: var(--r-ctrl);
	color: #fff;
	cursor: pointer;
	text-align: left;
	transition: all .2s ease;
	font: inherit;
}
.gn-tint3d__vtab:hover {
	background: #202430;
	border-color: #3b4255;
}
.gn-tint3d__vtab.is-active {
	background: rgba(234, 20, 28, 0.12);
	border-color: var(--rotulo);
	box-shadow: 0 0 0 1px var(--rotulo);
}
.gn-tint3d__vtab-icon {
	font-size: 1.8rem;
	line-height: 1;
	flex-shrink: 0;
}
.gn-tint3d__vtab-info {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.gn-tint3d__vtab-title {
	font-size: .95rem;
	font-weight: 800;
	color: #fff;
	line-height: 1.2;
}
.gn-tint3d__vtab.is-active .gn-tint3d__vtab-title {
	color: #ff5b63;
}
.gn-tint3d__vtab-sub {
	font-size: .72rem;
	color: #9ca3af;
	margin-top: 2px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.gn-tint3d__vtab-price {
	font-size: .78rem;
	font-weight: 800;
	color: #22c55e;
	margin-top: 4px;
}
.gn-tint3d__vbadge {
	position: absolute;
	top: 16px;
	left: 140px;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(20, 20, 20, 0.78);
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: #fff;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	z-index: 2;
	backdrop-filter: blur(4px);
}
.gn-tint3d__step-mini {
	display: block;
	font-size: .74rem;
	color: var(--suave);
	margin-top: 4px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.gn-tint3d__stage { position: relative; min-height: 480px; background: radial-gradient(120% 110% at 50% 0%, #f7f8f9 0%, #eceff1 55%, #dde1e4 100%); }
.gn-tint3d__canvas { position: absolute; inset: 0; display: block; width: 100% !important; height: 100% !important; touch-action: none; }
.gn-tint3d__loader { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 14px; padding: 24px; text-align: center; font-size: .9rem; color: var(--suave); background: rgba(247, 248, 249, .82); transition: opacity .35s; z-index: 3; }
.gn-tint3d.is-ready .gn-tint3d__loader { opacity: 0; pointer-events: none; visibility: hidden; display: none; }
.gn-tint3d.is-error .gn-tint3d__loader { background: rgba(247, 248, 249, .96); color: var(--tinta); }
.gn-tint3d__spinner { width: 34px; height: 34px; border-radius: 50%; border: 2px solid rgba(20, 20, 20, .12); border-top-color: var(--rotulo); animation: gn-spin 1s linear infinite; }
@keyframes gn-spin { to { transform: rotate(360deg); } }
.gn-tint3d__tag { position: absolute; top: 16px; left: 16px; padding: 6px 10px; border-radius: 999px; background: rgba(20, 20, 20, .72); color: #fff; font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; z-index: 2; }
.gn-tint3d__hint { position: absolute; left: 0; right: 0; bottom: 14px; text-align: center; font-size: .74rem; color: #6f767c; pointer-events: none; z-index: 2; }
.gn-tint3d__panel { display: grid; gap: 16px; align-content: start; padding: 24px 26px; border-left: 1px solid var(--linea); background: #fff; min-width: 0; box-sizing: border-box; }
.gn-tint3d__label { display: block; margin-bottom: 10px; font-size: .88rem; font-weight: 700; color: var(--tinta); }
.gn-tint3d__levels-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 4px; }
.gn-tint3d__btn { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 12px 14px; border-radius: var(--r-ctrl); border: 2px solid var(--linea); background: #fff; cursor: pointer; text-align: left; transition: all .15s ease; font: inherit; }
.gn-tint3d__btn strong { font-size: 1.05rem; font-weight: 800; color: var(--tinta); }
.gn-tint3d__btn small { font-size: .78rem; color: var(--suave); margin-top: 2px; }
.gn-tint3d__btn:hover { border-color: #b0b4ba; background: #fafafa; }
.gn-tint3d__btn.is-active { border-color: var(--rotulo); background: rgba(234, 20, 28, .05); box-shadow: 0 0 0 1px var(--rotulo); }
.gn-tint3d__btn.is-active strong { color: var(--rotulo); }
.gn-tint3d__btn.is-active small { color: var(--rotulo-oscuro); }
.gn-tint3d__select-fallback { display: none; }
.gn-tint3d__field select { width: 100%; height: 48px; font: inherit; color: var(--tinta); border: 1.5px solid var(--linea); border-radius: var(--r-ctrl); padding: 0 14px; background: #fff; }
.gn-tint3d__state { display: grid; gap: 8px; }
.gn-tint3d__chip { display: flex; align-items: center; gap: 6px; padding: 10px 14px; font-size: .86rem; color: var(--suave); background: var(--pared); border: 1px solid var(--linea); border-radius: 8px; }
.gn-tint3d__chip b { margin-left: auto; color: var(--rotulo); font-weight: 800; }
.gn-tint3d__warning { padding: 14px 16px; border-radius: var(--r-ctrl); background: var(--rotulo-claro); color: var(--rotulo-oscuro); font-size: .9rem; line-height: 1.45; }
.gn-tint3d__warning strong { display: block; margin-bottom: 4px; color: var(--rotulo); }
.gn-tint3d__warning p { margin: 0; max-width: none; }
.gn-tint3d__brand-pill { position: absolute; top: 16px; right: 16px; padding: 6px 12px; border-radius: 999px; background: var(--rotulo); color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; z-index: 2; box-shadow: 0 4px 12px rgba(234, 20, 28, 0.4); }
.gn-tint3d__header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--linea); }
.gn-tint3d__price-tag { text-align: right; flex-shrink: 0; white-space: nowrap; margin-left: auto; }
.gn-tint3d__price-from { font-size: .72rem; color: var(--suave); display: block; text-transform: uppercase; font-weight: 700; }
.gn-tint3d__price-tag strong { font-size: 1.8rem; font-weight: 900; color: var(--rotulo); line-height: 1; font-family: var(--f); display: block; }
.gn-tint3d__price-tag small { font-size: .72rem; color: var(--suave); display: block; }
.gn-tint3d__label-row { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.gn-tint3d__same-price { font-size: .75rem; font-weight: 700; color: #16a34a; white-space: nowrap; }
.gn-tint3d__btn-top { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.gn-tint3d__btn-badge { font-size: .65rem; font-weight: 800; text-transform: uppercase; background: rgba(0,0,0,0.06); padding: 2px 6px; border-radius: 4px; color: var(--suave); }
.gn-tint3d__btn.is-active .gn-tint3d__btn-badge { background: var(--rotulo); color: #fff; }
.gn-tint3d__features-list { display: grid; gap: 8px; }
.gn-tint3d__feat { display: flex; gap: 10px; align-items: flex-start; font-size: .84rem; background: var(--pared); padding: 10px 12px; border-radius: 8px; border: 1px solid var(--linea); }
.gn-tint3d__feat-icon { font-size: 1.05rem; line-height: 1; flex-shrink: 0; margin-top: 1px; }
.gn-tint3d__feat strong { display: block; color: var(--tinta); font-size: .88rem; line-height: 1.2; }
.gn-tint3d__feat small { display: block; color: var(--suave); font-size: .76rem; line-height: 1.35; margin-top: 2px; }
.gn-tint3d__credit { margin: 0; font-size: .7rem; line-height: 1.45; color: #8a9095; }
.gn-tint3d__credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.gn-tint3d__noscript { margin-top: 16px; font-size: .9rem; color: var(--suave); }
@media (max-width: 1024px) {
	.gn-tint3d { grid-template-columns: 1fr; }
	.gn-tint3d__stage { min-height: 400px; }
	.gn-tint3d__panel { padding: 24px; border-left: 0; border-top: 1px solid var(--linea); }
}
@media (max-width: 900px) {
	.gn-tint3d { grid-template-columns: 1fr; }
	.gn-tint3d__stage { min-height: 360px; }
	.gn-tint3d__panel { padding: 24px; border-left: 0; border-top: 1px solid var(--linea); }
}
@media (max-width: 600px) {
	.gn-tint3d__stage { min-height: 300px; }
	.gn-tint3d__hint { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.gn-tint3d__spinner { animation: none; }
}

/* Simulador 3D de Reparación de Parabrisas */
.gn-repair3d-wrap { margin-top: 10px; margin-bottom: 24px; }
.gn-repair3d {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.15fr);
	background: #0b0d10;
	border: 1.5px solid #1c212a;
	border-radius: var(--r-ctrl);
	overflow: hidden;
	box-shadow: 0 16px 40px rgba(0,0,0,0.4);
}
.gn-repair3d__stage {
	position: relative;
	min-height: 520px;
	background: radial-gradient(120% 110% at 50% 10%, #1a1e27 0%, #0d1015 60%, #07080b 100%);
}
.gn-repair3d__canvas {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	touch-action: none;
}
.gn-repair3d__loader {
	position: absolute;
	inset: 0;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 12px;
	background: rgba(11, 13, 16, 0.92);
	color: #9ca3af;
	font-size: .88rem;
	z-index: 5;
}
.gn-repair3d__spinner {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.1);
	border-top-color: var(--rotulo);
	animation: gn-spin 1s linear infinite;
}
.gn-repair3d__tag {
	position: absolute;
	top: 14px;
	left: 14px;
	background: rgba(0, 0, 0, 0.78);
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: #fff;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	z-index: 4;
}
.gn-repair3d__status-pill {
	position: absolute;
	top: 14px;
	right: 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(234, 20, 28, 0.18);
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: #fff;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: .8rem;
	font-weight: 700;
	z-index: 4;
	transition: all .3s ease;
	max-width: calc(100% - 190px);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.gn-status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	animation: gn-status-pulse 1.8s infinite;
}
@keyframes gn-status-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.35; transform: scale(0.85); }
}

/* HUD técnico en tiempo real */
.gn-repair3d__hud {
	position: absolute;
	left: 14px;
	bottom: 18px;
	display: flex;
	flex-direction: column;
	gap: 5px;
	background: rgba(10, 12, 17, 0.88);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 12px;
	padding: 10px 14px;
	font-family: monospace;
	font-size: .75rem;
	color: #94a3b8;
	z-index: 4;
	pointer-events: none;
	box-shadow: 0 8px 24px rgba(0,0,0,0.5);
}
.gn-repair3d__hud-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}
.gn-repair3d__hud-label {
	color: #64748b;
	text-transform: uppercase;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .05em;
}
.gn-repair3d__hud-val {
	font-weight: 800;
	color: #fff;
}
.gn-repair3d__hud-val--vacuum { color: #38bdf8; }
.gn-repair3d__hud-val--pressure { color: #22c55e; }
.gn-repair3d__hud-val--uv { color: #c084fc; }

/* Barra de progreso de animación */
.gn-repair3d__timeline {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 4px;
	background: rgba(255, 255, 255, 0.08);
	z-index: 5;
}
.gn-repair3d__timeline-bar {
	height: 100%;
	width: 20%;
	background: linear-gradient(90deg, var(--rotulo), #ff6b6b);
	transition: width .35s ease;
}

.gn-repair3d__hint {
	position: absolute;
	bottom: 14px;
	left: 0;
	right: 0;
	text-align: center;
	color: #889098;
	font-size: .76rem;
	pointer-events: none;
	z-index: 3;
}
.gn-repair3d__panel {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 30px 26px;
	background: #0f1217;
	border-left: 1px solid #1c212a;
}
.gn-repair3d__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid #1c212a;
	padding-bottom: 14px;
}
.gn-repair3d__lead-tag {
	font-size: .72rem;
	color: var(--rotulo);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	display: block;
	margin-bottom: 2px;
}
.gn-repair3d__header h3 {
	font-size: 1.25rem;
	color: #fff;
	margin: 0;
	font-family: var(--f);
}
.gn-repair3d__play-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: #fff;
	padding: 7px 14px;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 700;
	cursor: pointer;
	transition: all .2s;
	font-family: var(--f);
}
.gn-repair3d__play-btn:hover {
	background: var(--rotulo);
	border-color: var(--rotulo);
}
.gn-repair3d__play-btn.is-playing {
	background: rgba(34, 197, 94, 0.18);
	border-color: #22c55e;
	color: #4ade80;
}
.gn-repair3d__steps-list {
	display: grid;
	gap: 8px;
}
.gn-repair-step {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 12px;
	background: rgba(255, 255, 255, 0.02);
	border: 1.5px solid rgba(255, 255, 255, 0.06);
	border-radius: 8px;
	text-align: left;
	cursor: pointer;
	transition: all .2s;
	color: #e5e7eb;
	font: inherit;
	width: 100%;
}
.gn-repair-step:hover {
	background: rgba(255, 255, 255, 0.05);
	border-color: rgba(255, 255, 255, 0.18);
}
.gn-repair-step.is-active {
	background: rgba(234, 20, 28, 0.12);
	border-color: var(--rotulo);
	box-shadow: 0 0 0 1px var(--rotulo);
}
.gn-step-num {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	font-weight: 900;
	font-size: .8rem;
	display: grid;
	place-items: center;
	flex-shrink: 0;
	font-family: var(--f);
}
.gn-repair-step.is-active .gn-step-num {
	background: var(--rotulo);
	color: #fff;
}
.gn-step-body strong {
	display: block;
	color: #fff;
	font-size: .88rem;
	font-weight: 700;
	margin-bottom: 2px;
}
.gn-step-body p {
	margin: 0;
	font-size: .76rem;
	color: #9ca3af;
	line-height: 1.35;
}
.gn-repair3d__meta-bar {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	padding: 10px 0;
	border-top: 1px solid #1c212a;
	border-bottom: 1px solid #1c212a;
	text-align: center;
}
.gn-repair3d__meta-bar strong {
	display: block;
	font-size: .92rem;
	color: #fff;
}
.gn-repair3d__meta-bar span {
	display: block;
	font-size: .72rem;
	color: #9ca3af;
}
@media (max-width: 900px) {
	.gn-repair3d { grid-template-columns: 1fr; }
	.gn-repair3d__stage { min-height: 380px; }
	.gn-repair3d__panel { border-left: 0; border-top: 1px solid #1c212a; padding: 24px 20px; }
}
@media (max-width: 600px) {
	.gn-repair3d__stage { min-height: 320px; }
	.gn-repair3d__status-pill { font-size: .74rem; padding: 5px 10px; }
	.gn-repair3d__hint { display: none; }
}

/* Galería compacta (Nosotros) */
.gn-gallery--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gn-gallery--compact figure { aspect-ratio: 4 / 3; }
.gn-gallery--compact img { height: 100%; }
.gn-gallery--compact figcaption { font-size: .78rem; }

/* Equipo */
.gn-team { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.gn-team__card { background: #fff; border: 1px solid var(--linea); border-radius: var(--r-ctrl); padding: 28px 22px; text-align: center; }
.gn-team__avatar { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 14px; border-radius: 50%; background: var(--rotulo-claro); color: var(--rotulo); font-weight: 800; font-size: 1.4rem; }
.gn-team__card h3 { margin-bottom: 6px; font-size: 1rem; }
.gn-team__card p { margin: 0; font-size: .88rem; color: var(--suave); }
@media (max-width: 900px) {
	.gn-gallery--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gn-team { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.gn-gallery--compact { grid-template-columns: 1fr; }
	.gn-team { grid-template-columns: 1fr; }
}
/* Llamada a la acción destacada */
.gn-section--cta-wrap { padding: 40px 0 88px; }
.gn-cta {
	background: linear-gradient(135deg, #090a0d 0%, #15171d 55%, #2a0b0d 100%);
	border: 1.5px solid rgba(234, 20, 28, 0.35);
	border-radius: 16px;
	padding: 48px 52px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	box-shadow: 0 24px 50px -15px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.08);
	position: relative;
	overflow: hidden;
}
.gn-cta::before {
	content: "";
	position: absolute;
	top: -60px;
	right: -60px;
	width: 260px;
	height: 260px;
	background: radial-gradient(circle, rgba(234, 20, 28, 0.24) 0%, transparent 70%);
	pointer-events: none;
}
.gn-cta__content { max-width: 680px; position: relative; z-index: 1; }
.gn-cta__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 12px;
	border-radius: 999px;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,255,255,0.1);
	color: #e5e7eb;
	font-size: .78rem;
	font-weight: 700;
	margin-bottom: 16px;
}
.gn-cta h2 {
	color: #fff;
	font-size: clamp(1.8rem, 3.4vw, 2.5rem);
	line-height: 1.12;
	margin-bottom: 12px;
	font-weight: 900;
	letter-spacing: -.02em;
}
.gn-cta p {
	margin: 0 0 18px;
	color: #c4c7cc;
	font-size: 1.05rem;
	line-height: 1.55;
	max-width: none;
}
.gn-cta__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	color: #9ca3af;
	font-size: .84rem;
	font-weight: 600;
}
.gn-cta__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex-shrink: 0;
	min-width: 260px;
	position: relative;
	z-index: 1;
}
.gn-cta__actions .gn-btn {
	min-height: 56px;
	width: 100%;
	justify-content: flex-start;
	padding: 10px 22px;
}
.gn-cta__actions .gn-btn span {
	display: flex;
	flex-direction: column;
	text-align: left;
	line-height: 1.15;
}
.gn-cta__actions .gn-btn span small { font-size: .74rem; font-weight: 500; opacity: .82; }
.gn-cta__actions .gn-btn span strong { font-size: 1.05rem; }

/* Sección destacada ENERGYSA */
.gn-energysa-section {
	background: linear-gradient(145deg, #090a0d 0%, #14161b 50%, #1e090b 100%);
	position: relative;
	overflow: hidden;
	border-top: 1px solid #23262d;
	border-bottom: 1px solid #23262d;
}
.gn-energysa-card {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 52px;
	align-items: center;
	background: rgba(255,255,255,0.02);
	border: 1.5px solid rgba(234, 20, 28, 0.3);
	border-radius: 16px;
	padding: 48px;
	box-shadow: 0 24px 50px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.08);
}
.gn-energysa-title {
	font-size: clamp(2rem, 3.8vw, 2.9rem);
	line-height: 1.1;
	color: #fff;
	margin-bottom: 16px;
	letter-spacing: -.02em;
}
.gn-energysa-desc {
	font-size: 1.05rem;
	line-height: 1.6;
	color: #c4c7cc;
	margin-bottom: 24px;
	max-width: 64ch;
}
.gn-energysa-tones-wrap {
	background: rgba(0,0,0,0.45);
	border: 1px solid #23262d;
	border-radius: 12px;
	padding: 20px;
	margin-bottom: 22px;
}
.gn-tones-header {
	display: block;
	font-size: .88rem;
	font-weight: 800;
	color: #fff;
	margin-bottom: 12px;
	text-transform: uppercase;
	letter-spacing: .06em;
}
.gn-badge-novedad {
	background: #fff;
	color: var(--rotulo);
	padding: 2px 8px;
	border-radius: 999px;
	margin-right: 6px;
	font-weight: 900;
	letter-spacing: .06em;
	font-size: .74rem;
	display: inline-block;
}

.gn-vtabs-pills-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
	margin-bottom: 8px;
}
.gn-vpill {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px 10px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 8px;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-size: .84rem;
	transition: all .2s ease;
}
.gn-vpill:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.25);
}
.gn-vpill.is-active {
	background: var(--rotulo);
	border-color: var(--rotulo);
	box-shadow: 0 4px 14px rgba(234, 20, 28, 0.35);
	font-weight: 700;
}
@media (max-width: 600px) {
	.gn-vtabs-pills-row {
		grid-template-columns: repeat(2, 1fr);
	}
}

.gn-tones-row {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}
.gn-tone-pill {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	border-radius: 8px;
	background: rgba(255,255,255,0.05);
	border: 1px solid rgba(255,255,255,0.08);
	color: #fff;
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: all .2s ease;
}
.gn-tone-pill:hover {
	background: rgba(255,255,255,0.08);
	border-color: rgba(255,255,255,0.22);
}
.gn-tone-pill.is-active {
	border-color: var(--rotulo);
	background: rgba(234, 20, 28, 0.18);
	box-shadow: 0 0 0 1px var(--rotulo);
}
.gn-tone-dot {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	flex-shrink: 0;
	border: 1.5px solid rgba(255,255,255,0.3);
}
.gn-tone-pill--5 .gn-tone-dot { background: #080a0d; }
.gn-tone-pill--20 .gn-tone-dot { background: #20262b; }
.gn-tone-pill--35 .gn-tone-dot { background: #44525a; }
.gn-tone-pill--50 .gn-tone-dot { background: #7c8a94; }
.gn-tone-pill strong { font-size: 1.05rem; color: #fff; display: block; line-height: 1.1; }
.gn-tone-pill small { font-size: .76rem; color: #9ca3af; display: block; line-height: 1.25; margin-top: 2px; }

.gn-energysa-perks {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}
.gn-perk {
	display: flex;
	align-items: center;
	gap: 10px;
	background: rgba(255,255,255,0.03);
	border: 1px solid rgba(255,255,255,0.06);
	padding: 10px 14px;
	border-radius: 8px;
	font-size: .88rem;
	color: #e5e7eb;
}
.gn-perk__icon { font-size: 1.1rem; flex-shrink: 0; }
.gn-visual-wrap {
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 16px 36px rgba(0,0,0,0.5);
	border: 1px solid rgba(255,255,255,0.12);
}
.gn-visual-wrap--3d {
	aspect-ratio: 4 / 3;
	min-height: 380px;
	background: radial-gradient(120% 110% at 50% 0%, #f7f8f9 0%, #eceff1 55%, #dde1e4 100%);
}
.gn-visual-wrap--3d .gn-tint3d__stage {
	position: absolute;
	inset: 0;
	min-height: 100%;
	height: 100%;
}
.gn-visual-wrap img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}
.gn-visual-badge {
	position: absolute;
	right: 16px;
	bottom: 16px;
	background: var(--rotulo);
	color: #fff;
	padding: 14px 20px;
	border-radius: 10px;
	text-align: center;
	box-shadow: 0 8px 24px rgba(234, 20, 28, 0.45);
	z-index: 4;
}

/* Tarjeta Opiniones sin foto */
.gn-hero-block__image--opinion {
	background: #08090b !important;
	border-bottom: 3px solid var(--rotulo) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 190px !important;
	padding: 24px 20px !important;
}
.gn-opinion-preview-card {
	text-align: center;
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	width: 100%;
}
.gn-opinion-preview-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	font-size: .84rem;
	font-weight: 700;
	color: #9ca3af;
}
.gn-opinion-preview-badge {
	display: flex;
	align-items: center;
	gap: 6px;
	color: #fff;
}
.gn-opinion-preview-badge svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}
.gn-opinion-stars {
	color: #f59e0b;
	font-size: 1rem;
	letter-spacing: 2px;
}
.gn-opinion-score-num {
	font-size: 2.6rem;
	font-weight: 900;
	line-height: 1;
	color: #fff;
	font-family: var(--f);
	margin: 2px 0;
}
.gn-opinion-score-num small {
	font-size: 1.1rem;
	color: #9ca3af;
	font-weight: 600;
}
.gn-opinion-quote-mini {
	margin: 0;
	font-size: .82rem;
	line-height: 1.4;
	color: #d1d5db;
	font-style: italic;
	max-width: 28ch;
	quotes: none;
}
.gn-opinion-count-pill {
	font-size: .72rem;
	color: var(--rotulo);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	margin-top: 4px;
}
	right: 16px;
	bottom: 16px;
	background: var(--rotulo);
	color: #fff;
	padding: 14px 20px;
	border-radius: 10px;
	text-align: center;
	box-shadow: 0 8px 24px rgba(234, 20, 28, 0.45);
}
.gn-visual-badge span { font-size: .75rem; text-transform: uppercase; font-weight: 800; letter-spacing: .06em; display: block; opacity: .9; }
.gn-visual-badge strong { font-size: 2.2rem; font-weight: 900; line-height: 1; display: block; margin: 2px 0; font-family: var(--f); }
.gn-visual-badge small { font-size: .75rem; opacity: .85; display: block; white-space: nowrap; }

/* Pasos modernos */
.gn-steps-modern {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin-top: 24px;
}
.gn-step-card {
	background: #08090b;
	border: 1px solid #1f2229;
	border-radius: var(--r-ctrl);
	padding: 28px 22px;
	position: relative;
	transition: transform .2s, border-color .2s;
}
.gn-step-card:hover {
	transform: translateY(-4px);
	border-color: rgba(234, 20, 28, 0.4);
}
.gn-step-card__num {
	display: inline-block;
	font-size: 2.2rem;
	font-weight: 900;
	color: var(--rotulo);
	line-height: 1;
	font-family: var(--f);
	margin-bottom: 14px;
	letter-spacing: -.03em;
}
.gn-step-card h4 {
	color: #fff;
	font-size: 1.05rem;
	margin-bottom: 8px;
}
.gn-step-card p {
	color: #9ca3af;
	font-size: .88rem;
	line-height: 1.5;
	margin: 0;
}
.gn-steps-modern--light .gn-step-card {
	background: #fff;
	border: 1.5px solid var(--linea);
	box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}
.gn-steps-modern--light .gn-step-card:hover {
	border-color: #b0b4ba;
	box-shadow: 0 12px 24px rgba(0,0,0,0.07);
}
.gn-steps-modern--light .gn-step-card h4 { color: var(--tinta); }
.gn-steps-modern--light .gn-step-card p { color: var(--suave); }

.gn-reassurance-bar {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 36px;
	background: var(--pared);
	border: 1px solid var(--linea);
	border-radius: 12px;
	padding: 20px 24px;
}
.gn-reassurance-item {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: .9rem;
	font-weight: 600;
	color: var(--texto);
}
.gn-reassurance-icon { font-size: 1.4rem; flex-shrink: 0; }

/* Guía de tonalidades detallada */
.gn-tones-detailed-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}
.gn-tone-box {
	background: #fff;
	border: 1.5px solid var(--linea);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 12px rgba(0,0,0,0.03);
	display: flex;
	flex-direction: column;
	transition: transform .2s, border-color .2s;
}
.gn-tone-box:hover {
	transform: translateY(-4px);
	border-color: var(--rotulo);
}
.gn-tone-box__header {
	padding: 24px 20px;
	color: #fff;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.gn-tone-box__header--5 { background: #080a0d; }
.gn-tone-box__header--20 { background: #20262b; }
.gn-tone-box__header--35 { background: #44525a; }
.gn-tone-box__header--50 { background: #687780; }
.gn-tone-box__pct { font-size: 2rem; font-weight: 900; line-height: 1; font-family: var(--f); }
.gn-tone-box__tag { font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; background: rgba(255,255,255,0.18); padding: 4px 8px; border-radius: 4px; }
.gn-tone-box__body { padding: 20px; display: flex; flex-direction: column; flex: 1; }
.gn-tone-box__body h4 { font-size: 1.15rem; margin-bottom: 8px; color: var(--tinta); }
.gn-tone-box__body p { font-size: .88rem; color: var(--suave); line-height: 1.5; margin: 0 0 16px; flex: 1; }
.gn-tone-box__price { display: inline-block; font-size: .78rem; font-weight: 800; text-transform: uppercase; color: var(--rotulo); letter-spacing: .06em; background: rgba(234, 20, 28, 0.08); padding: 4px 10px; border-radius: 999px; align-self: flex-start; }

/* Servicios adicionales */
.gn-addons-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 24px;
}
.gn-addon-card {
	background: #fff;
	border: 1.5px solid var(--linea);
	border-radius: 12px;
	padding: 32px 26px;
	box-shadow: 0 4px 14px rgba(0,0,0,0.03);
	display: flex;
	flex-direction: column;
	transition: transform .2s, border-color .2s;
}
.gn-addon-card:hover {
	transform: translateY(-4px);
	border-color: #b0b4ba;
}
.gn-addon-icon {
	width: 52px;
	height: 52px;
	border-radius: 12px;
	background: rgba(234, 20, 28, 0.08);
	color: var(--rotulo);
	display: grid;
	place-items: center;
	margin-bottom: 20px;
}
.gn-addon-icon svg { width: 28px; height: 28px; }
.gn-addon-card h3 { font-size: 1.2rem; margin-bottom: 10px; color: var(--tinta); }
.gn-addon-card p { font-size: .92rem; color: var(--suave); line-height: 1.55; margin: 0 0 16px; flex: 1; }
.gn-addon-tag { display: inline-block; font-size: .78rem; font-weight: 700; color: var(--rotulo); background: rgba(234, 20, 28, 0.06); padding: 4px 10px; border-radius: 6px; align-self: flex-start; }

/* Filas de servicios */
.gn-service-row__media { position: relative; }
.gn-service-row__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	background: rgba(0, 0, 0, 0.85);
	color: #fff;
	font-size: .76rem;
	font-weight: 800;
	padding: 5px 12px;
	border-radius: 6px;
	border: 1px solid rgba(255,255,255,0.18);
	letter-spacing: .03em;
}
.gn-service-row__info h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); margin: 8px 0 12px; }

/* Reseñas Google Cards */
.gn-review-card {
	background: #fff;
	border: 1.5px solid var(--linea);
	border-radius: var(--r-ctrl);
	padding: 24px 22px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.03);
	transition: transform .2s, border-color .2s;
}
.gn-review-card:hover {
	transform: translateY(-4px);
	border-color: #b0b4ba;
}
.gn-review-card__top {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.gn-review-card__tag {
	font-size: .72rem;
	font-weight: 700;
	background: rgba(234, 20, 28, 0.08);
	color: var(--rotulo);
	padding: 3px 8px;
	border-radius: 4px;
}
.gn-review-card blockquote {
	margin: 0;
	font-size: .95rem;
	line-height: 1.5;
	color: var(--texto);
	flex: 1;
	font-style: italic;
}
.gn-review-card footer {
	display: flex;
	align-items: center;
	gap: 10px;
	border-top: 1px solid var(--linea);
	padding-top: 12px;
	margin-top: auto;
}
.gn-review-card footer strong { font-size: .9rem; color: var(--tinta); display: block; line-height: 1.2; }
.gn-review-card footer small { font-size: .75rem; color: var(--suave); }
.gn-score__btn {
	display: inline-block;
	margin-top: 14px;
	font-size: .84rem;
	font-weight: 700;
	color: var(--rotulo);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Cabecera de páginas interiores */
.gn-page-hero { position: relative; background: var(--grafito); color: #fff; overflow: hidden; }
.gn-page-hero__bg { position: absolute; top: 0; right: 0; bottom: 0; width: 46%; background-size: cover; background-position: center; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); }
.gn-page-hero .gn-container { position: relative; z-index: 1; padding-top: 72px; padding-bottom: 72px; }
.gn-page-hero .gn-container > * { max-width: 52%; }
.gn-page-hero h1 { color: #fff; font-size: clamp(2.2rem, 4.6vw, 3.4rem); font-weight: 900; letter-spacing: -.03em; }
.gn-page-hero p { color: #d9dadc; font-size: var(--t-m); line-height: 1.5; margin-bottom: 0; }
.gn-page-hero .gn-hero__actions { margin: 28px 0 0; }
.gn-crumbs { font-size: var(--t-xs); color: var(--cemento); margin-bottom: 16px; }
.gn-crumbs a { color: #fff; text-decoration: none; }
.gn-crumbs a:hover { text-decoration: underline; }

/* Listado de servicios */
.gn-service-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; padding: 56px 0; border-bottom: 1px solid var(--linea); }
.gn-service-row:first-child { padding-top: 0; }
.gn-service-row:last-child { border-bottom: 0; }
.gn-service-row:nth-child(even) > :first-child { order: 2; }
.gn-service-row img { border-radius: var(--r-img); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.gn-service-row h2 { font-size: var(--t-xl); }

/* FAQ */
.gn-faq { max-width: 820px; border-top: 2px solid var(--tinta); }
.gn-center .gn-faq, .gn-faq.gn-center { margin: 0 auto; }
.gn-faq details { border-bottom: 1px solid var(--linea); }
.gn-faq summary { cursor: pointer; list-style: none; font-weight: 700; font-stretch: 110%; font-size: var(--t-m); padding: 22px 0; display: flex; justify-content: space-between; gap: 16px; color: var(--tinta); }
.gn-faq summary::-webkit-details-marker { display: none; }
.gn-faq summary::after { content: "+"; color: var(--rotulo); font-size: 1.6rem; line-height: 1; transition: transform .2s; }
.gn-faq details[open] summary::after { transform: rotate(45deg); }
.gn-faq details p { color: var(--suave); padding-bottom: 22px; margin: 0; }

/* Ficha de servicio */
.gn-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; }
.gn-aside { border-top: var(--franja) solid var(--rotulo); background: var(--pared); padding: 24px; position: sticky; top: 112px; }
.gn-aside h3 { margin-bottom: 12px; }
.gn-aside ul { list-style: none; padding: 0; margin: 0 0 20px; }
.gn-aside li a { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--linea); text-decoration: none; color: var(--tinta); font-weight: 600; }
.gn-aside li a:hover, .gn-aside li.is-current a { color: var(--rotulo); }
.gn-aside li svg { width: 20px; height: 20px; color: var(--rotulo); }

/* Contacto */
.gn-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 56px; }
.gn-contact-cards { display: grid; margin: 24px 0 32px; border-top: 1px solid var(--linea); }
.gn-contact-card { display: flex; gap: 16px; align-items: flex-start; padding: 18px 0; border-bottom: 1px solid var(--linea); text-decoration: none; color: var(--suave); }
.gn-contact-card svg { width: 24px; height: 24px; color: var(--rotulo); flex: none; margin-top: 2px; }
.gn-contact-card strong { display: block; color: var(--tinta); font-size: var(--t-m); font-stretch: 110%; }
.gn-contact-card:hover strong { color: var(--rotulo); }
.gn-map { border-radius: var(--r-img); overflow: hidden; }
.gn-map iframe { width: 100%; height: 420px; border: 0; display: block; }
.gn-hours { width: 100%; border-collapse: collapse; }
.gn-hours td { padding: 10px 0; border-bottom: 1px solid var(--linea); }
.gn-hours td:last-child { text-align: right; font-weight: 600; color: var(--tinta); }
.gn-hours-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	background: #fff1f1;
	color: var(--rotulo);
	border: 1px solid rgba(234, 20, 28, 0.22);
	border-radius: 999px;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}
.gn-hours-badge svg {
	width: 13px;
	height: 13px;
	color: var(--rotulo);
	flex-shrink: 0;
}

/* Valores y cifras */
.gn-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; }
.gn-value__icon { color: var(--rotulo); margin-bottom: 12px; }
.gn-value__icon svg { width: 32px; height: 32px; }
.gn-value p { color: var(--suave); margin: 0; }
.gn-numbers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.gn-numbers strong { display: block; font-size: 3.5rem; font-weight: 900; font-stretch: 125%; color: #fff; line-height: 1; letter-spacing: -.03em; margin-bottom: 8px; }
.gn-numbers span { color: var(--cemento); }

/* Blog */
/* Sección Unidad Móvil a Domicilio */
.gn-mobile-unit {
	background: radial-gradient(circle at 80% 30%, rgba(234, 20, 28, 0.14) 0%, transparent 50%), #0d0f14;
	color: #fff;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	padding: 80px 0;
}
.gn-mobile-unit__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.15fr);
	gap: 52px;
	align-items: center;
}
@media (max-width: 960px) {
	.gn-mobile-unit__grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}
}
.gn-mobile-unit__media {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	border: 1.5px solid rgba(255, 255, 255, 0.16);
	box-shadow: 0 25px 50px -15px rgba(0,0,0,0.8), 0 0 30px rgba(234, 20, 28, 0.18);
	background: #151820;
}
.gn-mobile-unit__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}
.gn-mobile-unit__badge {
	position: absolute;
	top: 16px;
	left: 16px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px;
	border-radius: 999px;
	background: rgba(13, 15, 20, 0.88);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.18);
	font-size: .8rem;
	color: #fff;
}
.gn-mobile-unit__badge strong {
	color: #fff;
	font-weight: 800;
}
.gn-mobile-unit__content h2 {
	font-size: clamp(2rem, 3.8vw, 2.7rem);
	font-weight: 900;
	color: #fff;
	margin: 12px 0 14px;
	line-height: 1.1;
}
.gn-mobile-unit__lead {
	font-size: 1.05rem;
	color: #c5c9d2;
	line-height: 1.6;
	margin-bottom: 24px;
}
.gn-mobile-unit__boxes {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-bottom: 24px;
}
@media (max-width: 600px) {
	.gn-mobile-unit__boxes {
		grid-template-columns: 1fr;
	}
}
.gn-unit-box {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	background: rgba(255, 255, 255, 0.04);
	border: 1.5px solid rgba(255, 255, 255, 0.1);
	border-radius: var(--r-ctrl);
	padding: 16px;
}
.gn-unit-box__icon {
	font-size: 1.8rem;
	line-height: 1;
	flex-shrink: 0;
}
.gn-unit-box strong {
	display: block;
	font-size: .96rem;
	color: #fff;
	margin-bottom: 4px;
	font-weight: 800;
}
.gn-unit-box p {
	font-size: .82rem;
	color: #9da1aa;
	margin: 0;
	line-height: 1.45;
}
.gn-mobile-unit__services-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 28px;
}
.gn-unit-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	font-size: .82rem;
	font-weight: 700;
	color: #e5e7eb;
}

/* Blog */
.gn-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 28px; }
.gn-post { display: flex; flex-direction: column; }
.gn-post__media { aspect-ratio: 16 / 10; background: var(--grafito); display: block; overflow: hidden; border-radius: var(--r-img); margin-bottom: 18px; }
.gn-post__media img { width: 100%; height: 100%; object-fit: cover; }
.gn-post__body { display: flex; flex-direction: column; flex: 1; }
.gn-post__body h3 a { color: var(--tinta); text-decoration: none; }
.gn-post__body h3 a:hover { color: var(--rotulo); }
.gn-post__body p { color: var(--suave); flex: 1; }
.gn-meta { font-size: var(--t-xs); font-weight: 600; color: var(--suave); margin-bottom: 6px; display: block; }
.gn-article { max-width: 720px; margin: 0 auto; font-size: 1.1rem; line-height: 1.7; }
.gn-article h2 { font-size: var(--t-xl); margin-top: 1.6em; }
.gn-article ul { padding-left: 1.2em; }
.gn-article li { margin-bottom: .4em; }
.gn-article__cover { border-radius: var(--r-img); margin-bottom: 40px; aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.gn-article__cta { border-top: var(--franja) solid var(--rotulo); background: var(--pared); padding: 28px; margin: 48px 0; display: flex; gap: 24px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.gn-article__cta h3 { margin: 0 0 4px; }
.gn-article__cta p { margin: 0; color: var(--suave); }
.gn-pagination { margin-top: 48px; }
.gn-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 42px; height: 42px; margin-right: 4px; border-radius: var(--r-ctrl); border: 1px solid var(--linea); text-decoration: none; color: var(--tinta); font-weight: 700; padding: 0 12px; }
.gn-pagination .current { background: var(--tinta); border-color: var(--tinta); color: #fff; }
.post-navigation .nav-links { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid var(--linea); padding-top: 24px; }
.post-navigation a { font-weight: 700; color: var(--tinta); }

/* Pie */
.gn-footer { background: #000000; color: #b9bcc0; padding: 72px 0 24px; font-size: .95rem; border-top: 4px solid var(--rotulo); }
.gn-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: 48px; }
.gn-footer h4 { color: #fff; font-size: var(--t-s); font-stretch: 110%; margin-bottom: 16px; }
.gn-footer ul { list-style: none; padding: 0; margin: 0; }
.gn-footer li { margin-bottom: 10px; }
.gn-footer a { color: #d9dadc; text-decoration: none; }
.gn-footer a:hover { color: #fff; text-decoration: underline; }
.gn-footer .gn-logo { margin-bottom: 16px; display: inline-flex; }
.gn-footer .gn-logo__img { height: 44px; width: auto; max-width: 220px; object-fit: contain; }
.gn-footer__contact li { display: flex; gap: 10px; }
.gn-footer__contact svg { width: 18px; height: 18px; color: #ff6b6f; flex: none; margin-top: 3px; }
.gn-social { display: flex; gap: 8px; margin-top: 20px; }
.gn-social a { width: 40px; height: 40px; border-radius: var(--r-ctrl); background: var(--grafito-2); display: grid; place-items: center; color: #fff; }
.gn-social a:hover { background: var(--rotulo); }
.gn-social svg { width: 20px; height: 20px; }
.gn-network { display: flex; align-items: center; gap: 12px; margin-top: 22px; }
.gn-network img { width: 64px; border-radius: var(--r-img); }
.gn-network span { font-size: var(--t-xs); line-height: 1.4; }
.gn-footer__bottom { border-top: 1px solid var(--grafito-2); margin-top: 56px; padding-top: 20px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: var(--t-xs); }

/* Página /nosotros/ editorial (diseño limpio sin imágenes) */
.gn-page-hero--editorial { background: #000000; padding: 76px 0 68px; }
.gn-page-hero--editorial .gn-container { max-width: 960px; }
.gn-hero-tag { display: inline-flex; align-items: center; gap: 10px; padding: 6px 14px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #e5e7eb; font-size: .82rem; font-weight: 600; margin-bottom: 22px; }
.gn-tag-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rotulo); box-shadow: 0 0 8px var(--rotulo); flex: none; }
.gn-title-hero { color: #fff; font-size: clamp(2.4rem, 5vw, 3.8rem); font-weight: 900; letter-spacing: -.03em; line-height: 1.05; margin-bottom: 20px; }
.gn-lead-hero { font-size: 1.22rem; line-height: 1.6; color: #c4c7cc; max-width: 760px; margin-bottom: 32px; }

.gn-section--stats { border-top: 1px solid #1a1c22; border-bottom: 1px solid #1a1c22; }
.gn-stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.gn-stat-card { background: #08090b; border: 1px solid #1f2229; border-radius: var(--r-ctrl); padding: 32px 24px; text-align: left; transition: border-color .2s, transform .2s; }
.gn-stat-card:hover { border-color: rgba(234, 20, 28, .4); transform: translateY(-3px); }
.gn-stat-num { display: block; font-size: 3rem; font-weight: 900; color: var(--rotulo); line-height: 1; letter-spacing: -.03em; margin-bottom: 10px; font-family: var(--f); }
.gn-stat-num small { font-size: 1.3rem; font-weight: 700; color: #fff; vertical-align: middle; }
.gn-stat-label { display: block; font-size: 1.05rem; font-weight: 700; color: #fff; margin-bottom: 6px; }
.gn-stat-desc { font-size: .84rem; color: #9ca3af; margin: 0; line-height: 1.45; }

.gn-badge-pill { display: inline-block; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; padding: 5px 12px; border-radius: 999px; background: rgba(234, 20, 28, .08); color: var(--rotulo); border: 1px solid rgba(234, 20, 28, .25); margin-bottom: 14px; }
.gn-badge-pill--red { background: var(--rotulo); color: #fff; border-color: var(--rotulo); }

.gn-editorial-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 64px; align-items: start; }
.gn-editorial__sticky { position: sticky; top: 110px; }
.gn-editorial__sticky h2 { font-size: clamp(1.8rem, 3.2vw, 2.5rem); line-height: 1.15; margin-bottom: 20px; }
.gn-editorial__quote { border-left: 3px solid var(--rotulo); padding: 4px 0 4px 20px; font-style: italic; color: var(--texto); font-size: 1.08rem; line-height: 1.6; background: rgba(234, 20, 28, .02); border-radius: 0 var(--r-ctrl) var(--r-ctrl) 0; }
.gn-text-lead { font-size: 1.18rem; font-weight: 600; line-height: 1.6; color: var(--tinta); margin-bottom: 20px; }
.gn-editorial__content p { font-size: 1.02rem; line-height: 1.65; color: var(--texto); margin-bottom: 18px; }

.gn-guarantees-list { display: grid; gap: 14px; margin-top: 32px; }
.gn-guarantee-item { display: flex; gap: 16px; align-items: flex-start; padding: 18px 20px; background: #fff; border: 1px solid var(--linea); border-radius: var(--r-ctrl); box-shadow: 0 2px 6px rgba(0,0,0,.02); }
.gn-guarantee-icon { color: var(--rotulo); flex: none; margin-top: 2px; }
.gn-guarantee-icon svg { width: 24px; height: 24px; }
.gn-guarantee-item h4 { margin: 0 0 4px; font-size: 1rem; color: var(--tinta); }
.gn-guarantee-item p { margin: 0 !important; font-size: .88rem; color: var(--suave); line-height: 1.45; }

/* Sección Fundador e Historia */
.gn-founder-box { background: #fff; border: 1.5px solid var(--linea); border-radius: var(--r-ctrl); padding: 52px 48px; box-shadow: 0 4px 20px rgba(0,0,0,.03); }
.gn-founder-header { margin-bottom: 36px; }
.gn-founder-header h2 { font-size: clamp(1.8rem, 3.2vw, 2.5rem); line-height: 1.15; margin-bottom: 12px; }
.gn-founder-lead { font-size: 1.1rem; color: var(--suave); margin: 0; }
.gn-founder-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.95fr); gap: 48px; align-items: start; }
.gn-founder-story h3 { font-size: 1.35rem; line-height: 1.3; margin-bottom: 16px; color: var(--tinta); }
.gn-founder-story p { font-size: 1rem; line-height: 1.65; color: var(--texto); margin-bottom: 16px; }
.gn-founder-card { background: #08090b; border: 1px solid #1f2229; border-radius: var(--r-ctrl); padding: 36px 32px; color: #fff; }
.gn-founder-profile { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid #1f2229; }
.gn-founder-badge-initials { width: 56px; height: 56px; border-radius: 50%; background: var(--rotulo); color: #fff; font-size: 1.35rem; font-weight: 900; display: grid; place-items: center; font-family: var(--f); flex-shrink: 0; }
.gn-founder-name { font-size: 1.25rem; font-weight: 800; display: block; color: #fff; font-family: var(--f); line-height: 1.2; }
.gn-founder-role { font-size: .84rem; color: var(--rotulo); display: block; font-weight: 700; margin-top: 3px; }
.gn-founder-exp { font-size: .78rem; color: #9ca3af; display: block; margin-top: 2px; }
.gn-founder-quote { font-size: .95rem; line-height: 1.55; color: #e5e7eb; font-style: italic; margin: 0 0 24px; padding-left: 16px; border-left: 3px solid var(--rotulo); quotes: none; }
.gn-founder-milestones { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gn-milestone { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: var(--r-ctrl); padding: 12px 14px; }
.gn-milestone-year { display: block; font-size: 1.1rem; font-weight: 900; color: #fff; font-family: var(--f); margin-bottom: 3px; }
.gn-milestone-text { display: block; font-size: .78rem; color: #9ca3af; line-height: 1.35; }

/* Compromiso Medioambiental / Lucha contra el residuo */
.gn-eco-box { background: #080a0d; border: 1.5px solid #1c212a; border-radius: var(--r-ctrl); padding: 56px 48px; color: #fff; position: relative; }
.gn-eco-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(34, 197, 94, .12); border: 1px solid rgba(34, 197, 94, .3); border-radius: 999px; padding: 6px 16px; font-size: .84rem; font-weight: 700; color: #4ade80; margin-bottom: 22px; }
.gn-eco-badge svg { width: 18px; height: 18px; }
.gn-eco-header { max-width: 820px; margin-bottom: 38px; }
.gn-eco-header h2 { font-size: clamp(2rem, 3.6vw, 2.7rem); line-height: 1.15; color: #fff; margin-bottom: 14px; letter-spacing: -.02em; }
.gn-eco-lead { font-size: 1.08rem; line-height: 1.6; color: #9ca3af; margin: 0; }
.gn-eco-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding: 32px 0; border-top: 1px solid #1a1e26; border-bottom: 1px solid #1a1e26; margin-bottom: 44px; }
.gn-eco-stat { border-left: 2px solid rgba(74, 222, 128, .5); padding-left: 18px; }
.gn-eco-num { display: block; font-size: 2.8rem; font-weight: 900; line-height: 1; color: #4ade80; font-family: var(--f); margin-bottom: 6px; font-stretch: 125%; }
.gn-eco-label { display: block; font-size: .95rem; font-weight: 700; color: #fff; margin-bottom: 6px; }
.gn-eco-stat p { font-size: .82rem; line-height: 1.45; color: #9ca3af; margin: 0; }
.gn-eco-pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-bottom: 44px; }
.gn-eco-pillar { background: rgba(255, 255, 255, .03); border: 1px solid rgba(255, 255, 255, .08); border-radius: var(--r-ctrl); padding: 32px 26px; transition: transform .2s, border-color .2s; }
.gn-eco-pillar:hover { transform: translateY(-4px); border-color: rgba(74, 222, 128, .35); }
.gn-eco-pillar__icon { width: 48px; height: 48px; border-radius: 10px; background: rgba(34, 197, 94, .12); color: #4ade80; display: grid; place-items: center; margin-bottom: 20px; }
.gn-eco-pillar__icon svg { width: 26px; height: 26px; }
.gn-eco-pillar h3 { color: #fff; font-size: 1.18rem; margin-bottom: 12px; line-height: 1.25; }
.gn-eco-pillar p { font-size: .9rem; line-height: 1.6; color: #9ca3af; margin: 0; }
.gn-eco-footer { display: flex; align-items: center; justify-content: space-between; gap: 32px; background: rgba(255, 255, 255, .02); border: 1px solid rgba(255, 255, 255, .06); border-radius: var(--r-ctrl); padding: 26px 32px; }
.gn-eco-footer__info strong { display: block; font-size: 1.1rem; color: #fff; margin-bottom: 4px; }
.gn-eco-footer__info p { font-size: .92rem; color: #9ca3af; margin: 0; line-height: 1.45; }

.gn-pillars-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gn-pillar-card { background: #fff; border: 1px solid var(--linea); border-radius: var(--r-ctrl); padding: 32px 26px; transition: transform .2s, box-shadow .2s, border-color .2s; }
.gn-pillar-card:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0,0,0,.06); border-color: #b0b4ba; }
.gn-pillar-icon { width: 48px; height: 48px; border-radius: 10px; background: rgba(234, 20, 28, .08); color: var(--rotulo); display: grid; place-items: center; margin-bottom: 20px; }
.gn-pillar-icon svg { width: 26px; height: 26px; }
.gn-pillar-card h3 { font-size: 1.12rem; margin-bottom: 10px; }
.gn-pillar-card p { font-size: .9rem; color: var(--suave); margin: 0; line-height: 1.5; }

.gn-process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.gn-process-card { background: #08090b; border: 1px solid #1f2229; border-radius: var(--r-ctrl); padding: 32px 22px; position: relative; }
.gn-process-num { font-size: 2.6rem; font-weight: 900; color: rgba(234, 20, 28, .4); line-height: 1; margin-bottom: 16px; font-family: var(--f); }
.gn-process-card h3 { color: #fff; font-size: 1.12rem; margin-bottom: 10px; }
.gn-process-card p { color: #9ca3af; font-size: .88rem; line-height: 1.5; margin: 0; }

.gn-network-box { background: #000000; border: 1px solid #23262d; border-radius: var(--r-ctrl); padding: 44px; display: grid; grid-template-columns: auto 1fr; gap: 40px; align-items: center; }
.gn-network-box__badge { text-align: center; border-right: 1px solid #23262d; padding-right: 40px; }
.gn-badge-brand { display: inline-block; border: 2px solid #fff; border-radius: 8px; padding: 10px 18px; font-weight: 900; color: #fff; font-size: 1.35rem; line-height: 1.1; letter-spacing: -.02em; }
.gn-badge-brand span { display: block; font-weight: 600; font-size: .8rem; letter-spacing: .04em; }
.gn-network-box__tag { display: block; font-size: .72rem; text-transform: uppercase; color: var(--rotulo); font-weight: 800; letter-spacing: .08em; margin-top: 10px; }
.gn-network-box__info h3 { color: #fff; font-size: 1.35rem; margin-bottom: 10px; }
.gn-network-box__info p { color: #c4c7cc; line-height: 1.6; margin: 0 0 10px; font-size: .95rem; }
.gn-network-box__legal { font-size: .8rem; color: #717882 !important; margin: 0; }

.gn-workshop-card { background: #fff; border: 1px solid var(--linea); border-radius: var(--r-ctrl); padding: 48px; display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px; align-items: center; }
.gn-workshop-details { margin-top: 26px; display: grid; gap: 16px; }
.gn-detail-row { display: flex; gap: 14px; align-items: flex-start; }
.gn-detail-icon { color: var(--rotulo); margin-top: 2px; flex: none; }
.gn-detail-icon svg { width: 22px; height: 22px; }
.gn-detail-row strong { display: block; font-size: .95rem; color: var(--tinta); margin-bottom: 2px; }
.gn-detail-row span { font-size: .9rem; color: var(--suave); }
.gn-workshop-card__cta { background: var(--pared); border: 1px solid var(--linea); border-radius: var(--r-ctrl); padding: 32px 24px; display: flex; flex-direction: column; gap: 12px; text-align: center; }
.gn-quick-box { margin-bottom: 8px; }
.gn-quick-stars { color: #f2a900; font-size: 1.3rem; letter-spacing: 2px; }
.gn-quick-box strong { display: block; font-size: 1.6rem; font-weight: 900; color: var(--tinta); line-height: 1.1; margin-top: 4px; }
.gn-quick-box small { font-size: .8rem; color: var(--suave); }
.gn-link-maps { font-size: .88rem; font-weight: 700; color: var(--rotulo); text-decoration: none; margin-top: 4px; display: inline-block; }
.gn-link-maps:hover { text-decoration: underline; }

/* Zonas de trabajo del taller */
.gn-workshop-zones { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.gn-zone-card { background: #fff; border: 1.5px solid var(--linea); border-radius: var(--r-ctrl); padding: 36px 32px; transition: transform .2s, border-color .2s, box-shadow .2s; }
.gn-zone-card:hover { transform: translateY(-4px); border-color: #b0b4ba; box-shadow: 0 14px 28px rgba(0,0,0,.06); }
.gn-zone-icon { width: 50px; height: 50px; border-radius: 12px; background: rgba(234, 20, 28, .08); color: var(--rotulo); display: grid; place-items: center; margin-bottom: 22px; }
.gn-zone-icon svg { width: 26px; height: 26px; }
.gn-zone-card h3 { font-size: 1.25rem; margin-bottom: 12px; }
.gn-zone-card p { font-size: .95rem; color: var(--suave); line-height: 1.6; margin-bottom: 18px; }
.gn-zone-features { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; border-top: 1px solid var(--linea); padding-top: 16px; font-size: .88rem; font-weight: 600; color: var(--tinta); }

/* Protocolo de calidad */
.gn-protocol-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.gn-protocol-item { background: #08090b; border: 1px solid #1f2229; border-radius: var(--r-ctrl); padding: 28px 18px; text-align: left; }
.gn-protocol-step { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--rotulo); color: #fff; font-weight: 900; font-size: 1.1rem; margin-bottom: 16px; font-family: var(--f); }
.gn-protocol-item h4 { color: #fff; font-size: 1rem; margin-bottom: 8px; line-height: 1.2; }
.gn-protocol-item p { color: #9ca3af; font-size: .84rem; line-height: 1.45; margin: 0; }

/* Página de Opiniones */
.gn-op-hero { background: #000; color: #fff; padding: 72px 0 64px; border-bottom: 3px solid var(--rotulo); }
.gn-op-hero__badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px; padding: 6px 16px; font-size: .84rem; font-weight: 600; color: #fff; margin-bottom: 20px; }
.gn-op-hero__badge svg { width: 16px; height: 16px; fill: currentColor; }
.gn-op-hero__title { font-size: clamp(2.4rem, 4.8vw, 3.8rem); line-height: 1.05; font-stretch: 125%; color: #fff; margin-bottom: 16px; letter-spacing: -.02em; }
.gn-op-hero__title em { color: var(--rotulo); font-style: normal; }
.gn-op-hero__lead { max-width: 660px; color: #a1a5ad; font-size: 1.1rem; line-height: 1.55; margin-bottom: 28px; }
.gn-op-hero__score { display: flex; align-items: center; gap: 20px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .08); padding: 16px 24px; border-radius: var(--r-ctrl); width: fit-content; }
.gn-op-hero__rating { font-size: 3.2rem; font-weight: 900; color: #fff; line-height: 1; font-family: var(--f); }
.gn-stars--lg { font-size: 1.35rem; color: #f59e0b; display: block; line-height: 1.1; }
.gn-op-hero__count { color: #8c9096; font-size: .85rem; font-weight: 600; display: block; margin-top: 4px; }

.gn-op-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 36px; }
.gn-op-filter { background: #fff; border: 1.5px solid var(--linea); border-radius: 999px; padding: 9px 20px; font-size: .88rem; font-weight: 700; color: var(--texto); cursor: pointer; transition: all .2s; font-family: var(--f); }
.gn-op-filter:hover { border-color: var(--tinta); color: var(--tinta); }
.gn-op-filter.is-active { background: #000; color: #fff; border-color: #000; }

.gn-op-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gn-op-card { background: #fff; border: 1.5px solid var(--linea); border-radius: var(--r-ctrl); padding: 26px 24px; display: flex; flex-direction: column; gap: 12px; transition: transform .2s, box-shadow .2s, border-color .2s; text-align: left; }
.gn-op-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,.06); border-color: #b0b4ba; }
.gn-op-card__head { display: flex; align-items: center; gap: 12px; }
.gn-avatar--lg { width: 44px; height: 44px; border-radius: 50%; background: var(--rotulo); color: #fff; font-weight: 800; font-size: 1.1rem; display: grid; place-items: center; flex-shrink: 0; }
.gn-op-card__name { display: block; font-size: .95rem; color: var(--tinta); font-weight: 700; line-height: 1.2; }
.gn-op-card__date { color: var(--suave); font-size: .78rem; }
.gn-op-card__head svg { width: 20px; height: 20px; margin-left: auto; color: #4285f4; flex-shrink: 0; }
.gn-op-card .gn-stars { font-size: 1.1rem; color: #f59e0b; }
.gn-op-card__text { margin: 0; font-size: .92rem; line-height: 1.55; color: var(--texto); quotes: none; font-style: normal; }
.gn-op-card .gn-badge-pill--sm { align-self: flex-start; font-size: .75rem; padding: 3px 10px; background: rgba(234, 20, 28, .07); color: var(--rotulo); border: 1px solid rgba(234, 20, 28, .2); border-radius: 999px; font-weight: 700; }

.gn-op-quotes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; justify-content: center; }
.gn-op-quote { background: #fff; border: 1px dashed #d1d5db; border-radius: 999px; padding: 8px 18px; font-size: .84rem; color: var(--suave); font-style: italic; }

.gn-op-trust { background: #000; }
.gn-op-trust__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; padding-bottom: 44px; border-bottom: 1px solid #1f2229; }
.gn-op-trust__stat strong { font-size: 3.2rem; font-weight: 900; color: #fff; display: block; line-height: 1; margin-bottom: 8px; font-stretch: 125%; }
.gn-op-trust__stat span { color: var(--cemento); font-size: .9rem; line-height: 1.35; display: block; }
.gn-op-trust__badges { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 44px; }
.gn-op-trust__badge { display: flex; gap: 14px; align-items: flex-start; }
.gn-op-trust__badge svg { width: 26px; height: 26px; color: var(--rotulo); flex-shrink: 0; margin-top: 2px; }
.gn-op-trust__badge strong { display: block; color: #fff; font-size: .95rem; margin-bottom: 4px; font-weight: 700; }
.gn-op-trust__badge span { color: #8c9096; font-size: .82rem; line-height: 1.4; display: block; }

.gn-op-cta { background: #fff; border-top: 1px solid var(--linea); padding: 56px 0; }
.gn-op-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.gn-op-cta__title { font-size: 2rem; margin-bottom: 8px; letter-spacing: -.02em; }
.gn-op-cta__sub { color: var(--suave); max-width: 620px; margin: 0; font-size: 1rem; line-height: 1.5; }
.gn-btn--lg { padding: 16px 28px; font-size: 1rem; }

/* WhatsApp flotante */
.gn-float { position: fixed; right: 20px; bottom: 20px; z-index: 60; width: 58px; height: 58px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; box-shadow: 0 8px 20px rgba(0,0,0,.2); }
.gn-float svg { width: 30px; height: 30px; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.gn-windshield img { animation: none; }
}

/* Responsive */
@media (max-width: 1100px) {
	.gn-header__phone div { display: none; }
	.gn-services, .gn-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gn-reviews { grid-template-columns: 1fr 1fr; }
	.gn-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gn-steps-modern { grid-template-columns: repeat(2, 1fr); }
	.gn-tones-detailed-grid { grid-template-columns: repeat(2, 1fr); }
	.gn-addons-grid { grid-template-columns: repeat(2, 1fr); }
	.gn-reassurance-bar { grid-template-columns: 1fr; gap: 12px; }
	.gn-footer__grid { grid-template-columns: 1fr 1fr; }
	.gn-layout { grid-template-columns: 1fr; }
	.gn-aside { position: static; }
	.gn-bar__fields { grid-template-columns: 1fr 1fr; }
	.gn-bar .gn-btn { grid-column: 1 / -1; }
	.gn-op-grid { grid-template-columns: repeat(2, 1fr); }
	.gn-op-trust__grid, .gn-op-trust__badges { grid-template-columns: repeat(2, 1fr); }
	.gn-eco-stats { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}

/* ==========================================================================
   ESPECIALISTAS EN TINTADO DE TESLA
   ========================================================================== */
.gn-tesla-section {
	background: radial-gradient(circle at top right, rgba(234, 20, 28, 0.08), transparent 50%), #0c0d12;
	position: relative;
}
.gn-tesla-banner {
	background: linear-gradient(145deg, #13141a 0%, #0d0e12 100%);
	border: 1px solid #23262d;
	border-radius: 18px;
	padding: 48px;
	box-shadow: 0 20px 48px rgba(0, 0, 0, 0.4);
}
.gn-tesla-banner__header {
	max-width: 820px;
	margin-bottom: 40px;
}
.gn-tesla-banner__header h2 {
	color: #fff;
	font-size: clamp(1.8rem, 3.2vw, 2.5rem);
	margin: 16px 0 14px;
	line-height: 1.15;
}
.gn-tesla-lead {
	color: #c5c8d0;
	font-size: 1.08rem;
	line-height: 1.6;
}
.gn-tesla-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	margin-bottom: 40px;
}
.gn-tesla-card {
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 14px;
	padding: 28px 24px;
	position: relative;
	transition: transform 0.25s, border-color 0.25s, background 0.25s;
}
.gn-tesla-card:hover {
	transform: translateY(-4px);
	border-color: rgba(234, 20, 28, 0.4);
	background: rgba(234, 20, 28, 0.03);
}
.gn-tesla-card__icon {
	font-size: 2rem;
	margin-bottom: 12px;
}
.gn-tesla-card__tag {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #ea141c;
	background: rgba(234, 20, 28, 0.12);
	border-radius: 6px;
	padding: 3px 8px;
	margin-bottom: 12px;
}
.gn-tesla-card h3 {
	color: #fff;
	font-size: 1.18rem;
	margin: 0 0 10px;
}
.gn-tesla-card p {
	color: #9ea3ae;
	font-size: 0.92rem;
	line-height: 1.55;
	margin: 0;
}
.gn-tesla-cta-box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	background: rgba(234, 20, 28, 0.08);
	border: 1px solid rgba(234, 20, 28, 0.25);
	border-radius: 14px;
	padding: 24px 28px;
}
.gn-tesla-cta-box h4 {
	color: #fff;
	font-size: 1.15rem;
	margin: 0 0 6px;
}
.gn-tesla-cta-box p {
	color: #b5b9c2;
	font-size: 0.92rem;
	margin: 0;
}

/* ==========================================================================
   NORMATIVA ESPAÑOLA DE TINTADO E ITV
   ========================================================================== */
.gn-normativa-section {
	background: #f8f9fa;
}
.gn-normativa-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px;
	margin-top: 40px;
}
.gn-normativa-card {
	background: #fff;
	border-radius: 16px;
	padding: 36px 30px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
	display: flex;
	flex-direction: column;
	border: 2px solid transparent;
}
.gn-normativa-card--allowed {
	border-color: #22c55e;
}
.gn-normativa-card--forbidden {
	border-color: #ea141c;
}
.gn-normativa-card__header {
	margin-bottom: 24px;
}
.gn-normativa-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: 999px;
	margin-bottom: 12px;
}
.gn-normativa-badge--ok {
	background: #dcfce7;
	color: #15803d;
}
.gn-normativa-badge--ok svg {
	width: 14px;
	height: 14px;
}
.gn-normativa-badge--no {
	background: #fee2e2;
	color: #b91c1c;
}
.gn-normativa-card__header h3 {
	font-size: 1.3rem;
	margin: 0;
	color: var(--tinta);
}
.gn-normativa-list {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	flex: 1;
}
.gn-normativa-list li {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	font-size: 0.94rem;
	line-height: 1.5;
	color: #4b5563;
}
.gn-normativa-list strong {
	color: var(--tinta);
	display: block;
	margin-bottom: 2px;
}
.gn-normativa-icon {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	font-size: 0.85rem;
	flex-shrink: 0;
	margin-top: 2px;
}
.gn-normativa-icon--check {
	background: #dcfce7;
	color: #16a34a;
}
.gn-normativa-icon--cross {
	background: #fee2e2;
	color: #dc2626;
}
.gn-normativa-verdict {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 14px 18px;
	border-radius: 10px;
	font-size: 0.9rem;
	font-weight: 600;
	margin-top: auto;
}
.gn-normativa-verdict p {
	margin: 0;
}
.gn-normativa-verdict--ok {
	background: #f0fdf4;
	color: #166534;
	border: 1px solid #bbf7d0;
}
.gn-normativa-verdict--info {
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
}
.gn-normativa-banner {
	margin-top: 32px;
	background: #14161d;
	color: #fff;
	border-radius: 14px;
	padding: 24px 30px;
	display: flex;
	align-items: center;
	gap: 20px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
}
.gn-normativa-banner__icon {
	font-size: 2.2rem;
	flex-shrink: 0;
}
.gn-normativa-banner__text h4 {
	color: #fff;
	font-size: 1.15rem;
	margin: 0 0 6px;
}
.gn-normativa-banner__text p {
	color: #9ea3ae;
	font-size: 0.92rem;
	margin: 0;
	line-height: 1.5;
}

@media (max-width: 900px) {
	.gn-section { padding: 64px 0; }
	.gn-menu-toggle { display: block; }
	.gn-nav { position: fixed; top: var(--gn-header-bottom, 80px); left: 0; right: 0; bottom: 0; background: #0a0b0e; overflow-y: auto; padding: 12px 20px 40px; display: none; border-top: 1px solid #1a1c22; }
	.gn-nav.is-open { display: block; }
	.gn-nav > ul { flex-direction: column; }
	.gn-nav a { padding: 14px 0; border-bottom: 1px solid #1a1c22; font-size: var(--t-m); color: #f3f4f6; }
	.gn-nav .is-current > a { box-shadow: none; color: var(--rotulo); }
	.gn-sub { position: static; display: block; border: 0; padding: 0 0 0 12px; min-width: 0; background: transparent; box-shadow: none; }
	.gn-sub a { border-radius: 0; font-size: var(--t-s); color: #a1a5ad; }
	.gn-header .gn-btn--red { display: none; }
	.gn-hero .gn-container { grid-template-columns: 1fr; gap: 32px; padding-top: 40px; padding-bottom: 50px; }
	.gn-hero__text { padding-bottom: 0; }
	.gn-hero h1 { max-width: none; }
	.gn-floating-badge--top { top: 12px; left: 12px; }
	.gn-floating-badge--bottom-left { bottom: 12px; left: 12px; }
	.gn-floating-badge--bottom-right { bottom: 12px; right: 12px; }
	.gn-floating-badge { padding: 8px 12px; }
	.gn-split, .gn-contact, .gn-service-row { grid-template-columns: 1fr; gap: 32px; }
	.gn-split--rev > :first-child, .gn-service-row:nth-child(even) > :first-child { order: 0; }
	.gn-posts, .gn-values { grid-template-columns: 1fr 1fr; }
	.gn-numbers { grid-template-columns: 1fr 1fr; }
	.gn-stats-grid, .gn-pillars-grid, .gn-process-grid { grid-template-columns: 1fr 1fr; }
	.gn-editorial-grid { grid-template-columns: 1fr; gap: 36px; }
	.gn-editorial__sticky { position: static; }
	.gn-network-box { grid-template-columns: 1fr; padding: 32px 24px; gap: 24px; }
	.gn-network-box__badge { border-right: 0; border-bottom: 1px solid #23262d; padding-right: 0; padding-bottom: 24px; }
	.gn-workshop-card { grid-template-columns: 1fr; padding: 32px 24px; }
	.gn-workshop-zones { grid-template-columns: 1fr; }
	.gn-protocol-grid { grid-template-columns: repeat(2, 1fr); }
	.gn-cta { flex-direction: column; align-items: flex-start; padding: 36px 28px; }
	.gn-cta__actions { width: 100%; min-width: 0; }
	.gn-energysa-card { grid-template-columns: 1fr; padding: 32px 24px; gap: 32px; }
	.gn-vtabs-pills-row { grid-template-columns: repeat(2, 1fr); }
	.gn-tones-row { grid-template-columns: 1fr; }
	.gn-energysa-perks { grid-template-columns: 1fr; }
	.gn-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 180px; }
	.gn-gallery figure:nth-child(5) { grid-column: auto; }
	.gn-page-hero__bg { width: 100%; opacity: .25; clip-path: none; }
	.gn-page-hero .gn-container > * { max-width: none; }
	.gn-op-cta__inner { flex-direction: column; align-items: flex-start; text-align: left; }
	.gn-founder-grid { grid-template-columns: 1fr; gap: 32px; }
	.gn-founder-box { padding: 36px 24px; }
	.gn-eco-pillars { grid-template-columns: 1fr; gap: 20px; }
	.gn-eco-footer { flex-direction: column; align-items: flex-start; }
	.gn-eco-box { padding: 36px 24px; }
	.gn-tesla-grid, .gn-normativa-grid { grid-template-columns: 1fr; }
	.gn-tesla-banner { padding: 32px 20px; }
	.gn-tesla-cta-box { flex-direction: column; align-items: flex-start; }
	.gn-normativa-card { padding: 28px 20px; }
	.gn-normativa-banner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) {
	.gn-topbar__hide { display: none !important; }
	.gn-topbar .gn-container { justify-content: center; }
	.gn-logo__img { height: 38px; }
	.gn-header .gn-container { height: 64px; }
	.gn-bar { padding: 20px 16px; }
	.gn-bar__fields, .gn-row { grid-template-columns: 1fr; }
	.gn-form { padding: 24px 18px; }
	.gn-services, .gn-reviews, .gn-steps, .gn-steps-modern, .gn-tones-detailed-grid, .gn-addons-grid, .gn-posts, .gn-values, .gn-footer__grid, .gn-stats-grid, .gn-pillars-grid, .gn-process-grid, .gn-protocol-grid, .gn-op-grid, .gn-op-trust__grid, .gn-op-trust__badges, .gn-eco-stats, .gn-tesla-grid, .gn-normativa-grid { grid-template-columns: 1fr; }
	.gn-video-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
	.gn-service img { aspect-ratio: 16 / 10; }
	.gn-hero__actions .gn-btn { flex: 1 1 100%; }
	.admin-bar .gn-header { top: 0; }
	.gn-op-hero__score { width: 100%; }
	.gn-founder-milestones { grid-template-columns: 1fr; }
}
