/* Visual language follows "Saarthi", the Foundation's magazine (Jan 2026):
   Playfair Display headlines, Lora body and italic quotes, Open Sans labels,
   forest green and saffron on cream paper, watercolour verse bands. */
:root {
	--forest: #205530;
	--forest-2: #2b6a3c;
	--forest-dark: #12321c;
	--saffron: #f38b2e;      /* decorative only: rules, bars, quote marks (fails text contrast) */
	--saffron-deep: #b9501a; /* text and buttons: 4.97:1 on white */
	--saffron-dark: #9c4314;
	--leaf: #a0c020;
	--cream: #f8f0e8;
	--parchment: #efe4d2;
	--paper: #fbfaf7;
	--ink: #23282a;
	--muted: #5b625f;
	--plum: #5c2d82;
	--line: #e3d8c6;
	--shadow: 0 10px 30px rgba(35, 40, 42, 0.08);
	--wrap: 1180px;
	--serif: "Playfair Display", Georgia, serif;
	--text: "Lora", Georgia, serif;
	--sans: "Open Sans", system-ui, sans-serif;
	--deva: "Noto Sans Devanagari", "Mukta", sans-serif;
	/* old names, kept so nothing else breaks */
	--red: var(--saffron-deep);
	--red-dark: var(--saffron-dark);
	--gold: var(--saffron-deep);
}

/* Blocksy reads these for body text, links and buttons, so Customizer and editor stay on brand. */
:root, .editor-styles-wrapper {
	--theme-font-family: var(--text);
	--theme-font-size: 18px;
	--theme-line-height: 1.7;
	--theme-button-border-radius: 3px;
	--theme-button-font-weight: 600;
}
body, .editor-styles-wrapper { font-family: var(--text); color: var(--ink); background: var(--paper); }
.site-main { overflow: clip; }
.entry-content > .wp-block-cover.alignfull:first-child { margin-top: 0; }
.entry-content > .alignfull + .alignfull { margin-top: 0; }
/* Full-width sections sit flush; Blocksy otherwise adds its content spacing below each block. */
.entry-content > .alignfull { margin-bottom: 0; }

/* Blocksy header */
.ct-header [data-row="top"] {
	font-family: var(--sans); font-size: 13px; letter-spacing: .02em;
	--theme-text-color: #f3efe4;
	--theme-link-initial-color: #f3efe4;
	--theme-link-hover-color: #ffc98f;
	--theme-icon-color: #f3efe4;
}
.ct-header [data-row="top"] a { text-decoration: none; }
.ns-badge { color: #ffc98f; border: 1px solid rgba(255,201,143,.5); border-radius: 3px; padding: 2px 10px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.ct-header [data-row="middle"] { background: rgba(251,250,247,.97); border-bottom: 3px solid var(--saffron); }
.ct-header .site-title { font-family: var(--serif); font-weight: 700; letter-spacing: -.01em; font-size: 23px; }
.ct-header .site-title a { color: var(--forest); }
.ct-header .site-description { font-family: var(--text); font-style: italic; font-size: 13px; color: var(--saffron-deep); }
.ct-header .ct-menu-link { font-family: var(--sans); font-size: 14.5px; font-weight: 600; }
.ct-header .ct-button { border-radius: 3px; font-family: var(--sans); font-weight: 700; letter-spacing: .04em; }

/* Blocksy footer */
.ct-footer { background: var(--forest-dark); color: #efe8da; border-top: 4px solid var(--saffron); }
.ct-footer [data-row="middle"] { padding-top: 24px; }
.ct-footer h3, .ct-footer h4 { color: #ffc98f; }
.ct-footer h4 { font-family: var(--sans); font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; }
.ct-footer .ns-footer-brand { color: #fff; font-family: var(--serif); font-size: 28px; }
.ct-footer p, .ct-footer li { color: rgba(239,232,218,.85); font-size: 15px; }
.ct-footer a { color: #efe8da; text-decoration: none; }
.ct-footer a:hover { color: #ffc98f; }
.ct-footer .wp-block-list { list-style: none; padding: 0; }
.ct-footer .wp-block-list li { margin: 6px 0; }
.ct-footer [data-row="bottom"] { border-top: 1px solid rgba(255,255,255,.1); }
.ct-footer [data-row="bottom"], .ct-footer [data-row="bottom"] a { color: rgba(255,255,255,.68); font-size: 14px; }
.ct-footer .ct-footer-copyright { color: rgba(239,232,218,.72); }

/* Headings: Playfair, like the magazine. Section labels (ns-eyebrow) are its spaced capitals: FOREWORD, TESTIMONIALS. */
.wp-block-heading, h1, h2, h3 { font-family: var(--serif); font-weight: 700; letter-spacing: -0.01em; line-height: 1.15; color: var(--forest); }
h2.wp-block-heading { font-size: clamp(30px, 3.4vw, 46px); }
.ns-eyebrow, p.ns-eyebrow {
	font-family: var(--serif); font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	font-size: 15px; color: var(--ink); margin-bottom: 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px;
}
.ns-eyebrow::after { content: ""; width: 56px; height: 2px; background: var(--saffron); }
.ns-eyebrow.light, .is-style-ns-hero .ns-eyebrow, .is-style-ns-banner .ns-eyebrow, .is-style-ns-forest .ns-eyebrow { color: #ffd9ae; }
/* The magazine's italic subtitle under a section title. */
.ns-sub, p.ns-sub { font-family: var(--text); font-style: italic; color: var(--saffron-deep); font-size: 1.15rem; margin-top: -4px; }

/* Hero: the magazine cover. Banners: its full-bleed section openers, title bottom-left. */
.is-style-ns-hero { min-height: 88vh; }
.is-style-ns-hero .wp-block-cover__background,
.is-style-ns-banner .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(18,30,20,.10) 0%, rgba(18,30,20,.25) 45%, rgba(18,30,20,.78) 100%) !important;
	opacity: 1 !important;
}
.is-style-ns-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(18,30,20,.78) 0%, rgba(18,30,20,.40) 55%, rgba(18,30,20,.15) 100%) !important; }
.is-style-ns-banner { min-height: 460px; align-items: flex-end !important; padding-bottom: 56px !important; }
.is-style-ns-hero .wp-block-cover__inner-container,
.is-style-ns-banner .wp-block-cover__inner-container { max-width: 1180px; }
/* Title, eyebrow and subtitle share one left edge, like the magazine's openers. */
.is-style-ns-hero .wp-block-cover__inner-container > *,
.is-style-ns-banner .wp-block-cover__inner-container > * { margin-left: 0 !important; margin-right: auto !important; }
.is-style-ns-hero h1, .is-style-ns-hero h2, .story-hero h1 { color: #fff; font-size: clamp(44px, 5.8vw, 82px); max-width: 860px; }
.is-style-ns-banner h1, .is-style-ns-banner h2 {
	color: #fff; font-family: var(--sans); font-weight: 800; text-transform: uppercase; letter-spacing: .01em;
	font-size: clamp(32px, 4.2vw, 58px); line-height: 1.05; max-width: 900px;
}
.is-style-ns-hero p, .is-style-ns-banner p, .story-hero p { color: rgba(255,255,255,.92); font-size: 1.12rem; max-width: 720px; }
.is-style-ns-banner p:not(.ns-eyebrow) { font-family: var(--text); font-style: italic; font-size: 1.2rem; }

/* Section styles are scoped to groups so they never collide with the button style of the same name. */
.wp-block-group.is-style-ns-cream, .wp-block-group.is-style-ns-forest, .wp-block-group.is-style-ns-paper, .wp-block-group.is-style-ns-verse { padding: 84px 24px; }
.wp-block-group.is-style-ns-cream { background: var(--cream); }
.wp-block-group.is-style-ns-paper { background: var(--paper); }
.wp-block-group.is-style-ns-forest { background: var(--forest); color: #f6f1e7; }
.wp-block-group.is-style-ns-forest .wp-block-heading, .wp-block-group.is-style-ns-forest p, .wp-block-group.is-style-ns-forest li { color: #f6f1e7; }

/* Verse band: the magazine's watercolour pages, saffron fading into green across warm paper. */
.wp-block-group.is-style-ns-verse {
	text-align: center; padding-top: 110px !important; padding-bottom: 110px !important;
	background:
		radial-gradient(ellipse 45% 95% at 4% 0%, rgba(243,139,46,.85), rgba(243,160,60,.35) 45%, rgba(243,139,46,0) 75%),
		radial-gradient(ellipse 45% 95% at 96% 100%, rgba(110,165,50,.80), rgba(150,190,70,.30) 45%, rgba(120,170,60,0) 75%),
		radial-gradient(ellipse 30% 60% at 70% 10%, rgba(243,170,80,.25), rgba(243,170,80,0) 70%),
		var(--parchment);
}
.ns-verse-sa, p.ns-verse-sa { font-family: var(--deva); color: var(--plum); font-size: clamp(20px, 2.2vw, 28px); line-height: 1.7; max-width: 760px; margin: 0 auto 18px; }
.ns-verse-en, p.ns-verse-en { font-family: var(--text); font-style: italic; color: var(--ink); font-size: 1.2rem; max-width: 620px; margin: 0 auto; }

.wp-block-group.is-layout-constrained > :where(:not(.alignfull)) { max-width: var(--wrap); margin-left: auto; margin-right: auto; }
.wp-block-columns { gap: 24px; }

/* Cards: flat, paper-like, with a saffron rule, like the magazine's photo panels. */
.is-style-ns-card {
	background: #fff; border-radius: 4px; overflow: hidden; box-shadow: var(--shadow); padding: 0 0 22px;
	border: 1px solid var(--line); border-top: 4px solid var(--saffron);
}
.is-style-ns-card:has(> .wp-block-image:first-child) { border-top: 1px solid var(--line); }
/* Text-only cards (team, values) need the top padding an image would otherwise fill. */
.is-style-ns-card:not(:has(> .wp-block-image:first-child)) { padding-top: 22px; }
.is-style-ns-card .wp-block-image { margin: 0; }
.is-style-ns-card .wp-block-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 0; display: block; }
.is-style-ns-card .wp-block-heading, .is-style-ns-card p, .is-style-ns-card .wp-block-buttons, .is-style-ns-card .wp-block-columns { padding-left: 22px; padding-right: 22px; }
.is-style-ns-card .wp-block-heading { margin-top: 14px; font-size: 26px; }
.is-style-ns-card p { font-size: 16.5px; }
.is-style-ns-card .wp-block-image + .ns-kicker { margin-top: 18px; }
.ns-kicker { font-family: var(--sans); color: var(--saffron-deep) !important; font-size: 12px !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; margin-bottom: 0; }
.ns-metric { font-family: var(--text); font-style: italic; color: var(--forest) !important; font-weight: 600; }

/* Stats: the magazine's big saffron numbers over a small caps label. */
.is-style-ns-stat {
	background: #fff; border-radius: 4px; box-shadow: var(--shadow); text-align: center; padding: 22px 12px !important;
	border: 1px solid var(--line); border-bottom: 4px solid var(--leaf);
}
.ns-stats { margin-top: -64px; position: relative; z-index: 3; padding-bottom: 10px; }
.wp-block-column.is-style-ns-stat .wp-block-heading { color: var(--saffron-deep); font-size: 42px; margin: 0; }
.wp-block-column.is-style-ns-stat p { margin: 6px 0 0; font-family: var(--sans); color: var(--muted); font-size: 13px; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; line-height: 1.4; }
/* White cards inside a forest section keep dark text. */
.wp-block-group.is-style-ns-forest .is-style-ns-card .wp-block-heading { color: var(--forest); }
.wp-block-group.is-style-ns-forest .is-style-ns-card p:not(.ns-kicker), .wp-block-group.is-style-ns-forest .is-style-ns-stat p { color: var(--ink); }
.wp-block-group.is-style-ns-forest .is-style-ns-stat .wp-block-heading { color: var(--saffron-deep); }

.wp-block-image img, .wp-block-gallery img { border-radius: 4px; }
.is-style-ns-card .wp-block-image img { border-radius: 0; }

/* Quotes: the foreword's italic pull-quote box. */
.wp-block-quote.is-style-ns-card, blockquote.is-style-ns-card {
	background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--saffron); border-radius: 4px; box-shadow: none; padding: 26px 26px 22px; margin: 0;
}
.wp-block-quote.is-style-ns-card p { font-family: var(--text); font-style: italic; font-size: 1.15rem; line-height: 1.55; padding-left: 0; }
.wp-block-quote.is-style-ns-card::before { content: "\201C"; display: block; font-family: var(--serif); font-size: 3.4rem; line-height: .6; color: var(--saffron); margin-bottom: 8px; }
.wp-block-quote cite { display: block; margin-top: 14px; font-family: var(--sans); font-style: normal; color: var(--muted); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; font-weight: 600; }
.wp-block-group.is-style-ns-forest .wp-block-quote.is-style-ns-card p { color: var(--ink); }
.ns-marathi, p.ns-marathi { font-family: var(--deva); font-style: normal !important; }

/* Buttons: squared, small caps, like the magazine's labels. */
.wp-block-button__link { border-radius: 3px; padding: 13px 20px; font-family: var(--sans); font-weight: 700; font-size: 13.5px; letter-spacing: .08em; text-transform: uppercase; }
.is-style-ns-donate .wp-block-button__link {
	background: var(--saffron-deep); color: #fff !important; text-decoration: none; border-radius: 3px;
	padding: 13px 20px; display: inline-block; border: 0;
}
.is-style-ns-donate .wp-block-button__link:hover { background: var(--saffron-dark); }
.wp-block-button.is-style-ns-forest .wp-block-button__link, .btn.forest {
	background: var(--forest); color: #fff !important; border-radius: 3px; text-decoration: none; padding: 13px 20px; display: inline-block;
}
.wp-block-button.is-style-ns-forest .wp-block-button__link:hover { background: var(--forest-2); }
/* On a forest section a forest button would vanish, so it turns cream. */
.wp-block-group.is-style-ns-forest .wp-block-button.is-style-ns-forest .wp-block-button__link { background: var(--cream); color: var(--forest) !important; }
.is-style-ns-ghost .wp-block-button__link, .btn.ghost {
	background: transparent; color: #fff !important; border: 1.5px solid rgba(255,255,255,.8); border-radius: 3px; text-decoration: none; padding: 12px 20px; display: inline-block;
}
/* A light outline only works on a dark background; on paper and cream it becomes a forest outline. */
.wp-block-group.is-style-ns-paper .is-style-ns-ghost .wp-block-button__link,
.wp-block-group.is-style-ns-cream .is-style-ns-ghost .wp-block-button__link { color: var(--forest) !important; border-color: var(--forest); }
.wp-block-buttons { gap: 10px; }

.ns-steps .wp-block-column { background: rgba(255,255,255,.07); border-radius: 4px; padding: 20px; border-top: 3px solid var(--saffron); }
.ns-steps h3 { color: #ffd9ae; }

/* Roadmap: the magazine's winding road, as a vertical road with year stops. */
.wp-block-list.ns-roadmap { list-style: none; padding: 0 0 0 64px; margin: 28px 0 0; position: relative; }
.wp-block-list.ns-roadmap::before {
	content: ""; position: absolute; left: 18px; top: 4px; bottom: 4px; width: 22px; border-radius: 11px;
	background: linear-gradient(#5d6366, #5d6366) padding-box;
	box-shadow: inset 0 0 0 2px #4a4f52;
}
.wp-block-list.ns-roadmap::after {
	content: ""; position: absolute; left: 28px; top: 14px; bottom: 14px; width: 2px;
	background: repeating-linear-gradient(#fff 0 10px, transparent 10px 20px);
}
.wp-block-list.ns-roadmap li { position: relative; margin: 0 0 22px; padding: 16px 20px; background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: var(--shadow); }
.wp-block-list.ns-roadmap li::before {
	content: ""; position: absolute; left: -47px; top: 18px; width: 18px; height: 18px; border-radius: 50%;
	background: var(--saffron); border: 3px solid #fff; box-shadow: 0 0 0 2px var(--saffron); z-index: 1;
}
.wp-block-list.ns-roadmap li strong { display: block; font-family: var(--serif); font-size: 1.25rem; color: var(--saffron-deep); }

.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 4px; }
/* Tables: the magazine's results pages, with a forest header bar. */
.wp-block-table table { border-collapse: collapse; width: 100%; background: #fff; border-radius: 4px; overflow: hidden; font-family: var(--sans); font-size: 15.5px; }
.wp-block-table td, .wp-block-table th { border: 1px solid var(--line); padding: 12px 14px; text-align: left; }
.wp-block-table th { background: var(--forest); color: #fff; font-weight: 600; letter-spacing: .02em; }
.wp-block-table tr:nth-child(even) td { background: #fcf8f2; }
.wp-block-details { border-top: 1px solid var(--line); padding: 12px 0; }
.wp-block-details { margin-top: 0 !important; margin-bottom: 0 !important; padding: 16px 0; }
.wp-block-details summary { cursor: pointer; font-weight: 700; font-family: var(--serif); font-size: 1.2rem; margin: 0; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; color: var(--saffron-deep); font-family: var(--sans); font-weight: 400; font-size: 1.6rem; line-height: 1; }
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details[open] summary { margin-bottom: 10px; }
.wp-block-details p { margin: 0; color: var(--muted); }

.ns-form { display: grid; gap: 12px; background: #fff; border-radius: 4px; padding: 24px; box-shadow: var(--shadow); border: 1px solid var(--line); border-top: 4px solid var(--saffron); font-family: var(--sans); }
.ns-form label { display: grid; gap: 6px; font-size: 14px; font-weight: 600; color: var(--forest); }
.ns-form input, .ns-form select, .ns-form textarea {
	font: inherit; font-size: 16px; height: auto; min-height: 48px; line-height: 1.4; padding: 12px 12px; border-radius: 3px; border: 1px solid var(--line); background: var(--paper);
}
.ns-form button { background: var(--saffron-deep); color: #fff; border: 0; border-radius: 3px; padding: 14px 18px; font: inherit; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 13.5px; cursor: pointer; }
.ns-form button:hover { background: var(--saffron-dark); }
.ns-form label small { font-weight: 400; color: var(--muted); }
.ns-form-note { font-size: 13px; color: var(--muted); font-weight: 400; }

/* Partner logos stay logo-sized, whatever the upload dimensions. */
.ns-logo img, .partner-logo img { max-height: 140px; width: auto; object-fit: contain; }
.partner-logo img { width: 160px; background: #fff; border-radius: 4px; padding: 12px; }

.wp-block-latest-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; list-style: none; padding: 0; }
.wp-block-latest-posts li { background: #fff; border-radius: 4px; overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--line); }
.wp-block-latest-posts img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.wp-block-latest-posts a { color: var(--forest); text-decoration: none; font-family: var(--serif); font-weight: 700; font-size: 1.25rem; }
.wp-block-latest-posts li > a, .wp-block-latest-posts time, .wp-block-latest-posts .wp-block-latest-posts__post-excerpt { display: block; padding: 0 18px; }
.wp-block-latest-posts time { font-family: var(--sans); color: var(--saffron-deep); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; padding-top: 14px; }

@media (max-width: 781px) {
	.wp-block-columns:has(> .is-style-ns-stat) { flex-wrap: wrap !important; gap: 12px; }
	.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column.is-style-ns-stat { flex-basis: calc(50% - 6px) !important; }
	.wp-block-column.is-style-ns-stat .wp-block-heading { font-size: 30px; }
	.wp-block-column.is-style-ns-stat p { font-size: 11.5px; }
	.ct-header .site-description { display: none; }
	/* Playfair is wide: keep the name and the Donate button side by side on phones. */
	.ct-header [data-device="mobile"] .site-title { font-size: 15.5px; line-height: 1.15; max-width: 120px; }
	.ct-header [data-device="mobile"] .ct-button { font-size: 11.5px; padding: 0 12px; min-height: 36px; letter-spacing: .03em; }
	.wp-block-group.is-style-ns-cream, .wp-block-group.is-style-ns-forest, .wp-block-group.is-style-ns-paper, .wp-block-group.is-style-ns-verse { padding: 56px 20px; }
	.is-style-ns-banner { min-height: 380px; padding-bottom: 36px !important; }
	.wp-block-list.ns-roadmap { padding-left: 48px; }
	.wp-block-list.ns-roadmap::before { left: 10px; width: 18px; }
	.wp-block-list.ns-roadmap::after { left: 18px; }
	.wp-block-list.ns-roadmap li::before { left: -41px; }
}
@media (max-width: 980px) {
	.wp-block-latest-posts { grid-template-columns: 1fr; }
	.ns-stats { margin-top: 0; }
	.is-style-ns-hero { min-height: 78vh; }
}

/* ===== Homepage v2: emotional, CRY-inspired, in the magazine's palette ===== */
:root { --script: "Kalam", cursive; --pill-ink: #3b1a04; }
.ns-script { font-family: var(--script); font-weight: 700; color: var(--saffron-deep); font-style: normal; letter-spacing: 0; }

/* Donate: a bright saffron pill with a heart, everywhere (header, hero, cards). 6.4:1 contrast. */
.ct-header .ct-button, .ct-header [data-id="button"] .ct-button {
	background: var(--saffron) !important; color: var(--pill-ink) !important; border: 0 !important;
	border-radius: 80px !important; font-family: var(--sans); font-weight: 800; letter-spacing: .02em; text-transform: none;
	box-shadow: 0 6px 18px rgba(243,139,46,.45); padding-inline: 22px !important;
}
.ct-header .ct-button:hover { background: #f6a04a !important; transform: translateY(-1px); }
.ct-header .ct-button::before, .is-style-ns-donate .wp-block-button__link::before { content: "\2665"; margin-right: 8px; font-size: 1.05em; }
.is-style-ns-donate .wp-block-button__link {
	background: var(--saffron); color: var(--pill-ink) !important; border-radius: 80px; text-transform: none;
	letter-spacing: .02em; font-weight: 800; font-size: 15px; padding: 13px 24px; box-shadow: 0 6px 18px rgba(243,139,46,.35);
}
.is-style-ns-donate .wp-block-button__link:hover { background: #f6a04a; }
.wp-block-group.is-style-ns-forest .is-style-ns-donate .wp-block-button__link { color: var(--pill-ink) !important; }

/* Painted edges: photos and video sit in a torn brush shape, over a saffron smear. */
.ns-brush img, .ns-brush video {
	-webkit-mask: url("brush-mask.svg") center / 100% 100% no-repeat; mask: url("brush-mask.svg") center / 100% 100% no-repeat;
	border-radius: 0 !important; display: block; width: 100%;
}
.ns-smear { position: relative; isolation: isolate; }
.ns-smear::before {
	content: ""; position: absolute; z-index: -1; inset: 8% -6% -6% -10%;
	background: url("brush-smear.svg") center / 100% 100% no-repeat;
}
.ns-torn { position: relative; }
.ns-torn::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 34px; background: url("torn-edge.svg") center / 100% 100% no-repeat; z-index: 2; }

/* Hero */
.wp-block-group.ns-home-hero { background: var(--cream); padding: 64px 24px 96px; overflow: hidden; }
.ns-home-hero h1 { font-size: clamp(40px, 5vw, 70px); line-height: 1.05; color: var(--forest); margin: 6px 0 18px; }
.ns-home-hero h1 .ns-script { display: inline-block; font-size: 1.08em; transform: rotate(-2deg); }
.ns-home-hero p.ns-lead { font-size: 1.2rem; max-width: 540px; }
.ns-home-hero .wp-block-columns { align-items: center !important; gap: 48px; }
.ns-caption, p.ns-caption { font-family: var(--script); font-size: 1.3rem; color: var(--forest); text-align: right; margin-top: 10px; }

/* Shlokas running across the page */
.wp-block-group.ns-ticker { background: var(--forest); padding: 0 !important; overflow: hidden; border-block: 3px solid var(--saffron); }
.wp-block-group.ns-ticker > p {
	max-width: none !important; margin: 0 !important; padding: 16px 0; white-space: nowrap; display: inline-block;
	animation: ns-run 70s linear infinite; color: #fff4e6; font-family: var(--deva); font-size: 19px;
}
.wp-block-group.ns-ticker:hover > p { animation-play-state: paused; }
.ns-ticker em { font-family: var(--text); font-style: italic; color: #ffc98f; font-size: 16px; margin: 0 10px 0 12px; }
.ns-ticker .ns-dot { color: var(--saffron); margin: 0 26px; }
@keyframes ns-run { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .wp-block-group.ns-ticker > p { animation: none; white-space: normal; padding-inline: 24px; } }

/* "How do you want to help today?" — scrolling photo cards */
.wp-block-columns.ns-help { flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; padding: 8px 4px 22px; gap: 20px; scrollbar-width: thin; }
.wp-block-columns.ns-help > .wp-block-column { flex: 0 0 290px !important; scroll-snap-align: start; background: #fff; border-radius: 6px; overflow: hidden; box-shadow: var(--shadow); padding-bottom: 20px; border-bottom: 5px solid var(--saffron); }
.ns-help .wp-block-image { margin: 0; }
.ns-help .wp-block-image img { aspect-ratio: 4/3; object-fit: cover; width: 100%; border-radius: 0; }
.ns-help .wp-block-heading { font-family: var(--sans); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 15px; padding: 0 18px; margin: 16px 0 6px; color: var(--ink); }
.ns-help p, .ns-help .wp-block-buttons { padding: 0 18px; }
.ns-help p { font-size: 15.5px; color: var(--muted); }
.ns-help-intro .ns-script { font-size: 1.15em; }

/* Impact cards */
.ns-impact .is-style-ns-stat { border-bottom-color: var(--saffron); padding: 30px 14px !important; }
.ns-impact .is-style-ns-stat .wp-block-heading { font-size: 46px; color: var(--forest); }

/* Video story */
.ns-video-story .wp-block-video { margin: 0; }
.ns-video-story .wp-block-columns { align-items: center !important; gap: 48px; }

/* Trust strip with the registration numbers */
.wp-block-group.ns-trust { background: #fff; border-top: 1px solid var(--line); padding: 44px 24px; }
.ns-trust .wp-block-column { text-align: center; border-right: 1px dashed var(--line); }
.ns-trust .wp-block-column:last-child { border-right: 0; }
.ns-trust p.ns-kicker { font-size: 11.5px !important; }
.ns-trust h3 { font-family: var(--sans); font-size: 19px; font-weight: 700; margin: 6px 0 0; color: var(--forest); letter-spacing: .02em; }

/* Big founder quote */
.ns-bigquote p { font-family: var(--serif); font-size: clamp(26px, 3vw, 40px); line-height: 1.3; color: var(--forest); text-align: center; max-width: 900px; margin: 0 auto; }
.ns-bigquote p.ns-by { font-family: var(--script); font-size: 1.4rem; color: var(--saffron-deep); margin-top: 16px; }
.ns-bigquote p.ns-by::before { content: "— "; }

@media (max-width: 781px) {
	.wp-block-group.ns-home-hero { padding: 36px 20px 72px; }
	.ns-caption, p.ns-caption { text-align: left; }
	.ns-trust .wp-block-column { border-right: 0; border-bottom: 1px dashed var(--line); padding-bottom: 14px; }
	.wp-block-columns.ns-help > .wp-block-column { flex-basis: 78% !important; }
}
@media (min-width: 782px) {
	.ns-home-hero .wp-block-columns > .wp-block-column, .ns-video-story .wp-block-columns > .wp-block-column { flex: 1 1 0 !important; min-width: 0; }
	.ns-home-hero .wp-block-columns > .wp-block-column:last-child, .ns-video-story .wp-block-columns > .wp-block-column:last-child { flex-grow: 1.25 !important; }
}
@media (max-width: 781px) {
	.ns-impact .is-style-ns-stat .wp-block-heading { font-size: 30px; }
	.ns-impact .is-style-ns-stat { padding: 20px 8px !important; }
}

/* ===== Homepage v3: Sur Saathi warmth (ribbons, floating icons, slider, waves) ===== */
.wp-block-group.ns-home-hero { position: relative; isolation: isolate; }
.wp-block-group.ns-home-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		url("icon-diya.svg") 4% 14% / 42px no-repeat,
		url("icon-leaf.svg") 46% 8% / 30px no-repeat,
		url("icon-lotus.svg") 40% 88% / 40px no-repeat,
		url("icon-book.svg") 2% 78% / 34px no-repeat,
		url("ribbons.svg") right bottom / 100% 100% no-repeat;
	animation: ns-float 7s ease-in-out infinite alternate;
}
@keyframes ns-float { from { background-position: 4% 14%, 46% 8%, 40% 88%, 2% 78%, right bottom; } to { background-position: 4% 11%, 47% 11%, 41% 85%, 2% 75%, right bottom; } }
.ns-home-hero .ns-brush img { aspect-ratio: 4/5; object-fit: cover; max-height: 640px; }

/* Full-width photo slider: real moments, captioned, crossfading. */
.wp-block-group.ns-slides { position: relative; height: 560px; overflow: hidden; padding: 0 !important; background: var(--forest-dark); }
.wp-block-group.ns-slides > .wp-block-cover { position: absolute !important; inset: 0; margin: 0 !important; min-height: 0 !important; height: 100%; opacity: 0; animation: ns-fade 30s infinite; }
.ns-slides > .wp-block-cover:nth-child(2) { animation-delay: 6s; }
.ns-slides > .wp-block-cover:nth-child(3) { animation-delay: 12s; }
.ns-slides > .wp-block-cover:nth-child(4) { animation-delay: 18s; }
.ns-slides > .wp-block-cover:nth-child(5) { animation-delay: 24s; }
@keyframes ns-fade { 0% { opacity: 0; } 3% { opacity: 1; } 20% { opacity: 1; } 23% { opacity: 0; } 100% { opacity: 0; } }
.ns-slides .wp-block-cover__image-background { animation: ns-zoom 30s linear infinite; }
@keyframes ns-zoom { from { transform: scale(1); } to { transform: scale(1.12); } }
.ns-slides .wp-block-cover__inner-container { text-align: center; max-width: 820px !important; margin: 0 auto; }
.ns-slides .wp-block-cover__inner-container > * { margin-left: auto !important; margin-right: auto !important; }
.ns-slides h2 { color: #fff; font-size: clamp(30px, 3.6vw, 50px); text-shadow: 0 2px 18px rgba(0,0,0,.45); }
.ns-slides p { color: #fff; font-size: 1.15rem; text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.ns-slides .wp-block-cover__background { background: linear-gradient(180deg, rgba(10,20,12,.05), rgba(10,20,12,.7)) !important; opacity: 1 !important; }
@media (prefers-reduced-motion: reduce) {
	.wp-block-group.ns-slides > .wp-block-cover { animation: none; }
	.ns-slides > .wp-block-cover:first-child { opacity: 1; }
	.wp-block-group.ns-home-hero::before, .ns-slides .wp-block-cover__image-background { animation: none; }
}

/* Wave-shaped warm section (Sur Saathi), for the ways to give. */
.wp-block-group.ns-wave { background: #fff1dc; position: relative; padding: 110px 24px !important; }
.wp-block-group.ns-wave::before, .wp-block-group.ns-wave::after { content: ""; position: absolute; left: 0; right: 0; height: 70px; background-size: 100% 100%; background-repeat: no-repeat; }
.wp-block-group.ns-wave::before { top: -69px; background-image: url("wave-top.svg"); }
.wp-block-group.ns-wave::after { bottom: -69px; background-image: url("wave-bottom.svg"); z-index: 1; }
.ns-give > .wp-block-column { background: #fff; border-radius: 18px; padding: 30px 26px !important; box-shadow: var(--shadow); text-align: center; border-top: 6px solid var(--saffron); }
.ns-give > .wp-block-column:nth-child(2) { border-top-color: var(--forest); }
.ns-give > .wp-block-column:nth-child(3) { border-top-color: var(--leaf); }
.ns-give h3 { font-size: 26px; }
.ns-give p.ns-kicker { font-size: 13px !important; }
.ns-give .wp-block-buttons { justify-content: center; }

/* In-kind tiles: photo with a label, like Sur Saathi's "instrument donated" cards. */
.ns-kind .wp-block-column { position: relative; border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); }
.ns-kind .wp-block-image { margin: 0; }
.ns-kind .wp-block-image img { aspect-ratio: 3/4; object-fit: cover; width: 100%; border-radius: 0; display: block; }
.ns-kind p { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 40px 16px 14px; color: #fff !important;
	background: linear-gradient(180deg, transparent, rgba(18,50,28,.92)); font-family: var(--sans); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 14px; }
.ns-kind p .ns-script { display: block; text-transform: none; color: #ffc98f; font-size: 22px; letter-spacing: 0; }

/* Photo tiles with captions (more initiatives, life at camp). */
.ns-tiles .wp-block-column { position: relative; }
.ns-tiles .wp-block-image img { aspect-ratio: 4/3; object-fit: cover; width: 100%; border-radius: 14px; }
.ns-tiles h3 { font-size: 22px; margin: 14px 0 4px; }

/* Founder quote over the fields at dawn. */
.wp-block-cover.ns-quote-cover .wp-block-cover__background { background: linear-gradient(180deg, rgba(18,30,20,.55), rgba(18,30,20,.7)) !important; opacity: 1 !important; }
.ns-quote-cover p { color: #fff; text-align: center; }
.ns-quote-cover p:first-child { font-family: var(--serif); font-size: clamp(28px, 3.4vw, 46px); line-height: 1.25; max-width: 900px; margin: 0 auto; }
.ns-quote-cover p.ns-by { font-family: var(--script); font-size: 1.5rem; color: #ffc98f; }

@media (max-width: 781px) {
	.wp-block-group.ns-slides { height: 440px; }
	.wp-block-group.ns-wave { padding: 80px 20px !important; }
	.ns-home-hero .ns-brush img { max-height: 460px; }
}
/* Keep the hero caption readable where the ribbons pass behind it. */
.ns-home-hero p.ns-caption { display: table; margin-left: auto; background: var(--cream); padding: 2px 14px; border-radius: 20px; position: relative; z-index: 1; }
@media (max-width: 781px) { .ns-home-hero p.ns-caption { margin-left: 0; } }
@media (max-width: 781px) {
	/* On phones the ribbons would cross the headline: keep only the floating icons. */
	.wp-block-group.ns-home-hero::before {
		background: url("icon-diya.svg") 92% 2% / 34px no-repeat, url("icon-leaf.svg") 80% 40% / 26px no-repeat, url("icon-lotus.svg") 94% 97% / 34px no-repeat;
		animation: none;
	}
	.wp-block-columns.ns-kind { flex-wrap: wrap !important; gap: 12px; }
	.wp-block-columns.ns-kind > .wp-block-column { flex-basis: calc(50% - 6px) !important; }
	.ns-kind p { font-size: 12px; padding: 30px 10px 10px; }
	.ns-kind p .ns-script { font-size: 16px; }
}
/* Blocksy hides the button's ::before; the heart needs it shown. */
.ct-header .ct-button::before { display: inline-block !important; position: static !important; width: auto !important; height: auto !important; background: none !important; opacity: 1 !important; transform: none !important; }

/* ===== Homepage v4: patterns from CRY, Sur Saathi and Swades ===== */
/* Swades "Our Work": big photo cards with the words on the photo, on a saffron field, with arrows. */
.wp-block-group.ns-work { background: #f6c75a; }
.ns-work h2, .ns-work .ns-eyebrow { color: #2a1a06; }
.ns-work .ns-eyebrow::after { background: #2a1a06; }
.ns-work-row { display: flex !important; flex-wrap: nowrap !important; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding-bottom: 6px; scrollbar-width: none; }
.ns-work-row::-webkit-scrollbar { display: none; }
.ns-work-row > .wp-block-column { flex: 0 0 min(420px, 82vw) !important; scroll-snap-align: start; }
.wp-block-cover.ns-work-card { min-height: 520px !important; border-radius: 28px; overflow: hidden; align-items: flex-end !important; padding: 26px !important; }
.ns-work-card .wp-block-cover__background { background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.78)) !important; opacity: 1 !important; }
.ns-work-card h3 { color: #fff; font-family: var(--sans); font-weight: 700; font-size: 34px; letter-spacing: -.01em; margin: 0 0 6px; }
.ns-work-card p { color: rgba(255,255,255,.92); font-size: 15.5px; margin: 0 0 14px; }
.ns-work-card .wp-block-button__link { background: transparent; border: 2px solid #fff; color: #fff !important; border-radius: 40px; text-transform: none; letter-spacing: 0; font-size: 15px; }
.ns-arrows { display: flex; gap: 12px; margin-top: 22px; }
.ns-arrows button { width: 52px; height: 52px; border-radius: 50%; border: 0; background: #1a1a1a; color: #fff; font-size: 22px; cursor: pointer; }
.ns-arrows button:hover { background: var(--forest); }

/* Swades "Dream Village": centre photo, six icon items, dashed paths. */
.wp-block-group.ns-orbit { background: #fdf3ea; }
.ns-orbit-grid { position: relative; align-items: center !important; }
.ns-orbit-grid::before { content: ""; position: absolute; inset: 0; background: url("orbit-lines.svg") center / 100% 100% no-repeat; pointer-events: none; }
.ns-orbit-grid > .wp-block-column:nth-child(2) { flex-grow: 1.5 !important; }
.ns-orbit-grid .wp-block-image img { border-radius: 26px; aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.ns-orbit-photo { position: relative; }
.ns-orbit-photo p { position: absolute; left: 26px; bottom: 18px; color: #fff; font-family: var(--sans); font-weight: 600; font-size: 28px; line-height: 1.2; text-shadow: 0 2px 14px rgba(0,0,0,.6); margin: 0; }
.ns-ico { position: relative; padding-left: 92px; margin: 34px 0 !important; min-height: 70px; }
.ns-ico::before { content: ""; position: absolute; left: 0; top: 0; width: 72px; height: 72px; background: center / contain no-repeat; }
.ns-ico-edu::before { background-image: url("ico-edu.svg"); } .ns-ico-water::before { background-image: url("ico-water.svg"); }
.ns-ico-school::before { background-image: url("ico-school.svg"); } .ns-ico-health::before { background-image: url("ico-health.svg"); }
.ns-ico-abacus::before { background-image: url("ico-abacus.svg"); } .ns-ico-tree::before { background-image: url("ico-tree.svg"); }
.ns-ico h3 { font-family: var(--sans); font-size: 19px; font-weight: 600; color: var(--ink); margin: 0 0 4px; }
.ns-ico h3 strong { color: var(--saffron-deep); font-family: var(--serif); font-size: 30px; display: block; line-height: 1.1; }
.ns-ico p { color: var(--muted); font-size: 15px; margin: 0; }

/* Sur Saathi "People behind the passion": the film in a big rounded panel. */
.wp-block-group.ns-panel { background: var(--saffron) !important; border-radius: 34px; padding: 44px 60px 40px !important; max-width: 1100px !important; text-align: center; }
.ns-panel h2 { color: #fff; font-family: var(--sans); font-weight: 600; }
.ns-panel p { color: #fff6ea; }
.ns-panel .wp-block-embed { margin: 26px 0; }
.ns-panel .wp-block-embed iframe { width: 100%; aspect-ratio: 16/9; height: auto; border-radius: 14px; display: block; }
.ns-panel .wp-block-buttons { justify-content: center; }
.ns-panel .wp-block-button__link { background: var(--saffron-deep); color: #fff !important; border-radius: 40px; min-width: 320px; font-size: 16px; }

/* CRY "Board of Trustees": coloured band, portrait cards, painted edge. */
.wp-block-group.ns-team { background: var(--forest); position: relative; padding-bottom: 150px !important; }
.wp-block-group.ns-team::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 140px; background: url("paint-edge.svg") center bottom / 100% 100% no-repeat; }
.ns-team h2, .ns-team p { color: #fff; }
.ns-team .ns-eyebrow { color: #ffd9ae; }
.ns-team > .wp-block-columns > .wp-block-column:first-child { flex: 0 0 30% !important; }
.ns-team-row { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; gap: 22px; scroll-snap-type: x mandatory; scrollbar-width: none; position: relative; z-index: 1; padding-bottom: 8px; }
.ns-team-row::-webkit-scrollbar { display: none; }
.ns-team-row > .wp-block-column { flex: 0 0 250px !important; background: #fff; border-radius: 10px; overflow: hidden; scroll-snap-align: start; border-bottom: 6px solid var(--saffron); box-shadow: 0 12px 30px rgba(0,0,0,.25); }
.ns-team-row .wp-block-image { margin: 0; }
.ns-team-row .wp-block-image img { aspect-ratio: 4/5; object-fit: cover; width: 100%; border-radius: 0; display: block; }
.ns-team-row h3 { color: var(--ink); font-family: var(--sans); font-size: 18px; font-weight: 700; text-align: center; margin: 14px 10px 2px; }
.ns-team-row p { color: var(--muted) !important; text-align: center; font-size: 14.5px; margin: 0 10px 16px; }

/* Sur Saathi staggered photo strip. */
.ns-stagger { align-items: flex-start !important; gap: 26px; }
.ns-stagger .wp-block-image img { border-radius: 28px; aspect-ratio: 7/10; object-fit: cover; width: 100%; }
.ns-stagger > .wp-block-column:nth-child(even) { margin-top: 56px; }

/* CRY research block: accordion card + brush-framed photo. */
.ns-faq-card { background: #fff; border-radius: 6px; box-shadow: var(--shadow); padding: 4px 28px !important; }
.ns-faq-card .wp-block-details { border-top: 1px solid var(--line); }
.ns-faq-card .wp-block-details:first-child { border-top: 0; }
.ns-faq-card summary { font-family: var(--sans) !important; font-weight: 500 !important; font-size: 1.2rem !important; }
.ns-faq-card summary::after { color: var(--saffron) !important; font-size: 2rem !important; }

@media (max-width: 781px) {
	.ns-orbit-grid::before { display: none; }
	.ns-ico { margin: 18px 0 !important; padding-left: 76px; }
	.ns-ico::before { width: 58px; height: 58px; }
	.wp-block-group.ns-panel { padding: 30px 18px !important; border-radius: 24px; }
	.ns-panel .wp-block-button__link { min-width: 0; }
	.ns-team > .wp-block-columns > .wp-block-column:first-child { flex-basis: 100% !important; }
	.ns-stagger { flex-wrap: wrap !important; gap: 12px; }
	.ns-stagger > .wp-block-column { flex-basis: calc(50% - 6px) !important; }
	.ns-stagger > .wp-block-column:nth-child(even) { margin-top: 28px; }
	.wp-block-cover.ns-work-card { min-height: 440px !important; }
}
.wp-block-group.is-style-ns-forest .ns-team-row .wp-block-heading { color: var(--ink); }
.wp-block-group.is-style-ns-forest .ns-team-row p { color: var(--muted); }
.ns-orbit-grid .wp-block-buttons { justify-content: center; }
.ns-ico { z-index: 1; }
.ns-ico > * { position: relative; background: #fdf3ea; display: inline-block; padding-right: 6px; }
.ns-orbit-grid .wp-block-buttons { justify-content: center !important; }
/* Morning-prayer band: the camp's own video behind a shloka. */
.wp-block-cover.ns-prayer { text-align: center; }
.ns-prayer .wp-block-cover__background { background: linear-gradient(180deg, rgba(18,50,28,.55), rgba(18,30,20,.75)) !important; opacity: 1 !important; }
.ns-prayer .wp-block-cover__inner-container > * { margin-left: auto !important; margin-right: auto !important; }
.ns-prayer p.ns-eyebrow { color: #ffd9ae; justify-content: center; }
.ns-prayer p.ns-verse-sa { color: #fff; font-size: clamp(24px, 3vw, 40px); }
.ns-prayer p.ns-verse-en { color: #ffe9cc; }
/* Portrait photos in brush frames stay a sensible height. */
.ns-smear .ns-brush img { max-height: 560px; object-fit: cover; }
.ns-prayer p.ns-verse-sa { font-size: clamp(22px, 2.4vw, 34px); max-width: 980px; }
@media (max-width: 781px) {
	.wp-block-columns.ns-stagger:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: calc(50% - 6px) !important; }
	.ct-header [data-device="mobile"] .site-title { font-size: 13.5px; max-width: 96px; }
	.ct-header [data-device="mobile"] .ct-button { padding-inline: 12px !important; font-size: 11.5px; }
	.ct-header [data-device="mobile"] .ct-button::before { margin-right: 5px; }
}

/* ===== "Help a child" v2: intro left, sliding cause cards right ===== */
.wp-block-group.ns-helpzone { background: #fff1dc; padding: 96px 24px; position: relative; overflow: hidden; isolation: isolate; }
.wp-block-group.ns-helpzone::before { content: ""; position: absolute; z-index: -1; left: -6%; top: -40px; width: 46%; height: 260px; background: url("brush-smear.svg") center / 100% 100% no-repeat; opacity: .35; }
.ns-helpzone > .wp-block-columns { align-items: center !important; gap: 40px; }
.ns-helpzone > .wp-block-columns > .wp-block-column:first-child { flex: 0 0 32% !important; }
.ns-helpzone > .wp-block-columns > .wp-block-column:last-child { min-width: 0; }
.ns-helpzone h2 { font-size: clamp(32px, 3.4vw, 48px); }
p.ns-trustline { font-family: var(--sans); font-size: 14px; color: var(--forest); background: #fff; border-radius: 40px; display: inline-block; padding: 10px 18px; box-shadow: var(--shadow); }
.ns-helpzone .ns-arrows { margin-top: 26px; }

.wp-block-columns.ns-help { flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; gap: 22px; padding: 10px 60px 26px 4px; scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
.wp-block-columns.ns-help::-webkit-scrollbar { display: none; }
.wp-block-columns.ns-help > .wp-block-column {
	flex: 0 0 300px !important; scroll-snap-align: start; display: flex; flex-direction: column;
	background: #fff; border-radius: 22px; overflow: hidden; padding: 0 0 22px !important; border: 0 !important;
	box-shadow: 0 14px 34px rgba(120, 60, 10, .12); transition: transform .3s ease, box-shadow .3s ease;
}
.wp-block-columns.ns-help > .wp-block-column:hover { transform: translateY(-8px); box-shadow: 0 22px 44px rgba(120, 60, 10, .2); }
.ns-help .wp-block-image { margin: 0; overflow: hidden; }
.ns-help .wp-block-image img { aspect-ratio: 5/4; object-fit: cover; width: 100%; border-radius: 0; transition: transform .6s ease; }
.ns-help > .wp-block-column:hover .wp-block-image img { transform: scale(1.07); }
.ns-help p.ns-chip {
	position: relative; z-index: 1; align-self: flex-start; margin: -17px 0 0 18px !important; padding: 6px 14px !important;
	border-radius: 30px; font-family: var(--sans); font-size: 11.5px !important; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #fff !important;
}
.ns-chip-saffron { background: var(--saffron-deep); } .ns-chip-forest { background: var(--forest); } .ns-chip-leaf { background: #5f7a12; }
.ns-help .wp-block-heading { font-family: var(--serif) !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: -.01em !important; font-size: 23px !important; color: var(--forest) !important; margin: 14px 0 6px !important; padding: 0 22px !important; }
.ns-help p:not(.ns-chip) { font-size: 15.5px; color: var(--muted); padding: 0 22px !important; margin: 0 0 18px; }
.ns-help .wp-block-buttons { margin-top: auto; padding: 0 22px !important; }
.ns-help .wp-block-button { width: 100%; }
.ns-help .wp-block-button__link { width: 100%; text-align: center; }

@media (max-width: 781px) {
	.ns-helpzone > .wp-block-columns > .wp-block-column:first-child { flex-basis: 100% !important; }
	.wp-block-columns.ns-help { padding-right: 40px; }
	.wp-block-columns.ns-help > .wp-block-column { flex-basis: 78% !important; }
}
.wp-block-group.ns-helpzone::before { display: none; }
.wp-block-columns.ns-help, .ns-helpzone .wp-block-column { background: transparent; box-shadow: none; }
.wp-block-columns.ns-help > .wp-block-column { background: #fff !important; box-shadow: 0 14px 34px rgba(120, 60, 10, .12) !important; }
@media (min-width: 1240px) {
	/* Let the cards run to the right edge of the screen, like CRY's carousel. */
	.ns-helpzone > .wp-block-columns > .wp-block-column:last-child { margin-right: calc((1180px - 100vw) / 2 - 24px); }
}
@media (max-width: 781px) { .ns-help .wp-block-button__link { font-size: 13.5px; padding: 12px 10px; } }

/* ── One rhythm for every section ─────────────────────────────────────────────
   Every content section gets the same top/bottom space, and a section's label,
   title and intro sit together as one block (label close to its title). */
:root { --section-y: clamp(64px, 7vw, 104px); --section-x: 24px; }
.wp-block-group.ns-orbit,
.wp-block-group.ns-work,
.wp-block-group.ns-helpzone,
.wp-block-group.is-style-ns-cream,
.wp-block-group.is-style-ns-paper,
.wp-block-group.is-style-ns-forest,
.wp-block-group.is-style-ns-verse { padding: var(--section-y) var(--section-x) !important; }
.wp-block-group.ns-wave { padding: var(--section-y) var(--section-x) !important; }
/* The forest team section ends in a painted edge, so it keeps room for it. */
.wp-block-group.ns-team { padding-bottom: calc(var(--section-y) + 110px) !important; }

/* Label → title → intro: tight and consistent everywhere. */
.ns-eyebrow + .wp-block-heading,
.ns-eyebrow + h2 { margin-top: 10px !important; }
.wp-block-group > .wp-block-heading + p:not(.ns-eyebrow),
.wp-block-group > h2 + p:not(.ns-eyebrow) { margin-top: 14px !important; }
/* Space between the intro and the section's content (cards, grids…). */
.wp-block-group > p:not(.ns-eyebrow) + .wp-block-columns,
.wp-block-group > p:not(.ns-eyebrow) + .wp-block-group { margin-top: clamp(36px, 4vw, 56px) !important; }

/* ── Impact ("What you have made possible"): give it air ─────────────────── */
.ns-orbit-grid { column-gap: clamp(28px, 4vw, 64px) !important; }
.ns-orbit-grid > .wp-block-column:nth-child(2) { flex-grow: 1.35 !important; }
.ns-orbit-grid > .wp-block-column:not(:nth-child(2)) { display: flex; flex-direction: column; gap: clamp(28px, 3vw, 44px); }
.ns-orbit-grid .ns-ico { margin: 0 !important; padding-left: 84px; min-height: 64px; }
.ns-orbit-grid .ns-ico::before { width: 60px; height: 60px; top: 4px; }
.ns-orbit-grid .ns-ico h3 { font-size: 17px; line-height: 1.3; margin: 0 0 6px; }
.ns-orbit-grid .ns-ico h3 strong { font-size: 28px; margin-bottom: 4px; }
.ns-orbit-grid .ns-ico p { font-size: 14.5px; line-height: 1.6; }
.ns-orbit-grid .ns-ico > * { display: block; margin-block: 0 !important; }
.ns-orbit-grid .ns-ico > p { margin-top: 6px !important; }
/* Photo: softer gradient behind the caption so the text stays inside and readable. */
.ns-orbit-photo { border-radius: 26px; overflow: hidden; box-shadow: 0 18px 40px -22px rgba(60, 30, 5, .45); }
.ns-orbit-photo::after { content: ""; position: absolute; inset: auto 0 0 0; height: 45%; background: linear-gradient(180deg, transparent, rgba(20, 12, 4, .65)); pointer-events: none; }
.ns-orbit-photo p { z-index: 1; left: 24px; right: 24px; bottom: 20px; font-size: clamp(17px, 1.45vw, 22px); }
.ns-orbit-grid .wp-block-image { margin: 0 !important; }
.ns-orbit-grid .wp-block-buttons { margin-top: 32px !important; }

/* Tablet: photo across the top, the six stats in two columns underneath. */
@media (min-width: 782px) and (max-width: 1100px) {
	.ns-orbit-grid { flex-wrap: wrap !important; row-gap: 40px !important; }
	.ns-orbit-grid::before { display: none; }
	.ns-orbit-grid > .wp-block-column:nth-child(2) { order: -1; flex-basis: 100% !important; max-width: 720px; margin-inline: auto; }
	.ns-orbit-grid > .wp-block-column:not(:nth-child(2)) { flex-basis: calc(50% - 32px) !important; }
}
@media (max-width: 781px) {
	:root { --section-y: 56px; --section-x: 20px; }
	.ns-orbit-grid > .wp-block-column:nth-child(2) { order: -1; }
	.ns-orbit-grid > .wp-block-column:not(:nth-child(2)) { gap: 24px; }
	.ns-orbit-grid .ns-ico { padding-left: 72px; }
	.ns-orbit-grid .ns-ico::before { width: 52px; height: 52px; }
}

/* ===== v6: magazine imagery, journey road, results, visit & love bands ===== */
/* Cartoon village illustration (magazine p.13) as a footer motif under warm sections. */
.wp-block-group.ns-illus { position: relative; padding-bottom: 210px !important; }
.wp-block-group.ns-illus::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 200px; background: url("illustration-village.png") center bottom / auto 100% repeat-x; opacity: .95; pointer-events: none; }

/* Journey road (magazine p.14) */
.wp-block-group.ns-journey { background: #fdf6ec; overflow: hidden; }
.ns-road-wrap { position: relative; }
.wp-block-columns.ns-road { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; gap: 0 !important; position: relative; min-height: 520px; padding: 0 0 10px; scroll-behavior: smooth;
	background: url("road.svg") 0 50% / 1800px 300px no-repeat; }
.wp-block-columns.ns-road::-webkit-scrollbar { display: none; }
.ns-road > .wp-block-column { flex: 0 0 250px !important; text-align: center; padding: 0 12px; }
.ns-road > .wp-block-column:nth-child(odd) { padding-top: 0; }
.ns-road > .wp-block-column:nth-child(even) { padding-top: 280px; }
.ns-road .wp-block-image { margin: 0 auto 10px; width: 132px; }
.ns-road .wp-block-image img { width: 132px; height: 132px; object-fit: cover; border-radius: 50%; border: 6px solid #fff; box-shadow: 0 8px 22px rgba(0,0,0,.18); }
.ns-road h3 { font-family: var(--serif); color: var(--saffron-deep); font-size: 28px; margin: 4px 0 2px; }
.ns-road h4 { font-family: var(--sans); font-size: 15px; font-weight: 700; color: var(--forest); margin: 0 0 4px; text-transform: uppercase; letter-spacing: .06em; }
.ns-road p { font-size: 14.5px; color: var(--muted); margin: 0; }

/* Results teaser with the cartoon toppers (magazine p.49) */
.wp-block-group.ns-proud { background: linear-gradient(180deg, #fff 0%, #f3f8e6 100%); }
.ns-proud .wp-block-columns { align-items: center !important; }
.ns-proud .ns-counts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.ns-proud .ns-counts .wp-block-column { background: #fff; border-radius: 18px; padding: 20px !important; box-shadow: var(--shadow); border-left: 6px solid var(--saffron); }
.ns-proud .ns-counts .wp-block-column:nth-child(2) { border-left-color: var(--forest); }
.ns-proud .ns-counts .wp-block-column:nth-child(3) { border-left-color: var(--leaf); }
.ns-proud .ns-counts h3 { font-size: 40px; margin: 0; color: var(--forest); }
.ns-proud .ns-counts p { margin: 2px 0 0; font-family: var(--sans); font-size: 13.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.ns-proud .wp-block-image img { border-radius: 0; }

/* Founders with their words (CRY trustee cards, transparent cut-outs on a saffron disc) */
.ns-team-row .wp-block-image { background: radial-gradient(circle at 50% 70%, #f6a04a 0 48%, #fde3c2 49% 100%); }
.ns-team-row .wp-block-image img { object-fit: contain !important; object-position: center bottom; }
.ns-team-row p.ns-bio { font-size: 13.5px !important; color: var(--muted) !important; text-align: center; margin: 0 14px 18px !important; line-height: 1.45; }
.ns-team-row p.ns-role { color: var(--saffron-deep) !important; font-family: var(--sans); font-weight: 700; font-size: 12px !important; text-transform: uppercase; letter-spacing: .08em; margin: 0 10px 8px !important; }

/* Feeling of visiting / feeling of love: full-bleed photo bands */
.wp-block-cover.ns-visit .wp-block-cover__background { background: linear-gradient(90deg, rgba(18,50,28,.82), rgba(18,50,28,.35) 60%, rgba(18,50,28,.1)) !important; opacity: 1 !important; }
.wp-block-cover.ns-love .wp-block-cover__background { background: linear-gradient(180deg, rgba(60,25,5,.35), rgba(60,25,5,.75)) !important; opacity: 1 !important; }
.ns-visit h2, .ns-love h2 { color: #fff; font-size: clamp(34px, 4vw, 58px); }
.ns-visit p, .ns-love p { color: #fff6ea; font-size: 1.15rem; max-width: 620px; }
.ns-love { text-align: center; }
.ns-love .wp-block-cover__inner-container > * { margin-left: auto !important; margin-right: auto !important; }
.ns-love .wp-block-buttons { justify-content: center; }
.ns-visit ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ns-visit li { background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.35); color: #fff; border-radius: 30px; padding: 8px 16px; font-family: var(--sans); font-size: 14px; }

@media (max-width: 781px) {
	.ns-road > .wp-block-column { flex-basis: 210px !important; }
	.ns-road > .wp-block-column:nth-child(even) { padding-top: 250px; }
	.ns-proud .ns-counts { grid-template-columns: 1fr 1fr; }
	.wp-block-group.ns-illus { padding-bottom: 130px !important; }
	.wp-block-group.ns-illus::after { height: 120px; }
}

/* ===== Impact in Action (interactive results) ===== */
.ns-proud .wp-block-columns.ns-counts { display: grid !important; }
.ns-results-hero .wp-block-image img { border-radius: 0; }
.wp-block-columns.ns-ssc-tiles { gap: 16px; }
.ns-ssc-tiles > .wp-block-column { background: #fff; border-radius: 18px; padding: 22px 12px !important; text-align: center; box-shadow: var(--shadow); border-top: 6px solid var(--forest); }
.ns-ssc-tiles > .wp-block-column:nth-child(2) { border-top-color: var(--saffron); }
.ns-ssc-tiles > .wp-block-column:nth-child(4) { border-top-color: var(--saffron); }
.ns-ssc-tiles > .wp-block-column:nth-child(5) { border-top-color: var(--leaf); }
.ns-ssc-tiles h3 { font-size: 40px; margin: 0; color: var(--forest); }
.ns-ssc-tiles > .wp-block-column:nth-child(2) h3 { color: var(--saffron-deep); }
.ns-ssc-tiles p { font-family: var(--sans); font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 4px 0 0; }

.ns-ssc { background: #fff; border-radius: 26px; padding: 28px; box-shadow: var(--shadow); }
.ns-ssc-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 26px; }
.ns-ssc-tabs button { border: 2px solid var(--line); background: #fff; border-radius: 40px; padding: 10px 18px; font-family: var(--sans); font-weight: 700; font-size: 14px; color: var(--forest); cursor: pointer; transition: all .2s; }
.ns-ssc-tabs button:hover { border-color: var(--saffron); }
.ns-ssc-tabs button.on { background: var(--forest); border-color: var(--forest); color: #fff; }
.ns-ssc-body { display: grid; grid-template-columns: 300px 1fr; gap: 36px; align-items: center; }
.ns-donut { position: relative; width: 280px; height: 280px; margin: 0 auto; }
.ns-donut-ring { position: absolute; inset: 0; border-radius: 50%; background: #eee; transition: background .6s; }
.ns-donut-mid { position: absolute; inset: 22%; background: #fff; border-radius: 50%; display: grid; place-content: center; text-align: center; }
.ns-donut-mid b { font-family: var(--serif); font-size: 46px; color: var(--forest); line-height: 1; }
.ns-donut-mid span { font-family: var(--sans); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.ns-ssc-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.ns-ssc-stats > div { background: #f8f4ee; border-radius: 16px; padding: 16px 18px; border-left: 6px solid var(--ink); }
.ns-ssc-stats > div.g { border-left-color: #205530; } .ns-ssc-stats > div.s { border-left-color: #f38b2e; } .ns-ssc-stats > div.l { border-left-color: #a0c020; }
.ns-ssc-stats b { display: block; font-family: var(--serif); font-size: 36px; color: var(--forest); line-height: 1.1; }
.ns-ssc-stats span { font-family: var(--sans); font-size: 13.5px; color: var(--muted); }
.ns-ssc-note { grid-column: 1 / -1; margin: 6px 0 0; background: #fff4e3; border-radius: 14px; padding: 14px 18px; font-size: 16px; }
.ns-trend { margin-top: 34px; border-top: 1px dashed var(--line); padding-top: 24px; }
.ns-trend h4 { font-family: var(--sans); font-size: 15px; color: var(--ink); margin: 0 0 14px; }
.ns-trend h4 em { font-style: normal; color: var(--saffron-deep); }
.ns-bars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; height: 230px; align-items: end; }
.ns-bar { display: flex; flex-direction: column; align-items: center; height: 100%; transition: opacity .3s; }
.ns-bar.dim { opacity: .3; }
.ns-bar-cols { flex: 1; display: flex; gap: 8px; align-items: flex-end; width: 100%; justify-content: center; }
.ns-bar-cols i { position: relative; width: 38%; max-width: 54px; height: 0; background: #205530; border-radius: 8px 8px 0 0; transition: height 1s ease; }
.ns-bar-cols i.b2 { background: #f38b2e; }
.ns-ssc.in .ns-bar-cols i { height: var(--h); }
.ns-bar-cols i::after { content: attr(data-v); position: absolute; top: -22px; left: 50%; transform: translateX(-50%); font-family: var(--sans); font-size: 12px; font-weight: 700; color: var(--ink); white-space: nowrap; }
.ns-bar span { font-family: var(--sans); font-weight: 700; font-size: 13px; margin-top: 8px; color: var(--forest); }
.ns-legend { display: flex; gap: 18px; margin-top: 14px; font-family: var(--sans); font-size: 13px; }
.ns-legend span::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; background: #205530; }
.ns-legend span.s::before { background: #f38b2e; }
@media (max-width: 781px) {
	.ns-ssc { padding: 18px; }
	.ns-ssc-body { grid-template-columns: 1fr; }
	.ns-donut { width: 220px; height: 220px; }
	.ns-ssc-tiles { flex-wrap: wrap !important; }
	.wp-block-columns.ns-ssc-tiles:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: calc(50% - 8px) !important; }
	.ns-bar-cols i::after { font-size: 10px; }
}
.ns-bar-cols i { font-style: normal; }
/* Road: keep the stops clear of the road band. */
.wp-block-columns.ns-road { min-height: 660px; background-size: 1800px 220px; background-position: 0 50%; }
.ns-road > .wp-block-column:nth-child(even) { padding-top: 420px; }
@media (max-width: 781px) { .ns-road > .wp-block-column:nth-child(even) { padding-top: 420px; } }
/* Every page banner gets the magazine's saffron torn edge. */
.wp-block-cover.is-style-ns-banner { position: relative; }
.wp-block-cover.is-style-ns-banner::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 30px; background: url("torn-edge.svg") center / 100% 100% no-repeat; z-index: 2; }
/* Team page: the same cut-out cards, wrapping in a grid. */
.wp-block-columns.ns-team-grid { flex-wrap: wrap !important; overflow: visible; justify-content: flex-start; }
.wp-block-columns.ns-team-grid > .wp-block-column { flex: 0 0 calc(25% - 17px) !important; min-width: 230px; }
.wp-block-group.is-style-ns-paper .ns-team-row .wp-block-heading, .wp-block-group.is-style-ns-cream .ns-team-row .wp-block-heading { color: var(--ink); }
@media (max-width: 781px) { .wp-block-columns.ns-team-grid:not(.is-not-stacked-on-mobile) > .wp-block-column { flex: 0 0 calc(50% - 8px) !important; min-width: 0; } .ns-team-row p.ns-bio { font-size: 12.5px !important; } }
/* Consistency pass: one section rhythm, one left edge, no repeating motif. */
.wp-block-group.ns-journey, .wp-block-group.ns-proud { padding: 100px 24px !important; }
.wp-block-group.ns-illus { padding-bottom: 100px !important; }
.wp-block-group.ns-illus::after { display: none; }
.wp-block-cover.ns-visit, .wp-block-cover.ns-love, .wp-block-cover.ns-prayer { padding: 100px 24px !important; }
.wp-block-cover.ns-visit .wp-block-cover__inner-container { max-width: 1180px !important; margin: 0 auto; }
.wp-block-cover.ns-visit .wp-block-cover__inner-container > * { margin-left: 0 !important; }
@media (max-width: 781px) {
	.wp-block-group.ns-journey, .wp-block-group.ns-proud, .wp-block-group.ns-illus { padding: 56px 20px !important; }
	.wp-block-cover.ns-visit, .wp-block-cover.ns-love, .wp-block-cover.ns-prayer { padding: 56px 20px !important; }
	.wp-block-group.ns-trust { padding: 44px 20px; }
}

/* ---------- Direct giving: UPI QR + bank transfer ([ns_pay]) ---------- */
.ns-pay-zone { padding: 80px 24px !important; }
.ns-pay-zone > .ns-eyebrow, .ns-pay-zone > .wp-block-heading, .ns-pay-zone > p { text-align: center; margin-left: auto !important; margin-right: auto !important; }
.ns-pay { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 28px; max-width: 1040px; margin: 36px auto 0; align-items: stretch; }
.ns-pay-card { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--saffron); border-radius: 6px; box-shadow: var(--shadow); padding: 28px; font-family: var(--sans); color: var(--ink); }
.ns-pay-bank { border-top-color: var(--forest); }
.ns-pay-card h3 { font-family: var(--serif); color: var(--forest); font-size: 30px; margin: 4px 0 18px; }
.ns-pay-tag { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--saffron-deep); }
.ns-pay-upi { text-align: center; display: flex; flex-direction: column; align-items: center; }
.ns-pay-qr { background: #fff; padding: 10px; border: 1px dashed var(--line); border-radius: 10px; width: min(250px, 100%); }
.ns-pay-qr img { display: block; width: 100%; height: auto; image-rendering: pixelated; }
.ns-pay-apps { margin: 14px 0 0; font-size: 13px; color: var(--muted); }
.ns-pay-id { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 14px; background: var(--cream); border-radius: 999px; padding: 8px 8px 8px 18px; font-weight: 700; color: var(--forest); font-size: 16px; word-break: break-all; }
.ns-pay-app-btn { display: none; margin-top: 16px; background: var(--saffron-deep); color: #fff !important; text-decoration: none; padding: 13px 22px; border-radius: 3px; font-weight: 700; font-size: 13.5px; letter-spacing: .08em; text-transform: uppercase; }
.ns-pay-app-btn:hover { background: var(--saffron-dark); }
.ns-pay-bank dl { margin: 0; }
.ns-pay-row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line); }
.ns-pay-row:first-child { padding-top: 0; }
.ns-pay-row dt { font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.ns-pay-row dd { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 17px; font-weight: 600; color: var(--ink); word-break: break-word; }
.ns-pay-row dd span { font-variant-numeric: lining-nums tabular-nums; letter-spacing: .02em; }
.ns-copy { flex: none; border: 1px solid var(--forest); background: #fff; color: var(--forest); border-radius: 999px; padding: 5px 14px; font: 700 12px/1.4 var(--sans); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; transition: background .15s, color .15s; }
.ns-copy:hover, .ns-copy:focus-visible { background: var(--forest); color: #fff; }
.ns-copy.is-done { background: var(--forest); color: #fff; border-color: var(--forest); }
.ns-pay-receipt { margin-top: 22px; background: var(--cream); border-left: 4px solid var(--saffron); border-radius: 4px; padding: 14px 16px; font-size: 14.5px; line-height: 1.6; color: var(--ink); }
.ns-pay-receipt a { color: var(--saffron-deep); font-weight: 700; }
@media (max-width: 860px) {
	.ns-pay { grid-template-columns: 1fr; gap: 20px; }
	.ns-pay-app-btn { display: inline-block; }
}
@media (max-width: 781px) {
	.ns-pay-zone { padding: 56px 20px !important; }
	.ns-pay-card { padding: 22px 18px; }
	.ns-pay-row { grid-template-columns: 1fr; gap: 4px; }
}

/* ==========================================================
   Client feedback, Oct 2026 (Jayesh): spacing, centring, hover bios,
   scrolling photos, results, impact numbers, donation notes.
   ========================================================== */

/* Less open space between bands (was 112px / 72px). */
.entry-content > .alignfull.wp-block-group:not(.ns-ticker):not(.ns-slides):not(.ns-home-hero),
.entry-content > .alignfull.wp-block-cover:not(.ns-slide) { padding-top: 76px !important; padding-bottom: 76px !important; }
@media (max-width: 760px) {
	.entry-content > .alignfull.wp-block-group:not(.ns-ticker):not(.ns-slides):not(.ns-home-hero),
	.entry-content > .alignfull.wp-block-cover:not(.ns-slide) { padding-top: 52px !important; padding-bottom: 52px !important; }
}
/* Columns no longer stretch a short card to the height of a tall photo. */
.ns-about-began > .wp-block-columns { align-items: flex-start !important; }
.ns-about-began .wp-block-quote.is-style-ns-card { margin-bottom: 18px; }

/* Centred headings and card rows where the client asked. */
.ns-center, .ns-center > .wp-block-heading, .ns-center > p { text-align: center; }
.ns-center > p.ns-eyebrow { margin-left: auto !important; margin-right: auto !important; }
.wp-block-columns.ns-team-grid { justify-content: center !important; }

/* Hover bio: the full bio fades in over the photo. */
.ns-team-row > .wp-block-column.ns-has-bio { position: relative; cursor: pointer; outline: none; }
.ns-team-row p.ns-bio-full {
	position: absolute; left: 0; right: 0; top: 0; z-index: 4; margin: 0 !important; padding: 18px 16px !important;
	aspect-ratio: 4 / 5; overflow-y: auto; display: flex; align-items: center;
	background: rgba(31, 61, 37, .94); color: #fff7e6 !important; font-size: 13.5px !important; line-height: 1.5; text-align: left !important;
	opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s ease;
}
.ns-team-row > .wp-block-column.ns-has-bio:hover p.ns-bio-full,
.ns-team-row > .wp-block-column.ns-has-bio:focus-within p.ns-bio-full,
.ns-team-row > .wp-block-column.ns-has-bio:focus p.ns-bio-full { opacity: 1; visibility: visible; }
.ns-team-row > .wp-block-column.ns-has-bio:focus-visible { box-shadow: 0 0 0 3px var(--saffron) !important; }
.ns-team-row > .wp-block-column.ns-has-bio .ns-bio::after { content: " · Hover for bio"; color: var(--saffron-deep); font-weight: 600; white-space: nowrap; }
@media (hover: none) { .ns-team-row > .wp-block-column.ns-has-bio .ns-bio::after { content: " · Tap for bio"; } }

/* Ways to help: cards wide enough that words never break mid-word. */
.wp-block-columns.ns-ways { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px !important; }
.wp-block-columns.ns-ways > .wp-block-column { text-align: center; hyphens: manual; word-break: normal; overflow-wrap: normal; }
@media (max-width: 900px) { .wp-block-columns.ns-ways { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .wp-block-columns.ns-ways { grid-template-columns: 1fr; } }

/* Continuously scrolling photos */
.ns-marquee { display: flex; overflow: hidden; gap: 16px; margin: 30px 0 0; padding: 6px 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ns-marquee-track { display: flex; gap: 16px; flex: none; margin: 0; padding: 0; list-style: none; animation: ns-marquee var(--ns-marquee-duration, 45s) linear infinite; }
.ns-marquee:hover .ns-marquee-track { animation-play-state: paused; }
.ns-marquee-track li { flex: none; margin: 0; padding: 0; }
.ns-marquee-track img { display: block; height: var(--ns-marquee-h, 220px); width: auto; max-width: none; border-radius: 6px; border: 6px solid #fffaf0; box-shadow: 0 8px 20px rgba(0,0,0,.18); }
@keyframes ns-marquee { from { transform: translateX(0); } to { transform: translateX(calc(-100% - 16px)); } }
@media (max-width: 760px) { .ns-marquee-track img { height: calc(var(--ns-marquee-h, 220px) * .7); } }
@media (prefers-reduced-motion: reduce) { .ns-marquee { overflow-x: auto; } .ns-marquee-track { animation: none; } .ns-marquee-track[aria-hidden] { display: none; } }

/* Prominent registration / donation notes */
p.ns-trustline.ns-prominent { background: var(--forest) !important; color: #fff7e6 !important; clip-path: none !important; border-radius: 6px !important; padding: 16px 20px !important; font-size: 16px !important; font-weight: 600; line-height: 1.7; text-align: center; box-shadow: 0 10px 24px rgba(0,0,0,.18); }
.ns-10be { background: #fff3d6; border: 2px solid var(--saffron); border-radius: 8px; padding: 14px 18px !important; font-family: var(--sans); font-weight: 700; color: var(--forest) !important; text-align: center; font-size: 17px; }
.wp-block-cover .ns-10be, .wp-block-group.is-style-ns-forest .ns-10be { color: var(--forest) !important; text-shadow: none; }

/* Impact numbers (six client figures) */
.ns-impact6 { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px !important; }
.ns-impact6 > .wp-block-column { text-align: center; background: #fffaf0; border-radius: 10px; padding: 26px 18px !important; border-top: 5px solid var(--saffron); box-shadow: 0 10px 26px rgba(0,0,0,.08); }
.ns-impact6 .ns-impact-ico { font-size: 34px; line-height: 1; margin: 0 0 8px !important; }
.ns-impact6 .wp-block-heading { font-family: var(--serif); color: var(--saffron-deep) !important; font-size: 44px !important; margin: 0 !important; }
.ns-impact6 p:not(.ns-impact-ico) { margin: 6px 0 0 !important; color: var(--ink) !important; font-size: 15.5px; line-height: 1.45; }
@media (max-width: 900px) { .ns-impact6 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .ns-impact6 { grid-template-columns: 1fr; } .ns-impact6 .wp-block-heading { font-size: 36px !important; } }
.ns-achieve-note { text-align: center; font-family: var(--sans); font-weight: 600; color: var(--forest) !important; font-size: 17px; max-width: 900px; margin-left: auto !important; margin-right: auto !important; }
.wp-block-group.is-style-ns-forest .ns-achieve-note { color: #fff7e6 !important; }

/* Results: student cards with photos */
.ns-result-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 18px !important; margin-top: 18px !important; }
.ns-result-grid > .wp-block-column { background: #fff; border-radius: 10px; overflow: hidden; text-align: center; box-shadow: 0 8px 22px rgba(0,0,0,.08); border-bottom: 4px solid var(--saffron); padding: 0 0 12px !important; }
.ns-result-grid .wp-block-image { margin: 0 !important; }
.ns-result-grid .wp-block-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: center 25%; display: block; border-radius: 0 !important; }
.ns-result-grid .wp-block-heading { font-family: var(--sans); font-size: 15.5px !important; color: var(--ink) !important; margin: 10px 8px 0 !important; line-height: 1.3; }
.ns-result-grid p.ns-score { font-family: var(--serif); color: var(--saffron-deep) !important; font-size: 26px !important; font-weight: 700; margin: 2px 0 0 !important; }
.ns-result-grid p.ns-meta { font-size: 12.5px !important; color: var(--muted) !important; margin: 4px 10px 0 !important; line-height: 1.4; }
.ns-he-grid .wp-block-image img { aspect-ratio: 4 / 5; object-position: center top; }
.ns-year-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 20px; background: var(--forest); color: #fff7e6; border-radius: 8px; padding: 14px 22px !important; margin-top: 44px !important; }
.ns-year-head strong { font-family: var(--serif); font-size: 28px; }
.ns-year-head span { font-family: var(--sans); font-size: 14.5px; }

/* Result cards: always fit the screen (2 columns on phones); photos sit plain, without the paper frame. */
.ns-result-grid { grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr)); }
@media (max-width: 560px) { .ns-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px !important; } .ns-result-grid .wp-block-heading { font-size: 14px !important; } .ns-result-grid p.ns-score { font-size: 22px !important; } }
.entry-content .ns-result-grid .wp-block-image,
.entry-content > .wp-block-group .ns-result-grid > .wp-block-column > .wp-block-image { border: 0 !important; border-image: none !important; padding: 0 !important; margin: 0 !important; transform: none !important; box-shadow: none !important; background: none !important; }
.entry-content .ns-result-grid .wp-block-image::before,
.entry-content > .wp-block-group .ns-result-grid > .wp-block-column > .wp-block-image::before { display: none !important; }
.ns-year-head span { overflow-wrap: anywhere; }
.ns-impact6 > .wp-block-column, .ns-result-grid > .wp-block-column { min-width: 0; }

/* ---------- Roadmap, magazine style ([ns_roadmap]) ---------- */
.ns-rm { --road: #4a4a4a; --rm-orange: #e8772e; max-width: 1180px; margin: 0 auto; }
.ns-rm-title { text-align: center; line-height: .95; margin: 0 0 30px !important; font-family: var(--serif); color: #1d1a17 !important; }
.ns-rm-title span { display: block; font-size: clamp(34px, 5vw, 58px); text-transform: uppercase; letter-spacing: .02em; }
.ns-rm-title em { display: block; font-size: clamp(46px, 7vw, 86px); font-weight: 400; background: linear-gradient(90deg, #f7c843, #f2913a); -webkit-background-clip: text; background-clip: text; color: transparent; padding: 0 .1em; }
.ns-rm-list { list-style: none; margin: 0; padding: 0; }
.ns-rm-step { display: grid; grid-template-columns: minmax(0, 1fr) 220px minmax(0, 1fr); align-items: center; gap: 0 26px; min-height: 300px; margin: 0; }
.ns-rm-step.is-left .ns-rm-text { order: 3; } .ns-rm-step.is-left .ns-rm-track { order: 2; } .ns-rm-step.is-left .ns-rm-photo { order: 1; }
.ns-rm-text h3 { font-family: var(--serif); color: var(--rm-orange) !important; font-size: 22px !important; line-height: 1.3; margin: 0 0 10px !important; }
.ns-rm-text h3 span { font-weight: 700; }
.ns-rm-text p { margin: 0 !important; color: var(--ink) !important; font-size: 16px; line-height: 1.65; text-align: justify; hyphens: auto; }
.ns-rm-track { position: relative; align-self: stretch; min-height: 300px; }
.ns-rm-road { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ns-rm-road path { fill: none; stroke-linecap: butt; }
.ns-rm-road .o { stroke: var(--road); stroke-width: 74px; }
.ns-rm-road .w { stroke: #fff; stroke-width: 58px; }
.ns-rm-road .i { stroke: var(--road); stroke-width: 52px; }
.ns-rm-year { position: absolute; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 12px; font-family: var(--sans); font-weight: 800; font-size: 30px; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.4); white-space: nowrap; z-index: 2; }
.ns-rm-step.is-right .ns-rm-year { left: 64%; transform: translate(-50%, -50%); flex-direction: column; gap: 4px; }
.ns-rm-step.is-left .ns-rm-year { left: 36%; transform: translate(-50%, -50%); flex-direction: column; gap: 4px; }
.ns-rm-year i { width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px var(--road); display: block; }
.ns-rm-photo img { display: block; width: 100%; max-height: 300px; object-fit: cover; border: 4px solid #111; border-radius: 22px; box-shadow: 0 10px 24px rgba(0,0,0,.15); }
@media (max-width: 860px) {
	.ns-rm-step, .ns-rm-step.is-left { grid-template-columns: 74px minmax(0, 1fr); grid-template-areas: "track text" "track photo"; gap: 10px 18px; min-height: 0; padding-bottom: 26px; }
	.ns-rm-step .ns-rm-track { grid-area: track; order: 0 !important; min-height: 0; background: linear-gradient(90deg, transparent 6px, var(--road) 6px, var(--road) 9px, #fff 9px, #fff 11px, var(--road) 11px, var(--road) 63px, #fff 63px, #fff 65px, var(--road) 65px, var(--road) 68px, transparent 68px); }
	.ns-rm-step .ns-rm-road { display: none; }
	.ns-rm-step .ns-rm-text { grid-area: text; order: 0 !important; }
	.ns-rm-step .ns-rm-photo { grid-area: photo; order: 0 !important; }
	.ns-rm-step .ns-rm-year { left: 37px !important; top: 26px; transform: translateX(-50%) !important; font-size: 15px; flex-direction: column; }
	.ns-rm-year i { width: 16px; height: 16px; }
	.ns-rm-text h3 { font-size: 19px !important; }
	.ns-rm-text p { text-align: left; font-size: 15px; }
	.ns-rm-photo img { max-height: 240px; border-radius: 16px; }
}
/* roadmap: bolder road, bigger sweeps, year sits on the peak of each bend */
@media (min-width: 861px) {
	.ns-rm-step { grid-template-columns: minmax(0, 1fr) 300px minmax(0, 1fr); min-height: 330px; }
	.ns-rm-track { min-height: 330px; }
	.ns-rm-road .o { stroke-width: 100px; } .ns-rm-road .w { stroke-width: 82px; } .ns-rm-road .i { stroke-width: 74px; }
	.ns-rm-step.is-right .ns-rm-year { left: 85%; } .ns-rm-step.is-left .ns-rm-year { left: 15%; }
	.ns-rm-year { font-size: 26px; }
}
@media (max-width: 860px) {
	.ns-rm-step, .ns-rm-step.is-left { padding-bottom: 0 !important; row-gap: 10px; }
	.ns-rm-step .ns-rm-photo { padding-bottom: 28px; }
	.ns-rm-step .ns-rm-photo:empty { padding-bottom: 18px; }
	.ns-rm-step .ns-rm-year { font-size: 13px; }
}

/* ---------- Original roadmap: magazine-style road + story on hover ---------- */
.wp-block-columns.ns-road { background-image: url("road-dashed.svg") !important; }
.ns-road > .wp-block-column.ns-has-more { position: relative; cursor: pointer; outline: none; }
.ns-road p.ns-road-more {
	position: absolute; z-index: 6; left: -18px; right: -18px; top: 0; margin: 0 !important;
	background: rgba(31, 61, 37, .96); color: #fff7e6 !important; font-size: 13.5px !important; line-height: 1.55; text-align: left;
	padding: 16px 18px !important; border-radius: 12px; box-shadow: 0 14px 30px rgba(0,0,0,.28);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .22s ease, transform .22s ease, visibility .22s;
}
.ns-road > .wp-block-column:nth-child(even) p.ns-road-more { top: 300px; }
.ns-road > .wp-block-column:first-child p.ns-road-more { left: 0; }
.ns-road > .wp-block-column.ns-has-more:hover p.ns-road-more,
.ns-road > .wp-block-column.ns-has-more:focus p.ns-road-more,
.ns-road > .wp-block-column.ns-has-more:focus-within p.ns-road-more { opacity: 1; visibility: visible; transform: none; }
.ns-road > .wp-block-column.ns-has-more .wp-block-image { transition: transform .2s ease; }
.ns-road > .wp-block-column.ns-has-more:hover .wp-block-image { transform: translateY(-3px) !important; }
.ns-road > .wp-block-column.ns-has-more h4::after { content: " ⓘ"; color: var(--saffron-deep); font-weight: 400; }

/* Client videos */
.wp-block-video.ns-video { max-width: 900px; margin: 26px auto 0 !important; }
.wp-block-video.ns-video video { width: 100%; border-radius: 12px; background: #000; box-shadow: 0 14px 32px rgba(0,0,0,.18); display: block; }
.wp-block-video.ns-video figcaption { text-align: center; font-size: 14px; color: var(--muted); margin-top: 10px; }
.wp-block-video.ns-video-portrait { max-width: 360px; }

/* ---------- Team cards: new hover — the card back slides up over the whole card ---------- */
.ns-team-row p.ns-bio-full { display: none !important; }
.ns-team-row > .wp-block-column.ns-has-bio { position: relative; overflow: hidden !important; }
.ns-card-back {
	position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; justify-content: center; gap: 8px;
	padding: 26px 22px; text-align: left; color: #fff7e6;
	background: linear-gradient(160deg, #1f5a35 0%, #163f26 60%, #12321c 100%);
	transform: translateY(101%); transition: transform .45s cubic-bezier(.2,.8,.2,1);
}
.ns-card-back::before { content: "\201C"; position: absolute; top: 4px; right: 16px; font-family: var(--serif); font-size: 90px; line-height: 1; color: rgba(255, 194, 52, .25); }
.ns-card-back strong { font-family: var(--serif); font-size: 21px; line-height: 1.2; color: #fff; }
.ns-card-back em { font-style: normal; font-family: var(--sans); font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #ffc234; padding-bottom: 10px; border-bottom: 2px solid rgba(255, 194, 52, .45); margin-bottom: 4px; }
.ns-card-back span { font-size: 14px; line-height: 1.6; color: #f4ead6; }
.ns-team-row > .wp-block-column.ns-has-bio:hover .ns-card-back,
.ns-team-row > .wp-block-column.ns-has-bio:focus-visible .ns-card-back,
.ns-team-row > .wp-block-column.ns-has-bio.is-open .ns-card-back { transform: translateY(0); }
.ns-team-row > .wp-block-column.ns-has-bio .wp-block-image img { transition: transform .6s ease; }
.ns-team-row > .wp-block-column.ns-has-bio:hover .wp-block-image img { transform: scale(1.06); }
.ns-team-row > .wp-block-column.ns-has-bio .ns-bio::after { content: " · Hover to read more"; }
@media (hover: none) { .ns-team-row > .wp-block-column.ns-has-bio .ns-bio::after { content: " · Tap to read more"; } }
@media (prefers-reduced-motion: reduce) { .ns-card-back { transition: none; } }
.ns-team-row > .wp-block-column.ns-has-bio { overflow: visible !important; }
.ns-card-back { transform: none !important; clip-path: inset(100% 0 0 0); transition: clip-path .45s cubic-bezier(.2,.8,.2,1); }
.ns-team-row > .wp-block-column.ns-has-bio:hover .ns-card-back,
.ns-team-row > .wp-block-column.ns-has-bio:focus-visible .ns-card-back,
.ns-team-row > .wp-block-column.ns-has-bio.is-open .ns-card-back { clip-path: inset(0 0 0 0); }
.ns-team-row > .wp-block-column.ns-has-bio .wp-block-image { overflow: hidden; }

/* ---------- Carousels (photo slider, testimonials) ---------- */
.ns-carousel { position: relative; display: flex; align-items: center; gap: 12px; margin-top: 26px; }
.ns-car-track { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; padding: 6px 2px 14px; flex: 1; min-width: 0; outline: none; }
.ns-car-track::-webkit-scrollbar { display: none; }
.ns-car-btn { flex: none; width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--marigold, #ffc234); color: #1d1a17; font-size: 20px; font-weight: 700; cursor: pointer; box-shadow: 0 6px 14px rgba(0,0,0,.15); transition: transform .15s, background .15s; }
.ns-car-btn:hover, .ns-car-btn:focus-visible { background: #2fa84f; color: #fff; transform: scale(1.06); }
.ns-slide-item { flex: 0 0 min(420px, 82%); margin: 0; scroll-snap-align: start; background: #fffaf0; border-radius: 12px; overflow: hidden; box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.ns-slide-item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ns-slide-item figcaption { padding: 10px 14px 12px; font-size: 14px; color: var(--muted); text-align: center; }
.ns-testi { flex: 0 0 min(520px, 86%); scroll-snap-align: start; margin: 0; background: #fffaf0; border-radius: 14px; padding: 30px 30px 24px; box-shadow: 0 10px 26px rgba(0,0,0,.1); border-top: 5px solid var(--saffron); position: relative; }
.ns-testi::before { content: "\201C"; position: absolute; top: 6px; left: 18px; font-family: var(--serif); font-size: 70px; line-height: 1; color: rgba(243, 139, 46, .35); }
.ns-testi p { margin: 18px 0 14px !important; font-family: var(--text); font-style: italic; font-size: 16px; line-height: 1.65; color: var(--ink) !important; }
.ns-testi cite { font-style: normal; font-family: var(--sans); font-weight: 700; color: var(--saffron-deep); letter-spacing: .04em; }
@media (max-width: 600px) { .ns-car-btn { width: 38px; height: 38px; font-size: 16px; } .ns-carousel { gap: 6px; } }

/* ---------- Year-wise timeline ---------- */
.ns-years { max-width: 1100px; margin: 26px auto 0; }
.ns-year-tabs { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; margin-bottom: 22px; }
.ns-year-tab { border: 2px solid var(--forest); background: #fffaf0; color: var(--forest); font-family: var(--serif); font-size: 24px; font-weight: 700; padding: 10px 28px; border-radius: 999px; cursor: pointer; transition: background .2s, color .2s, transform .2s; }
.ns-year-tab:hover, .ns-year-tab.is-active { background: var(--forest); color: #fff; transform: translateY(-2px); }
.ns-year-stage { position: relative; background: #fffaf0; border-radius: 16px; box-shadow: 0 14px 32px rgba(0,0,0,.12); overflow: hidden; }
.ns-year-panel { display: none; grid-template-columns: 1fr 1fr; min-height: 380px; animation: ns-year-in .35s ease; }
.ns-year-panel.is-active { display: grid; }
.ns-year-img img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 380px; }
.ns-year-copy { padding: 36px 40px 80px; }
.ns-year-copy span { font-family: var(--serif); font-size: 46px; font-weight: 700; color: var(--saffron-deep); line-height: 1; }
.ns-year-copy h3 { font-family: var(--serif); color: var(--forest) !important; font-size: 24px !important; margin: 10px 0 12px !important; }
.ns-year-copy p { font-size: 16px; line-height: 1.7; color: var(--ink) !important; margin: 0 !important; }
.ns-year-arrows { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; gap: 12px; z-index: 2; }
@keyframes ns-year-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (max-width: 760px) {
	.ns-year-panel.is-active { grid-template-columns: 1fr; }
	.ns-year-img img { min-height: 220px; max-height: 260px; }
	.ns-year-copy { padding: 22px 20px 78px; }
	.ns-year-copy span { font-size: 34px; }
	.ns-year-tab { font-size: 18px; padding: 8px 18px; }
}
@media (prefers-reduced-motion: reduce) { .ns-year-panel { animation: none; } }

/* ---------- Homepage round 2 ---------- */
.ns-about-home { align-items: center !important; gap: 40px !important; }
.wp-block-columns.ns-about-photos { gap: 14px !important; margin: 0 0 14px !important; flex-wrap: nowrap !important; }
.ns-about-photos .wp-block-image { margin: 0 !important; }
.ns-about-photos .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; box-shadow: 0 10px 22px rgba(0,0,0,.14); display: block; }
.ns-about-photos:first-child > .wp-block-column:first-child img { transform: rotate(-2deg); }
.ns-about-photos:last-child > .wp-block-column:last-child img { transform: rotate(2deg); }
.ns-mag-home { align-items: center !important; gap: 48px !important; }
.ns-mag-col-cover { flex: 0 0 340px !important; }
.ns-mag-cover img { width: 100%; border-radius: 6px; box-shadow: 18px 18px 0 rgba(31, 61, 37, .18), 0 18px 40px rgba(0,0,0,.25); transform: rotate(-2.5deg); transition: transform .4s ease; }
.ns-mag-cover:hover img { transform: rotate(0) scale(1.02); }
.ns-he-home { grid-template-columns: repeat(auto-fill, minmax(min(150px, 100%), 1fr)) !important; }
.ns-he-home .wp-block-heading { font-size: 14px !important; } .ns-he-home p.ns-score { font-size: 15px !important; } .ns-he-home p.ns-meta { font-size: 11.5px !important; }
@media (max-width: 860px) { .ns-mag-col-cover { flex-basis: 100% !important; max-width: 300px; margin: 0 auto; } .wp-block-columns.ns-about-photos { flex-wrap: nowrap !important; } .wp-block-columns.ns-about-photos > .wp-block-column { flex-basis: 50% !important; } }

/* ---------- Team cards: 3D flip (front = photo, back = bio) ---------- */
.ns-team-row > .wp-block-column.ns-flip { perspective: 1200px; }
.ns-flip-inner { position: relative; height: 100%; transform-style: preserve-3d; transition: transform .75s cubic-bezier(.3,.7,.2,1); }
.ns-flip-front { backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.ns-flip .ns-card-back { clip-path: none !important; transform: rotateY(180deg) !important; backface-visibility: hidden; -webkit-backface-visibility: hidden; transition: none !important; inset: 0; border-radius: 4px; }
.ns-team-row > .wp-block-column.ns-flip:hover .ns-flip-inner,
.ns-team-row > .wp-block-column.ns-flip:focus-visible .ns-flip-inner,
.ns-team-row > .wp-block-column.ns-flip.is-open .ns-flip-inner { transform: rotateY(180deg); }
.ns-team-row > .wp-block-column.ns-flip:hover .wp-block-image img { transform: none; }
@media (prefers-reduced-motion: reduce) { .ns-flip-inner { transition: none; } }

/* ---------- Gallery grid ---------- */
.ns-gallery-head { font-family: var(--serif); color: var(--forest) !important; font-size: 26px !important; margin: 46px 0 14px !important; padding-bottom: 8px; border-bottom: 3px solid var(--saffron); display: inline-block; }
.ns-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: 16px; }
.ns-grid figure { margin: 0; background: #fffaf0; border-radius: 10px; overflow: hidden; box-shadow: 0 8px 20px rgba(0,0,0,.1); }
.ns-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s ease; }
.ns-grid figure:hover img { transform: scale(1.05); }
.ns-grid figcaption { padding: 9px 12px 11px; font-size: 13.5px; color: var(--muted); line-height: 1.4; }
.ns-training-photos { margin-top: 30px !important; }
.ns-gallery-page .ns-gallery-head { display: block; }

/* Flip back: never hide the name — start at the top, compact text, gentle scroll only if a bio is very long */
.ns-flip .ns-card-back { justify-content: flex-start !important; overflow-y: auto; padding: 20px 18px !important; gap: 6px; scrollbar-width: thin; scrollbar-color: rgba(255,194,52,.6) transparent; }
.ns-flip .ns-card-back::-webkit-scrollbar { width: 5px; }
.ns-flip .ns-card-back::-webkit-scrollbar-thumb { background: rgba(255,194,52,.6); border-radius: 4px; }
.ns-flip .ns-card-back::before { font-size: 64px; top: 2px; right: 10px; }
.ns-flip .ns-card-back strong { font-size: 18px; padding-right: 34px; }
.ns-flip .ns-card-back em { font-size: 11px; padding-bottom: 8px; }
.ns-flip .ns-card-back span { font-size: 13px; line-height: 1.55; }

/* Quote cards size to their text (no tall empty box beside a tall image) */
.entry-content .wp-block-quote.is-style-ns-card { height: auto !important; }
.wp-block-column:has(> .wp-block-quote.is-style-ns-card) { align-self: center; }

/* Gallery: headings and grids share one centred, wide column */
.ns-gallery-page > * { max-width: 1180px !important; margin-left: auto !important; margin-right: auto !important; }
.ns-gallery-page > p.ns-sub { text-align: center; }
.ns-gallery-page .ns-gallery-head { display: flex !important; align-items: center; gap: 16px; border-bottom: 0 !important; padding: 0 !important; margin: 48px auto 18px !important; font-size: 26px !important; text-align: left; }
.ns-gallery-page .ns-gallery-head::after { content: ""; flex: 1; height: 3px; background: linear-gradient(90deg, var(--saffron), transparent); border-radius: 2px; }
.ns-gallery-page .ns-grid { grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); gap: 18px; }

/* Impact figures: horizontal cards, coloured icon badge, accent per card */
.ns-impact6 { gap: 20px !important; }
.ns-impact6 > .wp-block-column {
	display: grid !important; grid-template-columns: 74px 1fr; grid-template-rows: auto auto; column-gap: 18px; align-items: center;
	text-align: left !important; padding: 24px 24px !important; border-top: 0 !important; border-left: 6px solid var(--acc, var(--saffron));
	background: #fffaf0; border-radius: 14px; box-shadow: 0 10px 26px rgba(0,0,0,.08); transition: transform .25s ease, box-shadow .25s ease;
}
.ns-impact6 > .wp-block-column:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(0,0,0,.14); }
.ns-impact6 > .wp-block-column:nth-child(1) { --acc: #f38b2e; } .ns-impact6 > .wp-block-column:nth-child(2) { --acc: #1677c9; }
.ns-impact6 > .wp-block-column:nth-child(3) { --acc: #b9501a; } .ns-impact6 > .wp-block-column:nth-child(4) { --acc: #d6336c; }
.ns-impact6 > .wp-block-column:nth-child(5) { --acc: #5c2d82; } .ns-impact6 > .wp-block-column:nth-child(6) { --acc: #2fa84f; }
.ns-impact6 p.ns-impact-ico { grid-row: 1 / span 2; width: 74px; height: 74px; margin: 0 !important; display: flex; align-items: center; justify-content: center; font-size: 34px; border-radius: 50%; background: color-mix(in srgb, var(--acc) 14%, #fff); box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--acc) 35%, transparent); }
.ns-impact6 .wp-block-heading { font-size: 34px !important; line-height: 1.05; color: var(--acc) !important; margin: 0 !important; }
.ns-impact6 p:not(.ns-impact-ico) { margin: 4px 0 0 !important; font-size: 14.5px !important; color: var(--muted) !important; }
@media (max-width: 520px) { .ns-impact6 > .wp-block-column { grid-template-columns: 58px 1fr; padding: 18px !important; } .ns-impact6 p.ns-impact-ico { width: 58px; height: 58px; font-size: 26px; } .ns-impact6 .wp-block-heading { font-size: 28px !important; } }

/* Impact figures — site style: torn paper card + tape, marigold icon, number on one line */
.ns-impact6 { gap: 34px 26px !important; padding-top: 22px; }
.entry-content .ns-impact6 > .wp-block-column,
.ns-impact6 > .wp-block-column {
	display: flex !important; flex-direction: column; align-items: center; text-align: center !important; position: relative; overflow: visible !important;
	padding: 30px 20px 24px !important; border-radius: 0 !important; box-shadow: none !important; transform: none;
	border: 18px solid transparent !important; background: #fffaf0 padding-box !important; border-image: url("paper-frame.svg") 40 / 18px stretch !important;
	transition: transform .25s ease;
}
.ns-impact6 > .wp-block-column::before {
	content: ""; position: absolute; top: -30px; left: 50%; width: 86px; height: 24px; margin-left: -43px;
	background: rgba(255, 214, 120, .85); transform: rotate(-3deg);
	clip-path: polygon(3% 0, 97% 4%, 100% 30%, 96% 55%, 100% 100%, 4% 96%, 0 66%, 4% 40%);
}
.ns-impact6 > .wp-block-column:nth-child(even)::before { background: rgba(140, 210, 120, .85); transform: rotate(3deg); }
.ns-impact6 > .wp-block-column:hover { transform: translateY(-5px) rotate(-.4deg); box-shadow: none !important; }
.ns-impact6 p.ns-impact-ico {
	grid-row: auto; width: 76px; height: 76px; margin: 0 0 12px !important; display: flex; align-items: center; justify-content: center;
	font-size: 36px; border-radius: 50%; background: #ffe7b3; box-shadow: 0 0 0 6px #fff3d6, 0 6px 14px rgba(0,0,0,.12);
}
.ns-impact6 .wp-block-heading { white-space: nowrap; font-family: var(--serif); font-size: clamp(26px, 2.6vw, 36px) !important; line-height: 1.1; color: var(--saffron-deep) !important; margin: 0 !important; }
.ns-impact6 > .wp-block-column:nth-child(2) .wp-block-heading { color: #1677c9 !important; }
.ns-impact6 > .wp-block-column:nth-child(4) .wp-block-heading { color: #c2255c !important; }
.ns-impact6 > .wp-block-column:nth-child(6) .wp-block-heading { color: #1f7a3a !important; }
.ns-impact6 p:not(.ns-impact-ico) { margin: 8px 0 0 !important; font-size: 15px !important; line-height: 1.45; color: var(--muted) !important; max-width: 260px; }
@media (max-width: 520px) { .ns-impact6 { gap: 40px !important; } .ns-impact6 .wp-block-heading { font-size: 30px !important; } }

/* Roadmap story: sits beside the photo, never over it */
.ns-road p.ns-road-more { left: calc(50% + 88px) !important; right: auto !important; top: 0 !important; width: 270px; transform: translateX(-6px); }
.ns-road > .wp-block-column:nth-child(even) p.ns-road-more { top: 420px !important; }
.ns-road > .wp-block-column:nth-last-child(-n+2) p.ns-road-more { left: auto !important; right: calc(50% + 88px) !important; transform: translateX(6px); }
.ns-road > .wp-block-column.ns-has-more:hover p.ns-road-more,
.ns-road > .wp-block-column.ns-has-more:focus p.ns-road-more,
.ns-road > .wp-block-column.ns-has-more:focus-within p.ns-road-more { transform: none; }
.ns-road > .wp-block-column.ns-has-more:hover { z-index: 5; position: relative; }
.ns-road p.ns-road-more::before { content: ""; position: absolute; top: 40px; left: -8px; width: 16px; height: 16px; background: inherit; transform: rotate(45deg); }
.ns-road > .wp-block-column:nth-last-child(-n+2) p.ns-road-more::before { left: auto; right: -8px; }
@media (max-width: 781px) { .ns-road p.ns-road-more { width: 220px; } }

/* Roadmap arrows centred under the road */
.ns-journey .ns-arrows { justify-content: center; margin-left: auto; margin-right: auto; }

/* Gift cards (Donate + homepage Sponsor a student): centred row of three equal cards */
.ns-helpzone > .wp-block-columns.ns-give { justify-content: center !important; align-items: stretch !important; gap: 26px !important; padding: 10px 0 26px !important; margin-left: auto !important; margin-right: auto !important; overflow: visible; }
.ns-helpzone > .wp-block-columns.ns-give > .wp-block-column,
.ns-helpzone > .wp-block-columns.ns-give > .wp-block-column:first-child,
.ns-helpzone > .wp-block-columns.ns-give > .wp-block-column:last-child { flex: 0 1 340px !important; margin-right: 0 !important; display: flex; flex-direction: column; }
.ns-helpzone > .wp-block-columns.ns-give > .wp-block-column > .wp-block-buttons { margin-top: auto; justify-content: center; }
@media (max-width: 900px) { .ns-helpzone > .wp-block-columns.ns-give { flex-wrap: wrap !important; } .ns-helpzone > .wp-block-columns.ns-give > .wp-block-column { flex: 1 1 280px !important; max-width: 420px; } }

.ns-helpzone .ns-give .wp-block-image img { aspect-ratio: 4 / 3 !important; height: auto !important; width: 100% !important; object-fit: cover; }

/* Testimonials: same torn-paper card + tape as the team cards */
.ns-testi-slider .ns-car-track { padding-top: 36px; padding-bottom: 18px; align-items: stretch; }
.ns-testi {
	position: relative; overflow: visible !important; border-radius: 0 !important; box-shadow: none !important;
	border: 18px solid transparent !important; background: #fffaf0 padding-box !important; border-image: url("paper-frame.svg") 40 / 18px stretch !important;
	padding: 26px 26px 20px !important;
}
.ns-testi::after {
	content: ""; position: absolute; z-index: 3; top: -30px; left: 50%; width: 86px; height: 24px; margin-left: -43px;
	background: rgba(255, 214, 120, .85); transform: rotate(-3deg);
	clip-path: polygon(3% 0, 97% 4%, 100% 30%, 96% 55%, 100% 100%, 4% 96%, 0 66%, 4% 40%);
}
.ns-testi:nth-child(even)::after { background: rgba(140, 210, 120, .85); transform: rotate(3deg); }
.ns-testi::before { top: 10px; left: 14px; }

/* Our Work cards: torn-paper frame + tape like the team cards */
.ns-work-row { padding-top: 36px !important; padding-bottom: 14px !important; }
.ns-work-row > .wp-block-column {
	position: relative; overflow: visible !important;
	border: 18px solid transparent !important; background: #fffaf0 padding-box !important; border-image: url("paper-frame.svg") 40 / 18px stretch !important;
	padding: 0 !important;
}
.ns-work-row > .wp-block-column::after {
	content: ""; position: absolute; z-index: 3; top: -30px; left: 50%; width: 86px; height: 24px; margin-left: -43px;
	background: rgba(255, 214, 120, .9); transform: rotate(-3deg);
	clip-path: polygon(3% 0, 97% 4%, 100% 30%, 96% 55%, 100% 100%, 4% 96%, 0 66%, 4% 40%);
}
.ns-work-row > .wp-block-column:nth-child(even)::after { background: rgba(140, 210, 120, .9); transform: rotate(3deg); }
.wp-block-cover.ns-work-card { border-radius: 0 !important; margin: 0 !important; }
.ns-work .ns-arrows { justify-content: center; }

/* Magazine text without image: centred, readable width */
.ns-mag-text { max-width: 820px; margin-left: auto !important; margin-right: auto !important; text-align: center; }
.ns-mag-text .wp-block-buttons { justify-content: center; }
.ns-mag-text ul { display: inline-block; text-align: left; }
.ns-mag-text p.ns-eyebrow { margin-left: auto !important; margin-right: auto !important; }

/* Quote cards: draw the torn-paper edge in one piece (repeat tiling left a ghost edge at some widths) */
.entry-content .wp-block-quote.is-style-ns-card { border-image-repeat: stretch !important; }

/* All torn-paper cards: draw the edge in one piece (tiling left a ghost inner edge at some widths/zoom levels) */
.entry-content .wp-block-columns.ns-team-row > .wp-block-column,
.entry-content .wp-block-columns.ns-help > .wp-block-column,
.entry-content .wp-block-column.is-style-ns-stat,
.entry-content .wp-block-column.is-style-ns-card,
.entry-content .wp-block-group.is-style-ns-card,
.entry-content .ns-proud .ns-counts .wp-block-column,
.entry-content .wp-block-quote.is-style-ns-card,
.ns-impact6 > .wp-block-column, .ns-work-row > .wp-block-column, .ns-testi { border-image-repeat: stretch !important; }
.ns-stagger .wp-block-image, .ns-orbit-photo .wp-block-image, .ns-smear .wp-block-image, .ns-tiles .wp-block-image, .ns-road .wp-block-image, .ns-help .wp-block-image,
.entry-content .wp-block-gallery .wp-block-image, .entry-content > .wp-block-group .wp-block-columns > .wp-block-column > .wp-block-image,
.entry-content .wp-block-latest-posts li, .ns-ssc-tiles > .wp-block-column, .ns-ssc, .entry-content .wp-block-table, .entry-content .ns-form { border-image-repeat: stretch !important; }

/* ---------- Samarkan: brand name, roadmap title, magazine name, project banner titles ---------- */
@font-face {
  font-family: 'Samarkan';
  src: url('../fonts/Samarkan.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
.ns-smk { font-family: 'Samarkan', var(--serif), serif !important; font-weight: normal !important; font-style: normal !important; letter-spacing: .02em; text-transform: none !important; }
.site-title .ns-smk { font-size: 1.32em; color: var(--saffron-deep); line-height: 1; }
.ns-footer-brand .ns-smk { font-size: 1.3em; color: #ffc234; }
h2 .ns-smk { font-size: 1.05em; color: var(--saffron-deep); }
.wp-block-cover h1.ns-smk-title { font-family: 'Samarkan', var(--serif), serif !important; font-weight: normal !important; text-transform: none !important; letter-spacing: .03em; line-height: 1.2; font-size: clamp(40px, 6vw, 74px) !important; }
@media (max-width: 600px) { .site-title .ns-smk { font-size: 1.2em; } }
h1 .ns-smk { color: var(--saffron-deep); font-size: 1.05em; }
/* Samarkan on whole short headings */
.ns-smk-h { font-family: 'Samarkan', var(--serif), serif !important; font-weight: normal !important; font-style: normal !important; letter-spacing: .03em; text-transform: none !important; line-height: 1.25 !important; }
h3.ns-smk-h { font-size: 34px !important; color: var(--saffron-deep) !important; }
.ns-work h2.ns-smk-h, .wp-block-cover h2.ns-smk-h { font-size: clamp(38px, 4.6vw, 60px) !important; }

/* Coloured accent words in headings (.ns-script) now use Samarkan */
.ns-script, h1 .ns-script, h2 .ns-script, h3 .ns-script { font-family: 'Samarkan', var(--serif), serif !important; font-weight: normal !important; font-style: normal !important; letter-spacing: .02em; text-transform: none !important; }

/* Menu in Samarkan — only on the sample page /home-samarkan-menu/ (body class ns-menu-samarkan) */
body.ns-menu-samarkan .header-menu-1 .ct-menu-link, body.ns-menu-samarkan .header-menu-1 .ct-menu-link span, body.ns-menu-samarkan #offcanvas .ct-menu-link, body.ns-menu-samarkan .mobile-menu .ct-menu-link { font-family: 'Samarkan', var(--sans), sans-serif !important; font-weight: normal !important; font-size: 17px !important; letter-spacing: 0 !important; text-transform: none !important; }
body.ns-menu-samarkan .header-menu-1 .sub-menu .ct-menu-link { font-size: 16px !important; }
body.ns-menu-samarkan .header-menu-1 > ul > li > .ct-menu-link { padding-left: 11px !important; padding-right: 11px !important; }
/* END menu sample */

/* Video banners */
.is-style-ns-banner .wp-block-cover__video-background { object-fit: cover; width: 100%; height: 100%; }

/* Abacus banner (magazine page 38) */
.wp-block-cover.ns-abacus-cover { border-radius: 14px; overflow: hidden; margin: 0 0 30px !important; align-items: flex-end; padding: 28px 32px !important; }
.ns-abacus-cover .wp-block-cover__background { background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.7)) !important; opacity: 1 !important; }
.ns-abacus-cover h2 { color: #fff !important; font-size: clamp(34px, 4.5vw, 56px) !important; margin: 0 !important; }
.ns-abacus-cover p { color: #fff7e6 !important; margin: 4px 0 0 !important; letter-spacing: .06em; text-transform: uppercase; font-size: 13px; }
.wp-block-cover.ns-abacus-cover { width: 100% !important; max-width: 1180px !important; margin-left: auto !important; margin-right: auto !important; }

/* Abacus intro: framed magazine photo + title */
.wp-block-columns.ns-abacus-split { align-items: center !important; gap: 46px !important; margin-bottom: 34px !important; }
.ns-abacus-photo-col { flex: 0 0 42% !important; }
.ns-abacus-photo-col .wp-block-image { transform: rotate(-2.5deg) !important; }
.ns-abacus-photo-col .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.ns-abacus-title-col h2 { font-size: clamp(36px, 4vw, 54px) !important; line-height: 1.1 !important; margin: 6px 0 10px !important; }
.ns-abacus-title-col p.ns-abacus-sub { font-family: var(--sans); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 14px; color: var(--forest) !important; }
@media (max-width: 781px) { .ns-abacus-photo-col { flex-basis: 100% !important; } }

/* Partner logo on the Apasarjanam card */
.ns-partner .wp-block-image.ns-partner-logo { border: 0 !important; border-image: none !important; background: none !important; padding: 18px 0 6px !important; transform: none !important; box-shadow: none !important; }
.ns-partner .wp-block-image.ns-partner-logo::before { display: none !important; }
.ns-partner .ns-partner-logo img { width: auto !important; max-width: 220px; max-height: 160px; height: auto !important; aspect-ratio: auto !important; object-fit: contain !important; margin: 0 auto; display: block; }

/* Our core initiatives (magazine page 29) */
.wp-block-columns.ns-core-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px !important; }
.ns-core-card .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.ns-core-card h3 { font-family: var(--serif); font-size: 20px !important; color: var(--forest) !important; text-align: center; margin: 14px 10px 6px !important; line-height: 1.35; }
@media (max-width: 700px) { .wp-block-columns.ns-core-grid { grid-template-columns: 1fr; } }

/* Donate heart: Blocksy uses the button's ::before for a blurred hover shadow (blur, opacity 0, absolute) on mouse devices,
   which blurred the heart away on desktops. Reset all of it so the heart always shows. */
.ct-header .ct-button::before,
.is-style-ns-donate .wp-block-button__link::before {
	display: inline-block !important; position: static !important; inset: auto !important; z-index: auto !important;
	width: auto !important; height: auto !important; background: none !important; border-radius: 0 !important;
	opacity: 1 !important; filter: none !important; transform: none !important; transition: none !important;
}

/* Playfair Display draws old-style figures by default, so "80G" looked like "8oG". Use full-height figures everywhere. */
body, h1, h2, h3, h4, h5, h6, .ct-header, .ct-footer { font-variant-numeric: lining-nums; }

/* Home impact section: Shiksha, Jal, Shala, Swasthya, Ganit, Vriksha in Samarkan */
h3 .ns-smk { font-size: 1.3em; letter-spacing: .03em; line-height: 1; }

/* Results hero: group photo (landscape) instead of the cartoon */
.ns-results-hero .ns-brush.ns-results-photo img { aspect-ratio: 4 / 5 !important; object-fit: cover; object-position: 50% 30%; width: 100%; max-width: 460px; max-height: none !important; margin: 0 auto; display: block; }
.ns-results-hero .ns-brush.ns-results-photo { transform: none !important; }
.ns-results-hero .ns-brush.ns-results-photo img { border: 0 !important; box-shadow: none !important; border-radius: 0 !important; clip-path: none !important; aspect-ratio: 1 / 1.05 !important; max-width: none !important; object-position: 50% 35%; filter: saturate(1.1) contrast(1.04);
	-webkit-mask: url("splash-mask.svg") center / 100% 100% no-repeat !important; mask: url("splash-mask.svg") center / 100% 100% no-repeat !important; }
.ns-results-hero .ns-results-splash { max-width: 500px; margin: 0 auto !important; }

/* We Teach page: back-to-back sections with the same background had a double gap (84px + 84px). Keep a single gap. */
body.page-id-38 .entry-content > .alignfull.wp-block-group.is-style-ns-paper:has(+ .alignfull.wp-block-group.is-style-ns-paper):not(.ns-x),
body.page-id-38 .entry-content > .alignfull.wp-block-group.is-style-ns-cream:has(+ .alignfull.wp-block-group.is-style-ns-cream):not(.ns-x) { padding-bottom: 56px !important; }
body.page-id-38 .entry-content > .alignfull.wp-block-group.is-style-ns-paper + .alignfull.wp-block-group.is-style-ns-paper:not(.ns-x),
body.page-id-38 .entry-content > .alignfull.wp-block-group.is-style-ns-cream + .alignfull.wp-block-group.is-style-ns-cream:not(.ns-x) { padding-top: 64px !important; }

/* We Teach "Program overview" section: text left-aligned, paper label centred */
.wp-block-group.ns-overview-left > p.ns-eyebrow { margin-left: auto !important; margin-right: auto !important; }
.wp-block-image.ns-overview-photo { display: table; margin: 34px auto 0 !important; padding: 12px !important; background: #fffaf0 !important; box-shadow: 0 12px 28px rgba(58, 34, 18, .22) !important; transform: rotate(-1deg); max-width: 820px; }
.wp-block-image.ns-overview-photo img { display: block; width: 100%; height: auto; max-height: 620px; object-fit: cover; }

/* Stats strip followed by a paper section (e.g. Rural Health Outreach): single gap instead of 112px + 112px */
.entry-content > .alignfull.wp-block-group.ns-stats:has(+ .alignfull.wp-block-group.is-style-ns-paper):not(.ns-x) { padding-bottom: 56px !important; }
.entry-content > .alignfull.wp-block-group.ns-stats + .alignfull.wp-block-group.is-style-ns-paper:not(.ns-x):not(.ns-y) { padding-top: 64px !important; }

/* News posts (e.g. A morning at IIT Bombay): video and photo rows in one centred 900px column, even spacing */
body.single-post .entry-content > .wp-block-columns { max-width: 900px !important; margin: 18px auto 0 !important; gap: 18px !important; }
body.single-post .entry-content > .wp-block-video.ns-video + .wp-block-columns { margin-top: 30px !important; }
body.single-post .entry-content > .wp-block-columns .wp-block-image { margin: 0 !important; }
body.single-post .entry-content > .wp-block-columns .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: 6px; }
body.single-post .entry-content > .wp-block-buttons { justify-content: center; margin-top: 34px !important; }
body.single-post .entry-content > .wp-block-buttons:last-child { margin-bottom: 0 !important; }
body.single-post .entry-content { margin-bottom: 0 !important; padding-bottom: 0 !important; }
body.single-post .ct-comments-container > div { padding-top: 36px !important; }
body.single-post .hero-section[data-type="type-1"] { margin-bottom: 22px !important; --margin-bottom: 22px; }
body.single-post .ct-container-full[data-vertical-spacing*="bottom"] { padding-bottom: 28px !important; }
body.single-post .ct-container-full[data-vertical-spacing*="top"] { padding-top: 48px !important; }

/* Banners (cover blocks): no Samarkan. Headings go back to the standard banner style (bold sans, uppercase). */
.wp-block-cover h1.ns-smk-title, .wp-block-cover h1.ns-smk-h, .wp-block-cover h2.ns-smk-h {
	font-family: var(--sans) !important; font-weight: 800 !important; font-style: normal !important; text-transform: uppercase !important;
	letter-spacing: .01em !important; line-height: 1.05 !important; font-size: clamp(32px, 4.2vw, 58px) !important;
}

/* Posts: one column width for title, text, video, photos and comments (no side gaps) */
body.single-post { --theme-narrow-container-max-width: 900px; }
body.single-post .ct-container-full[data-content="narrow"] > article, body.single-post .ct-container-narrow { max-width: 900px !important; width: 100%; margin-left: auto !important; margin-right: auto !important; }
body.single-post .hero-section.is-width-constrained { max-width: 900px !important; margin-left: auto !important; margin-right: auto !important; }
body.single-post .ns-post-grid > .wp-block-image::before, body.single-post .ns-post-grid > .wp-block-image::after { display: none !important; }
body.single-post .ns-post-grid > .wp-block-image { border: 0 !important; padding: 0 !important; transform: none !important; box-shadow: none !important; background: none !important; }
body.single-post .entry-content > * { max-width: 900px !important; margin-left: auto !important; margin-right: auto !important; }
body.single-post .entry-content > .wp-block-video.ns-video { max-width: 900px !important; }
/* Photo grids on posts */
body.single-post .entry-content > .ns-post-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 22px !important; padding: 0 !important; }
body.single-post .ns-post-grid > .wp-block-image { margin: 0 !important; max-width: none !important; }
body.single-post .ns-post-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: 6px; }
body.single-post .entry-content > h3.ns-post-sub { margin-top: 40px !important; font-size: 26px; color: var(--forest); }
@media (max-width: 700px) { body.single-post .entry-content > .ns-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }

/* "Results that make us proud": group photo in the paint-splash frame (same as the Results page hero) */
.ns-proud .ns-proud-splash { position: relative; isolation: isolate; max-width: 440px; margin: 0 auto !important; }
.ns-proud .ns-proud-splash::before { content: ""; display: block !important; position: absolute; z-index: -1; inset: -4% -10% -16% -14%; background: url("paint-splash.svg") center / 100% 100% no-repeat !important; }
.ns-proud .ns-proud-splash .ns-results-photo { margin: 0 !important; border: 0 !important; padding: 0 !important; transform: none !important; box-shadow: none !important; }
.ns-proud .ns-proud-splash .ns-results-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1.05 !important; object-fit: cover; object-position: 50% 35%; border: 0 !important; border-radius: 0 !important;
	-webkit-mask: url("splash-mask.svg") center / 100% 100% no-repeat !important; mask: url("splash-mask.svg") center / 100% 100% no-repeat !important; }
.ns-proud .ns-proud-splash .ns-results-photo, .ns-proud .ns-proud-splash .ns-results-photo img { clip-path: none !important; opacity: 1 !important; visibility: visible !important; filter: none !important; animation: none !important; background: none !important; }
.ns-proud .ns-proud-splash .ns-results-photo::before, .ns-proud .ns-proud-splash .ns-results-photo::after { display: none !important; }

/* ===== Site-wide: tighter section spacing (was 112px top + bottom on every band) ===== */
body .entry-content > .alignfull.wp-block-group:not(.ns-ticker):not(.ns-slides):not(.ns-home-hero):not(.ns-x) { padding-top: 76px !important; padding-bottom: 76px !important; }
body .entry-content > .alignfull.wp-block-cover:not(.ns-slide):not(.ns-x) { padding-top: 80px !important; padding-bottom: 80px !important; }
body .entry-content > .alignfull.is-style-ns-banner:first-child:not(.ns-x) { padding-top: 72px !important; padding-bottom: 88px !important; }
/* two bands with the same background next to each other: one gap, not two */
body .entry-content > .alignfull.wp-block-group.is-style-ns-paper:has(+ .alignfull.wp-block-group.is-style-ns-paper):not(.ns-x):not(.ns-y),
body .entry-content > .alignfull.wp-block-group.is-style-ns-cream:has(+ .alignfull.wp-block-group.is-style-ns-cream):not(.ns-x):not(.ns-y),
body .entry-content > .alignfull.wp-block-group:not([class*="is-style"]):has(+ .alignfull.wp-block-group:not([class*="is-style"])):not(.ns-x):not(.ns-y) { padding-bottom: 28px !important; }
body .entry-content > .alignfull.wp-block-group.is-style-ns-paper + .alignfull.wp-block-group.is-style-ns-paper:not(.ns-x):not(.ns-y),
body .entry-content > .alignfull.wp-block-group.is-style-ns-cream + .alignfull.wp-block-group.is-style-ns-cream:not(.ns-x):not(.ns-y) { padding-top: 48px !important; margin-top: 0 !important; }
@media (max-width: 760px) {
	body .entry-content > .alignfull.wp-block-group:not(.ns-ticker):not(.ns-slides):not(.ns-home-hero):not(.ns-x),
	body .entry-content > .alignfull.wp-block-cover:not(.ns-slide):not(.ns-x) { padding-top: 54px !important; padding-bottom: 54px !important; }
	body .entry-content > .alignfull.wp-block-group.is-style-ns-paper + .alignfull.wp-block-group.is-style-ns-paper:not(.ns-x):not(.ns-y),
	body .entry-content > .alignfull.wp-block-group.is-style-ns-cream + .alignfull.wp-block-group.is-style-ns-cream:not(.ns-x):not(.ns-y) { padding-top: 36px !important; }
}
/* inside sections: smaller jumps between an intro paragraph and the block under it */
.wp-block-group > p:not(.ns-eyebrow) + .wp-block-group, .wp-block-group > p:not(.ns-eyebrow) + .wp-block-columns { margin-top: 28px !important; }
