/* ═══════════════════════════════════════════════════════════════════════════
   L'ISSI — Joomla Template CSS
   This file is a self-contained copy of the L'ISSI design system.
   Copy your assets/css/style.css content here after installation.
   ═══════════════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&family=Inter:wght@400;500;600&display=swap');

/* ── Reset Joomla defaults ────────────────────────────────────────────────── */
#system-message, .alert { display: none !important; } /* handled via template alerts */
.moduletable h3 { margin: 0 0 20px; }

/* ── CSS Variables (same as site style.css) ──────────────────────────────── */
:root {
  --yellow: #FBE216;
  --yellow-dark: #E8CC00;
  --cyan: #00E5FF;
  --navy: #0D0F1A;
  --navy-mid: #141726;
  --navy-light: #1E2340;
  --white: #FFFFFF;
  --gray-light: #F4F5F8;
  --gray-mid: #E4E5EC;
  --gray-dark: #6B7280;
  --shadow: 0 4px 12px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.04);
  --shadow-md: 0 12px 32px rgba(0,0,0,.1);
  --shadow-yellow: 0 0 20px rgba(251,226,22,.5), 0 0 60px rgba(251,226,22,.2);
  --radius: 16px;
  --radius-sm: 10px;
  --container: 1200px;
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --dur-fast: 250ms;
  --dur-base: 350ms;
}

/* ── Base ─────────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; font-family: 'Inter','Outfit',sans-serif; font-size: 16px;
  line-height: 1.7; color: var(--navy); background: var(--white); overflow-x: hidden;
}
a { text-decoration: none; color: inherit; transition: color var(--dur-fast) var(--ease); }
img { max-width: 100%; display: block; }

.container       { max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.container-wide  { max-width: 1400px; margin: 0 auto; padding: 0 24px; }
.section-white   { padding: 100px 0; background: var(--white); }
.section-gray    { padding: 100px 0; background: var(--gray-light); }

h1, h2, h3, h4 { font-family:'Outfit',sans-serif; font-weight:800; letter-spacing:-.03em; line-height:1.1; margin:0 0 20px; color:var(--navy); }
h1 { font-size: clamp(2.5rem, 5.5vw, 4.5rem); }
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.6rem); }
p  { margin: 0 0 16px; color: var(--gray-dark); }

.yellow-underline { width:56px; height:4px; background:linear-gradient(90deg,var(--yellow),var(--yellow-dark)); border-radius:2px; margin:16px 0 40px; }
.yellow-highlight { background:var(--yellow); display:inline-block; padding:2px 10px 4px; font-weight:800; border-radius:4px; }

/* ── Buttons ──────────────────────────────────────────────────────────────── */
.btn-yellow, .btn-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 32px; font-family: 'Outfit',sans-serif; font-weight: 800;
  text-transform: uppercase; letter-spacing: .1em; font-size: 12px;
  border: none; cursor: pointer; position: relative; overflow: hidden;
  transition: box-shadow .3s ease, transform .2s ease;
  clip-path: polygon(10px 0%, 100% 0%, calc(100% - 10px) 100%, 0% 100%);
}
.btn-yellow { background:var(--yellow); color:var(--navy); }
.btn-yellow:hover { box-shadow:var(--shadow-yellow); transform:translateY(-3px) scale(1.02); color:var(--navy); }
.btn-outline { background:transparent; color:var(--navy); border:1.5px solid var(--navy); clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%); }
.btn-outline:hover { background:var(--navy); color:var(--white); transform:translateY(-3px) scale(1.02); }

/* ── Grid ─────────────────────────────────────────────────────────────────── */
.grid   { display:grid; gap:28px; }
.grid-2 { grid-template-columns:repeat(2, minmax(0,1fr)); }
.grid-3 { grid-template-columns:repeat(3, minmax(0,1fr)); }
.grid-4 { grid-template-columns:repeat(4, minmax(0,1fr)); }

/* ── Cards ────────────────────────────────────────────────────────────────── */
.card { background:var(--white); border:1px solid var(--gray-mid); border-radius:4px; box-shadow:0 4px 20px rgba(0,0,0,.06); padding:36px; transition:border-color .35s ease, box-shadow .35s ease, transform .35s ease; position:relative; }
.card:hover { border-color:rgba(251,226,22,.4); box-shadow:0 0 0 1px rgba(251,226,22,.15),0 0 30px rgba(251,226,22,.1),0 16px 40px rgba(0,0,0,.1); transform:translateY(-4px); }

/* ── Header ───────────────────────────────────────────────────────────────── */
header.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.9); backdrop-filter: blur(24px);
  border-bottom: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 1px 24px rgba(0,0,0,.06);
  transition: background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
header.site-header.scrolled { background: rgba(255,255,255,.97); box-shadow: 0 2px 32px rgba(0,0,0,.1); }
.header-inner { display:flex; align-items:center; justify-content:space-between; padding:18px 0; gap:24px; }

/* ── Logo ─────────────────────────────────────────────────────────────────── */
.site-logo { display:flex; align-items:center; gap:12px; text-decoration:none; }
.logo-box {
  width:48px; height:48px; background:var(--navy);
  display:flex; align-items:center; justify-content:center;
  font-family:'Outfit',sans-serif; font-size:13px; font-weight:900;
  color:var(--white); letter-spacing:-.02em;
  clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
}
.logo-dot { color:var(--yellow); }
.logo-name { font-family:'Outfit',sans-serif; font-size:20px; font-weight:900; color:var(--navy); letter-spacing:-.02em; display:block; }
.logo-sub  { font-size:11px; color:var(--gray-dark); font-weight:600; letter-spacing:.04em; display:block; }

/* ── Navigation (Joomla menu module output) ───────────────────────────────── */
.main-nav { display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }

/* Joomla mod_menu outputs <ul><li><a> */
.main-nav ul { display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }
.main-nav ul li { position:relative; }
.main-nav ul li a,
.main-nav > a {
  font-size:13px; font-weight:700; letter-spacing:.06em; padding:8px 14px;
  border-radius:8px; text-transform:uppercase; color:var(--gray-dark);
  position:relative; background:transparent;
  transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
  display:block; white-space:nowrap;
}
.main-nav ul li a::after, .main-nav > a::after {
  content:''; position:absolute; bottom:4px; left:14px; right:14px;
  height:2px; background:var(--yellow); border-radius:1px;
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--dur-fast) cubic-bezier(0.34,1.56,.64,1);
}
.main-nav ul li a:hover::after { transform:scaleX(1); }
.main-nav ul li.current a,
.main-nav ul li.active a {
  background:var(--yellow); color:var(--navy);
}
.main-nav ul li.current a::after,
.main-nav ul li.active a::after { display:none; }
.main-nav ul li a:hover { color:var(--navy); background:rgba(251,226,22,.12); }

/* Dropdown submenu */
.main-nav ul li ul {
  display:none; position:absolute; top:100%; left:0;
  background:var(--white); border-radius:12px; min-width:200px;
  box-shadow:var(--shadow-md); padding:8px;
  flex-direction:column; gap:2px; z-index:200;
}
.main-nav ul li:hover > ul { display:flex; }
.main-nav ul li ul li a { text-transform:none; letter-spacing:0; font-size:14px; padding:9px 14px; }

/* Admissions CTA button in nav */
.nav-btn-admission {
  background:var(--yellow); color:var(--navy);
  font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em;
  padding:9px 18px; margin-left:8px;
  clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
  transition:box-shadow .25s ease, transform .2s ease;
  white-space:nowrap;
}
.nav-btn-admission:hover { box-shadow:var(--shadow-yellow); transform:translateY(-2px); color:var(--navy); }

/* Mobile nav toggle */
.nav-toggle {
  display:none; flex-direction:column; gap:5px; background:none; border:none;
  cursor:pointer; padding:8px;
}
.nav-toggle span { display:block; width:24px; height:2px; background:var(--navy); border-radius:2px; transition:all .25s ease; }
.nav-toggle.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* ── Breadcrumb ───────────────────────────────────────────────────────────── */
.breadcrumb { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:24px; color:var(--gray-dark); }
.breadcrumb a { color:var(--gray-dark); }
.breadcrumb a:hover { color:var(--navy); }

/* Joomla breadcrumb module */
.mod-breadcrumbs li { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--gray-dark); }
.mod-breadcrumbs li::after { content:'/'; opacity:.4; }
.mod-breadcrumbs li:last-child::after { display:none; }
.mod-breadcrumbs a { color:var(--gray-dark); }
.mod-breadcrumbs a:hover { color:var(--navy); }

/* ── Hero ─────────────────────────────────────────────────────────────────── */
.hero {
  position:relative; min-height:90vh; display:flex; align-items:center;
  padding:140px 0 100px; color:#fff; overflow:hidden;
}
.hero-bg, .page-hero-bg {
  position:absolute; inset:0; background-size:cover; background-position:center;
  filter:grayscale(.2); transform:scale(1.04); transition:transform 10s ease;
}
.hero:hover .hero-bg { transform:scale(1); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(135deg,rgba(13,15,26,.9) 0%,rgba(13,15,26,.65) 60%,rgba(251,226,22,.06) 100%); }
.hero-content { position:relative; z-index:1; width:100%; }
.hero h1 { color:#fff; }
.hero p  { color:rgba(255,255,255,.88); }

/* ── Topbar ───────────────────────────────────────────────────────────────── */
.topbar { background:var(--navy); color:rgba(255,255,255,.75); font-size:12px; font-weight:600; padding:10px 0; letter-spacing:.04em; border-bottom:2px solid var(--yellow); }
.topbar .container-wide { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }

/* ── News / Articles (Joomla com_content) ────────────────────────────────── */
.news-item { padding:0 0 28px 16px; border-bottom:1px solid var(--gray-mid); border-left:3px solid transparent; transition:border-color .3s ease,padding-left .3s ease,transform .3s ease; }
.news-item:hover { border-left-color:var(--yellow); padding-left:24px; transform:translateX(4px); }
.news-meta { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.badge { background:var(--yellow); color:var(--navy); padding:3px 10px; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.06em; }

/* Joomla article view */
.issi-component .article-header h2,
.issi-component .page-header { font-family:'Outfit',sans-serif; font-weight:800; }
.issi-component .article-info { font-size:13px; color:var(--gray-dark); margin-bottom:16px; }
.issi-component .article-info dt { display:inline; font-weight:700; }
.issi-component .article-info dd { display:inline; margin:0 12px 0 4px; }
.issi-component img { border-radius:var(--radius-sm); }
.issi-component .pager { display:flex; gap:12px; margin-top:32px; }
.issi-component .pager a { display:inline-flex; align-items:center; gap:6px; padding:9px 18px; background:var(--gray-light); border-radius:8px; font-weight:700; font-size:13px; color:var(--navy); transition:background var(--dur-fast) var(--ease); }
.issi-component .pager a:hover { background:var(--yellow); }

/* Blog layout */
.issi-component .items-leading .leading, .issi-component .item { margin-bottom:40px; padding-bottom:40px; border-bottom:1px solid var(--gray-mid); }
.issi-component .items-leading .leading:last-child, .issi-component .item:last-child { border-bottom:none; }
.issi-component .readmore { margin-top:16px; }
.issi-component .readmore a { display:inline-flex; padding:8px 20px; background:var(--yellow); color:var(--navy); font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.08em; clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%); transition:box-shadow .25s ease; }
.issi-component .readmore a:hover { box-shadow:var(--shadow-yellow); color:var(--navy); }

/* Category blog */
.issi-component h2.article-title,
.issi-component h2.page-header__title { font-size:clamp(1.4rem,3vw,2rem); font-family:'Outfit',sans-serif; font-weight:800; color:var(--navy); letter-spacing:-.02em; }
.issi-component h2.article-title a { color:inherit; }
.issi-component h2.article-title a:hover { color:var(--navy); opacity:.75; }

/* Contact form (com_contact) */
.issi-component .contact-form .control-label { font-size:13px; font-weight:700; color:var(--navy); margin-bottom:6px; display:block; text-transform:uppercase; letter-spacing:.06em; }
.issi-component .contact-form .controls input,
.issi-component .contact-form .controls textarea,
.issi-component .contact-form .controls select {
  width:100%; padding:12px 18px; border:1px solid var(--gray-mid); border-radius:10px;
  font-family:inherit; font-size:15px; color:var(--navy); background:var(--white);
  transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.issi-component .contact-form .controls input:focus,
.issi-component .contact-form .controls textarea:focus {
  outline:none; border-color:var(--yellow); box-shadow:0 0 0 3px rgba(251,226,22,.2);
}
.issi-component .contact-form .btn { background:var(--yellow); color:var(--navy); padding:12px 32px; font-weight:800; text-transform:uppercase; font-size:12px; letter-spacing:.1em; border:none; cursor:pointer; clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%); transition:box-shadow .25s ease; }
.issi-component .contact-form .btn:hover { box-shadow:var(--shadow-yellow); }

/* Search (com_search / com_finder) */
.issi-component .search input { width:100%; padding:14px 20px; border:2px solid var(--gray-mid); border-radius:12px; font-size:16px; }
.issi-component .search .btn { padding:12px 28px; background:var(--yellow); color:var(--navy); font-weight:800; border:none; border-radius:10px; cursor:pointer; }
.issi-component .search-results .result-title a { color:var(--navy); font-weight:700; font-size:18px; }
.issi-component .search-results .result-text { color:var(--gray-dark); font-size:14px; margin-top:4px; }

/* Tags */
.issi-component .tags-list { display:flex; gap:8px; flex-wrap:wrap; }
.issi-component .tags-list .label { background:rgba(251,226,22,.15); color:var(--navy); border:1px solid var(--yellow); padding:3px 12px; border-radius:999px; font-size:12px; font-weight:700; }

/* ── Dark banner ──────────────────────────────────────────────────────────── */
.dark-banner { position:relative; padding:120px 0; background:var(--navy); }
.dark-banner .page-hero-bg { filter:grayscale(.5); opacity:.25; }
.dark-banner .hero-overlay { background:linear-gradient(135deg,rgba(13,15,26,.97) 0%,rgba(13,15,26,.88) 100%); }
.dark-banner .grid { position:relative; z-index:1; }

/* ── Quote cards ──────────────────────────────────────────────────────────── */
.quote-card { background:rgba(14,17,32,.7); backdrop-filter:blur(20px); border:1px solid rgba(0,229,255,.12); border-top:1px solid rgba(0,229,255,.3); padding:36px; border-radius:4px; box-shadow:0 20px 40px rgba(0,0,0,.35); }
.quote-card:hover { border-color:rgba(0,229,255,.4); box-shadow:0 0 20px rgba(0,229,255,.4),0 28px 56px rgba(0,0,0,.5); transform:translateY(-4px); }
.quote-card h3 { color:#fff; }
.quote-card p  { color:rgba(255,255,255,.68); }

/* ── Stats ────────────────────────────────────────────────────────────────── */
.stat-box { text-align:center; background:linear-gradient(145deg,#0f1220,#0D0F1A); padding:40px 24px; border-radius:4px; border:1px solid rgba(0,229,255,.1); box-shadow:0 16px 40px rgba(0,0,0,.4); transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease; }
.stat-box:hover { border-color:rgba(0,229,255,.4); box-shadow:0 0 20px rgba(0,229,255,.4),0 24px 48px rgba(0,0,0,.5); transform:translateY(-4px); }
.stat-value { font-family:'Outfit',sans-serif; font-size:clamp(2.5rem,6vw,4rem); font-weight:900; line-height:1; margin-bottom:12px; background:linear-gradient(135deg,var(--yellow) 0%,#fff8a0 40%,var(--cyan) 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; filter:drop-shadow(0 0 12px rgba(251,226,22,.5)); }
.stat-box .uppercase { font-weight:700; color:rgba(255,255,255,.55); font-size:11px; letter-spacing:.12em; }

/* ── FAQs ─────────────────────────────────────────────────────────────────── */
.faq-item { background:var(--white); border:1px solid var(--gray-mid); border-radius:var(--radius-sm); margin-bottom:12px; overflow:hidden; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.faq-item:hover { box-shadow:var(--shadow); }
.faq-q { padding:22px 28px; font-weight:700; cursor:pointer; font-size:15px; color:var(--navy); display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-q::after { content:'+'; font-size:22px; font-weight:400; color:var(--gray-dark); flex-shrink:0; }
.faq-item.open { border-color:var(--yellow); border-left:4px solid var(--yellow); }
.faq-item.open .faq-q::after { content:'−'; color:var(--navy); }
.faq-a { color:var(--gray-dark); font-size:15px; padding:0 28px 20px; }

/* ── Footer ───────────────────────────────────────────────────────────────── */
footer.site-footer { background:var(--navy); color:#fff; padding:80px 0 32px; border-top:3px solid var(--yellow); }
footer h3 { font-size:14px; color:var(--yellow); text-transform:uppercase; letter-spacing:.1em; margin-bottom:20px; }
footer p, footer a, footer li { color:rgba(255,255,255,.6); font-size:14px; }
footer a:hover { color:var(--yellow); }
.footer-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:48px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.08); padding-top:28px; margin-top:48px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.footer-links { display:flex; gap:24px; flex-wrap:wrap; }
.socials { display:flex; gap:10px; }
.social { width:40px; height:40px; border-radius:10px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.75); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease); }
.social:hover { background:var(--yellow); color:var(--navy); border-color:var(--yellow); }

/* Footer module output */
.issi_footer_module h3 { font-size:14px; color:var(--yellow); text-transform:uppercase; letter-spacing:.1em; margin-bottom:20px; }

/* ── Program cards ────────────────────────────────────────────────────────── */
.program-card { position:relative; height:420px; border-radius:4px; overflow:hidden; box-shadow:0 16px 40px rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.04); transition:transform .45s ease, box-shadow .45s ease; }
.program-card:hover { transform:translateY(-6px); box-shadow:0 0 20px rgba(0,229,255,.4),0 24px 50px rgba(0,0,0,.4); }
.program-card .bg { position:absolute; inset:0; background-size:cover; background-position:center; filter:grayscale(.5); transform:scale(1.06); transition:.65s ease; }
.program-card:hover .bg { filter:grayscale(0); transform:scale(1); }
.program-card .overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(13,15,26,.95) 0%,rgba(13,15,26,.4) 55%,transparent 100%); }
.program-card .content { position:absolute; left:0; right:0; bottom:0; padding:28px; color:#fff; }
.program-card p { color:rgba(255,255,255,.78); font-size:14px; }

/* ── Pills ────────────────────────────────────────────────────────────────── */
.pill-row { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:48px; }
.pill { border:1.5px solid var(--yellow); padding:7px 18px; border-radius:999px; font-size:13px; font-weight:700; letter-spacing:.04em; color:var(--navy); background:rgba(251,226,22,.08); transition:background var(--dur-fast) var(--ease); }
.pill:hover { background:var(--yellow); }

/* ── Page content (Quill / article body) ──────────────────────────────────── */
.page-content h1, .page-content h2, .page-content h3 { font-family:'Outfit',sans-serif; font-weight:800; }
.page-content img { max-width:100%; border-radius:8px; margin:16px 0; }
.page-content blockquote { border-left:4px solid var(--yellow); padding:12px 20px; background:rgba(251,226,22,.06); margin:24px 0; font-style:italic; color:var(--gray-dark); border-radius:0 8px 8px 0; }
.page-content pre { background:#1e2340; color:#e2e8f0; padding:20px 24px; border-radius:10px; overflow-x:auto; font-size:14px; }
.page-content code { background:#f1f3f5; padding:2px 8px; border-radius:4px; font-size:13px; }
.page-content table { width:100%; border-collapse:collapse; margin:20px 0; border-radius:8px; overflow:hidden; }
.page-content th { background:var(--navy); color:var(--yellow); padding:12px 16px; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.06em; }
.page-content td { padding:12px 16px; border-bottom:1px solid var(--gray-mid); }
.page-content tr:hover td { background:var(--gray-light); }
.page-content hr { border:none; border-top:2px solid var(--gray-mid); margin:32px 0; }

/* ── Misc ─────────────────────────────────────────────────────────────────── */
.alert { padding:18px 24px; border-radius:var(--radius-sm); border:1px solid var(--gray-mid); border-left:4px solid var(--yellow); background:rgba(251,226,22,.04); margin-bottom:24px; font-weight:600; }
.center  { text-align:center; }
.mt-24   { margin-top:24px; }
.mt-32   { margin-top:32px; }
.mt-48   { margin-top:48px; }
.mb-0    { margin-bottom:0; }

/* ── Scroll progress bar ──────────────────────────────────────────────────── */
#scroll-progress { position:fixed;top:0;left:0;height:3px;width:0%;background:var(--yellow);z-index:9999;transition:width .1s linear;box-shadow:0 0 12px rgba(251,226,22,.6); }

/* ── Scroll-reveal animation classes ─────────────────────────────────────── */
.anim-up    { opacity:0; transform:translateY(32px);  transition:opacity .6s var(--ease), transform .6s var(--ease); }
.anim-scale { opacity:0; transform:scale(.92);         transition:opacity .6s var(--ease), transform .6s var(--ease); }
.anim-left  { opacity:0; transform:translateX(-32px);  transition:opacity .6s var(--ease), transform .6s var(--ease); }
.anim-up.visible, .anim-scale.visible, .anim-left.visible { opacity:1; transform:none; }

/* reveal-heading — clip-path sweep */
.reveal-heading { clip-path:inset(0 102% 0 0); transition:clip-path .8s cubic-bezier(.4,0,.2,1); will-change:clip-path; }
.reveal-heading.visible { clip-path:inset(0 0% 0 0); }

/* yellow-underline reveal */
.yellow-underline { transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease) .1s; }
.yellow-underline.visible { transform:scaleX(1); }

/* ── Button pressed state ─────────────────────────────────────────────────── */
.btn-pressed { transform:scale(.96) !important; }

/* ── Keyframes ────────────────────────────────────────────────────────────── */
@keyframes fadeInUp  { from { opacity:0; transform:translateY(40px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeInLeft  { from { opacity:0; transform:translateX(-40px); } to { opacity:1; transform:translateX(0); } }
@keyframes neonSweep { 0% { left:-80%; } 100% { left:140%; } }
@keyframes pulseGlow { 0%,100% { box-shadow:0 4px 16px rgba(251,226,22,.35); } 50% { box-shadow:0 4px 40px rgba(251,226,22,.7); } }
@keyframes cyberScan { 0% { top:-2px; opacity:1; } 100% { top:100%; opacity:0; } }

/* ── Section separator ────────────────────────────────────────────────────── */
.section-separator { height:2px; background:linear-gradient(90deg,transparent,var(--yellow),transparent); opacity:.4; margin:0; border:none; }

/* ── Home page — hide Joomla article chrome ───────────────────────────────── */
.issi-home .page-header,
.issi-home h2.article-title,
.issi-home .article-info,
.issi-home .article-header,
.issi-home .com-content-article__header,
.issi-home .item-page > h1,
.issi-home .item-page > h2:first-child { display:none !important; }
.issi-home .item-page { padding:0 !important; }
.issi-home .section-white:first-child { padding-top:0 !important; }

/* ── Joomla system messages ───────────────────────────────────────────────── */
#system-message-container { position:fixed; top:80px; right:20px; z-index:9999; width:320px; }
#system-message-container .alert { border-radius:10px; padding:14px 18px; box-shadow:var(--shadow-md); font-size:13px; }
#system-message-container .alert-success { background:#f0fdf4; color:#16a34a; border-left-color:#16a34a; }
#system-message-container .alert-warning { background:#fffbeb; color:#d97706; border-left-color:#d97706; }
#system-message-container .alert-error { background:#fef2f2; color:#dc2626; border-left-color:#dc2626; }

/* ── Forms (base) ─────────────────────────────────────────────────────────── */
input, select, textarea {
  width:100%; border:1px solid var(--gray-mid); border-radius:10px;
  padding:12px 18px; font:inherit; color:var(--navy); background:var(--white);
  transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
input:focus, select:focus, textarea:focus {
  outline:none; border-color:var(--yellow); box-shadow:0 0 0 3px rgba(251,226,22,.2);
}
input::placeholder, textarea::placeholder { color:var(--gray-dark); }
label { display:block; font-size:13px; font-weight:700; margin-bottom:8px; text-transform:uppercase; letter-spacing:.06em; color:var(--navy); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.form-grid .full { grid-column:1/-1; }
.field-row { display:flex; gap:10px; }

/* Hero input overrides — glassy white */
.hero input, .hero select, .hero textarea {
  border:1px solid rgba(255,255,255,.22); border-radius:50px;
  color:#fff; background:rgba(255,255,255,.12); backdrop-filter:blur(10px);
}
.hero input::placeholder { color:rgba(255,255,255,.6); }
.hero select option { color:var(--navy); background:#fff; }

/* ── Hero search grid & cards ─────────────────────────────────────────────── */
.hero-search-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; max-width:860px; margin-top:48px; }
.hero-card {
  background:rgba(13,15,26,.55); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  border:1px solid rgba(251,226,22,.2); border-top:1px solid rgba(251,226,22,.4);
  padding:28px; border-radius:4px;
  box-shadow:0 20px 40px rgba(0,0,0,.35),inset 0 1px 0 rgba(251,226,22,.1);
  transition:border-color .35s ease,box-shadow .35s ease,transform .35s ease; position:relative; overflow:hidden;
}
.hero-card:hover { border-color:rgba(251,226,22,.5); box-shadow:var(--shadow-yellow),0 28px 50px rgba(0,0,0,.4); transform:translateY(-4px); }
.hero-card h3 { color:#fff; font-size:15px; margin-bottom:14px; letter-spacing:.02em; }

/* ── Page intro + hero sub ────────────────────────────────────────────────── */
.page-intro { font-size:clamp(15px,2.5vw,20px); font-weight:500; color:var(--gray-dark); max-width:860px; line-height:1.7; }
.hero-sub   { font-size:clamp(16px,2.8vw,22px); font-weight:500; max-width:700px; margin-bottom:48px; }

/* ── Card thumbnail ───────────────────────────────────────────────────────── */
.card-thumb { height:250px; }

/* ── Hero orbs ────────────────────────────────────────────────────────────── */
.hero-orb { position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none; z-index:0; }
.hero-orb-1 { width:400px;height:400px;background:rgba(251,226,22,.12);top:-10%;right:5%;animation:orb1 12s ease-in-out infinite; }
.hero-orb-2 { width:300px;height:300px;background:rgba(59,130,246,.08);bottom:5%;right:25%;animation:orb2 16s ease-in-out infinite; }
.hero-orb-3 { width:200px;height:200px;background:rgba(251,226,22,.07);bottom:20%;left:10%;animation:orb3 10s ease-in-out infinite; }

/* ── Hero badge ───────────────────────────────────────────────────────────── */
.hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(251,226,22,.15); border:1px solid rgba(251,226,22,.35);
  color:var(--yellow); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  padding:7px 16px; border-radius:999px; margin-bottom:24px;
  backdrop-filter:blur(8px); animation:badgePulse 3s ease-in-out 3;
}
.hero-badge-dot { width:7px;height:7px;border-radius:50%;background:var(--yellow);position:relative;flex-shrink:0; }
.hero-badge-dot::after { content:'';position:absolute;inset:0;border-radius:50%;background:var(--yellow);animation:pulseRing 1.8s ease-out 3; }

/* ── Scroll indicator ─────────────────────────────────────────────────────── */
.hero-scroll { position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;color:rgba(255,255,255,.5);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;z-index:2; }
.hero-scroll-arrow { width:24px;height:24px;border-right:2px solid rgba(255,255,255,.5);border-bottom:2px solid rgba(255,255,255,.5);transform:rotate(45deg);animation:scrollBounce 1.5s ease-in-out infinite; }

/* ── Hero content animation ───────────────────────────────────────────────── */
.hero-content { animation:fadeInUp 0.9s var(--ease) 0.1s both; }
header.site-header { animation:navSlideDown 0.5s var(--ease) forwards; }

/* ── Extra keyframes ──────────────────────────────────────────────────────── */
@keyframes pulseRing    { 0%{transform:scale(1);opacity:.6}100%{transform:scale(2.2);opacity:0} }
@keyframes gradientShift{ 0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%} }
@keyframes scrollBounce { 0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(8px);opacity:.4} }
@keyframes orb1         { 0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(40px,-30px) scale(1.08)}66%{transform:translate(-20px,20px) scale(.95)} }
@keyframes orb2         { 0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(-50px,20px) scale(.92)}66%{transform:translate(30px,-40px) scale(1.1)} }
@keyframes orb3         { 0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(20px,30px) scale(1.05)} }
@keyframes badgePulse   { 0%,100%{transform:scale(1)}50%{transform:scale(1.04)} }
@keyframes navSlideDown { from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)} }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
}
@media (max-width: 768px) {
  .section-white, .section-gray { padding:60px 0; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; gap:28px; }
  .footer-bottom { flex-direction:column; gap:12px; }
  .main-nav ul { display:none; flex-direction:column; position:fixed; inset:0; top:72px; background:rgba(255,255,255,.98); backdrop-filter:blur(24px); padding:24px; z-index:99; gap:0; }
  .main-nav.open ul { display:flex; }
  .main-nav ul li a { padding:16px 0; border-bottom:1px solid var(--gray-mid); font-size:16px; border-radius:0; }
  .main-nav ul li ul { position:static; box-shadow:none; border:none; padding:0 0 0 16px; display:block; }
  .nav-toggle { display:flex; }
  .hero { min-height:70vh; padding:100px 0 60px; }
  .program-card { height:300px; }
  .hero-search-grid, .grid-2, .form-grid { grid-template-columns:1fr; }
  .hero-orb { display:none; }
  .hero-scroll { display:none; }
  .hero-card { padding:20px; }
  .card-thumb { height:200px; }
  .field-row { flex-direction:column; }
  h1 { font-size:2.2rem; }
  h2 { font-size:1.7rem; }
}
@media (max-width: 480px) {
  .container, .container-wide { padding:0 16px; }
  .hero { padding:80px 0 48px; }
}
