/* Noor Opportunities — Events & Scholarships (theme-opportunities, rose accent).
   Layered on core app.css; reuses design tokens (--brand, --line, etc.). */

/* ---- Subnav ------------------------------------------------------------- */
.op-subnav {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  padding: 10px 0 18px; border-bottom: 1px solid var(--line); margin-bottom: 22px;
}
.op-subnav .op-brand { font-weight: 800; color: var(--brand-dark); margin-inline-end: 10px; }
.op-subnav a {
  padding: 7px 12px; border-radius: var(--radius-pill, 999px); color: var(--ink);
  font-size: .92rem; font-weight: 600;
}
.op-subnav a:hover { background: var(--brand-tint); text-decoration: none; }
.op-subnav a.active { background: var(--brand); color: #fff; }
.op-subnav .spacer { flex: 1; }

/* ---- Layout ------------------------------------------------------------- */
.op-wrap { display: grid; gap: 30px; }
.section-title { margin: 0 0 4px; font-size: 1.35rem; }
.op-section-head {
  display: flex; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; align-items: end; margin-bottom: 14px;
}

/* ---- Hero --------------------------------------------------------------- */
.op-hero {
  border-radius: var(--radius-lg, 18px);
  padding: clamp(36px, 6vw, 72px) clamp(24px, 6vw, 72px);
  background:
    radial-gradient(1200px 400px at 100% -20%, rgba(190, 18, 60, .16), transparent 60%),
    linear-gradient(135deg, #fbe0e6, #fdf1f3);
  border: 1px solid var(--line);
  display: grid; gap: 16px;
}
.op-hero-eyebrow {
  font-size: .8rem; font-weight: 700; letter-spacing: .5px;
  text-transform: uppercase; color: var(--brand-dark);
}
.op-hero h1 { margin: 0; font-size: clamp(2.4rem, 5.5vw, 3.6rem); line-height: 1.02; letter-spacing: -.022em; }
.op-hero p { margin: 0; max-width: 64ch; color: var(--ink); }
.op-hero-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }

/* ---- Card grid ---------------------------------------------------------- */
.op-grid {
  display: grid; gap: 18px;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.op-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; text-decoration: none; color: inherit; }
.op-card-cover { width: 100%; height: 150px; object-fit: cover; display: block; }
.op-card-cover-ph {
  display: grid; place-items: center; font-size: 2.6rem;
  background: var(--brand-tint); color: var(--brand-dark);
}
.op-card-body { padding: 14px 16px 16px; display: grid; gap: 6px; }
.op-card-title { margin: 2px 0; font-size: 1.08rem; line-height: 1.25; }
.op-card-meta { margin: 0; color: var(--muted); font-size: .88rem; }
.op-card-rec { color: var(--brand-dark); font-weight: 600; font-size: .85rem; margin-top: 2px; }

/* ---- Filters ------------------------------------------------------------ */
.op-filters { padding: 16px; }
.op-filters-row {
  display: grid; gap: 12px; align-items: end;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.op-filters-row .btn { height: fit-content; }
.chips { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

/* ---- Detail ------------------------------------------------------------- */
.op-detail { display: grid; gap: 18px; max-width: 860px; }
.op-detail-cover { width: 100%; max-height: 340px; object-fit: cover; border-radius: var(--radius, 12px); }
.op-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 14px; }
.op-cta-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.op-meta-grid { display: grid; gap: 10px; margin-top: 8px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.op-meta-grid > div { display: grid; gap: 2px; }
.op-meta-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); font-weight: 700; }
.op-cfp { border-inline-start: 4px solid var(--brand); }
.op-notice { border-inline-start: 4px solid var(--brand); }
.op-notice-ok { border-inline-start-color: #0e7d50; }

/* Bigger, unmissable primary action (apply / register) for all users. */
.op-btn-lg { font-size: 1.05rem; padding: 12px 22px; font-weight: 700; }

/* Inline "you've already applied" confirmation on a detail page. */
.op-inline-ok {
  display: flex; gap: 10px; align-items: flex-start; margin-top: 16px;
  padding: 12px 14px; border-radius: var(--radius, 12px);
  background: rgba(14, 125, 80, .08); border: 1px solid rgba(14, 125, 80, .25);
}
.op-inline-ok > span { font-size: 1.2rem; line-height: 1.2; }

/* ---- Forms -------------------------------------------------------------- */
.op-form-wrap { display: grid; gap: 16px; max-width: 720px; margin: 0 auto; }
.op-row2 { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.op-row3 { display: grid; gap: 14px; grid-template-columns: 1fr 1fr 1fr; }
.op-check { display: flex; gap: 8px; align-items: center; }
.op-langs { border: 1px dashed var(--line); border-radius: var(--radius, 12px); padding: 10px 14px; }
.op-langs summary { cursor: pointer; color: var(--muted); font-weight: 600; }
.op-langs-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin-top: 10px; }

/* ---- Admin -------------------------------------------------------------- */
.op-admin-cols { display: grid; gap: 20px; grid-template-columns: 2fr 1fr; align-items: start; margin-top: 16px; }

@media (max-width: 720px) {
  .op-row2, .op-row3, .op-admin-cols, .op-meta-grid { grid-template-columns: 1fr; }
}
