/* AKMV Opportunities — archive + single. Scoped under .akmv-opp / .akmv-opp-single. */
.akmv-opp, .akmv-opp-single, .akmv-opp-modal {
	--o-ink:#1A1B33; --o-indigo:#272A6F; --o-accent:#33366F; --o-accent-2:#A7AAE0;
	--o-paper:#F5F4F0; --o-surface:#FFFFFF; --o-text:#232430; --o-muted:#6F7180;
	--o-line:#E7E5DF; --o-btn:#2E3270; --o-btn-h:#23264F; --o-live:#46B98A;
	font-family:'Hanken Grotesk', system-ui, -apple-system, sans-serif; color:var(--o-text);
}
@keyframes akmvOppPulse { 0% { transform: scale(.6); opacity:.7; } 100% { transform: scale(1.6); opacity:0; } }

/* ---------- ARCHIVE ---------- */
.akmv-opp { position: relative; }
.akmv-opp.is-loading { opacity: 0.55; pointer-events: none; transition: opacity .2s ease; }

.akmv-opp-tabs { display:inline-flex; background:var(--o-paper); border:1px solid var(--o-line); border-radius:999px; padding:5px; gap:4px; margin-bottom:clamp(28px,4vh,44px); }
.akmv-opp-tab { display:inline-flex; align-items:center; text-decoration:none; border:0; background:transparent; border-radius:999px; padding:11px 24px; font:inherit; font-size:0.92rem; font-weight:600; color:var(--o-muted); cursor:pointer; transition:all .25s ease; white-space:nowrap; }
.akmv-opp-tab:hover { color:var(--o-accent); }
.akmv-opp-tab.is-active { background:var(--o-indigo); color:#fff; }

.akmv-opp-filter { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:clamp(20px,3vw,28px); }
.akmv-opp-chip { display:inline-flex; align-items:center; text-decoration:none; border:1px solid var(--o-line); background:transparent; border-radius:999px; padding:8px 18px; font:inherit; font-size:0.82rem; font-weight:600; color:var(--o-muted); cursor:pointer; transition:all .25s ease; }
.akmv-opp-chip:hover { border-color:var(--o-accent); color:var(--o-accent); }
.akmv-opp-chip.is-active { background:var(--o-indigo); border-color:var(--o-indigo); color:#fff; }
.akmv-opp-chip-n { opacity:0.6; font-weight:500; margin-left:5px; }

.akmv-opp-list { display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(20px,2.5vw,32px); }
.akmv-opp-empty { grid-column:1 / -1; }

/* Detail card */
.akmv-opp-card { display:flex; flex-direction:column; border:1px solid var(--o-line); border-radius:5px; background:var(--o-surface); padding:clamp(22px,2.4vw,30px); transition:box-shadow .3s ease, transform .3s ease; }
.akmv-opp-card:hover { box-shadow:0 16px 40px rgba(26,27,51,0.07); transform:translateY(-2px); }
.akmv-opp-card-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }
.akmv-opp-card-cat { font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--o-accent); font-weight:600; }
.akmv-opp-card-title { font-size:clamp(1.15rem,1.8vw,1.35rem); font-weight:600; color:var(--o-ink); line-height:1.22; margin:0 0 10px; letter-spacing:-0.01em; }
.akmv-opp-card-title a { color:inherit; text-decoration:none; }
.akmv-opp-card-title a:hover { color:var(--o-accent); }
.akmv-opp-card-desc { font-size:0.96rem; color:var(--o-muted); margin:0 0 18px; }
.akmv-opp-card-facts { margin-bottom:22px; }
.akmv-opp-card .akmv-os-btn { margin-top:auto; }

/* status badge (shared by card) */
.akmv-opp .op-status { display:inline-flex; align-items:center; gap:8px; font-size:0.78rem; font-weight:600; color:var(--o-text); }
.akmv-opp .op-status .dot { width:8px; height:8px; border-radius:50%; background:var(--o-live); position:relative; }
.akmv-opp .op-status.live .dot::after { content:""; position:absolute; inset:-4px; border-radius:50%; border:1px solid var(--o-live); opacity:.6; animation: akmvOppPulse 2s ease-out infinite; }
.akmv-opp .op-status.retained .dot { background:var(--o-accent-2); }
.akmv-opp-empty { padding:40px 0; color:var(--o-muted); }

.akmv-opp-results { margin-top:22px; font-size:0.84rem; color:var(--o-muted); }
.akmv-opp-pagination { display:flex; align-items:center; gap:8px; margin-top:14px; flex-wrap:wrap; }
.akmv-opp-page { min-width:42px; height:42px; padding:0 12px; border:1px solid var(--o-line); background:var(--o-surface); border-radius:2px; font:inherit; font-size:0.9rem; font-weight:500; color:var(--o-text); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all .2s ease; }
.akmv-opp-page:hover:not(:disabled):not(.is-active) { border-color:var(--o-accent); color:var(--o-accent); }
.akmv-opp-page.is-active { background:var(--o-indigo); border-color:var(--o-indigo); color:#fff; cursor:default; }
.akmv-opp-page:disabled { opacity:0.4; cursor:default; }
.akmv-opp-pgap { color:var(--o-muted); padding:0 4px; }

/* ---------- SINGLE ---------- */
.akmv-os-hero { background:var(--o-ink); color:#fff; padding:clamp(60px,10vh,110px) clamp(24px,6vw,120px) clamp(46px,7vh,72px); }
.akmv-os-inner { max-width:900px; margin:0 auto; }
.akmv-os-crumb { font-size:0.8rem; color:rgba(245,244,240,0.6); margin-bottom:20px; }
.akmv-os-crumb a { color:rgba(245,244,240,0.6); text-decoration:none; }
.akmv-os-crumb a:hover { color:#fff; }
.akmv-os-tags { display:flex; gap:10px; align-items:center; margin-bottom:18px; flex-wrap:wrap; }
.akmv-os-tag { font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; font-weight:600; color:#fff; border:1px solid rgba(255,255,255,0.35); border-radius:2px; padding:5px 12px; }
.akmv-os-tag.live { display:inline-flex; align-items:center; gap:8px; border-color:rgba(70,185,138,0.6); color:#bff0d8; }
.akmv-os-tag.live .dot { width:7px; height:7px; border-radius:50%; background:var(--o-live); }
.akmv-os-tag.retained .dot { width:7px; height:7px; border-radius:50%; background:var(--o-accent-2); display:inline-block; }
.akmv-os-hero h1 { color:#fff; font-size:clamp(1.9rem,4vw,3rem); font-weight:600; letter-spacing:-0.015em; line-height:1.14; margin:0; }
.akmv-os-sub { margin-top:16px; font-size:clamp(1rem,1.4vw,1.18rem); font-weight:300; color:rgba(245,244,240,0.82); max-width:620px; }

.akmv-os-body { padding:clamp(50px,7vh,84px) clamp(24px,6vw,120px); }
.akmv-os-grid { display:grid; grid-template-columns:1fr 340px; gap:clamp(36px,5vw,72px); align-items:start; max-width:1180px; margin:0 auto; }
.akmv-os-main h2 { font-size:clamp(1.25rem,2vw,1.6rem); margin:34px 0 14px; color:var(--o-ink); font-weight:600; }
.akmv-os-main h2:first-child { margin-top:0; }
.akmv-os-main p { margin-bottom:18px; font-size:1.05rem; color:#35363F; line-height:1.65; }
.akmv-os-main ul { margin:0 0 20px 1.1rem; }
.akmv-os-main li { margin-bottom:9px; font-size:1.05rem; color:#35363F; }
.akmv-os-note { margin-top:26px; padding:18px 20px; border-left:3px solid var(--o-indigo); background:var(--o-paper); font-size:0.94rem; color:var(--o-muted); }

.akmv-os-panel { position:sticky; top:100px; border:1px solid var(--o-line); border-radius:4px; padding:clamp(24px,2.4vw,30px); background:var(--o-surface); }
.akmv-os-panel h3 { font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--o-muted); margin-bottom:18px; font-weight:600; }
.akmv-os-fact { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-top:1px solid var(--o-line); font-size:0.94rem; }
.akmv-os-fact:first-of-type { border-top:0; }
.akmv-os-fact .k { color:var(--o-muted); }
.akmv-os-fact .v { color:var(--o-ink); font-weight:600; text-align:right; }
.akmv-os-fact .v.live { color:#1f8a5f; display:inline-flex; align-items:center; gap:7px; }
.akmv-os-fact .v.live .dot { width:7px; height:7px; border-radius:50%; background:var(--o-live); }
.akmv-os-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; background:var(--o-btn); color:#fff; border:0; padding:14px 26px; border-radius:2px; font:inherit; font-weight:500; font-size:0.92rem; cursor:pointer; margin-top:22px; transition:background .25s, transform .25s; }
.akmv-os-btn:hover { background:var(--o-btn-h); transform:translateY(-2px); }
.akmv-os-panel-note { margin-top:14px; font-size:0.8rem; color:var(--o-muted); text-align:center; }

/* ---------- MODAL ---------- */
.akmv-opp-modal { position:fixed; inset:0; z-index:9999; display:none; }
.akmv-opp-modal.is-open { display:block; }
.akmv-opp-modal-scrim { position:absolute; inset:0; background:rgba(10,11,30,0.55); }
.akmv-opp-modal-card { position:relative; max-width:460px; margin:10vh auto 0; background:var(--o-surface); border-radius:5px; padding:clamp(28px,4vw,40px); box-shadow:0 30px 80px rgba(0,0,0,0.35); }
.akmv-opp-modal-x { position:absolute; top:16px; right:18px; border:0; background:none; font-size:1.6rem; line-height:1; color:var(--o-muted); cursor:pointer; }
.akmv-opp-modal-card h3 { font-size:1.3rem; color:var(--o-ink); font-weight:600; margin-bottom:8px; }
.akmv-opp-modal-intro { font-size:0.94rem; color:var(--o-muted); margin-bottom:22px; }
.akmv-opp-field { margin-bottom:16px; }
.akmv-opp-field label { display:block; font-size:0.78rem; font-weight:600; color:var(--o-ink); margin-bottom:7px; }
.akmv-opp-field label span { color:var(--o-accent); }
.akmv-opp-field input, .akmv-opp-field select { width:100%; font-family:inherit; font-size:0.95rem; color:var(--o-text); background:var(--o-surface); border:1px solid var(--o-line); border-radius:2px; padding:12px 13px; }
.akmv-opp-field input:focus, .akmv-opp-field select:focus { outline:none; border-color:var(--o-indigo); box-shadow:0 0 0 3px rgba(46,50,112,0.10); }
.akmv-opp-submit { width:100%; margin-top:6px; }
.akmv-opp-formmsg { margin-top:14px; font-size:0.9rem; }
.akmv-opp-formmsg.is-ok { color:#1f8a5f; }
.akmv-opp-formmsg.is-error { color:#b23b3b; }

@media (max-width: 900px) {
	.akmv-opp-tabs { display:flex; width:100%; }
	.akmv-opp-tab { flex:1; text-align:center; padding:11px 12px; }
	.akmv-opp-list { grid-template-columns:1fr; }
	.akmv-opp-plabel { display:none; }
	.akmv-os-grid { grid-template-columns:1fr; gap:34px; }
	.akmv-os-panel { position:static; }
}

/* ---------- Ensure our styles win over the theme (e.g. Astra) ----------
   Load order is handled in PHP (our stylesheet depends on Astra's, so it
   prints last). These body-scoped rules add specificity for the few
   elements themes style globally (links, buttons) as belt-and-braces. */
body .akmv-opp *, body .akmv-opp-single *, body .akmv-opp-modal * { box-sizing: border-box; }
body .akmv-opp a, body .akmv-opp-single a, body .akmv-opp-modal a { text-decoration: none; box-shadow: none; }
body .akmv-opp a:hover, body .akmv-opp-single a:hover { box-shadow: none; }
body .akmv-opp button, body .akmv-opp-single button, body .akmv-opp-modal button { font-family: inherit; letter-spacing: normal; text-transform: none; }
body .akmv-os-btn, body .akmv-opp-submit { color: #fff; text-decoration: none; box-shadow: none; }
body .akmv-os-btn:hover, body .akmv-opp-submit:hover { color: #fff; }
body .akmv-opp-tab.is-active, body .akmv-opp-chip.is-active, body .akmv-opp-page.is-active { color: #fff; }
body .akmv-opp-field input, body .akmv-opp-field select { line-height: normal; }

/* Facts panel when placed inside an Elementor column (not sticky). */
body .akmv-os-panel--static, .akmv-os-panel--static { position: static; top: auto; }
