/*
Theme Name: OZ Tema 2.0
Theme URI: https://example.com
Author: Tu nombre
Author URI: https://example.com
Description: Tema básico para WordPress, compatible con PHP 8.3.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: oz-tema-2
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.3
*/

/*
 * Variables --OZ-* y --oz-header-* / --oz-footer-*: se inyectan en el front
 * desde inc/customizer.php (oz_tema_2_get_css_variables_string → wp_add_inline_style).
 * No repitas aquí los valores por defecto del Personalizador.
 */

/* Reset mínimo */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body,
body.customize-support {
	margin: 0;
	width: 100%;
	max-width: 100%;
	overflow-x: hidden;
}

body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	font-family: var(--OZ-Font-Base);
	font-size: var(--OZ-Size-Paragraph);
	line-height: 1.6;
	color: var(--OZ-Color-2);
	background: var(--OZ-Color-4);
}

/* Tokens esperados por el maquetador (fuente única: ancho/padding del tema). */
:root {
	--container: var(--OZ-Container-Mobile);
	--container-padding: 1.25rem;
}

@media (min-width: 768px) {
	:root {
		--container: var(--OZ-Container-Tablet);
	}
}

@media (min-width: 992px) {
	:root {
		--container: var(--OZ-Container-Laptop);
	}
}

@media (min-width: 1200px) {
	:root {
		--container: var(--OZ-Container-PC);
	}
}

h1,
h2,
h3,
h4 {
	font-family: var(--OZ-Font-Headings);
	font-weight: 600;
}

a {
	color: var(--OZ-Color-3);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

.oz-shop-banner {
	width: 100%;
	min-height: clamp(72px, 14vw, 180px);
	background-image: var(--OZ-Shop-Banner-Url);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.site {
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	width: 100%;
	margin: 0 auto;

}

@media (max-width: 1199px) {
	.site {
		max-width: min(100%, var(--OZ-Container-Laptop));
	}
}

@media (max-width: 991px) {
	.site {
		max-width: min(100%, var(--OZ-Container-Tablet));
	}
}

@media (max-width: 767px) {
	.site {
		max-width: min(100%, var(--OZ-Container-Mobile));
	}
}

.site-main {
	flex: 1 0 auto;
	min-height: 0;
}

/* Páginas y bloques clásicos (no tarjetas de archivo).
 * No usar selector suelto `.page`: WordPress añade `page` también al <body> en singulares
 * y el padding acabaría aplicado a toda la página (hueco bajo admin bar / TB header). */


/* Solo páginas con layout del maquetador: evitar doble recorte horizontal del builder. */
article.page:has(> .entry-content > .oz-pb-root) {
	padding-left: 0;
	padding-right: 0;
}

/* Rama estructural para páginas con builder:
 * el tema no vuelve a contener horizontalmente; el builder controla el layout. */
body:has(main.site-main > article.page > .entry-content > .oz-pb-root) .site {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

body:has(main.site-main > article.page > .entry-content > .oz-pb-root) .site-footer {
	margin-top: 0;
	padding-top: 8.4rem;
	border-top: none;
}

body:has(main.site-main > article.page > .entry-content > .oz-pb-root) .site-main,
body:has(main.site-main > article.page > .entry-content > .oz-pb-root) article.page,
body:has(main.site-main > article.page > .entry-content > .oz-pb-root) article.page > .entry-content {
	min-height: 0;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
}

/* Builder: mapear tokens del tema a tokens del maquetador (para evitar “doble compresión”). */
article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root {
	--container: var(--OZ-Container-Mobile);
	--container-padding: 20px; /* equivalente a .site padding-inline (1.25rem) */
}

@media (min-width: 768px) {
	article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root {
		--container: var(--OZ-Container-Tablet);
	}
}

@media (min-width: 992px) {
	article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root {
		--container: var(--OZ-Container-Laptop);
	}
}

@media (min-width: 1200px) {
	article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root {
		--container: var(--OZ-Container-PC);
	}
}

/* Builder: la sección en modo "ancho del tema" (oz-pb-section--theme) debe
 * respetar el --container del tema. Esta regla vive en el tema (no en el
 * plugin) por tres motivos:
 *   1. El tema carga siempre con URL predecible; no depende de la
 *      regeneración de wp-content/uploads/oz-page-builder/global/global.css.
 *   2. Mayor especificidad que el CSS base del plugin (article.page:has(...)
 *      .oz-pb-root .oz-pb-section--theme gana sobre html body .oz-pb-root
 *      .oz-pb-section--theme), así corrige el caso histórico en el que el
 *      global.css del plugin agrupaba --full y --theme y forzaba 100vw a la
 *      sección "theme".
 *   3. El tema es el dueño de las variables --container / --OZ-Container-*,
 *      así que es el sitio natural para fijar el contrato.
 */
article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root .oz-pb-section--theme {
	width: 100%;
	max-width: var(--container, var(--OZ-Container-PC));
	margin-left: auto;
	margin-right: auto;
}

/* Builder: modo "full" (oz-pb-section--full) sí rompe contenedor a 100vw.
 * Redeclarado aquí explícitamente para garantizar el comportamiento aun si
 * el global.css del plugin estuviera desactualizado en el servidor. */
article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root .oz-pb-section--full {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* Builder: imagen de fondo de columna / sub-columna / sección / layout interno.
 * El plugin emite un <div class="oz-pb-col__media-bg"> position:absolute como
 * primer hijo del contenedor, y le añade la clase --has-media-bg al padre para
 * darle position:relative + overflow:hidden. Redeclaramos aquí el contrato CSS
 * porque si el global.css del plugin no se está sirviendo (uploads/ obsoleto,
 * 404, caché agresiva), el <div> absolute se ancla al body y la imagen no se
 * ve aunque el HTML sea correcto.
 *
 * Especificidad calculada para ganar sobre `html body .oz-pb-root .oz-pb-*`
 * del plugin sin recurrir a !important. */
article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root .oz-pb-col--has-media-bg,
article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root .oz-pb-section--has-media-bg,
article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root .oz-pb-internal-layout--has-media-bg {
	position: relative;
	overflow: hidden;
}

article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root .oz-pb-col__media-bg,
article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root .oz-pb-section__media-bg,
article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root .oz-pb-internal-layout__media-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

/* Los hijos directos del contenedor (texto, imagen, layout interno) deben
 * quedar por encima de la capa de fondo (z-index:0). Excluimos al propio
 * media-bg y al stretched link, que tienen su propio stacking. */
article.page:has(> .entry-content > .oz-pb-root) .oz-pb-root .oz-pb-col--has-media-bg > *:not(.oz-pb-col__media-bg):not(.oz-pb-col__stretched-link) {
	position: relative;
	z-index: 1;
}

/* Fix: bloque de texto "NUESTRA EXPERIENCIA EN NÚMEROS" desbordaba en móvil
   porque la palabra "EXPERIENCIA" no rompía dentro de su columna (288px). */
.nosotros-contenedor3-text,
.nosotros-contenedor3-text * {
	max-width: 100%;
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: break-word;
	hyphens: auto;
}

.nosotros-contenedor3-text {
	box-sizing: border-box;
	overflow: hidden;
}

/* —— Archivo / blog: 4 columnas */
.archive-header {
	margin-bottom: 2rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--OZ-Color-6);
}

.archive-header__title {
	font-family: var(--OZ-Font-Headings);
	font-size: var(--OZ-Size-H1);
	font-weight: 700;
	margin: 0 0 0.5rem;
	color: var(--OZ-Color-1);
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.archive-header__desc {
	margin: 0;
	max-width: 42rem;
	color: var(--OZ-Color-2);
	font-size: 1.05rem;
	line-height: 1.6;
}

.archive-header__desc > *:first-child {
	margin-top: 0;
}

.archive-header__desc > *:last-child {
	margin-bottom: 0;
}

.posts-archive-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
	margin-bottom: 2.5rem;
	align-items: stretch;
}

@media (max-width: 1199px) {
	.posts-archive-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 991px) {
	.posts-archive-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 575px) {
	.posts-archive-grid {
		grid-template-columns: 1fr;
	}
}

.oz-archive-card {
	margin: 0;
	height: 100%;
}

.oz-archive-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
	background: var(--OZ-Color-5);
	border: 1px solid var(--OZ-Color-6);
	border-radius: 8px;
	overflow: hidden;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.oz-archive-card__link:hover {
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.08);
	border-color: var(--OZ-Color-3);
}

.oz-archive-card__link:hover .oz-archive-card__title {
	color: var(--OZ-Color-3);
}

.oz-archive-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--OZ-Color-6);
}

.oz-archive-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.oz-archive-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 8rem;
	background: linear-gradient(135deg, var(--OZ-Color-6) 0%, var(--OZ-Color-4) 100%);
}

.oz-archive-card__body {
	padding: 1rem 1.15rem 1.2rem;
	text-align: left;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.oz-archive-card__title {
	font-family: var(--OZ-Font-Headings);
	font-size: clamp(0.95rem, 1.05vw, 1.0625rem);
	font-weight: 700;
	line-height: 1.35;
	margin: 0;
	color: var(--OZ-Color-2);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	transition: color 0.2s ease;
}

.oz-archive-card__excerpt {
	font-family: var(--OZ-Font-Base);
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--OZ-Color-2);
	margin: 0;
	opacity: 0.92;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
	flex: 1;
}

.oz-archive-card__meta {
	font-family: var(--OZ-Font-Base);
	font-size: 0.75rem;
	color: var(--OZ-Color-2);
	opacity: 0.9;
	margin-top: auto;
	padding-top: 0.35rem;
}

.oz-archive-card__meta-sep {
	opacity: 0.6;
}

.navigation.pagination,
.posts-pagination {
	margin: 0 0 2rem;
}

.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
}

.navigation.pagination a,
.navigation.pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.65rem;
	font-size: 0.875rem;
	font-weight: 500;
	border-radius: 6px;
	border: 1px solid var(--OZ-Color-6);
	background: var(--OZ-Color-5);
	color: var(--OZ-Color-2);
	text-decoration: none;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.navigation.pagination a:hover {
	border-color: var(--OZ-Color-3);
	color: var(--OZ-Color-3);
}

.navigation.pagination span.current {
	background: var(--OZ-Color-1);
	border-color: var(--OZ-Color-1);
	color: var(--OZ-Color-5);
}

.navigation.pagination span.dots {
	border-color: transparent;
	background: transparent;
	min-width: auto;
}

.archive-empty {
	max-width: 36rem;
}

/* Entrada individual (layout editorial) */
.site-main--single {
	max-width: 100%;
}

.single-layout {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

@media (min-width: 992px) {
	.single-layout:has(.single-sidebar) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
		gap: 2.5rem;
		align-items: start;
	}
}

.single-layout__main {
	min-width: 0;
}

/* Barra lateral single */
.single-sidebar {
	font-family: var(--OZ-Font-Base);
}

@media (min-width: 992px) {
	.single-layout:has(.single-sidebar) .single-sidebar {
		position: sticky;
		top: 1.25rem;
	}
}

.single-sidebar__widget {
	margin-bottom: 1.75rem;
}

.single-sidebar__widget:last-child {
	margin-bottom: 0;
}

/* Listas en widgets clásicos (recientes, páginas, RSS, etc.) */
.single-sidebar .widget > ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.single-sidebar .widget > ul > li {
	margin: 0 0 0.85rem;
	padding: 0;
	line-height: 1.4;
}

.single-sidebar .widget > ul > li:last-child {
	margin-bottom: 0;
}

.single-sidebar .widget > ul > li > a {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--OZ-Color-2);
	text-decoration: none;
}

.single-sidebar .widget > ul > li > a:hover {
	color: var(--OZ-Color-3);
}

.single-sidebar .widget .post-date,
.single-sidebar .widget .rss-date {
	display: block;
	font-size: 0.75rem;
	color: var(--OZ-Color-2);
	margin-top: 0.2rem;
}

/* Buscador */
.single-sidebar .widget_search .search-form {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.single-sidebar .widget_search label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.single-sidebar .widget_search .search-field {
	width: 100%;
	padding: 0.5rem 0.75rem;
	font-family: inherit;
	font-size: 0.9375rem;
	border: 1px solid var(--OZ-Color-6);
	border-radius: 6px;
	background: var(--OZ-Color-5);
	color: var(--OZ-Color-2);
}

.single-sidebar .widget_search .search-field:focus {
	outline: 2px solid var(--OZ-Color-3);
	outline-offset: 1px;
}

.single-sidebar .widget_search .search-submit,
.single-sidebar .widget_search button[type="submit"] {
	align-self: flex-start;
	padding: 0.45rem 1rem;
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	border: none;
	border-radius: 6px;
	background: var(--OZ-Color-3);
	color: var(--OZ-Color-5);
}

.single-sidebar .widget_search .search-submit:hover,
.single-sidebar .widget_search button[type="submit"]:hover {
	opacity: 0.92;
}

.single-sidebar__title {
	font-family: var(--OZ-Font-Headings);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--OZ-Color-1);
	margin: 0 0 0.85rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--OZ-Color-6);
}

.single-sidebar__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.single-sidebar__item {
	margin: 0 0 0.85rem;
	padding: 0;
}

.single-sidebar__item:last-child {
	margin-bottom: 0;
}

.single-sidebar__link {
	display: block;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--OZ-Color-2);
	text-decoration: none;
}

.single-sidebar__link:hover {
	color: var(--OZ-Color-3);
}

.single-sidebar__meta {
	display: block;
	font-size: 0.75rem;
	color: var(--OZ-Color-2);
	opacity: 0.9;
	margin-top: 0.2rem;
}

.single-sidebar .widget_categories .cat-item,
.single-sidebar .widget .cat-item {
	margin: 0 0 0.5rem;
	font-size: 0.875rem;
	line-height: 1.4;
}

.single-sidebar .widget_categories .cat-item a,
.single-sidebar .widget .cat-item a {
	color: var(--OZ-Color-2);
	text-decoration: none;
	font-weight: 500;
}

.single-sidebar .widget_categories .cat-item a:hover,
.single-sidebar .widget .cat-item a:hover {
	color: var(--OZ-Color-3);
}

.single-sidebar .widget_categories .cat-item .post-count,
.single-sidebar .widget .cat-item span {
	font-size: 0.75rem;
	color: var(--OZ-Color-2);
	font-weight: 400;
}

.single-post {
	background: var(--OZ-Color-5);
	
	/* Sin overflow:hidden en el artículo: en algunos navegadores bloqueaba el scroll de la página. */
	margin-bottom: 2.5rem;
	border: none;
	box-shadow: none;
}

.single-post__figure {
	margin: 0;
}

.single-post__figure:first-child .single-post__thumbnail {
	
}

.single-post__thumbnail {
	margin: 0;
	line-height: 0;
	max-height: min(70vh, 520px);
	overflow: hidden;
	background: var(--OZ-Color-1);
}

.single-post__thumbnail-img,
.single-post__thumbnail img {
	display: block;
	width: 100%;
	height: min(70vh, 520px);
	object-fit: cover;
	vertical-align: middle;
}

.single-post__caption {
	display: block;
	max-width: none;
	margin: 0;
	padding: 0.65rem clamp(1rem, 3vw, 2rem) 0;
	font-size: 0.8125rem;
	color: var(--OZ-Color-2);
	line-height: 1.45;
}

.single-post__shell {
	padding: clamp(1.5rem, 4vw, 2.75rem) clamp(1rem, 3vw, 2rem);
}

.single-post__body {
	max-width: none;
	margin: 0;
	padding: 0;
}

.single-post__header {
	margin-bottom: 0;
}

.single-post__eyebrow {
	font-family: var(--OZ-Font-Base);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 0.75rem;
	color: var(--OZ-Color-3);
}

.single-post__eyebrow a {
	color: inherit;
	text-decoration: none;
}

.single-post__eyebrow a:hover {
	text-decoration: underline;
}

.single-post__title.entry-title {
	font-size: clamp(1.75rem, 4vw, var(--OZ-Size-H1));
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
	margin: 0 0 1rem;
	color: var(--OZ-Color-1);
}

.single-post__byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	font-size: 0.9375rem;
	color: var(--OZ-Color-2);
	margin-bottom: 0;
}

.single-post__byline-sep {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--OZ-Color-6);
	flex-shrink: 0;
}

.single-post__author {
	color: var(--OZ-Color-2);
	font-weight: 600;
	text-decoration: none;
}

.single-post__author:hover {
	color: var(--OZ-Color-3);
}

.single-post__content {
	margin-top: 1.75rem;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--OZ-Color-2);
}

.single-post__content > *:first-child {
	margin-top: 0;
}

.single-post__content p {
	margin-top: 0;
	margin-bottom: 1.25em;
}

.single-post__content h2,
.single-post__content h3,
.single-post__content h4 {
	margin-top: 1.75em;
	margin-bottom: 0.65em;
	letter-spacing: -0.02em;
}

.single-post__content ul,
.single-post__content ol {
	margin: 0 0 1.25em 1.25em;
	padding: 0;
}

.single-post__content blockquote {
	margin: 1.5em 0;
	padding: 1rem 1.25rem;
	border: none;
	background: color-mix(in srgb, var(--OZ-Color-4) 92%, var(--OZ-Color-6));
	border-radius: 8px;
	font-style: italic;
	color: var(--OZ-Color-2);
}

.single-post__content img,
.single-post__content .wp-block-image img {
	border-radius: 8px;
	height: auto;
	max-width: 100%;
}

/* No forzar alignfull a max-width:none: puede desbordar el viewport y afectar al scroll. */
.single-post__content .alignwide {
	max-width: min(100%, 100vw - 2.5rem);
}

.single-post__footer-tags {
	margin-top: 2.5rem;
	padding-top: 1.5rem;
	border: none;
}

.single-post__tags-label {
	display: block;
	font-family: var(--OZ-Font-Base);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--OZ-Color-2);
	margin-bottom: 0.65rem;
}

.single-post__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.single-post__tags a {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	font-size: 0.8125rem;
	font-weight: 500;
	text-decoration: none;
	color: var(--OZ-Color-2);
	background: color-mix(in srgb, var(--OZ-Color-4) 85%, var(--OZ-Color-6));
	border: none;
	border-radius: 999px;
	transition: color 0.15s ease, background 0.15s ease;
}

.single-post__tags a:hover {
	color: var(--OZ-Color-3);
	background: color-mix(in srgb, var(--OZ-Color-4) 70%, var(--OZ-Color-3));
}

/* Relacionadas: fila de 4 tarjetas (captura referencia) */
.oz-related {
	margin-top: 0.5rem;
	margin-bottom: 2rem;
}

.oz-related__title {
	font-family: var(--OZ-Font-Headings);
	font-size: var(--OZ-Size-H2);
	font-weight: 600;
	margin: 0 0 1.25rem;
	color: var(--OZ-Color-2);
}

.oz-related__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
	align-items: stretch;
}

@media (max-width: 991px) {
	.oz-related__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 575px) {
	.oz-related__grid {
		grid-template-columns: 1fr;
	}
}

.oz-related-card {
	margin: 0;
	height: 100%;
}

.oz-related-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
	background: var(--OZ-Color-5);
	border: 1px solid var(--OZ-Color-6);
	border-radius: 6px;
	overflow: hidden;
	transition: box-shadow 0.2s ease;
}

.oz-related-card__link:hover {
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

.oz-related-card__link:hover .oz-related-card__title {
	color: var(--OZ-Color-3);
}

.oz-related-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--OZ-Color-6);
}

.oz-related-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.oz-related-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 8rem;
	background: linear-gradient(135deg, var(--OZ-Color-6) 0%, var(--OZ-Color-4) 100%);
}

.oz-related-card__body {
	padding: 1rem 1.15rem 1.15rem;
	text-align: left;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.oz-related-card__title {
	font-family: var(--OZ-Font-Headings);
	font-size: clamp(0.95rem, 1.1vw, 1.05rem);
	font-weight: 700;
	line-height: 1.35;
	margin: 0 0 0.5rem;
	color: var(--OZ-Color-2);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	transition: color 0.2s ease;
}

.oz-related-card__byline {
	font-family: var(--OZ-Font-Base);
	font-size: 0.8125rem;
	color: var(--OZ-Color-2);
	opacity: 0.85;
	margin: 0;
	margin-top: auto;
}

.entry-title {
	margin-top: 0;
	font-family: var(--OZ-Font-Headings);
}

article h1.entry-title {
	font-size: var(--OZ-Size-H1);	
}

article h2.entry-title {
	font-size: var(--OZ-Size-H2);
}

.entry-content h2 {
	font-size: var(--OZ-Size-H2);
}

.entry-content h3 {
	font-size: var(--OZ-Size-H3);
}

.entry-content h4 {
	font-size: var(--OZ-Size-H4);
}

.entry-meta {
	font-size: 0.85rem;
	color: var(--OZ-Color-2);
	opacity: 0.85;
	margin-bottom: 1rem;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

.single-product .oz-ficha-tecnica-wrap {
    width: 100%;
    margin-top: 14px;
    clear: both;
}

.single-product .oz-btn-ficha-tecnica {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 55px;
    background: #111827;
    color: #ffffff !important;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none !important;
    border-radius: 10px;
    transition: all 0.25s ease;
}

.single-product .oz-btn-ficha-tecnica:hover {
    background: #000000;
    color: #ffffff !important;
}