/* our-partners.css [partnerdir] 12 Oct 2026. Tokens only. */
:root { --op-forest: #22302a; --op-forest-2: #2c3d35; --op-ivory: #f8f6f1; --op-paper: #ffffff; --op-sand: #f1ede4; --op-ink: #1d2420; --op-ink-2: #4a524d; --op-muted: #6c736e; --op-line: #e3e0d8; --op-gold: #b8975a; --op-gold-hi: #d8bd85; --op-gold-ink: #8a6a32; --op-light: rgba(255, 255, 255, .82); --op-serif: "Cormorant Garamond", Georgia, serif; --op-r: 20px; --op-r-sm: 12px; }
body.op { background: var(--op-ivory); color: var(--op-ink); }
.op-wrap { width: min(1200px, 100% - 32px); margin: 0 auto; }
.op h1, .op h2 { font-family: var(--op-serif); font-weight: 500; letter-spacing: -.01em; margin: 0; }
.op h1 em, .op h2 em { font-style: italic; color: var(--op-gold-hi); }
.op-eyebrow { margin: 0 0 14px; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--op-gold-hi); }
.op-lede { margin: 22px 0 0; max-width: 56ch; font-size: 18px; line-height: 1.6; color: var(--op-light); }
.op-hero { background: linear-gradient(160deg, var(--op-forest-2), var(--op-forest)); color: var(--op-paper); padding: clamp(56px, 8vw, 104px) 0; }
.op-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.op-hero h1 { font-size: clamp(44px, 5.4vw, 76px); line-height: 1.04; color: var(--op-paper); }
.op-hero__img { margin: 0; }
.op-hero__img img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--op-r); box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .6); }
.op-sec { padding: clamp(64px, 9vw, 120px) 0; }
.op-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.op-card { border-radius: var(--op-r); background: var(--op-paper); border: 1px solid var(--op-line); overflow: hidden; display: flex; flex-direction: column; }
.op-card img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.op-card__body { padding: 24px; display: grid; gap: 8px; }
.op-card__meta { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--op-gold-ink); }
.op-card h2 { font-size: 30px; color: var(--op-ink); }
.op-card p { margin: 0; color: var(--op-ink-2); line-height: 1.6; }
.op-card__link { font-weight: 700; color: var(--op-gold-ink); text-decoration: none; margin-top: 6px; }
.op-card__link:hover { text-decoration: underline; }
.op-empty { max-width: 720px; margin: 0 auto; text-align: center; padding: 48px 28px; border-radius: var(--op-r); background: var(--op-paper); border: 1px solid var(--op-line); }
.op-empty h2 { font-size: clamp(30px, 3.4vw, 42px); color: var(--op-ink); }
.op-empty p { margin: 14px auto 0; max-width: 52ch; color: var(--op-ink-2); line-height: 1.6; }
.op-join { background: var(--op-forest); color: var(--op-paper); text-align: center; }
.op-join__in { max-width: 820px; }
.op-join h2 { font-size: clamp(36px, 4.4vw, 58px); color: var(--op-paper); }
.op-join .op-lede { margin-left: auto; margin-right: auto; }
.op-join__cta { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.op-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px; border-radius: var(--op-r-sm); background: linear-gradient(180deg, var(--op-gold-hi), var(--op-gold)); color: var(--op-forest); font-weight: 700; text-decoration: none; }
.op-btn--line { background: transparent; color: var(--op-paper); border: 1px solid rgba(255, 255, 255, .35); }
.op-btn:focus-visible { outline: 2px solid var(--op-gold-hi); outline-offset: 3px; }
@media (max-width: 900px) { .op-hero__grid, .op-grid { grid-template-columns: minmax(0, 1fr); } }
