/* ============================================================
   IAPEN Design System
   Colors: Base #EDF7FF | Surface #FFF | Content #0F0F0F | Accent #300D83
   Fonts: Plus Jakarta Sans (display) | Inter (body)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

/* ── Custom Properties ─────────────────────────────────────── */


:root {
  --base:         #F3EFFC;
  --surface:      #FFFFFF;
  --content:      #0F0F0F;
  --accent:       #300D83;
  --accent-dark:  #220A5C;
  --accent-light: #F1EDFB;
  --navy:         #0A1C6E;
  --navy-light:   #1630A0;
  --gold:         #D4960A;
  --gold-light:   #FFF3D4;
  --muted:        #5A6478;
  --muted-light:  #8E97A8;
  --border:       #DDD3F5;
  --border-dark:  #B9A4E3;
  --success:      #10B981;
  --error:        #EF4444;
  --font-display: 'Plus Jakarta Sans', system-ui, sans-serif;
  --font-body:    'Plus Jakarta Sans', system-ui, sans-serif;
  --space-1:  0.25rem; --space-2:  0.5rem;  --space-3:  0.75rem;
  --space-4:  1rem;    --space-5:  1.25rem; --space-6:  1.5rem;
  --space-8:  2rem;    --space-10: 2.5rem;  --space-12: 3rem;
  --space-16: 4rem;    --space-20: 5rem;    --space-24: 6rem;
  --radius-sm:  6px; --radius-md: 12px; --radius-lg: 20px;
  --radius-xl:  32px; --radius-full: 9999px;
  --shadow-sm:  0 1px 3px rgba(48,13,131,.08),0 1px 2px rgba(0,0,0,.04);
  --shadow-md:  0 4px 16px rgba(48,13,131,.12),0 2px 6px rgba(0,0,0,.06);
  --shadow-lg:  0 12px 40px rgba(48,13,131,.14),0 4px 12px rgba(0,0,0,.06);
  --shadow-xl:  0 24px 64px rgba(48,13,131,.16),0 8px 20px rgba(0,0,0,.08);
  --ease-out:   cubic-bezier(0.16,1,0.3,1);
  --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  --duration:   280ms;
}

/* ── Reset ─────────────────────────────────────────────────── */


*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}


html{scroll-behavior:smooth;font-size:16px;}


body{font-family:var(--font-body);background:var(--base);color:var(--content);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}


img,video{max-width:100%;display:block;}


a{text-decoration:none;color:inherit;}


ul{list-style:none;}


button{cursor:pointer;border:none;background:none;font-family:inherit;}


input,textarea,select{font-family:var(--font-body);border:none;outline:none;}

/* ── Typography ────────────────────────────────────────────── */


h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--content);letter-spacing:-0.02em;}


h1{font-size:clamp(2rem,5vw,3.75rem);font-weight:800;}


h2{font-size:clamp(1.5rem,3.5vw,2.5rem);}


h3{font-size:clamp(1.15rem,2.5vw,1.5rem);}


h4{font-size:1.125rem;}


p{color:var(--muted);line-height:1.7;}


.overline{font-size:0.75rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);}

/* ── Layout ────────────────────────────────────────────────── */


.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-6);}


.section{padding:var(--space-20) 0;}


.flex-between{display:flex;align-items:center;justify-content:space-between;}

/* ── Section Headers ───────────────────────────────────────── */


.section-header{text-align:center;margin-bottom:var(--space-12);}


.section-header h2{margin-top:var(--space-2);margin-bottom:var(--space-3);}


.section-header p{max-width:560px;margin:0 auto;}

/* ── Buttons ───────────────────────────────────────────────── */


.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:0.75rem 1.75rem;border-radius:var(--radius-full);font-family:var(--font-display);font-size:0.9rem;font-weight:600;transition:all var(--duration) var(--ease-out);white-space:nowrap;}


.btn-primary{background:var(--accent);color:#fff;box-shadow:0 4px 16px rgba(48,13,131,.3);}


.btn-primary:hover{background:var(--accent-dark);transform:translateY(-2px);box-shadow:0 8px 24px rgba(48,13,131,.4);}

/* ── Fancy CTA button ────────────────────────────────────────── */


@property --btn-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}


@keyframes spinBorder { to { --btn-angle: 360deg; } }



.btn-fancy {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  background: linear-gradient(135deg, #6D28D9 0%, #300D83 55%, #220A5C 100%);
  color: #fff !important;
  border-radius: var(--radius-full);
  padding: 14px 28px;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  box-shadow: 0 8px 28px rgba(48,13,131,.45), 0 2px 8px rgba(0,0,0,.15);
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform .3s var(--ease-out), box-shadow .3s var(--ease-out);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* Top glow shimmer */


.btn-fancy::before {
  content: '';
  position: absolute;
  inset: 0;
  height: 50%;
  background: linear-gradient(to bottom, rgba(255,255,255,.16), transparent);
  border-radius: var(--radius-full) var(--radius-full) 0 0;
  pointer-events: none;
  z-index: 0;
}

.btn-fancy:hover { transform: translateY(-3px); box-shadow: 0 14px 36px rgba(48,13,131,.5), 0 4px 12px rgba(0,0,0,.18); }


.btn-fancy:active { transform: translateY(0); }

/* Keep text & icon above overlays */


.btn-fancy > span,
.btn-fancy > svg { position: relative; z-index: 2; }


.btn-fancy__circle {
  width: 38px; height: 38px;
  background: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}


.btn-fancy__circle svg { width: 15px; height: 15px; color: var(--accent); stroke: var(--accent); }

/* Specular Button — rim-light shine ring (see assets/js/specular-button.js) */

.specular-fx-btn {
  --sb-angle: 0deg;
  --sb-fade: 40deg;
  --sb-glow: rgba(255,255,255,0);
  --sb-thickness: 1.5px;
}

.specular-fx-btn::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: var(--sb-thickness);
  background: conic-gradient(from var(--sb-angle),
    var(--sb-glow) 0deg,
    transparent var(--sb-fade),
    transparent calc(360deg - var(--sb-fade)),
    var(--sb-glow) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}


.btn-outline{border:2px solid var(--accent);color:var(--accent);background:transparent;}


.btn-outline:hover{background:var(--accent);color:#fff;transform:translateY(-2px);}


.btn-sm{padding:0.5rem 1.25rem;font-size:0.8rem;}


.btn-lg{padding:1rem 2.25rem;font-size:1rem;}


.btn svg{width:16px;height:16px;}


.btn-lg svg{width:18px;height:18px;}

/* ── Navigation ────────────────────────────────────────────── */


.nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:transparent;border-bottom:1px solid transparent;transition:all 0.35s var(--ease-out);}


.nav.scrolled{background:#ffffff;border-bottom-color:var(--border);box-shadow:0 2px 16px rgba(0,0,0,.08);}


.nav__inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;height:72px;padding:0 var(--space-6);max-width:1200px;margin:0 auto;gap:var(--space-4);position:relative;}


.nav__right{display:flex;align-items:center;justify-content:flex-end;}


.nav__logo{display:flex;align-items:center;flex-shrink:0;}


.nav__logo img{height:64px;width:auto;transition:height 0.35s var(--ease-out);}

.nav.scrolled .nav__logo img{height:48px;}


.nav__links{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:2px;}


.nav__links a{display:inline-flex;align-items:center;gap:6px;font-size:0.82rem;font-weight:500;color:var(--navy);padding:6px 12px;border-radius:var(--radius-sm);transition:all var(--duration) var(--ease-out);position:relative;white-space:nowrap;}


.nav__links a:hover,.nav__links a.active{color:var(--accent);background:var(--accent-light);}


.nav__links a.active::after{content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:16px;height:2px;background:var(--accent);border-radius:var(--radius-full);}

.nav__link-icon{display:inline-flex;flex-shrink:0;}
.nav__link-icon svg{width:16px;height:16px;}

.nav__dropdown{position:relative;}

.nav__dropdown-chevron{width:12px;height:12px;margin-left:2px;transition:transform var(--duration) var(--ease-out);}

.nav__dropdown.open .nav__dropdown-chevron,.nav__dropdown:hover .nav__dropdown-chevron{transform:rotate(180deg);}

.nav__dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;opacity:0;visibility:hidden;transform:translateY(6px);transition:all var(--duration) var(--ease-out);z-index:60;}

.nav__dropdown:hover .nav__dropdown-menu,.nav__dropdown.open .nav__dropdown-menu{opacity:1;visibility:visible;transform:translateY(0);}

.nav__dropdown-item{display:block;font-size:0.85rem;font-weight:500;color:var(--navy);padding:9px 12px;border-radius:var(--radius-sm);transition:all var(--duration) var(--ease-out);white-space:nowrap;}

.nav__dropdown-item:hover{color:var(--accent);background:var(--accent-light);}




a.nav-login{display:inline-flex;align-items:center;background:var(--surface);border:1.5px solid var(--accent);border-radius:var(--radius-full);padding:7px 18px;color:var(--accent);font-size:0.82rem;font-weight:600;transition:all var(--duration) var(--ease-out);white-space:nowrap;}


a.nav-login:hover{background:var(--accent);color:#fff;}


.nav__hamburger{display:none;flex-direction:column;gap:5px;padding:var(--space-2);grid-column:3;}


.nav__hamburger span{width:24px;height:2px;background:var(--navy);border-radius:var(--radius-full);transition:all var(--duration) var(--ease-out);}


.nav__hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}


.nav__hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0);}


.nav__hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}


.nav__mobile{display:none;flex-direction:column;background:#fff;padding:var(--space-4) var(--space-6) var(--space-6);border-top:1px solid var(--border);}


.nav__mobile.open{display:flex;}


.nav__mobile a{display:flex;align-items:center;gap:10px;color:var(--navy);font-size:0.95rem;font-weight:500;padding:var(--space-3) 0;border-bottom:1px solid var(--border);transition:color var(--duration) var(--ease-out);}


.nav__mobile a:hover{color:var(--accent);}


.nav__mobile .btn,
.nav__mobile a.btn{
  margin-top:var(--space-4);
  text-align:center;
  justify-content:center;
  color:#fff;
  border-bottom:none;
  padding:12px 24px;
}

.nav__mobile .btn:hover,
.nav__mobile a.btn:hover{color:#fff;}

/* ── Hero — Editorial layout ────────────────────────────────── */


.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-top: 72px;
  background:
    radial-gradient(ellipse 55% 50% at -5% 10%,  rgba(48,13,131,.18)  0%, transparent 55%),
    radial-gradient(ellipse 45% 40% at 105% 95%, rgba(124,58,237,.15) 0%, transparent 50%),
    radial-gradient(ellipse 40% 35% at 80% 10%,  rgba(48,13,131,.09)  0%, transparent 50%),
    radial-gradient(ellipse 35% 30% at 20% 90%,  rgba(124,58,237,.08) 0%, transparent 45%),
    linear-gradient(145deg, #ece5fb 0%, #f3effc 30%, #e4dbf9 60%, #f2eefc 100%);
}

/* Decorative glowing blobs */


.hero__blob1,
.hero__blob2 {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
  z-index: 0;
  animation: blobFloat 8s ease-in-out infinite;
}


.hero__blob1 {
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(48,13,131,.18) 0%, transparent 70%);
  top: -80px; left: -80px;
}


.hero__blob2 {
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(124,58,237,.15) 0%, transparent 70%);
  bottom: 60px; right: -60px;
  animation-delay: -4s;
  animation-duration: 10s;
}


@keyframes blobFloat {
  0%,100% { transform: translate(0,0) scale(1); }
  33%  { transform: translate(20px,-15px) scale(1.05); }
  66%  { transform: translate(-15px,10px) scale(0.96); }
}

/* Grid line pattern */


.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(rgba(48,13,131,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(48,13,131,.025) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
}

/* Positions */

/* Top text block */


.hero__top {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-16) var(--space-6) 0;
  position: relative;
  z-index: 1;
}


.hero__overline {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: var(--space-5);
  animation: heroFadeUp .6s var(--ease-out) .1s both;
}


@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}


.hero h1 {
  color: var(--accent-dark);
  font-size: clamp(2.4rem, 5vw, 4.5rem);
  letter-spacing: -0.04em;
  line-height: 1.08;
  margin-bottom: var(--space-5);
  animation: heroFadeUp .7s var(--ease-out) .25s both;
}


.hero h1 .highlight {
  color: var(--accent);
  font-style: italic;
  animation: heroFadeUp .7s var(--ease-out) .25s both, accentFlow 5s ease-in-out infinite;
}


@keyframes accentFlow {
  0%,100% { color: #300D83; }
  50%     { color: #A78BFA; }
}


.hero__desc {
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.7;
  max-width: 640px;
  margin-bottom: var(--space-5);
  animation: heroFadeUp .7s var(--ease-out) .4s both;
}

/* Inline stats row */


.hero__actions {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: var(--space-12);
  animation: heroFadeUp .7s var(--ease-out) .55s both;
}


.hero__actions .btn { padding: 0.85rem 2rem; font-size: 0.95rem; }


.hero-btn-ghost {
  background: var(--surface);
  border: 1.5px solid var(--border-dark);
  color: var(--content);
  border-radius: var(--radius-full);
}


.hero-btn-ghost:hover {
  background: var(--surface);
  border-color: var(--accent);
  color: var(--accent);
  transform: translateY(-2px);
}

/* Staggered image strip — inside container */


.hero__strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: 0 var(--space-6) var(--space-16);
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
  position: relative;
  z-index: 2;
  animation: heroFadeUp .9s var(--ease-out) .7s both;
}


.hero__banner {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  aspect-ratio: 3344 / 1640;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}


.hero__banner img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }


.hero__strip-img {
  overflow: hidden;
  border-radius: var(--radius-lg);
  flex: 1;
  box-shadow: var(--shadow-lg);
  transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
  min-width: 0;
}


.hero__strip-img:hover { transform: translateY(-6px); }


.hero__strip-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}


.hero__strip-img--a { height: 260px; }


.hero__strip-img--c { height: 320px; flex: 1.3; }


.hero__strip-img--e { height: 280px; }

/* ── Stats Section ─────────────────────────────────────────── */

/* ── College of ISA — Leadership ────────────────────────────── */

/* Senior 4 — horizontal profile cards */

/* Deans — compact accent-bordered list */

/* ── News Grid ──────────────────────────────────────────────── */

/* ── Bento Grid ─────────────────────────────────────────────── */


.bento-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: minmax(220px, auto);
  gap: var(--space-4);
}


.bento-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  position: relative;
  overflow: hidden;
  gap: var(--space-5);
}

/* Variants */


.bento-card--dark {
  background: linear-gradient(135deg, var(--navy) 0%, #1630A0 100%);
  color: #fff;
}


.bento-card--gold {
  background: linear-gradient(135deg, #0F3460 0%, #1A5276 100%);
  color: #fff;
}


.bento-card--light {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--content);
}


.bento-card--accent {
  background: linear-gradient(135deg, var(--accent) 0%, #1D6FFF 100%);
  color: #fff;
}

/* Grid placement */


.bento-card--wide { grid-column: span 2; }


.bento-card--tall { grid-row: span 2; }

/* Inner elements */


.bento-card__icon {
  width: 48px; height: 48px;
  border-radius: var(--radius-md);
  background: rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  margin-bottom: auto;
}


.bento-card--light .bento-card__icon { background: var(--accent-light); color: var(--accent); }


.bento-card__icon svg { width: 22px; height: 22px; }


.bento-card__content { margin-top: var(--space-5); }


.bento-card__tag {
  display: inline-flex;
  align-items: center;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  color: rgba(255,255,255,.9);
  border-radius: var(--radius-full);
  padding: 4px 12px;
  margin-bottom: var(--space-3);
  width: fit-content;
}


.bento-card--light .bento-card__tag {
  background: var(--accent-light);
  border-color: rgba(48,13,131,.15);
  color: var(--accent);
}


.bento-card__title {
  font-size: 1.2rem;
  font-weight: 700;
  color: inherit;
  margin-bottom: var(--space-2);
  line-height: 1.2;
}


.bento-card--light .bento-card__title { color: var(--navy); }


.bento-card__desc {
  font-size: 0.82rem;
  line-height: 1.6;
  color: rgba(255,255,255,.72);
}


.bento-card--light .bento-card__desc { color: var(--muted); }


.bento-card__badge {
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,.15);
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 12px;
  color: #fff;
  width: fit-content;
  margin-top: auto;
}


.bento-card__spacer { flex: 1; }


.bento-card__bottom {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}


.bento-card__stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}


.bento-card__stat span {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
}


.bento-card__stat small { font-size: 0.72rem; color: rgba(255,255,255,.6); margin-top: 2px; }



.bento-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.3);
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.55rem 1.25rem;
  border-radius: var(--radius-full);
  transition: background var(--duration) var(--ease-out);
  width: fit-content;
  text-decoration: none;
}


.bento-card__btn:hover { background: rgba(255,255,255,.3); }

/* Decorative circle */


.bento-card::after {
  content: '';
  position: absolute;
  right: -40px; bottom: -40px;
  width: 140px; height: 140px;
  border-radius: 50%;
  background: rgba(255,255,255,.05);
  pointer-events: none;
}



@media(max-width:1024px) {

  .bento-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }

  .bento-card--wide { grid-column: span 2; }

  .bento-card--tall { grid-row: span 1; }
}


@media(max-width:640px) {

  .bento-grid { grid-template-columns: 1fr; }

  .bento-card--wide { grid-column: span 1; }
}

/* ── Pillars Section ────────────────────────────────────────── */

/* ── Mission & Vision Cards ─────────────────────────────────── */

/* ── About Section ──────────────────────────────────────────── */


.about-section { /* background set via bg-base or bg-surface utility */ }



.about-section__grid {
  display: grid;
  grid-template-columns: minmax(0, 440px) 1fr;
  gap: var(--space-12);
  align-items: start;
}


.about-section__intro .overline {
  display: inline-block;
  margin-bottom: var(--space-4);
}


.about-section__title {
  margin: 0 0 var(--space-5);
}


.about-section__lead {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--muted);
}


.about-section__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
}


.about-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  transition: all var(--duration) var(--ease-out);
}


.about-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: transparent;
}


.about-card__icon {
  width: 44px; height: 44px;
  background: var(--accent-light);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: var(--space-4);
  color: var(--accent);
  flex-shrink: 0;
  transition: transform var(--duration) var(--ease-spring);
}


.about-card:hover .about-card__icon { transform: scale(1.08) rotate(-4deg); }


.about-card__icon svg { width: 20px; height: 20px; }


.about-card__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--content);
  margin-bottom: var(--space-2);
}


.about-card__desc {
  font-size: 0.85rem;
  color: var(--muted);
  line-height: 1.65;
}



@media(max-width:900px) {

  .about-section__grid { grid-template-columns: 1fr; }
}


@media(max-width:768px) {

  .about-section__cards { grid-template-columns: 1fr; }
}

/* ── ISA Programs ───────────────────────────────────────────── */


.isa-programs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5);
}


.isa-program-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-6) var(--space-6);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-4);
  transition: all var(--duration) var(--ease-out);
}


.isa-program-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
  border-color: var(--accent);
}


.isa-program-card__logo {
  display: flex; align-items: center; justify-content: center;
}


.isa-program-card__icon-wrap {
  width: 80px; height: 80px;
  background: var(--accent-light);
  border-radius: var(--radius-xl);
  display: flex; align-items: center; justify-content: center;
  color: var(--accent);
  transition: background var(--duration), transform var(--duration) var(--ease-spring);
}


.isa-program-card:hover .isa-program-card__icon-wrap {
  background: var(--accent);
  color: #fff;
  transform: scale(1.08);
}


.isa-program-card__icon-wrap svg { width: 36px; height: 36px; }


.isa-program-card__logo img { width: 80px; height: 80px; object-fit: contain; }


.isa-program-card__name {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.3;
  flex: 1;
}


.isa-program-card__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--accent);
  transition: gap var(--duration) var(--ease-out);
  text-decoration: none;
}


.isa-program-card:hover .isa-program-card__link { gap: 8px; }


.isa-program-card__link svg { width: 14px; height: 14px; }


@media(max-width:768px) {
 .isa-programs-grid { grid-template-columns: repeat(2,1fr); }
}

/* ── Running Text Bar ───────────────────────────────────────── */


.running-text-bar {
  background: var(--accent-dark);
  padding: 10px 0;
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
}


.running-text__track {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  white-space: nowrap;
  width: max-content;
  animation: runningText 206s linear infinite;
}


.running-text__track:hover { animation-play-state: paused; }


.running-text__item {
  font-size: 0.8rem;
  font-weight: 600;
  color: rgba(255,255,255,.85);
  flex-shrink: 0;
  cursor: default;
}


.running-text__sep {
  width: 6px;
  height: 6px;
  background: #C9B8F0;
  border-radius: 2px;
  flex-shrink: 0;
  transform: rotate(45deg);
  animation: sepSpin 3.5s linear infinite;
}


@keyframes sepSpin {
  from { transform: rotate(45deg); }
  to   { transform: rotate(405deg); }
}


@keyframes runningText {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── Leadership / President's Message ───────────────────────── */


.leader-section {
  background: var(--accent-dark);
}


.leader-section .section-header h2 { color: #fff; }


.leader-quote {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-10);
  text-align: center;
  max-width: 900px;
  margin: 0 auto var(--space-12);
}


.leader-quote p {
  color: #fff;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.6;
  margin: 0;
}


.leader-bio { max-width: 820px; margin: 0 auto; text-align: center; }


.leader-bio p {
  color: rgba(255,255,255,.8);
  font-size: 0.98rem;
  line-height: 1.85;
  margin-bottom: var(--space-5);
}


.leader-bio p:last-child { margin-bottom: 0; }


.leader-avatar {
  width: 110px; height: 110px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.35);
  display: flex; align-items: center; justify-content: center;
  margin: var(--space-10) auto var(--space-5);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}


.leader-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }


.leader-name { color: #fff; font-weight: 700; font-size: 1.05rem; text-align: center; }


.leader-role { display: block; color: rgba(255,255,255,.65); font-size: 0.85rem; text-align: center; margin-top: 2px; }


@media(max-width:768px) {

  .leader-quote { padding: var(--space-6) var(--space-6); }
}

/* ── Announcement Banner ───────────────────────────────────── */


.announcement__track{display:flex;align-items:center;gap:var(--space-10);white-space:nowrap;animation:marquee 35s linear infinite;}

/* ── About Section ─────────────────────────────────────────── */

/* ── Timeline ──────────────────────────────────────────────── */


.timeline-item{position:relative;margin-bottom:var(--space-8);opacity:0;transform:translateX(-20px);transition:all .6s var(--ease-out);}


.timeline-item:last-child{margin-bottom:0;}


.timeline-item.visible{opacity:1;transform:translateX(0);}

/* Dot */


.timeline-item::before{
  content:'';
  position:absolute;
  left:calc(-1 * var(--space-10) + var(--space-4) - 6px);
  top:6px;
  width:12px;height:12px;
  border-radius:50%;
  background:var(--accent);
  border:2px solid var(--surface);
  box-shadow:0 0 0 3px rgba(48,13,131,.2);
  z-index:1;
}

/* Line — runs from this dot to the next dot, not beyond */


.timeline-item::after{
  content:'';
  position:absolute;
  left:calc(-1 * var(--space-10) + var(--space-4) - 1px);
  top:18px;                         /* just below dot bottom edge (6+12=18px) */
  height:calc(100% + var(--space-8) - 6px); /* extends to centre of next dot */
  width:2px;
  background:linear-gradient(to bottom,var(--accent),var(--gold));
}


.timeline-item:last-child::after{display:none;}

/* no line after final dot */


.timeline-item h4{margin-bottom:var(--space-2);}


.timeline-item p{font-size:0.875rem;}

/* ── Membership ────────────────────────────────────────────── */

/* ── Journal / Publications ─────────────────────────────────── */

/* ── News Cards ─────────────────────────────────────────────── */


.news-card{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);transition:all var(--duration) var(--ease-out);}


.news-card:hover{transform:translateX(4px);box-shadow:var(--shadow-md);border-color:var(--accent);}


.news-card__img{border-radius:var(--radius-md);aspect-ratio:1;object-fit:cover;background:var(--base);display:flex;align-items:center;justify-content:center;align-self:center;}


.news-card__img svg{width:26px;height:26px;color:var(--border-dark);}


.news-card__content{display:flex;flex-direction:column;gap:var(--space-1);justify-content:center;}


.news-card__cta{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:700;font-size:0.85rem;white-space:nowrap;flex-shrink:0;}

.news-card__cta svg{width:16px;height:16px;transition:transform var(--duration) var(--ease-out);}

.news-card:hover .news-card__cta svg{transform:translateX(3px);}


.news-card h4{font-size:0.875rem;line-height:1.4;color:var(--content);}


.news-card p{font-size:0.78rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* ── Contact Us ─────────────────────────────────────────────── */

.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);}

.contact-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--duration) var(--ease-out);}

.contact-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent);}

.contact-card__avatar{width:52px;height:52px;border-radius:var(--radius-md);background:linear-gradient(135deg,#6D28D9 0%,var(--accent) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:0.95rem;letter-spacing:.02em;margin-bottom:var(--space-4);box-shadow:var(--shadow-sm);}

.contact-card__role{display:inline-block;font-size:0.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-light);padding:4px 10px;border-radius:var(--radius-full);margin-bottom:var(--space-3);}

.contact-card__name{font-size:1rem;font-weight:700;color:var(--content);padding-bottom:var(--space-4);border-bottom:1px solid var(--border);margin-bottom:var(--space-4);}

.contact-card__details{display:flex;flex-direction:column;gap:var(--space-2);}

.contact-card__row{display:flex;align-items:center;gap:8px;font-size:0.85rem;color:var(--muted);}

.contact-card__row svg{width:15px;height:15px;color:var(--muted);flex-shrink:0;}


/* ── Executive Committee ────────────────────────────────────── */

.committee-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);}

.committee-card{text-align:center;}

.committee-card__photo{width:100%;aspect-ratio:1/1;border-radius:var(--radius-lg);overflow:hidden;background:var(--accent-light);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4);transition:box-shadow var(--duration) var(--ease-out),transform var(--duration) var(--ease-out);}

.committee-card:hover .committee-card__photo{transform:translateY(-4px);box-shadow:var(--shadow-md);}

.committee-card__photo img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}

.committee-card__name{font-size:1rem;font-weight:700;color:var(--content);margin-bottom:var(--space-2);}

.committee-card__role{display:inline-block;font-size:0.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-light);padding:4px 10px;border-radius:var(--radius-full);}


/* ── Vision / Mission / Objectives ─────────────────────────── */

.vm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6);margin-bottom:var(--space-8);}

.vm-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-8);transition:all var(--duration) var(--ease-out);}

.vm-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent);}

.vm-card__icon{width:52px;height:52px;border-radius:var(--radius-md);background:var(--accent-light);display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:var(--space-5);}

.vm-card__icon svg{width:24px;height:24px;}

.vm-card__title{font-size:1.15rem;margin-bottom:var(--space-3);}

.vm-card__desc{color:var(--muted);font-size:0.92rem;line-height:1.7;}

.objectives-heading{text-align:center;margin-bottom:var(--space-8);}

.objectives-heading h3{font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:700;color:var(--content);}

.objectives-list{display:flex;flex-direction:column;gap:var(--space-4);}

.objective-item{display:flex;gap:var(--space-5);align-items:flex-start;background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--duration) var(--ease-out);}

.objective-item:hover{border-color:var(--accent);box-shadow:var(--shadow-sm);}

.objective-item__num{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#6D28D9 0%,var(--accent) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;}

.objective-item__content h4{font-size:1rem;color:var(--content);margin-bottom:var(--space-2);}

.objective-item__content p{font-size:0.88rem;color:var(--muted);line-height:1.65;}

/* ── Leadership ─────────────────────────────────────────────── */

/* Always 4 per row on tablet+ */

/* ── Chapter Grid ───────────────────────────────────────────── */


.chapter-pill{display:flex;align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);padding:var(--space-2) var(--space-4);font-size:0.8rem;font-weight:500;color:var(--content);transition:all var(--duration) var(--ease-out);}


.chapter-pill:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-1px);}


.chapter-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);}


.chapter-pill:hover .dot{background:rgba(255,255,255,.6);}

/* ── Contact Form ───────────────────────────────────────────── */

/* ── Page Heroes ────────────────────────────────────────────── */

/* ── Tabs ───────────────────────────────────────────────────── */


.tabs{display:flex;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);padding:var(--space-1);width:fit-content;}


.tab{padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);font-size:0.875rem;font-weight:600;color:var(--muted);transition:all var(--duration) var(--ease-out);cursor:pointer;}


.tab.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(48,13,131,.3);}


.tab:not(.active):hover{background:var(--base);color:var(--content);}

/* ── Accordion / FAQ ────────────────────────────────────────── */


.faq-item{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:var(--space-3);overflow:hidden;transition:all var(--duration) var(--ease-out);}


.faq-item.open{border-color:var(--accent);box-shadow:var(--shadow-sm);}


.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);background:var(--surface);font-family:var(--font-display);font-size:0.925rem;font-weight:600;color:var(--content);text-align:left;transition:background var(--duration);}


.faq-question:hover{background:var(--base);}


.faq-question svg{width:20px;height:20px;color:var(--accent);transition:transform var(--duration) var(--ease-out);flex-shrink:0;}


.faq-item.open .faq-question svg{transform:rotate(180deg);}


.faq-item.open .faq-answer{max-height:400px;}

/* ── Testimonials (horizontal cards) ────────────────────────── */


.testimonial-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}


.testimonial-h {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: var(--space-8);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-6);
  position: relative;
  overflow: hidden;
  transition: all var(--duration) var(--ease-out);
}


.testimonial-h::before {
  content: '\201C';
  position: absolute;
  top: -8px;
  left: var(--space-6);
  font-size: 6rem;
  font-family: Georgia, serif;
  color: var(--accent);
  opacity: 0.12;
  line-height: 1;
  pointer-events: none;
}


.testimonial-h:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--accent);
}


.testimonial-h:hover::before { opacity: 0.2; }


.testimonial-h__text {
  font-size: 0.9rem;
  color: var(--content);
  line-height: 1.8;
  margin-top: var(--space-4);
}


.testimonial-h__footer {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding-top: var(--space-5);
  border-top: 1px solid var(--border);
}


.testimonial__avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent-light), var(--base));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.85rem;
  color: var(--accent);
  flex-shrink: 0;
  border: 2px solid var(--border);
}


.testimonial__name { font-weight: 700; font-size: 0.875rem; color: var(--content); }


.testimonial__role { font-size: 0.72rem; color: var(--muted-light); margin-top: 1px; }


@media(max-width:768px) {
 .testimonial-row { grid-template-columns: 1fr; }
}

/* ── CTA Sections ───────────────────────────────────────────── */


.cta-section{
  background: linear-gradient(270deg, #060E40, #300D83, #1630A0, #220A5C, #060E40);
  background-size: 300% 300%;
  animation: ctaGradient 8s ease infinite;
  border-radius: var(--radius-xl);
  padding: var(--space-12) var(--space-12);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-8);
  text-align: left;
  position: relative;
  overflow: hidden;
}


@keyframes ctaGradient {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}


.cta-section::before{content:'';position:absolute;left:-80px;bottom:-80px;width:400px;height:400px;background:rgba(255,255,255,.04);border-radius:50%;}


.cta-section__content{max-width:640px;}

.cta-section h2{color:#fff;font-size:clamp(1.3rem,2.4vw,1.9rem);margin-bottom:var(--space-3);}


.cta-section p{color:rgba(255,255,255,.75);font-size:0.9rem;max-width:520px;margin:0;}


.cta-section__actions{display:flex;gap:var(--space-4);flex-wrap:wrap;flex-shrink:0;}

.cta-btn-primary{background:#fff;color:var(--accent-dark);border-radius:var(--radius-full);padding:12px 26px;font-weight:700;font-size:0.9rem;white-space:nowrap;transition:all var(--duration) var(--ease-out);}

.cta-btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);}

.cta-btn-outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.35);border-radius:var(--radius-full);padding:12px 26px;font-weight:700;font-size:0.9rem;white-space:nowrap;transition:all var(--duration) var(--ease-out);}

.cta-btn-outline:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6);}

/* ── Cards ─────────────────────────────────────────────────── */

/* ── Feature Cards ─────────────────────────────────────────── */

/* ── Event Cards ───────────────────────────────────────────── */

/* ── Footer ─────────────────────────────────────────────────── */


.footer{background:var(--accent-dark);color:rgba(255,255,255,.7);padding:var(--space-16) 0 var(--space-8);}


.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-10);margin-bottom:var(--space-12);}


.footer__brand{max-width:320px;}


.footer__brand img{height:52px;margin-bottom:var(--space-4);background:#fff;border-radius:var(--radius-md);padding:6px 10px;}


.footer__brand p{font-size:0.85rem;line-height:1.7;color:rgba(255,255,255,.55);margin-bottom:var(--space-5);}


.footer__socials{display:flex;gap:var(--space-3);}


.footer__social{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;transition:all var(--duration) var(--ease-out);}


.footer__social:hover{background:var(--accent);transform:translateY(-2px);}


.footer__social svg{width:16px;height:16px;color:rgba(255,255,255,.8);}


.footer__col h5{font-family:var(--font-display);font-size:0.78rem;font-weight:700;color:var(--accent-light);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:var(--space-5);}


.footer__links{display:flex;flex-direction:column;gap:var(--space-3);}


.footer__links a{font-size:0.82rem;color:rgba(255,255,255,.55);transition:color var(--duration);display:flex;align-items:center;gap:var(--space-2);}


.footer__links a:hover{color:#fff;}


.footer__links a::before{content:'→';font-size:0.7rem;opacity:0.45;transition:opacity var(--duration),color var(--duration);}


.footer__links a:hover::before{opacity:1;color:#fff;}


.footer__quicklinks {
  border-top: 1px solid rgba(255,255,255,.08);
  padding: var(--space-5) 0;
}


.footer__quicklinks-title {
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: var(--space-3);
  letter-spacing: 0.05em;
  text-align: left;
}


.footer__quicklinks-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: var(--space-2);
}


.footer__quicklinks-list a {
  font-size: 0.75rem;
  color: rgba(255,255,255,.6);
  transition: color var(--duration);
  white-space: nowrap;
}


.footer__quicklinks-list a:hover { color: #fff; }


.footer__quicklinks-list span {
  color: rgba(255,255,255,.2);
  font-size: 0.75rem;
}



.footer__bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);}


.footer__bottom p{font-size:0.8rem;color:rgba(255,255,255,.4);}


.footer__powered{display:flex;align-items:center;justify-content:flex-end;}


.footer__powered span{display:none;}


.footer__powered-logo{height:40px;width:auto;}


.footer__powered-logo:hover{opacity:.85;}


@media(max-width:768px){
.footer__bottom{grid-template-columns:1fr;text-align:center;}
.footer__powered{justify-content:center;}
}


.footer__contact-item{display:flex;align-items:flex-start;gap:var(--space-3);font-size:0.82rem;color:rgba(255,255,255,.55);margin-bottom:var(--space-3);}


.footer__contact-item svg{width:15px;height:15px;color:#C9B8F0;flex-shrink:0;margin-top:2px;}

/* ── Utilities ──────────────────────────────────────────────── */


.bg-base{background:var(--base);}

.bg-surface{background:var(--surface);}

/* ── Scroll Animations ──────────────────────────────────────── */


.fade-up{opacity:0;transform:translateY(32px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);}


.fade-up.visible{opacity:1;transform:translateY(0);}


.fade-in{opacity:0;transition:opacity .6s var(--ease-out);}


.fade-in.visible{opacity:1;}


.slide-left{opacity:0;transform:translateX(-40px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);}


.slide-left.visible{opacity:1;transform:translateX(0);}


.slide-right{opacity:0;transform:translateX(40px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);}


.slide-right.visible{opacity:1;transform:translateX(0);}


.delay-1{transition-delay:.1s;}

.delay-2{transition-delay:.2s;}

.delay-3{transition-delay:.3s;}
.delay-4{transition-delay:.4s;}


@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.6;transform:scale(1.3);}}


@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ── Back to Top ────────────────────────────────────────────── */


.back-top{position:fixed;bottom:var(--space-6);right:var(--space-6);width:44px;height:44px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transform:translateY(16px);transition:all var(--duration) var(--ease-out);z-index:900;}


.back-top.visible{opacity:1;pointer-events:all;transform:translateY(0);}


.back-top:hover{background:var(--accent-dark);transform:translateY(-2px);}


.back-top svg{width:20px;height:20px;color:#fff;}


/* ── Committee Member Modal ───────────────────────────────────── */

.committee-card{cursor:pointer;}

.committee-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-md);}

.member-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:var(--space-6);opacity:0;pointer-events:none;transition:opacity var(--duration) var(--ease-out);}

.member-modal.active{opacity:1;pointer-events:all;}

.member-modal__backdrop{position:absolute;inset:0;background:rgba(15,4,40,.62);backdrop-filter:blur(4px);}

.member-modal__dialog{position:relative;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:560px;width:100%;max-height:85vh;overflow-y:auto;padding:var(--space-10) var(--space-8) var(--space-8);transform:translateY(16px) scale(.98);transition:transform var(--duration) var(--ease-out);}

.member-modal.active .member-modal__dialog{transform:translateY(0) scale(1);}

.member-modal__close{position:absolute;top:var(--space-5);right:var(--space-5);width:36px;height:36px;border-radius:50%;background:var(--accent-light);display:flex;align-items:center;justify-content:center;color:var(--accent);border:none;cursor:pointer;transition:background var(--duration) var(--ease-out);}

.member-modal__close:hover{background:var(--border);}

.member-modal__close svg{width:18px;height:18px;}

.member-modal__header{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-6);padding-right:var(--space-8);}

.member-modal__photo{width:84px;height:84px;border-radius:var(--radius-lg);overflow:hidden;flex-shrink:0;background:var(--accent-light);box-shadow:var(--shadow-sm);}

.member-modal__photo img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}

.member-modal__name{font-size:1.15rem;font-weight:700;color:var(--content);margin-bottom:var(--space-2);}

.member-modal__role{display:inline-block;font-size:0.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-light);padding:4px 10px;border-radius:var(--radius-full);}

.member-modal__bio p{font-size:0.9rem;line-height:1.75;color:var(--muted);margin-bottom:var(--space-4);}

.member-modal__bio p:last-child{margin-bottom:0;}



/* ── By-Laws PDF Viewer Modal ─────────────────────────────────── */

.pdf-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:var(--space-6);opacity:0;pointer-events:none;transition:opacity var(--duration) var(--ease-out);}

.pdf-modal.active{opacity:1;pointer-events:all;}

.pdf-modal__backdrop{position:absolute;inset:0;background:rgba(15,4,40,.68);backdrop-filter:blur(4px);}

.pdf-modal__dialog{position:relative;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:900px;height:88vh;display:flex;flex-direction:column;overflow:hidden;transform:translateY(16px) scale(.98);transition:transform var(--duration) var(--ease-out);}

.pdf-modal.active .pdf-modal__dialog{transform:translateY(0) scale(1);}

.pdf-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border);flex-shrink:0;}

.pdf-modal__header h3{font-size:1.05rem;font-weight:700;color:var(--content);}

.pdf-modal__close{width:36px;height:36px;border-radius:50%;background:var(--accent-light);display:flex;align-items:center;justify-content:center;color:var(--accent);border:none;cursor:pointer;transition:background var(--duration) var(--ease-out);flex-shrink:0;}

.pdf-modal__close:hover{background:var(--border);}

.pdf-modal__close svg{width:18px;height:18px;}

.pdf-modal__body{flex:1;min-height:0;}

.pdf-modal__frame{width:100%;height:100%;border:none;display:block;}


/* ── Responsive ─────────────────────────────────────────────── */


@media(max-width:1024px){

  .footer__grid{grid-template-columns:1fr 1fr;gap:var(--space-8);}

  .hero__strip-img--a{height:170px;}

  .hero__strip-img--c{height:240px;}

  .hero h1{font-size:clamp(2.2rem,5vw,3.5rem);}
}


/* Hamburger nav: include 991px */
@media(max-width:991px){

  .nav__links{display:none;}

  .nav__right{display:none;}

  .nav__hamburger{display:flex;}
}


@media(max-width:768px){

  :root{--space-20:3.5rem;--space-16:3rem;--space-12:2.5rem;}

  .footer__grid{grid-template-columns:1fr;}

  .cta-section{padding:var(--space-12) var(--space-6);flex-direction:column;text-align:center;align-items:center;}

  .cta-section__actions{justify-content:center;}

  .news-card{grid-template-columns:80px 1fr;gap:var(--space-3);}

  .news-card__cta{grid-column:1 / -1;justify-self:end;margin-top:var(--space-2);}

  .contact-grid{grid-template-columns:repeat(2,1fr);}

  .committee-grid{grid-template-columns:repeat(2,1fr);}

  .vm-grid{grid-template-columns:1fr;}

  .section-header{margin-bottom:var(--space-8);}

  .hero__strip{gap:var(--space-2);}

  .hero__strip-img--a{height:200px;}

  .hero__strip-img--c{height:240px;}

  .hero__strip-img--e{height:210px;}
}


@media(max-width:480px){

  .container{padding:0 var(--space-4);}

  .hero__actions{flex-direction:column;align-items:center;}

  .cta-section__actions{flex-direction:column;align-items:center;}

  .footer__bottom{flex-direction:column;text-align:center;}

  .tabs{flex-wrap:wrap;border-radius:var(--radius-lg);}

  .contact-grid{grid-template-columns:1fr;}

  .committee-grid{grid-template-columns:1fr;gap:var(--space-4);}

  .objective-item{flex-direction:column;gap:var(--space-3);}
}
