/*
Theme Name: FUDMA v3
Theme URI: https://fudutsinma.edu.ng/
Author: JVB
Description: FUDMA v3 builds the Federal University Dutsin-Ma homepage entirely from native Elementor elements (containers, headings, text, buttons, images, icons), so you edit it the way you would on Astra or any Elementor-first theme. <strong>HOW IT WORKS:</strong> when you activate it the theme imports its images, reuses your existing pages (matched by address, then by title) and only creates the ones you do not have, builds the menus, and creates a page called <em>FUDMA Home</em>. If your site has no static front page, FUDMA Home becomes the homepage automatically. If one is already set, FUDMA Home is saved as a draft and an admin notice appears: publish it, then go to Settings, Reading, choose A static page, and pick FUDMA Home. <strong>HOW TO USE:</strong> Pages, FUDMA Home, Edit with Elementor. Click any text, button, image or container to edit it. Drag elements anywhere, add widgets from the panel, duplicate a card to add another, change columns, backgrounds, fonts and colours. For the hero background and overlay, click the Hero container, then Style, Background and Background Overlay. <strong>FULLY NATIVE (every piece editable in Elementor):</strong> Hero, Vice-Chancellor welcome, Life at FUDMA, Your journey, Opportunities, Student perspectives, Learning and research, By the numbers. <strong>NOT NATIVE, EDITED AS FUDMA WIDGETS (click the block in Elementor and use its Content and Style tabs; you can move, hide or delete the block, but not split it into smaller parts):</strong> Notice bar, Start Here with quick tasks and the Programme Finder band, ICT-driven university with its slider, News and Notices, Events and Bulletin. <strong>CONTENT THAT COMES FROM ELSEWHERE:</strong> news, slider and bulletin items come from your Posts (use the categories bulletin and events; The Events Calendar plugin is used for events when installed). The programme list inside the Programme Finder panel lives in the theme file inc/data.php (filter fudma_programmes). The header menu, top-bar links and footer columns come from Appearance, Menus. The logo comes from Customizer, Site Identity. Footer contact details, social links and portal links come from Customizer, FUDMA Theme. <strong>NOT EDITABLE IN ELEMENTOR:</strong> the header and footer (use Elementor Pro Theme Builder to replace them) and the Programme Finder panel itself. <strong>NOTE:</strong> the Customizer sections for hero, Vice-Chancellor, numbers and so on only drive the fallback homepage shown when FUDMA Home is not the front page; they do not change the Elementor page. <strong>EXISTING PAGES:</strong> if a link or menu item opened a blank page, go to Appearance, FUDMA Pages: it rebuilds the five-item menu (Study, Admissions, Student Life, Research, About) from your pages, finds blank duplicates (and lets you choose your own page for any blank one), reconnects menus, sub-pages and homepage buttons to your real pages, moves the blanks to Trash, and lets you pick where each homepage button points. <strong>RESET:</strong> Appearance, Reset FUDMA homepage rebuilds the page from the original layout. Full illustrated guide with tables: Appearance, FUDMA v3 Guide. Needs Elementor (free is enough; a recent version, tested on 4.0). Installs beside v1 and v2.
Version: 3.2.2
Requires at least: 6.3
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: fudma-theme-v3
Tags: education, custom-menu, custom-logo, featured-images, full-width-template, theme-options, translation-ready
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root {
	--green-50: rgb(227, 247, 236);
	--green-700: rgb(23, 140, 78);
	--green-800: rgb(26, 117, 68);
	--green-900: rgb(22, 100, 59);
	--green-950: rgb(11, 70, 39);
	--orange-600: rgb(225, 102, 20);
	--orange-700: rgb(206, 94, 18);
	--orange-800: rgb(183, 83, 16);
	--purple-50: rgb(239, 235, 255);
	--purple-700: rgb(91, 44, 201);
	--100: rgb(245, 245, 245);
	--bg-white-0: rgb(255, 255, 255);
	--bg-weak-50: rgb(247, 247, 247);
	--bg-soft-200: rgb(235, 235, 235);
	--stroke-soft-200: rgb(235, 235, 235);
	--text-soft-400: rgb(163, 163, 163);
	--text-sub-600: rgb(92, 92, 92);
	--text-strong-950: rgb(23, 23, 23);
	--fd-gold: oklch(0.76 0.12 80);
	--fd-gold-light: oklch(0.8 0.12 80);
	--fd-ink: oklch(0.22 0.02 60);
	--fd-cream: oklch(0.985 0.01 85);
}

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

html { scroll-behavior: smooth; }

body.fd-site {
	margin: 0;
	background: var(--fd-cream);
	color: var(--fd-ink);
	font-family: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	-webkit-font-smoothing: antialiased;
}

:where(.fd-site) a { color: var(--green-800); text-decoration: none; }
:where(.fd-site) a:hover { color: var(--green-900); }
:where(.fd-site) img { max-width: 100%; height: auto; }
:where(.fd-site) :focus-visible { outline: 2px solid var(--fd-gold); outline-offset: 2px; }

.fd-main { min-height: 50vh; }

.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; word-wrap: normal !important;
}
.fd-skip { position: absolute; left: -9999px; top: 8px; z-index: 100000; background: #fff; color: var(--green-950); padding: 10px 14px; border-radius: 4px; font-weight: 600; }
.fd-skip:focus { left: 16px; }

body.fd-site .fd-fill { display: block; width: 100%; height: 100%; object-fit: cover; }
body.fd-site .fd-i { flex-shrink: 0; }

[hidden] { display: none !important; }
body.fd-site .fd-if { display: contents; }

/* ==========================================================================
   Notice bar (marquee)
   ========================================================================== */
@keyframes fd-marquee { to { transform: translateX(-50%); } }
body.fd-site .fd-marquee { animation: fd-marquee 60s linear infinite; }
body.fd-site .fd-marquee:hover { animation-play-state: paused; }

/* ==========================================================================
   Header
   ========================================================================== */
body.fd-site .fd-nav { margin-left: auto; }
body.fd-site .fd-menu { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
body.fd-site .fd-menu > li { position: relative; margin: 0; }
body.fd-site .fd-menu a {
	display: flex; align-items: center; gap: 4px; padding: 8px 10px;
	font-size: 14px; font-weight: 500; white-space: nowrap; color: var(--green-950);
}
body.fd-site .fd-menu a:hover,
body.fd-site .fd-menu .current-menu-item > a,
body.fd-site .fd-menu .current-menu-ancestor > a { color: var(--green-700); }
body.fd-site .fd-menu .sub-menu {
	position: absolute; top: 100%; left: 0; z-index: 30; min-width: 240px; margin: 0; padding: 6px; list-style: none;
	background: #fff; box-shadow: inset 0 0 0 1px oklch(0.9 0.02 85), 0 24px 48px -20px rgba(40, 30, 10, 0.3);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity 150ms ease-out, transform 200ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 150ms;
}
body.fd-site .fd-menu li:hover > .sub-menu,
body.fd-site .fd-menu li:focus-within > .sub-menu {
	opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
}
body.fd-site .fd-menu .sub-menu a { padding: 10px 12px; white-space: normal; }
body.fd-site .fd-menu .sub-menu a:hover { background: oklch(0.97 0.015 85); }

body.fd-site .fd-burger {
	display: none; flex-shrink: 0; width: 40px; height: 40px; border: 0; padding: 0; background: transparent;
	color: var(--green-950); cursor: pointer; align-items: center; justify-content: center;
}

body.fd-site .fd-searchbar { background: #fff; box-shadow: inset 0 1px 0 oklch(0.92 0.02 85); padding: 16px 32px; }
body.fd-site .fd-searchform { display: flex; gap: 8px; max-width: 1216px; margin: 0 auto; }
body.fd-site .fd-searchform input {
	flex: 1; min-width: 0; height: 44px; padding: 0 16px; border: 0; border-radius: 0; background: #fff;
	box-shadow: inset 0 0 0 1px oklch(0.88 0.02 85); font: 400 15px/22px 'DM Sans', sans-serif; color: var(--fd-ink);
}
body.fd-site .fd-searchform input:focus { outline: 0; box-shadow: inset 0 0 0 1px var(--green-700); }
body.fd-site .fd-searchform button {
	height: 44px; padding: 0 20px; border: 0; border-radius: 4px; background: var(--green-950); color: #fff;
	font: 600 14px/20px 'DM Sans', sans-serif; cursor: pointer; transition: background 150ms ease-out;
}
body.fd-site .fd-searchform button:hover { background: var(--green-800); }

body.fd-site .fd-mobile { background: #fff; box-shadow: inset 0 1px 0 oklch(0.92 0.02 85); padding: 8px 20px 24px; }
body.fd-site .fd-mobile-menu { margin: 0; padding: 0; list-style: none; }
body.fd-site .fd-mobile-menu li { margin: 0; }
body.fd-site .fd-mobile-menu a {
	display: block; padding: 14px 4px; font-size: 16px; font-weight: 600; color: var(--green-950);
	box-shadow: inset 0 -1px 0 oklch(0.92 0.02 85);
}
body.fd-site .fd-mobile-menu .sub-menu { margin: 0; padding: 0 0 0 16px; list-style: none; }
body.fd-site .fd-mobile-menu .sub-menu a { font-size: 15px; font-weight: 500; }
body.fd-site .fd-mobile-cta {
	display: flex; align-items: center; justify-content: center; gap: 8px; height: 44px; margin-top: 18px;
	border-radius: 4px; background: var(--green-950); color: #fff; font-size: 14px; font-weight: 600;
}
body.fd-site .fd-mobile-cta:hover { background: var(--green-800); color: #fff; }

@media (max-width: 1099px) {
	body.fd-site .fd-nav { display: none; }
	body.fd-site .fd-burger { display: flex; }
	body.fd-site .fd-mobile { display: block; }
}
@media (min-width: 1100px) {
	body.fd-site .fd-mobile { display: none !important; }
}
@media (max-width: 720px) {
	body.fd-site .fd-hportal { display: none; }
	body.fd-site .fd-hname { font-size: 15px; line-height: 19px; }
	body.fd-site .fd-hbar { gap: 10px; }
}

/* ==========================================================================
   Quick search results
   ========================================================================== */
body.fd-site .fd-qlabel:focus-within { box-shadow: inset 0 0 0 1px var(--green-700); }
body.fd-site .fd-res { display: flex; align-items: center; gap: 12px; padding: 10px 12px; color: var(--fd-ink); }
body.fd-site .fd-res:hover { background: oklch(0.97 0.015 85); color: var(--fd-ink); }
body.fd-site .fd-res__icon { display: flex; color: var(--green-800); }
body.fd-site .fd-res__title { flex: 1; font-size: 14px; font-weight: 600; }
body.fd-site .fd-res__dest { font-size: 12px; color: oklch(0.5 0.02 60); }
body.fd-site .fd-res-none { padding: 12px; font-size: 14px; color: oklch(0.45 0.02 60); }

/* ==========================================================================
   Responsive grids (column counts from the design)
   ========================================================================== */
body.fd-site .fd-tasks { grid-template-columns: repeat(6, minmax(0, 1fr)); }
body.fd-site .fd-lifegrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.fd-site .fd-voices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.fd-site .fd-opps { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 999px) {
	body.fd-site .fd-tasks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body.fd-site .fd-opps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 859px) {
	body.fd-site .fd-voices { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 619px) {
	body.fd-site .fd-opps { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 559px) {
	body.fd-site .fd-tasks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 479px) {
	body.fd-site .fd-lifegrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Tighter side padding on small phones */
@media (max-width: 560px) {
	body.fd-site section[data-screen-label] > div,
	body.fd-site footer > div,
	body.fd-site .fd-hbar,
	body.fd-site .fd-banner__inner,
	body.fd-site .fd-wrap { padding-left: 20px; padding-right: 20px; }
	body.fd-site section#start { padding-left: 16px; padding-right: 16px; }
	body.fd-site .fd-searchbar { padding-left: 20px; padding-right: 20px; }
}

/* ==========================================================================
   Slider
   ========================================================================== */
body.fd-site .fd-slide-img { opacity: 0; transform: scale(1); transition: opacity 700ms ease-out, transform 6000ms linear; }
body.fd-site .fd-slide-img.is-active { opacity: 1; transform: scale(1.06); }
body.fd-site .fd-dot { width: 6px; background: oklch(0.88 0.01 85); }
body.fd-site .fd-dot.is-active { width: 28px; background: var(--green-700); }

/* ==========================================================================
   Programme Finder drawer
   ========================================================================== */
body.fd-site .fd-scrim { opacity: 0; pointer-events: none; }
body.fd-site.fd-finder-open .fd-scrim { opacity: 1; pointer-events: auto; }
body.fd-site .fd-drawer {
	transform: translateX(104%); visibility: hidden;
	transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 420ms;
}
body.fd-site.fd-finder-open .fd-drawer { transform: translateX(0); visibility: visible; transition-delay: 0s; }
body.fd-finder-open { overflow: hidden; }
body.fd-site .fd-drawer button:hover { filter: none; }

/* ==========================================================================
   Entrance animations (skipped for reduced motion)
   ========================================================================== */
@keyframes fd-rise { from { opacity: 0; transform: translateY(34px); } to { opacity: 1; transform: none; } }
@keyframes fd-herozoom { from { transform: scale(1.1); } to { transform: scale(1.04); } }

@media (prefers-reduced-motion: no-preference) {
	body.fd-site section[data-screen-label^="01"] > div:first-child { animation: fd-herozoom 2400ms cubic-bezier(0.22, 1, 0.36, 1) both; }
	body.fd-site section[data-screen-label^="01"] > div:nth-child(3) > div:first-child > * { animation: fd-rise 1100ms cubic-bezier(0.22, 1, 0.36, 1) both; }
	body.fd-site section[data-screen-label^="01"] > div:nth-child(3) > div:first-child > :nth-child(2) { animation-delay: 120ms; }
	body.fd-site section[data-screen-label^="01"] > div:nth-child(3) > div:first-child > :nth-child(3) { animation-delay: 240ms; }
	body.fd-site section[data-screen-label^="01"] > div:nth-child(3) > div:first-child > :nth-child(4) { animation-delay: 360ms; }

	html.fd-js body.fd-site .fd-rv {
		opacity: 0; transform: translateY(28px); will-change: opacity, transform;
		transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1), transform 1100ms cubic-bezier(0.22, 1, 0.36, 1);
	}
	html.fd-js body.fd-site .fd-rv.fd-in { opacity: 1; transform: none; }
	html.fd-js body.fd-site .fd-rv-img {
		clip-path: inset(18% 0 0 0); opacity: 0;
		transition: clip-path 1300ms cubic-bezier(0.22, 1, 0.36, 1), opacity 700ms ease-out;
	}
	html.fd-js body.fd-site .fd-rv-img.fd-in { clip-path: inset(0 0 0 0); opacity: 1; }
	html.fd-js body.fd-site .fd-rv-img > .fd-fill { transform: scale(1.12); transition: transform 1800ms cubic-bezier(0.22, 1, 0.36, 1); }
	html.fd-js body.fd-site .fd-rv-img.fd-in > .fd-fill { transform: scale(1); }
	html.fd-js body.fd-site .fd-rv-line { background-size: 0% 1px !important; transition: background-size 1600ms cubic-bezier(0.22, 1, 0.36, 1) 200ms; }
	html.fd-js body.fd-site .fd-rv-line.fd-in { background-size: 100% 1px !important; }
}

@media (prefers-reduced-motion: reduce) {
	body.fd-site * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ==========================================================================
   Generic pages, posts and listings
   ========================================================================== */
body.fd-site .fd-banner {
	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-banner__inner { max-width: 1280px; margin: 0 auto; padding: 72px 32px 64px; display: flex; flex-direction: column; gap: 16px; }
body.fd-site .fd-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fd-gold-light); }
body.fd-site .fd-banner__title {
	margin: 0; max-width: 900px; font-family: 'Libre Franklin', sans-serif; font-weight: 600;
	font-size: clamp(34px, 4.4vw, 56px); line-height: 1.1; letter-spacing: -0.025em; color: #fff;
}
body.fd-site .fd-wrap { max-width: 1280px; margin: 0 auto; padding: 64px 32px 96px; }
body.fd-site .fd-prose { max-width: 820px; font-size: 17px; line-height: 1.75; color: oklch(0.3 0.02 60); }
body.fd-site .fd-prose > * { margin-top: 0; margin-bottom: 1.2em; }
body.fd-site .fd-prose h2, body.fd-site .fd-prose h3, body.fd-site .fd-prose h4 {
	font-family: 'Libre Franklin', sans-serif; font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; color: var(--green-950); margin: 1.8em 0 0.6em;
}
body.fd-site .fd-prose h2 { font-size: 30px; }
body.fd-site .fd-prose h3 { font-size: 23px; }
body.fd-site .fd-prose h4 { font-size: 19px; }
body.fd-site .fd-prose a { text-decoration: underline; text-underline-offset: 3px; }
body.fd-site .fd-prose img, body.fd-site .fd-prose video { border-radius: 12px; max-width: 100%; height: auto; }
body.fd-site .fd-prose blockquote { margin-left: 0; padding-left: 20px; border-left: 3px solid var(--fd-gold); font-size: 1.1em; color: var(--green-950); }
body.fd-site .fd-prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
body.fd-site .fd-prose th, body.fd-site .fd-prose td { padding: 10px 12px; text-align: left; box-shadow: inset 0 -1px 0 oklch(0.9 0.02 85); }
body.fd-site .fd-prose th { font-weight: 600; background: oklch(0.975 0.014 85); }
body.fd-site .fd-prose ul, body.fd-site .fd-prose ol { padding-left: 1.3em; }
body.fd-site .fd-prose .alignleft { float: left; margin: 0.3em 1.5em 1em 0; }
body.fd-site .fd-prose .alignright { float: right; margin: 0.3em 0 1em 1.5em; }
body.fd-site .fd-prose .aligncenter { display: block; margin-left: auto; margin-right: auto; }
body.fd-site .fd-prose .wp-caption { max-width: 100%; }
body.fd-site .fd-prose .wp-caption-text, body.fd-site .fd-prose figcaption { font-size: 13px; color: oklch(0.5 0.02 60); }
body.fd-site .fd-meta { font-size: 13px; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; color: oklch(0.5 0.02 60); }
body.fd-site .fd-single__image { margin: 0 0 2em; }
body.fd-site .fd-single__image img { width: 100%; height: auto; border-radius: 16px; }
body.fd-site .fd-post-nav { display: flex; justify-content: space-between; gap: 24px; margin-top: 56px; padding-top: 24px; box-shadow: inset 0 1px 0 oklch(0.9 0.02 85); font-size: 15px; font-weight: 600; }
body.fd-site .fd-page-links { margin: 2em 0; font-weight: 600; }

body.fd-site .fd-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 16px; }
body.fd-site .fd-card {
	background: #fff; border-radius: 16px; overflow: hidden; box-shadow: inset 0 0 0 1px oklch(0.92 0.015 85);
	transition: transform 250ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 250ms ease-out;
}
body.fd-site .fd-card:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px oklch(0.92 0.015 85), 0 20px 40px -24px rgba(40, 30, 10, 0.35); }
body.fd-site .fd-card__link { display: flex; flex-direction: column; height: 100%; color: var(--fd-ink); }
body.fd-site .fd-card__link:hover { color: var(--fd-ink); }
body.fd-site .fd-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--green-900); }
body.fd-site .fd-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.fd-site .fd-card__body { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 24px; }
body.fd-site .fd-card__meta { font-size: 11px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: oklch(0.55 0.02 60); }
body.fd-site .fd-card__title { font-family: 'Libre Franklin', sans-serif; font-size: 20px; line-height: 1.3; font-weight: 600; letter-spacing: -0.01em; color: var(--green-950); }
body.fd-site .fd-card__excerpt { font-size: 14px; line-height: 22px; color: oklch(0.42 0.02 60); }

body.fd-site .navigation.pagination { margin-top: 48px; }
body.fd-site .navigation.pagination .nav-links { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
body.fd-site .page-numbers {
	display: flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px;
	border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--green-950); box-shadow: inset 0 0 0 1px oklch(0.9 0.02 85); background: #fff;
}
body.fd-site a.page-numbers:hover { background: oklch(0.97 0.015 85); }
body.fd-site .page-numbers.current { background: var(--green-950); color: #fff; box-shadow: none; }

body.fd-site .fd-empty { max-width: 640px; display: flex; flex-direction: column; gap: 20px; font-size: 17px; line-height: 1.6; }
body.fd-site .fd-empty p { margin: 0; }
body.fd-site .fd-searchform--page { max-width: 560px; margin: 0; }
body.fd-site .fd-btn {
	display: inline-flex; align-items: center; height: 44px; padding: 0 20px; border-radius: 4px;
	background: var(--green-950); color: #fff; font-size: 14px; font-weight: 600;
}
body.fd-site .fd-btn:hover { background: var(--green-800); color: #fff; }

body.fd-site .fd-comments { margin-top: 64px; }
body.fd-site .fd-comments__title { font-family: 'Libre Franklin', sans-serif; font-size: 24px; color: var(--green-950); }
body.fd-site .fd-comment-list { padding: 0; list-style: none; }
body.fd-site .fd-comment-list .comment-body { padding: 16px 0; box-shadow: inset 0 -1px 0 oklch(0.9 0.02 85); font-size: 15px; line-height: 1.6; }
body.fd-site .comment-form input[type="text"], body.fd-site .comment-form input[type="email"], body.fd-site .comment-form input[type="url"], body.fd-site .comment-form textarea {
	width: 100%; padding: 10px 12px; border: 0; background: #fff; box-shadow: inset 0 0 0 1px oklch(0.88 0.02 85); font: 400 15px/22px 'DM Sans', sans-serif;
}
body.fd-site .comment-form .submit { height: 44px; padding: 0 20px; border: 0; border-radius: 4px; background: var(--green-950); color: #fff; font: 600 14px 'DM Sans', sans-serif; cursor: pointer; }

/* Elementor content sits edge to edge and keeps its own typography. */
body.fd-site .fd-elementor-content { width: 100%; }

/* Print */
@media print {
	.fd-site-header, .fd-scrim, .fd-drawer, .fd-skip { display: none !important; }
}

@media (max-width: 480px) {
	body.fd-site .fd-bandlv { grid-template-columns: minmax(0, 1fr); }
}


/* ==========================================================================
   v2: live-site menu (9 items, three levels)
   ========================================================================== */
body.fd-site .fd-menu { gap: 0; }
body.fd-site .fd-menu a { padding: 8px 14px; font-size: 14px; }
body.fd-site .fd-menu > li > a .fd-i { margin-right: -2px; opacity: 0.7; }
body.fd-site .fd-menu .sub-menu { min-width: 260px; }
body.fd-site .fd-menu .sub-menu li { position: relative; }
body.fd-site .fd-menu .sub-menu a { justify-content: space-between; font-size: 14px; }
body.fd-site .fd-menu .sub-menu .sub-menu { top: -7px; left: calc(100% + 2px); min-width: 280px; transform: translateX(-6px); }
body.fd-site .fd-menu .sub-menu li:hover > .sub-menu,
body.fd-site .fd-menu .sub-menu li:focus-within > .sub-menu { transform: none; }
/* The last three items open towards the left so nothing leaves the screen. */
body.fd-site .fd-menu > li:nth-last-child(-n+3) > .sub-menu { left: auto; right: 0; }
body.fd-site .fd-menu > li:nth-last-child(-n+3) .sub-menu .sub-menu { left: auto; right: calc(100% + 2px); transform: translateX(6px); }
/* Faculty list is long: scroll inside the flyout on short screens. */
body.fd-site .fd-menu .sub-menu .sub-menu { max-height: calc(100vh - 140px); overflow-y: auto; }

body.fd-site .fd-head-2 { gap: 16px; max-width: 1440px; }

/* Compact logo so the five items fit beside it; burger below 1100px. */
body.fd-site .fd-hname { font-size: 16px; line-height: 20px; }
@media (max-width: 1099px) {
	body.fd-site .fd-nav { display: none; }
	body.fd-site .fd-burger { display: flex; }
	body.fd-site .fd-mobile { display: block; }
}
@media (min-width: 1100px) {
	body.fd-site .fd-nav { display: block; }
	body.fd-site .fd-burger { display: none; }
	body.fd-site .fd-mobile { display: none !important; }
}
@media (max-width: 720px) {
	body.fd-site .fd-hname { font-size: 15px; line-height: 19px; }
}

/* Mobile accordion */
body.fd-site .fd-mobile-menu li { position: relative; }
body.fd-site .fd-mobile-menu .menu-item-has-children > a { padding-right: 52px; }
body.fd-site .fd-mobile-toggle {
	position: absolute; top: 4px; right: 0; width: 44px; height: 44px; border: 0; padding: 0; background: transparent;
	display: flex; align-items: center; justify-content: center; color: var(--green-950); cursor: pointer;
}
body.fd-site .fd-mobile-toggle svg { transition: transform 200ms ease-out; }
body.fd-site .fd-mobile-menu li.is-open > .fd-mobile-toggle svg { transform: rotate(180deg); }
body.fd-site .fd-mobile-menu .sub-menu { display: none; }
body.fd-site .fd-mobile-menu li.is-open > .sub-menu { display: block; }
body.fd-site .fd-mobile-menu .sub-menu .sub-menu a { font-size: 14px; color: oklch(0.4 0.02 60); }
body.fd-site .fd-mobile-menu .sub-menu .fd-mobile-toggle { top: 0; }

/* ==========================================================================
   v2: Events & Bulletin
   ========================================================================== */
body.fd-site .fd-ev { background: #fff; scroll-margin-top: 80px; }
body.fd-site .fd-ev .fd-opps-2 { padding-top: clamp(64px, 7vw, 96px); padding-bottom: clamp(64px, 7vw, 96px); }
body.fd-site .fd-ev__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
body.fd-site .fd-ev__col { border-radius: 20px; background: oklch(0.985 0.01 85); box-shadow: inset 0 0 0 1px oklch(0.92 0.015 85); overflow: hidden; }
body.fd-site .fd-ev__col--bulletin { background: var(--green-950); box-shadow: none; color: #fff; }
body.fd-site .fd-ev__coltop { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 22px 26px 8px; }
body.fd-site .fd-ev__title { margin: 0; font: 600 22px/1.2 'Libre Franklin', sans-serif; letter-spacing: -0.01em; color: var(--green-950); }
body.fd-site .fd-ev__col--bulletin .fd-ev__title { color: #fff; }
body.fd-site .fd-ev__all { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--green-800); white-space: nowrap; }
body.fd-site .fd-ev__all:hover { color: var(--green-950); }
body.fd-site .fd-ev__col--bulletin .fd-ev__all { color: oklch(0.86 0.08 85); }
body.fd-site .fd-ev__col--bulletin .fd-ev__all:hover { color: #fff; }
body.fd-site .fd-ev__list { margin: 0; padding: 0; list-style: none; }
body.fd-site .fd-ev__list li { margin: 0; }
body.fd-site .fd-ev__item { display: flex; align-items: flex-start; gap: 18px; padding: 18px 26px; box-shadow: inset 0 1px 0 oklch(0.92 0.015 85); color: var(--green-950); transition: background 150ms ease-out; }
body.fd-site .fd-ev__item:hover { background: #fff; color: var(--green-950); }
body.fd-site .fd-ev__col--bulletin .fd-ev__item { color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12); }
body.fd-site .fd-ev__col--bulletin .fd-ev__item:hover { background: rgba(255, 255, 255, 0.06); color: #fff; }
body.fd-site .fd-ev__date { flex-shrink: 0; width: 56px; padding: 8px 0; border-radius: 12px; background: var(--orange-600); color: #fff; text-align: center; display: flex; flex-direction: column; gap: 2px; }
body.fd-site .fd-ev__day { font: 700 22px/1 'Libre Franklin', sans-serif; }
body.fd-site .fd-ev__mon { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
body.fd-site .fd-ev__num { flex-shrink: 0; min-width: 36px; font: 600 24px/1 'Libre Franklin', sans-serif; color: oklch(0.82 0.09 82); }
body.fd-site .fd-ev__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
body.fd-site .fd-ev__name { font-size: 16px; line-height: 23px; font-weight: 600; letter-spacing: -0.01em; text-wrap: pretty; }
body.fd-site .fd-ev__meta { font-size: 11px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: oklch(0.55 0.02 60); }
body.fd-site .fd-ev__col--bulletin .fd-ev__meta { color: rgba(255, 255, 255, 0.62); }
body.fd-site .fd-ev__go { display: flex; margin-top: 3px; opacity: 0.55; }
@media (max-width: 899px) {
	body.fd-site .fd-ev__grid { grid-template-columns: 1fr; }
}

/* Phones: keep the burger inside the viewport */
@media (max-width: 480px) {
	body.fd-site .fd-head-2 { gap: 8px; }
	body.fd-site .fd-hname { font-size: 14px; line-height: 18px; }
	body.fd-site .fd-burger { flex: 0 0 auto; }
	body.fd-site .fd-brand, body.fd-site .fd-logo { min-width: 0; }
}
