/* ============================================================
   HEADER.CSS
   Cabecera fija, con menú responsive (drawer en móvil).
   ============================================================ */

.gb-header {
	position: sticky;
	top: 0;
	z-index: 9999;
	background: rgba(244, 247, 246, 0.92);
	border-bottom: 1px solid var(--gb-borde);
	transition: box-shadow var(--gb-transicion);
}

/* IMPORTANTE: el blur de vidrio vive en un pseudo-elemento y NO en
   .gb-header, porque backdrop-filter convierte al header en el
   "containing block" de sus hijos position: fixed. Eso hacía que el
   drawer móvil (.gb-nav) quedara atrapado/recortado dentro del header
   y no se viera al abrir el menú hamburguesa. */
.gb-header::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

/* Sombra sutil cuando el usuario ya hizo scroll (lo agrega theme.js) */
.gb-header--con-sombra {
	box-shadow: 0 6px 24px rgba(11, 32, 39, 0.08);
}

.gb-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	height: 84px;
}

.gb-header-brand {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}
.gb-header-brand img {
	max-height: 56px;
	width: auto;
}
.gb-header-logo-fallback {
	max-height: 52px;
	width: auto;
	object-fit: contain;
}
.gb-header-brand-texto {
	font-family: var(--gb-font-display);
	font-weight: 700;
	font-size: 18px;
	color: var(--gb-tinta);
	line-height: 1.25;
}
.gb-header-brand-texto small {
	display: block;
	font-family: var(--gb-font-mono);
	font-size: 10.5px;
	font-weight: 400;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--gb-primario);
}

/* --- Menú --- */
.gb-menu {
	display: flex;
	align-items: center;
	gap: 4px;
}

.gb-menu-item { position: relative; }

.gb-menu-link {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 10px 16px;
	border-radius: var(--gb-radio-sm);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--gb-tinta-suave);
	transition: color var(--gb-transicion), background var(--gb-transicion);
}
.gb-menu-link:hover {
	color: var(--gb-primario);
	background: var(--gb-primario-tenue);
}
.gb-menu-item--activo > .gb-menu-link {
	color: var(--gb-primario);
}
.gb-menu-item--activo > .gb-menu-link::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 16px;
	right: 16px;
	height: 2px;
	background: var(--gb-primario);
	border-radius: 2px;
}

.gb-submenu {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 340px;
	max-width: min(420px, calc(100vw - 32px));
	max-height: calc(100vh - 120px);
	overflow-y: auto;
	background: var(--gb-superficie);
	border: 1px solid var(--gb-borde);
	border-radius: var(--gb-radio-md);
	box-shadow: var(--gb-sombra-lg);
	padding: 8px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--gb-transicion), transform var(--gb-transicion), visibility var(--gb-transicion);
}
.gb-menu-item--con-submenu:hover .gb-submenu,
.gb-menu-item--con-submenu:focus-within .gb-submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.gb-submenu .gb-menu-link {
	padding: 9px 14px;
	white-space: normal;
	line-height: 1.35;
}
.gb-submenu .gb-menu-item--activo > .gb-menu-link {
	background: var(--gb-primario-tenue);
	color: var(--gb-primario);
}
.gb-submenu .gb-menu-item--activo > .gb-menu-link::after { display: none; }

/* Botón para desplegar el submenú. En desktop el submenú ya se abre
   con :hover sobre el <li>, así que este botón se oculta ahí; solo
   se muestra (ver media query) en el drawer móvil, donde es la
   única forma de alcanzar el submenú al no existir hover táctil. */
.gb-submenu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	color: inherit;
	padding: 0;
}
.gb-submenu-toggle svg { transition: transform var(--gb-transicion); }

.gb-header-actions {
	display: flex;
	align-items: center;
	gap: 14px;
}

.gb-header-cta svg { width: 15px; height: 15px; }

.gb-nav-cta { display: none; }

.gb-nav-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: transparent;
	border: 1.5px solid var(--gb-borde-fuerte);
	border-radius: var(--gb-radio-sm);
	color: var(--gb-tinta);
	font-size: 20px;
	position: relative;
	z-index: 2;
	flex-shrink: 0;
}
.gb-nav-toggle:hover { border-color: var(--gb-primario); color: var(--gb-primario); }

/* Cambia hamburguesa ↔ X según el estado del menú (aria-expanded) */
.gb-nav-toggle-icono {
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform var(--gb-transicion), opacity var(--gb-transicion);
}
.gb-nav-toggle-icono--cerrar { display: none; }
.gb-nav-toggle[aria-expanded="true"] .gb-nav-toggle-icono--menu { display: none; }
.gb-nav-toggle[aria-expanded="true"] .gb-nav-toggle-icono--cerrar { display: flex; }
.gb-nav-toggle[aria-expanded="true"] {
	border-color: var(--gb-primario);
	color: var(--gb-primario);
	background: var(--gb-primario-tenue);
}

/* ============================================================
   RESPONSIVE — menú tipo drawer en móvil/tablet
   ============================================================ */
@media (max-width: 900px) {
	.gb-header-inner { height: 64px; }
	.gb-header-brand img { max-height: 40px; }
	.gb-header-logo-fallback { max-height: 38px; }

	.gb-nav-toggle { display: flex; }

	.gb-header-cta { display: none; }

	.gb-nav {
		position: fixed;
		top: 64px;
		left: 0;
		right: 0;
		bottom: 0;
		background: var(--gb-superficie);
		padding: 20px 20px calc(20px + env(safe-area-inset-bottom));
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		transform: translateX(100%);
		transition: transform 0.35s var(--gb-ease), visibility 0.35s;
		visibility: hidden;
		z-index: 9998;
	}
	.gb-nav.gb-nav--abierto {
		transform: translateX(0);
		visibility: visible;
	}

	.gb-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 2px;
	}
	.gb-menu-item--con-submenu {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}
	.gb-menu-item--con-submenu .gb-menu-link {
		flex: 1;
	}
	.gb-menu-link {
		padding: 17px 16px;
		font-size: 16.5px;
		min-height: 52px;
		border-bottom: 1px solid var(--gb-borde);
		border-radius: var(--gb-radio-sm);
	}
	.gb-menu-item--activo > .gb-menu-link::after { display: none; }
	.gb-menu-item--activo > .gb-menu-link { background: var(--gb-primario-tenue); }

	.gb-submenu-toggle {
		display: flex;
		width: 52px;
		height: 52px;
		font-size: 18px;
		flex-shrink: 0;
		border-bottom: 1px solid var(--gb-borde);
	}
	.gb-submenu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

	.gb-submenu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: none;
		border-left: 2px solid var(--gb-primario-tenue);
		margin-left: 12px;
		padding: 4px 0 4px 8px;
		display: none;
		width: 100%;
	}
	.gb-menu-item--con-submenu.gb-submenu-abierto .gb-submenu { display: block; }

	.gb-nav-cta {
		display: flex;
		justify-content: center;
		width: 100%;
		margin-top: 20px;
	}

	/* CTA de WhatsApp dentro del drawer, siempre visible al final */
	.gb-nav::after {
		content: '';
		display: block;
		height: 24px;
	}
}

@media (max-width: 420px) {
	.gb-header-inner { height: 60px; gap: 14px; }
	.gb-header-brand img { max-height: 36px; }
	.gb-header-logo-fallback { max-height: 34px; }
	.gb-nav { top: 60px; padding: 16px; }
	.gb-menu-link { padding: 16px 14px; font-size: 16px; }
}
