*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100vh;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}

:root {
	--font-primary: 'Ebisu', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}
/* ================================
   FUENTES
   ================================ */

@font-face {
	font-family: 'Ebisu';
	src: url('../fonts/Ebisu-Light.woff2') format('woff2');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Ebisu';
	src: url('../fonts/Ebisu-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Ebisu';
	src: url('../fonts/Ebisu-Bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Ebisu';
	src: url('../fonts/Ebisu-Black.woff2') format('woff2');
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}
html, body {
	height: 100%;
	margin: 0;
	font-family: var(--font-primary);
	font-weight: 300; /* Light */
}


/* ================================
   HEADINGS – ESCALA OPTIMIZADA
   ================================ */

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-primary);
	line-height: 1.1;
	margin: 0;
}

h1 {font-size: clamp(1.7rem, 2.8vw, 2.1rem);font-weight: 800;}
h2 {font-size: clamp(1.45rem, 2.4vw, 1.8rem);font-weight: 700;}
h3 {font-size: 1.25rem;font-weight: 600;}
h4 {font-size: 1.1rem;font-weight: 500;}
h5 {font-size: 0.95rem;font-weight: 500;}
h6 {font-size: 0.85rem;font-weight: 500;}

p, li, span, small {
	font-family: var(--font-primary);
	font-weight: 300; /* Light */
	line-height: 1rem;
}
.elementor-icon-list-text{
	font-family: var(--font-primary)!important;
	font-weight: 300;!important /* Light */
	line-height: 1rem;
}
span.elementor-icon-list-text {
    font-weight: 300 !important;
}
/* ================================
   HEADER
   ================================ */

.site-header {
	border-bottom: 1px solid #eee;
	background-color: #fff;
}

/* Container global y neutro */
.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 10px 24px;
}

/* Grid exclusivo del header */
.header-grid {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	column-gap: 40px;
	min-height: 80px;
}

/* ================================
   LOGO
   ================================ */

.site-logo img {
	display: block;
	max-height: 80px;
	width: auto;
}

/* ================================
   MENÚ
   ================================ */

.main-navigation ul {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 2rem;
}

.main-navigation a {
	font-family: var(--font-primary);
	font-weight: 500;
	font-size: 1rem;
	color: #111;
	position: relative;
	padding: 4px 0;
}

/* Hover y activo */
.main-navigation a:hover,
.main-navigation .current-menu-item > a {
	color: #6b3fa0;
}

/* Subrayado activo */
.main-navigation .current-menu-item > a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -6px;
	width: 100%;
	height: 2px;
	background-color: currentColor;
}

/* ================================
   MOBILE (BASE, SIN ROMPER _s)
   ================================ */

@media (max-width: 768px) {
	.header-grid {
		grid-template-columns: 1fr;
		row-gap: 16px;
	}

	.main-navigation ul {
		justify-content: flex-start;
	}
}
/* ================================
   HEADER MOBILE FINAL
   ================================ */

@media (max-width: 768px) {

	/* Header en columna */
	.header-grid {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 14px;
		padding: 16px 0;
	}

	/* Logo */
	.site-branding {
		display: flex;
		justify-content: center;
	}

	/* ================================
	   BOTÓN HAMBURGUESA
	   ================================ */

	.menu-toggle {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		background: none;
		border: 0;
		cursor: pointer;
	}

	.menu-toggle span,
	.menu-toggle::before,
	.menu-toggle::after {
		content: '';
		position: absolute;
		width: 24px;
		height: 2px;
		background-color: #111;
		border-radius: 2px;
		transition: transform 0.3s ease, opacity 0.3s ease;
	}

	.menu-toggle span {
		transform: translateY(0);
	}

	.menu-toggle::before {
		transform: translateY(-8px);
	}

	.menu-toggle::after {
		transform: translateY(8px);
	}

	/* Estado abierto (X) */
	.main-navigation.toggled .menu-toggle::before {
		transform: rotate(45deg);
	}

	.main-navigation.toggled .menu-toggle::after {
		transform: rotate(-45deg);
	}

	.main-navigation.toggled .menu-toggle span {
		opacity: 0;
	}

	/* ================================
	   MENÚ MOBILE
	   ================================ */

	.main-navigation ul {
		display: none;
		width: 100%;
		background-color: #f7f7f7;
		padding: 16px 0;
		flex-direction: column;
		align-items: center;
		gap: 4px;
	}

	.main-navigation.toggled ul {
		display: flex;
	}

	/* Items */
	.main-navigation li {
		width: 100%;
		text-align: center;
	}

	/* Links */
	.main-navigation a {
		display: block;
		width: 100%;
		padding: 12px 0;
		font-size: 1.1rem;
		background-color: transparent;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	/* Hover / tap */
	.main-navigation a:hover {
		background-color: #6b3fa0;
		color: #fff;
	}
}
/* ================================
   MENÚ MOBILE ANIMADO
   ================================ */

@media (max-width: 768px) {

	.main-navigation ul {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		width: 100%;
		background-color: #f7f7f7;
		padding: 8px 0;
		gap: 0;

		/* Animación */
		max-height: 0;
		opacity: 0;
		overflow: hidden;
		transform: translateY(-10px);
		transition:
			max-height 0.4s ease,
			opacity 0.3s ease,
			transform 0.3s ease;
	}

	.main-navigation.toggled ul {
		max-height: 500px;
		opacity: 1;
		transform: translateY(0);
	}

	/* Items */
	.main-navigation li {
		width: 100%;
	}

	/* Links */
	.main-navigation a {
		display: block;
		width: 100%;
		padding: 14px 20px;
		font-size: 1.05rem;
		text-align: left;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	/* Hover / tap */
	.main-navigation a:hover {
		background-color: #6b3fa0;
		color: #fff;
	}
}
/* ================================
   FOOTER
   ================================ */

.site-footer {
	background-color: #5B338A;
	color: #fff;
	padding: 60px 0 20px;
	font-size: 0.95rem;
}
.site-footer ul,
.site-footer li {
	margin-left: 5px;
	padding-left: 5px;
}
.site-logo-footer img{
    height: 130px;
}
/* Grid de 4 columnas */
.footer-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
}

/* Columnas */
.footer-column h4 {
	font-family: var(--font-primary);
	font-weight: 700;
	font-size: 1.1rem;
	margin-bottom: 16px;
}

.footer-column p {
	line-height: 1.6;
	opacity: 0.9;
}

.footer-column ul {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.footer-column a {
	color: #fff;
	opacity: 0.9;
	transition: opacity 0.2s ease, padding-left 0.2s ease;
}

.footer-column a:hover {
	opacity: 1;
	padding-left: 4px;
}

/* Parte inferior */
.footer-bottom {
	border-top: 1px solid rgba(255,255,255,0.15);
	margin-top: 40px;
	padding-top: 16px;
	text-align: center;
	font-size: 0.85rem;
	opacity: 0.8;
}
/* ================================
   FOOTER RESPONSIVE
   ================================ */

@media (max-width: 768px) {

	.footer-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.footer-column p {
		text-align: center;
	}
    .site-logo-footer img{
    height: 130px;
    text-align: center;
    margin: 0 auto;
    }
}

/* ================================
   BLOG
   ================================ */
.blog-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

.page-title {
    text-align: center;
    margin-bottom: 40px;
    font-size: 2rem;
    color: #333;
}

.blog-posts {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: center;
}

.blog-card {
    flex: 1 1 300px;
    max-width: 350px;
    border: 1px solid #ddd;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    transition: transform 0.3s, box-shadow 0.3s;
    background: #fff;
}

.blog-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.blog-card-image img {
    width: 100%;
    display: block;
}

.blog-card-content {
    padding: 20px;
}

.blog-card-title {
    margin-bottom: 15px;
    font-size: 1.5rem;
}

.blog-card-title a {
    text-decoration: none;
    color: #333;
}

.blog-card-excerpt {
    margin-bottom: 15px;
    color: #555;
}

.read-more {
    color: #0073e6;
    font-weight: bold;
    text-decoration: none;
}

.read-more:hover {
    text-decoration: underline;
}

.pagination {
    text-align: center;
    margin-top: 40px;
}

/* ================================
   SINGLE
   ================================ */
.single-post-categories-tags-bar {
    background-color: #5B338A; /* reemplaza con el color exacto de tu footer */
    color: #fff;
    padding: 10px 15px;
    border-radius: 5px;
    margin-bottom: 20px;
    font-size: 0.9rem;
    display: inline-block;
}

.single-post-categories-tags-bar a {
    color: #fff;
    text-decoration: underline;
}

.single-post-categories-tags-bar a:hover {
    text-decoration: none;
}

/* ================================
   ARCHIVE
   ================================ */
