/* Footer widget – base styles (all values are overridable from Elementor) */
.fsj-footer,
.fsj-footer *,
.fsj-footer *::before,
.fsj-footer *::after { box-sizing: border-box; }

.fsj-footer {
	width: 100%;
	background: #111111;
	color: #d6d6d6;
	line-height: 1.7;
}
.fsj-footer--bleed {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.fsj-footer__inner { width: 100%; margin: 0 auto; }
.fsj-footer--boxed .fsj-footer__inner { max-width: 1140px; }

.fsj-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr;
	gap: 30px 40px;
	align-items: start;
}
.fsj-col { min-width: 0; }

/* Logo */
.fsj-logo { display: block; margin-bottom: 14px; line-height: 0; }
.fsj-logo img { display: block; width: 70px; height: auto; max-width: 100%; }
.fsj-logo a { display: inline-block; }

/* Text */
.fsj-desc { margin: 0; font-size: 15px; }

/* Headings */
.fsj-heading { margin: 0 0 14px; color: #ffffff; font-size: 15px; font-weight: 700; line-height: 1.4; }

/* Links */
.fsj-links { list-style: none; margin: 0; padding: 0; }
.fsj-links li { margin: 0 0 8px; padding: 0; }
.fsj-links a { color: #d6d6d6; text-decoration: none; font-size: 15px; transition: color .2s ease; }
.fsj-links a:hover { color: #ffc107; }

/* Contact */
.fsj-contact { list-style: none; margin: 0; padding: 0; }
.fsj-contact__item { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 10px; padding: 0; font-size: 15px; }
.fsj-contact__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; font-size: 14px; line-height: 1.7; }
.fsj-contact__icon svg { width: 1em; height: 1em; fill: currentColor; }
.fsj-contact__text, .fsj-contact__text a { color: #d6d6d6; text-decoration: none; word-break: break-word; }
.fsj-contact__text a:hover { color: #ffc107; }

/* Bottom bar */
.fsj-bottom { margin-top: 30px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); text-align: center; }
.fsj-bottom--no-divider { border-top: 0; }
.fsj-copy { margin: 0; font-size: 14px; }

/* Hamburger (hidden on desktop, shown by JS below the chosen breakpoint) */
.fsj-links-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fsj-links-head .fsj-heading { margin-bottom: 14px; }
.fsj-hb {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 42px;
	height: 38px;
	padding: 0;
	margin: 0 0 10px;
	background: transparent;
	border: 1px solid rgba(255,255,255,.35);
	border-radius: 6px;
	cursor: pointer;
	color: #ffffff;
	transition: background-color .2s ease, border-color .2s ease;
}
.fsj-hb span {
	display: block;
	width: 20px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform .25s ease, opacity .2s ease;
}
.fsj-hb:focus-visible { outline: 2px solid #ffc107; outline-offset: 2px; }
.fsj-hb.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.fsj-hb.is-open span:nth-child(2) { opacity: 0; }
.fsj-hb.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.fsj-footer.is-hb .fsj-hb { display: inline-flex; }
.fsj-footer.is-hb .fsj-links-head .fsj-heading { margin-bottom: 10px; }
.fsj-footer.is-hb .fsj-links-wrap {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition: grid-template-rows .3s ease, visibility 0s linear .3s;
}
.fsj-footer.is-hb .fsj-links-wrap > .fsj-links { overflow: hidden; min-height: 0; }
.fsj-footer.is-hb .fsj-links-wrap.is-open {
	grid-template-rows: 1fr;
	visibility: visible;
	transition: grid-template-rows .3s ease, visibility 0s;
}

/* Fallback sizing before Elementor responsive controls kick in */
@media (max-width: 1024px) { .fsj-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px)  { .fsj-footer__grid { grid-template-columns: 1fr; } }
