/**
 * TechWorld premium global footer.
 */

.site-footer {
	position: relative;
	background: #091327;
	color: rgba(255, 255, 255, 0.72);
}

.footer-cta {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 88% 30%, rgba(255,255,255,.13), transparent 22%),
		linear-gradient(120deg, #2348bd 0%, #245fe3 55%, #2f6ff0 100%);
	color: #fff;
}

.footer-cta::before {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
	background-size: 34px 34px;
	content: "";
	pointer-events: none;
}

.footer-cta::after {
	position: absolute;
	top: -62%;
	right: -5%;
	width: 360px;
	height: 360px;
	border: 1px solid rgba(255,255,255,.14);
	border-radius: 50%;
	box-shadow: 0 0 0 54px rgba(255,255,255,.045), 0 0 0 108px rgba(255,255,255,.025);
	content: "";
	pointer-events: none;
}

.footer-cta__inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(2rem, 5vw, 5rem);
	padding-block: clamp(3rem, 5vw, 4.5rem);
}

.footer-cta__content { max-width: 760px; }
.footer-cta__eyebrow { display:inline-flex; align-items:center; gap:.55rem; margin:0 0 .75rem; color:rgba(255,255,255,.88); font-size:.75rem; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.footer-cta__eyebrow::before { width:32px; height:2px; background:var(--techworld-color-accent-400); content:""; }
.footer-cta__title { margin:0; color:#fff; font-size:clamp(2rem,4vw,3.1rem); letter-spacing:-.04em; }
.footer-cta__description { max-width:62ch; margin:1rem 0 0; color:rgba(255,255,255,.84); font-size:1.02rem; }
.footer-cta__actions { display:flex; flex:0 0 auto; flex-wrap:wrap; gap:.75rem; }
.footer-cta__actions .techworld-button { min-height:54px; padding-inline:1.45rem; }
.footer-cta__primary { background:var(--techworld-color-accent-400); color:#101a2d; box-shadow:0 14px 30px rgba(0,0,0,.14); }
.footer-cta__primary:hover,
.footer-cta__primary:focus-visible { background:#fff; color:#101a2d; }
.footer-cta__secondary { border-color:rgba(255,255,255,.48); color:#fff; }
.footer-cta__secondary:hover,
.footer-cta__secondary:focus-visible { border-color:#fff; background:#fff; color:#0f172a; }

.site-footer__main {
	position: relative;
	padding-block: clamp(4.25rem, 7vw, 6.75rem);
	background:
		radial-gradient(circle at 10% 0%, rgba(37,99,235,.08), transparent 28%),
		linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
	background-size: auto, 32px 32px, 32px 32px;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: minmax(260px,1.35fr) repeat(2,minmax(180px,.75fr)) minmax(250px,1fr);
	gap: clamp(2.5rem, 5vw, 5rem);
}

.site-footer__brand { padding-right:clamp(0rem,2vw,1.5rem); }
.site-footer__identity .custom-logo-link { display:inline-flex; }
.site-footer__identity .custom-logo { width:auto; max-width:230px; height:auto; max-height:66px; filter:brightness(0) invert(1); }
.site-footer__site-name { color:#fff; font-family:var(--techworld-font-heading); font-size:1.6rem; font-weight:850; letter-spacing:-.03em; text-decoration:none; }
.site-footer__description { max-width:40ch; margin:1.35rem 0 1.6rem; color:rgba(255,255,255,.68); line-height:1.8; }
.site-footer__socials,
.site-footer__menu,
.site-footer__legal-menu { padding:0; margin:0; list-style:none; }
.site-footer__socials { display:flex; flex-wrap:wrap; gap:.65rem; }
.site-footer__socials a { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.13); border-radius:12px; background:rgba(255,255,255,.045); color:#fff; font-weight:800; text-decoration:none; transition:background-color var(--techworld-transition),border-color var(--techworld-transition),transform var(--techworld-transition),box-shadow var(--techworld-transition); }
.site-footer__socials a:hover,
.site-footer__socials a:focus-visible { border-color:var(--techworld-color-primary-500); background:var(--techworld-color-primary-600); box-shadow:0 10px 24px rgba(37,99,235,.22); transform:translateY(-3px); }

.site-footer__heading { position:relative; padding-bottom:1rem; margin:0 0 1.6rem; color:#fff; font-size:1.05rem; letter-spacing:-.01em; }
.site-footer__heading::after { position:absolute; bottom:0; left:0; width:48px; height:3px; border-radius:999px; background:linear-gradient(90deg,var(--techworld-color-accent-400),var(--techworld-color-primary-500)); content:""; }
.site-footer__menu li + li { margin-top:.75rem; }
.site-footer__menu a,
.site-footer__address a,
.site-footer__map-link,
.site-footer__legal-menu a { color:rgba(255,255,255,.7); text-decoration:none; transition:color var(--techworld-transition),transform var(--techworld-transition); }
.site-footer__menu a { display:inline-flex; align-items:center; gap:.55rem; }
.site-footer__menu a::before { color:var(--techworld-color-accent-400); content:"›"; font-size:1.15rem; transition:transform var(--techworld-transition); }
.site-footer__menu a:hover,
.site-footer__menu a:focus-visible,
.site-footer__address a:hover,
.site-footer__address a:focus-visible,
.site-footer__map-link:hover,
.site-footer__map-link:focus-visible,
.site-footer__legal-menu a:hover,
.site-footer__legal-menu a:focus-visible { color:#fff; }
.site-footer__menu a:hover::before,
.site-footer__menu a:focus-visible::before { transform:translateX(3px); }

.site-footer__address { display:grid; gap:.7rem; font-style:normal; }
.site-footer__address p { display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:.8rem; min-height:50px; padding:.55rem .7rem; margin:0; border:1px solid rgba(255,255,255,.07); border-radius:12px; background:rgba(255,255,255,.025); }
.site-footer__address p > span:first-child { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:9px; background:rgba(245,158,11,.1); color:var(--techworld-color-accent-400); }
.site-footer__map-link { display:inline-flex; align-items:center; gap:.5rem; margin-top:1rem; font-weight:750; }

.site-footer__bottom { position:relative; border-top:1px solid rgba(255,255,255,.09); background:rgba(0,0,0,.18); }
.site-footer__bottom-inner { display:flex; align-items:center; gap:1.5rem; min-height:82px; }
.site-footer__copyright { margin:0; font-size:.82rem; }
.site-footer__legal-menu { display:flex; flex-wrap:wrap; gap:1.25rem; margin-left:auto; font-size:.82rem; }
.site-footer__back-to-top {
	position:fixed;
	right:clamp(16px,2vw,28px);
	bottom:clamp(16px,2vw,28px);
	z-index:999;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:50px;
	height:50px;
	padding:0;
	border:1px solid rgba(255,255,255,.22);
	border-radius:15px;
	background:rgba(7,20,43,.94);
	box-shadow:0 16px 38px rgba(2,12,27,.28);
	color:#fff;
	cursor:pointer;
	opacity:0;
	pointer-events:none;
	transform:translateY(14px) scale(.94);
	visibility:hidden;
	-webkit-backdrop-filter:blur(12px);
	backdrop-filter:blur(12px);
	transition:opacity var(--techworld-transition),transform var(--techworld-transition),visibility var(--techworld-transition),background-color var(--techworld-transition),border-color var(--techworld-transition),box-shadow var(--techworld-transition);
}
.site-footer__back-to-top.is-visible { opacity:1; pointer-events:auto; transform:translateY(0) scale(1); visibility:visible; }
.site-footer__back-to-top:hover,
.site-footer__back-to-top:focus-visible { border-color:var(--techworld-color-accent-400); background:var(--techworld-color-primary-700); box-shadow:0 18px 42px rgba(2,12,27,.34),0 0 0 4px rgba(245,158,11,.14); transform:translateY(-3px) scale(1.02); }

@media (max-width:1100px) {
	.site-footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:767px) {
	.footer-cta__inner { align-items:flex-start; flex-direction:column; }
	.footer-cta__actions,
	.footer-cta__actions .techworld-button { width:100%; }
	.site-footer__grid { grid-template-columns:minmax(0,1fr); gap:2.5rem; }
	.site-footer__brand { padding-right:0; }
	.site-footer__bottom-inner { align-items:flex-start; flex-direction:column; padding-block:1.5rem; }
	.site-footer__legal-menu { margin-left:0; }
	.site-footer__back-to-top { right:14px; bottom:14px; width:46px; height:46px; border-radius:14px; }
	body.has-mobile-actions .site-footer__bottom { padding-bottom:76px; }
}

@media (max-width:767px) {
	body.has-mobile-actions .site-footer__back-to-top { bottom:88px; }
}

@media (prefers-reduced-motion:reduce) {
	.site-footer__back-to-top { transition:none; }
	.site-footer__back-to-top:hover,
	.site-footer__back-to-top:focus-visible { transform:none; }
}

/* Footer management and visual refinement — v2.14.0. */
.site-footer__identity {
	min-height: 72px;
	display: flex;
	align-items: center;
}
.site-footer__identity .custom-logo-link,
.site-footer__logo-link { display: inline-flex; max-width: 100%; }
.site-footer__identity .custom-logo,
.site-footer__logo {
	display: block;
	width: min(var(--footer-logo-width, 250px), 100%);
	max-width: 100%;
	height: auto;
	max-height: 82px;
	object-fit: contain;
	object-position: left center;
	filter: none;
	background: transparent;
}
.site-footer__menu a { position: relative; display: inline-flex; align-items: center; gap: .55rem; }
.site-footer__menu a::before {
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: var(--techworld-color-accent-400);
	content: "";
	box-shadow: 0 0 0 4px rgba(245, 171, 0, .08);
	transition: transform var(--techworld-transition), box-shadow var(--techworld-transition);
}
.site-footer__menu a:hover::before,
.site-footer__menu a:focus-visible::before { transform: scale(1.25); box-shadow: 0 0 0 5px rgba(245, 171, 0, .14); }
.site-footer__address { display: grid; gap: .72rem; margin: 0; font-style: normal; }
.site-footer__contact-card {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	align-items: center;
	gap: .85rem;
	min-height: 66px;
	padding: .75rem .9rem;
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 14px;
	background: rgba(255,255,255,.035);
	color: rgba(255,255,255,.74);
	line-height: 1.45;
	text-decoration: none;
	transition: border-color var(--techworld-transition), background-color var(--techworld-transition), color var(--techworld-transition), transform var(--techworld-transition);
}
a.site-footer__contact-card:hover,
a.site-footer__contact-card:focus-visible {
	border-color: rgba(245,171,0,.42);
	background: rgba(255,255,255,.065);
	color: #fff;
	transform: translateY(-2px);
}
.site-footer__contact-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 11px;
	background: rgba(245,171,0,.11);
	color: var(--techworld-color-accent-400);
}
.site-footer__socials i { font-size: 1rem; }
.site-footer__bottom-inner { min-height: 82px; }
.site-footer__legal-menu { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem 1.25rem; }
.site-footer__legal-menu a { color: rgba(255,255,255,.62); text-decoration: none; }
.site-footer__legal-menu a:hover,
.site-footer__legal-menu a:focus-visible { color: #fff; }
@media (max-width: 1080px) {
	.site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.site-footer__main { padding-block: 3.5rem; }
	.site-footer__grid { grid-template-columns: 1fr; gap: 2.4rem; }
	.site-footer__brand { padding-right: 0; }
	.site-footer__identity { justify-content: center; }
	.site-footer__identity .custom-logo,
	.site-footer__logo { object-position: center; }
	.site-footer__description { margin-inline: auto; text-align: center; }
	.site-footer__socials { justify-content: center; }
	.site-footer__bottom-inner { flex-direction: column; justify-content: center; gap: .8rem; padding-block: 1.25rem; text-align: center; }
	.site-footer__legal-menu { justify-content: center; }
}


/* Footer logo alignment and floating actions — v2.16.3. */
.site-footer__identity {
	justify-content: center;
	text-align: center;
}
.site-footer__identity .custom-logo,
.site-footer__logo {
	object-position: center;
}

.site-footer__whatsapp {
	position: fixed;
	right: clamp(16px, 1.6vw, 24px);
	bottom: clamp(16px, 1.6vw, 24px);
	z-index: 1001;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .42);
	border-radius: 50%;
	background: #25d366;
	box-shadow: 0 14px 32px rgba(2, 12, 27, .26), 0 8px 22px rgba(37, 211, 102, .28);
	color: #fff;
	line-height: 1;
	text-decoration: none;
	transition: transform var(--techworld-transition), box-shadow var(--techworld-transition), background-color var(--techworld-transition);
}
.site-footer__whatsapp i {
	display: block;
	font-size: 1.72rem;
	line-height: 1;
}
.site-footer__whatsapp:hover,
.site-footer__whatsapp:focus-visible {
	background: #1fbd5a;
	box-shadow: 0 18px 38px rgba(2, 12, 27, .3), 0 10px 26px rgba(37, 211, 102, .34);
	color: #fff;
	transform: translateY(-3px) scale(1.03);
}

/* Keep the two fixed controls on one clean vertical rail with a safe gap. */
.site-footer__back-to-top.has-whatsapp {
	right: clamp(16px, 1.6vw, 24px);
	bottom: clamp(88px, calc(1.6vw + 72px), 96px);
	z-index: 1000;
}

@media (max-width: 767px) {
	.site-footer__whatsapp {
		right: 14px;
		bottom: 14px;
		width: 52px;
		height: 52px;
	}
	.site-footer__whatsapp i {
		font-size: 1.5rem;
	}
	.site-footer__back-to-top.has-whatsapp {
		right: 14px;
		bottom: 78px;
	}
	body.has-mobile-actions .site-footer__whatsapp {
		bottom: 88px;
	}
	body.has-mobile-actions .site-footer__back-to-top.has-whatsapp {
		bottom: 152px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-footer__whatsapp {
		transition: none;
	}
	.site-footer__whatsapp:hover,
	.site-footer__whatsapp:focus-visible {
		transform: none;
	}
}
