/* The partner programme shares the Hub's editorial, lime-on-ink visual language. */
html:has(.co-public), body.hub-ui:has(.co-public) { height:auto; min-height:100%; overflow:visible; }
.co-public { --co-bg:#080d0b; --co-panel:#131d17; --co-line:#334237; --co-text:#f2f7ec; --co-muted:#b4c1b7; --co-lime:#d2f59a; background:var(--co-bg); color:var(--co-text); min-height:100vh; }
.co-public *, .co-work * { box-sizing:border-box; }
.co-public a { color:inherit; }
.co-public :is(a,button,input,select,textarea):focus-visible { outline:3px solid var(--co-lime); outline-offset:5px; }
.co-header { max-width:1440px; margin:auto; padding:24px 5%; display:flex; align-items:center; gap:28px; border-bottom:1px solid var(--co-line); }
.co-brand { font-size:20px; font-weight:750; letter-spacing:-.8px; display:flex; align-items:center; gap:12px; }
.co-brand-mark { display:grid; place-items:center; width:40px; height:40px; flex-shrink:0; }
.co-brand span { color:var(--co-muted); font-weight:400; }
.co-header nav { display:flex; gap:24px; margin-left:auto; font-size:13px; align-items:center; }
.co-header nav a { min-height:44px; display:inline-flex; align-items:center; }
.co-kicker { color:var(--co-lime); text-transform:uppercase; letter-spacing:2.5px; font:11px 'Fira Code',monospace; display:flex; gap:10px; align-items:center; }
.co-kicker::before { content:''; width:7px; height:7px; border-radius:50%; background:currentColor; box-shadow:0 0 20px #d2f59a70; }
.co-hero { position:relative; overflow:hidden; isolation:isolate; }
.co-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 85% 40%,#7e9e3424,transparent 58%),linear-gradient(90deg,transparent 49.8%,#d2f59a06 50%,transparent 50.2%); background-size:auto,110px 110px; z-index:-1; }
.co-hero-inner { max-width:1440px; margin:auto; padding:100px 5% 88px; display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:7%; }
.co-hero h1, .co-apply-story h1 { font-size:clamp(42px,4.7vw,72px); line-height:1.04; letter-spacing:-3px; font-weight:650; margin:26px 0; }
.co-hero h1 em, .co-apply-story h1 em { color:var(--co-lime); font-style:normal; }
.co-copy { color:var(--co-muted); font-size:17px; line-height:1.8; max-width:520px; }
.co-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; align-items:center; }
.co-btn { display:inline-flex; justify-content:center; align-items:center; gap:26px; min-height:50px; border-radius:10px; padding:13px 22px; font-size:14px; font-weight:650; border:1px solid var(--co-line); cursor:pointer; text-decoration:none; background:transparent; color:inherit; transition:transform .2s,background .2s; }
.co-public .co-btn-primary { background:var(--co-lime); color:#14200f; border-color:var(--co-lime); }
.co-btn:hover { transform:translateY(-2px); }
.co-btn:disabled { opacity:.5; cursor:wait; transform:none; }
.co-note { color:var(--co-muted); font-size:12px; line-height:1.7; margin-top:18px; }
.co-preview { position:relative; padding:28px 0 20px; }
.co-preview::before { content:''; position:absolute; width:85%; aspect-ratio:1; border:1px solid #d2f59a1c; border-radius:50%; top:-6%; right:-10%; z-index:-1; }
.co-preview-label { display:flex; align-items:center; justify-content:space-between; color:var(--co-muted); font:10px 'Fira Code',monospace; letter-spacing:1px; margin-bottom:18px; }
.co-window { background:linear-gradient(140deg,#1a281d,#101813); border:1px solid #5b7251; border-radius:19px; box-shadow:0 24px 90px #0008; transform:rotate(-2deg); overflow:hidden; }
.co-window-bar { display:flex; justify-content:space-between; padding:17px 20px; border-bottom:1px solid var(--co-line); color:var(--co-muted); font-size:11px; }
.co-window-bar i { display:inline-block; width:6px; height:6px; border-radius:50%; background:#5b7251; margin-right:4px; }
.co-window-body { padding:26px; }
.co-window-body>p { font:10px 'Fira Code',monospace; color:var(--co-lime); letter-spacing:2px; }
.co-window-body h3 { font-size:25px; letter-spacing:-1px; font-weight:600; margin:8px 0 24px; }
.co-client { padding:18px; border:1px solid var(--co-line); border-radius:12px; background:#0b120d; display:flex; gap:13px; align-items:center; }
.co-client-icon { width:42px; height:42px; flex-shrink:0; display:grid; place-items:center; border-radius:12px; background:var(--co-lime); color:#162011; }
.co-client-icon svg { width:23px; height:23px; }
.co-client strong { display:block; font-size:14px; }
.co-client small { display:block; color:var(--co-muted); margin-top:3px; }
.co-app-tree { border-left:1px solid #526d40; margin:0 0 0 37px; padding:16px 0 0 24px; display:grid; gap:10px; }
.co-app-item { display:flex; align-items:center; gap:12px; position:relative; padding:12px 15px; background:#223022; border:1px solid var(--co-line); border-radius:10px; }
.co-app-item::before { content:''; position:absolute; left:-25px; width:24px; height:1px; background:#526d40; }
.co-app-item>svg { width:18px; height:18px; color:var(--co-lime); flex-shrink:0; }
.co-app-item span { font-size:12px; flex:1; }
.co-app-item small { font:9px 'Fira Code',monospace; color:var(--co-lime); }
.co-floating { position:relative; margin:14px -8px 0 18%; padding:15px 19px; display:flex; gap:12px; align-items:center; background:var(--co-lime); color:#14200f; border-radius:12px; box-shadow:0 12px 35px #0006; transform:rotate(1deg); }
.co-floating svg { width:25px; height:25px; }
.co-floating strong { font-size:13px; display:block; }
.co-floating small { font-size:11px; }
.co-ribbon { max-width:1300px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--co-line); border-bottom:1px solid var(--co-line); }
.co-ribbon div { padding:25px; display:flex; align-items:center; gap:16px; font-size:14px; }
.co-ribbon div+div { border-left:1px solid var(--co-line); }
.co-ribbon b { font:12px 'Fira Code',monospace; color:var(--co-lime); }
.co-section { max-width:1300px; margin:0 auto; padding:95px 5%; }
.co-section h2, .co-finale h2 { font-size:clamp(30px,3.4vw,48px); letter-spacing:-1.8px; line-height:1.12; font-weight:600; margin:20px 0; }
.co-section-heading { display:grid; grid-template-columns:1.3fr 1fr; align-items:end; gap:50px; margin-bottom:38px; }
.co-section-heading>p { color:var(--co-muted); line-height:1.8; }
.co-bento { display:grid; grid-template-columns:1.15fr 1fr; gap:20px; }
.co-benefit { border:1px solid var(--co-line); background:var(--co-panel); border-radius:18px; padding:32px; position:relative; overflow:hidden; }
.co-benefit h3 { font-size:23px; letter-spacing:-.7px; margin:25px 0 12px; font-weight:600; }
.co-benefit p { color:var(--co-muted); line-height:1.8; font-size:14px; max-width:450px; }
.co-benefit>svg { width:30px; height:30px; color:var(--co-lime); }
.co-benefit-photo { grid-row:span 2; display:flex; flex-direction:column; justify-content:end; min-height:460px; isolation:isolate; }
.co-benefit-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55; z-index:-2; }
.co-benefit-photo::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,#0b140df5 15%,#0b140d15 100%); }
.co-benefit-photo h3 { font-size:34px; max-width:300px; }
.co-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; counter-reset:steps; margin-top:40px; }
.co-steps li { border-top:1px solid var(--co-line); padding-top:22px; }
.co-steps b { font:12px 'Fira Code',monospace; color:var(--co-lime); }
.co-steps h3 { font-size:17px; margin:20px 0 10px; font-weight:600; }
.co-steps p { font-size:13px; line-height:1.8; color:var(--co-muted); }
.co-faq { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.co-faq details { padding:22px; border:1px solid var(--co-line); border-radius:12px; }
.co-faq summary { font-size:15px; cursor:pointer; min-height:32px; }
.co-faq p { margin-top:16px; font-size:14px; color:var(--co-muted); line-height:1.8; }
.co-finale { padding:75px 5%; text-align:center; background:radial-gradient(ellipse at 50% 100%,#aac65a23,transparent 70%); border-top:1px solid var(--co-line); }
.co-finale .co-kicker,.co-finale .co-actions { justify-content:center; }
.co-finale p { color:var(--co-muted); max-width:600px; margin:20px auto; line-height:1.8; }
.co-footer { border-top:1px solid var(--co-line); display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:26px 5%; color:var(--co-muted); font-size:12px; }
.co-apply-layout { max-width:1320px; margin:auto; display:grid; grid-template-columns:1fr 1.1fr; gap:8%; padding:64px 5% 90px; align-items:start; }
.co-apply-story { position:sticky; top:35px; }
.co-apply-story h1 { font-size:clamp(36px,4vw,58px); }
.co-apply-story .co-preview { max-width:400px; margin-top:30px; }
.co-form-card { background:var(--co-panel); border:1px solid var(--co-line); padding:32px; border-radius:20px; min-width:0; }
.co-form-card h2 { font-size:25px; font-weight:600; letter-spacing:-.7px; }
.co-form-card>p { color:var(--co-muted); font-size:13px; line-height:1.8; margin:12px 0 24px; }
.co-form :is(input,textarea,select) { width:100%; color:var(--co-text); background:#0c140f; border:1px solid #667660; border-radius:9px; padding:12px 14px; font-size:15px; min-height:48px; }
.co-form textarea { resize:vertical; min-height:110px; }
.co-form label { display:block; font-size:13px; font-weight:600; margin:22px 0 9px; }
.co-form small { display:block; color:var(--co-muted); font-size:12px; margin-top:8px; line-height:1.6; }
.co-form legend { padding-top:22px; font-size:18px; font-weight:600; }
.co-form fieldset { min-width:0; }
.co-form [hidden], .co-public [hidden] { display:none !important; }
.co-progress { display:flex; gap:8px; margin:24px 0 8px; }
.co-progress span { height:4px; background:var(--co-line); flex:1; border-radius:5px; }
.co-progress .is-active { background:var(--co-lime); }
.co-form-controls { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:28px; }
.co-form .validation-summary-errors { border-left:3px solid #f5a79e; padding:12px; background:#f5a79e12; color:#ffc2ba; font-size:13px; }
.co-status { display:inline-flex; padding:7px 12px; font-size:12px; border-radius:20px; border:1px solid currentColor; color:var(--hub-accent,#d2f59a); }
.co-public .co-status { color:var(--co-lime); }
.co-response { padding:20px; border:1px solid var(--co-line); border-radius:12px; line-height:1.8; margin:24px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.co-work { color:var(--hub-text); }
.co-work-hero { position:relative; overflow:hidden; border-radius:20px; padding:36px; background:linear-gradient(120deg,var(--hub-panel),var(--hub-raised)); border:1px solid var(--hub-border); display:flex; justify-content:space-between; gap:25px; align-items:center; margin-bottom:26px; }
.co-work-hero h1 { font-size:clamp(28px,3vw,42px); font-weight:650; letter-spacing:-1.5px; margin:12px 0; }
.co-work-hero p { color:var(--hub-muted); max-width:640px; line-height:1.8; }
.co-work-hero .hub-eyebrow { color:var(--hub-accent); }
.co-work-stats { display:flex; gap:24px; flex-wrap:wrap; margin:22px 0 0; }
.co-work-stats strong { display:block; font-size:25px; font-weight:600; }
.co-work-stats span { font-size:12px; color:var(--hub-muted); }
.co-project-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:20px; }
.co-project-card { border:1px solid var(--hub-border); border-radius:16px; background:var(--hub-panel); padding:24px; display:flex; flex-direction:column; min-width:0; }
.co-project-card:hover { border-color:var(--hub-accent); }
.co-project-card h2 { font-size:21px; font-weight:600; margin:16px 0 8px; overflow-wrap:anywhere; }
.co-project-card p { font-size:13px; color:var(--hub-muted); line-height:1.8; overflow-wrap:anywhere; }
.co-project-card footer { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; border-top:1px solid var(--hub-border); margin-top:24px; padding-top:18px; font-size:12px; }
.co-project-card>a { display:block; flex:1; }
.co-work .co-form { --co-text:var(--hub-text); --co-muted:var(--hub-muted); --co-line:var(--hub-border); }
.co-work .co-form :is(input,textarea,select) { background:var(--hub-bg); color:var(--hub-text); border-color:var(--hub-border); }
.co-work .co-form-controls { justify-content:flex-start; }
.co-detail-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr); gap:24px; }
.co-panel { border:1px solid var(--hub-border); background:var(--hub-panel); padding:26px; border-radius:16px; min-width:0; }
.co-panel h2 { font-size:20px; font-weight:600; margin-bottom:18px; }
.co-panel h3 { font-weight:600; margin-top:22px; margin-bottom:8px; }
.co-panel p { color:var(--hub-muted); line-height:1.8; overflow-wrap:anywhere; }
.co-row { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:18px 0; border-bottom:1px solid var(--hub-border); }
.co-row strong,.co-row small { display:block; }
.co-row small { color:var(--hub-muted); margin-top:5px; }
.co-row>div { min-width:0; overflow-wrap:anywhere; }
.co-empty { padding:45px 25px; border:1px dashed var(--hub-border); border-radius:16px; text-align:center; }
.co-empty>svg { width:40px; height:40px; margin:0 auto 20px; color:var(--hub-accent); }
.co-empty h2 { font-size:23px; font-weight:600; }
.co-empty p { max-width:530px; margin:14px auto 24px; color:var(--hub-muted); line-height:1.8; }
.co-account-invite { display:block; margin-top:24px; padding:20px; border:1px solid var(--hub-border); border-radius:12px; background:linear-gradient(120deg,var(--hub-raised),var(--hub-panel)); }
.co-account-invite strong { display:block; color:var(--hub-accent); font-size:14px; }
.co-account-invite span { display:block; font-size:12px; line-height:1.8; margin-top:7px; color:var(--hub-muted); }
@media(max-width:1000px) { .co-hero-inner { gap:4%; padding-top:65px; } .co-header nav { gap:16px; } .co-hero h1 { letter-spacing:-2px; } .co-apply-layout { gap:5%; } .co-detail-grid { grid-template-columns:1fr; } }
@media(max-width:760px) { .co-header { padding:16px 5%; flex-wrap:wrap; gap:10px; } .co-header nav { gap:14px; font-size:12px; } .co-header nav .co-nav-secondary { display:none; } .co-brand { font-size:17px; } .co-brand-mark { width:34px; height:34px; } .co-hero-inner,.co-apply-layout { grid-template-columns:1fr; padding-top:45px; gap:35px; } .co-hero h1 { font-size:clamp(42px,9.5vw,68px); } .co-preview { max-width:500px; width:100%; margin:auto; } .co-ribbon { grid-template-columns:1fr; margin:0 5%; } .co-ribbon div { padding:18px 0; } .co-ribbon div+div { border-left:0; border-top:1px solid var(--co-line); } .co-section { padding-top:60px; padding-bottom:60px; } .co-section-heading,.co-bento,.co-faq { grid-template-columns:1fr; gap:20px; } .co-benefit-photo { min-height:350px; } .co-steps { grid-template-columns:1fr 1fr; } .co-apply-story { position:static; } .co-apply-story .co-preview { display:none; } .co-form-card { padding:24px; } .co-form :is(input,textarea,select) { font-size:16px; } .co-work-hero { flex-direction:column; align-items:flex-start; padding:26px; } }
@media(prefers-reduced-motion:reduce) { .co-btn { transition:none; } .co-btn:hover { transform:none; } }
.reduce-motion .co-btn { transition:none; }
