@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=DM+Sans:wght@300;400;500;600&display=swap');

* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'DM Sans',sans-serif; background:#faf9f7; color:#1c1917; }

:root {
  --ink:#1c1917; --paper:#faf9f7; --warm:#f5f0e8; --surface:#ffffff;
  --accent1:#c2410c; --accent2:#0f766e; --accent3:#7c3aed;
  --border:#e7e5e4; --muted:#78716c;
  --accent1-light:#fff7ed; --accent2-light:#f0fdfa;
}

@keyframes fadeUp { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes spin { to { transform:rotate(360deg); } }

.opp-card:hover { border-color:var(--ink)!important; transform:translateY(-3px); box-shadow:0 16px 40px rgba(28,25,23,0.08); }

/* ── Buttons ─────────────────────────────────────────────── */
.btn-primary {
  background:var(--ink); color:#fff; border:none; border-radius:12px;
  padding:12px 24px; font-size:14px; font-weight:600; cursor:pointer;
  font-family:inherit; transition:all 0.2s; display:inline-flex;
  align-items:center; gap:8px; letter-spacing:0.01em;
}
.btn-primary:hover { background:#292524; transform:translateY(-1px); box-shadow:0 6px 20px rgba(28,25,23,0.15); }

.btn-ghost {
  background:transparent; color:var(--ink); border:1.5px solid var(--border);
  border-radius:12px; padding:10px 20px; font-size:14px; font-weight:500;
  cursor:pointer; font-family:inherit; transition:all 0.2s;
  display:inline-flex; align-items:center; gap:8px;
}
.btn-ghost:hover { border-color:var(--ink); background:#faf9f7; }

.nav-btn {
  background:transparent; border:none; padding:8px 14px; font-size:14px;
  font-weight:500; color:var(--muted); cursor:pointer; border-radius:10px;
  font-family:inherit; transition:all 0.18s; white-space:nowrap;
}
.nav-btn:hover { background:#f5f4f2; color:var(--ink); }
.nav-btn.active { background:var(--ink); color:#fff; }

/* ── Form inputs ─────────────────────────────────────────── */
input, textarea, select { font-family:inherit; }

.field-input {
  width:100%; padding:10px 14px; border:1.5px solid var(--border);
  border-radius:12px; font-size:14px; font-family:inherit;
  transition:border-color 0.2s, box-shadow 0.2s; background:#fff; color:var(--ink);
}
.field-input:focus { outline:none; border-color:var(--accent2); box-shadow:0 0 0 3px rgba(15,118,110,0.08); }
textarea.field-input { resize:vertical; min-height:100px; }

label.field-label {
  display:block; font-size:11.5px; font-weight:700; text-transform:uppercase;
  letter-spacing:0.07em; color:var(--muted); margin-bottom:6px;
}

/* ── Badges ──────────────────────────────────────────────── */
.badge { padding:3px 10px; border-radius:100px; font-size:11px; font-weight:700; letter-spacing:0.02em; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 768px) {
  .desktop-nav { display:none!important; }
  .mobile-menu-btn { display:flex!important; }
  .filters-row { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .grid-3 { grid-template-columns:1fr!important; }
  .grid-2 { grid-template-columns:1fr!important; }
  .detail-header-row { flex-direction:column!important; }
}
@media (min-width: 769px) {
  .mobile-menu-btn { display:none!important; }
  .mobile-nav-panel { display:none!important; }
}
