/* ==========================================================================
   BOSLA — Bombay Science Librarians' Association
   Single shared stylesheet. No frameworks, no WordPress/Elementor.
   Palette + typography derived from the original site.
   ========================================================================== */

/* ---------- Fonts (self-hosted, dependency-free) ---------- */
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-400.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/poppins-700.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/poppins-800.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 800;font-display:swap;src:url(../fonts/inter-var.woff2) format('woff2');}

/* ---------- Design tokens ---------- */
:root{
  --coral:#EF5F43;          /* primary accent / buttons */
  --coral-dark:#d94a2f;
  --lime:#A0C814;           /* secondary accent */
  --lime-dark:#8bb00d;
  --navy:#0D1531;           /* dark sections / headings */
  --navy-2:#121a3a;
  --ink:#121212;            /* near-black text */
  --ink-2:#383A3C;
  --muted:#5b6270;
  --line:#e4e6eb;
  --bg:#ffffff;
  --bg-soft:#f6f7f9;
  --bg-soft-2:#eef0f4;
  --white:#ffffff;

  --head:'Poppins',system-ui,Segoe UI,Roboto,Arial,sans-serif;
  --body:'Inter',system-ui,Segoe UI,Roboto,Arial,sans-serif;

  --maxw:1180px;
  --gutter:clamp(16px,4vw,40px);
  --radius:14px;
  --radius-lg:22px;
  --shadow:0 10px 30px rgba(13,21,49,.08);
  --shadow-lg:0 24px 60px rgba(13,21,49,.16);
  --section-y:clamp(48px,7vw,96px);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;font-family:var(--body);color:var(--ink);background:var(--bg);
  line-height:1.7;font-size:clamp(15px,.4vw + 14px,17px);-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
:focus-visible{outline:3px solid var(--coral);outline-offset:2px;}

h1,h2,h3,h4,h5,h6{font-family:var(--head);line-height:1.15;margin:0 0 .5em;color:var(--navy);font-weight:700;}
h1{font-size:clamp(2rem,1.2rem + 3vw,3.3rem);}
h2{font-size:clamp(1.6rem,1rem + 2.4vw,2.5rem);}
h3{font-size:clamp(1.25rem,.9rem + 1.4vw,1.7rem);}
h4{font-size:clamp(1.1rem,.9rem + .9vw,1.35rem);}
p{margin:0 0 1rem;}
p:last-child{margin-bottom:0;}

/* ---------- Layout helpers ---------- */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}
.section{padding-block:var(--section-y);}
.section--soft{background:var(--bg-soft);}
.section--navy{background:var(--navy);color:#dfe3ef;}
.section--navy h1,.section--navy h2,.section--navy h3,.section--navy h4{color:#fff;}
.eyebrow{font-family:var(--head);font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--coral);font-size:.8rem;margin:0 0 .6rem;}
.section-head{max-width:760px;margin:0 auto clamp(28px,4vw,52px);text-align:center;}
.lead{font-size:1.075rem;color:var(--muted);}
.section--navy .lead{color:#aeb6d0;}
.center{text-align:center;}

.grid{display:grid;gap:clamp(18px,2.4vw,32px);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--head);font-weight:600;
  font-size:.98rem;padding:.78em 1.6em;border-radius:999px;border:2px solid transparent;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease;line-height:1;}
.btn:hover{transform:translateY(-2px);}
.btn--primary{background:var(--coral);color:#fff;box-shadow:0 8px 20px rgba(239,95,67,.32);}
.btn--primary:hover{background:var(--coral-dark);}
.btn--lime{background:var(--lime);color:var(--navy);box-shadow:0 8px 20px rgba(160,200,20,.32);}
.btn--lime:hover{background:var(--lime-dark);}
.btn--ghost{background:transparent;border-color:currentColor;}
.btn--light{background:#fff;color:var(--navy);}

/* ---------- Header : branding row + sticky navy nav row (matches bosla.in) ---------- */
.site-header{background:#fff;}

/* --- branding row --- */
.brandbar{background:#fff;border-bottom:1px solid var(--line);}
/* centered branding group (logo + centered text block) — matches bosla.in */
.brandbar-inner{display:flex;align-items:center;justify-content:center;gap:clamp(16px,2.6vw,36px);padding-block:16px;}
.brand{flex:0 0 auto;display:block;line-height:0;}
.brand img{height:clamp(88px,10.5vw,150px);width:auto;}
.brand-text{min-width:0;text-align:center;}
.brand-reg{margin:0;font-family:var(--head);font-weight:700;color:var(--ink);
  font-size:clamp(.74rem,1.15vw,1.12rem);}
.brand-name{margin:.08em 0 0;font-family:var(--head);font-weight:800;color:#1b1bb5;
  font-size:clamp(1.1rem,2.9vw,2.35rem);line-height:1.04;letter-spacing:.01em;text-transform:uppercase;}
.brand-abbr{margin:.02em 0 0;font-family:var(--head);font-weight:800;color:#f26a21;
  font-size:clamp(1.4rem,3.7vw,3rem);line-height:1;}
.brand-addr{margin:.42em 0 0;color:var(--ink);font-size:clamp(.7rem,1.05vw,1rem);line-height:1.35;}

/* --- navy nav row --- */
.navbar{background:var(--navy);position:sticky;top:0;z-index:50;}
.navbar-inner{display:flex;align-items:center;justify-content:center;min-height:52px;position:relative;}
.navbar-mini{display:none;font-family:var(--head);font-weight:800;color:#fff;letter-spacing:.05em;}
.nav{display:flex;align-items:center;}
.nav > ul{display:flex;align-items:center;flex-wrap:nowrap;justify-content:center;gap:.05rem;}
.nav li{position:relative;}
.nav a{display:flex;align-items:center;gap:.35rem;font-family:var(--head);font-weight:600;
  font-size:.85rem;letter-spacing:.03em;text-transform:uppercase;color:#fff;
  padding:.95rem .7rem;white-space:nowrap;}
.nav a:hover,.nav .current > a{color:#f26a21;}
.nav .has-sub > a::after{content:"";width:.42em;height:.42em;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-.22em;opacity:.9;}
.submenu{position:absolute;top:100%;left:0;min-width:236px;background:#fff;
  border:1px solid var(--line);border-radius:0 0 10px 10px;box-shadow:var(--shadow-lg);padding:.4rem;
  opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s ease;z-index:60;}
.nav li:hover > .submenu,.nav li:focus-within > .submenu{opacity:1;visibility:visible;transform:translateY(0);}
.submenu a{color:var(--ink);text-transform:none;letter-spacing:0;font-size:.9rem;font-weight:500;
  padding:.55rem .8rem;border-radius:8px;}
.submenu a:hover{background:var(--bg-soft);color:var(--coral);}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:8px;
  position:absolute;right:0;top:50%;transform:translateY(-50%);}
.nav-toggle span{width:26px;height:2px;background:#fff;border-radius:2px;transition:.2s;}

@media(max-width:1100px){
  .brand img{height:64px;}
  .brand-name{font-size:clamp(.95rem,3.4vw,1.4rem);}
  .brand-abbr{font-size:clamp(1.15rem,4vw,1.7rem);}
  .navbar-inner{justify-content:flex-start;min-height:54px;}
  .navbar-mini{display:inline-block;}
  .nav-toggle{display:flex;}
  .nav{position:absolute;top:100%;left:0;right:0;background:var(--navy);
    max-height:calc(100vh - 54px);overflow:auto;transform:translateY(-135%);transition:transform .25s ease;
    box-shadow:var(--shadow-lg);z-index:55;}
  .nav.open{transform:translateY(0);}
  .nav > ul{flex-direction:column;align-items:stretch;gap:0;padding:.3rem var(--gutter) 1rem;}
  .nav li{border-bottom:1px solid rgba(255,255,255,.12);}
  .nav a{padding:.9rem .2rem;font-size:.95rem;justify-content:space-between;}
  .submenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;
    background:transparent;padding:0 0 .5rem .9rem;display:none;border-radius:0;}
  .submenu a{color:#d7dcec;}
  .nav li.open > .submenu{display:block;}
  .nav .has-sub > a::after{transition:transform .2s;}
  .nav li.open > a::after{transform:rotate(-135deg);}
}
@media(max-width:560px){
  .brand-reg{font-size:.66rem;}
  .brand-addr{font-size:.66rem;}
  .brand img{height:56px;}
}

/* ---------- Notice ticker ---------- */
.notice-ticker{background:#fff;border-block:1px solid var(--line);margin-top:clamp(22px,3.5vw,46px);}
.notice-ticker__inner{display:flex;align-items:stretch;height:46px;overflow:hidden;}
.notice-ticker__label{flex:0 0 auto;display:flex;align-items:center;background:#e11d1d;color:#fff;
  font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;
  padding:0 16px;position:relative;}
.notice-ticker__label::after{content:"";position:absolute;right:-11px;top:0;bottom:0;
  border-left:11px solid #e11d1d;border-top:23px solid transparent;border-bottom:23px solid transparent;}
.notice-ticker__viewport{flex:1 1 auto;overflow:hidden;display:flex;align-items:center;padding-left:26px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent);
          mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 22px),transparent);}
.notice-ticker__marquee{display:inline-flex;flex:0 0 auto;align-items:center;white-space:nowrap;
  animation:notice-scroll 36s linear infinite;}
.notice-ticker__group{display:inline-flex;align-items:center;flex:0 0 auto;}
.notice-ticker__marquee a{color:var(--ink);font-weight:500;font-size:.9rem;text-decoration:none;}
.notice-ticker__marquee a:hover{color:var(--coral);text-decoration:underline;}
.notice-ticker__sep{color:var(--coral);margin:0 20px;font-size:.62rem;position:relative;top:-1px;}
.notice-ticker__inner:hover .notice-ticker__marquee{animation-play-state:paused;}
@keyframes notice-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.notice-ticker__marquee{animation:none;}}
@media(max-width:560px){.notice-ticker__label{font-size:.72rem;padding:0 12px;}.notice-ticker__marquee a{font-size:.82rem;}}

/* ---------- Upcoming Events (featured card) ---------- */
.upcoming-title{font-size:clamp(1.7rem,3vw,2.4rem);margin:0 0 1.5rem;}
.event-feature{display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  gap:clamp(18px,3vw,44px);background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:clamp(20px,2.6vw,32px);box-shadow:var(--shadow-sm);}
.event-feature__logo img{width:clamp(88px,9vw,130px);height:auto;display:block;}
.event-feature__body h3{color:#3a1d6e;font-size:clamp(1.05rem,1.7vw,1.45rem);margin:0 0 .3rem;line-height:1.25;}
.event-feature__sub{color:var(--coral);font-weight:600;font-size:clamp(1rem,1.5vw,1.25rem);margin:0 0 .55rem;line-height:1.3;}
.event-feature__note{color:var(--muted);margin:0;font-size:.95rem;}
.event-feature__meta{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;
  border-left:1px solid var(--line);padding-left:clamp(18px,3vw,44px);}
.event-feature__date{font-family:var(--head);font-weight:700;color:var(--ink);margin:0;white-space:nowrap;font-size:1.05rem;}
@media(max-width:860px){
  .event-feature{grid-template-columns:1fr;text-align:center;gap:16px;}
  .event-feature__logo img{margin-inline:auto;}
  .event-feature__meta{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:1.2rem;}
}

/* ---------- Awards ---------- */
.awards-grid{grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,34px);max-width:1000px;margin-inline:auto;}
.award-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm);
  padding:clamp(30px,4vw,52px) clamp(20px,3vw,40px);text-align:center;display:flex;flex-direction:column;
  align-items:center;justify-content:space-between;gap:1.6rem;}
.award-card h3{font-size:clamp(1.15rem,2vw,1.5rem);margin:0;color:var(--ink);line-height:1.3;}
@media(max-width:640px){.awards-grid{grid-template-columns:1fr;}}

/* ---------- About BOSLA (text left, image right + badge) ---------- */
.about-bosla{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center;}
.about-bosla__text .eyebrow{color:var(--coral);}
.about-bosla__text p{color:var(--muted);}
.about-bosla__media{position:relative;padding-bottom:40px;}
.about-bosla__media::before{content:"";position:absolute;left:-20px;bottom:8px;width:62%;height:72%;
  background:var(--lime);border-radius:6px;z-index:0;}
.about-bosla__imgwrap{position:relative;z-index:1;}
.about-bosla__imgwrap img{width:100%;height:auto;display:block;border-radius:4px;box-shadow:var(--shadow-md);}
.about-bosla__badge{position:absolute;right:-6px;bottom:-24px;z-index:2;max-width:264px;background:#fff;
  border-radius:10px;box-shadow:var(--shadow-lg);padding:24px 26px;text-align:center;}
.about-bosla__bookmark{color:var(--coral);font-size:1.7rem;line-height:1;display:block;margin-bottom:.5rem;}
.about-bosla__badge h3{font-size:1.45rem;margin:0 0 .5rem;color:var(--ink);}
.about-bosla__badge p{font-size:.9rem;color:var(--muted);margin:0;line-height:1.5;}
@media(max-width:860px){
  .about-bosla{grid-template-columns:1fr;gap:40px;}
  .about-bosla__media{max-width:540px;margin:0 auto 40px;}
  .about-bosla__badge{right:12px;}
}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{background:linear-gradient(120deg,var(--navy) 0%,#1a2350 60%,#2a1747 100%);
  color:#fff;padding-block:clamp(56px,8vw,104px);text-align:center;position:relative;overflow:hidden;}
.page-hero::after{content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;
  background:radial-gradient(circle,rgba(239,95,67,.35),transparent 70%);}
.page-hero h1{color:#fff;position:relative;margin:0;}
.page-hero .eyebrow{color:var(--lime);}
.breadcrumb{position:relative;color:#aeb6d0;font-size:.9rem;margin-top:.8rem;}
.breadcrumb a:hover{color:#fff;}

/* ---------- Home hero ---------- */
.hero{background:linear-gradient(120deg,var(--navy),#1b2353 55%,#341a4d);color:#fff;overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,56px);align-items:center;
  padding-block:clamp(48px,7vw,90px);}
.hero h1{color:#fff;}
.hero p{color:#c7cce0;font-size:1.1rem;max-width:50ch;}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem;}
.hero-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius-lg);padding:clamp(18px,2.4vw,28px);backdrop-filter:blur(6px);}
.hero-card img{border-radius:12px;width:100%;}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr;text-align:center;}
  .hero p{margin-inline:auto;}.hero-actions{justify-content:center;}}

/* ---------- Cards ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,2.4vw,30px);
  box-shadow:var(--shadow);height:100%;transition:transform .18s ease,box-shadow .18s ease;}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.card h3{margin-bottom:.4rem;}
.card .icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;margin-bottom:1rem;
  background:rgba(239,95,67,.12);color:var(--coral);font-size:1.5rem;}
.card--lime .icon{background:rgba(160,200,20,.18);color:var(--lime-dark);}

/* ---------- Two-column media block ---------- */
.media{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:center;}
.media--rev .media-img{order:2;}
.media-img img{border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;}
@media(max-width:820px){.media{grid-template-columns:1fr;}.media--rev .media-img{order:0;}}

/* ---------- Stats / counters ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,40px);text-align:center;}
.stat .num{font-family:var(--head);font-weight:800;font-size:clamp(2.4rem,1.5rem + 3vw,3.6rem);
  color:var(--coral);line-height:1;}
.section--navy .stat .num{color:var(--lime);}
.stat .label{font-family:var(--head);font-weight:500;margin-top:.4rem;}
@media(max-width:600px){.stats{grid-template-columns:1fr;gap:24px;}}

/* ---------- Objectives / checklist ---------- */
.checklist{display:grid;gap:1rem;}
.checklist li{display:flex;gap:.9rem;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:1rem 1.2rem;box-shadow:var(--shadow);}
.checklist li::before{content:"";flex:0 0 auto;width:26px;height:26px;border-radius:50%;
  background:var(--lime);position:relative;margin-top:2px;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/16px no-repeat var(--lime);
  mask:none;}
.checklist li::before{background:var(--lime);}

/* ---------- People / member cards ---------- */
.person{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);text-align:center;height:100%;}
.person .photo{aspect-ratio:1/1;background:var(--bg-soft-2);overflow:hidden;}
.person .photo img{width:100%;height:100%;object-fit:cover;}
.person .body{padding:1.1rem 1rem 1.4rem;}
.person h3{font-size:1.15rem;margin-bottom:.2rem;}
.person .role{color:var(--coral);font-weight:600;font-family:var(--head);font-size:.9rem;}
.person .org{color:var(--muted);font-size:.88rem;margin-top:.4rem;}
.person .mail{margin-top:.5rem;font-size:.86rem;word-break:break-word;}
.person .mail a{display:inline-flex;align-items:center;gap:.35rem;color:var(--coral);font-weight:500;}
.person .mail a:hover{text-decoration:underline;}
.person .mail a::before{content:"\2709";font-size:.95em;opacity:.85;}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);}
table.data{width:100%;border-collapse:collapse;min-width:560px;background:#fff;}
table.data th,table.data td{padding:.8rem 1rem;text-align:left;border-bottom:1px solid var(--line);font-size:.94rem;}
table.data th{background:var(--navy);color:#fff;font-family:var(--head);font-weight:600;position:sticky;top:0;}
table.data tr:nth-child(even) td{background:var(--bg-soft);}
table.data tr:hover td{background:rgba(239,95,67,.06);}

/* ---------- Document / link list ---------- */
.doclist{display:grid;gap:.8rem;}
.doc{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:1rem 1.2rem;box-shadow:var(--shadow);transition:transform .15s,border-color .15s;}
.doc:hover{transform:translateY(-2px);border-color:var(--coral);}
.doc .ic{flex:0 0 auto;width:42px;height:42px;border-radius:10px;background:rgba(239,95,67,.12);
  color:var(--coral);display:grid;place-items:center;font-weight:700;font-family:var(--head);font-size:.78rem;}
.doc .t{font-family:var(--head);font-weight:500;color:var(--navy);}
.doc .arrow{margin-left:auto;color:var(--coral);font-size:1.2rem;}

/* ---------- Gallery ---------- */
.gallery{columns:4 220px;column-gap:14px;}
.gallery img{width:100%;margin-bottom:14px;border-radius:10px;break-inside:avoid;box-shadow:var(--shadow);
  transition:transform .2s,box-shadow .2s;}
.gallery img:hover{transform:scale(1.015);box-shadow:var(--shadow-lg);}

/* ---------- Prose (long text pages) ---------- */
.prose{max-width:820px;margin-inline:auto;}
.prose h2,.prose h3{margin-top:1.6em;}
.prose p{color:#2c3140;}
.prose img{border-radius:var(--radius);margin:1.4rem 0;box-shadow:var(--shadow);}

/* ---------- CTA band ---------- */
.cta-band{position:relative;overflow:hidden;background:#fff;border-radius:var(--radius-lg);
  padding:clamp(48px,7vw,100px) 20px;text-align:center;}
.cta-band::before,.cta-band::after{content:"";position:absolute;top:-30%;height:160%;
  background:rgba(160,200,20,.14);transform:rotate(20deg);z-index:0;pointer-events:none;}
.cta-band::before{left:40%;width:150px;}
.cta-band::after{left:55%;width:88px;}
.cta-band > *{position:relative;z-index:1;}
.cta-band h2{max-width:20ch;margin:0 auto .8rem;font-size:clamp(1.7rem,3.6vw,2.8rem);line-height:1.2;}
.cta-band p{color:var(--muted);max-width:60ch;margin-inline:auto;}
.cta-band__btn{margin-top:1.8rem;}
.cta-band__btn .btn{text-transform:uppercase;letter-spacing:.06em;border-radius:4px;}

/* ---------- Opportunities cards ---------- */
.opp-grid{gap:clamp(20px,2.5vw,30px);}
.opp-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;
  background:#fff;border-radius:8px;color:var(--ink);
  padding:clamp(34px,4vw,54px) clamp(22px,3vw,36px) clamp(30px,3.5vw,46px);
  box-shadow:var(--shadow-md);transition:transform .25s ease,box-shadow .25s ease;}
.opp-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
.opp-card h3{font-size:clamp(1.4rem,2.2vw,1.9rem);margin:0 0 .3rem;}
.opp-card__sub{font-weight:700;color:var(--ink);margin:0;}
.opp-card__desc{color:var(--muted);margin:.25rem 0 1.5rem;font-size:.95rem;}
.opp-card__arrow{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;background:#fff;box-shadow:var(--shadow-md);
  font-size:1.5rem;color:var(--ink);line-height:1;}
.opp-card--green{background:var(--lime);color:#fff;}
.opp-card--green h3,.opp-card--green .opp-card__sub{color:#fff;}
.opp-card--green .opp-card__desc{color:rgba(255,255,255,.94);}

/* ---------- Why Join (green circle icons) ---------- */
.why-grid{gap:clamp(30px,4vw,58px) clamp(24px,3vw,40px);}
.why-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.35rem;
  background:none;box-shadow:none;padding:0;}
.why-icon{display:inline-flex;align-items:center;justify-content:center;width:74px;height:74px;
  border-radius:50%;background:var(--lime);color:#fff;margin-bottom:1rem;}
.why-icon svg{width:34px;height:34px;}
.why-card h3{font-size:clamp(1.15rem,1.8vw,1.5rem);margin:0 0 .4rem;}
.why-card p{color:var(--muted);font-size:.95rem;margin:0;max-width:340px;}

/* ---------- Objectives (heading left, list right) ---------- */
.objectives{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(30px,5vw,72px);align-items:center;}
.objectives__head h2{text-transform:uppercase;font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.08;margin:0;}
.objectives__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.05rem;}
.objectives__list li{position:relative;padding-left:2.4rem;color:var(--ink);font-size:1.02rem;line-height:1.5;}
.objectives__list li::before{content:"\261E";position:absolute;left:0;top:-2px;font-size:1.4rem;color:var(--ink);}
@media(max-width:820px){.objectives{grid-template-columns:1fr;gap:24px;}}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);align-items:start;}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;}}
.field{margin-bottom:1.1rem;}
.field label{display:block;font-family:var(--head);font-weight:500;font-size:.9rem;margin-bottom:.4rem;color:var(--navy);}
.field input,.field textarea{width:100%;padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:10px;
  font:inherit;background:#fff;transition:border-color .15s;}
.field input:focus,.field textarea:focus{border-color:var(--coral);outline:none;}
.field textarea{min-height:140px;resize:vertical;}
.field .err{color:var(--coral-dark);font-size:.82rem;margin-top:.3rem;display:none;}
.field.invalid .err{display:block;}
.field.invalid input,.field.invalid textarea{border-color:var(--coral-dark);}
.form-note{font-size:.85rem;color:var(--muted);}
.form-status{padding:1rem 1.2rem;border-radius:10px;font-weight:500;margin-bottom:1rem;display:none;}
.form-status.show{display:block;}
.form-status.ok{background:rgba(160,200,20,.15);color:#5a7000;border:1px solid var(--lime);}
.form-status.bad{background:rgba(239,95,67,.12);color:var(--coral-dark);border:1px solid var(--coral);}
.info-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;
  box-shadow:var(--shadow);margin-bottom:1.1rem;}
.info-card h3{font-size:1.1rem;margin-bottom:.2rem;}
.info-card .role{color:var(--coral);font-weight:600;font-size:.88rem;font-family:var(--head);}
.info-row{display:flex;gap:.6rem;align-items:flex-start;margin-top:.6rem;font-size:.92rem;color:#2c3140;}
.info-row b{color:var(--navy);font-family:var(--head);}

/* ---------- Footer ---------- */
.site-footer{position:relative;color:#c7cde0;padding-block:clamp(48px,5vw,80px) 0;font-size:.94rem;
  background:#0b1024 url("../img/footer-bg.jpg") center/cover no-repeat;isolation:isolate;}
.site-footer::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(8,12,28,.94),rgba(8,12,28,.9));}
.site-footer .container{position:relative;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1.1fr;gap:clamp(28px,4vw,60px);align-items:start;}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr;}}
.site-footer h4{color:#fff;font-size:1.15rem;margin-bottom:1.3rem;font-weight:700;}
.site-footer a{color:inherit;transition:color .15s;}
.site-footer a:hover{color:#fff;}

/* ---- brand / contact column ---- */
.footer-intro{color:#fff;font-size:1.02rem;line-height:1.5;margin-bottom:1rem;}
.footer-contact>p{margin-bottom:1rem;line-height:1.65;}
.footer-info{margin-top:1.4rem;display:flex;flex-direction:column;gap:.9rem;}
.footer-info__name{color:#fff;line-height:1.55;margin:0;}
.footer-info__row{display:flex;gap:.7rem;align-items:flex-start;margin:0;line-height:1.55;}
.footer-info__row svg{width:19px;height:19px;flex:0 0 auto;margin-top:.15rem;color:#fff;opacity:.9;}
.socials{display:flex;gap:.7rem;margin-top:1.5rem;}
.socials a{width:34px;height:34px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);
  display:grid;place-items:center;transition:background .15s,border-color .15s,transform .15s;color:#fff;}
.socials a:hover{background:var(--coral);border-color:var(--coral);transform:translateY(-2px);}
.socials svg{width:16px;height:16px;fill:currentColor;}

/* ---- link columns with external-link icons ---- */
.footer-links li{margin-bottom:1rem;}
.footer-links--icon a{display:flex;gap:.7rem;align-items:flex-start;line-height:1.4;}
.footer-links--icon a svg{width:18px;height:18px;flex:0 0 auto;margin-top:.1rem;color:#fff;opacity:.85;}

/* ---- bottom bar ---- */
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:clamp(32px,4vw,52px);
  padding-block:1.4rem;font-size:.88rem;color:#9aa2c2;}
.footer-bottom__inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.footer-bottom a{color:inherit;}
.footer-bottom a:hover{color:#fff;}
@media(max-width:640px){.footer-bottom__inner{flex-direction:column;text-align:center;}}

/* ---------- Utilities ---------- */
.mt-0{margin-top:0;}.mb-0{margin-bottom:0;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--coral);color:#fff;padding:.6rem 1rem;z-index:100;border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;}.reveal{opacity:1;transform:none;transition:none;}}

/* =====================================================================
   Added: outline button, home slider, gallery albums + lightbox,
   members table search, contact map
   ===================================================================== */

.btn--outline{background:transparent;color:var(--coral);border-color:var(--coral);}
.btn--outline:hover{background:var(--coral);color:#fff;}

/* ---------- Home image slider ---------- */
.slider{position:relative;margin-top:1.6rem;}
.slider-viewport{overflow:hidden;border-radius:var(--radius);}
.slider-track{display:flex;gap:20px;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform;}
.slide{flex:0 0 calc((100% - 40px)/3);min-width:0;}
.slide img{width:100%;height:260px;object-fit:cover;border-radius:12px;box-shadow:var(--shadow);display:block;}
.slider-btn{position:absolute;top:calc(50% - 26px);transform:translateY(-50%);z-index:3;
  width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;background:#fff;color:var(--ink);
  font-size:1.6rem;line-height:1;display:grid;place-items:center;box-shadow:var(--shadow-lg);
  transition:background .2s ease,color .2s ease,opacity .2s ease;}
.slider-btn:hover{background:var(--coral);color:#fff;}
.slider-btn[disabled]{opacity:.35;cursor:default;}
.slider-prev{left:-10px;} .slider-next{right:-10px;}
.slider-dots{display:flex;gap:9px;justify-content:center;margin-top:18px;}
.slider-dots button{width:10px;height:10px;padding:0;border-radius:50%;border:0;cursor:pointer;
  background:var(--line);transition:background .2s ease,transform .2s ease;}
.slider-dots button.is-active{background:var(--coral);transform:scale(1.25);}
@media (max-width:900px){ .slide{flex:0 0 calc((100% - 20px)/2);} .slide img{height:220px;} }
@media (max-width:600px){ .slide{flex:0 0 100%;} .slide img{height:200px;}
  .slider-prev{left:2px;} .slider-next{right:2px;} }

/* ---------- Gallery albums ---------- */
.gal-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 2rem;}
.gal-filter{font-family:var(--head);font-weight:600;font-size:.86rem;cursor:pointer;
  padding:.6em 1.15em;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .15s ease;}
.gal-filter:hover{border-color:var(--coral);color:var(--coral);transform:translateY(-1px);}
.gal-filter.is-active{background:var(--coral);border-color:var(--coral);color:#fff;}
.gal-count{display:inline-block;margin-left:.5em;font-size:.75em;opacity:.7;font-weight:500;}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;}
.gal-item{position:relative;padding:0;border:0;cursor:pointer;background:none;border-radius:12px;
  overflow:hidden;box-shadow:var(--shadow);transition:transform .2s ease,box-shadow .2s ease;}
.gal-item img{width:100%;height:180px;object-fit:cover;display:block;}
.gal-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);}
.gal-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 10px 8px;font-family:var(--head);
  font-size:.74rem;font-weight:600;color:#fff;text-align:left;line-height:1.25;
  background:linear-gradient(transparent,rgba(0,0,0,.78));opacity:0;transition:opacity .2s ease;}
.gal-item:hover .gal-cap,.gal-item:focus-visible .gal-cap{opacity:1;}
.gal-item[hidden]{display:none;}
.gal-empty{text-align:center;color:var(--muted);padding:2rem 0;}
@media (max-width:600px){ .gal-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:11px;}
  .gal-item img{height:135px;} .gal-filter{font-size:.8rem;padding:.55em 1em;} }

/* ---------- Lightbox ---------- */
.lb{position:fixed;inset:0;z-index:999;background:rgba(8,12,20,.94);
  display:flex;align-items:center;justify-content:center;padding:24px;}
.lb[hidden]{display:none !important;}
.lb-figure{margin:0;max-width:92vw;max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:12px;}
.lb-figure img{max-width:92vw;max-height:80vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lb-figure figcaption{color:#e8ecf3;font-family:var(--head);font-size:.9rem;text-align:center;}
.lb-close{position:absolute;top:16px;right:20px;width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.12);color:#fff;font-size:1.9rem;line-height:1;display:grid;place-items:center;}
.lb-close:hover{background:var(--coral);}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;
  cursor:pointer;background:rgba(255,255,255,.12);color:#fff;font-size:2rem;line-height:1;display:grid;place-items:center;}
.lb-nav:hover{background:var(--coral);}
.lb-prev{left:18px;} .lb-next{right:18px;}
@media (max-width:600px){ .lb-nav{width:42px;height:42px;font-size:1.5rem;} .lb-prev{left:6px;} .lb-next{right:6px;} }

/* ---------- Members table search ---------- */
.table-tools{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:1.1rem;}
.table-search{position:relative;display:flex;align-items:center;flex:1 1 320px;max-width:460px;}
.table-search svg{position:absolute;left:14px;width:18px;height:18px;color:var(--muted);pointer-events:none;}
.table-search input{width:100%;padding:.8em 2.4em .8em 2.9em;border:1.5px solid var(--line);border-radius:999px;
  font:inherit;font-size:.95rem;color:var(--ink);background:#fff;transition:border-color .18s ease,box-shadow .18s ease;}
.table-search input:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 4px rgba(239,95,67,.13);}
.table-clear{position:absolute;right:10px;width:26px;height:26px;border:0;border-radius:50%;cursor:pointer;
  background:var(--line);color:var(--ink);font-size:1.1rem;line-height:1;display:grid;place-items:center;}
.table-clear:hover{background:var(--coral);color:#fff;}
.table-count{margin:0;color:var(--muted);font-size:.9rem;white-space:nowrap;}
tr.is-filtered{display:none;}
.table-noresult td{text-align:center;color:var(--muted);padding:1.6rem;}

/* ---------- Contact map ---------- */
.map-wrap{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);
  border:1px solid var(--line);line-height:0;}
.map-wrap iframe{width:100%;height:420px;border:0;display:block;}
@media (max-width:600px){ .map-wrap iframe{height:300px;} }

/* (old single-row "Header fit fix" removed — superseded by the two-row header above) */

/* ---------- Hero photo slideshow (matches bosla.in) ---------- */
.hero-slideshow{position:relative;min-height:clamp(420px,52vw,700px);display:flex;align-items:center;
  overflow:hidden;color:#fff;isolation:isolate;}
.hero-slides{position:absolute;inset:0;z-index:0;}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.1s ease-in-out;will-change:opacity;}
.hero-slide.is-active{opacity:1;}
.hero-shade{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(11,16,42,.88) 0%,rgba(11,16,42,.66) 45%,rgba(11,16,42,.30) 100%);}
.hero-caption{position:relative;z-index:2;padding-block:clamp(56px,7vw,96px);max-width:760px;}
.hero-caption .eyebrow{color:var(--lime);}
.hero-caption h1{color:#fff;text-shadow:0 3px 26px rgba(0,0,0,.45);margin-bottom:.6rem;}
.hero-sub{color:#dfe4f2;font-size:1.08rem;max-width:52ch;text-shadow:0 2px 14px rgba(0,0,0,.4);}
.hero-slideshow .hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem;}
.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:46px;height:46px;
  border-radius:50%;border:0;cursor:pointer;background:rgba(255,255,255,.18);color:#fff;font-size:1.8rem;
  line-height:1;display:grid;place-items:center;backdrop-filter:blur(4px);transition:background .2s ease;}
.hero-arrow:hover{background:var(--coral);}
.hero-arrow--prev{left:18px;} .hero-arrow--next{right:18px;}
.hero-dots{position:absolute;left:0;right:0;bottom:20px;z-index:3;display:flex;gap:9px;justify-content:center;}
.hero-dots button{width:10px;height:10px;padding:0;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.45);transition:background .2s ease,transform .2s ease;}
.hero-dots button.is-active{background:var(--coral);transform:scale(1.3);}
@media(max-width:860px){
  .hero-shade{background:linear-gradient(180deg,rgba(11,16,42,.72),rgba(11,16,42,.86));}
  .hero-caption{text-align:center;margin-inline:auto;}
  .hero-sub{margin-inline:auto;}
  .hero-slideshow .hero-actions{justify-content:center;}
  .hero-arrow{width:38px;height:38px;font-size:1.4rem;}
  .hero-arrow--prev{left:6px;} .hero-arrow--next{right:6px;}
}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none;}}

/* NOTE: no global overflow-x:clip — it breaks the sticky navy nav bar.
   No page has real horizontal overflow (verified), so it isn't needed. */

/* ---------- Hero caption: match bosla.in (centred, bottom, light shade) ---------- */
.hero-slideshow{align-items:flex-end;}
.hero-shade{background:linear-gradient(180deg,rgba(10,14,30,.30) 0%,rgba(10,14,30,.12) 45%,rgba(10,14,30,.72) 100%);}
.hero-caption{width:100%;max-width:none;text-align:center;padding:0 24px clamp(28px,4vw,54px);}
.hero-caption h1{font-size:clamp(1.4rem,2.4vw,2.3rem);margin:0;color:#fff;
  text-shadow:0 3px 22px rgba(0,0,0,.65);}
.hero-dots{bottom:12px;}
@media(max-width:860px){
  .hero-shade{background:linear-gradient(180deg,rgba(10,14,30,.35),rgba(10,14,30,.78));}
  .hero-caption{padding-bottom:46px;}
}

/* ---------- Membership Form page (mirrors bosla.in) ---------- */
.membership-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:clamp(20px,3vw,40px);align-items:stretch;}
@media(max-width:900px){.membership-grid{grid-template-columns:1fr;}}

.mf-card{display:block;border-radius:var(--radius);background:#fff;border:1px solid var(--line);
  box-shadow:var(--shadow);min-height:340px;position:relative;overflow:hidden;
  background-image:url("../../wp-content/uploads/2023/06/24307396_6920933-removebg-preview.png");
  background-repeat:no-repeat;background-position:center;background-size:82% auto;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.mf-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--coral);}
.mf-card__inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:var(--head);font-weight:700;font-size:clamp(1.1rem,1.6vw,1.45rem);color:var(--navy);
  text-align:center;padding:1rem;}
.mf-card__inner svg{width:1.05em;height:1.05em;flex:0 0 auto;color:var(--coral);}
.mf-card:hover .mf-card__label{color:var(--coral);}

.mf-pay{border-radius:var(--radius);padding:clamp(22px,2.6vw,34px);position:relative;overflow:hidden;
  background:#e9f3fc;border:1px solid #cfe2f4;box-shadow:var(--shadow);}
.mf-pay::before{content:"";position:absolute;inset:0;opacity:.13;pointer-events:none;
  background:url("../../wp-content/uploads/2023/06/24307396_6920933-removebg-preview.png") center/78% auto no-repeat;}
.mf-pay > *{position:relative;z-index:1;}
.mf-pay__head{display:flex;align-items:center;gap:.6rem;font-size:clamp(1.15rem,1.8vw,1.5rem);
  color:var(--navy);margin:0 0 .9rem;padding-bottom:.9rem;border-bottom:2px solid rgba(11,35,80,.18);}
.mf-pay__head svg{width:1.15em;height:1.15em;color:var(--lime-dark,#6f8c00);flex:0 0 auto;}
.mf-pay__cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,32px);}
@media(max-width:560px){.mf-pay__cols{grid-template-columns:1fr;}}
.mf-bank{margin:0;}
.mf-bank > div{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:.62rem;font-size:.95rem;}
.mf-bank dt{font-weight:700;color:var(--navy);font-family:var(--head);margin:0;}
.mf-bank dd{margin:0;color:#243049;}
.mf-contact p{margin:0 0 .5rem;font-size:.95rem;color:#243049;line-height:1.5;}
.mf-contact__title{font-weight:700;color:var(--navy);font-family:var(--head);}
.mf-contact a{color:var(--coral);}
.mf-note{margin:1.3rem 0 0;padding-top:1rem;border-top:1px solid rgba(11,35,80,.15);
  font-size:.93rem;line-height:1.65;color:#243049;}

/* ---------- Membership card: illustration as a faint watermark ----------
   It was painted at full opacity and competed with the label; the original
   uses it as a subtle wash behind the text (same as the payment panel). */
.mf-card{background-image:none;}
.mf-card::before{content:"";position:absolute;inset:0;opacity:.15;pointer-events:none;
  background:url("../../wp-content/uploads/2023/06/24307396_6920933-removebg-preview.png")
             center/72% auto no-repeat;}
.mf-card:hover::before{opacity:.22;}
.mf-card__inner{z-index:1;}

/* ---------- Media rows: top-align the image ----------
   .media used align-items:center, so next to a very long text column (About
   BOSLA, Dr. Subhash Chavan) the photo floated in the vertical middle with a
   large gap above it. Align to the top so the image starts with the text. */
.media{align-items:start;}

/* ---------- Media rows: let text wrap the image, then run full width ----------
   .media was a rigid 2-column grid, so a long text column stayed at 50% width
   for its whole length and left a large empty gap beside it once the image
   ended. Float the image instead: text sits alongside it, then reflows to the
   full container width below it. */
@media(min-width:821px){
  .media{display:block;}
  .media::after{content:"";display:table;clear:both;}   /* contain the float */
  .media-img{float:left;width:47%;margin:0 3% 1.5rem 0;}
  .media--rev .media-img{float:right;margin:0 0 1.5rem 3%;}
}
@media(max-width:820px){
  .media-img{float:none;width:100%;margin:0 0 1.4rem 0;}
}

/* ---------- .prose inside a media row must not re-centre ----------
   .prose caps text at 820px and centres it. Inside a .media row (Dr. Subhash
   Chavan) that re-indented the wrapped text by ~140px instead of letting it
   run flush to the column edge like the About BOSLA row. */
.media .prose{max-width:none;margin-inline:0;}

/* ---------- Committee portraits: show the whole photo, never crop ----------
   .photo used object-fit:cover on a 1:1 frame, which sliced 10-29% off these
   portrait cut-outs (heads cut at the top). contain shows the full person;
   the sources are transparent PNGs so the card colour shows around them. */
.person .photo{display:grid;place-items:center;padding:10px;}
.person .photo img{width:100%;height:100%;object-fit:contain;object-position:center;}

/* grid + place-items made the row track size to the image's intrinsic height,
   so tall portraits overflowed the frame. Plain block layout lets width/height
   100% resolve against the frame and object-fit:contain letterbox correctly. */
.person .photo{display:block;padding:10px;}
.person .photo img{width:100%;height:100%;object-fit:contain;display:block;}

/* ============ FELICITATION — INLINE PDF EMBED ============ */
.pdf-embed__title{
  display:flex;align-items:center;gap:.55rem;justify-content:center;
  color:var(--coral);font-weight:700;font-size:clamp(1.15rem,2.4vw,1.6rem);
  text-decoration:none;text-align:center;margin:0 auto 1.4rem;line-height:1.3;
}
.pdf-embed__title:hover{color:var(--coral-dark);text-decoration:underline;}
.pdf-embed__title svg{flex:0 0 auto;}
.pdf-embed{
  background:#525659;border-radius:12px;box-shadow:var(--shadow);
  overflow:hidden;max-width:900px;margin:0 auto;
}
.pdf-embed__frame{
  display:block;width:100%;height:min(85vh,1000px);min-height:520px;border:0;
}
.pdf-embed__fallback{
  text-align:center;color:var(--muted);font-size:.95rem;margin:1rem auto 0;
}
.pdf-embed__fallback a{color:var(--coral);font-weight:600;}

/* ============ EVENT ORGANISERS — centered logos ============ */
.event-org__logo{width:150px;height:auto;margin:0 auto 1.2rem;border-radius:10px;}
.event-org__cdac{width:clamp(180px,26vw,240px);height:auto;margin:1.3rem auto 1.4rem;}
.event-org h3{margin-top:.4rem;}
.event-org h4,.event-org h5{margin-top:.35rem;}

/* ============ CLICKABLE PAST-EVENT CARDS ============ */
.card--link{display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s;}
.card--link:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.card--link h3{color:var(--navy);}
.card--link:hover h3{color:var(--coral);}
.card__more{margin-top:auto;padding-top:1rem;font-family:var(--head);font-weight:600;color:var(--coral);font-size:.92rem;}

/* ============ EVENT DETAIL PAGE ============ */
.event-detail{display:grid;grid-template-columns:300px 1fr;gap:clamp(28px,4vw,52px);align-items:start;}
@media(max-width:860px){.event-detail{grid-template-columns:1fr;}}
.event-detail__meta{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.4rem 1.5rem;position:sticky;top:70px;}
@media(max-width:860px){.event-detail__meta{position:static;}}
.event-detail__meta h4{margin:0 0 1rem;color:var(--navy);}
.event-detail__meta ul{display:flex;flex-direction:column;gap:1rem;}
.event-detail__meta li{display:flex;gap:.7rem;align-items:flex-start;line-height:1.5;font-size:.95rem;color:var(--ink-2);}
.event-detail__ico{font-size:1.05rem;flex:0 0 auto;line-height:1.4;}
.event-detail__meta b{color:var(--navy);font-family:var(--head);font-weight:600;}
.event-detail__body h3{margin-top:2rem;color:var(--navy);}
.event-detail__body h4{margin-top:1.4rem;color:var(--navy);}
.event-detail__body h3:first-child,.event-detail__body h4:first-child{margin-top:0;}
.event-detail__body ul{list-style:disc;padding-left:1.3rem;margin:0 0 1rem;}
.event-detail__body ul li{margin-bottom:.4rem;}
.event-detail__body a{color:var(--coral);font-weight:600;text-decoration:underline;}
.event-detail__body table{width:100%;border-collapse:collapse;margin:1rem 0 1.4rem;font-size:.94rem;}
.event-detail__body table td,.event-detail__body table th{border:1px solid var(--line);padding:.6rem .8rem;vertical-align:top;text-align:left;}
.event-detail__body table tr:nth-child(even){background:var(--bg-soft);}

/* ============ COMING SOON (upcoming events) ============ */
.coming-soon{max-width:640px;margin:0 auto;text-align:center;background:var(--bg-soft);
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(36px,6vw,64px) clamp(24px,4vw,48px);}
.coming-soon__icon{font-size:3rem;line-height:1;margin-bottom:1rem;}
.coming-soon h2{color:var(--navy);margin-bottom:.6rem;}
.coming-soon p{color:var(--muted);}
