/*
Theme Name: Ar Ruwwad Academy
Theme URI: https://arruwwad.com
Author: Ar Ruwwad Academy
Author URI: https://arruwwad.com
Description: A calm, modern theme for Ar Ruwwad Academy, an online Islamic education academy. Everything is managed from the Dashboard and Appearance → Customize: homepage sections (on/off and order), colors, fonts, header, footer, courses, teachers and native landing pages. Works with Gutenberg and Elementor Free, supports Polylang, WPML and TranslatePress, and is ready for English, Bengali and Arabic (RTL).
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ar-ruwwad
Tags: education, custom-colors, custom-logo, custom-menu, featured-images, translation-ready, rtl-language-support, threaded-comments, block-styles, wide-blocks, editor-style
*/

/* ==========================================================================
   All colors, fonts, radii and spacing come from CSS variables that the
   Customizer writes into :root (see inc/dynamic-css.php). The fallbacks below
   only apply if that block is missing.
   ========================================================================== */
:root {
	--rw-primary: #0B4F4A;
	--rw-primary-dark: #083D39;
	--rw-primary-tint: #E8F1F0;
	--rw-accent: #C9A227;
	--rw-accent-dark: #8A6D0E;
	--rw-bg: #FFFFFF;
	--rw-soft: #FAF9F6;
	--rw-text: #1F2933;
	--rw-muted: #667085;
	--rw-border: #E1E4E7;
	--rw-header-bg: #FFFFFF;
	--rw-header-text: #1F2933;
	--rw-container: 1200px;
	--rw-radius: 8px;
	--rw-radius-btn: 8px;
	--rw-section-y: clamp(3.25rem, 8vw, 5.5rem);
	--rw-logo-w: 180px;
	--rw-heading-weight: 600;
	--rw-lh: 1.65;
	--rw-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--rw-font-heading: "Cormorant Garamond", Georgia, serif;
	--rw-pattern-opacity: .08;
	--rw-pattern-hero: none;
	--rw-pattern-dark: none;
	--rw-pattern-page: none;
	--rw-pattern-footer: none;
	--rw-divider-h: 2px;
	--rw-narrow: 800px;
}

/* Bengali and Arabic need more line height; the pages read better. */
html:lang(bn),
html:lang(ar) { --rw-lh: 1.85; }

/* ==========================================================================
   1. Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

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

body {
	margin: 0;
	background: var(--rw-bg);
	color: var(--rw-text);
	font-family: var(--rw-font-body);
	line-height: var(--rw-lh);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

img, svg, video, iframe { max-width: 100%; }
img, video { height: auto; }
svg { display: inline-block; }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .6em;
	font-family: var(--rw-font-heading);
	font-weight: var(--rw-heading-weight);
	line-height: 1.2;
	color: var(--rw-primary);
	text-wrap: balance;
}
h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.75rem, 3.4vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
h4 { font-size: 1.125rem; }

p { margin: 0 0 1.1em; }
ul, ol { margin: 0 0 1.1em; padding-inline-start: 1.4rem; }
a { color: var(--rw-primary); text-decoration: none; }
a:hover { color: var(--rw-primary-dark); }
hr { border: 0; border-top: 1px solid var(--rw-border); margin: 2rem 0; }
figure { margin: 0; }
button { font-family: inherit; }

:focus-visible { outline: 3px solid var(--rw-accent-dark); outline-offset: 3px; }
.rw-section--dark :focus-visible,
.rw-footer :focus-visible,
.rw-topbar :focus-visible { outline-color: var(--rw-accent); }

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	white-space: nowrap;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: var(--rw-primary);
	color: #fff;
	clip: auto;
	clip-path: none;
	display: block;
	height: auto;
	width: auto;
	margin: 0;
	padding: .75rem 1rem;
	top: .5rem;
	inset-inline-start: .5rem;
	z-index: 100000;
	border-radius: var(--rw-radius);
	font-weight: 600;
	text-decoration: none;
}

/* Lists that are components, not prose */
.rw-menu, .rw-menu ul, .rw-checks, .rw-social, .rw-tags, .rw-plain-list, .rw-footer__list,
.rw-card__meta, .rw-topbar__items, .rw-lang ul, .rw-steps, .rw-comments__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ==========================================================================
   2. Layout
   ========================================================================== */
.rw-main { display: block; }
.rw-main:focus { outline: none; }

.rw-container {
	width: 100%;
	max-width: var(--rw-container);
	margin-inline: auto;
	padding-inline: 1.25rem;
}
@media (min-width: 768px) { .rw-container { padding-inline: 2rem; } }
.rw-container.rw-container--narrow { max-width: var(--rw-narrow); }

.rw-content-area { padding-block: clamp(2rem, 5vw, 4rem); }
.rw-center { text-align: center; }
.rw-muted { color: var(--rw-muted); }

/* Sections */
.rw-section { position: relative; padding-block: var(--rw-section-y); background: var(--rw-bg); }
.rw-section--soft { background: var(--rw-soft); }
.rw-section--dark { background: var(--rw-primary); color: #fff; }
.rw-section--dark h1, .rw-section--dark h2, .rw-section--dark h3, .rw-section--dark h4 { color: #fff; }
.rw-section--dark a:not(.rw-btn) { color: #fff; text-decoration: underline; }
.rw-section--dark .rw-section__lede { color: rgba(255, 255, 255, .82); }
.rw-section--dark .rw-eyebrow { color: var(--rw-accent); }

/* Geometric pattern: a token per placement (set in the Customizer) */
.rw-section--dark,
.rw-pattern-hero,
.rw-pattern-page,
.rw-pattern-footer { isolation: isolate; }
.rw-section--dark::before,
.rw-pattern-hero::before,
.rw-pattern-page::before,
.rw-pattern-footer::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	opacity: var(--rw-pattern-opacity);
}
.rw-section--dark::before { background-image: var(--rw-pattern-dark); }
.rw-pattern-hero::before { background-image: var(--rw-pattern-hero); }
.rw-pattern-page::before { background-image: var(--rw-pattern-page); }
.rw-pattern-footer::before { background-image: var(--rw-pattern-footer); }

.rw-section__head { max-width: 42rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.rw-section__head--center { margin-inline: auto; text-align: center; }
.rw-section__title { margin-bottom: .5rem; }
.rw-section__title::after {
	content: "";
	display: block;
	width: 3rem;
	height: var(--rw-divider-h);
	margin-top: 1rem;
	background: var(--rw-accent);
}
.rw-section__head--center .rw-section__title::after { margin-inline: auto; }
.rw-section__lede { margin: 1rem 0 0; color: var(--rw-muted); font-size: 1.125rem; }
.rw-section__more { margin: clamp(2rem, 4vw, 3rem) 0 0; text-align: center; }

.rw-eyebrow {
	margin: 0 0 .75rem;
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rw-accent-dark);
}
html:lang(bn) .rw-eyebrow,
html:lang(ar) .rw-eyebrow { letter-spacing: 0; text-transform: none; font-size: .9375rem; }

/* ==========================================================================
   3. Buttons
   ========================================================================== */
.rw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 2.75rem;
	padding: .7rem 1.5rem;
	border: 1.5px solid transparent;
	border-radius: var(--rw-radius-btn);
	font-family: var(--rw-font-body);
	font-size: .9375rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.rw-btn--primary { background: var(--rw-primary); color: #fff; }
.rw-btn--primary:hover { background: var(--rw-primary-dark); color: #fff; }
.rw-btn--gold { background: var(--rw-accent); color: var(--rw-primary-dark); }
.rw-btn--gold:hover { background: var(--rw-accent-dark); color: #fff; }
.rw-btn--outline { background: transparent; border-color: var(--rw-primary); color: var(--rw-primary); }
.rw-btn--outline:hover { background: var(--rw-primary); color: #fff; }
.rw-btn--block { display: flex; width: 100%; margin-top: .75rem; }

.rw-section--dark .rw-btn--primary { background: var(--rw-accent); color: var(--rw-primary-dark); }
.rw-section--dark .rw-btn--primary:hover { background: var(--rw-accent-dark); color: #fff; }
.rw-section--dark .rw-btn--outline { border-color: rgba(255, 255, 255, .75); color: #fff; }
.rw-section--dark .rw-btn--outline:hover { background: #fff; color: var(--rw-primary); }
.rw-section--dark a.rw-btn { text-decoration: none; }

.rw-link { font-weight: 600; color: var(--rw-primary); }
.rw-link:hover { text-decoration: underline; text-underline-offset: .2em; }
.rw-arrow { display: inline-block; }

/* ==========================================================================
   4. Top bar and header
   ========================================================================== */
.rw-topbar { background: var(--rw-primary-dark); color: #fff; font-size: .8125rem; }
.rw-topbar a { color: #fff; }
.rw-topbar__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem 1.25rem; padding-block: .4rem; min-height: 2.25rem; }
.rw-topbar__items { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }

.rw-header {
	position: relative;
	z-index: 100;
	background: var(--rw-header-bg);
	color: var(--rw-header-text);
	border-bottom: 1px solid var(--rw-border);
}
.rw-header--sticky { position: sticky; top: 0; }
.admin-bar .rw-header--sticky { top: 32px; }
@media (max-width: 782px) { .admin-bar .rw-header--sticky { top: 46px; } }

/* Mobile-first grid: brand | actions. The nav drops down beneath the bar. */
.rw-header__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	grid-template-areas: "brand actions toggle";
	align-items: center;
	column-gap: .75rem;
	min-height: 4.25rem;
}
.rw-brand { grid-area: brand; display: flex; align-items: center; gap: .75rem; min-width: 0; }
.rw-brand .custom-logo-link { display: block; line-height: 0; }
.rw-brand .custom-logo { width: auto; height: auto; max-width: min(var(--rw-logo-w), 52vw); max-height: 3.5rem; }
.rw-brand__link { display: flex; align-items: center; gap: .75rem; color: var(--rw-primary); }
.rw-brand__name { font-family: var(--rw-font-heading); font-size: 1.375rem; font-weight: 700; line-height: 1.1; color: var(--rw-primary); }
.rw-brand__mark {
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 2rem;
	height: 2rem;
	border: 1.5px solid var(--rw-accent);
	transform: rotate(45deg);
}
.rw-brand__mark span { transform: rotate(-45deg); color: var(--rw-accent-dark); font-size: 1.05rem; line-height: 1; }

.rw-header__actions { grid-area: actions; display: flex; align-items: center; gap: .75rem; }
.rw-header__cta { display: none; }

/* Menu toggle */
.rw-menu-toggle {
	grid-area: toggle;
	display: inline-grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	background: transparent;
	color: var(--rw-header-text);
	border: 1.5px solid var(--rw-border);
	border-radius: var(--rw-radius);
	cursor: pointer;
}
.rw-menu-toggle__bars,
.rw-menu-toggle__bars::before,
.rw-menu-toggle__bars::after {
	display: block;
	width: 1.25rem;
	height: 2px;
	background: currentColor;
	border-radius: 1px;
	transition: transform .2s ease, opacity .2s ease;
}
.rw-menu-toggle__bars { position: relative; }
.rw-menu-toggle__bars::before, .rw-menu-toggle__bars::after { content: ""; position: absolute; inset-inline-start: 0; }
.rw-menu-toggle__bars::before { top: -6px; }
.rw-menu-toggle__bars::after { top: 6px; }
.rw-menu-toggle[aria-expanded="true"] .rw-menu-toggle__bars { background: transparent; }
.rw-menu-toggle[aria-expanded="true"] .rw-menu-toggle__bars::before { top: 0; transform: rotate(45deg); }
.rw-menu-toggle[aria-expanded="true"] .rw-menu-toggle__bars::after { top: 0; transform: rotate(-45deg); }

/* Navigation: mobile panel */
.rw-nav {
	display: none;
	position: absolute;
	inset-inline: 0;
	top: 100%;
	z-index: 99;
	max-height: calc(100vh - 4.5rem);
	overflow-y: auto;
	padding: .5rem 1.25rem 1.5rem;
	background: var(--rw-header-bg);
	border-bottom: 1px solid var(--rw-border);
}
.rw-nav.is-open { display: block; }
.rw-menu a { display: block; padding: .85rem 0; color: var(--rw-header-text); font-weight: 500; }
.rw-menu > li { border-bottom: 1px solid var(--rw-border); }
.rw-menu li { display: flex; flex-wrap: wrap; align-items: center; }
.rw-menu li > a { flex: 1 1 0; min-width: 0; }
.rw-menu .sub-menu { display: none; flex-basis: 100%; padding-inline-start: 1rem; }
.rw-menu li.is-open > .sub-menu { display: block; }
.rw-menu .sub-menu a { font-weight: 400; padding-block: .6rem; }
.rw-menu .current-menu-item > a,
.rw-menu .current-menu-ancestor > a,
.rw-menu a[aria-current="page"] { color: var(--rw-primary); font-weight: 700; }
.rw-menu a:hover { color: var(--rw-primary); }
.rw-sub-toggle {
	flex: none;
	display: inline-grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	background: transparent;
	color: inherit;
	border: 0;
	cursor: pointer;
}
.rw-sub-toggle::before {
	content: "";
	width: .5rem;
	height: .5rem;
	border-inline-end: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform .2s ease;
}
li.is-open > .rw-sub-toggle::before { transform: translateY(2px) rotate(-135deg); }
.rw-nav__cta { padding-top: 1rem; }
.rw-nav__cta .rw-btn { width: 100%; }

/* Header: desktop */
@media (min-width: 992px) {
	.rw-header__inner {
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-areas: "brand nav actions";
		min-height: 4.75rem;
	}
	.rw-menu-toggle { display: none; }
	.rw-header__cta { display: inline-flex; }
	.rw-nav__cta { display: none; }

	.rw-nav {
		grid-area: nav;
		display: block;
		position: static;
		max-height: none;
		overflow: visible;
		padding: 0;
		background: transparent;
		border: 0;
		justify-self: end;
	}
	.rw-menu { display: flex; flex-wrap: wrap; align-items: center; gap: 0 1.75rem; }
	.rw-menu > li { border: 0; position: relative; flex-wrap: nowrap; }
	.rw-menu li > a { flex: 0 1 auto; }
	.rw-menu > li > a { position: relative; padding-block: 1.6rem; font-size: .9375rem; }
	.rw-menu > li > a::after {
		content: "";
		position: absolute;
		inset-inline: 0;
		bottom: 1.15rem;
		height: 2px;
		background: var(--rw-accent);
		transform: scaleX(0);
		transition: transform .2s ease;
	}
	.rw-menu > li:hover > a::after,
	.rw-menu > li:focus-within > a::after,
	.rw-menu > .current-menu-item > a::after,
	.rw-menu > .current-menu-ancestor > a::after { transform: scaleX(1); }
	.rw-menu > .menu-item-has-children > a { padding-inline-end: 1.05rem; }
	.rw-menu > .menu-item-has-children > a::before {
		content: "";
		position: absolute;
		inset-inline-end: 0;
		top: 50%;
		width: .4rem;
		height: .4rem;
		border-inline-end: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-70%) rotate(45deg);
	}
	.rw-sub-toggle { display: none; }

	.rw-menu .sub-menu {
		display: block;
		position: absolute;
		inset-inline-start: 0;
		top: 100%;
		z-index: 10;
		min-width: 14rem;
		padding: .5rem;
		background: var(--rw-header-bg);
		border: 1px solid var(--rw-border);
		border-radius: var(--rw-radius);
		box-shadow: 0 12px 28px rgba(15, 30, 30, .08);
		visibility: hidden;
		opacity: 0;
		transition: opacity .15s ease, visibility .15s;
	}
	.rw-menu li:hover > .sub-menu,
	.rw-menu li:focus-within > .sub-menu { visibility: visible; opacity: 1; }
	.rw-menu .sub-menu li { display: block; position: relative; border: 0; }
	.rw-menu .sub-menu a { padding: .55rem .75rem; border-radius: calc(var(--rw-radius) - 2px); }
	.rw-menu .sub-menu a:hover { background: var(--rw-primary-tint); }
	.rw-menu .sub-menu .sub-menu { top: 0; inset-inline-start: 100%; }

	/* Layout variants */
	.rw-header--nav-center .rw-nav { justify-self: center; }

	.rw-header--stacked .rw-header__inner {
		grid-template-columns: 1fr auto 1fr;
		grid-template-areas: ". brand actions" "nav nav nav";
	}
	.rw-header--stacked .rw-brand { justify-self: center; padding-block: .9rem .4rem; }
	.rw-header--stacked .rw-header__actions { justify-self: end; }
	.rw-header--stacked .rw-nav { justify-self: stretch; border-top: 1px solid var(--rw-border); }
	.rw-header--stacked .rw-menu { justify-content: center; }
	.rw-header--stacked .rw-menu > li > a { padding-block: 1rem; }
	.rw-header--stacked .rw-menu > li > a::after { bottom: .6rem; }
}

/* Landing header: brand + one button, always */
.rw-header--landing .rw-header__inner { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "brand actions"; }
.rw-header--landing .rw-header__actions .rw-btn { padding-inline: 1.1rem; }

/* Language switcher (its own slot: never over the logo) */
.rw-lang { display: flex; align-items: center; font-size: .875rem; }
.rw-lang ul, .rw-lang .rw-lang__list { display: flex; flex-wrap: wrap; gap: .125rem; }
.rw-lang li { list-style: none; margin: 0; }
.rw-lang a { display: block; padding: .3rem .55rem; border-radius: var(--rw-radius); color: inherit; font-weight: 500; line-height: 1.3; }
.rw-lang a:hover { background: var(--rw-primary-tint); color: var(--rw-primary); }
.rw-lang .current-lang > a,
.rw-lang .current-menu-item > a { font-weight: 700; color: var(--rw-primary); background: var(--rw-primary-tint); }
.rw-lang__widget { margin: 0; }
.rw-lang .widget-title { display: none; }
.rw-lang .trp-language-switcher, .rw-lang .wpml-ls-legacy-dropdown { width: auto; }
.rw-lang .wpml-ls { padding: 0; }
.rw-topbar .rw-lang a { color: #fff; }
.rw-topbar .rw-lang a:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.rw-topbar .rw-lang .current-lang > a,
.rw-topbar .rw-lang .current-menu-item > a { background: rgba(255, 255, 255, .18); color: #fff; }
.rw-footer .rw-lang a { color: rgba(255, 255, 255, .85); }
.rw-footer .rw-lang a:hover, .rw-footer .rw-lang .current-lang > a { background: rgba(255, 255, 255, .14); color: #fff; }

/* ==========================================================================
   5. Page header (titles for pages and archives)
   ========================================================================== */
.rw-page-header {
	position: relative;
	padding-block: clamp(2rem, 6vw, 4rem);
	background: var(--rw-soft);
	border-bottom: 1px solid var(--rw-border);
}
.rw-page-header__title { margin: 0; font-size: clamp(2rem, 4.5vw, 3rem); }
.rw-page-header__desc { max-width: 42rem; margin: 1rem 0 0; color: var(--rw-muted); font-size: 1.125rem; }
.rw-post__header .rw-meta { margin: 1rem 0 0; }
.rw-meta { color: var(--rw-muted); font-size: .875rem; margin: 0 0 .5rem; }

/* ==========================================================================
   6. Grids and cards
   ========================================================================== */
.rw-grid { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) {
	.rw-grid--3, .rw-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
	.rw-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rw-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.rw-layout--sidebar .rw-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.rw-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--rw-bg);
	border: 1px solid var(--rw-border);
	border-radius: var(--rw-radius);
	overflow: hidden;
	transition: border-color .2s ease;
}
.rw-card:hover, .rw-card:focus-within { border-color: var(--rw-accent); }
.rw-card__media { display: block; position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--rw-primary-tint); }
.rw-card__media--square { aspect-ratio: 1 / 1; }
.rw-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rw-card__media--empty::before { content: ""; position: absolute; inset: 0; background-image: var(--rw-pattern-page); background-size: 64px; opacity: .9; }
.rw-card__body { flex: 1 1 auto; padding: 1.25rem 1.25rem .5rem; }
.rw-card__kicker { margin: 0 0 .35rem; color: var(--rw-accent-dark); font-size: .8125rem; font-weight: 600; }
.rw-card__title { margin: 0 0 .5rem; font-size: 1.3rem; }
.rw-card__title a { color: var(--rw-primary); }
.rw-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.rw-card__text { margin: 0 0 .75rem; color: var(--rw-muted); font-size: .9375rem; }
.rw-card__meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: 0 0 .75rem; color: var(--rw-text); font-size: .8125rem; font-weight: 500; }
.rw-card__meta li { display: inline-flex; align-items: center; gap: .4rem; }
.rw-card__meta li::before { content: ""; width: .35rem; height: .35rem; background: var(--rw-accent); transform: rotate(45deg); }
.rw-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.25rem; border-top: 1px solid var(--rw-border); font-size: .9375rem; }
.rw-card__price { font-weight: 600; color: var(--rw-text); }
.rw-card__foot .rw-link { position: relative; z-index: 2; margin-inline-start: auto; }
.rw-card .rw-meta { margin-bottom: .5rem; }
.rw-card--teacher { text-align: center; }
.rw-card--teacher .rw-card__body { padding-bottom: 1.25rem; }

/* Feature cards (homepage + landing) */
.rw-feature { padding: 1.5rem; background: var(--rw-bg); border: 1px solid var(--rw-border); border-radius: var(--rw-radius); }
.rw-section--soft .rw-feature { background: var(--rw-bg); }
.rw-feature__mark {
	display: inline-grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	margin-bottom: 1rem;
	border: 1.5px solid var(--rw-accent);
	border-radius: 50%;
	color: var(--rw-accent-dark);
	font-size: .875rem;
	font-weight: 700;
}
.rw-feature__title { margin-bottom: .4rem; font-size: 1.2rem; }
.rw-feature__text { margin: 0; color: var(--rw-muted); font-size: .9375rem; }

/* Check lists */
.rw-checks { display: grid; gap: .65rem; margin: 0 0 1.5rem; }
.rw-checks li { position: relative; padding-inline-start: 1.9rem; }
.rw-checks li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: .3em;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--rw-accent);
}
.rw-checks li::after {
	content: "";
	position: absolute;
	inset-inline-start: .4rem;
	top: .5em;
	width: .3rem;
	height: .55rem;
	border: solid var(--rw-primary-dark);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.rw-checks--inline { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); margin-top: 2rem; }

/* Quotes */
.rw-quote { margin: 0; padding: 1.5rem; background: var(--rw-bg); border: 1px solid var(--rw-border); border-inline-start: 3px solid var(--rw-accent); border-radius: var(--rw-radius); }
.rw-quote blockquote { margin: 0 0 1rem; padding: 0; border: 0; font-size: 1rem; }
.rw-quote blockquote p { margin: 0; }
.rw-quote figcaption { display: flex; flex-direction: column; font-size: .875rem; color: var(--rw-muted); }
.rw-quote figcaption strong { color: var(--rw-text); }

/* FAQ (native <details>) */
.rw-faq { border-top: 1px solid var(--rw-border); }
.rw-faq__item { border-bottom: 1px solid var(--rw-border); }
.rw-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.15rem 0;
	color: var(--rw-primary);
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}
.rw-faq__item summary::-webkit-details-marker { display: none; }
.rw-faq__item summary::after { content: "+"; flex: none; color: var(--rw-accent-dark); font-size: 1.5rem; line-height: 1; }
.rw-faq__item[open] summary::after { content: "–"; }
.rw-faq__a { padding-bottom: 1.15rem; color: var(--rw-muted); }
.rw-faq__a p { margin: 0; }

/* Call to action */
.rw-cta { text-align: center; overflow: hidden; }
.rw-cta__bg { position: absolute; inset: 0; z-index: -2; }
.rw-cta__bg::after { content: ""; position: absolute; inset: 0; background: var(--rw-primary); opacity: .82; }
.rw-cta__bg-img { width: 100%; height: 100%; object-fit: cover; }
.rw-cta__inner { max-width: 46rem; }
.rw-cta__title { font-size: clamp(1.9rem, 4vw, 2.75rem); }
.rw-cta__text { margin-inline: auto; max-width: 36rem; color: rgba(255, 255, 255, .85); font-size: 1.125rem; }
.rw-cta__actions, .rw-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.rw-cta__actions { justify-content: center; margin-top: 1.75rem; }
.rw-hero__actions { margin-top: 1.75rem; }
.rw-hero__lede { max-width: 36rem; margin: 1.25rem 0 0; color: var(--rw-muted); font-size: 1.1875rem; }
.rw-section--dark .rw-hero__lede { color: rgba(255, 255, 255, .85); }

/* Tags / chips / panels used by blog + academy pages */
.rw-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0; }
.rw-tags a, .rw-tags span { display: inline-block; padding: .3rem .8rem; background: var(--rw-primary-tint); border-radius: 999px; color: var(--rw-primary); font-size: .8125rem; font-weight: 500; }
.rw-plain-list { display: grid; gap: .4rem; }

/* Admin-only hints */
.rw-admin-note { margin: 0; padding: 1rem 1.25rem; background: var(--rw-soft); border: 1px dashed var(--rw-accent-dark); border-radius: var(--rw-radius); color: var(--rw-text); font-size: .9375rem; }

/* ==========================================================================
   7. Content (Gutenberg, Elementor Free, classic)
   ========================================================================== */
.rw-entry-content { font-size: 1.0625rem; overflow-wrap: break-word; }
.rw-entry-content > :last-child { margin-bottom: 0; }
.rw-entry-content h2 { margin-top: 1.6em; }
.rw-entry-content h3 { margin-top: 1.4em; }
.rw-entry-content a:not(.wp-block-button__link):not(.rw-btn) { text-decoration: underline; text-underline-offset: .2em; }

/* Constrained reading column, with wide / full alignments breaking out */
.rw-entry-content:not(.rw-entry-content--full):not(.rw-entry-content--post) > *:not(.alignwide):not(.alignfull) {
	max-width: var(--rw-narrow);
	margin-inline: auto;
}
.rw-entry-content:not(.rw-entry-content--full) > .alignwide { max-width: none; }
.alignfull { width: 100vw; max-width: 100vw; margin-inline: calc(50% - 50vw); }
.rw-entry-content--full > .alignfull { margin-inline: calc(50% - 50vw); }
.alignwide { margin-inline: auto; }
.alignleft { float: left; margin-inline: 0 1.5rem; margin-block-end: .5rem; }
.alignright { float: right; margin-inline: 1.5rem 0; margin-block-end: .5rem; }
[dir="rtl"] .alignleft { float: right; margin-inline: 1.5rem 0; }
[dir="rtl"] .alignright { float: left; margin-inline: 0 1.5rem; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text, .wp-element-caption, figcaption { color: var(--rw-muted); font-size: .875rem; }
.rw-entry-content::after { content: ""; display: table; clear: both; }

blockquote { margin: 1.75rem 0; padding: .25rem 1.25rem; border-inline-start: 3px solid var(--rw-accent); color: var(--rw-text); font-family: var(--rw-font-heading); font-size: 1.3rem; }
pre, code { font-size: .9em; background: var(--rw-soft); border-radius: 4px; }
code { padding: .1em .35em; }
pre { padding: 1rem; overflow: auto; border: 1px solid var(--rw-border); }
table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; }
th, td { padding: .65rem .85rem; border: 1px solid var(--rw-border); text-align: start; }
th { background: var(--rw-soft); }
.wp-block-button__link { border-radius: var(--rw-radius-btn); background: var(--rw-primary); color: #fff; font-weight: 600; }
.wp-block-button__link:hover { background: var(--rw-primary-dark); color: #fff; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 1.5px solid var(--rw-primary); color: var(--rw-primary); }
.wp-block-image img { border-radius: var(--rw-radius); }
.wp-block-separator { border: 0; border-top: 1px solid var(--rw-border); }

/* Blog post */
.rw-post__image { margin: 0 0 2rem; }
.rw-post__image img { display: block; width: 100%; border-radius: var(--rw-radius); }
.rw-page-links { margin: 2rem 0; }
.post-navigation .nav-links { display: grid; gap: 1rem; margin: 2.5rem 0; }
@media (min-width: 640px) { .post-navigation .nav-links { grid-template-columns: 1fr 1fr; } .post-navigation .nav-next { text-align: end; } }
.post-navigation a { display: block; padding: 1rem 1.25rem; border: 1px solid var(--rw-border); border-radius: var(--rw-radius); }
.post-navigation a:hover { border-color: var(--rw-accent); }
.rw-nav-label { display: block; color: var(--rw-muted); font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
html:lang(bn) .rw-nav-label, html:lang(ar) .rw-nav-label { letter-spacing: 0; text-transform: none; }

.rw-layout { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 992px) { .rw-layout--sidebar { grid-template-columns: minmax(0, 1fr) 19rem; } }
.rw-sidebar .widget { margin-bottom: 2rem; }
.rw-sidebar .widget-title { font-size: 1.15rem; }
.rw-sidebar ul { list-style: none; padding: 0; }
.rw-sidebar li { padding: .35rem 0; border-bottom: 1px solid var(--rw-border); }

/* Pagination */
.navigation.pagination { margin-top: 3rem; }
.pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
.page-numbers { display: inline-grid; place-items: center; min-width: 2.5rem; height: 2.5rem; padding-inline: .75rem; border: 1px solid var(--rw-border); border-radius: var(--rw-radius); color: var(--rw-text); }
a.page-numbers:hover { border-color: var(--rw-accent); }
.page-numbers.current { background: var(--rw-primary); border-color: var(--rw-primary); color: #fff; }
.page-numbers.dots { border: 0; }

/* Comments */
.rw-comments { margin-top: 3rem; }
.rw-comments__title { font-size: 1.5rem; }
.rw-comments__list .comment-body { padding: 1rem 0; border-bottom: 1px solid var(--rw-border); }
.rw-comments__list .children { list-style: none; padding-inline-start: 1.25rem; }
.rw-comments .avatar { border-radius: 50%; }

/* Forms (theme forms + common form plugins) */
input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"],
input[type="search"], input[type="password"], input[type="date"], select, textarea {
	width: 100%;
	max-width: 100%;
	padding: .7rem .9rem;
	background: var(--rw-bg);
	color: var(--rw-text);
	border: 1px solid #98A2B3;
	border: 1px solid color-mix(in srgb, var(--rw-text) 40%, var(--rw-bg));
	border-radius: var(--rw-radius);
	font: inherit;
}
input:focus, select:focus, textarea:focus { border-color: var(--rw-primary); outline: 3px solid var(--rw-primary-tint); outline-offset: 0; }
label { display: inline-block; margin-bottom: .35rem; font-weight: 500; }
input[type="submit"], button[type="submit"], .wpcf7-submit, .wpforms-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: .7rem 1.5rem;
	background: var(--rw-primary);
	color: #fff;
	border: 0;
	border-radius: var(--rw-radius-btn);
	font: 600 .9375rem/1.2 var(--rw-font-body);
	cursor: pointer;
}
input[type="submit"]:hover, button[type="submit"]:hover, .wpcf7-submit:hover, .wpforms-submit:hover { background: var(--rw-primary-dark); }
.rw-form { padding: clamp(1.25rem, 3vw, 2rem); background: var(--rw-bg); border: 1px solid var(--rw-border); border-radius: var(--rw-radius); }
.rw-form p { margin-bottom: 1rem; }
.rw-search { display: flex; gap: .5rem; max-width: 32rem; margin-inline: auto; }
.rw-search__field { flex: 1 1 auto; }
.rw-none { text-align: center; padding-block: 2rem; color: var(--rw-muted); }

/* ==========================================================================
   8. Footer
   ========================================================================== */
.rw-footer {
	position: relative;
	background: var(--rw-primary-dark);
	color: rgba(255, 255, 255, .82);
	font-size: .9375rem;
}
.rw-footer a { color: rgba(255, 255, 255, .88); }
.rw-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
.rw-footer__grid { display: grid; gap: 2rem; padding-block: clamp(2.5rem, 6vw, 4rem); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .rw-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) {
	.rw-footer__grid--1 { grid-template-columns: minmax(0, 1fr); }
	.rw-footer__grid--2 { grid-template-columns: 1.6fr 1fr; }
	.rw-footer__grid--3 { grid-template-columns: 1.6fr 1fr 1fr; }
	.rw-footer__grid--4 { grid-template-columns: 1.7fr 1fr 1fr 1.3fr; }
}
.rw-footer__brand { margin: 0 0 .5rem; color: #fff; font-family: var(--rw-font-heading); font-size: 1.75rem; font-weight: 700; line-height: 1.15; }
.rw-footer__tagline { margin: 0 0 .75rem; color: var(--rw-accent); font-weight: 600; }
.rw-footer__about { max-width: 26rem; margin: 0 0 1.25rem; }
.rw-footer__heading { margin: 0 0 1rem; color: #fff; font-family: var(--rw-font-body); font-size: .8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
html:lang(bn) .rw-footer__heading, html:lang(ar) .rw-footer__heading { letter-spacing: 0; text-transform: none; font-size: 1rem; }
.rw-footer__list { display: grid; gap: .55rem; }
.rw-footer__online { color: rgba(255, 255, 255, .7); }
.rw-social { display: flex; flex-wrap: wrap; gap: .5rem; }
.rw-social a { display: inline-block; padding: .3rem .8rem; border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px; color: #fff; font-size: .8125rem; text-decoration: none; }
.rw-social a:hover { background: rgba(255, 255, 255, .12); text-decoration: none; }
.rw-social--dark a { border-color: var(--rw-border); color: var(--rw-primary); }
.rw-social--dark a:hover { background: var(--rw-primary-tint); }
.rw-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding-block: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .875rem; }
.rw-footer__copy { margin: 0; }
.rw-footer--landing { text-align: center; }
.rw-footer--landing .rw-footer__copy { padding-block: 1.5rem; }

/* Print: keep it plain */
@media print {
	.rw-topbar, .rw-header, .rw-footer, .rw-sticky-cta { display: none !important; }
}
