/* ==========================================================================
   FUDMA homepage built from native Elementor elements.
   These rules are only a visual baseline: every value can be overridden from the
   Elementor Style tab (Elementor's own selectors are more specific than these).
   ========================================================================== */

body.fd-site {
	--fdn-ink: oklch(0.22 0.02 60);
	--fdn-muted: oklch(0.42 0.02 60);
	--fdn-cream: oklch(0.955 0.022 85);
	--fdn-cream-2: oklch(0.975 0.014 85);
	--fdn-gold: oklch(0.76 0.12 80);
	--fdn-gold-2: oklch(0.8 0.12 80);
	--fdn-line: oklch(0.88 0.02 85);
	--fdn-font: 'Libre Franklin', sans-serif;
}

/* neutralise Elementor's own widget spacing inside our sections */
body.fd-site .fd-n-sec .elementor-widget-container,
body.fd-site .fd-n-hero .elementor-widget-container { margin: 0; padding: 0; }
body.fd-site .fd-n-sec .elementor-widget:not(:last-child),
body.fd-site .fd-n-hero .elementor-widget:not(:last-child) { margin-block-end: 0; }
body.fd-site .fd-n-dyn { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; --gap: 0px; }
body.fd-site .fd-n-sec h1, body.fd-site .fd-n-sec h2, body.fd-site .fd-n-sec h3, body.fd-site .fd-n-sec p { margin: 0; }
body.fd-site .fd-n-sec .elementor-widget-text-editor p { margin: 0; }

/* ---------- shared type ---------- */
body.fd-site .fd-n-eyebrow .elementor-heading-title { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.3; color: var(--green-950); }
body.fd-site .fd-n-eyebrow-gold .elementor-heading-title { color: var(--fdn-gold-2); }
body.fd-site .fd-n-h2 .elementor-heading-title { font-family: var(--fdn-font); font-weight: 600; font-size: clamp(36px, 4vw, 56px); line-height: 1.1; letter-spacing: -0.025em; color: var(--fdn-ink); text-wrap: balance; }
body.fd-site .fd-n-h2-sm .elementor-heading-title { font-size: clamp(34px, 3.6vw, 48px); color: var(--green-950); }
body.fd-site .fd-n-h2-light .elementor-heading-title { color: #fff; }
body.fd-site .fd-n-h2 .fd-n-accent { color: var(--fdn-gold-2); }
body.fd-site .fd-n-body, body.fd-site .fd-n-body p { font-size: 15px; line-height: 26px; color: var(--fdn-muted); text-wrap: pretty; }
body.fd-site .fd-n-body { max-width: 540px; }
body.fd-site .fd-n-body-light, body.fd-site .fd-n-body-light p { color: rgba(255, 255, 255, 0.82); }
body.fd-site .fd-n-body-sm, body.fd-site .fd-n-body-sm p { font-size: 14px; line-height: 22px; }
body.fd-site .fd-n-body-sm { max-width: 320px; }

/* ---------- buttons ---------- */
body.fd-site .fd-n-btn .elementor-button {
	display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 22px; border-radius: 4px; border: 0;
	font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1; box-shadow: none;
	transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1), background 150ms ease-out, color 150ms ease-out;
}
body.fd-site .fd-n-btn .elementor-button-content-wrapper { gap: 8px; align-items: center; }
body.fd-site .fd-n-btn .elementor-button-icon { margin: 0; }
body.fd-site .fd-n-btn .elementor-button-icon svg, body.fd-site .fd-n-btn .elementor-button-icon i { width: 1em; height: 1em; font-size: 14px; }
body.fd-site .fd-n-btn-gold .elementor-button { background: var(--fdn-gold); color: oklch(0.22 0.03 60); }
body.fd-site .fd-n-btn-gold .elementor-button:hover { background: oklch(0.8 0.12 82); color: oklch(0.22 0.03 60); transform: translateY(-2px); }
body.fd-site .fd-n-btn-ghost .elementor-button { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6); }
body.fd-site .fd-n-btn-ghost .elementor-button:hover { background: rgba(255, 255, 255, 0.1); color: #fff; transform: translateY(-2px); }
body.fd-site .fd-n-btn-link-light .elementor-button { background: transparent; height: auto; padding: 0; font-size: 13px; font-weight: 500; color: #fff; }
body.fd-site .fd-n-btn-link-light .elementor-button:hover { color: var(--fdn-gold-2); background: transparent; }
body.fd-site .fd-n-btn-outline .elementor-button { height: 36px; padding: 0 14px; background: transparent; font-size: 13px; font-weight: 500; color: oklch(0.3 0.02 60); box-shadow: inset 0 0 0 1px oklch(0.86 0.02 85); }
body.fd-site .fd-n-btn-outline .elementor-button:hover { background: oklch(0.97 0.015 85); color: var(--green-900); }
body.fd-site .fd-n-btn-text .elementor-button { height: auto; padding: 0; background: transparent; font-size: 14px; color: var(--green-800); }
body.fd-site .fd-n-btn-text .elementor-button:hover { background: transparent; color: var(--green-950); transform: none; }
body.fd-site .fd-n-btn-sm .elementor-button { height: 40px; padding: 0 16px; font-size: 14px; }
body.fd-site .fd-n-btn-topic .elementor-button { height: auto; padding: 4px 0; background: transparent; font-size: 14px; font-weight: 400; color: #fff; border-radius: 0; box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.35); }
body.fd-site .fd-n-btn-topic .elementor-button:hover { background: transparent; color: var(--fdn-gold-2); box-shadow: inset 0 -1px 0 var(--fdn-gold-2); transform: none; }

/* ---------- hero ---------- */
body.fd-site .fd-n-hero { color: #fff; background-color: var(--green-950); position: relative; }
body.fd-site .fd-n-hero > .e-con-inner, body.fd-site .fd-n-hero .fd-n-hero-row { position: relative; z-index: 2; }
body.fd-site .fd-n-hero-row { align-items: flex-end; }
body.fd-site .fd-n-hero .fd-n-h1 .elementor-heading-title { font-family: var(--fdn-font); font-weight: 600; font-size: clamp(52px, 7vw, 100px); line-height: 1; letter-spacing: -0.03em; color: #fff; max-width: 760px; }
body.fd-site .fd-n-hero .fd-n-eyebrow .elementor-heading-title { font-size: 12px; }
body.fd-site .fd-n-lead, body.fd-site .fd-n-lead p { font-size: 18px; line-height: 1.6; color: rgba(255, 255, 255, 0.88); max-width: 540px; text-wrap: pretty; }
body.fd-site .fd-n-hero-strip { padding-top: 20px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3); font-size: 13px; }
body.fd-site .fd-n-strip-text .elementor-heading-title { font-size: 13px; font-weight: 400; color: rgba(255, 255, 255, 0.88); line-height: 1.4; }

/* ---------- vice-chancellor ---------- */
body.fd-site .fd-n-vc { background: #fff; }
body.fd-site .fd-n-vc-photo img { width: 100%; max-width: 400px; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 24px; background: oklch(0.95 0.02 85); display: block; }
body.fd-site .fd-n-quote .elementor-heading-title { font-family: var(--fdn-font); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.4; font-weight: 600; letter-spacing: -0.01em; color: var(--fdn-ink); text-wrap: pretty; }
body.fd-site .fd-n-vc-sig { padding-top: 18px; box-shadow: inset 0 1px 0 oklch(0.9 0.02 85); }
body.fd-site .fd-n-vc-name .elementor-heading-title { font-size: 15px; font-weight: 600; line-height: 1.4; color: var(--fdn-ink); }
body.fd-site .fd-n-vc-role .elementor-heading-title { font-size: 14px; font-weight: 400; line-height: 1.4; color: oklch(0.45 0.02 60); }

/* ---------- life ---------- */
body.fd-site .fd-n-life { background: var(--fdn-cream-2); }
body.fd-site .fd-n-life-left { position: relative; padding: 0 24px 24px 0; }
body.fd-site .fd-n-life-photo img { width: 100%; aspect-ratio: 4 / 5; max-height: 620px; object-fit: cover; display: block; }
body.fd-site .fd-n-tag { position: absolute; right: 0; bottom: 0; width: min(220px, 55%); padding: 20px 24px; background: var(--fdn-gold); color: oklch(0.22 0.03 60); }
body.fd-site .fd-n-tag-title .elementor-heading-title { font-family: var(--fdn-font); font-size: 26px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; color: oklch(0.22 0.03 60); }
body.fd-site .fd-n-tag-text .elementor-heading-title { font-size: 13px; font-weight: 400; line-height: 18px; color: oklch(0.22 0.03 60); }
body.fd-site .fd-n-tilegrid { box-shadow: inset 0 0 0 1px var(--fdn-line); }
body.fd-site .fd-n-tile { padding: 16px; min-height: 104px; box-shadow: inset -1px 0 0 var(--fdn-line), inset 0 -1px 0 var(--fdn-line); transition: background 150ms ease-out; }
body.fd-site .fd-n-tile:hover { background: #fff; }
body.fd-site .fd-n-tile-icon .elementor-icon, body.fd-site .fd-n-card-icon .elementor-icon { font-size: 18px; line-height: 1; color: oklch(0.65 0.12 75); }
body.fd-site .fd-n-tile-icon .elementor-icon-wrapper { text-align: left; }
body.fd-site .fd-n-tile-title .elementor-heading-title, body.fd-site .fd-n-tile-title a { font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--fdn-ink); }
body.fd-site .fd-n-tile:hover .elementor-heading-title a { color: var(--green-900); }

/* ---------- journey ---------- */
body.fd-site .fd-n-journey { background-color: var(--green-950); background-image: radial-gradient(rgba(255, 255, 255, 0.09) 1px, transparent 1.2px); background-size: 18px 18px; color: #fff; }
body.fd-site .fd-n-journey .fd-n-h2 .elementor-heading-title { font-size: clamp(38px, 4.4vw, 60px); line-height: 1.08; max-width: 520px; }
body.fd-site .fd-n-steps { background-image: linear-gradient(rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.22)); background-size: 100% 1px; background-repeat: no-repeat; background-position: 0 3px; }
body.fd-site .fd-n-step::before { content: ""; display: block; width: 7px; height: 7px; border-radius: 999px; background: var(--fdn-gold-2); margin-bottom: 16px; }
body.fd-site .fd-n-step-no .elementor-heading-title { font-family: var(--fdn-font); font-size: 22px; font-weight: 500; line-height: 1.2; color: var(--fdn-gold-2); }
body.fd-site .fd-n-step-title .elementor-heading-title { font-size: 15px; font-weight: 600; line-height: 1.3; color: #fff; }
body.fd-site .fd-n-step-text, body.fd-site .fd-n-step-text p { font-size: 13px; line-height: 19px; color: rgba(255, 255, 255, 0.7); margin-top: 2px; }

/* ---------- opportunities ---------- */
body.fd-site .fd-n-opps { background: var(--fdn-cream); }
body.fd-site .fd-n-card { background: #fff; transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 200ms ease-out; }
body.fd-site .fd-n-card:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -20px rgba(40, 30, 10, 0.35); }
body.fd-site .fd-n-card-icon .elementor-icon-wrapper { display: flex; }
body.fd-site .fd-n-card-icon .elementor-icon { width: 32px; height: 32px; border-radius: 6px; display: flex; align-items: center; justify-content: center; background: var(--green-50); color: var(--green-800); font-size: 15px; }
body.fd-site .fd-n-badge .elementor-heading-title { padding: 3px 8px; border-radius: 999px; font-size: 11px; font-weight: 500; line-height: 1.4; }
body.fd-site .fd-n-badge-timed .elementor-heading-title { background: oklch(0.95 0.04 50); color: var(--orange-700); }
body.fd-site .fd-n-badge-on .elementor-heading-title { background: oklch(0.95 0.005 85); color: oklch(0.4 0.02 60); }
body.fd-site .fd-n-card-title .elementor-heading-title, body.fd-site .fd-n-card-title a { font-family: var(--fdn-font); font-size: 19px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; color: var(--fdn-ink); }
body.fd-site .fd-n-card-text, body.fd-site .fd-n-card-text p { font-size: 13px; line-height: 20px; color: var(--fdn-muted); }

/* ---------- voices ---------- */
body.fd-site .fd-n-voices { background: var(--100, #f5f5f5); }
body.fd-site .fd-n-vcard { border-radius: 20px; min-height: 300px; transition: transform 250ms cubic-bezier(0.22, 1, 0.36, 1); }
body.fd-site .fd-n-vcard:hover { transform: translateY(-4px); }
body.fd-site .fd-n-v1 { background: var(--green-800); color: #fff; }
body.fd-site .fd-n-v2 { background: oklch(0.82 0.09 82); color: var(--green-950); }
body.fd-site .fd-n-v3 { background: #fff; color: var(--green-950); }
body.fd-site .fd-n-vcard .elementor-heading-title { color: inherit; }
body.fd-site .fd-n-qmark .elementor-heading-title { font-family: var(--fdn-font); font-size: 44px; line-height: 0.6; font-weight: 700; opacity: 0.4; }
body.fd-site .fd-n-vquote .elementor-heading-title { font-size: 21px; line-height: 1.45; font-weight: 500; letter-spacing: -0.01em; text-wrap: pretty; max-width: 300px; }
body.fd-site .fd-n-avatar .elementor-heading-title { width: 40px; height: 40px; border-radius: 999px; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 15px; line-height: 1; }
body.fd-site .fd-n-v1 .fd-n-avatar .elementor-heading-title { background: oklch(0.82 0.09 82); color: var(--green-950); }
body.fd-site .fd-n-v2 .fd-n-avatar .elementor-heading-title { background: var(--green-800); color: #fff; }
body.fd-site .fd-n-v3 .fd-n-avatar .elementor-heading-title { background: var(--orange-600); color: #fff; }
body.fd-site .fd-n-vname .elementor-heading-title { font-size: 14px; font-weight: 600; line-height: 1.4; }
body.fd-site .fd-n-vmeta .elementor-heading-title { font-size: 12px; font-weight: 400; line-height: 1.4; opacity: 0.75; }

/* ---------- learning ---------- */
body.fd-site .fd-n-learn { background: oklch(0.23 0.012 60); color: #fff; }
body.fd-site .fd-n-learn-left { position: relative; aspect-ratio: 1.18; }
body.fd-site .fd-n-learn-a { position: absolute; left: 0; top: 0; width: 66%; height: 77%; border-radius: 8px; overflow: hidden; }
body.fd-site .fd-n-learn-b { position: absolute; right: 0; bottom: 0; width: 59%; height: 56%; border-radius: 8px; overflow: hidden; box-shadow: 0 0 0 2px oklch(0.23 0.012 60), 0 30px 60px -20px rgba(0, 0, 0, 0.6); }
body.fd-site .fd-n-learn-a .elementor-widget-container, body.fd-site .fd-n-learn-b .elementor-widget-container { height: 100%; }
body.fd-site .fd-n-learn-a img, body.fd-site .fd-n-learn-b img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- stats ---------- */
body.fd-site .fd-n-stats { background: var(--fdn-gold); color: oklch(0.22 0.03 60); }
body.fd-site .fd-n-stat { box-shadow: inset -1px 0 0 rgba(60, 40, 10, 0.18); }
body.fd-site .fd-n-stat-no .elementor-heading-title { font-family: var(--fdn-font); font-size: clamp(48px, 5vw, 68px); line-height: 1; font-weight: 600; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: oklch(0.22 0.03 60); }
body.fd-site .fd-n-stat-label .elementor-heading-title { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; line-height: 16px; max-width: 140px; color: oklch(0.22 0.03 60); }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
	body.fd-site .fd-n-hero-right { display: none; }
	body.fd-site .fd-n-vc-photo img { max-width: 320px; }
	body.fd-site .fd-n-learn-left { max-width: 560px; }
}
@media (max-width: 767px) {
	body.fd-site .fd-n-hero .fd-n-btn .elementor-button { height: 46px; }
	body.fd-site .fd-n-life-left { padding: 0 16px 16px 0; }
	body.fd-site .fd-n-stat { box-shadow: inset 0 -1px 0 rgba(60, 40, 10, 0.18); padding: 32px 20px; }
}

/* icons follow the text colour (Elementor's default is its global accent) */
body.fd-site .fd-n-sec .elementor-icon svg,
body.fd-site .fd-n-sec .elementor-button-icon svg,
body.fd-site .fd-n-hero .elementor-button-icon svg { fill: currentColor; color: inherit; }
body.fd-site .fd-n-sec .elementor-button-icon { color: inherit; }
body.fd-site .fd-n-journey .fd-n-h2-light .elementor-heading-title { max-width: 640px; }
body.fd-site .fd-n-vc-photo img { object-position: center top; }
body.fd-site .fd-n-stat:last-child { box-shadow: none; }
