/* =====================================================================
   Raseedna — main stylesheet
   Design tokens match project spec §45. Customizer color overrides
   (inc/customizer.php) redefine these same CSS variables in <head>,
   so changing colors in wp-admin never requires editing this file.
   ===================================================================== */

:root {
	--rsd-green: #0F6B5C;
	--rsd-green-dark: #0A4B41;
	--rsd-gold: #E8A93C;
	--rsd-coral: #F26B4D;
	--rsd-bg: #FAF7F2;
	--rsd-surface: #FFFFFF;
	--rsd-text: #1E2A28;
	--rsd-text-muted: #5C6B68;
	--rsd-locked: #C9CFCD;
	--rsd-success: #3FA76B;
	--rsd-retry: #E0784F;

	--rsd-radius-card: 16px;
	--rsd-radius-btn: 12px;
	--rsd-space-1: 8px;
	--rsd-space-2: 16px;
	--rsd-space-3: 24px;
	--rsd-space-4: 32px;
	--rsd-space-6: 48px;
	--rsd-space-8: 64px;
	--rsd-shadow-card: 0 4px 16px rgba(15, 107, 92, 0.08);

	--rsd-font-heading: 'Cairo', 'Poppins', sans-serif;
	--rsd-font-body: 'IBM Plex Sans Arabic', 'Inter', sans-serif;
}

/* ---- Reset / base ------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--rsd-bg);
	color: var(--rsd-text);
	font-family: var(--rsd-font-body);
	font-variant-numeric: tabular-nums lining-nums;
	line-height: 1.7;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 {
	font-family: var(--rsd-font-heading);
	font-weight: 800;
	color: var(--rsd-text);
	margin: 0 0 var(--rsd-space-2);
}
button, input, select, textarea { font-family: inherit; font-size: 1rem; }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	overflow: hidden;
	height: 1px; width: 1px;
}
.rsd-skip-link:focus {
	position: fixed; top: 8px; inset-inline-start: 8px; z-index: 9999;
	background: var(--rsd-green); color: #fff; padding: 8px 16px; border-radius: 8px;
	clip: auto; width: auto; height: auto;
}

.rsd-container { max-width: 1180px; margin: 0 auto; padding: 0 var(--rsd-space-3); }
.rsd-section { padding: var(--rsd-space-8) 0; }
.rsd-section--tinted { background: rgba(15, 107, 92, 0.04); }
.rsd-section__title { font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: var(--rsd-space-1); }
.rsd-section__subtitle { color: var(--rsd-text-muted); margin-bottom: var(--rsd-space-4); }

/* ---- Buttons -------------------------------------------------------- */
.rsd-btn {
	display: inline-block;
	border: 2px solid transparent;
	border-radius: var(--rsd-radius-btn);
	padding: 12px 24px;
	font-weight: 700;
	cursor: pointer;
	transition: transform .15s ease, background .15s ease;
	background: var(--rsd-green);
	color: #fff;
}
.rsd-btn:hover { transform: translateY(-1px); }
.rsd-btn--cta { background: var(--rsd-coral); }
.rsd-btn--cta:hover { background: #e0593d; }
.rsd-btn--outline { background: transparent; border-color: #fff; color: #fff; }
.rsd-btn--outline-danger { background: transparent; border-color: var(--rsd-retry); color: var(--rsd-retry); }
.rsd-btn--lg { padding: 16px 32px; font-size: 1.1rem; }
.rsd-btn--sm { padding: 8px 16px; font-size: .9rem; }

/* ---- Header --------------------------------------------------------- */
.rsd-header {
	position: sticky; top: 0; z-index: 100;
	background: rgba(250, 247, 242, 0.92);
	backdrop-filter: blur(6px);
	border-bottom: 1px solid rgba(15, 107, 92, 0.08);
	transition: box-shadow .2s ease;
}
.rsd-header.is-scrolled { box-shadow: var(--rsd-shadow-card); }
.rsd-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: var(--rsd-space-3);
	padding: var(--rsd-space-2) var(--rsd-space-3);
}
.rsd-header__brand-text { font-family: var(--rsd-font-heading); font-weight: 800; font-size: 1.4rem; color: var(--rsd-green); }
.rsd-menu { list-style: none; display: flex; gap: var(--rsd-space-3); margin: 0; padding: 0; }
.rsd-menu a { font-weight: 600; }
.rsd-menu a:hover { color: var(--rsd-green); }
.rsd-header__account { display: flex; align-items: center; gap: var(--rsd-space-2); }
.rsd-header__account-link { font-weight: 600; font-size: .95rem; }
.rsd-header__burger { display: none; flex-direction: column; gap: 4px; background: none; border: none; cursor: pointer; padding: 8px; }
.rsd-header__burger span { width: 22px; height: 2px; background: var(--rsd-text); display: block; }

.rsd-mobile-menu { display: none; background: var(--rsd-surface); padding: var(--rsd-space-3); border-top: 1px solid rgba(15,107,92,.08); }
.rsd-mobile-menu[hidden] { display: none; }
body.rsd-mobile-menu-open .rsd-mobile-menu { display: block; }
.rsd-mobile-menu__list { list-style: none; margin: 0 0 var(--rsd-space-2); padding: 0; display: flex; flex-direction: column; gap: var(--rsd-space-2); }
.rsd-mobile-menu__account { display: flex; flex-direction: column; gap: var(--rsd-space-1); border-top: 1px solid rgba(15,107,92,.08); padding-top: var(--rsd-space-2); }

@media (max-width: 880px) {
	.rsd-header__menu, .rsd-header__account { display: none; }
	.rsd-header__burger { display: flex; }
}

/* ---- Hero ------------------------------------------------------------ */
.rsd-hero { position: relative; overflow: hidden; padding: var(--rsd-space-8) 0; text-align: center; }
.rsd-hero__growth-bg { position: absolute; inset: 0; opacity: .5; pointer-events: none; }
.rsd-hero__growth-bg svg { width: 100%; height: 100%; }
.rsd-hero__inner { position: relative; z-index: 1; max-width: 780px; }
.rsd-hero__title { font-size: clamp(2rem, 5vw, 3.2rem); }
.rsd-hero__subtitle { font-size: 1.2rem; color: var(--rsd-green-dark); font-weight: 600; margin-bottom: var(--rsd-space-2); }
.rsd-hero__desc { color: var(--rsd-text-muted); margin-bottom: var(--rsd-space-4); }
.rsd-hero__ctas { display: flex; gap: var(--rsd-space-2); justify-content: center; flex-wrap: wrap; }
.rsd-hero__ctas .rsd-btn--outline { background: var(--rsd-green); border-color: var(--rsd-green); }

/* ---- Growth line motif ------------------------------------------------ */
.rsd-growth-line { width: 100%; height: 100%; display: block; }

/* ---- Journey steps ----------------------------------------------------- */
.rsd-journey-steps { position: relative; }
.rsd-journey-steps__line { position: absolute; inset: 0; opacity: .25; pointer-events: none; }
.rsd-journey-steps__list {
	position: relative; z-index: 1;
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--rsd-space-3);
}
.rsd-journey-steps__item {
	background: var(--rsd-surface); border-radius: var(--rsd-radius-card);
	box-shadow: var(--rsd-shadow-card); padding: var(--rsd-space-3); text-align: center;
}
.rsd-journey-steps__num {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	background: var(--rsd-green); color: #fff; font-weight: 800;
	margin-bottom: var(--rsd-space-1);
}
@media (max-width: 720px) { .rsd-journey-steps__list { grid-template-columns: 1fr; } }

/* ---- Chapter cards / grid ---------------------------------------------- */
.rsd-chapter-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--rsd-space-3);
}
@media (max-width: 980px) { .rsd-chapter-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .rsd-chapter-grid { grid-template-columns: 1fr; } }

.rsd-chapter-card {
	--rsd-chapter-accent: var(--rsd-green);
	background: var(--rsd-surface);
	border: 1px solid rgba(15,107,92,.06);
	border-radius: var(--rsd-radius-card);
	box-shadow: var(--rsd-shadow-card);
	padding: var(--rsd-space-3);
	display: flex; flex-direction: column; gap: var(--rsd-space-1);
	border-top: 4px solid var(--rsd-chapter-accent);
}
.rsd-chapter-card__top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.rsd-chapter-card__icon img { width: 40px; height: 40px; border-radius: 10px; object-fit: cover; }
.rsd-chapter-card__number { font-family: var(--rsd-font-heading); font-weight: 800; color: var(--rsd-chapter-accent); font-size: 1.3rem; }
.rsd-chapter-card__badge { font-size: .8rem; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
.rsd-chapter-card__badge--done { background: rgba(63,167,107,.12); color: var(--rsd-success); }
.rsd-chapter-card__badge--locked { background: rgba(0,0,0,.05); }
.rsd-chapter-card__title { font-size: 1.15rem; margin-bottom: 0; }
.rsd-chapter-card__desc, .rsd-chapter-card__teaser { color: var(--rsd-text-muted); font-size: .95rem; margin: 0; }
.rsd-chapter-card__cta {
	margin-top: auto; align-self: flex-start;
	background: var(--rsd-coral); color: #fff; font-weight: 700;
	padding: 8px 18px; border-radius: var(--rsd-radius-btn);
}
.rsd-chapter-card__locked-note { color: var(--rsd-locked); font-size: .9rem; margin-top: auto; }
.rsd-chapter-card.is-locked { opacity: .7; }
.rsd-chapter-card.is-completed { --rsd-chapter-accent: var(--rsd-gold); }
.rsd-chapter-card--more {
	align-items: center; text-align: center; justify-content: center;
	background: linear-gradient(160deg, rgba(15,107,92,.06), rgba(232,169,60,.10));
	border-top-color: var(--rsd-gold);
}
.rsd-chapter-grid--full { grid-template-columns: repeat(3, 1fr); }

/* ---- Subscription section ---------------------------------------------- */
.rsd-subscribe { text-align: center; }
.rsd-subscribe__price { font-size: 2rem; font-weight: 800; color: var(--rsd-green); font-family: var(--rsd-font-heading); }

/* ---- Activation form ---------------------------------------------------- */
.rsd-activation { max-width: 480px; margin: 0 auto; background: var(--rsd-surface); border-radius: var(--rsd-radius-card); box-shadow: var(--rsd-shadow-card); padding: var(--rsd-space-4); }
.rsd-form-row { margin-bottom: var(--rsd-space-2); display: flex; flex-direction: column; gap: 6px; }
.rsd-form-row label { font-weight: 700; font-size: .9rem; }
.rsd-form-row input, .rsd-form-row textarea {
	padding: 10px 14px; border: 1px solid rgba(15,107,92,.2); border-radius: var(--rsd-radius-btn);
	background: var(--rsd-bg);
}
.rsd-form-error { color: var(--rsd-retry); font-weight: 600; }
.rsd-form-success { color: var(--rsd-success); font-weight: 600; }

/* ---- Quiz --------------------------------------------------------------- */
.rsd-quiz__eyebrow { color: var(--rsd-gold); font-weight: 700; margin-bottom: 4px; }
.rsd-quiz__done-note { color: var(--rsd-text-muted); }
.rsd-quiz__progress { height: 8px; background: rgba(15,107,92,.08); border-radius: 999px; overflow: hidden; margin-bottom: var(--rsd-space-4); }
.rsd-quiz__progress-bar { height: 100%; background: var(--rsd-gold); width: 0; transition: width .3s ease; }
.rsd-quiz__q-text { font-size: 1.3rem; margin-bottom: var(--rsd-space-3); }
.rsd-quiz__options { display: flex; flex-direction: column; gap: var(--rsd-space-1); }
.rsd-quiz__option {
	text-align: start; padding: 14px 18px; border-radius: var(--rsd-radius-btn);
	border: 2px solid rgba(15,107,92,.15); background: var(--rsd-surface); cursor: pointer;
	font-weight: 600; transition: border-color .15s ease, background .15s ease;
}
.rsd-quiz__option:hover:not(:disabled) { border-color: var(--rsd-green); }
.rsd-quiz__option:disabled { cursor: default; }
.rsd-quiz__option.is-correct { border-color: var(--rsd-success); background: rgba(63,167,107,.1); }
.rsd-quiz__option.is-incorrect { border-color: var(--rsd-retry); background: rgba(224,120,79,.08); }
.rsd-quiz__feedback { margin-top: var(--rsd-space-2); font-weight: 600; }
.rsd-quiz__feedback.is-correct { color: var(--rsd-success); }
.rsd-quiz__feedback.is-incorrect { color: var(--rsd-retry); }
.rsd-quiz__complete { text-align: center; padding: var(--rsd-space-6) 0; }

/* ---- My Journey page ------------------------------------------------------ */
.rsd-journey__progress-label { color: var(--rsd-text-muted); font-weight: 600; margin-bottom: var(--rsd-space-3); }
.rsd-journey__cert-cta { text-align: center; margin-top: var(--rsd-space-6); padding: var(--rsd-space-4); background: rgba(232,169,60,.08); border-radius: var(--rsd-radius-card); }

/* ---- Achievements ---------------------------------------------------------- */
.rsd-achievements__summary { display: flex; flex-wrap: wrap; gap: var(--rsd-space-3); align-items: center; background: var(--rsd-surface); border-radius: var(--rsd-radius-card); box-shadow: var(--rsd-shadow-card); padding: var(--rsd-space-3); margin-bottom: var(--rsd-space-4); position: relative; overflow: hidden; }
.rsd-achievements__sparkline { position: absolute; inset: 0; opacity: .15; }
.rsd-achievements__stat { position: relative; z-index: 1; text-align: center; min-width: 100px; }
.rsd-achievements__stat-num { display: block; font-family: var(--rsd-font-heading); font-weight: 800; font-size: 1.6rem; color: var(--rsd-green); }
.rsd-achievements__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--rsd-space-2); }
.rsd-achievement-badge { background: var(--rsd-surface); border-radius: var(--rsd-radius-card); box-shadow: var(--rsd-shadow-card); padding: var(--rsd-space-2); text-align: center; }
.rsd-achievement-badge__icon { display: block; font-size: 1.8rem; margin-bottom: 4px; }
.rsd-achievement-badge.is-locked { opacity: .5; }

/* ---- Financial dictionary ----------------------------------------------------- */
.rsd-dictionary__search input { width: 100%; max-width: 420px; padding: 12px 16px; border-radius: var(--rsd-radius-btn); border: 1px solid rgba(15,107,92,.2); margin-bottom: var(--rsd-space-3); }
.rsd-dictionary__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--rsd-space-2); }
.rsd-term-card { perspective: 1000px; background: none; border: none; padding: 0; cursor: pointer; height: 160px; }
.rsd-term-card__inner {
	position: relative; width: 100%; height: 100%;
	transition: transform .5s; transform-style: preserve-3d;
	border-radius: var(--rsd-radius-card); box-shadow: var(--rsd-shadow-card);
}
.rsd-term-card.is-flipped .rsd-term-card__inner { transform: rotateY(180deg); }
.rsd-term-card__front, .rsd-term-card__back {
	position: absolute; inset: 0; backface-visibility: hidden;
	border-radius: var(--rsd-radius-card); background: var(--rsd-surface);
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	padding: var(--rsd-space-2); text-align: center;
}
.rsd-term-card__back { transform: rotateY(180deg); background: rgba(15,107,92,.05); font-size: .9rem; }
.rsd-term-card__category { font-size: .75rem; color: var(--rsd-gold); font-weight: 700; }

/* ---- Goals ------------------------------------------------------------------- */
.rsd-goal-card { background: var(--rsd-surface); border-radius: var(--rsd-radius-card); box-shadow: var(--rsd-shadow-card); padding: var(--rsd-space-3); margin-bottom: var(--rsd-space-2); }
.rsd-goal-card__bar { height: 10px; background: rgba(15,107,92,.08); border-radius: 999px; overflow: hidden; margin: 8px 0; }
.rsd-goal-card__fill { height: 100%; background: var(--rsd-gold); }
.rsd-goal-card__add-row { display: flex; gap: 8px; margin-top: 8px; }
.rsd-goal-card__add-row input { flex: 1; padding: 8px 12px; border-radius: var(--rsd-radius-btn); border: 1px solid rgba(15,107,92,.2); }
.rsd-goal-card__delete { background: none; border: none; color: var(--rsd-retry); font-weight: 700; cursor: pointer; margin-top: 8px; }
.rsd-goal-card.is-completed { border: 2px solid var(--rsd-success); }
.rsd-goal-form { background: var(--rsd-surface); border-radius: var(--rsd-radius-card); box-shadow: var(--rsd-shadow-card); padding: var(--rsd-space-3); margin-top: var(--rsd-space-2); max-width: 420px; }

/* ---- Account ------------------------------------------------------------------- */
.rsd-account__overview { display: flex; gap: var(--rsd-space-3); flex-wrap: wrap; background: var(--rsd-surface); border-radius: var(--rsd-radius-card); box-shadow: var(--rsd-shadow-card); padding: var(--rsd-space-3); margin-bottom: var(--rsd-space-4); }
.rsd-account__danger { margin-top: var(--rsd-space-4); padding-top: var(--rsd-space-3); border-top: 1px solid rgba(224,120,79,.3); }

/* ---- Certificate --------------------------------------------------------------- */
.rsd-certificate {
	position: relative; overflow: hidden;
	max-width: 820px; margin: 0 auto; background: var(--rsd-surface);
	border: 3px solid var(--rsd-gold); border-radius: var(--rsd-radius-card);
	padding: var(--rsd-space-8); text-align: center;
}
.rsd-certificate__growth-line { position: absolute; inset: 0; opacity: .1; pointer-events: none; }
.rsd-certificate__title { font-size: 2.2rem; color: var(--rsd-green); }
.rsd-certificate__body { font-size: 1.15rem; line-height: 2; max-width: 600px; margin: var(--rsd-space-3) auto; position: relative; z-index: 1; }
.rsd-certificate__signature { font-weight: 800; color: var(--rsd-gold); }
.rsd-certificate__preview-badge { margin-top: var(--rsd-space-3); display: inline-block; background: rgba(224,120,79,.1); color: var(--rsd-retry); padding: 8px 16px; border-radius: 999px; font-weight: 700; }
.rsd-certificate__actions { text-align: center; margin-top: var(--rsd-space-4); }
.rsd-certificate__locked-note { text-align: center; color: var(--rsd-text-muted); }
@media print {
	.rsd-header, .rsd-footer, .rsd-certificate__actions, .rsd-certificate__locked-note { display: none !important; }
	.rsd-certificate { border: none; box-shadow: none; }
}

/* ---- Contact ------------------------------------------------------------------- */
.rsd-contact__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--rsd-space-4); }
.rsd-contact__map iframe { width: 100%; height: 220px; border: 0; border-radius: var(--rsd-radius-card); margin-top: var(--rsd-space-2); }
.rsd-contact__social a { margin-inline-end: 12px; font-weight: 700; color: var(--rsd-green); }
@media (max-width: 820px) { .rsd-contact__grid { grid-template-columns: 1fr; } }

/* ---- Parent guide ---------------------------------------------------------------- */
.rsd-parent-tips { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); gap: var(--rsd-space-3); margin-top: var(--rsd-space-3); }
.rsd-parent-tip-card { background: var(--rsd-surface); border-radius: var(--rsd-radius-card); box-shadow: var(--rsd-shadow-card); padding: var(--rsd-space-3); }

/* ---- Footer ---------------------------------------------------------------------- */
.rsd-footer { background: var(--rsd-green); color: rgba(255,255,255,.9); margin-top: var(--rsd-space-8); }
.rsd-footer h4 { color: #fff; }
.rsd-footer a { color: rgba(255,255,255,.85); }
.rsd-footer a:hover { color: #fff; }
.rsd-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--rsd-space-4); padding: var(--rsd-space-6) var(--rsd-space-3); }
.rsd-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rsd-footer__contact-info { list-style: none; margin: 8px 0; padding: 0; }
.rsd-footer__social { display: flex; gap: 12px; margin-top: 8px; }
.rsd-footer__bottom { border-top: 1px solid rgba(255,255,255,.15); padding: var(--rsd-space-2) 0; text-align: center; font-size: .9rem; }
@media (max-width: 780px) { .rsd-footer__grid { grid-template-columns: 1fr; } }

/* ---- Generic article / legal pages ------------------------------------------------- */
.rsd-article__content, .rsd-page { line-height: 1.9; }
.rsd-notice { background: rgba(232,169,60,.12); border-radius: var(--rsd-radius-card); padding: var(--rsd-space-2); color: var(--rsd-text); }
