:root{
  --navy:#0A1F44;--ink:#14213D;--red:#C72E38;
  --cream:#FBFAF7;--paper:#FFFFFF;--gray:#5B6472;
  --line:#E3E1DA;--line-dark:rgba(255,255,255,.14);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

/* eyebrow */
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);display:flex;align-items:center;gap:.5em;}
.eyebrow.red{color:var(--red);}
.eyebrow::before{content:"";width:6px;height:6px;background:var(--gray);border-radius:50%;flex:none;}
.eyebrow.red::before{background:var(--red);}

h1,h2,h3{font-family:'Playfair Display',serif;font-weight:600;line-height:1.08;letter-spacing:-.01em;}
em{font-style:italic;}
.accent{color:var(--red);font-style:italic;}
.wrap{max-width:1240px;margin:0 auto;padding:0 40px;}
.rule{border:none;border-top:1px solid var(--line);}

/* btn */
.btn{
  font-family:'Inter',sans-serif;font-weight:600;font-size:.85rem;
  padding:11px 20px;border:1px solid var(--navy);
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  transition:all .18s ease;white-space:nowrap;background:transparent;
}
.btn-outline{color:var(--navy);}
.btn-outline:hover{background:var(--navy);color:#fff;}
.btn-solid{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn-solid:hover{background:var(--red);border-color:var(--red);}
.btn-red{background:var(--red);color:#fff;border-color:var(--red);}
.btn-red:hover{background:var(--navy);border-color:var(--navy);}

/* ===== HEADER ===== */
header{position:sticky;top:0;z-index:100;background:rgba(251,250,247,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.nav-inner{max-width:1240px;margin:0 auto;padding:16px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-mark{width:46px;height:46px;display:flex;align-items:center;justify-content:center;flex:none;}
.brand-mark img{width:100%;height:100%;object-fit:contain;}
.brand-text{line-height:1.15;}
.brand-text .name{font-family:'Playfair Display',serif;font-weight:700;font-size:1.02rem;}
.brand-text .sub{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.12em;color:var(--gray);text-transform:uppercase;}
nav.links{display:flex;gap:26px;font-size:.87rem;}
nav.links a{color:var(--ink);padding:4px 0;transition:color .15s;}
nav.links a:hover{color:var(--red);}
.nav-cta{display:flex;align-items:center;gap:12px;}
.menu-toggle{display:none;background:none;border:1px solid var(--navy);width:40px;height:40px;align-items:center;justify-content:center;cursor:pointer;}
.menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{content:"";display:block;width:18px;height:1.5px;background:var(--navy);position:relative;}
.menu-toggle span::before{position:absolute;top:-6px;}
.menu-toggle span::after{position:absolute;top:6px;}
.mobile-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--line);padding:20px 24px;flex-direction:column;gap:14px;z-index:99;}
.mobile-nav.open{display:flex;}
.mobile-nav a{font-size:.95rem;padding:6px 0;color:var(--ink);}
.mobile-nav a:hover{color:var(--red);}

/* ===== HERO ===== */
.hero{padding:34px 0 0;}
.hero-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;padding:44px 0 60px;align-items:center;}
.kicker{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.14em;color:var(--gray);text-transform:uppercase;margin-bottom:18px;}
.hero h1{font-size:clamp(2.4rem,4.6vw,4.1rem);}
.hero p.lede{margin-top:22px;font-size:1.06rem;line-height:1.65;color:var(--gray);max-width:520px;}
.hero-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}
.stat-row{display:flex;gap:0;margin-top:52px;border-top:1px solid var(--line);padding-top:22px;}
.stat{flex:1;padding-right:24px;}
.stat .num{font-family:'Playfair Display',serif;font-size:2.1rem;font-weight:700;}
.stat .lbl{font-family:'IBM Plex Mono',monospace;font-size:.65rem;letter-spacing:.1em;color:var(--gray);text-transform:uppercase;margin-top:4px;}
.hero-art{position:relative;}
.courthouse{position:relative;border:1px solid var(--line);background:linear-gradient(180deg,#12294f 0%,#0A1F44 55%,#081733 100%);aspect-ratio:4/5;overflow:hidden;}

/* Homepage flyer (uploaded via admin panel) */
.flyer-image{width:100%;height:100%;object-fit:contain;display:block;background:#0A1F44;}
.flyer-caption{
  position:absolute;bottom:0;left:0;right:0;padding:16px 20px;
  background:linear-gradient(0deg,rgba(0,0,0,.65),transparent);
  color:#fff;font-family:'Playfair Display',serif;font-style:italic;font-size:1rem;
}
.flyer-pdf-card{
  width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:16px;color:#fff;text-align:center;padding:30px;
}
.flyer-pdf-card svg{width:48px;height:48px;stroke:#fff;fill:none;stroke-width:1.3;opacity:.8;}
.flyer-pdf-card .fp-title{font-family:'Playfair Display',serif;font-size:1.2rem;}
.flyer-pdf-card .fp-caption{color:#B9C3D6;font-size:.88rem;max-width:280px;}
.flyer-pdf-card .btn{margin-top:4px;}
.courthouse svg{width:100%;height:100%;}
.docket-card{position:absolute;top:22px;left:22px;background:#fff;padding:14px 18px;box-shadow:0 14px 30px rgba(10,31,68,.18);max-width:220px;}
.docket-card .k{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.1em;color:var(--gray);text-transform:uppercase;}
.docket-card .v{font-family:'Playfair Display',serif;font-weight:600;font-size:1.05rem;margin-top:4px;}
.courthouse-cap{position:absolute;bottom:0;left:0;right:0;padding:18px 22px;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent);}
.courthouse-cap p{color:#fff;font-family:'Playfair Display',serif;font-style:italic;font-size:1.05rem;}

/* ===== Section head ===== */
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:88px 0 40px;align-items:start;}
.sec-head h2{font-size:clamp(1.9rem,3vw,2.6rem);}
.sec-head .desc{color:var(--gray);line-height:1.65;font-size:1rem;padding-top:6px;}
section.alt{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* ===== Offer cards ===== */
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));border:1px solid var(--line);border-bottom:none;}
.offer-card{padding:34px 30px 38px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);}
.offer-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px;}
.offer-count{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--gray);}
.offer-ico{width:34px;height:34px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;}
.offer-ico svg{width:16px;height:16px;stroke:var(--navy);fill:none;stroke-width:1.6;}
.offer-card h3{font-size:1.28rem;margin-bottom:12px;}
.offer-card p{color:var(--gray);font-size:.92rem;line-height:1.6;}

/* ===== Officers ===== */
.officer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));border:1px solid var(--line);border-bottom:none;}
.officer-card{padding:30px 28px 32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--navy);color:#fff;}
.officer-card.open{background:var(--paper);color:var(--ink);}
.officer-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px;}
.avatar{width:52px;height:52px;background:#fff;color:var(--navy);font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:.85rem;display:flex;align-items:center;justify-content:center;}
.officer-card.open .avatar{background:var(--navy);color:#fff;}
.role{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#B9C3D6;margin-bottom:6px;}
.officer-card.open .role{color:var(--gray);}
.officer-card h3{font-size:1.5rem;margin-bottom:12px;}
.officer-card p{font-size:.88rem;line-height:1.6;color:#CBD3E3;margin-bottom:18px;}
.officer-card.open p{color:var(--gray);}
.chip-row{display:flex;gap:8px;flex-wrap:wrap;}
.chip{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-dark);padding:5px 9px;color:#DDE3EF;}
.officer-card.open .chip{border-color:var(--line);color:var(--gray);}

/* ===== Advisors ===== */
.advisor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0;border:1px solid var(--line);border-top:none;}
.advisor-card{padding:28px;border-right:1px solid var(--line);background:var(--cream);display:flex;gap:18px;align-items:center;}
.advisor-card:last-child{border-right:none;}
.advisor-ava{width:52px;height:52px;background:var(--navy);color:#fff;font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex:none;}
.advisor-info .a-role{font-family:'IBM Plex Mono',monospace;font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-bottom:4px;}
.advisor-info .a-name{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:600;}
.advisor-info .a-email{font-size:.82rem;color:var(--red);margin-top:3px;}
.advisor-info .a-email:hover{text-decoration:underline;}

/* ===== Schedule ===== */
.schedule-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:0;border:1px solid var(--line);}
.practice-panel{background:var(--navy);color:#fff;padding:40px 34px;}
.practice-panel .eyebrow{color:#E8A6AB;}
.practice-panel .eyebrow::before{background:#E8A6AB;}
.practice-panel h3{font-family:'Playfair Display',serif;font-size:1.7rem;margin:14px 0 20px;color:#fff;}
.practice-row{display:flex;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line-dark);font-size:.9rem;}
.practice-row:first-of-type{margin-top:6px;}
.practice-row .k{color:#B9C3D6;font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;}
.practice-row .v{font-weight:600;text-align:right;}
.events-panel{padding:36px 34px;background:var(--paper);}
.events-panel h3{font-size:1.3rem;margin-bottom:18px;}
.event-row{display:grid;grid-template-columns:70px 1fr auto;gap:18px;align-items:center;padding:16px 0;border-top:1px solid var(--line);}
.event-row:first-of-type{border-top:none;}
.event-date{font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--red);line-height:1.3;}
.event-date .mo{display:block;letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;color:var(--gray);}
.event-name{font-weight:600;font-size:.95rem;}
.event-loc{color:var(--gray);font-size:.82rem;margin-top:2px;}
.status-pill{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--line);white-space:nowrap;}
.status-pill.pending{color:var(--gray);}

/* ===== News ===== */
.news-grid{display:grid;grid-template-columns:2fr 1fr;gap:0;border:1px solid var(--line);}
.news-feature{padding:40px 38px;border-right:1px solid var(--line);}
.news-feature .eyebrow{margin-bottom:16px;}
.news-feature h3{font-size:1.9rem;margin-bottom:14px;}
.news-feature p{color:var(--gray);line-height:1.7;font-size:.95rem;max-width:520px;margin-bottom:20px;}
.result-list{background:var(--cream);}
.result-item{padding:20px 26px;border-bottom:1px solid var(--line);}
.result-item:last-child{border-bottom:none;}
.result-item .k{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.08em;color:var(--gray);text-transform:uppercase;}
.result-item .v{font-family:'Playfair Display',serif;font-size:1.05rem;margin-top:5px;}

/* ===== Resources ===== */
.res-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:0;border:1px solid var(--line);}
.res-feature{position:relative;background:var(--navy);min-height:300px;padding:30px;display:flex;flex-direction:column;justify-content:flex-end;border-right:1px solid var(--line);overflow:hidden;}
.res-feature svg.bg{position:absolute;inset:0;width:100%;height:100%;opacity:.5;}
.res-feature .mod,.res-feature h3,.res-feature p{position:relative;}
.res-feature .mod{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.1em;color:#B9C3D6;text-transform:uppercase;margin-bottom:8px;}
.res-feature h3{color:#fff;font-size:1.5rem;margin-bottom:10px;}
.res-feature p{color:#CBD3E3;font-size:.88rem;line-height:1.6;max-width:360px;}
.res-side{display:grid;grid-template-rows:1fr 1fr;}
.res-item{padding:26px 28px;border-bottom:1px solid var(--line);}
.res-item:last-child{border-bottom:none;}
.res-item .ico{width:30px;height:30px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.res-item .ico svg{width:14px;height:14px;stroke:var(--navy);fill:none;stroke-width:1.5;}
.res-item h4{font-family:'Playfair Display',serif;font-size:1.1rem;margin-bottom:6px;}
.res-item p{color:var(--gray);font-size:.85rem;line-height:1.55;}
.private-note{margin-top:26px;padding:16px 20px;background:#FDF3F3;border:1px solid #F1C9CB;display:flex;gap:12px;align-items:flex-start;font-size:.83rem;color:var(--ink);}
.private-note svg{flex:none;width:16px;height:16px;stroke:var(--red);fill:none;stroke-width:1.6;margin-top:2px;}

/* ===== Payments ===== */
.pay-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0;border:1px solid var(--line);border-bottom:none;}
.pay-card{padding:36px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;}
.pay-card .pay-ico{width:42px;height:42px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;margin-bottom:20px;}
.pay-card .pay-ico svg{width:18px;height:18px;stroke:var(--navy);fill:none;stroke-width:1.5;}
.pay-card h3{font-size:1.2rem;margin-bottom:8px;}
.pay-card .price{font-family:'IBM Plex Mono',monospace;font-size:.82rem;color:var(--red);margin-bottom:12px;}
.pay-card p{color:var(--gray);font-size:.88rem;line-height:1.55;margin-bottom:20px;flex:1;}
.pay-card .btn{width:100%;justify-content:center;margin-top:auto;}

.sponsor-tiers{margin-top:28px;}
.sponsor-tiers-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:20px;}
.sponsor-tiers-head h3{font-size:1.4rem;}
.tier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));border:1px solid var(--line);border-bottom:none;}
.tier-card{padding:28px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);}
.tier-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;}
.tier-top h4{font-family:'Playfair Display',serif;font-size:1.15rem;}
.tier-top .amt{font-family:'IBM Plex Mono',monospace;font-size:.88rem;color:var(--red);font-weight:600;}
.tier-card ul{list-style:none;display:flex;flex-direction:column;gap:8px;}
.tier-card ul li{font-size:.83rem;color:var(--gray);padding-left:16px;position:relative;}
.tier-card ul li::before{content:"\2014";position:absolute;left:0;color:var(--line);}

/* ===== Gallery ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.gallery-tile{aspect-ratio:1/1;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:16px;background:linear-gradient(155deg,var(--g1,#12294f),var(--g2,#0A1F44));}
.gallery-tile.tall{aspect-ratio:1/2;grid-row:span 2;}
.gallery-tile .cap{position:relative;color:#fff;}
.gallery-tile .cap .t{font-family:'Playfair Display',serif;font-size:.95rem;font-style:italic;}
.gallery-tile .cap .s{font-family:'IBM Plex Mono',monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:#B9C3D6;margin-top:3px;}
.gallery-tile svg.ph{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:28px;height:28px;stroke:rgba(255,255,255,.35);fill:none;stroke-width:1.3;}

/* ===== Join ===== */
.join-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;padding:88px 0;align-items:start;}
.join-left .eyebrow{margin-bottom:18px;}
.join-left h2{font-size:clamp(2rem,3vw,2.7rem);margin-bottom:20px;}
.join-left p{color:var(--gray);line-height:1.7;margin-bottom:26px;font-size:.98rem;}
.join-points{display:flex;flex-direction:column;gap:14px;}
.join-points li{list-style:none;display:flex;gap:10px;font-size:.9rem;align-items:flex-start;}
.join-points li svg{flex:none;width:15px;height:15px;stroke:var(--red);fill:none;stroke-width:2;margin-top:3px;}
form.join-form{border:1px solid var(--line);background:var(--paper);padding:38px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-bottom:8px;}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);padding:12px 14px;font-family:'Inter',sans-serif;font-size:.92rem;background:var(--cream);color:var(--ink);outline:none;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--navy);background:#fff;}
.field textarea{resize:vertical;min-height:90px;}
.form-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;flex-wrap:wrap;gap:14px;}
.form-foot .note{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.05em;color:var(--gray);text-transform:uppercase;}
#formError{display:none;margin-bottom:14px;padding:10px 14px;font-size:.84rem;background:#FDF3F3;border:1px solid #F1C9CB;color:var(--red);}
.form-msg{margin-top:16px;font-size:.86rem;padding:12px 14px;background:#F1F6EE;border:1px solid #CFE3C4;display:none;}
.form-msg.show{display:block;}
.form-placeholder{margin-top:14px;padding:12px 16px;background:var(--cream);border:1px dashed var(--line);font-size:.82rem;color:var(--gray);font-family:'IBM Plex Mono',monospace;}

/* ===== Footer ===== */
footer{background:var(--navy);color:#fff;padding:56px 0 26px;}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;}
.foot-brand{display:flex;gap:12px;align-items:center;margin-bottom:16px;}

.foot-col p.tagline{color:#B9C3D6;font-size:.88rem;line-height:1.7;max-width:280px;}
.foot-col h5{font-family:'IBM Plex Mono',monospace;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#8FA0C0;margin-bottom:16px;}
.foot-col a{display:block;color:#DDE3EF;font-size:.88rem;margin-bottom:11px;transition:color .15s;}
.foot-col a:hover{color:var(--red);}
.foot-col .foot-text{display:block;color:#B9C3D6;font-size:.88rem;margin-bottom:11px;}
.foot-bottom{border-top:1px solid var(--line-dark);padding-top:22px;display:flex;justify-content:space-between;color:#8FA0C0;font-size:.78rem;flex-wrap:wrap;gap:10px;font-family:'IBM Plex Mono',monospace;letter-spacing:.03em;}
.foot-bottom a{transition:color .15s;}
.foot-bottom a:hover{color:#fff;}

/* back to top */
.btt{position:fixed;bottom:28px;right:28px;width:44px;height:44px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s,background .18s;z-index:90;}
.btt.show{opacity:1;pointer-events:auto;}
.btt:hover{background:var(--red);}
.btt svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2;}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* responsive */
@media(max-width:980px){
  .wrap{padding:0 24px;}
  .nav-inner{padding:14px 24px;}
  nav.links{display:none;}
  .menu-toggle{display:flex;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-art{order:-1;max-width:340px;}
  .sec-head{grid-template-columns:1fr;gap:16px;padding:60px 0 30px;}
  .schedule-wrap,.news-grid,.res-grid{grid-template-columns:1fr;}
  .practice-panel,.news-feature,.res-feature{border-right:none;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-tile.tall{grid-row:auto;aspect-ratio:1/1;}
  .join-grid{grid-template-columns:1fr;gap:30px;padding:60px 0;}
  .form-row{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .stat-row{flex-wrap:wrap;row-gap:20px;}
  .stat{flex:1 1 45%;}
  .advisor-grid{grid-template-columns:1fr;}
  .advisor-card{border-right:none!important;border-bottom:1px solid var(--line);}
}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr;}}

/* ===== Dropdown nav (click-to-toggle) ===== */
.nav-item{position:relative;}
.nav-item > a, .nav-item > button.nav-drop-toggle{display:flex;align-items:center;gap:5px;}
.nav-drop-toggle{background:none;border:none;font-family:'Inter',sans-serif;font-size:.87rem;color:var(--ink);cursor:pointer;padding:4px 0;}
.nav-item > a svg, .nav-drop-toggle svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .15s;}
.nav-item.open > .nav-drop-toggle svg, .nav-item.open > a svg{transform:rotate(180deg);}
.dropdown{
  position:absolute;top:100%;left:0;margin-top:14px;min-width:200px;
  background:var(--paper);border:1px solid var(--line);
  box-shadow:0 16px 32px rgba(10,31,68,.12);
  opacity:0;pointer-events:none;transform:translateY(6px);
  transition:opacity .15s,transform .15s;
}
.nav-item.open .dropdown{opacity:1;pointer-events:auto;transform:translateY(0);}
.dropdown a{display:block;padding:12px 18px;font-size:.86rem;color:var(--ink);border-bottom:1px solid var(--line);}
.dropdown a:last-child{border-bottom:none;}
.dropdown a:hover{background:var(--cream);color:var(--red);}
.mobile-nav .sub-group{display:flex;flex-direction:column;gap:2px;margin-left:14px;border-left:2px solid var(--line);padding-left:14px;}
.mobile-nav .sub-label{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin-top:10px;}

/* ===== Announcement banner (homepage, admin-editable via JS) ===== */
.announce-banner{background:var(--red);color:#fff;display:none;}
.announce-banner.show{display:block;}
.announce-banner-inner{
  max-width:1240px;margin:0 auto;padding:14px 40px;
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:space-between;
}
.announce-banner .ab-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap;flex:1;min-width:240px;}
.announce-banner .ab-label{
  font-family:'IBM Plex Mono',monospace;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(255,255,255,.18);padding:5px 10px;flex:none;
}
.announce-banner .ab-text{font-size:.9rem;line-height:1.5;}
.announce-banner .ab-text strong{font-weight:700;}
.announce-banner .ab-link{
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
  color:#fff;border:1px solid rgba(255,255,255,.5);padding:8px 14px;white-space:nowrap;flex:none;
  transition:background .15s;
}
.announce-banner .ab-link:hover{background:rgba(255,255,255,.15);}

/* ===== Booster board ===== */
.board-note{
  padding:16px 20px;background:var(--cream);border:1px solid var(--line);
  font-size:.85rem;color:var(--gray);margin-bottom:26px;line-height:1.6;
}
.board-note strong{color:var(--ink);}

/* ===== Simple page hero (for sub-pages) ===== */
.page-hero{padding:60px 0 50px;border-bottom:1px solid var(--line);}
.page-hero .eyebrow{margin-bottom:16px;}
.page-hero h1{font-size:clamp(2.1rem,4vw,3.2rem);margin-bottom:16px;}
.page-hero p{color:var(--gray);font-size:1.02rem;line-height:1.65;max-width:620px;}
.breadcrumb{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--gray);margin-bottom:20px;}
.breadcrumb a{color:var(--red);}
.breadcrumb a:hover{text-decoration:underline;}

/* ===== Students page ===== */
.pres-grid{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line);margin:50px 0;}
.pres-card{padding:40px 36px;border-right:1px solid var(--line);background:var(--navy);color:#fff;}
.pres-card:last-child{border-right:none;}
.pres-ava{width:64px;height:64px;background:#fff;color:var(--navy);font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:1.05rem;display:flex;align-items:center;justify-content:center;margin-bottom:22px;}
.pres-card .role{color:#E8A6AB;margin-bottom:8px;}
.pres-card h3{color:#fff;font-size:1.7rem;margin-bottom:14px;}
.pres-card p{color:#CBD3E3;font-size:.92rem;line-height:1.65;}

.announce-wrap{border:1px solid var(--line);margin-bottom:60px;}
.announce-item{padding:26px 30px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:110px 1fr;gap:24px;}
.announce-item:last-child{border-bottom:none;}
.announce-date{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--red);letter-spacing:.06em;text-transform:uppercase;padding-top:3px;}
.announce-body h4{font-family:'Playfair Display',serif;font-size:1.15rem;margin-bottom:8px;}
.announce-body p{color:var(--gray);font-size:.9rem;line-height:1.65;}
.announce-empty{padding:50px 30px;text-align:center;color:var(--gray);font-size:.92rem;}
.announce-empty svg{width:32px;height:32px;stroke:var(--line);fill:none;stroke-width:1.3;margin:0 auto 14px;display:block;}

/* ===== Bylaws page ===== */
.bylaws-doc{max-width:760px;margin:50px 0 70px;padding:44px 48px;border:1px solid var(--line);background:var(--paper);}
.bylaws-doc h2{font-size:1.5rem;margin:32px 0 14px;}
.bylaws-doc h2:first-child{margin-top:0;}
.bylaws-doc h3{font-size:1.15rem;margin:24px 0 10px;color:var(--ink);}
.bylaws-doc p{color:var(--gray);font-size:.94rem;line-height:1.75;margin-bottom:14px;}
.bylaws-doc ul{margin:0 0 16px 0;padding-left:0;list-style:none;}
.bylaws-doc ul ul{margin:8px 0 8px 0;}
.bylaws-doc li{color:var(--gray);font-size:.92rem;line-height:1.7;padding-left:20px;position:relative;margin-bottom:8px;}
.bylaws-doc li::before{content:"\2014";position:absolute;left:0;color:var(--red);}
.bylaws-doc ul ul li::before{content:"\2013";color:var(--gray);}
.bylaws-doc strong{color:var(--ink);font-weight:600;}
.bylaws-doc .fees-box{margin-top:32px;padding:22px 26px;background:var(--cream);border:1px solid var(--line);}
.bylaws-doc .fees-box h3{margin-top:0;}
.bylaws-note{
  max-width:760px;margin:20px 0 0;padding:14px 18px;background:#FDF3F3;border:1px solid #F1C9CB;
  font-size:.82rem;color:var(--ink);line-height:1.6;
}
.bylaws-pending{
  max-width:760px;margin:50px 0 70px;padding:44px;border:1px dashed var(--line);
  text-align:center;background:var(--cream);
}
.bylaws-pending svg{width:36px;height:36px;stroke:var(--gray);fill:none;stroke-width:1.3;margin:0 auto 18px;display:block;}
.bylaws-pending h3{font-size:1.3rem;margin-bottom:10px;}
.bylaws-pending p{color:var(--gray);font-size:.92rem;max-width:420px;margin:0 auto;line-height:1.6;}

/* ===== Membership page ===== */
.member-tiers{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));border:1px solid var(--line);margin:50px 0 60px;}
.member-tier{padding:36px 30px;border-right:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;}
.member-tier:last-child{border-right:none;}
.member-tier h3{font-size:1.25rem;margin-bottom:8px;}
.member-tier .amt{font-family:'IBM Plex Mono',monospace;font-size:.85rem;color:var(--red);margin-bottom:14px;}
.member-tier p{color:var(--gray);font-size:.88rem;line-height:1.6;margin-bottom:22px;flex:1;}
.member-tier .btn{width:100%;justify-content:center;}

@media(max-width:980px){
  .pres-grid{grid-template-columns:1fr;}
  .pres-card{border-right:none;border-bottom:1px solid var(--line);}
  .pres-card:last-child{border-bottom:none;}
  .announce-item{grid-template-columns:1fr;gap:8px;}
  .bylaws-doc{padding:30px 24px;}
}
