/* Partner programme: /partner (the pitch + application form) and the pages
   partner-register.php renders back (received / already registered / error).
   Same token vocabulary as styles.css — no colours of its own except the error red.
   Kept out of styles.css for the same reason legal.css is: the landing page's
   stylesheet stays about the landing page. */

:root { --danger: #c23c3c; }
:root[data-theme="dark"] { --danger: #ff7b7b; }

/* The page uses the full site header from index (app.js drives scrolled state,
   language and theme). partner-header remains only for the PHP response pages,
   which do not load app.js and need the solid state up front. */
.partner-header { background: color-mix(in srgb, var(--surface) 92%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--line) 75%, transparent); backdrop-filter: blur(18px) saturate(1.2); }
.partner-header .nav-wrap { justify-content: space-between; }

.partner-hero { position: relative; padding: 158px 0 76px; background: linear-gradient(180deg, var(--soft), var(--surface)); }
:root[data-theme="dark"] .partner-hero { background: linear-gradient(180deg, #081c2c, var(--surface)); }
.partner-hero::after { content: ""; position: absolute; height: 1px; bottom: 0; left: 0; right: 0; background: linear-gradient(90deg, transparent, var(--line), transparent); }
.partner-hero h1 { max-width: 780px; margin-top: 22px; font-size: clamp(2.35rem, 5vw, 3.9rem); font-weight: 800; letter-spacing: -.055em; }
.partner-hero h1 span { color: var(--blue); }
.partner-hero .lead { max-width: 640px; margin-top: 24px; color: var(--muted); font-size: clamp(.98rem, 1.4vw, 1.12rem); line-height: 1.75; }
.partner-hero .hero-actions { margin-top: 36px; display: flex; gap: 12px; flex-wrap: wrap; }

.partner-benefits { padding: clamp(64px, 7vw, 96px) 0; }
.pr-grid { margin-top: 8px; }
.pr-note { display: flex; gap: 12px; align-items: flex-start; margin-top: 18px; padding: 16px 20px; border: 1px solid color-mix(in srgb, var(--yellow) 40%, var(--line)); border-radius: 14px; background: color-mix(in srgb, var(--yellow) 8%, var(--surface)); }
.pr-note > span { color: var(--yellow); font-size: .8rem; line-height: 1.6; flex: none; }
.pr-note p { color: var(--muted); font-size: .76rem; line-height: 1.7; }
.pr-note strong { color: var(--ink); }

.apply-section { background: var(--soft); padding: clamp(72px, 8vw, 112px) 0; }
.apply-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 6vw, 90px); align-items: start; }
.apply-steps { list-style: none; counter-reset: apstep; padding: 0; margin: 34px 0 0; display: grid; gap: 22px; }
.apply-steps li { counter-increment: apstep; position: relative; padding-left: 52px; }
.apply-steps li::before { content: "0" counter(apstep); position: absolute; left: 0; top: 2px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; background: color-mix(in srgb, var(--blue) 10%, var(--surface)); color: var(--blue); font-size: .68rem; font-weight: 800; }
.apply-steps strong { display: block; font-size: .92rem; }
.apply-steps p { margin-top: 5px; color: var(--muted); font-size: .77rem; }
.apply-title { margin-top: 16px; font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; letter-spacing: -.05em; }
.apply-aside-note { margin-top: 34px; padding: 15px 18px; border: 1px solid color-mix(in srgb, var(--yellow) 35%, var(--line)); border-radius: 14px; background: color-mix(in srgb, var(--yellow) 9%, var(--surface)); color: var(--muted); font-size: .72rem; }
.apply-aside-note strong { color: var(--ink); }
.apply-aside-note a { color: var(--blue); font-weight: 700; }
.apply-aside-note .aside-login { margin-top: 10px; padding-top: 10px; border-top: 1px solid color-mix(in srgb, var(--yellow) 25%, var(--line)); }

.form-card { padding: clamp(26px, 3.5vw, 40px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.form-card h3 { font-size: 1.25rem; }
.form-card > p { margin: 10px 0 26px; color: var(--muted); font-size: .78rem; }
.field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 17px; }
.field label { font-size: .7rem; font-weight: 700; letter-spacing: .04em; color: var(--ink); }
.field input { min-height: 48px; padding: 0 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--soft); color: var(--ink); font-size: .88rem; transition: border-color .2s, box-shadow .2s, background .2s; }
.field input:focus { outline: none; border-color: var(--blue); background: var(--surface); box-shadow: 0 0 0 3px rgba(16, 150, 215, .16); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field .hint { color: var(--muted); font-size: .64rem; }
.form-error { display: none; margin-bottom: 17px; padding: 12px 15px; border: 1px solid color-mix(in srgb, var(--danger) 30%, transparent); border-radius: 11px; background: color-mix(in srgb, var(--danger) 8%, var(--surface)); color: var(--danger); font-size: .75rem; }
.form-error.show { display: block; }
.form-note { margin-top: 16px; color: var(--muted); font-size: .66rem; line-height: 1.7; }
.form-note a { color: var(--blue); font-weight: 700; }
/* Honeypot: parked off-screen, never display:none so dumb bots still fill it. */
.hp-field { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Pages rendered back by partner-register.php. */
.response-main { min-height: calc(100vh - 160px); display: grid; place-items: center; padding: 140px 20px 90px; }
.response-card { width: min(600px, 100%); padding: clamp(30px, 4vw, 46px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.response-card h1 { margin-top: 14px; font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 800; letter-spacing: -.045em; }
.response-card p { margin-top: 14px; color: var(--muted); font-size: .84rem; line-height: 1.75; }
.response-card p strong { color: var(--ink); }
.response-card ul { margin: 14px 0 0; padding-left: 20px; color: var(--danger); font-size: .8rem; line-height: 1.9; }
.response-card .response-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }

.partner-footer { border-top: 1px solid var(--line); background: var(--surface); }
.partner-footer .container { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 24px; padding-bottom: 24px; color: var(--muted); font-size: .66rem; }
.partner-footer a { color: var(--muted); font-weight: 600; }
.partner-footer a:hover { color: var(--blue); }
.partner-footer nav { display: flex; gap: 18px; }

@media (max-width: 900px) {
  .apply-grid { grid-template-columns: 1fr; }
  .partner-benefits .steps-grid { grid-template-columns: 1fr; }
  .field-row { grid-template-columns: 1fr; }
  .partner-hero { padding-top: 130px; }
  .partner-hero .hero-actions { display: grid; }
  .partner-hero .hero-actions .button { width: 100%; }
}
