/*
Theme Name: OZ Thema 4.0 — Marca cliente
Description: Tema hijo de OZ-Thema-4.0. Aquí vive la personalización de marca de cada instalación (colores, tipografías y overrides visuales). El tema padre queda neutro y reutilizable; este hijo le pone la identidad del cliente.
Author: Ozado
Template: OZ-Thema-4.0
Version: 1.0.0
Requires PHP: 8.0
Text Domain: oz-tema-4-child
*/

/* =========================================================================
   MARCA DEL CLIENTE
   El tema padre expone estas dos variables NEUTRAS. Ponles los colores
   reales del cliente para remarcar header, footer, botón "Categorías",
   títulos del pie y el banner de asesor de una sola vez.

   Alternativa sin código: Personalizar → «Diseño OZ» → «Header y Footer»
   → «Color de marca». (Si defines aquí abajo, esto gana sobre el Customizer.)
   ========================================================================= */
:root {
	--oz-brand-primary: #001e49;  /* Azul de marca: menú activo, botón «Menú», panel móvil */
	--oz-brand-accent:  #3aaa35;  /* Verde de marca: botón de WhatsApp, títulos del pie */
}

/* =========================================================================
   OVERRIDES ADICIONALES DEL CLIENTE
   Añade aquí cualquier ajuste visual específico de esta instalación.
   Esta hoja se carga DESPUÉS del CSS del padre, así que gana sin !important.
   ========================================================================= */

/* =========================================================================
   CABECERA Y PIE
   Copia del diseño que el sitio tenía con su tema anterior («ozado»).
   Marcado en template-parts/site-header.php y footer.php; JS en assets/js/cabecera.js.
   PC desde 992 px; por debajo, barra móvil con panel lateral.
   ========================================================================= */
.oz-hdr *, .oz-mhdr *, .oz-offcanvas *, .oz-ftr * { box-sizing: border-box; }

/* Ancho del contenido igual al del sitio anterior (Bootstrap: 1420 en PC).
   Lo lee el Maquetador en .oz-pb-inner--theme. */
:root {
	--oz-container-pc: 1420px;
	--oz-container-laptop: 1420px;
	--oz-container-tablet-h: 960px;
	--oz-container-tablet-v: 720px;
	--oz-container-mobile: 480px;
}

/* ----- Cabecera PC ----- */
.oz-hdr {
	position: sticky;
	top: 0;
	z-index: 999;
	background: #fff;
	box-shadow: 0 10px 20px rgb(151 142 142 / 14%);
	color: #212529;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	line-height: 1.5;
}
.oz-hdr ul { list-style: none; margin: 0; padding: 0; }
.oz-hdr p { margin: 0; }
.oz-hdr img { vertical-align: middle; }
.oz-hdr__container { width: 100%; max-width: 1420px; margin: 0 auto; padding: 0 12px; }
.oz-hdr__grid { display: grid; grid-template-columns: 350px 1fr; align-items: center; }
.oz-hdr__logo { text-align: center; padding-right: 10px; }
.oz-hdr__logo .custom-logo-link,
.oz-mhdr__logo .custom-logo-link { display: inline-block; padding: 10px 0; }
.oz-hdr__logo img,
.oz-mhdr__logo img { max-width: 100%; height: auto; vertical-align: middle; }
.oz-hdr__site-name { font-family: "Roboto", sans-serif; font-weight: 700; color: var(--oz-brand-primary); text-decoration: none; }
.oz-hdr__body { border-left: 1px solid #eee; border-right: 1px solid #eee; }

/* Barra superior: se pliega al hacer scroll (.is-scrolled, desde cabecera.js) */
.oz-hdr__top {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	padding: 0 2rem 0 12px;
	border-bottom: 1px solid #eee;
	transition: all 1s ease;
}
.oz-hdr.is-scrolled .oz-hdr__top { height: 0; padding: 0; visibility: hidden; opacity: 0; }
.oz-hdr__top-list { display: flex; }
.oz-hdr__top-list li {
	margin-left: 20px;
	padding: 1rem 20px 1rem 0;
	border-right: 1px solid rgb(0 0 0 / 17%);
	font-size: 14px;
}
.oz-hdr__top-list img { margin-right: 10px; }
.oz-hdr__top-list a { color: inherit; font-family: inherit; text-decoration: none; }
.oz-hdr__top-list a:hover { color: var(--oz-brand-primary); }
.oz-hdr__address { margin-left: 1rem; text-align: right; font-family: "Roboto", sans-serif; font-size: 14px; color: #212529; }

/* Menú + botón de WhatsApp */
.oz-hdr__middle { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 20px; padding: 8px 2rem; }
.oz-hdr__nav { padding: 1rem 0; }
.oz-hdr__nav .oz-hdr__menu { display: flex; gap: 20px; }
.oz-hdr__menu li { position: relative; }
.oz-hdr__menu a {
	display: block;
	color: #767676;
	font-family: "Roboto", sans-serif;
	font-size: 16px;
	font-weight: 400;
	text-decoration: none;
}
.oz-hdr__menu a:hover,
.oz-hdr__menu .current-menu-item > a,
.oz-hdr__menu .current_page_item > a { color: var(--oz-brand-primary); }
.oz-hdr__menu .current-menu-item > a,
.oz-hdr__menu .current_page_item > a { font-weight: 600; }
.oz-hdr__nav .sub-menu {
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
	min-width: 270px;
	padding-top: 20px;
	background: #fff;
	border-bottom: 5px solid var(--oz-brand-primary);
}
.oz-hdr__nav li:hover > .sub-menu,
.oz-hdr__nav li:focus-within > .sub-menu { left: auto; }
.oz-hdr__nav .sub-menu li { border-bottom: 1px solid #eee; }
.oz-hdr__nav .sub-menu li:last-child { border-bottom: 0; }
.oz-hdr__nav .sub-menu a { padding: 6px 1rem; font-size: 15px; font-weight: 300; color: #2b7d27; background: #fff; }
.oz-hdr__nav .sub-menu a:hover { color: #fff; background: var(--oz-brand-primary); }
.oz-hdr__whatsapp {
	display: flex;
	align-items: center;
	padding: 10px 15px;
	border-radius: 2rem;
	background: var(--oz-brand-accent);
	color: var(--oz-brand-primary);
	font-family: "Roboto", sans-serif;
	font-size: 15px;
	text-decoration: none;
	white-space: nowrap;
}
.oz-hdr__whatsapp:hover { background: #34992f; color: var(--oz-brand-primary); }
.oz-hdr__whatsapp img { display: block; margin-right: 10px; }

@media (max-width: 1500px) {
	.oz-hdr__grid { grid-template-columns: 245px 1fr; }
	.oz-hdr__logo { padding: 0 30px; }
	.oz-hdr__top-list li { margin-left: 8px; padding-left: 8px; }
}
@media (max-width: 1199.98px) {
	.oz-hdr__container { max-width: none; }
	.oz-hdr__grid { grid-template-columns: 200px 1fr; }
	/* Cada ícono pegado a su texto. En el original, entre 992 y 1199 px el
	   teléfono y el correo saltaban debajo de su ícono por falta de espacio. */
	.oz-hdr__top-list li { display: flex; align-items: center; font-size: 13px; white-space: nowrap; }
	.oz-hdr__address { display: flex; align-items: center; font-size: 13px; text-align: left; }
	.oz-hdr__address img { flex: none; margin-right: 8px; }
}

/* ----- Cabecera móvil ----- */
.oz-mhdr { display: none; }
.oz-offcanvas[hidden] { display: none; }
@media (max-width: 991.98px) {
	.oz-hdr { display: none; }
	.oz-mhdr {
		display: block;
		position: sticky;
		top: 0;
		z-index: 999;
		padding: 1rem 10px;
		background: #fff;
		box-shadow: 0 2px 6px 0 rgb(0 0 0 / 24%);
	}
}
.oz-mhdr__grid { display: grid; grid-template-columns: 150px auto; }
.oz-mhdr__buttons { display: flex; gap: 1rem; justify-content: flex-end; }
.oz-mhdr__toggle {
	padding: 2px 10px;
	border: 1px solid transparent;
	border-radius: .25rem;
	background: var(--oz-brand-primary);
	color: #fff;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 1.3rem;
	line-height: 1.5;
	cursor: pointer;
}
body.admin-bar .oz-hdr { top: 32px; }
@media (min-width: 601px) and (max-width: 782px) {
	body.admin-bar .oz-mhdr { top: 46px; }
}
@media (min-width: 783px) {
	body.admin-bar .oz-mhdr { top: 32px; }
}

/* Panel lateral del menú móvil */
body.oz-offcanvas-lock { overflow: hidden; }
.oz-offcanvas { position: fixed; inset: 0; z-index: 1045; }
.oz-offcanvas__backdrop { position: absolute; inset: 0; background: #000; opacity: 0; transition: opacity .3s linear; }
.oz-offcanvas.is-open .oz-offcanvas__backdrop { opacity: .5; }
.oz-offcanvas__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	width: 300px;
	max-width: 100%;
	background: var(--oz-brand-primary);
	transform: translateX(-100%);
	transition: transform .3s ease-in-out;
}
.oz-offcanvas.is-open .oz-offcanvas__panel { transform: none; }
.oz-offcanvas__header { display: flex; align-items: center; justify-content: flex-end; padding: 1rem; }
.oz-offcanvas__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 61px;
	height: 36px;
	margin: -.5rem -.5rem -.5rem auto;
	border: 0;
	border-radius: .25rem;
	background: var(--oz-brand-accent);
	color: #fff;
	cursor: pointer;
}
.oz-offcanvas__body { display: grid; flex-grow: 1; place-content: center; padding: 1rem; overflow-y: auto; }
.oz-offcanvas__body .oz-hdr__menu { margin: 0; padding: 0; list-style: none; }
.oz-offcanvas__body li { padding-bottom: 10px; }
.oz-offcanvas__body .sub-menu { display: none; }
.oz-offcanvas__body .oz-hdr__menu a,
.oz-offcanvas__body .oz-hdr__menu .current-menu-item > a,
.oz-offcanvas__body .oz-hdr__menu .current_page_item > a { color: #fff; font-family: "Roboto", sans-serif; font-size: 24px; font-weight: 400; line-height: 1.5; text-decoration: none; }
.oz-offcanvas__body .oz-hdr__menu a:hover { color: var(--oz-brand-accent); }
.oz-mhdr__toggle:focus-visible,
.oz-offcanvas__close:focus-visible,
.oz-offcanvas__body a:focus-visible { outline: 2px solid var(--oz-brand-accent); outline-offset: 2px; }

/* ----- Pie ----- */
.oz-ftr {
	color: #ccc;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	line-height: 1.5;
}
.oz-ftr p { margin: 0; font-family: "Roboto", sans-serif; font-size: 16px; line-height: 1.7; }
.oz-ftr a { font-family: "Roboto", sans-serif; text-decoration: none; transition: .3s ease; }
.oz-ftr img { vertical-align: middle; }
.oz-ftr__widgets { position: relative; padding: 5rem 10px 1.8rem; background: #0a1229; }
.oz-ftr__container { width: 100%; margin: 0 auto; padding: 0 12px; }
@media (min-width: 576px) { .oz-ftr__container { max-width: 540px; } }
@media (min-width: 768px) { .oz-ftr__container { max-width: 720px; } }
@media (min-width: 992px) { .oz-ftr__container { max-width: 960px; } }
@media (min-width: 1200px) { .oz-ftr__container { max-width: 1420px; } }
.oz-ftr__intro { max-width: 900px; margin: 0 auto 2rem; text-align: center; }
.oz-ftr__logo { margin-bottom: 1.5rem; }
.oz-ftr__logo img { max-width: 100%; height: auto; }
.oz-ftr__intro p { margin-bottom: 1rem; font-size: 15px; color: #ccc; }
.oz-ftr__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-bottom: 1.5rem;
	padding-bottom: 3.5rem;
	border-bottom: 1px solid rgb(255 255 255 / 10%);
	text-align: center;
}
.oz-ftr__col { border-right: 1px solid rgb(255 255 255 / 10%); }
.oz-ftr__col:last-child { border-right: 0; }
.oz-ftr__grid p { color: #ccc; }
.oz-ftr__grid strong { color: var(--oz-brand-accent); font-weight: 700; }
.oz-ftr__grid a { color: inherit; }
.oz-ftr__grid a:hover { color: #7bc900; }
.oz-ftr p.oz-ftr__gap { margin-top: 1.7em; }
.oz-ftr__badge img { max-width: 100%; height: auto; }
.oz-ftr__menu-list { display: flex; justify-content: center; gap: 3rem; margin: 0; padding-left: 22px; list-style: none; }
.oz-ftr__menu-list .sub-menu { display: none; }
.oz-ftr__menu-list a { color: #fff; font-size: 16px; }
.oz-ftr__menu-list a:hover { color: #7bc900; }
.oz-ftr__bottom {
	padding: 20px 0;
	border-top: 1px solid rgb(229 229 229 / 15%);
	background: #0a1229;
	color: rgb(255 255 255 / 50%);
	font-size: 13px;
	font-weight: 500;
	text-align: center;
}
.oz-ftr__bottom a { color: rgb(255 255 255 / 50%); font-size: 13px; font-weight: 500; }
.oz-ftr__bottom a:hover { color: #7bc900; }
@media (max-width: 991.98px) {
	.oz-ftr__grid { grid-template-columns: 1fr; gap: 1rem; }
	.oz-ftr__col { border-right: 0; }
}
@media (max-width: 575.98px) {
	.oz-ftr__grid { margin: 0; padding: 0; border: 0; }
	.oz-ftr__menu { display: none; }
}

/* Fix botón menú móvil/tablet — 24-sep */
.oz-mhdr__buttons { align-items: center; }
.oz-mhdr__toggle {
  padding: 10px 16px;
  font-size: 1rem;
  line-height: 1.2;
  min-height: 44px;
}