/*
Theme Name: CGS
Theme URI: https://cgs-bd.com/
Template: hello-elementor
Author: Centre for Governance Studies
Description: Child theme of Hello Elementor for the Centre for Governance Studies: research, analysis, events and projects. Works with the Classic Editor and Elementor Pro. Requires the CGS Core plugin.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Version: 0.2.0
License: GPL-2.0-or-later
Text Domain: cgs
*/

/* ---------- Base ---------- */
:root {
	--cgs-max: 1240px;
	--cgs-narrow: 760px;
	--cgs-gutter: clamp(1rem, 4vw, 2rem);
	--cgs-green: var(--wp--preset--color--primary, #006238);
	--cgs-green-dark: var(--wp--preset--color--primary-dark, #00472a);
	--cgs-ink: var(--wp--preset--color--ink, #1f2328);
	--cgs-muted: var(--wp--preset--color--muted, #565a5e);
	--cgs-border: var(--wp--preset--color--border, #d9dcd8);
	--cgs-surface: var(--wp--preset--color--surface, #f4f6f3);
	/* Exact logo colours */
	--cgs-logo-green: #006238;
	--cgs-logo-red: #df0024;
	--cgs-logo-grey: #636363;
}
body {
	margin: 0;
	background: #fff;
	color: var(--cgs-ink);
	font-family: var(--wp--preset--font-family--body, "Noto Sans", "Noto Sans Bengali", system-ui, sans-serif);
	font-size: 1.0625rem;
	line-height: 1.65;
}
h1, h2, h3, h4 { font-family: var(--wp--preset--font-family--heading, "Noto Serif", "Noto Serif Bengali", Georgia, serif); line-height: 1.25; color: var(--cgs-ink); margin: 0 0 .6em; }
h1 { font-size: clamp(2rem, 4vw, 2.875rem); }
h2 { font-size: clamp(1.5rem, 2.6vw, 2.125rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
a { color: var(--cgs-green-dark); }
a:hover { color: var(--cgs-green); }
img { max-width: 100%; height: auto; }
[lang="bn"] { line-height: 1.8; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid #005a9c; outline-offset: 2px; border-radius: 2px; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; left: 1rem; top: 1rem; z-index: 1000; background: #fff; padding: .75rem 1rem; color: var(--cgs-green-dark); }

.cgs-container { max-width: var(--cgs-max); margin-inline: auto; padding-inline: var(--cgs-gutter); box-sizing: border-box; }
.cgs-narrow { max-width: calc(var(--cgs-narrow) + 2 * var(--cgs-gutter)); margin-inline: auto; padding-inline: var(--cgs-gutter); box-sizing: border-box; }
.cgs-page { padding-block: clamp(1.5rem, 4vw, 2.5rem); }
.cgs-page__header { margin-bottom: 2rem; }
.cgs-main { min-height: 50vh; }

/* ---------- Header ---------- */
.cgs-topbar { background: var(--cgs-logo-green); color: #fff; font-size: .85rem; }
.cgs-topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 2.2rem; flex-wrap: wrap; }
.cgs-topbar p { margin: 0; }
.cgs-topbar a { color: #fff; text-decoration: none; }
.cgs-topbar a:hover, .cgs-topbar a:focus { text-decoration: underline; }
.cgs-menu { list-style: none; margin: 0; padding: 0; }
.cgs-menu--inline { display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
.cgs-header { border-bottom: 3px solid var(--cgs-logo-green); background: #fff; }
.cgs-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1rem; flex-wrap: wrap; }
.cgs-brand img { max-height: 52px; width: auto; display: block; }
.cgs-brand__name { font-family: var(--wp--preset--font-family--heading, Georgia, serif); font-weight: 700; font-size: 1.35rem; text-decoration: none; color: var(--cgs-ink); }
.cgs-header__nav { display: flex; align-items: center; gap: 1.25rem; }
.cgs-menu--primary { display: flex; gap: .25rem 1.4rem; flex-wrap: wrap; }
.cgs-menu--primary a { font-weight: 600; color: var(--cgs-ink); text-decoration: none; padding-block: .3rem; display: inline-block; }
.cgs-menu--primary a:hover, .cgs-menu--primary a:focus, .cgs-menu--primary .current-menu-item > a, .cgs-menu--primary .current-menu-ancestor > a { color: var(--cgs-green); text-decoration: underline; text-underline-offset: .35em; }
.cgs-menu--primary .sub-menu { list-style: none; padding: .5rem 0 0 1rem; margin: 0; }
.cgs-search { display: flex; gap: .4rem; }
.cgs-search input[type="search"] { min-height: 2.5rem; padding: .35rem .6rem; border: 1px solid #8a8f94; border-radius: 3px; font: inherit; min-width: 10rem; }
.cgs-nav-toggle { display: none; }
@media (max-width: 960px) {
	.cgs-header__inner { flex-wrap: wrap; gap: .75rem; }
	.cgs-brand { flex: 1 1 0; min-width: 0; }
	.cgs-brand img { max-width: 100%; max-height: 44px; }
	.cgs-js .cgs-nav-toggle { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: 1px solid var(--cgs-border); border-radius: 4px; background: #fff; cursor: pointer; }
	.cgs-nav-toggle__bar, .cgs-nav-toggle__bar::before, .cgs-nav-toggle__bar::after { display: block; width: 1.3rem; height: 2px; background: var(--cgs-ink); position: relative; content: ""; }
	.cgs-nav-toggle__bar::before { position: absolute; top: -6px; } .cgs-nav-toggle__bar::after { position: absolute; top: 6px; }
	.cgs-js .cgs-header__nav { display: none; width: 100%; flex-direction: column; align-items: stretch; padding-bottom: 1rem; }
	.cgs-js .cgs-header__nav.is-open { display: flex; }
	.cgs-menu--primary { flex-direction: column; gap: 0; }
	.cgs-menu--primary a { padding-block: .6rem; border-bottom: 1px solid var(--cgs-border); display: block; }
	.cgs-search input[type="search"] { flex: 1; }
	.cgs-topbar__links { display: none; }
}

/* ---------- Content ---------- */
.cgs-kicker { font-size: .8rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin: 0 0 .5rem; }
.cgs-kicker a { color: var(--cgs-green); text-decoration: none; }
.cgs-subtitle { font-size: 1.2rem; color: var(--wp--preset--color--ink-soft, #3b3f43); margin-top: -.25rem; }
.cgs-content > *:first-child { margin-top: 0; }
.cgs-content table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.cgs-content td, .cgs-content th { border: 1px solid var(--cgs-border); padding: .4rem .6rem; }
.cgs-content iframe { max-width: 100%; }
.cgs-content blockquote { border-left: 4px solid var(--cgs-green); margin-left: 0; padding-left: 1.25rem; }
.cgs-featured-image { margin: 0 0 1.5rem; }
.cgs-featured-image img { width: 100%; border-radius: 4px; }
.cgs-featured-image--wide { margin-block: 1rem 2rem; }
.cgs-terms { font-size: .9rem; color: var(--cgs-muted); }
.cgs-clipping-note { font-size: .85rem; color: var(--cgs-muted); border-left: 3px solid var(--cgs-border); padding-left: .75rem; }
.cgs-org-logo img { max-height: 120px; width: auto; object-fit: contain; }
.cgs-child-pages { padding-left: 1.2rem; }
.cgs-inline-links { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }

.cgs-two-col { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; margin-bottom: 2rem; }
.cgs-two-col--single { grid-template-columns: minmax(0, 1fr); max-width: var(--cgs-narrow); }
.cgs-two-col--person { grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); }
.cgs-person-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 4px; }
@media (max-width: 860px) { .cgs-two-col, .cgs-two-col--person { grid-template-columns: 1fr; gap: 1.5rem; } }

.navigation.pagination { margin-top: 2.5rem; }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; gap: .4rem; }
.navigation.pagination .page-numbers { padding: .3rem .75rem; border: 1px solid var(--cgs-border); border-radius: 3px; text-decoration: none; }
.navigation.pagination .current { background: var(--cgs-green); color: #fff; border-color: transparent; }

/* ---------- Homepage ---------- */
.cgs-home-lead { padding-top: clamp(1.5rem, 4vw, 2.5rem); }
.cgs-home-analysis { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 2.5rem; margin-top: 2.5rem; }
@media (max-width: 860px) { .cgs-home-analysis { grid-template-columns: 1fr; } }
.cgs-main .cgs-collection { margin-top: 2.5rem; }
.cgs-home-mission { background: #eaf3ed; color: var(--cgs-logo-green); border-top: 1px solid #d3e6da; padding-block: clamp(2.5rem, 6vw, 4.5rem); margin-top: clamp(2.5rem, 6vw, 4.5rem); }
.cgs-home-mission__text { font-family: var(--wp--preset--font-family--heading, Georgia, serif); font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.4; max-width: 46rem; margin: 0; color: var(--cgs-logo-green); }
.cgs-home-mission + * { margin-top: 0; }

/* ---------- Footer ---------- */
.cgs-footer { background: #15181a; color: #d7dbd9; border-top: 4px solid var(--cgs-logo-green); margin-top: clamp(2.5rem, 6vw, 4.5rem); padding-block: clamp(2.5rem, 6vw, 4rem) 1.5rem; font-size: .92rem; }
.cgs-home-mission ~ .cgs-footer, .cgs-main:has(> .cgs-home-mission:last-child) + .cgs-footer { margin-top: 0; }
.cgs-footer a { color: #fff; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: .2em; }
.cgs-footer a:hover, .cgs-footer a:focus { color: #8fd1ab; text-decoration-color: currentColor; }
.cgs-footer h2 { font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: #8fd1ab; }
.cgs-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 2rem; }
.cgs-footer .cgs-menu, .cgs-social { list-style: none; margin: 0; padding: 0; line-height: 1.9; }
.cgs-social { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin-top: 1rem; }
.cgs-footer__legal { color: #a9afac; border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 2rem; padding-top: 1rem; font-size: .82rem; }
@media (max-width: 860px) { .cgs-footer__grid { grid-template-columns: 1fr; } }

/* ---------- Top bar search ---------- */
.cgs-topbar__right { display: flex; align-items: center; gap: 1.25rem; }
.cgs-topbar .cgs-search { gap: 0; }
.cgs-topbar .cgs-search input[type="search"] { min-height: 1.85rem; min-width: 0; width: 13rem; padding: .15rem .6rem; border: 0; border-radius: 3px 0 0 3px; font-size: .82rem; background: #fff; color: var(--cgs-ink); }
.cgs-topbar .cgs-search .cgs-button { min-height: 1.85rem; padding: 0 .75rem; border-radius: 0 3px 3px 0; background: var(--cgs-green-dark); color: #fff; font-size: .78rem; border: 1px solid rgba(255, 255, 255, .35); border-left: 0; }
.cgs-topbar .cgs-search .cgs-button:hover, .cgs-topbar .cgs-search .cgs-button:focus-visible { background: #fff; color: var(--cgs-logo-green); }

/* ---------- Primary menu ---------- */
.cgs-menu-heading__label { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cgs-logo-green); padding-bottom: .45rem; margin-bottom: .45rem; border-bottom: 2px solid #e3efe8; }
.cgs-menu--primary .cgs-external > a::after { content: "\2197" / ""; font-size: .8em; margin-left: .3em; opacity: .55; }
.cgs-menu--primary .cgs-flag > a { display: inline-flex; align-items: center; gap: .5rem; }
.cgs-menu--primary .cgs-flag > a::before { content: ""; flex: none; width: 18px; height: 13.5px; border-radius: 2px; background-position: center; background-size: cover; background-repeat: no-repeat; box-shadow: 0 0 0 1px rgba(0, 0, 0, .12); }
.cgs-flag--bd > a::before { background-image: url("assets/flags/bd.svg"); }
.cgs-flag--mm > a::before { background-image: url("assets/flags/mm.svg"); }
.cgs-flag--lk > a::before { background-image: url("assets/flags/lk.svg"); }
.cgs-flag--np > a::before { background-image: url("assets/flags/np.svg"); background-size: contain; box-shadow: none; }
.cgs-flag--us > a::before { background-image: url("assets/flags/us.svg"); }
.cgs-flag--globe > a::before { box-shadow: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 18'%3E%3Cg fill='none' stroke='%23006238' stroke-width='1.5'%3E%3Ccircle cx='12' cy='9' r='7.5'/%3E%3Cpath d='M4.5 9h15M12 1.5c2.5 2.2 3.6 4.8 3.6 7.5S14.5 14.3 12 16.5M12 1.5C9.5 3.7 8.4 6.3 8.4 9s1.1 5.3 3.6 7.5'/%3E%3C/g%3E%3C/svg%3E"); }

@media (min-width: 961px) {
	.cgs-header { position: relative; z-index: 50; }
	.cgs-header__inner { position: relative; }
	.cgs-menu--primary > li { position: relative; }
	.cgs-menu--primary > li.cgs-mega { position: static; }
	.cgs-menu--primary > li.menu-item-has-children > a::after { content: ""; display: inline-block; margin-left: .4em; border: 4px solid transparent; border-top-color: currentColor; transform: translateY(2px); opacity: .7; }
	/* Panels */
	.cgs-menu--primary > li > .sub-menu { position: absolute; top: 100%; z-index: 60; margin: 0; list-style: none; background: #fff; border: 1px solid var(--cgs-border); border-top: 3px solid var(--cgs-logo-green); box-shadow: 0 18px 40px rgba(16, 24, 20, .14); visibility: hidden; opacity: 0; transform: translateY(6px); transition: opacity .15s ease, transform .15s ease, visibility 0s linear .15s; }
	.cgs-menu--primary > li:hover > .sub-menu, .cgs-menu--primary > li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
	/* Simple dropdown */
	.cgs-menu--primary > li:not(.cgs-mega) > .sub-menu { left: -1rem; min-width: 14rem; padding: .75rem 1.1rem; }
	/* Mega panel: full container width, one column per heading, separators */
	.cgs-menu--primary > li.cgs-mega > .sub-menu { left: var(--cgs-gutter); right: var(--cgs-gutter); display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); padding: 1.4rem 0; }
	.cgs-menu--primary > li.cgs-mega > .sub-menu > li { padding: 0 1.6rem; }
	.cgs-menu--primary > li.cgs-mega > .sub-menu > li + li { border-left: 1px solid var(--cgs-border); }
	.cgs-menu--primary .sub-menu .sub-menu { position: static; display: block; list-style: none; padding: 0; margin: 0; }
	.cgs-menu--primary .sub-menu a { font-weight: 500; font-size: .93rem; padding: .28rem 0; display: block; text-decoration: none; color: var(--cgs-ink); }
	.cgs-menu--primary .sub-menu .cgs-flag > a { display: flex; }
	.cgs-menu--primary > li > .sub-menu > li:first-child > .sub-menu > li:first-child > a, .cgs-menu--primary > li:not(.cgs-mega) > .sub-menu > li:first-child > a { font-weight: 700; }
	.cgs-menu--primary .sub-menu a:hover, .cgs-menu--primary .sub-menu a:focus { color: var(--cgs-logo-green); text-decoration: underline; text-underline-offset: .2em; }
}
.cgs-sub-toggle { display: none; }
@media (max-width: 960px) {
	/* Accordion */
	.cgs-js .cgs-menu--primary > li { position: relative; }
	.cgs-js .cgs-menu--primary > li.menu-item-has-children > a { padding-right: 3rem; }
	.cgs-js .cgs-sub-toggle { display: block; position: absolute; top: .1rem; right: 0; width: 2.75rem; height: 2.6rem; border: 0; background: transparent; cursor: pointer; }
	.cgs-js .cgs-sub-toggle::before { content: ""; position: absolute; left: 50%; top: 50%; width: .55rem; height: .55rem; border-right: 2px solid var(--cgs-ink); border-bottom: 2px solid var(--cgs-ink); transform: translate(-50%, -70%) rotate(45deg); transition: transform .15s; }
	.cgs-js .cgs-sub-toggle[aria-expanded="true"]::before { transform: translate(-50%, -30%) rotate(-135deg); }
	.cgs-js .cgs-menu--primary > li > .sub-menu { display: none; }
	.cgs-js .cgs-menu--primary > li.is-open > .sub-menu { display: block; }
	.cgs-topbar__inner { padding-block: .4rem; }
	.cgs-topbar__tagline { display: none; }
	.cgs-topbar__right { width: 100%; }
	.cgs-topbar .cgs-search { width: 100%; }
	.cgs-topbar .cgs-search input[type="search"] { flex: 1; width: auto; }
	.cgs-menu--primary .sub-menu { list-style: none; padding: 0 0 .5rem 1rem; margin: 0; }
	.cgs-menu--primary .sub-menu a { font-weight: 400; border-bottom: 0; padding-block: .35rem; }
	.cgs-menu-heading__label { margin-top: .75rem; }
}
