/*
 * Dhaka Interpreters — theme stylesheet.
 *
 * Concept: "the line between". Bangla letters hang from a continuous top
 * stroke, the matra (মাত্রা). An interpreter is that line between two
 * languages, so headings here hang from a vermilion rule, and every section
 * is labelled in Bangla and English as equals. The rest is editorial:
 * newsprint, ink, datelines, bylines and photo credits, the way the
 * journalists who hire us work.
 *
 * Colours come from GeneratePress global colours set by the theme
 * (var(--ink), var(--vermilion), …). Pages are built with GenerateBlocks
 * using the di-* classes below.
 */

/* Tokens --------------------------------------------------------------- */

:root {
	--di-serif: "Newsreader", "Iowan Old Style", "Georgia", serif;
	--di-sans: "Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--di-bangla: "Tiro Bangla", "Noto Serif Bengali", "Noto Sans Bengali", serif;
	--di-gutter: clamp(20px, 4vw, 56px);
	--di-container: 1320px;
	--di-radius: 3px;
	--di-header-h: 76px;
	--di-matra: 3px;
}

/*
 * Other scripts. The Latin faces are subset to Latin, so Bangla, Chinese and
 * Arabic text falls through to the next family in each stack.
 */
html[lang="bn"] {
	--di-serif: "Newsreader", "Tiro Bangla", "Noto Serif Bengali", serif;
	--di-sans: "Schibsted Grotesk", "Tiro Bangla", "Noto Sans Bengali", sans-serif;
}

html[lang^="zh"] {
	--di-serif: "Newsreader", "Noto Serif SC", "Songti SC", "SimSun", serif;
	--di-sans: "Schibsted Grotesk", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
}

html[lang="ar"] {
	--di-serif: "Newsreader", "Noto Naskh Arabic", "Geeza Pro", "Times New Roman", serif;
	--di-sans: "Schibsted Grotesk", "Noto Sans Arabic", "Geeza Pro", "Segoe UI", sans-serif;
}

/* These scripts have no italics and break apart when letter-spaced. */
html[lang="bn"] em,
html[lang^="zh"] em,
html[lang="ar"] em {
	font-style: normal;
}

html[lang="ar"] *,
html[lang^="zh"] * {
	letter-spacing: 0 !important;
}

/* Phone numbers read left to right, also inside Arabic text. */
a[href^="tel:"],
.di-btn__extra {
	direction: ltr;
	unicode-bidi: isolate;
}

/* Arrows point the way the text reads. */
[dir="rtl"] .di-arrow {
	transform: scaleX(-1);
}

[dir="rtl"] a.di-entry:hover .di-arrow,
[dir="rtl"] a.di-entry:focus .di-arrow {
	transform: scaleX(-1) translateX(6px);
}

/* Base ----------------------------------------------------------------- */

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--di-header-h) + 16px);
}

body {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--di-sans);
	font-size: 18px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--di-serif);
	color: var(--ink);
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1.08;
}

a {
	color: var(--ink);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

a:hover,
a:focus {
	color: var(--vermilion-dark);
}

:focus-visible {
	outline: 3px solid var(--vermilion);
	outline-offset: 3px;
}

::selection {
	background: var(--vermilion);
	color: var(--white);
}

/* Bangla inside other text; whole Bangla pages set the font stacks below. */
:not(html)[lang="bn"],
.di-bn {
	font-family: var(--di-bangla);
	letter-spacing: 0;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* GeneratePress layout for block-built pages --------------------------- */

.di-blocks .site-content,
.di-blocks .inside-article,
.di-blocks .site-main,
.di-blocks .entry-content {
	padding: 0;
	margin: 0;
}

.di-blocks .site.grid-container,
.di-blocks .container.grid-container,
.di-blocks .site-content {
	max-width: none;
}

.di-blocks .inside-article,
.di-blocks .content-area {
	background: transparent;
}

.di-blocks .entry-content > *,
.di-blocks .site-main > article {
	margin-block: 0;
}

/* Layout --------------------------------------------------------------- */

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

.di-section {
	padding-block: clamp(56px, 7vw, 112px);
}

.di-section--tight {
	padding-block: clamp(40px, 5vw, 72px);
}

.di-section--white {
	background: var(--white);
}

.di-section--sand {
	background: var(--sand);
}

.di-section--flush-top {
	padding-top: 0;
}

/* 12-column editorial grid; children set their span. */
.di-cols {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(24px, 3vw, 48px);
}

.di-span-3 { grid-column: span 3; }
.di-span-4 { grid-column: span 4; }
.di-span-5 { grid-column: span 5; }
.di-span-6 { grid-column: span 6; }
.di-span-7 { grid-column: span 7; }
.di-span-8 { grid-column: span 8; }
.di-span-9 { grid-column: span 9; }
.di-span-12 { grid-column: 1 / -1; }

@media (max-width: 1024px) {
	.di-span-3,
	.di-span-4,
	.di-span-5,
	.di-span-7,
	.di-span-8,
	.di-span-9 { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
	.di-span-6 { grid-column: 1 / -1; }
}

.di-grid-2,
.di-grid-3 {
	display: grid;
	gap: 0 clamp(24px, 3vw, 48px);
}

.di-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.di-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 1024px) {
	.di-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.di-grid-2,
	.di-grid-3 { grid-template-columns: minmax(0, 1fr); }
}

.di-align-end {
	align-items: end;
}

.di-stack > :not(:first-child) {
	margin-top: 20px;
}

/* Type ----------------------------------------------------------------- */

.di-display {
	margin: 0;
	font-family: var(--di-serif);
	font-size: clamp(56px, 9.5vw, 148px);
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

.di-display em,
.di-h1 em,
.di-h2 em {
	color: var(--vermilion);
}

.di-h1 {
	margin: 0;
	font-family: var(--di-serif);
	font-size: clamp(44px, 6.5vw, 96px);
	font-weight: 400;
	line-height: 0.98;
	letter-spacing: -0.03em;
	max-width: 18ch;
	text-wrap: balance;
}

.di-h2 {
	margin: 0;
	font-family: var(--di-serif);
	font-size: clamp(34px, 4.4vw, 64px);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -0.025em;
	max-width: 20ch;
	text-wrap: balance;
}

.di-h3 {
	margin: 0;
	font-family: var(--di-serif);
	font-size: clamp(24px, 2.2vw, 32px);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.015em;
}

.di-lead {
	margin: 0;
	max-width: 58ch;
	font-size: clamp(19px, 1.5vw, 22px);
	line-height: 1.55;
}

.di-text {
	margin: 0;
	max-width: 62ch;
	font-size: 17px;
	line-height: 1.65;
	color: var(--muted);
}

/* Small caps label: datelines, kickers, captions. */
.di-label,
.di-dateline {
	margin: 0;
	font-family: var(--di-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ink);
}

.di-dateline {
	color: var(--vermilion-dark);
}

.di-muted {
	color: var(--muted);
}

/* Live status dot. */
.di-live::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-inline-end: 10px;
	border-radius: 50%;
	background: var(--vermilion);
	vertical-align: 1px;
	animation: di-pulse 2.4s ease-out infinite;
}

@keyframes di-pulse {
	0% { box-shadow: 0 0 0 0 rgba(196, 54, 28, 0.45); }
	70%, 100% { box-shadow: 0 0 0 10px rgba(196, 54, 28, 0); }
}

/* Section head: bilingual kicker beside the heading, under a rule. */
.di-head {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
	gap: 16px clamp(24px, 3vw, 48px);
	margin-bottom: clamp(40px, 5vw, 72px);
	padding-top: 20px;
	border-top: 1px solid var(--ink);
	position: relative;
}

.di-head::before {
	content: "";
	position: absolute;
	top: -2px;
	inset-inline-start: 0;
	width: 72px;
	height: var(--di-matra);
	background: var(--vermilion);
}


.di-head__body > * + * {
	margin-top: 20px;
}

/* In a narrow column the kicker sits above the heading. */
[class*="di-span-"] > .di-head {
	grid-template-columns: minmax(0, 1fr);
}

@media (max-width: 767px) {
	.di-head { grid-template-columns: minmax(0, 1fr); }
}

/* Buttons -------------------------------------------------------------- */

.di-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
}

.di-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	min-height: 54px;
	padding: 0 26px;
	border: 1.5px solid transparent;
	border-radius: var(--di-radius);
	font-family: var(--di-sans);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.di-btn:hover,
.di-btn:focus {
	text-decoration: none;
}

.di-btn--primary {
	background: var(--vermilion);
	color: var(--white);
}

.di-btn--primary:hover,
.di-btn--primary:focus {
	background: var(--vermilion-dark);
	color: var(--white);
}

.di-btn--ink {
	background: var(--ink);
	color: var(--white);
}

.di-btn--ink:hover,
.di-btn--ink:focus {
	background: #3b362d;
	color: var(--white);
}

.di-btn--outline {
	border-color: var(--ink);
	background: transparent;
	color: var(--ink);
}

.di-btn--outline:hover,
.di-btn--outline:focus {
	background: var(--ink);
	color: var(--white);
}

.di-link {
	font-weight: 700;
	color: var(--ink);
	text-decoration: underline;
	text-decoration-color: var(--vermilion);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}

.di-link:hover,
.di-link:focus {
	color: var(--vermilion-dark);
}

/* Hero ----------------------------------------------------------------- */

.di-hero {
	padding-block: clamp(48px, 7vw, 104px) clamp(48px, 6vw, 88px);
}

.di-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	margin: 0 0 clamp(24px, 3vw, 40px);
	padding: 0;
	list-style: none;
}

.di-hero__meta > li {
	margin: 0;
}

.di-hero__aside {
	align-self: end;
}

.di-hero__aside > :not(:first-child) {
	margin-top: 20px;
}

/* Languages in the hero: each in its own script, with its English name. */
.di-langlist ul {
	margin: 12px 0 20px;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--ink);
}

.di-langlist li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin: 0;
	padding: 10px 0;
	border-bottom: 1px solid var(--rule);
}

.di-langlist__native {
	font-family: var(--di-serif);
	font-size: clamp(24px, 2.2vw, 30px);
	line-height: 1.2;
}

.di-langlist__native[lang="bn"] {
	font-size: clamp(27px, 2.5vw, 34px);
}

.di-langlist__name {
	font-size: 14px;
	color: var(--muted);
}

/* Facts as a ruled list (wire status). */
.di-facts {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--ink);
}

.di-facts > li {
	margin: 0;
	padding: 12px 0;
	border-bottom: 1px solid var(--rule);
	font-size: 16px;
}

/* Photos --------------------------------------------------------------- */

.di-photo {
	margin: 0;
}

.di-photo img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	background: var(--sand);
}

.di-photo figcaption {
	margin-top: 10px;
	text-align: start;
	font-size: 13px;
	line-height: 1.5;
	color: var(--muted);
}

/* Edge-to-edge photo band. */
.di-photo--bleed img {
	aspect-ratio: 21 / 9;
	max-height: 78vh;
}

.di-photo--bleed figcaption {
	box-sizing: border-box;
	max-width: calc(var(--di-container) + 2 * var(--di-gutter));
	margin-inline: auto;
	padding-inline: var(--di-gutter);
}

@media (max-width: 767px) {
	.di-photo--bleed img { aspect-ratio: 4 / 3; }
}

.di-photo--portrait img {
	aspect-ratio: 4 / 5;
}

.di-photo--landscape img {
	aspect-ratio: 3 / 2;
}

/* Placeholder until a real photo is supplied. */
.di-placeholder {
	display: flex;
	align-items: flex-end;
	box-sizing: border-box;
	width: 100%;
	aspect-ratio: 4 / 5;
	margin: 0;
	padding: 20px;
	background:
		repeating-linear-gradient(135deg, transparent 0 14px, rgba(23, 20, 15, 0.05) 14px 15px),
		var(--sand);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
}

/* Components ----------------------------------------------------------- */

/* Entries: whole-row links in a ruled index, like a newspaper's. */
.di-entries {
	border-top: 1px solid var(--ink);
}

a.di-entry {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr) 40px;
	gap: 8px 40px;
	align-items: baseline;
	padding: 28px 0;
	border-bottom: 1px solid var(--rule);
	color: var(--ink);
	text-decoration: none;
}

.di-arrow {
	margin: 0;
	font-family: var(--di-serif);
	font-size: 30px;
	line-height: 1;
	text-align: end;
	transition: transform 0.15s ease;
}

a.di-entry:hover .di-arrow,
a.di-entry:focus .di-arrow {
	transform: translateX(6px);
	color: var(--vermilion);
}

a.di-entry:hover .di-h3,
a.di-entry:focus .di-h3 {
	color: var(--vermilion-dark);
}

@media (max-width: 1024px) {
	a.di-entry { grid-template-columns: minmax(0, 1fr) 40px; }
	a.di-entry > .di-text { grid-column: 1; grid-row: 2; }
	a.di-entry > .di-arrow { grid-column: 2; grid-row: 1; }
}

/* Index rows without links (what we handle). */
.di-rows {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--ink);
}

.di-rows > li {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 8px 40px;
	align-items: baseline;
	margin: 0;
	padding: 26px 0;
	border-bottom: 1px solid var(--rule);
}

@media (max-width: 767px) {
	.di-rows > li { grid-template-columns: minmax(0, 1fr); }
}

/* Record: dated proof entries. */
.di-record {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--ink);
}

.di-record > li {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
	gap: 8px clamp(24px, 3vw, 48px);
	margin: 0;
	padding: 28px 0;
	border-bottom: 1px solid var(--rule);
}

.di-record__text {
	margin: 0;
	font-family: var(--di-serif);
	font-size: clamp(22px, 2.2vw, 30px);
	line-height: 1.3;
	letter-spacing: -0.01em;
}

@media (max-width: 767px) {
	.di-record > li { grid-template-columns: minmax(0, 1fr); }
}

/* Phrasebook: the same sentence in both languages. */
.di-phrases {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--ink);
	border-inline-start: 1px solid var(--rule);
}

.di-phrases > li {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 28px;
	border-inline-end: 1px solid var(--rule);
	border-bottom: 1px solid var(--rule);
	background: var(--white);
}

.di-phrase__en {
	margin: 0;
	font-family: var(--di-serif);
	font-size: 24px;
	font-style: italic;
	line-height: 1.3;
}

.di-phrase__bn {
	margin: 0;
	padding-top: 10px;
	border-top: 2px solid var(--vermilion);
	font-family: var(--di-bangla);
	font-size: 23px;
	line-height: 1.5;
	color: var(--vermilion-dark);
}

.di-phrases .di-label {
	margin-top: auto;
	color: var(--muted);
}

@media (max-width: 1024px) {
	.di-phrases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.di-phrases { grid-template-columns: minmax(0, 1fr); }
}

/* Principles: a Bangla word with its English meaning and promise. */
.di-principles {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--ink);
}

.di-principles > li {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 8px clamp(24px, 3vw, 48px);
	align-items: baseline;
	margin: 0;
	padding: 28px 0;
	border-bottom: 1px solid var(--rule);
}

.di-principles .di-h3 {
	font-size: clamp(28px, 3vw, 40px);
}

@media (max-width: 1024px) {
	.di-principles > li { grid-template-columns: minmax(0, 1fr); }
}

/* Steps. */
.di-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(24px, 3vw, 48px);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: di-step;
}

.di-steps > li {
	margin: 0;
	padding-top: 16px;
	border-top: 1px solid var(--ink);
	counter-increment: di-step;
}

.di-steps > li::before {
	content: counter(di-step);
	display: block;
	margin-bottom: 8px;
	font-family: var(--di-serif);
	font-size: clamp(56px, 6vw, 88px);
	font-weight: 400;
	line-height: 1;
	color: var(--vermilion);
}

.di-steps > li > * + * {
	margin-top: 10px;
}

@media (max-width: 767px) {
	.di-steps { grid-template-columns: minmax(0, 1fr); }
}

/* Who books: short headed points in ruled cells. */
.di-checks {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--ink);
}

.di-checks > li {
	margin: 0;
	padding: 24px 0;
	border-bottom: 1px solid var(--rule);
}

.di-checks > li > * + * {
	margin-top: 8px;
}

/* Languages in their own scripts. */
.di-langs {
	display: flex;
	flex-wrap: wrap;
	gap: 0 clamp(24px, 3vw, 48px);
	align-items: baseline;
	margin: 0;
	padding: 0;
	list-style: none;
}

.di-langs > li {
	margin: 0;
	font-family: var(--di-serif);
	font-size: clamp(44px, 7vw, 112px);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -0.03em;
}

.di-langs > li[lang="bn"] {
	font-family: var(--di-bangla);
	letter-spacing: 0;
	color: var(--vermilion-dark);
}

.di-langs > li.di-muted {
	color: var(--muted);
}

/* Bylines: founders. */
.di-byline {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: 24px;
	align-items: start;
}

.di-byline > :last-child > * + * {
	margin-top: 10px;
}

.di-byline .di-photo img {
	aspect-ratio: 4 / 5;
}

@media (max-width: 600px) {
	.di-byline { grid-template-columns: minmax(0, 1fr); }
}

/* Plain list. */
.di-list {
	margin: 0;
	padding-inline-start: 1.2em;
	color: var(--muted);
}

.di-list > li {
	margin: 0 0 8px;
}

/* Questions and answers (core details blocks). */
.di-faq {
	border-top: 1px solid var(--ink);
}

.di-faq details {
	border-bottom: 1px solid var(--rule);
}

.di-faq summary {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 0;
	font-family: var(--di-serif);
	font-size: clamp(21px, 2vw, 26px);
	font-weight: 500;
	cursor: pointer;
	list-style: none;
}

.di-faq summary::-webkit-details-marker {
	display: none;
}

.di-faq summary::after {
	content: "+";
	color: var(--vermilion);
	font-family: var(--di-sans);
	font-weight: 400;
}

.di-faq details[open] summary::after {
	content: "−";
}

.di-faq details > :not(summary) {
	margin: 0 0 24px;
	max-width: 68ch;
	color: var(--muted);
}

/* Header --------------------------------------------------------------- */

.di-wire {
	background: var(--ink);
	color: var(--white);
	font-size: 13px;
}

.di-wire__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 4px 24px;
	min-height: 36px;
}

.di-wire p {
	margin: 0;
}

.di-wire a {
	color: var(--white);
	font-weight: 700;
	text-decoration: none;
}

.di-wire a:hover,
.di-wire a:focus {
	color: var(--white);
	text-decoration: underline;
}

.di-wire .di-live::before {
	background: #ff6a4d;
}

/* Language switcher in the wire bar. */
.di-switcher ul {
	display: flex;
	gap: 4px 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.di-switcher a {
	display: inline-block;
	padding-block: 6px;
	font-weight: 400;
}

.di-switcher [lang="bn"] {
	font-family: var(--di-bangla);
}

.di-switcher a[aria-current] {
	font-weight: 700;
	box-shadow: inset 0 -2px 0 #ff6a4d;
}

@media (max-width: 600px) {
	.di-wire__bar:has(.di-switcher) > p { display: none; }
	.di-switcher { overflow-x: auto; }
	.di-wire { font-size: 12px; }
	.di-wire__bar { flex-wrap: nowrap; gap: 12px; }
	.di-wire p { white-space: nowrap; }
	.di-wire__extra,
	.di-wire__wa { display: none; }
}

.di-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--paper);
	border-bottom: 1px solid var(--ink);
}

.admin-bar .di-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .di-header { top: 46px; }
}

@media (max-width: 600px) {
	.admin-bar .di-header { top: 0; }
}

.di-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: var(--di-header-h);
}

.di-header__brand {
	display: flex;
	align-items: baseline;
	gap: 12px;
	color: var(--ink);
	text-decoration: none;
	white-space: nowrap;
}

.di-header__brand:hover,
.di-header__brand:focus {
	color: var(--ink);
}

.di-header__name {
	font-family: var(--di-serif);
	font-size: 26px;
	font-weight: 600;
	letter-spacing: -0.02em;
}

.di-header__logo {
	display: block;
	width: auto;
	height: 44px;
}

.di-nav {
	display: flex;
	align-items: center;
	gap: 32px;
}

.di-nav__list {
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.di-nav__list li {
	margin: 0;
}

.di-nav__list a {
	display: inline-block;
	padding: 8px 0;
	color: var(--ink);
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
}

.di-nav__list > li > a:hover,
.di-nav__list > li > a:focus,
.di-nav__list > .current-menu-item > a,
.di-nav__list > .current-menu-ancestor > a,
.di-nav__list > .current-page-ancestor > a {
	color: var(--ink);
	text-decoration: underline;
	text-decoration-color: var(--vermilion);
	text-decoration-thickness: var(--di-matra);
	text-underline-offset: 10px;
}

.di-nav__list .menu-item-has-children {
	position: relative;
}

.di-nav__list .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-inline-start: 8px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-3px) rotate(45deg);
}

.di-nav__list .sub-menu {
	position: absolute;
	top: 100%;
	inset-inline-start: -20px;
	z-index: 10;
	min-width: 320px;
	margin: 0;
	padding: 10px;
	list-style: none;
	background: var(--white);
	border: 1px solid var(--ink);
	border-top: var(--di-matra) solid var(--vermilion);
	visibility: hidden;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

.di-nav__list .menu-item-has-children:hover > .sub-menu,
.di-nav__list .menu-item-has-children:focus-within > .sub-menu {
	visibility: visible;
	opacity: 1;
	transform: none;
}

.di-nav__list .sub-menu a {
	display: block;
	padding: 10px 12px;
	font-weight: 500;
}

.di-nav__list .sub-menu a:hover,
.di-nav__list .sub-menu a:focus,
.di-nav__list .sub-menu .current-menu-item > a {
	background: var(--paper);
	color: var(--vermilion-dark);
}

.di-nav__actions .di-btn--outline {
	display: none;
}

@media (max-width: 1023px) {
	.di-nav__actions .di-btn--outline { display: inline-flex; }
}

.di-header__cta {
	min-height: 46px;
	padding: 0 20px;
	font-size: 16px;
}

.di-header__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-inline-end: -12px;
	padding: 0;
	background: transparent;
	border: 0;
	color: var(--ink);
	cursor: pointer;
}

.di-header__toggle:hover,
.di-header__toggle:focus {
	background: transparent;
	color: var(--ink);
}

.di-header__toggle-close {
	display: none;
}

.di-header.is-open .di-header__toggle-open {
	display: none;
}

.di-header.is-open .di-header__toggle-close {
	display: inline;
}

@media (max-width: 1023px) {
	.di-header__toggle {
		display: inline-flex;
	}

	.di-nav {
		display: none;
		position: fixed;
		inset: var(--di-nav-top, var(--di-header-h)) 0 0 0;
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		padding: 8px var(--di-gutter) calc(32px + env(safe-area-inset-bottom));
		overflow-y: auto;
		background: var(--paper);
		border-top: var(--di-matra) solid var(--vermilion);
	}

	.di-header.is-open .di-nav {
		display: flex;
	}

	.di-nav-open,
	.di-nav-open body {
		overflow: hidden;
	}

	.di-nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.di-nav__list > li {
		border-bottom: 1px solid var(--rule);
	}

	.di-nav__list > li > a {
		display: block;
		padding: 14px 0;
		font-family: var(--di-serif);
		font-size: 24px;
		font-weight: 500;
		line-height: 1.2;
	}

	.di-nav__list .menu-item-has-children > a::after {
		display: none;
	}

	.di-nav__list .sub-menu {
		position: static;
		min-width: 0;
		margin: 0 0 16px;
		padding: 0 0 0 16px;
		background: transparent;
		border: 0;
		border-inline-start: 1px solid var(--rule);
		visibility: visible;
		opacity: 1;
		transform: none;
	}

	.di-nav__list .sub-menu a {
		padding: 9px 0;
		font-size: 17px;
		color: var(--ink);
	}

	.di-nav__actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 8px;
		margin-top: 8px;
	}

	.di-nav__actions .di-btn {
		min-height: 52px;
		font-size: 17px;
	}
}

/* Footer --------------------------------------------------------------- */

.di-footer {
	background: var(--sand);
	font-size: 16px;
}

.di-footer__top {
	padding-block: clamp(56px, 7vw, 104px);
	border-bottom: 1px solid var(--ink);
}

.di-footer__pitch {
	margin: 0;
	max-width: 18ch;
	font-family: var(--di-serif);
	font-size: clamp(40px, 5.5vw, 80px);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.03em;
}

.di-footer__pitch + .di-actions {
	margin-top: 32px;
}

.di-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
	gap: 40px;
	padding-block: 48px;
}

@media (max-width: 1024px) {
	.di-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.di-footer__grid { grid-template-columns: minmax(0, 1fr); }
}

.di-footer__name {
	margin: 0 0 12px;
	font-family: var(--di-serif);
	font-size: 26px;
	font-weight: 600;
	letter-spacing: -0.02em;
}

.di-footer__about {
	margin: 0;
	max-width: 42ch;
	color: var(--muted);
}

.di-footer__col .di-label {
	margin-bottom: 16px;
}

.di-footer__col ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.di-footer__col li {
	margin: 0 0 10px;
}

.di-footer__col a {
	text-decoration: none;
}

.di-footer__col a:hover,
.di-footer__col a:focus {
	text-decoration: underline;
}

.di-footer__address {
	margin: 16px 0 0;
	font-style: normal;
	color: var(--muted);
}

.di-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 32px;
	padding-block: 24px;
	border-top: 1px solid var(--rule);
	color: var(--muted);
	font-size: 14px;
}

.di-footer__bottom p {
	margin: 0;
}

.di-footer__bottom a {
	color: var(--muted);
}

.di-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.di-footer__link {
	padding: 0;
	border: 0;
	background: none;
	color: var(--muted);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.di-footer__link:hover,
.di-footer__link:focus {
	color: var(--ink);
}

.di-footer__social {
	display: flex;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Analytics consent: a quiet bar, equal weight for both answers. */
.di-consent {
	position: fixed;
	inset-inline: 16px;
	bottom: calc(16px + env(safe-area-inset-bottom));
	z-index: 120;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	max-width: 760px;
	margin-inline: auto;
	padding: 20px 24px;
	background: var(--white);
	border: 1px solid var(--ink);
	border-top: var(--di-matra) solid var(--vermilion);
	box-shadow: 0 12px 32px rgba(23, 20, 15, 0.16);
	font-size: 15px;
	line-height: 1.5;
}

.di-consent[hidden] {
	display: none;
}

.di-consent__text {
	flex: 1 1 320px;
	margin: 0;
}

.di-consent__text a {
	margin-inline-start: 4px;
}

.di-consent__actions {
	display: flex;
	gap: 8px;
}

.di-consent .di-btn {
	min-height: 44px;
	padding-inline: 20px;
	font-size: 15px;
}

.di-consent-open .di-actionbar {
	display: none;
}

/* Long-form text, such as the privacy policy. */
.di-prose {
	max-width: 72ch;
}

.di-prose > * {
	margin: 0;
}

.di-prose > * + * {
	margin-top: 16px;
}

.di-prose > h2 + * {
	margin-top: 12px;
}

.di-prose > * + h2 {
	margin-top: clamp(40px, 5vw, 56px);
}

/* Phone action bar: WhatsApp and quote always one tap away. */
.di-actionbar {
	display: none;
}

@media (max-width: 767px) {
	.di-actionbar {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 90;
		padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
		background: var(--paper);
		border-top: 1px solid var(--ink);
	}

	.di-actionbar .di-btn {
		min-height: 48px;
		padding: 0 12px;
		font-size: 16px;
	}

	body:has(.di-actionbar) {
		padding-bottom: calc(68px + env(safe-area-inset-bottom));
	}

	.di-nav-open .di-actionbar {
		display: none;
	}

	.di-actionbar {
		transition: transform 0.2s ease;
	}

	.di-bar-hidden .di-actionbar {
		transform: translateY(110%);
	}
}

/* Phones: a lighter first screen. */
@media (max-width: 767px) {
	:root { --di-header-h: 60px; }

	.di-header__name { font-size: 22px; }

	.di-hero .di-actions {
		display: grid;
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
		gap: 8px;
	}

	.di-hero .di-actions .di-btn {
		padding-inline: 12px;
		text-align: center;
	}
}

@media (max-width: 400px) {
	.di-hero .di-actions .di-btn { font-size: 15px; }
}

@media (max-width: 767px) {

	.di-btn__extra { display: none; }

	/* The six languages as one compact run of names. */
	.di-langlist ul {
		display: flex;
		flex-wrap: wrap;
		gap: 4px 18px;
		margin: 8px 0 12px;
		border-top: 0;
	}

	.di-langlist li {
		padding: 0;
		border-bottom: 0;
	}

	.di-langlist__native { font-size: 22px; }

	.di-langlist__native[lang="bn"] { font-size: 25px; }

	.di-langlist__name { display: none; }
}

/* Forms ---------------------------------------------------------------- */

.di-form .gb-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 24px;
}

.di-form .gb-form-field:has(textarea),
.di-form .gb-form-field:has(select),
.di-form .gb-form > button,
.di-form .gb-form > [class*="gb-form-message"] {
	grid-column: 1 / -1;
}

@media (max-width: 767px) {
	.di-form .gb-form { grid-template-columns: minmax(0, 1fr); }
}

.di-form label,
.di-form legend {
	display: block;
	margin-bottom: 6px;
	font-size: 15px;
	font-weight: 700;
}

.di-form .gb-form-field__required {
	color: var(--vermilion);
}

.di-form input[type="text"],
.di-form input[type="email"],
.di-form input[type="tel"],
.di-form input[type="url"],
.di-form input[type="date"],
.di-form select,
.di-form textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 54px;
	padding: 12px 14px;
	background: var(--white);
	border: 1px solid #8c8577;
	border-radius: var(--di-radius);
	color: var(--ink);
	font-family: var(--di-sans);
	font-size: 17px;
}

.di-form textarea {
	min-height: 150px;
	resize: vertical;
}

.di-form input:focus,
.di-form select:focus,
.di-form textarea:focus {
	border-color: var(--ink);
	outline: 3px solid var(--vermilion);
	outline-offset: 0;
}

.di-form button[type="submit"],
.di-form input[type="submit"] {
	justify-self: start;
	min-height: 56px;
	padding: 0 30px;
	background: var(--vermilion);
	border: 0;
	border-radius: var(--di-radius);
	color: var(--white);
	font-family: var(--di-sans);
	font-size: 18px;
	font-weight: 700;
	cursor: pointer;
}

.di-form button[type="submit"]:hover,
.di-form button[type="submit"]:focus {
	background: var(--vermilion-dark);
	color: var(--white);
}

.di-form [class*="gb-form-message"] {
	padding: 16px 20px;
	border-inline-start: var(--di-matra) solid var(--vermilion);
	background: var(--white);
	font-weight: 600;
}

/* Posts and plain pages ------------------------------------------------ */

/* Scoped to body: WordPress also puts "page" on the article element. */
body.page:not(.di-blocks) .entry-content,
.di-prose {
	max-width: 68ch;
}

body.page:not(.di-blocks) .entry-title {
	font-size: clamp(40px, 5.5vw, 72px);
	font-weight: 400;
	letter-spacing: -0.03em;
	line-height: 1;
}

/* A post: headline, standfirst and byline, then a reading column. */
.di-article__title {
	max-width: 22ch;
	font-size: clamp(38px, 5vw, 72px);
	line-height: 1.02;
}

.di-article__standfirst {
	margin-top: 28px;
	max-width: 60ch;
}

.di-article__byline {
	display: inline-block;
	margin: 32px 0 0;
	padding-top: 12px;
	border-top: var(--di-matra) solid var(--vermilion);
	font-size: 15px;
	font-weight: 700;
}

.di-article__image {
	margin-bottom: 0;
}

.di-article__main {
	padding-top: clamp(40px, 5vw, 72px);
}

.di-article__body {
	max-width: 68ch;
	font-size: 19px;
	line-height: 1.72;
}

.di-article__body > * {
	margin-top: 0;
	margin-bottom: 0;
}

.di-article__body > * + * {
	margin-top: 1.2em;
}

.di-article__body h2,
.di-article__body h3,
.di-article__body h4 {
	font-family: var(--di-serif);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.di-article__body h2 {
	margin-top: 2em;
	padding-top: 16px;
	border-top: 1px solid var(--ink);
	font-size: clamp(28px, 2.8vw, 36px);
}

.di-article__body h3 {
	margin-top: 1.6em;
	font-size: 24px;
}

.di-article__body h4 {
	margin-top: 1.4em;
	font-size: 20px;
}

.di-article__body a {
	color: var(--ink);
	text-decoration-color: var(--vermilion);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.di-article__body a:hover,
.di-article__body a:focus {
	color: var(--vermilion-dark);
}

.di-article__body ul,
.di-article__body ol {
	padding-inline-start: 1.3em;
}

.di-article__body li + li {
	margin-top: 0.4em;
}

.di-article__body blockquote {
	margin-inline: 0;
	padding-inline-start: 24px;
	border-inline-start: var(--di-matra) solid var(--vermilion);
	font-family: var(--di-serif);
	font-size: clamp(22px, 2.2vw, 28px);
	font-style: italic;
	line-height: 1.4;
}

.di-article__body blockquote cite {
	display: block;
	margin-top: 12px;
	font-family: var(--di-sans);
	font-size: 15px;
	font-style: normal;
	color: var(--muted);
}

.di-article__body figure {
	margin-inline: 0;
}

.di-article__body img {
	display: block;
	max-width: 100%;
	height: auto;
}

.di-article__body figcaption {
	margin-top: 10px;
	font-size: 14px;
	color: var(--muted);
	text-align: start;
}

.di-article__body table {
	width: 100%;
	border-collapse: collapse;
	font-size: 16px;
}

.di-article__body th,
.di-article__body td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--rule);
	text-align: start;
	vertical-align: top;
}

.di-article__body th {
	border-bottom-color: var(--ink);
}

.di-article__body hr {
	width: 72px;
	height: var(--di-matra);
	margin-block: 2em;
	border: 0;
	background: var(--vermilion);
}

.di-article__body code {
	padding: 0.1em 0.3em;
	background: var(--sand);
	font-size: 0.9em;
}

.di-article__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	max-width: 68ch;
	margin: 40px 0 0;
}

.di-article__tags a {
	padding: 4px 12px;
	border: 1px solid var(--rule);
	color: var(--ink);
	font-size: 14px;
	text-decoration: none;
}

.di-article__tags a:hover,
.di-article__tags a:focus {
	border-color: var(--ink);
}

.di-article__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 32px;
	max-width: 68ch;
	margin-top: clamp(48px, 6vw, 80px);
	padding: 28px 0 0;
	border-top: var(--di-matra) solid var(--vermilion);
}

.di-article__cta .di-h3 {
	flex: 1 1 320px;
	margin: 0;
}

.di-dateline a {
	color: inherit;
	text-decoration: none;
}

.di-dateline a:hover,
.di-dateline a:focus {
	text-decoration: underline;
}

.di-article__body table,
.di-article__body th,
.di-article__body td {
	border-top: 0;
	border-inline: 0;
}

/* Post lists: date and category, headline and excerpt, small photo. */
.di-postlist {
	border-top: 1px solid var(--ink);
}

.di-postrow {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr);
	gap: 12px clamp(24px, 3vw, 48px);
	align-items: start;
	padding: 32px 0;
	border-bottom: 1px solid var(--rule);
}

.di-postrow__meta {
	margin: 4px 0 0;
	color: var(--muted);
}

.di-postrow__meta a {
	color: var(--vermilion-dark);
	text-decoration: none;
}

.di-postrow__body > * + * {
	margin-top: 10px;
}

.di-postrow__title {
	margin: 0;
}

.di-postrow__title a {
	color: var(--ink);
	text-decoration: none;
}

.di-postrow__title a:hover,
.di-postrow__title a:focus {
	color: var(--vermilion-dark);
}

.di-postrow__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	background: var(--sand);
}

@media (max-width: 900px) {
	.di-postrow { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.di-postrow__image { order: -1; }
}

.di-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 40px;
}

.di-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--rule);
	color: var(--ink);
	text-decoration: none;
}

.di-pagination .page-numbers.current {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--white);
}

.di-pagination a.page-numbers:hover,
.di-pagination a.page-numbers:focus {
	border-color: var(--ink);
}

/* Search form (search results and 404). */
.search-form {
	display: flex;
	gap: 8px;
	max-width: 560px;
}

.search-form label {
	flex: 1;
}

.search-form .search-field {
	width: 100%;
	min-height: 52px;
	padding: 0 16px;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: var(--white);
	font: inherit;
}

.search-form .search-submit {
	min-height: 52px;
	padding: 0 24px;
	border: 0;
	background: var(--ink);
	color: var(--white);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

/* Utilities ------------------------------------------------------------ */

.di-mt-0 { margin-top: 0; }
.di-mt-s { margin-top: 16px; }
.di-mt-m { margin-top: 32px; }
.di-mt-l { margin-top: 56px; }
.di-mb-s { margin-bottom: 16px; }
.di-mb-m { margin-bottom: 32px; }
.di-mb-l { margin-bottom: 56px; }
