/* ==========================================================================
   ASET — Academy of Sustainability and Emerging Technologies
   Design tokens: ink #0A1512, paper #F6F3EC, forest #163832,
                  brass #C6A15B, teal #3FA9A0, slate #5B6B66
   Display: Fraunces · Body: Manrope · Utility/data: IBM Plex Mono
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600;9..144,700&family=Manrope:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --ink:#0A1512;
  --ink-2:#0E1E19;
  --forest:#163832;
  --forest-2:#173F35;
  --paper:#F6F3EC;
  --paper-dim:#EDEAE1;
  --brass:#C6A15B;
  --brass-dim:#A9824A;
  --teal:#3FA9A0;
  --slate:#5B6B66;
  --slate-2:#8C978F;
  --line-dark: rgba(246,243,236,0.12);
  --line-light: rgba(10,21,18,0.12);

  --f-display:'Fraunces', serif;
  --f-body:'Manrope', sans-serif;
  --f-mono:'IBM Plex Mono', monospace;

  --container: 1280px;
  --pad: clamp(20px, 5vw, 64px);
  --radius: 18px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
section{ position:relative; }
section[id], #partnerships{ scroll-margin-top:96px; }

.wrap{ max-width:var(--container); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- typography helpers ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--f-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass); margin-bottom:18px;
}
.eyebrow .ring{ width:14px; height:14px; position:relative; flex:none; }
.eyebrow .ring::before,.eyebrow .ring::after{
  content:''; position:absolute; border-radius:50%; border:1.4px solid currentColor;
}
.eyebrow .ring::before{ width:9px; height:9px; left:0; top:2px; }
.eyebrow .ring::after{ width:9px; height:9px; right:0; top:2px; }

h1,h2,h3,h4{ font-family:var(--f-display); font-weight:500; margin:0; letter-spacing:-0.01em; }
.section-title{
  font-size:clamp(30px,4vw,46px); line-height:1.12; font-weight:500; max-width:760px;
}
.section-sub{ color:var(--slate); max-width:620px; font-size:17px; margin-top:16px; }
.on-dark .section-sub{ color:rgba(246,243,236,0.72); }
.on-dark{ color:var(--paper); }

.section-head{ margin-bottom:56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head.center .section-title, .section-head.center .section-sub{ margin-left:auto; margin-right:auto; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 30px; border-radius:999px; font-family:var(--f-body); font-weight:700; font-size:14.5px;
  letter-spacing:.01em; border:1px solid transparent; transition:transform .5s var(--ease), box-shadow .5s var(--ease), background .4s ease, color .4s ease, border-color .4s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--brass); color:var(--ink); box-shadow:0 0 0 rgba(198,161,91,0); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 34px -12px rgba(198,161,91,0.55); }
.btn-ghost{ background:transparent; color:var(--paper); border-color:rgba(246,243,236,0.35); }
.btn-ghost:hover{ background:rgba(246,243,236,0.08); border-color:rgba(246,243,236,0.6); transform:translateY(-2px); }
.btn-outline-dark{ background:transparent; color:var(--ink); border-color:rgba(10,21,18,0.25); }
.btn-outline-dark:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.btn-sm{ padding:11px 20px; font-size:13px; }
.btn svg{ width:15px; height:15px; transition:transform .4s var(--ease); }
.btn:hover svg{ transform:translateX(4px); }

/* ==========================================================================
   NAV
   ========================================================================== */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:20px var(--pad); display:flex; align-items:center; justify-content:space-between;
  transition:background .5s var(--ease), padding .5s var(--ease), border-color .5s var(--ease), backdrop-filter .5s ease;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(10,21,18,0.82); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  padding-top:14px; padding-bottom:14px; border-bottom-color:rgba(246,243,236,0.08);
}
.nav-logo{ display:flex; align-items:center; gap:12px; }
.nav-logo img{ height:38px; width:auto; }
.nav-logo-word{ font-family:var(--f-display); font-size:19px; color:var(--paper); letter-spacing:.02em; }
.nav-logo-word b{ color:var(--brass); font-weight:600; }
.nav-links{ display:flex; align-items:center; gap:30px; }
.nav-links a{
  font-size:13.5px; font-weight:600; color:rgba(246,243,236,0.82); position:relative; padding:4px 0; white-space:nowrap;
}
.nav-links a::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--brass); transition:width .4s var(--ease); }
.nav-links a:hover{ color:var(--paper); }
.nav-links a:hover::after{ width:100%; }
.nav-links a.active{ color:var(--paper); }
.nav-links a.active::after{ width:100%; }
.mobile-nav a.active{ color:var(--brass); }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-burger{ display:none; width:42px; height:42px; border-radius:50%; border:1px solid rgba(246,243,236,0.3); background:transparent; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.nav-burger span{ width:18px; height:1.4px; background:var(--paper); display:block; transition:transform .3s ease, opacity .3s ease; }

/* mobile nav panel */
.mobile-nav{ position:fixed; inset:0; z-index:199; background:var(--ink); display:flex; flex-direction:column; justify-content:center; padding:var(--pad); transform:translateY(-100%); transition:transform .5s var(--ease); }
.mobile-nav.open{ transform:translateY(0); }
.mobile-nav a{ font-family:var(--f-display); font-size:32px; color:var(--paper); padding:14px 0; border-bottom:1px solid var(--line-dark); }

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  min-height:100vh; background:radial-gradient(120% 90% at 15% 0%, #123128 0%, var(--ink) 55%, #060B09 100%);
  display:flex; align-items:center; padding-top:96px; padding-bottom:28px; overflow:hidden;
}
.hero-bg{ position:absolute; inset:0; z-index:0; opacity:.9; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(10,21,18,0) 0%, rgba(10,21,18,0) 45%, rgba(10,21,18,0.55) 78%, rgba(10,21,18,0.88) 100%);
}

.hero-inner{ position:relative; z-index:2; width:100%; }
.hero-tag{ color:var(--brass); margin-bottom:14px; }
.hero h1{
  color:var(--paper); font-size:clamp(28px, 3.8vw, 50px); line-height:1.08; max-width:840px; font-weight:500;
}
.hero h1 em{ font-style:italic; color:var(--brass); }
.hero-sub{ color:rgba(246,243,236,0.72); max-width:600px; font-size:15.5px; margin-top:14px; }
.hero-ctas{ display:flex; gap:16px; margin-top:22px; flex-wrap:wrap; }
.hero-ctas .btn{ padding:13px 26px; }

.trust-strip{ margin-top:26px; padding-top:18px; border-top:1px solid var(--line-dark); }
.trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.trust-item{ display:flex; align-items:flex-start; gap:10px; }
.trust-item .dot{ width:7px; height:7px; border-radius:50%; background:var(--teal); margin-top:5px; flex:none; box-shadow:0 0 0 4px rgba(63,169,160,.15); }
.trust-item span{ font-size:13px; color:rgba(246,243,236,0.78); line-height:1.35; font-weight:600; }
.presence-line{ margin-top:12px; font-family:var(--f-mono); font-size:12px; letter-spacing:.05em; color:var(--slate-2); }
.presence-line b{ color:var(--brass); font-weight:600; }

/* ==========================================================================
   REVEAL utility
   ========================================================================== */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.stagger > *{ transition-delay:calc(var(--i,0) * 90ms); }

/* ==========================================================================
   ABOUT
   ========================================================================== */
.about{ background:var(--paper); padding:150px 0 130px; overflow:hidden; }
.about-watermark{ position:absolute; top:50%; right:-6%; transform:translateY(-50%); width:44%; max-width:520px; opacity:.05; pointer-events:none; z-index:0; }
.about-watermark img{ width:100%; }
.about .wrap{ position:relative; z-index:1; }
.about-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:80px; align-items:start; }
.about-copy p{ color:var(--slate); font-size:17px; max-width:480px; }
.about-panels{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.about-panel{
  background:var(--ink); color:var(--paper); border-radius:var(--radius); padding:32px 28px;
  grid-column: span 1;
}
.about-panel:nth-child(3){ grid-column:1 / -1; background:var(--forest); }
.about-panel h4{ color:var(--brass); font-size:20px; margin-bottom:12px; }
.about-panel p{ color:rgba(246,243,236,0.75); font-size:14.5px; margin:0; }
.about-panel ul{ display:flex; flex-wrap:wrap; gap:10px 22px; }
.about-panel ul li{ font-size:14px; color:rgba(246,243,236,0.85); position:relative; padding-left:16px; }
.about-panel ul li::before{ content:''; position:absolute; left:0; top:8px; width:6px; height:1.4px; background:var(--brass); }

/* ==========================================================================
   WHY CHOOSE
   ========================================================================== */
.why{ background:var(--ink); color:var(--paper); padding:150px 0 90px; }
.why-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); border-radius:var(--radius); overflow:hidden; }
.why-card{ background:var(--ink); padding:34px 26px; transition:background .5s ease; position:relative; }
.why-card:hover{ background:#0F211C; }
.why-icon{ width:44px; height:44px; margin-bottom:22px; position:relative; }
.why-icon svg{ width:100%; height:100%; }
.why-card h4{ font-size:16.5px; font-weight:600; font-family:var(--f-body); margin-bottom:8px; }
.why-card p{ font-size:13.5px; color:rgba(246,243,236,0.6); margin:0; line-height:1.55; }

.stats-strip{ margin-top:90px; display:grid; grid-template-columns:repeat(6,1fr); gap:0; border-top:1px solid var(--line-dark); padding-top:56px; }
.stat{ text-align:center; padding:0 10px; position:relative; }
.stat + .stat::before{ content:''; position:absolute; left:0; top:8px; bottom:8px; width:1px; background:var(--line-dark); }
.stat-num{ font-family:var(--f-mono); font-size:clamp(26px,3vw,38px); color:var(--brass); font-weight:600; }
.stat-label{ font-size:12.5px; color:rgba(246,243,236,0.6); margin-top:8px; letter-spacing:.02em; }

/* ==========================================================================
   PROGRAMS
   ========================================================================== */
.programs{ background:var(--paper); padding:150px 0; }
.program-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.program-card{
  background:#fff; border:1px solid var(--line-light); border-radius:var(--radius); padding:34px 30px;
  transition:transform .55s var(--ease), box-shadow .55s var(--ease), border-color .55s var(--ease);
  display:flex; flex-direction:column; height:100%;
}
.program-card:hover{ transform:translateY(-8px); box-shadow:0 30px 60px -30px rgba(10,21,18,0.25); border-color:transparent; }
.program-icon{ width:64px; height:64px; margin-bottom:24px; }
.program-icon img{ width:100%; height:100%; }
.program-card h3{ font-size:19px; font-weight:500; margin-bottom:10px; }
.program-card p{ color:var(--slate); font-size:14px; margin:0 0 22px; flex:1; }
.program-link{ display:inline-flex; align-items:center; gap:8px; font-family:var(--f-mono); font-size:12.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--forest); font-weight:600; }
.program-link svg{ width:13px; height:13px; transition:transform .4s var(--ease); }
.program-card:hover .program-link svg{ transform:translateX(4px); }

/* ==========================================================================
   RESEARCH / PARTNERSHIPS / MAP
   ========================================================================== */
.research{ background:var(--forest); color:var(--paper); padding:150px 0 120px; position:relative; overflow:hidden; }
.research::before{ content:''; position:absolute; inset:0; background:radial-gradient(60% 60% at 85% 10%, rgba(198,161,91,0.14), transparent 60%); }
.research-grid{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; margin-bottom:110px; }
.focus-tags{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.focus-tag{
  font-size:13px; font-family:var(--f-mono); padding:9px 16px; border-radius:999px;
  border:1px solid rgba(246,243,236,0.25); color:rgba(246,243,236,0.85);
  transition:transform .35s var(--ease), background .35s ease, border-color .35s ease, color .35s ease, box-shadow .35s ease;
  cursor:default;
}
.focus-tag:hover{
  transform:translateY(-4px) scale(1.05); background:rgba(198,161,91,0.14); border-color:var(--brass);
  color:var(--paper); box-shadow:0 14px 26px -14px rgba(198,161,91,0.5);
}
.map-card{ background:linear-gradient(180deg, rgba(246,243,236,0.03), rgba(10,21,18,0.4)); border:1px solid rgba(198,161,91,0.22); border-radius:var(--radius); padding:28px; box-shadow:0 40px 80px -40px rgba(0,0,0,0.5); }
.map-card-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.map-card-head .tag{ font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--brass); }
.map-card-head .count{ font-family:var(--f-mono); font-size:11px; color:rgba(246,243,236,0.5); }
.map-card img{ width:100%; height:auto; border-radius:10px; }
.map-legend{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.map-legend span{
  font-size:12px; font-family:var(--f-mono); color:rgba(246,243,236,0.8); display:flex; align-items:center; gap:7px;
  padding:8px 14px; border:1px solid rgba(246,243,236,0.12); border-radius:999px; background:rgba(246,243,236,0.03);
  transition:transform .35s var(--ease), background .35s ease, border-color .35s ease, color .35s ease, box-shadow .35s ease;
  cursor:default;
}
.map-legend span:hover{
  transform:translateY(-4px) scale(1.06); background:rgba(198,161,91,0.16); border-color:var(--brass);
  color:var(--paper); box-shadow:0 14px 26px -14px rgba(198,161,91,0.55);
}
.map-legend .d{ width:6px; height:6px; border-radius:50%; background:var(--brass); flex:none; transition:transform .35s ease; }
.map-legend span:hover .d{ transform:scale(1.4); }

.partners-block{ position:relative; }
.partners-heading{ font-size:clamp(22px,2.6vw,30px); max-width:680px; color:var(--paper); margin-top:6px; }
.partners-intro{ color:rgba(246,243,236,0.7); max-width:760px; font-size:15.5px; line-height:1.7; margin-top:16px; }

.partner-category{ margin-top:64px; }
.partner-category-head{ display:flex; align-items:baseline; gap:24px; flex-wrap:wrap; margin-bottom:26px; }
.partner-category-head h4{ font-size:19px; font-weight:600; font-family:var(--f-body); color:var(--brass); white-space:nowrap; }
.partner-category-head p{ color:rgba(246,243,236,0.55); font-size:13.5px; margin:0; max-width:560px; }

.partner-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:18px; }
.partner-card{
  background:rgba(246,243,236,0.035); border:1px solid rgba(246,243,236,0.12); border-radius:14px; padding:22px 24px;
  transition:transform .4s var(--ease), border-color .4s ease, background .4s ease;
}
.partner-card:hover{ transform:translateY(-5px); border-color:rgba(198,161,91,0.5); background:rgba(246,243,236,0.06); }
.partner-card h5{ font-family:var(--f-display); font-size:16px; font-weight:500; color:var(--paper); margin:0 0 8px; }
.partner-card h5 a{ color:var(--paper); display:inline-flex; align-items:center; gap:7px; transition:color .3s ease; }
.partner-card h5 a:hover{ color:var(--brass); }
.partner-card h5 a svg{ width:12px; height:12px; opacity:.55; flex:none; transition:opacity .3s ease, transform .3s ease; }
.partner-card h5 a:hover svg{ opacity:1; transform:translate(2px,-2px); }
.partner-card p{ font-size:13px; color:rgba(246,243,236,0.55); margin:0; line-height:1.55; }

.marquee{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.marquee-track{ display:flex; gap:14px; width:max-content; animation:scroll-left 46s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee-track.rev{ animation-name:scroll-right; }
@keyframes scroll-left{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes scroll-right{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
.partner-chip{
  font-family:var(--f-display); font-size:15px; white-space:nowrap; padding:14px 26px; border:1px solid rgba(246,243,236,0.18);
  border-radius:999px; color:rgba(246,243,236,0.85); background:rgba(246,243,236,0.03);
  transition:transform .35s var(--ease), background .35s ease, border-color .35s ease, color .35s ease;
}
.partner-chip:hover{
  transform:translateY(-4px) scale(1.05); background:rgba(198,161,91,0.14); border-color:var(--brass); color:var(--paper);
}

/* ==========================================================================
   EVENTS + COURSES
   ========================================================================== */
.events{ background:var(--paper); padding:150px 0; }

.event-filters{ display:flex; gap:12px; margin-bottom:44px; flex-wrap:wrap; }
.filter-chip{
  font-family:var(--f-mono); font-size:13px; padding:11px 24px; border-radius:999px;
  border:1px solid var(--line-light); background:#fff; color:var(--slate); font-weight:600;
  transition:background .35s ease, color .35s ease, border-color .35s ease, transform .35s ease;
}
.filter-chip:hover{ transform:translateY(-2px); }
.filter-chip.active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.event-board{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.event-tile{
  background:#fff; border:1px solid var(--line-light); border-radius:var(--radius); padding:30px;
  display:flex; flex-direction:column; transition:transform .5s var(--ease), box-shadow .5s var(--ease), opacity .3s ease;
}
.event-tile:hover{ transform:translateY(-7px); box-shadow:0 30px 60px -32px rgba(10,21,18,0.22); }
.event-tile.hide{ display:none; }

.event-tile.featured{ grid-column:span 2; background:var(--ink); color:var(--paper); border-color:transparent; }
.event-tile.featured h3{ color:var(--paper); font-size:25px; }
.event-tile.featured p{ color:rgba(246,243,236,0.68); font-size:15px; }
.event-tile.featured .tile-badge{ background:var(--brass); color:var(--ink); }
.event-tile.featured .tile-date{ color:var(--brass); }
.event-tile.featured .tile-meta span{ color:rgba(246,243,236,0.65); }

.tile-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; gap:10px; flex-wrap:wrap; }
.tile-badge{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  padding:7px 14px; border-radius:999px; background:var(--paper-dim); color:var(--forest); font-weight:700; white-space:nowrap;
}
.tile-badge.course{ background:rgba(63,169,160,0.15); color:#2C7C74; }
.tile-date{ font-family:var(--f-mono); font-size:12px; color:var(--brass-dim); font-weight:700; }
.event-tile h3{ font-size:19.5px; font-weight:500; margin-bottom:10px; font-family:var(--f-display); }
.event-tile p{ color:var(--slate); font-size:14px; margin:0 0 22px; flex:1; line-height:1.55; }
.tile-meta{ display:flex; gap:18px; margin-bottom:22px; flex-wrap:wrap; }
.tile-meta span{ font-size:12px; color:var(--slate); display:flex; align-items:center; gap:6px; font-family:var(--f-mono); }
.tile-meta svg{ width:14px; height:14px; flex:none; }

/* ==========================================================================
   APPLY / CONTACT FORM
   ========================================================================== */
.apply-form{ background:var(--ink); color:var(--paper); padding:150px 0; }
.apply-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:70px; align-items:start; }

.apply-info-item{ display:flex; gap:16px; margin-bottom:26px; }
.apply-info-item .ico{
  width:44px; height:44px; border-radius:50%; border:1px solid rgba(246,243,236,0.2);
  display:flex; align-items:center; justify-content:center; flex:none; color:var(--brass);
}
.apply-info-item .ico svg{ width:18px; height:18px; }
.apply-info-item h5{ font-size:15px; font-weight:600; margin:0 0 4px; }
.apply-info-item p{ font-size:13.5px; color:rgba(246,243,236,0.6); margin:0; }

.apply-steps{ margin-top:44px; padding-top:36px; border-top:1px solid var(--line-dark); }
.apply-step{ display:flex; gap:16px; margin-bottom:18px; align-items:baseline; font-size:13.5px; color:rgba(246,243,236,0.7); }
.apply-step .num{ font-family:var(--f-mono); color:var(--brass); font-weight:700; font-size:13px; flex:none; }

.apply-card{ background:rgba(246,243,236,0.04); border:1px solid rgba(246,243,236,0.14); border-radius:var(--radius); padding:40px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.form-row-single{ grid-template-columns:1fr; }
.form-field{ display:flex; flex-direction:column; gap:8px; }
.form-field label{ font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:rgba(246,243,236,0.55); }
.form-field input, .form-field select, .form-field textarea{
  background:rgba(246,243,236,0.05); border:1px solid rgba(246,243,236,0.18); border-radius:10px; padding:13px 16px;
  color:var(--paper); font-family:var(--f-body); font-size:14.5px; transition:border-color .3s ease, background .3s ease; width:100%;
}
.form-field select{
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C6A15B' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:16px; padding-right:40px;
}
.form-field select option{ background:var(--ink); color:var(--paper); }
.form-field input::placeholder, .form-field textarea::placeholder{ color:rgba(246,243,236,0.35); }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ outline:none; border-color:var(--brass); background:rgba(246,243,236,0.08); }
.form-field textarea{ resize:vertical; min-height:110px; font-family:var(--f-body); }
.form-submit{ width:100%; justify-content:center; margin-top:6px; }

.form-error{ display:none; margin-top:16px; padding:14px 18px; border-radius:10px; background:rgba(211,47,47,0.12); border:1px solid rgba(211,47,47,0.35); color:#F0B8B8; font-size:13.5px; line-height:1.5; }
.form-error.show{ display:block; }
.form-error a{ color:var(--paper); text-decoration:underline; }

.form-success{ display:none; text-align:center; padding:36px 10px 6px; }
.form-success.show{ display:block; }
.form-success svg{ width:46px; height:46px; color:var(--brass); margin-bottom:18px; }
.form-success h4{ font-size:19px; margin-bottom:8px; }
.form-success p{ color:rgba(246,243,236,0.6); font-size:14px; margin:0; }


/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer{ background:#081310; color:rgba(246,243,236,0.7); padding:90px 0 30px; }
.footer-top{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:40px; padding-bottom:60px; border-bottom:1px solid var(--line-dark); }
.footer-brand{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.footer-brand img{ height:34px; }
.footer-brand span{ font-family:var(--f-display); font-size:18px; color:var(--paper); }
.footer p.tag{ font-size:13.5px; max-width:280px; color:rgba(246,243,236,0.55); }
.footer-social{ display:flex; gap:10px; margin-top:20px; }
.footer-social a{ width:36px; height:36px; border-radius:50%; border:1px solid var(--line-dark); display:flex; align-items:center; justify-content:center; transition:border-color .3s ease, transform .3s ease; }
.footer-social a:hover{ border-color:var(--brass); transform:translateY(-3px); }
.footer-social svg{ width:15px; height:15px; fill:var(--paper); }
.footer-col h5{ font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--brass); margin-bottom:20px; font-weight:600; }
.footer-col ul li{ margin-bottom:12px; }
.footer-col ul li a{ font-size:13.5px; color:rgba(246,243,236,0.65); transition:color .3s ease; }
.footer-col ul li a:hover{ color:var(--paper); }
.footer-map-block{ padding:50px 0; border-bottom:1px solid var(--line-dark); }
.footer-map-head{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:20px; }
.footer-map-head h5{ font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--brass); font-weight:600; margin:0; }
.footer-map-head span{ font-size:13px; color:rgba(246,243,236,0.5); }
.map-embed{ border-radius:14px; overflow:hidden; border:1px solid var(--line-dark); aspect-ratio:21/6; position:relative; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:30px; font-size:12.5px; color:rgba(246,243,236,0.4); flex-wrap:wrap; gap:12px; }
.footer-bottom a{ color:rgba(246,243,236,0.55); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1160px){
  .nav-links{ display:none; }
  .nav-burger{ display:flex; }
  .about-grid, .research-grid, .apply-grid{ grid-template-columns:1fr; gap:50px; }
  .why-grid{ grid-template-columns:repeat(2,1fr); }
  .program-grid{ grid-template-columns:repeat(2,1fr); }
  .stats-strip{ grid-template-columns:repeat(3,1fr); row-gap:36px; }
  .stat + .stat::before{ display:none; }
  .event-board{ grid-template-columns:repeat(2,1fr); }
  .event-tile.featured{ grid-column:span 2; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .map-embed{ aspect-ratio:16/9; }
  .trust-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 720px){
  .why-grid, .program-grid{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .apply-card{ padding:28px 22px; }
  .stats-strip{ grid-template-columns:repeat(2,1fr); }
  .event-board{ grid-template-columns:1fr; }
  .event-tile.featured{ grid-column:span 1; }
  .about-panels{ grid-template-columns:1fr; }
  .about-panel:nth-child(3){ grid-column:1; }
  .footer-top{ grid-template-columns:1fr; }
  .hero-ctas .btn{ width:100%; }
  .hero-ctas{ flex-direction:column; }
}

/* counter helper */
[data-count]{ font-variant-numeric:tabular-nums; }
