/*
=========================================================
LAYOUT.CSS
Estructura principal del sitio
=========================================================
*/

/* =====================================================
   CONTENEDOR
===================================================== */

.container{
	width:min(92%,var(--container-width));
	margin-inline:auto;
	min-width:0;
}

/* =====================================================
   SECCIONES
===================================================== */

section{
	padding:6rem 0;
}

/* =====================================================
   HEADER
===================================================== */

.site-header{
	position:sticky;
	top:0;
	left:0;
	width:100%;
	height:var(--header-height);
	background:rgba(255,255,255,.96);
	backdrop-filter:blur(12px);
	border-bottom:1px solid var(--gray-200);
	z-index:var(--z-header);
}

.header-container{
	height:100%;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:2rem;
}

.site-branding{
	flex-shrink:0;
}

.main-navigation{
	margin-left:auto;
}

.main-menu a{
	font-weight:600;
	color:var(--gray-800);
	padding:.5rem 0;
}

.main-menu a:hover,
.main-menu a:focus-visible{
	color:var(--color-secondary);
}

.header-actions{
	display:flex;
	align-items:center;
	gap:1rem;
}

.header-phone{
	font-weight:700;
	color:var(--color-primary);
}

.mobile-toggle{
	display:none;
	width:44px;
	height:44px;
	align-items:center;
	justify-content:center;
	flex-direction:column;
	gap:5px;
}

.mobile-toggle span{
	width:24px;
	height:2px;
	background:var(--color-primary);
	display:block;
}

/* =====================================================
   TRUST
===================================================== */

.trust-grid{
	margin-top:3rem;
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:2rem;
}

/* =====================================================
   SERVICIOS
===================================================== */

.services-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1.5rem;
	margin-top:3rem;
}

/* =====================================================
   FOOTER GLOBAL
===================================================== */

.site-footer{
	background:#111827;
	color:#fff;
	padding-top:3.75rem;
}

.footer-grid{
	display:grid;
	grid-template-columns:minmax(0,1.3fr) minmax(0,1.15fr) minmax(0,.95fr) minmax(0,.95fr);
	gap:2rem;
	padding-bottom:3rem;
}

.footer-grid > *{
	min-width:0;
}

.footer-title{
	color:#fff;
	margin-bottom:.9rem;
	font-size:clamp(1.45rem,1.9vw,2rem);
	line-height:1.08;
	text-wrap:balance;
	overflow-wrap:normal;
	word-break:normal;
}

.footer-column > p{
	color:#9ca3af;
	font-size:.92rem;
	line-height:1.65;
}

.footer-links,
.footer-contact{
	margin:0;
	padding:0;
	list-style:none;
}

.footer-links li,
.footer-contact li{
	margin-bottom:.55rem;
	line-height:1.45;
}

.footer-links a,
.footer-contact a{
	color:#d1d5db;
	text-decoration:none;
}

.footer-links a:hover,
.footer-links a:focus-visible,
.footer-contact a:hover,
.footer-contact a:focus-visible{
	color:#fff;
	text-decoration:underline;
	text-underline-offset:.15em;
}

.footer-social{
	display:flex;
	flex-wrap:wrap;
	gap:.65rem;
	list-style:none;
	padding:0;
	margin:1.1rem 0 0;
}

.footer-social a{
	display:inline-flex;
	align-items:center;
	min-height:38px;
	color:#d1d5db;
	font-size:.82rem;
	border:1px solid rgba(255,255,255,.2);
	border-radius:var(--radius-pill);
	padding:.3rem .85rem;
	text-decoration:none;
}

.footer-social a:hover,
.footer-social a:focus-visible{
	color:#fff;
	border-color:rgba(255,255,255,.5);
}

.footer-hours,
.footer-coverage{
	color:#d1d5db;
	font-size:.82rem;
	line-height:1.5;
	margin:.35rem 0 0;
}

.footer-bottom{
	border-top:1px solid rgba(255,255,255,.08);
	padding:1.25rem 0;
	margin-top:0;
}

.footer-bottom-container{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:1.25rem 2rem;
	flex-wrap:wrap;
}

.footer-bottom-container > p{
	margin:0;
	color:#9ca3af;
	font-size:.82rem;
	line-height:1.45;
}

.footer-legal{
	dis:flex;
	display:flex;
	flex-wrap:wrap;
	gap:.65rem 1rem;
	align-items:center;
}

.footer-legal a,
.footer-cookie-settings{
	font-size:.82rem;
}

.footer-cookie-settings{
	appearance:none;
	border:0;
	background:transparent;
	color:#d1d5db;
	font:inherit;
	padding:0;
	cursor:pointer;
	text-decoration:underline;
	text-underline-offset:.2em;
}

.footer-cookie-settings:hover,
.footer-cookie-settings:focus-visible{
	color:#fff;
}

/* =====================================================
   RESPONSIVE
===================================================== */

@media (max-width:1200px){
	.footer-grid{
		grid-template-columns:minmax(0,1.2fr) minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr);
	}
}

@media (max-width:992px){
	.hero-split,
	.trust-grid{
		grid-template-columns:1fr;
	}

	.services-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.main-navigation{
		display:none;
	}

	.mobile-toggle{
		display:flex;
	}

	.footer-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width:768px){
	.services-grid{
		grid-template-columns:1fr;
	}

	.footer-grid{
		grid-template-columns:1fr;
		gap:2rem;
	}

	.header-phone{
		display:none;
	}

	.hero-split__actions{
		flex-direction:column;
	}

	.footer-bottom-container{
		flex-direction:column;
		align-items:flex-start;
		text-align:left;
	}

	.footer-legal{
		justify-content:flex-start;
	}
}

/* =====================================================
   NAVEGACIÓN MÓVIL ACCESIBLE
===================================================== */

@media (max-width:992px){
	.header-container{
		position:relative;
	}

	.main-navigation.is-open{
		display:block;
		position:absolute;
		top:calc(100% + 1px);
		left:0;
		right:0;
		margin:0;
		padding:1rem min(4vw,2rem) 1.5rem;
		background:#fff;
		border-bottom:1px solid var(--gray-200);
		box-shadow:var(--shadow-md);
		max-height:calc(100vh - var(--header-height));
		overflow-y:auto;
	}

	.main-navigation.is-open .main-menu{
		display:flex;
		flex-direction:column;
		align-items:stretch;
		gap:.25rem;
	}

	.main-navigation.is-open .main-menu a{
		display:block;
		padding:.75rem 0;
	}

	.main-navigation.is-open .main-menu .sub-menu{
		display:block;
		position:static;
		box-shadow:none;
		border-left:2px solid var(--gray-200);
		border-radius:0;
		padding:0 0 0 1rem;
		margin:.25rem 0 .5rem;
	}

	body.menu-open{
		overflow:hidden;
	}
}
