/* Organization hub — same design system as the events discovery page. */
:root{
  --og-ink:#201a13;--og-muted:#71685e;--og-soft:#8b8177;--og-paper:#fff8f1;
  --og-line:rgba(32,26,19,.11);--og-line-strong:rgba(32,26,19,.17);
  --og-maroon:#7a0019;--og-gold:#ffcc33;--og-gold-soft:#fff0c4;
  --og-green:#207356;--og-green-soft:#e9f6ed;--og-card:#fffdfa;
  --og-shadow:0 14px 30px rgba(56,34,10,.07);--og-shadow-lift:0 20px 38px rgba(56,34,10,.13);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--og-paper);scroll-behavior:smooth}
body{
  min-height:100vh;margin:0;color:var(--og-ink);
  font-family:Manrope,Inter,ui-sans-serif,system-ui,sans-serif;
  background:radial-gradient(circle at 6% 0,rgba(255,204,51,.2),transparent 24%),
             radial-gradient(circle at 95% 3%,rgba(122,0,25,.06),transparent 20%),
             linear-gradient(180deg,#fffdf8,var(--og-paper) 52%,#fbf0df);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Buttons — one family, matching the events page */
.og-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 15px;
  border:1px solid var(--og-line-strong);border-radius:12px;background:#fff;color:var(--og-ink);
  font:inherit;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease,color .16s ease;
}
.og-btn:hover,.og-btn:focus-visible{outline:none;transform:translateY(-1px);box-shadow:0 10px 20px rgba(44,28,12,.1);border-color:rgba(122,0,25,.24)}
.og-btn:disabled{cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}
.og-btn.primary{border-color:#4d3600;background:var(--og-gold);color:#3f2a00}
.og-btn.primary:hover{background:#ffd54f}
.og-btn--dark{border-color:#2d261f;background:var(--og-ink);color:#fff}
.og-btn--quiet{border-color:transparent;background:transparent;color:var(--og-maroon)}
.og-btn--quiet:hover{border-color:var(--og-line);background:rgba(255,255,255,.8);box-shadow:none}
.og-btn--sm{min-height:36px;padding:0 12px;font-size:12px;border-radius:10px}
.og-btn.is-following{border-color:rgba(32,115,86,.28);background:var(--og-green-soft);color:var(--og-green)}
.og-btn svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}

/* Shell + hero */
.og-shell{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:30px 0 96px}
.og-hero{padding:14px 0 20px}
.og-hero__eyebrow{margin:0 0 8px;color:var(--og-maroon);font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.og-hero h1{margin:0;font-size:clamp(38px,4.6vw,56px);letter-spacing:-.06em;line-height:.97}
.og-hero__sub{max-width:520px;margin:10px 0 0;color:var(--og-muted);font-size:15px;line-height:1.55}

/* Toolbar: one search bar + filters popover + following menu */
.og-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.og-searchbar{
  display:flex;align-items:center;flex:1;min-width:0;padding:4px 4px 4px 6px;
  border:1px solid var(--og-line-strong);border-radius:14px;background:#fff;
  transition:border-color .16s ease,box-shadow .16s ease
}
.og-searchbar:focus-within{border-color:rgba(122,0,25,.45);box-shadow:0 0 0 3px rgba(122,0,25,.08)}
.og-search{display:flex;align-items:center;flex:1;min-width:0;gap:8px;padding-left:8px}
.og-search svg{width:17px;height:17px;flex:none;fill:none;stroke:#73695f;stroke-linecap:round;stroke-width:2}
.og-search input{width:100%;min-width:0;min-height:40px;padding:0;border:0;background:transparent;color:var(--og-ink);font:inherit;font-size:14px;outline:none}
.og-search input::placeholder{color:#9b9188}
.og-searchbar__go{min-height:36px;padding:0 14px;border-radius:10px;font-size:12.5px}

.og-filters{position:relative;flex:none}
.og-filters__toggle{
  display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 10px;margin-right:4px;
  border-radius:10px;color:var(--og-muted);cursor:pointer;list-style:none;transition:background .16s ease,color .16s ease
}
.og-filters__toggle::-webkit-details-marker{display:none}
.og-filters__toggle:hover,.og-filters[open] .og-filters__toggle{background:#f7f1e8;color:var(--og-maroon)}
.og-filters__toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.9}
.og-filters__toggle .og-count{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--og-maroon);color:#fff;font-size:10px;font-weight:900}
.og-filters__panel{
  position:absolute;z-index:40;top:calc(100% + 12px);right:0;width:min(460px,calc(100vw - 32px));
  padding:16px;border:1px solid var(--og-line-strong);border-radius:16px;background:#fffdfa;
  box-shadow:0 26px 50px rgba(48,30,9,.18);
}
.og-filters:not([open]) .og-filters__panel{display:none}
.og-filters__group+.og-filters__group{margin-top:14px;padding-top:14px;border-top:1px solid var(--og-line)}
.og-filters__group>p{margin:0 0 8px;color:var(--og-soft);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.og-choice-row{display:flex;flex-wrap:wrap;gap:7px}
.og-choice{
  display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--og-line);
  border-radius:999px;background:#fff;color:var(--og-muted);font-size:12px;font-weight:800;cursor:pointer;
  transition:border-color .16s ease,background .16s ease,color .16s ease
}
.og-choice:hover{border-color:rgba(122,0,25,.24);color:var(--og-maroon)}
.og-choice input{position:absolute;opacity:0;pointer-events:none}
.og-choice:has(input:checked){border-color:rgba(122,0,25,.28);background:var(--og-gold-soft);color:#633c00}
.og-filters__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}

/* Following menu */
.og-following{position:relative;flex:none}
.og-following>summary{
  display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 14px;border:1px solid var(--og-line-strong);
  border-radius:12px;background:#fff;color:var(--og-ink);font-size:13px;font-weight:800;cursor:pointer;list-style:none
}
.og-following>summary::-webkit-details-marker{display:none}
.og-following>summary b{color:var(--og-maroon);font-size:12px}
.og-following__panel{
  position:absolute;z-index:40;top:calc(100% + 8px);right:0;width:min(300px,calc(100vw - 32px));
  padding:10px;border:1px solid var(--og-line-strong);border-radius:14px;background:#fffdfa;
  box-shadow:0 22px 44px rgba(48,30,9,.18)
}
.og-following:not([open]) .og-following__panel{display:none}
.following-list{display:grid;gap:2px;max-height:280px;overflow-y:auto}
.following-item{display:flex;align-items:center;gap:9px;min-height:40px;padding:6px 8px;border-radius:9px;font-size:13px;font-weight:800}
.following-item:hover{background:#f7f1e8}
.following-item-logo{display:grid;width:26px;height:26px;place-items:center;flex:none;overflow:hidden;border-radius:8px;background:var(--og-gold-soft);color:var(--og-maroon);font-size:10px;font-weight:900}
.following-item-logo img{width:100%;height:100%;object-fit:cover}
.following-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.following-empty{margin:8px;color:var(--og-muted);font-size:12.5px;font-weight:750}

/* Section heads */
.og-section{margin-top:34px}
.og-section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.og-section__head h2{margin:0;font-size:clamp(21px,2.2vw,26px);letter-spacing:-.05em}
.og-section__head p{margin:4px 0 0;color:var(--og-muted);font-size:12px;font-weight:750}
.og-section__tools{display:flex;align-items:center;gap:8px}

/* Cards */
.og-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(298px,1fr));gap:16px}
.org-card{
  position:relative;display:flex;min-width:0;flex-direction:column;overflow:hidden;
  border:1px solid var(--og-line);border-radius:18px;background:var(--og-card);
  box-shadow:var(--og-shadow);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease
}
.org-card:hover{transform:translateY(-3px);border-color:rgba(122,0,25,.2);box-shadow:var(--og-shadow-lift)}
.org-card__cover{
  --cover-a:#f6e6c6;--cover-b:#e7d2a4;--cover-accent:rgba(122,0,25,.16);
  position:relative;height:78px;background:linear-gradient(150deg,var(--cover-a),var(--cover-b))
}
.org-card__cover::before{position:absolute;top:-64%;right:-14%;width:96%;height:150%;border:1px solid var(--cover-accent);border-radius:50%;content:""}
.org-card__cover[data-theme="cultural"]{--cover-a:#fae0dd;--cover-b:#e5aeae}
.org-card__cover[data-theme="academic"]{--cover-a:#f7ecd8;--cover-b:#e3caa0}
.org-card__cover[data-theme="sports"]{--cover-a:#eeecd6;--cover-b:#cfcb9d}
.org-card__cover[data-theme="professional"]{--cover-a:#f3e7d3;--cover-b:#d9c39c}
.org-card__cover[data-theme="volunteer"]{--cover-a:#e9f0e2;--cover-b:#c9d8b8}
.org-card__cover[data-theme="international"]{--cover-a:#f8e3e0;--cover-b:#e6b9b4}
.org-card__cover[data-theme="social"]{--cover-a:#ffe9b8;--cover-b:#f4c86a}
.org-card__cover[data-theme="student_government"]{--cover-a:#f1e6ef;--cover-b:#d6bcd2}
.org-card__cover[data-theme="greek"]{--cover-a:#fdeec4;--cover-b:#f0d18a}
.org-logo{
  position:absolute;bottom:-22px;left:18px;display:grid;width:56px;height:56px;place-items:center;
  overflow:hidden;border:2px solid #fffdfa;border-radius:16px;background:var(--og-gold-soft);
  color:var(--og-maroon);font-size:17px;font-weight:950;box-shadow:0 8px 18px rgba(32,23,13,.14)
}
.org-logo img{width:100%;height:100%;object-fit:cover}
.org-card__body{display:flex;min-width:0;flex:1;flex-direction:column;padding:30px 17px 16px}
.org-name{display:flex;align-items:center;gap:6px;margin:0;font-size:17px;letter-spacing:-.035em;line-height:1.2}
.org-name a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.org-name a:hover{color:var(--og-maroon)}
.org-name svg{width:14px;height:14px;flex:none;fill:none;stroke:var(--og-maroon);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4}
.org-card__chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:9px 0 0}
.org-card__stats{margin:7px 0 0;color:var(--og-muted);font-size:11.5px;font-weight:800}
.org-card__state{margin:10px 0 0}
.og-chip{display:inline-flex;align-items:center;min-height:23px;padding:0 8px;border:1px solid var(--og-line);border-radius:999px;background:#faf6ef;color:#716154;font-size:10.5px;font-weight:900}
.org-copy{
  display:-webkit-box;overflow:hidden;margin:10px 0 0;color:var(--og-muted);font-size:12.5px;line-height:1.5;
  -webkit-box-orient:vertical;-webkit-line-clamp:2
}
.org-card__event{
  display:flex;align-items:center;gap:10px;margin:13px 0 0;padding:9px 10px;border:1px solid var(--og-line);
  border-radius:11px;background:#fffaf0;transition:border-color .16s ease
}
.org-card__event:hover{border-color:rgba(122,0,25,.24)}
.org-card__event-date{display:flex;width:48px;min-height:52px;align-items:center;justify-content:center;flex:0 0 48px;flex-direction:column;overflow:hidden;padding:6px 3px;border:1px solid rgba(122,0,25,.12);border-radius:9px;background:#fff;line-height:1;text-align:center}
.org-card__event-date small{display:block;color:var(--og-maroon);font-size:9px;font-weight:950;letter-spacing:.08em;line-height:1;text-transform:uppercase;white-space:nowrap}
.org-card__event-date b{display:block;margin-top:3px;color:var(--og-ink);font-size:20px;font-variant-numeric:tabular-nums;font-weight:900;letter-spacing:-.06em;line-height:.9;white-space:nowrap}
.org-card__event div{min-width:0}
.org-card__event span{display:block;color:var(--og-soft);font-size:9.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.org-card__event strong{display:block;overflow:hidden;margin-top:2px;font-size:12.5px;text-overflow:ellipsis;white-space:nowrap}
.org-card__event em{display:block;margin-top:2px;color:var(--og-muted);font-size:11px;font-style:normal;font-weight:750}
.org-perk{display:flex;align-items:center;gap:6px;margin:11px 0 0;color:var(--og-green);font-size:11.5px;font-weight:850}
.org-perk::before{width:6px;height:6px;flex:none;border-radius:50%;background:currentColor;content:""}
.org-actions{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:14px}
.org-actions .og-btn{flex:1}
.state-pill{
  display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid rgba(32,115,86,.24);
  border-radius:999px;background:var(--og-green-soft);color:var(--og-green);font-size:11px;font-weight:850;white-space:nowrap
}
.state-pill.pending{border-color:rgba(180,119,0,.26);background:#fff6e3;color:#8a5a00}
.state-pill.invited{border-color:rgba(122,0,25,.2);background:#fff0f2;color:var(--og-maroon)}
[data-role="follow-status"]{padding:0 17px 12px;color:var(--og-green);font-size:11px;font-weight:800}

/* Notices, strips, pagination, empties */
.og-notice{margin:0 0 16px;padding:12px 14px;border:1px solid rgba(32,115,86,.22);border-radius:12px;background:var(--og-green-soft);color:#165c44;font-size:13px;font-weight:800}
.og-callout{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;padding:16px 18px;border:1px solid var(--og-line);border-radius:16px;background:rgba(255,255,255,.8)}
.og-callout p{margin:0;font-size:14px;font-weight:850}
.og-callout small{display:block;margin-top:4px;color:var(--og-muted);font-size:12px;font-weight:750}
.og-transfer{margin:0 0 14px;padding:18px;border:1px solid rgba(122,0,25,.2);border-radius:16px;background:#fff6f2}
.og-transfer strong{display:block;font-size:15px}
.og-transfer p{margin:7px 0 14px;color:var(--og-muted);font-size:13px;line-height:1.55}
.og-transfer__actions{display:flex;flex-wrap:wrap;gap:8px}
.og-transfer__actions form{margin:0}
.og-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.og-strip a{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--og-line);border-radius:999px;background:rgba(255,255,255,.8);color:var(--og-muted);font-size:12px;font-weight:800}
.og-strip a:hover{border-color:rgba(122,0,25,.24);color:var(--og-maroon)}
.og-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:26px;color:var(--og-muted);font-size:12px;font-weight:800}
.og-empty{display:grid;min-height:240px;place-content:center;justify-items:center;padding:32px;border:1px dashed rgba(122,0,25,.22);border-radius:18px;background:rgba(255,255,255,.55);text-align:center}
.og-empty strong{font-size:22px;letter-spacing:-.04em}
.og-empty p{max-width:440px;margin:9px 0 18px;color:var(--og-muted);font-size:14px;line-height:1.6}

@media(max-width:900px){
  .og-shell{width:min(100% - 32px,780px);padding-top:18px}
  .og-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
}
@media(max-width:620px){
  .og-shell{width:min(100% - 28px,560px);padding:12px 0 96px}
  .og-hero{padding:10px 0 16px}
  .og-hero__eyebrow,.og-hero__sub{display:none}
  .og-hero h1{font-size:clamp(34px,11vw,46px)}
  .og-search input{min-height:44px;font-size:16px}
  .og-searchbar{flex:1 1 100%}
  .og-toolbar>.og-btn{flex:1}
  .og-following{flex:1}
  .og-following>summary{width:100%;justify-content:center}
  .og-filters__panel,.og-following__panel{right:-46px}
  .og-grid{grid-template-columns:1fr;gap:10px}
  .og-section{margin-top:26px}

  /* Compact card: on a phone each org was ~300px tall, so four of them meant
     four screens of scrolling. Same markup — the follow script clones
     .org-card / .org-logo / .org-name — laid out as a row instead of a poster. */
  .org-card{
    display:grid;
    grid-template-columns:52px minmax(0,1fr);
    column-gap:12px;
    align-items:start;
    padding:12px;
    border-radius:14px;
  }
  /* The tall cover band becomes the logo's tile. */
  .org-card__cover{height:52px;border-radius:12px;overflow:hidden}
  .org-card__cover::before{display:none}
  .org-logo{
    position:static;width:52px;height:52px;border:0;border-radius:12px;
    font-size:15px;box-shadow:none;background:transparent;
  }
  .org-card__body{padding:0;gap:0}
  .org-name{font-size:15.5px}
  /* Category, verified state and counts read as one line. */
  .org-card__chips{gap:5px;margin:4px 0 0}
  .org-card__chips .og-chip{min-height:20px;padding:0 7px;font-size:10px}
  .org-card__stats{margin:4px 0 0;font-size:11px}
  /* The description is the biggest block and the least useful when scanning. */
  .org-copy{display:none}
  /* Next event collapses to one line: "AUG 28 · Free Pizza & Club Fair". */
  .org-card__event{gap:6px;margin:7px 0 0;padding:0;border:0;background:none;border-radius:0}
  /* The base sheet has .org-card__event span{display:block} (0-1-1), which
     outranks a lone class — so this selector has to match its weight. */
  .org-card__event span.org-card__event-date{
    display:flex;width:max-content;min-height:0;flex:0 0 auto;flex-wrap:nowrap;
    flex-direction:row;gap:3px;align-items:baseline;white-space:nowrap;overflow:visible;
    padding:0;border:0;background:none;border-radius:0;
  }
  .org-card__event-date small{font-size:10px;font-weight:900;letter-spacing:.04em}
  .org-card__event-date b{font-size:11.5px}
  .org-card__event>div{display:flex;min-width:0;align-items:baseline;gap:5px}
  .org-card__event>div>span{display:none}
  .org-card__event strong{overflow:hidden;font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}
  .org-card__event em{display:none}
  .org-card__event::before{
    align-self:center;width:3px;height:3px;flex:0 0 auto;border-radius:50%;
    background:var(--og-maroon);content:"";
  }
  .org-perk{margin:7px 0 0;font-size:10.5px}
  .org-actions{gap:7px;margin-top:9px}
  .org-actions .og-btn{min-height:36px;padding:0 12px;font-size:12px}
  /* Membership is a status, so it reads as a badge instead of its own row. */
  .org-card__state{position:absolute;top:12px;right:12px;margin:0}
  .org-card__state .state-pill{min-height:20px;padding:0 8px;font-size:10px}
  .org-name{padding-right:92px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important}}

.og-chip.is-verified{border-color:rgba(32,115,86,.24);background:var(--og-green-soft);color:var(--og-green)}
