/* ---- Fonts ---- */
@font-face{font-family:'Lora';font-style:normal;font-weight:400 700;font-display:swap;src:url('https://fonts.gstatic.com/s/lora/v35/0QI6MX1D_JOuGQbT0gvTJPa787weuxJBkqg.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Karla';font-style:normal;font-weight:400 700;font-display:swap;src:url('https://fonts.gstatic.com/s/karla/v31/qkBIXvYC6trAT55ZBi1ueQVIjQTD-JqXWiXpXTUvJDDT0PMISS4.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Noto Serif Bengali';font-style:normal;font-weight:400 700;font-display:swap;src:url('https://fonts.gstatic.com/s/notoserifbengali/v22/hYkyPvggTvnzO2Pdmi943xUNb0Ci05qsAy8Iy4-cybe0naL9x4wA7ZWpTQ.woff2') format('woff2');unicode-range:U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11300-11303,U+11305-1130C,U+1130F-11310,U+11313-11328,U+1132A-11330,U+11332-11333,U+11335-11339,U+1133C-11344,U+11347-11348,U+1134B-1134D,U+11350,U+11357,U+1135D-11363,U+11366-1136C,U+11370-11374;}
@font-face{font-family:'Noto Sans Bengali';font-style:normal;font-weight:400 700;font-display:swap;src:url('https://fonts.gstatic.com/s/notosansbengali/v22/Cn-SJsCGWQxOjaGwMQ6fIiMywrNJIky6nvd8BjzVMvJx2mCoRVXAgh6.woff2') format('woff2');unicode-range:U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF;}

/* ---- Design tokens ---- */
:root{
  --color-deep-teal:#0f5a61;
  --color-bright-teal:#1a8089;
  --color-warm-orange:#d9701e;
  --color-ink:#123b3f;
  --color-parchment:#f4efe6;
  --color-white:#ffffff;
  --color-ink-10:rgba(18,59,63,0.1);
  --color-ink-20:rgba(18,59,63,0.2);
  --color-teal-10:rgba(26,128,137,0.1);
  --color-orange-10:rgba(217,112,30,0.12);
  --surface-sunken:#ece5d7;
  --surface-card:var(--color-white);
  --surface-inverse:var(--color-ink);
  --accent-secondary:var(--color-warm-orange);
  --accent-secondary-hover:#b85f18;

  --font-serif-display:'Lora',Georgia,'Noto Serif Bengali',serif;
  --font-sans-body:'Karla',-apple-system,'Noto Sans Bengali',sans-serif;
  --text-caption:0.75rem;
  --tracking-wide:0.04em;
  --weight-medium:500;

  --radius-sm:6px;
  --radius-md:8px;
  --duration-standard:200ms;
  --ease-standard:cubic-bezier(0.4,0,0.2,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--color-parchment);
  color:var(--color-ink);
  font-family:var(--font-sans-body);
  min-height:100vh;
}
a{color:var(--color-bright-teal);text-decoration:none;}
a:hover{color:var(--color-deep-teal);}
img{max-width:100%;}

.container{max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px;}

/* ---- Header ---- */
.site-header{
  position:sticky;
  top:0;
  z-index:20;
  background:var(--color-parchment);
  border-bottom:1px solid var(--color-ink-10);
}
.site-header .container{
  padding-top:10px;
  padding-bottom:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px 16px;
  flex-wrap:wrap;
}
.site-header .logo-link{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
}
.site-header .logo-link img{height:44px;width:auto;display:block;}
.site-nav{
  display:flex;
  align-items:center;
  gap:clamp(10px, 2.6vw, 30px);
  flex-wrap:wrap;
}
.site-nav a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:clamp(13px, 1.5vw, 15px);
  color:#0F5A61;
  font-weight:800;
}
.site-nav a.is-current{color:var(--color-deep-teal);}

/* ---- Hero ---- */
.hero{
  background:var(--color-parchment);
  padding:clamp(40px, 6vw, 72px) 16px clamp(44px, 7vw, 72px);
  border-bottom:1px solid var(--color-ink-10);
}
.hero .container{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(20px, 3vw, 28px);
  text-align:center;
}
.hero-logo{width:min(88%, 520px);height:auto;display:block;}
.btn{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:16px 32px;
  border-radius:999px;
  border:1.5px solid transparent;
  font-family:var(--font-sans-body);
  font-size:16px;
  font-weight:500;
}
.btn-primary{background:var(--accent-secondary);border-color:var(--accent-secondary);color:#fff;}
.btn-primary:hover{background:var(--accent-secondary-hover);border-color:var(--accent-secondary-hover);color:#fff;}
.btn-outline{border-color:var(--color-deep-teal);color:var(--color-deep-teal);}
.btn-outline:hover{background:var(--color-teal-10);color:var(--color-deep-teal);}

/* ---- About (+ Aims) ---- */
.about{background:var(--color-deep-teal);}
.about .container{
  max-width:880px;
  padding-top:clamp(56px, 9vw, 96px);
  padding-bottom:clamp(56px, 9vw, 96px);
  display:flex;
  flex-direction:column;
  gap:clamp(56px, 8vw, 80px);
}
.eyebrow{
  margin:0 0 16px;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--color-parchment);
}
.about-intro{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.about-intro .eyebrow{margin:0;}
.about-intro h2{
  margin:0;
  font-family:var(--font-serif-display);
  font-size:clamp(28px, 5vw, 40px);
  line-height:1.15;
  color:var(--color-parchment);
  text-align:left;
}
.about-intro p{
  margin:0;
  font-size:clamp(16px, 2vw, 18px);
  line-height:1.6;
  color:var(--color-parchment);
  font-weight:500;
  text-align:left;
}
.aims h2{
  margin:0 0 40px;
  font-family:var(--font-serif-display);
  font-size:clamp(26px, 4vw, 36px);
  color:var(--color-parchment);
}
.aims-list{display:flex;flex-direction:column;}

/* ---- Executive committee + Advisors ---- */
.team h2{
  margin:0 0 28px;
  font-family:var(--font-serif-display);
  font-size:clamp(26px, 4vw, 36px);
  color:var(--color-parchment);
}
.team ul{list-style:none;margin:0;padding:0;}
.team-role{
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:rgba(244,239,230,0.68);
}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));gap:10px;}
.team-card{
  display:flex;flex-direction:column;gap:5px;
  padding:14px 16px;
  border:1px solid rgba(244,239,230,0.38);
  border-radius:10px;
}
/* Same card for everyone; only the border tone says which group */
.team-card--member{border-color:rgba(244,239,230,0.16);}
.team-card--advisor{border-color:#4fa9b1;background:var(--color-teal-10);}
.team-name{font-family:var(--font-serif-display);font-size:17px;line-height:1.3;color:var(--color-parchment);}
.aim-row{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:24px 0;
  border-bottom:1px solid rgba(244,239,230,0.2);
}
.aim-row-header{display:flex;align-items:center;gap:16px;}
.aim-badge{
  width:40px;
  height:40px;
  border-radius:999px;
  background:rgba(244,239,230,0.1);
  border:1px solid rgba(244,239,230,0.35);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-serif-display);
  font-size:15px;
  color:var(--color-parchment);
  flex:0 0 auto;
}
.aim-row h3{
  margin:0;
  font-family:var(--font-serif-display);
  font-size:clamp(18px, 2.4vw, 21px);
  line-height:1.3;
  color:var(--color-parchment);
  flex:1;
  min-width:0;
}
.aim-row p{
  margin:0;
  font-size:16px;
  line-height:1.6;
  color:rgba(244,239,230,0.85);
  padding-left:56px;
}

/* ---- Events ---- */
.events{background:var(--surface-sunken);border-bottom:1px solid var(--color-ink-10);}
.events .container{padding-top:clamp(52px, 8vw, 80px);padding-bottom:clamp(52px, 8vw, 80px);}
.events-heading{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
  margin-bottom:32px;
}
.events-heading h2{
  margin:0;
  font-family:var(--font-serif-display);
  font-size:clamp(28px, 3.4vw, 36px);
  color:var(--color-ink);
}
.events-heading p{margin:0;font-size:15px;color:var(--color-ink);}

.event-card{
  background:var(--surface-card);
  border-radius:var(--radius-md);
  border:1px solid var(--color-ink-10);
  overflow:hidden;
  transition:box-shadow var(--duration-standard) var(--ease-standard);
}
.event-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:0;
}
.event-card-media{background:var(--color-deep-teal);min-height:300px;}
.event-card-media img{width:100%;height:100%;min-height:300px;object-fit:contain;display:block;}
.event-card-body{
  padding:clamp(24px, 5vw, 36px);
  display:flex;
  flex-direction:column;
  gap:16px;
  align-items:flex-start;
}
.badge{
  font-family:var(--font-sans-body);
  font-size:var(--text-caption);
  font-weight:var(--weight-medium);
  padding:3px 10px;
  border-radius:var(--radius-sm);
  display:inline-block;
  letter-spacing:var(--tracking-wide);
  text-transform:uppercase;
}
.badge-orange{background:var(--color-orange-10);color:var(--accent-secondary-hover);font-weight:600;}
.event-card-body h3{
  margin:0;
  font-family:var(--font-serif-display);
  font-size:28px;
  line-height:1.2;
  color:var(--color-ink);
}
.event-card-body > p.event-kicker{margin:0 0 -10px;font-size:15px;font-weight:600;letter-spacing:0.02em;color:var(--color-deep-teal);}
.event-card-body > p{margin:0;font-size:16px;line-height:1.6;color:var(--color-ink);}
/* ---- Footer ---- */
.site-footer{
  background:var(--surface-inverse);
  border-top:1px solid rgba(244,239,230,0.15);
  padding:clamp(48px, 8vw, 72px) 24px 40px;
}
.footer-columns{
  display:flex;
  flex-wrap:wrap;
  gap:40px;
  align-items:flex-start;
}
.footer-brand{
  flex:1 1 260px;
  max-width:300px;
  display:flex;
  flex-direction:column;
  gap:20px;
}
.footer-brand img{width:240px;max-width:290px;height:71px;display:block;}
.footer-social{
  display:flex;
  justify-content:center;
  gap:10px;
  width:240px;
}
.icon-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1.5px solid rgba(244,239,230,0.35);
  background:rgba(244,239,230,0.06);
  color:var(--color-parchment);
}
.icon-link:hover{background:rgba(26,128,137,0.25);border-color:var(--color-bright-teal);color:var(--color-parchment);}
.footer-nav{flex:1 1 140px;display:flex;flex-direction:column;gap:4px;}
.footer-say-hello{flex:1 1 180px;display:flex;flex-direction:column;gap:4px;}
.footer-columns .footer-label{
  margin:0 0 4px;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--accent-secondary);
  font-weight:700;
}
.footer-columns a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:15px;
  color:var(--color-parchment);
}
.footer-columns a:hover{color:var(--accent-secondary);}

.footer-bottom{
  margin-top:48px;
  padding-top:20px;
  border-top:1px solid rgba(244,239,230,0.15);
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  justify-content:center;
  align-items:center;
}
.footer-bottom p{margin:0;font-size:14px;color:rgba(244,239,230,0.6);}

@media (max-width: 700px){
  .footer-brand{margin:0 auto;}

  /* Footer floats with extra gutters on mobile; content itself stays left-aligned */
  .site-footer .container{padding-left:40px;padding-right:40px;}

  /* Hero: tighter on phones */
  .hero{padding-top:28px;padding-bottom:36px;}
  .hero-logo{width:min(92%, 420px);}
  /* About Srijon paragraphs: left-aligned rather than justified. The mobile
     column is only ~36-43 characters wide, and justifying that few words per
     line forces large gaps between them. Hyphenation is kept so long words can
     break, which keeps the right edge tidier without stretching any spacing. */
  .about-intro p,
  .aim-row p{
    text-align:left;
    -webkit-hyphens:auto;
    hyphens:auto;
    hyphenate-limit-chars:8 4 4;
  }

  /* Committee + advisors: two cards per row on phones */
  .team-grid{grid-template-columns:1fr 1fr;}
  .team-name{font-size:15px;}
}

/* ---- Legal pages ---- */
.legal-main{background:var(--color-parchment);}
.legal-main .container{
  max-width:760px;
  padding-top:clamp(48px, 8vw, 72px);
  padding-bottom:clamp(48px, 8vw, 72px);
}
.back-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:32px;
  font-size:14px;
  font-weight:700;
  color:var(--color-deep-teal);
}
.legal-eyebrow{
  margin:0 0 12px;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--color-deep-teal);
}
.legal-main h1{
  margin:0 0 8px;
  font-family:var(--font-serif-display);
  font-size:clamp(30px, 4vw, 40px);
  color:var(--color-ink);
}
.legal-updated{
  margin:0 0 40px;
  font-size:14px;
  color:var(--color-ink);
  opacity:0.7;
}
.legal-main h2{
  margin:40px 0 12px;
  font-family:var(--font-serif-display);
  font-size:22px;
  line-height:1.3;
  color:var(--color-ink);
}
.legal-main h2:first-of-type{margin-top:0;}
.legal-main p{
  margin:0 0 16px;
  font-size:16px;
  line-height:1.6;
  color:var(--color-ink);
}
.legal-main ul{
  margin:0 0 16px;
  padding-left:20px;
  font-size:16px;
  line-height:1.6;
  color:var(--color-ink);
}
.legal-main li{margin-bottom:8px;}
.legal-main a{color:var(--color-deep-teal);text-decoration:underline;}
