/* ============================================================
   GlobleMatch Partner Network — partner-network.css
   All selectors are namespaced under .gm-partner-* so this file
   can never restyle existing pages. Loaded ONLY on:
   /partner-network/, /partner-network/opportunities/,
   /partner-network/opportunities/detail, /partner-network/thanks/
   Palette: site brand blue / warm white / graphite (tokens.css).
   ============================================================ */

.gm-partner-main { background: var(--bg, #f7f7f3); color: var(--ink-soft, #3a3b38); }
.gm-partner-wrap { max-width: var(--container, 1180px); margin: 0 auto; padding: 0 var(--s-5, 24px); }
.gm-partner-section { padding: var(--s-8, 64px) 0; }
.gm-partner-section--soft { background: var(--bg-soft, #efefea); }
.gm-partner-section--tight { padding: var(--s-6, 32px) 0; }

/* visible focus everywhere inside the module */
.gm-partner-main a:focus-visible,
.gm-partner-main button:focus-visible,
.gm-partner-main input:focus-visible,
.gm-partner-main select:focus-visible,
.gm-partner-main textarea:focus-visible,
.gm-partner-main summary:focus-visible {
  outline: 3px solid var(--accent, #275c78);
  outline-offset: 2px;
}

/* ---------- hero ---------- */
.gm-partner-hero { padding: var(--s-9, 96px) 0 var(--s-8, 64px); position: relative; overflow: hidden; }
.gm-partner-hero-grid { display: grid; grid-template-columns: 1fr; gap: var(--s-6, 32px); align-items: center; }
@media (min-width: 900px) { .gm-partner-hero-grid { grid-template-columns: 7fr 5fr; } }
.gm-partner-eyebrow { font-size: var(--t-14, 0.875rem); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent-deep, #1e4a61); margin: 0 0 var(--s-4, 16px); }
.gm-partner-hero h1 { font-size: var(--t-36, 2.25rem); line-height: 1.12; letter-spacing: -0.01em; margin: 0 0 var(--s-4, 16px); }
@media (min-width: 900px) { .gm-partner-hero h1 { font-size: var(--t-60, 3.75rem); } }
.gm-partner-lede { font-size: var(--t-18, 1.125rem); line-height: 1.55; color: var(--ink-soft, #3a3b38); max-width: 34em; margin: 0 0 var(--s-6, 32px); }
.gm-partner-cta-row { display: flex; flex-wrap: wrap; gap: var(--s-3, 12px); }
.gm-partner-cta-row--center { justify-content: center; }
.gm-partner-more { margin-top: var(--s-6, 32px); }
.gm-partner-btn { display: inline-block; padding: 14px 26px; border-radius: var(--radius-sm, 12px); font-weight: 600; font-size: var(--t-16, 1rem); text-decoration: none; border: 2px solid var(--accent, #275c78); cursor: pointer; transition: background 0.15s ease, color 0.15s ease; }
.gm-partner-btn--primary { background: var(--accent, #275c78); color: #ffffff; }
.gm-partner-btn--primary:hover { background: var(--accent-deep, #1e4a61); border-color: var(--accent-deep, #1e4a61); }
.gm-partner-btn--ghost { background: transparent; color: var(--accent-deep, #1e4a61); }
.gm-partner-btn--ghost:hover { background: var(--accent-soft, #e8f1f5); }
.gm-partner-btn[disabled] { opacity: 0.55; cursor: not-allowed; }

/* CSS-only connection motif: dots and arcs, region-neutral, no imagery */
.gm-partner-motif { position: relative; min-height: 220px; border-radius: var(--radius-lg, 28px); background: var(--accent-soft, #e8f1f5); }
.gm-partner-motif::before,
.gm-partner-motif::after { content: ""; position: absolute; border-radius: 50%; border: 2px solid var(--accent, #275c78); opacity: 0.35; }
.gm-partner-motif::before { width: 190px; height: 190px; left: 12%; top: 16%; }
.gm-partner-motif::after { width: 120px; height: 120px; right: 14%; bottom: 14%; opacity: 0.22; }
.gm-partner-motif-dot { position: absolute; width: 14px; height: 14px; border-radius: 50%; background: var(--accent, #275c78); }
.gm-partner-motif-dot--a { left: 22%; top: 30%; }
.gm-partner-motif-dot--b { left: 55%; top: 55%; background: var(--accent-deep, #1e4a61); }
.gm-partner-motif-dot--c { right: 22%; top: 26%; }
.gm-partner-motif-dot--d { left: 38%; bottom: 18%; opacity: 0.6; }
.gm-partner-motif-label { position: absolute; left: var(--s-5, 24px); bottom: var(--s-5, 24px); font-size: var(--t-14, 0.875rem); font-weight: 600; color: var(--accent-deep, #1e4a61); letter-spacing: 0.02em; }

/* ---------- generic blocks ---------- */
.gm-partner-h2 { font-size: var(--t-24, 1.5rem); line-height: 1.25; margin: 0 0 var(--s-3, 12px); }
@media (min-width: 900px) { .gm-partner-h2 { font-size: var(--t-36, 2.25rem); } }
.gm-partner-sub { font-size: var(--t-16, 1rem); line-height: 1.6; color: var(--muted, #626660); max-width: 44em; margin: 0 0 var(--s-6, 32px); }
.gm-partner-card { background: var(--bg-card, #ffffff); border: 1px solid var(--line, #dfe2dc); border-radius: var(--radius, 20px); padding: var(--s-6, 32px); box-shadow: var(--shadow-card, 0 1px 2px rgba(20,20,30,0.05), 0 8px 24px rgba(20,20,30,0.06)); }
.gm-partner-card h3 { margin: 0 0 var(--s-3, 12px); font-size: var(--t-21, 1.3125rem); }
.gm-partner-card p { margin: 0 0 var(--s-3, 12px); line-height: 1.6; }
.gm-partner-card p:last-child { margin-bottom: 0; }
.gm-partner-grid { display: grid; grid-template-columns: 1fr; gap: var(--s-5, 24px); }
@media (min-width: 760px) { .gm-partner-grid--3 { grid-template-columns: repeat(3, 1fr); } .gm-partner-grid--2 { grid-template-columns: repeat(2, 1fr); } }
.gm-partner-tag { display: inline-block; font-size: var(--t-12, 0.75rem); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent-deep, #1e4a61); background: var(--accent-soft, #e8f1f5); border-radius: 999px; padding: 4px 12px; margin-bottom: var(--s-4, 16px); }

/* ---------- process ---------- */
.gm-partner-steps { display: grid; grid-template-columns: 1fr; gap: var(--s-4, 16px); counter-reset: gm-step; list-style: none; margin: 0; padding: 0; }
@media (min-width: 900px) { .gm-partner-steps { grid-template-columns: repeat(5, 1fr); } }
.gm-partner-step { background: var(--bg-card, #ffffff); border: 1px solid var(--line, #dfe2dc); border-radius: var(--radius, 20px); padding: var(--s-5, 24px); }
.gm-partner-step-num { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--accent, #275c78); color: #ffffff; font-weight: 700; margin-bottom: var(--s-3, 12px); }
.gm-partner-step h3 { font-size: var(--t-16, 1rem); margin: 0 0 var(--s-2, 8px); }
.gm-partner-step p { font-size: var(--t-14, 0.875rem); line-height: 1.55; color: var(--muted, #626660); margin: 0; }

/* ---------- promises strip ---------- */
.gm-partner-promises { display: grid; grid-template-columns: 1fr; gap: var(--s-3, 12px); list-style: none; margin: 0; padding: 0; }
@media (min-width: 760px) { .gm-partner-promises { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .gm-partner-promises { grid-template-columns: repeat(4, 1fr); } }
.gm-partner-promise { border-left: 4px solid var(--accent, #275c78); background: var(--bg-card, #ffffff); padding: var(--s-4, 16px) var(--s-5, 24px); font-weight: 600; color: var(--ink, #202120); border-radius: 0 var(--radius-sm, 12px) var(--radius-sm, 12px) 0; }

/* ---------- commission table ---------- */
.gm-partner-table-wrap { overflow-x: auto; }
.gm-partner-table { width: 100%; border-collapse: collapse; background: var(--bg-card, #ffffff); border: 1px solid var(--line, #dfe2dc); border-radius: var(--radius-sm, 12px); overflow: hidden; }
.gm-partner-table th, .gm-partner-table td { text-align: left; padding: var(--s-4, 16px); border-bottom: 1px solid var(--line, #dfe2dc); font-size: var(--t-16, 1rem); }
.gm-partner-table th { background: var(--accent-soft, #e8f1f5); color: var(--accent-deep, #1e4a61); font-weight: 700; }
.gm-partner-table tr:last-child td { border-bottom: none; }
.gm-partner-template-note { font-size: var(--t-14, 0.875rem); color: var(--muted, #626660); margin-top: var(--s-3, 12px); }
.gm-partner-fallback { font-weight: 600; color: var(--ink, #202120); }

/* ---------- form ---------- */
.gm-partner-form { background: var(--bg-card, #ffffff); border: 1px solid var(--line, #dfe2dc); border-radius: var(--radius, 20px); padding: var(--s-6, 32px); box-shadow: var(--shadow-card, 0 1px 2px rgba(20,20,30,0.05), 0 8px 24px rgba(20,20,30,0.06)); }
.gm-partner-field { margin-bottom: var(--s-5, 24px); }
.gm-partner-field label { display: block; font-weight: 600; color: var(--ink, #202120); margin-bottom: var(--s-2, 8px); font-size: var(--t-16, 1rem); }
.gm-partner-req { color: var(--accent-deep, #1e4a61); }
.gm-partner-field input[type="text"],
.gm-partner-field input[type="email"],
.gm-partner-field input[type="url"],
.gm-partner-field select,
.gm-partner-field textarea { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--line, #dfe2dc); border-radius: var(--radius-sm, 12px); font: inherit; font-size: var(--t-16, 1rem); color: var(--ink, #202120); background: #ffffff; min-height: 48px; }
.gm-partner-field textarea { min-height: 110px; resize: vertical; }
.gm-partner-field [aria-invalid="true"] { border-color: #b3261e; }
.gm-partner-hint { display: block; font-size: var(--t-14, 0.875rem); color: var(--muted, #626660); margin-top: var(--s-2, 8px); }
.gm-partner-error { display: none; font-size: var(--t-14, 0.875rem); color: #b3261e; font-weight: 600; margin-top: var(--s-2, 8px); }
.gm-partner-error.gm-partner-error--on { display: block; }
.gm-partner-form-error { display: none; border: 1px solid #b3261e; background: #fdf3f2; color: #7a1a14; border-radius: var(--radius-sm, 12px); padding: var(--s-4, 16px); margin-bottom: var(--s-5, 24px); font-weight: 600; }
.gm-partner-form-error.gm-partner-error--on { display: block; }
.gm-partner-check { display: flex; gap: var(--s-3, 12px); align-items: flex-start; }
.gm-partner-check input[type="checkbox"] { width: 22px; height: 22px; margin-top: 2px; flex: none; accent-color: var(--accent, #275c78); }
.gm-partner-check label { font-weight: 400; margin: 0; line-height: 1.55; }
.gm-partner-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gm-partner-privacy { font-size: var(--t-14, 0.875rem); line-height: 1.6; color: var(--muted, #626660); margin-top: var(--s-5, 24px); }

/* ---------- FAQ ---------- */
.gm-partner-faq { border-top: 1px solid var(--line, #dfe2dc); }
.gm-partner-faq-item { border-bottom: 1px solid var(--line, #dfe2dc); }
.gm-partner-faq-item summary { cursor: pointer; font-weight: 600; color: var(--ink, #202120); font-size: var(--t-18, 1.125rem); padding: var(--s-5, 24px) var(--s-2, 8px); list-style: none; }
.gm-partner-faq-item summary::-webkit-details-marker { display: none; }
.gm-partner-faq-item summary::after { content: "+"; float: right; color: var(--accent, #275c78); font-weight: 700; }
.gm-partner-faq-item[open ] summary::after { content: "–"; }
.gm-partner-faq-item .gm-partner-faq-a { padding: 0 var(--s-2, 8px) var(--s-5, 24px); line-height: 1.65; max-width: 46em; }

/* ---------- opportunities ---------- */
.gm-partner-opp-meta { display: grid; grid-template-columns: 1fr; gap: var(--s-2, 8px); margin: 0 0 var(--s-4, 16px); }
@media (min-width: 760px) { .gm-partner-opp-meta { grid-template-columns: 1fr 1fr; } }
.gm-partner-opp-meta dt { font-size: var(--t-12, 0.75rem); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted, #626660); }
.gm-partner-opp-meta dd { margin: 0; font-size: var(--t-16, 1rem); color: var(--ink, #202120); }
.gm-partner-empty { text-align: center; padding: var(--s-8, 64px) var(--s-5, 24px); background: var(--bg-card, #ffffff); border: 1px dashed var(--line, #dfe2dc); border-radius: var(--radius, 20px); }
.gm-partner-empty h2, .gm-partner-empty h3 { margin-top: 0; }
.gm-partner-share { display: flex; flex-wrap: wrap; gap: var(--s-2, 8px); align-items: center; margin-top: var(--s-4, 16px); }
.gm-partner-share-label { font-size: var(--t-14, 0.875rem); font-weight: 700; color: var(--muted, #626660); margin-right: var(--s-2, 8px); }
.gm-partner-share-btn { display: inline-block; padding: 9px 16px; min-height: 40px; border-radius: 999px; border: 1px solid var(--accent, #275c78); color: var(--accent-deep, #1e4a61); background: #ffffff; font-size: var(--t-14, 0.875rem); font-weight: 600; text-decoration: none; cursor: pointer; }
.gm-partner-share-btn:hover { background: var(--accent-soft, #e8f1f5); }
.gm-partner-disclosure { font-size: var(--t-12, 0.75rem); color: var(--muted, #626660); line-height: 1.55; margin-top: var(--s-3, 12px); }
.gm-partner-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(20px); background: var(--ink, #202120); color: #ffffff; padding: 12px 20px; border-radius: 999px; font-size: var(--t-14, 0.875rem); font-weight: 600; opacity: 0; pointer-events: none; transition: opacity 0.2s ease, transform 0.2s ease; z-index: 60; }
.gm-partner-toast.gm-partner-toast--on { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ---------- thanks ---------- */
.gm-partner-thanks { text-align: center; padding: var(--s-9, 96px) 0; }
.gm-partner-thanks h1 { font-size: var(--t-36, 2.25rem); margin: 0 0 var(--s-4, 16px); }
.gm-partner-thanks p { max-width: 38em; margin: 0 auto var(--s-4, 16px); line-height: 1.65; }

@media (prefers-reduced-motion: reduce) {
  .gm-partner-btn, .gm-partner-toast { transition: none; }
}
