/* ==========================================================================
   John Mini — Site footer
   Figma node 591:3966 (1440 x 524). Loaded on every page.
   Left panel 577px: brand + copyright, 1px white/10% divider on the right.
   Right panel 863px: What We Do / Explore / Get in Touch + legal links.
   Secondary text is white at 62% (Figma uses 50%, which falls just short of
   WCAG AA 4.5:1 on #203864 at 18px).
   ========================================================================== */

.jm-footer{
	--jm-footer-bg:#203864;
	--jm-footer-muted:rgba(255,255,255,.62);
	--jm-footer-pad:100px;

	display:grid;
	grid-template-columns:minmax(0, 577fr) minmax(0, 863fr);
	background:var(--jm-footer-bg);
	color:#fff;
	font-family:var(--jm-font-body);
}

.jm-footer a{
	color:inherit;
	text-decoration:none;
	transition:color .25s ease;
}
.jm-footer a:hover{color:var(--jm-green);}
.jm-footer a:focus-visible{
	outline:2px solid var(--jm-green);
	outline-offset:3px;
}

.jm-footer .widget{margin:0;}
.jm-footer ul{list-style:none;margin:0;padding:0;}
.jm-footer p{margin:0;}

/* ---------- Panels ---------- */
.jm-footer__panel{
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	gap:64px;
	padding:var(--jm-footer-pad);
	min-width:0;
}
.jm-footer__panel--brand{border-right:1px solid rgba(255,255,255,.1);}

/* ---------- Brand ---------- */
.jm-footer__brand{
	display:flex;
	flex-direction:column;
	gap:24px;
	max-width:377px;
}
.jm-footer__brand .widget_media_image a{display:inline-block;}
.jm-footer__brand img{
	display:block;
	width:209px;                    /* Figma logo group 209 x 56 */
	height:auto;
	max-width:100%;
}
.jm-footer__brand .textwidget,
.jm-footer__copyright .textwidget{
	font-size:18px;
	line-height:1.4;
	color:var(--jm-footer-muted);
}
.jm-footer__copyright .textwidget{line-height:1.5;}

/* ---------- Link columns ---------- */
.jm-footer__columns{
	display:flex;
	justify-content:space-between;
	gap:24px;
}
.jm-footer__column{min-width:0;}

.jm-footer .widget-title{
	margin:0 0 8px;
	font-family:var(--jm-font-head);
	font-weight:700;
	font-size:24px;
	line-height:1.5;
	color:#fff;
}

.jm-footer__column .menu li,
.jm-footer__list li{
	font-size:18px;
	line-height:1.5;
	color:var(--jm-footer-muted);
}
.jm-footer__contact{font-style:normal;}

/* ---------- Follow ---------- */
.jm-footer__follow{margin-top:24px;}
.jm-footer__social{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}
.jm-footer__social a{
	display:inline-flex;
	color:var(--jm-green);
	transition:color .25s ease, transform .25s var(--jm-ease);
}
.jm-footer__social a:hover{
	color:#fff;
	transform:translateY(-2px);
}
.jm-footer__social-icon{width:24px;height:24px;display:block;}

/* ---------- Legal links ---------- */
.jm-footer__legal .menu{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	row-gap:8px;
}
.jm-footer__legal .menu li{
	display:flex;
	align-items:center;
	font-size:18px;
	line-height:1.5;
	color:var(--jm-footer-muted);
}
/* Figma: 27px gap with a 27px tall white/20% divider in the middle */
.jm-footer__legal .menu li + li::before{
	content:"";
	width:1px;
	height:27px;
	margin:0 13px;
	background:rgba(255,255,255,.2);
}
.jm-footer__legal a{
	text-decoration:underline;
	text-underline-offset:4px;
}

/* ---------- Responsive ---------- */
@media (max-width:1200px){
	.jm-footer{--jm-footer-pad:60px;}
}

@media (max-width:991px){
	.jm-footer{grid-template-columns:1fr;}
	.jm-footer__panel{gap:48px;}
	.jm-footer__panel--brand{
		border-right:0;
		border-bottom:1px solid rgba(255,255,255,.1);
	}
}

@media (max-width:767px){
	.jm-footer{--jm-footer-pad:48px 24px;}
	.jm-footer__columns{
		display:grid;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		gap:40px 24px;
	}
	.jm-footer__column--contact{grid-column:1 / -1;}
	.jm-footer .widget-title{font-size:22px;}
	.jm-footer__column .menu li,
	.jm-footer__list li,
	.jm-footer__legal .menu li,
	.jm-footer__brand .textwidget,
	.jm-footer__copyright .textwidget{font-size:16px;}
	.jm-footer__legal .menu li + li::before{height:20px;margin:0 10px;}
}

@media (max-width:420px){
	.jm-footer__columns{grid-template-columns:1fr;}
}
