/* =====================================================
   PRIME FUND MANAGEMENT — WordPress layer
   Classes that replace the original mock-up's inline styles,
   plus header, form, prose and editor-content styles.
   ===================================================== */

/* ─── Header: announcement bar + nav as one fixed block ─── */
:root { --header-h: 72px; }
body.has-announcement { --header-h: 106px; }

.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; }
.site-header .nav { position: relative; top: auto; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { position: absolute; } }

.announcement-bar { line-height: 1.5; }
.announcement-bar a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.nav__links li, .nav__mobile-list li, .footer__links li, .footer__legal li { list-style: none; }
.nav__mobile-list { display: flex; flex-direction: column; gap: var(--space-1); }

.skip-link:focus {
	position: fixed; left: var(--space-4); top: var(--space-4); z-index: 1000;
	width: auto; height: auto; clip: auto; margin: 0; padding: var(--space-3) var(--space-5);
	background: var(--color-gold-bright); color: var(--color-on-gold); border-radius: var(--radius-md); font-weight: 600;
}

/* Dark heroes and page headers sit under the fixed header. */
.hero__content { padding-top: calc(var(--header-h) + 28px); }
.page-header { padding-top: calc(var(--header-h) + clamp(var(--space-16), 8vw, var(--space-24))); }
.needs-header-offset .site-main { padding-top: var(--header-h); }

/* ─── Sections ─── */
.section--offset {
	background: var(--color-surface-offset);
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}
.section--offset + .section--offset { border-top: none; }
.section--flush { padding-block: 0; }
.section--sm.section { padding-block: clamp(var(--space-10), 5vw, var(--space-20)); }

.section-head { margin-bottom: clamp(var(--space-10), 5vw, var(--space-16)); }
.section-head--center { text-align: center; }
.section-head--center .section-label { text-align: center; }
.section-head--center .section-lead { margin-inline: auto; }
.section-title--sm { font-size: var(--text-xl); }
.section-label--bright { color: var(--color-gold-bright); text-align: center; }
.container--reading { max-width: 800px; }

.btn-row { display: flex; gap: var(--space-4); flex-wrap: wrap; align-items: center; margin-top: var(--space-8); }
.btn-row--center { justify-content: center; }
.cta-actions { margin-top: var(--space-10); }
.section-actions { margin-top: var(--space-8); }
.page-header__actions { margin-top: var(--space-8); }
.btn--block { width: 100%; justify-content: center; margin-top: var(--space-2); }

/* ─── Card grid (flex, so a short last row sits centred) ─── */
.card-grid { --cg-gap: var(--space-5); --cg-cols: 3; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--cg-gap); }
.card-grid > .card { flex: 0 1 calc((100% - (var(--cg-cols) - 1) * var(--cg-gap)) / var(--cg-cols)); min-width: 0; }
.card-grid--2 { --cg-cols: 2; }
.card-grid--3 { --cg-cols: 3; }
.card-grid--4 { --cg-cols: 4; }
.card-grid > .card--wide { flex-basis: 100%; max-width: 640px; }
@media (max-width: 1100px) { .card-grid--4 { --cg-cols: 2; } }
@media (max-width: 1024px) { .card-grid--3 { --cg-cols: 2; } }
@media (max-width: 768px) { .card-grid--2, .card-grid--3, .card-grid--4 { --cg-cols: 1; } }

/* ─── Process steps ─── */
.process-step__num { font-family: var(--font-body); font-size: var(--text-lg); }
.process-steps--3 { grid-template-columns: repeat(3, 1fr); }
.process-steps--3::before { left: calc(16.666% + 20px); right: calc(16.666% + 20px); }
.process-steps--2 { grid-template-columns: repeat(2, 1fr); }
.process-steps--2::before { left: calc(25% + 20px); right: calc(25% + 20px); }
.process-steps--1 { grid-template-columns: 1fr; }
.process-steps--1::before { display: none; }
@media (max-width: 1024px) { .process-steps--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .process-steps--3, .process-steps--2 { grid-template-columns: 1fr; } }

/* ─── Split (text + side panel) ─── */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(var(--space-10), 5vw, var(--space-16)); align-items: center; }
.split--single { grid-template-columns: 1fr; max-width: var(--content-default); }
.split--reverse .split__panel { order: -1; }
.split__image { margin: 0; border-radius: var(--radius-xl); overflow: hidden; }
.split__image img { width: 100%; height: auto; display: block; }
@media (max-width: 1024px) {
	.split { grid-template-columns: 1fr; }
	.split--reverse .split__panel { order: 0; }
}

.quote-panel {
	margin: 0; background: var(--color-ink); border-radius: var(--radius-xl);
	padding: clamp(var(--space-8), 5vw, var(--space-12)); position: relative; overflow: hidden;
}
.quote-panel__mark {
	position: absolute; top: var(--space-6); right: var(--space-6);
	font-family: var(--font-display); font-size: clamp(4rem, 8vw, 7rem); color: var(--color-gold-bright); opacity: .15; line-height: 1;
}
.quote-panel__text { font-family: var(--font-display); font-size: var(--text-xl); color: #fff; font-style: italic; line-height: 1.45; position: relative; z-index: 1; margin: 0; }
.quote-panel__rule { height: 2px; background: var(--color-gold); width: 48px; margin: var(--space-6) 0 var(--space-4); }
.quote-panel__caption { font-size: var(--text-sm); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.6); }

.tile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.tile { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-6); text-align: center; }
.tile__title { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-gold); font-weight: 600; line-height: 1.15; margin-bottom: var(--space-2); }
.tile__text { font-size: var(--text-xs); color: var(--color-text-muted); line-height: 1.5; }
.tile--dark { background: var(--color-ink); border-color: var(--color-ink); grid-column: 1 / -1; }
.tile--dark .tile__title { color: var(--color-gold-bright); }
.tile--dark .tile__text { font-size: var(--text-sm); color: rgba(255,255,255,.65); }
@media (max-width: 480px) { .tile-grid { grid-template-columns: 1fr; } }

.badge-row { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-8); }
.badge-row--flush { margin-top: 0; }
.jump-links a.badge { text-decoration: none; }
.jump-links { border-top: none; }

/* ─── Prose (rich text from the editor) ─── */
.prose { color: var(--color-text); line-height: 1.7; }
.section-lead + .prose, .section-title + .prose { margin-top: var(--space-5); }
.prose--muted { color: var(--color-text-muted); font-size: var(--text-base); }
.prose > * + * { margin-top: var(--space-4); }
.prose h2, .prose h3, .prose h4 { font-family: var(--font-display); font-weight: 600; color: var(--color-text); margin-top: var(--space-10); line-height: 1.2; }
.prose h2 { font-size: var(--text-2xl); }
.prose h3 { font-size: var(--text-xl); }
.prose h4 { font-size: var(--text-lg); }
.prose > :first-child { margin-top: 0; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose li + li { margin-top: var(--space-2); }
.prose a { color: var(--color-gold); text-decoration: underline; text-underline-offset: 2px; }
.prose a:hover { color: var(--color-gold-hover); }
.prose strong { color: var(--color-text); }
.prose blockquote { border-left: 2px solid var(--color-gold); padding-left: var(--space-6); font-family: var(--font-display); font-style: italic; font-size: var(--text-lg); }
.prose img { border-radius: var(--radius-lg); height: auto; }
.prose table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.prose th, .prose td { border-bottom: 1px solid var(--color-border); padding: var(--space-3); text-align: left; }
.prose .alignleft { float: left; margin: 0 var(--space-6) var(--space-4) 0; }
.prose .alignright { float: right; margin: 0 0 var(--space-4) var(--space-6); }
.prose .aligncenter { margin-inline: auto; }
.prose p, .prose li { max-width: none; }

/* ─── Timeline ─── */
.timeline { display: flex; flex-direction: column; gap: var(--space-4); }
.timeline__step { padding: var(--space-8); }
.timeline__num {
	width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	background: color-mix(in oklab, var(--color-gold) 12%, var(--color-surface-offset));
	font-family: var(--font-body); font-size: var(--text-lg); font-weight: 700; color: var(--color-gold);
}
.vcc-feature__text h3 { font-family: var(--font-display); font-size: var(--text-lg); font-weight: 600; color: var(--color-text); margin-bottom: var(--space-1); }
.timeline__tag { font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); font-weight: 500; margin-left: var(--space-3); white-space: nowrap; }
.timeline__step--dark { background: var(--color-ink); border-color: var(--color-ink); }
.timeline__step--dark h3 { color: #fff; }
.timeline__step--dark p { color: rgba(255,255,255,.65); }
.timeline__step--dark .timeline__num { color: var(--color-gold-bright); background: rgba(193,150,69,.15); border: 1px solid rgba(193,150,69,.3); }
.timeline__step--dark .timeline__tag { color: var(--color-gold-bright); }
@media (max-width: 640px) {
	.timeline__step { flex-direction: column; padding: var(--space-6); }
	.timeline__tag { display: block; margin: var(--space-1) 0 0; }
}

/* ─── FAQ ─── */
.accordion-heading { margin: 0; font-size: inherit; line-height: inherit; }
.accordion-item.open .accordion-body { max-height: 1600px; }
.accordion-body .prose p { font-size: var(--text-base); }

/* ─── People ─── */
.people-grid { display: grid; gap: var(--space-5); }
.people-grid--compact { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.people-grid--photo { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--space-6); }
.person--compact { display: flex; flex-direction: row; align-items: flex-start; gap: var(--space-5); }
.person--compact .person__media {
	width: 56px; height: 56px; border-radius: 50%; background: var(--color-ink); flex-shrink: 0; overflow: hidden;
	display: flex; align-items: center; justify-content: center;
}
.person--compact .person__media img { width: 100%; height: 100%; object-fit: cover; }
.person--compact .person__initials { font-family: var(--font-display); font-size: var(--text-lg); color: var(--color-gold-bright); }
.person__name.card__title { font-size: var(--text-lg); margin-bottom: var(--space-1); }
.person__role { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: .1em; color: var(--color-gold); font-weight: 600; margin-bottom: var(--space-3); }
.person__bio.card__body { font-size: var(--text-sm); }
.person__link { display: inline-flex; align-items: center; gap: var(--space-2); margin-top: var(--space-4); font-size: var(--text-xs); font-weight: 600; color: var(--color-gold); }
.person__link svg { display: inline-block; }
.person--photo { padding: 0; overflow: hidden; }
.person--photo .person__media {
	aspect-ratio: 4 / 3; position: relative; overflow: hidden;
	background: linear-gradient(135deg, var(--color-ink) 0%, var(--color-ink-2) 100%);
	display: flex; align-items: center; justify-content: center;
}
.person--photo .person__media::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--color-gold); }
.person--photo .person__media img { width: 100%; height: 100%; object-fit: cover; }
.person--photo .person__initials { font-family: var(--font-display); font-size: var(--text-3xl); font-weight: 600; color: rgba(255,255,255,.35); }
.person--photo .person__info { padding: var(--space-6); }

/* ─── Contact ─── */
.contact-item__text h3 { font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: var(--space-1); }
.notice-box { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-6); }
.notice-box__head { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); }
.notice-box__head span { font-size: var(--text-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--color-gold); }
.notice-box__text, .notice-box__text p { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.65; }
.notice-box__text strong { color: var(--color-text); }

.form-panel { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-xl); padding: clamp(var(--space-8), 4vw, var(--space-12)); }
.form-panel__title { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 600; color: var(--color-text); margin-bottom: var(--space-2); }
.form-panel__intro { font-size: var(--text-sm); color: var(--color-text-muted); margin-bottom: var(--space-8); }
.form-smallprint, .form-smallprint p { font-size: var(--text-xs); color: var(--color-text-muted); line-height: 1.6; }
.form-smallprint a { color: var(--color-gold); }
.form-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-msg { padding: var(--space-4) var(--space-6); border-radius: var(--radius-md); font-weight: 600; font-size: var(--text-sm); color: #fff; }
.form-msg--ok { background: var(--color-success); }
.form-msg--err { background: var(--color-error); }
.contact-form button[disabled] { opacity: .7; cursor: progress; }
/* Contact Form 7 (when a shortcode is used instead of the built-in form) */
.form-panel .wpcf7-form { display: flex; flex-direction: column; gap: var(--space-5); }
.form-panel .wpcf7-form label { font-size: var(--text-sm); font-weight: 600; color: var(--color-text-muted); display: flex; flex-direction: column; gap: var(--space-2); }
.form-panel .wpcf7-form input:not([type=submit]):not([type=checkbox]), .form-panel .wpcf7-form textarea, .form-panel .wpcf7-form select {
	padding: var(--space-3) var(--space-4); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); font-size: var(--text-base); color: var(--color-text); width: 100%;
}
.form-panel .wpcf7-submit { background: var(--color-gold-bright); color: var(--color-on-gold); border: none; padding: var(--space-3) var(--space-7); border-radius: var(--radius-md); font-weight: 600; cursor: pointer; }

/* ─── Footer ─── */
.footer__address { color: rgba(255,255,255,.55); font-size: var(--text-sm); }
.footer__gap { margin-top: var(--space-4); }
.footer__cta { margin-top: var(--space-6); }
.footer .nav__logo-mark { filter: none; }

/* ─── Misc ─── */
.spacer--sm { height: var(--space-6); }
.spacer--md { height: var(--space-16); }
.spacer--lg { height: var(--space-24); }

.post-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--space-6); }
.post-card .card__title a:hover { color: var(--color-gold); }
.pagination { margin-top: var(--space-12); }
.pagination .nav-links { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.pagination .page-numbers { padding: var(--space-2) var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-md); }
.pagination .page-numbers.current { background: var(--color-ink); color: #fff; border-color: var(--color-ink); }
.entry-image { margin: 0 0 var(--space-10); border-radius: var(--radius-xl); overflow: hidden; }

/* Never hide content from visitors without JavaScript. */
.no-js .fade-up { opacity: 1; transform: none; }

/* ─── Centred sections ("Centre the text in this section" switch) ─── */
.page-header.is-centred .container { text-align: center; }
.page-header.is-centred .page-header__subtitle { margin-inline: auto; }
.page-header.is-centred .page-header__actions { justify-content: center; }
.is-centred .section-head { text-align: center; }
.is-centred .section-head .section-label { text-align: center; }
.is-centred .section-head .section-lead { margin-inline: auto; }
.is-centred .card { text-align: center; }
.is-centred .card .card__icon { margin-inline: auto; }
.is-centred .card .card__body { margin-inline: auto; }
.is-centred .split__text,
.is-centred .service-detail > :first-child { text-align: center; }
.is-centred .split__text .section-lead,
.is-centred .service-detail > :first-child .section-lead,
.is-centred .split__text .prose,
.is-centred .service-detail > :first-child .prose,
.is-centred .split__text .prose p,
.is-centred .service-detail > :first-child .prose p { margin-inline: auto; }
.is-centred .split__text .badge-row,
.is-centred .split__text .btn-row,
.is-centred .card-grid ~ .btn-row,
.jump-links.is-centred .badge-row { justify-content: center; }
.is-centred .person--compact { flex-direction: column; align-items: center; text-align: center; }
.is-centred .person__bio { margin-inline: auto; }
.is-centred .service-list { max-width: 560px; }
@media (max-width: 1024px) { .is-centred .service-list { margin-inline: auto; } }

/* Key figures: original size; only a long word (e.g. "Regulated") is scaled to fit its column */
.value-item { min-width: 0; }
.value-item__num--long { font-size: clamp(2rem, 0.9rem + 2.1vw, 3.25rem); }
