/* Containers, header, navigation drawer, footer, sections, grids. Mobile first. */

.container {
	width: 100%;
	max-width: calc(var(--container) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.container--narrow { max-width: calc(var(--container-narrow) + 2 * var(--gutter)); }

.section { padding-block: var(--section); }
.section--compact { padding-block: var(--s-6) var(--section); }
.section--tint { background: var(--c-tint); }
.section--brand { background: var(--c-blue-700); color: var(--c-on-dark); }

.grid { display: grid; gap: var(--s-5); grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) {
	.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Header ---------- */
.site-header { position: relative; z-index: 50; }

.topbar { background: var(--c-navy-900); color: var(--c-on-dark); font-size: var(--fs-small); }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); min-height: 44px; flex-wrap: wrap; }
.topbar__contact { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-5); margin: 0; padding: 0; list-style: none; }
.topbar__contact a { display: inline-flex; align-items: center; gap: var(--s-2); color: var(--c-on-dark); text-decoration: none; min-height: 44px; }
.topbar__contact a:hover { color: #fff; text-decoration: underline; }
@media (max-width: 599px) {
	.topbar__contact span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

.masthead { background: var(--c-surface); border-bottom: 1px solid var(--c-border); }
.masthead__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); min-height: 72px; }

.brand { display: inline-flex; align-items: center; gap: var(--s-3); text-decoration: none; color: var(--c-text); min-width: 0; }
.brand__mark {
	flex: 0 0 auto;
	display: grid; place-items: center;
	width: 52px; height: 52px;
	border-radius: 50%;
	background: var(--c-blue-700);
	box-shadow: inset 0 0 0 3px var(--c-gold-500);
	color: #fff;
	font-family: var(--font-display-en);
	font-weight: 700;
	font-size: 0.9rem;
	letter-spacing: 0.04em;
}
.brand__text { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.brand__title { font-family: var(--font-display-en); font-weight: 700; font-size: 1.25rem; color: var(--c-blue-700); letter-spacing: 0.05em; }
.brand__name { font-size: var(--fs-xs); color: var(--c-text-2); }
.custom-logo-link img { max-height: 56px; width: auto; }

.masthead__actions { display: none; gap: var(--s-2); }

.nav-toggle {
	display: inline-grid; place-items: center;
	width: 48px; height: 48px;
	border: 0; border-radius: var(--r-btn);
	background: var(--c-blue-700); color: #fff;
	cursor: pointer;
}
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }

/* Mobile drawer */
.primary-nav {
	position: absolute;
	left: 0; right: 0; top: 100%;
	background: var(--c-surface);
	border-bottom: 1px solid var(--c-border);
	box-shadow: var(--shadow-2);
	padding: var(--s-3) var(--gutter) var(--s-5);
	display: none;
}
.primary-nav.is-open { display: block; }
.primary-nav__list { margin: 0; padding: 0; list-style: none; }
.primary-nav__list a {
	display: flex; align-items: center;
	min-height: 48px;
	padding: 0 var(--s-3);
	border-radius: var(--r-btn);
	color: var(--c-text);
	font-weight: 600;
	text-decoration: none;
}
.primary-nav__list a:hover { background: var(--c-tint); color: var(--c-blue-700); }
.primary-nav__list .current-menu-item > a,
.primary-nav__list a[aria-current="page"] { color: var(--c-blue-700); background: var(--c-tint); box-shadow: inset 4px 0 0 var(--c-gold-500); }
.primary-nav__list .sub-menu { list-style: none; padding-left: var(--s-4); margin: 0; }
.primary-nav__mobile-extra { padding: var(--s-4) var(--s-3) 0; border-top: 1px solid var(--c-border); margin-top: var(--s-3); }

/* Desktop: logo + actions on the first row, the menu on its own row so Marathi and English labels both fit. */
@media (min-width: 1024px) {
	.nav-toggle { display: none; }
	.masthead__inner { flex-wrap: wrap; row-gap: 0; padding-top: var(--s-3); }
	.masthead__actions { display: flex; order: 2; }
	.primary-nav {
		order: 3;
		flex-basis: 100%;
		position: static;
		display: block;
		margin-top: var(--s-3);
		padding: 0;
		background: none;
		border: 0;
		border-top: 1px solid var(--c-border);
		box-shadow: none;
	}
	.primary-nav__list { display: flex; flex-wrap: wrap; gap: 0 var(--s-2); margin-left: calc(-1 * var(--s-3)); }
	.primary-nav__list a { min-height: 52px; padding: 0 var(--s-3); font-size: 0.9375rem; border-radius: 0; }
	.primary-nav__list a:hover { background: none; text-decoration: underline; }
	.primary-nav__list .current-menu-item > a,
	.primary-nav__list a[aria-current="page"] { background: none; box-shadow: inset 0 -3px 0 var(--c-gold-500); }
	.primary-nav__mobile-extra { display: none; }
	.primary-nav__list .sub-menu { display: none; }
}


/* ---------- Page header ---------- */
.page-header { background: var(--c-surface); border-bottom: 1px solid var(--c-border); padding-block: var(--s-6) var(--s-6); }
.page-title { margin: 0; font-size: var(--fs-h1); }

/* ---------- Footer ---------- */
.site-footer { background: var(--c-navy-950); color: var(--c-on-dark); font-size: 0.9375rem; }
.site-footer a { color: var(--c-on-dark); }
.site-footer a:hover { color: #fff; }
.site-footer__grid { display: grid; gap: var(--s-6); padding-block: var(--s-8) var(--s-6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: 1.3fr 1fr 1fr 1fr; } }
.site-footer__title { font-family: var(--font-display-en); font-weight: 700; font-size: 1.375rem; color: #fff; letter-spacing: 0.05em; margin-bottom: var(--s-2); }
.site-footer__tagline { color: var(--c-gold-500); }
.site-footer__heading { font-family: inherit !important; font-size: 1rem; color: #fff; margin-bottom: var(--s-3); }
.site-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-2); }
.site-footer__list li { display: flex; gap: var(--s-2); align-items: flex-start; }
.site-footer__list .icon { flex: 0 0 auto; margin-top: 4px; color: var(--c-on-dark-2); }
.site-footer__list a { display: inline-block; padding-block: 4px; }
.site-footer__bottom {
	display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); justify-content: space-between;
	padding-block: var(--s-4) var(--s-6);
	border-top: 1px solid #23406a;
	font-size: var(--fs-xs);
	color: var(--c-on-dark-2);
}
.site-footer__bottom p { margin: 0; }
.site-footer .placeholder { color: var(--c-on-dark-2); border-color: #3b5a80; background: transparent; }
