:root{
  --so-navy:#0F172A;
  --so-navy-2:#172033;
  --so-orange:#FF8A3D;
  --so-green:#6FA497;
  --so-beige:#E7D6C2;
  --so-cream:#F6F2EE;
  --so-white:#FFFFFF;
  --so-ink:#151B29;
  --so-muted:#626B7A;
  --so-line:rgba(15,23,42,.12);
  --so-line-strong:rgba(15,23,42,.18);
  --so-shadow-sm:0 10px 30px rgba(15,23,42,.08);
  --so-shadow:0 24px 70px rgba(15,23,42,.12);
  --so-radius-sm:10px;
  --so-radius:16px;
  --so-radius-lg:24px;
  --so-max:1240px;
  --so-font:"Poppins",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

html{scroll-behavior:smooth}
body.so-page{font-family:var(--so-font)!important;color:var(--so-navy);background:var(--so-cream);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.so-page *,body.so-auth *{font-family:inherit}
body.so-page h1,body.so-page h2,body.so-page h3,body.so-page h4,body.so-page h5,body.so-page strong,
body.so-auth h1,body.so-auth h2,body.so-auth h3,body.so-auth h4,body.so-auth strong{font-family:var(--so-font);letter-spacing:-.035em}
body.so-page p,body.so-page li,body.so-page label,body.so-page input,body.so-page select,body.so-page textarea,
body.so-auth p,body.so-auth label,body.so-auth input,body.so-auth select,body.so-auth textarea{letter-spacing:-.005em}
body.so-page button,body.so-page a,body.so-auth button,body.so-auth a{font-family:var(--so-font)}

.so-container{width:min(var(--so-max),calc(100% - 40px));margin-inline:auto}

/* Shared commercial header */
.so-header{position:sticky;top:0;z-index:500;background:rgba(246,242,238,.96);backdrop-filter:blur(18px);border-bottom:1px solid var(--so-line)}
.so-header-row{height:72px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px}
.so-brand{justify-self:start;display:inline-flex;align-items:center;gap:10px;color:var(--so-navy);text-decoration:none;white-space:nowrap;flex:0 0 auto}
.so-brand-mark{width:36px;height:36px;border-radius:50%;background:
  radial-gradient(circle at 32% 32%,var(--so-orange) 0 21%,transparent 22%),
  radial-gradient(circle at 68% 32%,var(--so-navy) 0 21%,transparent 22%),
  radial-gradient(circle at 32% 68%,var(--so-beige) 0 21%,transparent 22%),
  radial-gradient(circle at 68% 68%,var(--so-green) 0 21%,transparent 22%),#fff;
  border:1px solid var(--so-line);box-shadow:0 5px 14px rgba(15,23,42,.08);flex:0 0 auto}
.so-brand-copy{display:flex;align-items:baseline;gap:7px;min-width:0}
.so-brand-copy strong{font-size:17px;line-height:1;font-weight:800;letter-spacing:-.045em}
.so-brand-copy small{font-size:10px;line-height:1;color:#7A8492;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.so-nav{display:flex;align-items:center;justify-content:center;gap:2px;min-width:0;justify-self:center}
.so-nav a{display:inline-flex;align-items:center;min-height:40px;padding:0 11px;border-radius:9px;color:#4D5766;text-decoration:none;font-size:13px;font-weight:600;letter-spacing:-.01em;transition:background .16s ease,color .16s ease}
.so-nav a:hover,.so-nav a[aria-current="page"]{background:#fff;color:var(--so-navy)}
.so-nav-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;justify-self:end}
.so-link-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 12px;color:var(--so-navy);font-size:13px;font-weight:700;text-decoration:none;border-radius:9px}
.so-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border-radius:10px;border:1px solid transparent;text-decoration:none;font-size:13px;font-weight:700;line-height:1;transition:transform .16s ease,background .16s ease,border-color .16s ease;cursor:pointer}
.so-button:hover{transform:translateY(-1px)}
.so-button-primary{background:var(--so-navy);color:#fff;border-color:var(--so-navy)}
.so-button-primary:hover{background:#1B263C}
.so-button-secondary{background:#fff;color:var(--so-navy);border-color:var(--so-line-strong)}
.so-button-orange{background:var(--so-orange);color:var(--so-navy);border-color:var(--so-orange)}
.so-menu-button{display:none;width:42px;height:42px;border:1px solid var(--so-line);border-radius:10px;background:#fff;align-items:center;justify-content:center;padding:0;color:var(--so-navy)}
.so-menu-button svg{width:20px;height:20px;display:block}
.so-mobile-menu{display:none;padding:8px 20px 18px;border-top:1px solid var(--so-line);background:var(--so-cream)}
.so-mobile-menu a:not(.so-button){display:flex;align-items:center;min-height:45px;border-bottom:1px solid var(--so-line);font-size:14px;font-weight:650;color:var(--so-navy);text-decoration:none}
.so-mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}

/* Auth/workflow header variant */
.so-auth-header{height:68px;border-bottom:1px solid var(--so-line);background:rgba(246,242,238,.97);display:flex;align-items:center}
.so-auth-header .so-container{display:flex;align-items:center;justify-content:space-between;gap:18px}
.so-auth-back{font-size:13px;font-weight:650;color:#596372;text-decoration:none;display:inline-flex;align-items:center;gap:7px}
.so-auth-back:hover{color:var(--so-navy)}

/* Unified type scale */
.so-page .so-display{font-size:clamp(52px,6.8vw,88px);line-height:.96;letter-spacing:-.065em;margin:0}
.so-page .so-title{font-size:clamp(38px,4.8vw,60px);line-height:1.02;letter-spacing:-.052em;margin:0}
.so-page .so-subtitle{font-size:clamp(26px,3vw,38px);line-height:1.08;letter-spacing:-.045em;margin:0}
.so-page .so-lede{font-size:17px;line-height:1.72;color:var(--so-muted);max-width:680px}
.so-page .so-body{font-size:15px;line-height:1.72;color:var(--so-muted)}
.so-kicker{display:none!important}

/* Icon system */
.so-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:currentColor}
.so-icon svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.so-icon-box{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#fff;border:1px solid var(--so-line);color:var(--so-navy);box-shadow:0 6px 16px rgba(15,23,42,.04)}
.so-icon-box .so-icon{width:21px;height:21px}
.so-icon-box.dark{background:var(--so-navy);border-color:var(--so-navy);color:#fff}
.so-icon-box.orange{background:#FFF1E7;border-color:rgba(255,138,61,.22);color:#D85D0C}
.so-icon-box.green{background:#EDF5F2;border-color:rgba(111,164,151,.24);color:#4D7E72}

/* Image harmonisation */
.so-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit;filter:saturate(.92) contrast(1.02)}
.so-media-frame{overflow:hidden;border-radius:var(--so-radius-lg);background:#DDD5CD;box-shadow:var(--so-shadow-sm)}
.so-media-portrait{aspect-ratio:4/5}
.so-media-landscape{aspect-ratio:16/10}
.so-media-wide{aspect-ratio:16/9}
.so-page img[data-so-photo="true"]{object-fit:cover;object-position:center;filter:saturate(.92) contrast(1.02)}

/* Keep controls calm and aligned */
.so-page input,.so-page select,.so-page textarea,.so-auth input,.so-auth select,.so-auth textarea{border-radius:10px!important}
.so-page button,.so-auth button{border-radius:10px}
.so-page .btn,.so-page .button,.so-auth .btn,.so-auth .button{border-radius:10px!important}

/* Homepage refinements */
body.so-page .hero h1{font-size:clamp(54px,6.6vw,88px)!important;line-height:.94!important;letter-spacing:-.065em!important}
body.so-page .section-head h2{font-size:clamp(38px,4.7vw,58px)!important;line-height:1.03!important;letter-spacing:-.05em!important}
body.so-page .hero-lede,body.so-page .section-head p{font-size:15px!important;line-height:1.72!important}
body.so-page .hero-photo{border-radius:24px!important}
body.so-page .story-photo{overflow:hidden}
body.so-page .story-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.02)}
body.so-page .step-icon,body.so-page .resource .icon,body.so-page .partner-icon{font-size:0!important;display:grid!important;place-items:center!important}
body.so-page .step-icon .so-icon,body.so-page .resource .icon .so-icon,body.so-page .partner-icon .so-icon{width:21px;height:21px;font-size:initial}
body.so-page .feature-card,body.so-page .step,body.so-page .resource,body.so-page .partner-card{border-radius:16px!important}
body.so-page .hero-note{font-size:11px!important}
body.so-page .hero-actions,body.so-page .partner-actions,body.so-page .genius-actions,body.so-page .final-actions{gap:10px!important}

/* Responsive */
@media (max-width:1050px){
  .so-nav{display:none}.so-menu-button{display:inline-flex}.so-header-row{display:flex;gap:14px}.so-brand{margin-right:auto}.so-nav-actions .so-link-button{display:none}
}
@media (max-width:720px){
  .so-container{width:min(100% - 28px,var(--so-max))}
  .so-header-row{height:66px}
  .so-brand-copy small{display:none}
  .so-nav-actions>.so-button{display:none}
  .so-mobile-menu.open{display:block}
  .so-mobile-actions{grid-template-columns:1fr}
  .so-page .so-display{font-size:clamp(44px,13vw,64px)}
  .so-page .so-title{font-size:clamp(34px,10vw,48px)}
}
/* Hide legacy headers once the unified header is present. */
body[data-so-page="index"]>.announcement,
body[data-so-page="index"]>.site-header,
body[data-so-page="academy"]>.nav-shell,
body[data-so-page="migenius"]>.nav-shell,
body[data-so-page="partners"]>.nav-shell,
body[data-so-page="web-link"] .brandbar,
body[data-so-page="signup"] .top,
body[data-so-page="legal"] .wrap>.nav{display:none!important}
body[data-so-page="login"] .auth-shell{min-height:calc(100vh - 68px)!important}
/* Interior-page harmonisation */
body[data-so-page="academy"] .hero,
body[data-so-page="migenius"] .hero{min-height:auto!important;padding:82px 0 76px!important}
body[data-so-page="academy"] .hero h1,
body[data-so-page="migenius"] .hero h1,
body[data-so-page="legal"] .hero h1{font-size:clamp(50px,6.2vw,82px)!important;line-height:.96!important;letter-spacing:-.064em!important}
body[data-so-page="academy"] .loop h2,
body[data-so-page="academy"] .apply-copy h2,
body[data-so-page="academy"] .workspace-copy h2,
body[data-so-page="academy"] .cta h2,
body[data-so-page="migenius"] .statement h2,
body[data-so-page="migenius"] .cap-sticky h2,
body[data-so-page="migenius"] .story-copy h2,
body[data-so-page="migenius"] .cta h2,
body[data-so-page="legal"] .contact h2{font-size:clamp(38px,4.7vw,58px)!important;line-height:1.02!important;letter-spacing:-.052em!important}
body[data-so-page="academy"] .hero-photo,
body[data-so-page="academy"] .who-photo,
body[data-so-page="migenius"] .story-photo,
body[data-so-page="migenius"] .cta-visual{border-radius:24px!important}
body[data-so-page="academy"] .hero-photo img,
body[data-so-page="academy"] .who-photo img,
body[data-so-page="migenius"] .story-photo img,
body[data-so-page="migenius"] .cta-visual img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.92) contrast(1.02)}
body[data-so-page="migenius"] .float-btn,
body[data-so-page="migenius"] .float-chat{display:none!important}
body[data-so-page="web-link"]>.top-band{display:none!important}
body[data-so-page="academy"] .eyebrow,
body[data-so-page="migenius"] .eyebrow,
body[data-so-page="legal"] .eyebrow{font-size:11px!important;letter-spacing:.11em!important}
@media(max-width:720px){
  body[data-so-page="academy"] .hero,
  body[data-so-page="migenius"] .hero{padding:58px 0 64px!important}
  body[data-so-page="academy"] .hero h1,
  body[data-so-page="migenius"] .hero h1,
  body[data-so-page="legal"] .hero h1{font-size:clamp(44px,13vw,62px)!important}
}
body[data-so-page="academy"] .path-icon,
body[data-so-page="academy"] .audience-icon{display:grid!important;place-items:center!important;font-size:0!important}
body[data-so-page="academy"] .path-icon .so-icon,
body[data-so-page="academy"] .audience-icon .so-icon{width:21px;height:21px}
body[data-so-page="migenius"] .mini-mark{display:grid!important;place-items:center!important;font-size:0!important}
body[data-so-page="migenius"] .mini-mark .so-icon{width:15px;height:15px}
body[data-so-page="academy"] .course-media,
body[data-so-page="academy"] .hero-photo,
body[data-so-page="academy"] .who-photo,
body[data-so-page="migenius"] .story-photo{overflow:hidden!important}
body[data-so-page="academy"] .course-media img,
body[data-so-page="academy"] .hero-photo img,
body[data-so-page="academy"] .who-photo img,
body[data-so-page="migenius"] .story-photo img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;filter:saturate(.92) contrast(1.02)!important}
body[data-so-page="academy"] .course-media{border-radius:14px 14px 0 0!important}

/* V6 simplification */
.so-brand-copy small{display:none!important}
.so-header-row{height:68px;gap:24px}
.so-nav a{padding-inline:10px}
.so-button,.so-link-button{font-weight:650}

/* Floating support chat */
.so-support{position:fixed;right:22px;bottom:22px;z-index:1200;font-family:var(--so-font)}
.so-support-launcher{height:52px;min-width:116px;padding:0 16px 0 14px;border:0;border-radius:999px;background:var(--so-navy);color:#fff;display:flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 18px 44px rgba(15,23,42,.24);cursor:pointer;font:700 13px/1 var(--so-font);position:relative}
.so-support-launcher svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.so-support-launcher i{width:9px;height:9px;border-radius:50%;background:var(--so-green);border:2px solid var(--so-navy);position:absolute;left:30px;top:8px}
.so-support-panel{position:absolute;right:0;bottom:64px;width:min(390px,calc(100vw - 28px));height:min(620px,calc(100dvh - 110px));display:none;grid-template-rows:auto 1fr auto auto auto;background:#fff;border:1px solid var(--so-line);border-radius:20px;overflow:hidden;box-shadow:0 28px 80px rgba(15,23,42,.22);transform-origin:bottom right}
.so-support-panel.open{display:grid;animation:soChatIn .18s ease-out}
.so-support-panel.expanded{width:min(760px,calc(100vw - 44px));height:min(760px,calc(100dvh - 70px))}
@keyframes soChatIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
.so-support-head{height:72px;padding:0 16px;display:flex;align-items:center;gap:11px;background:var(--so-navy);color:#fff}
.so-support-avatar{width:38px;height:38px;border-radius:12px;background:var(--so-orange);color:var(--so-navy);display:grid;place-items:center;font-size:14px;font-weight:800;flex:0 0 auto}
.so-support-head>div:nth-child(2){min-width:0;flex:1}.so-support-head strong{display:block;font-size:13px;letter-spacing:-.01em}.so-support-head span{display:flex;align-items:center;gap:6px;margin-top:3px;color:rgba(255,255,255,.68);font-size:10px}.so-support-head span i{width:6px;height:6px;border-radius:50%;background:var(--so-green)}
.so-support-head-actions{display:flex!important;gap:4px;flex:0 0 auto!important}.so-support-head-actions button{width:32px;height:32px;border:0;border-radius:8px;background:rgba(255,255,255,.08);color:#fff;font:600 17px/1 var(--so-font);cursor:pointer}
.so-support-messages{padding:18px 16px;overflow:auto;background:#FAF9F7;display:flex;flex-direction:column;gap:13px}
.so-chat-row{display:flex;align-items:flex-end;gap:8px;max-width:91%}.so-chat-row.user{align-self:flex-end;justify-content:flex-end}.so-chat-row.bot{align-self:flex-start}.so-chat-avatar{width:28px;height:28px;border-radius:9px;background:#EDF5F2;color:#4D7E72;display:grid;place-items:center;font-size:10px;font-weight:800;flex:0 0 auto}
.so-chat-bubble{padding:11px 13px;border-radius:15px;background:#fff;border:1px solid rgba(15,23,42,.09);box-shadow:0 4px 14px rgba(15,23,42,.04);color:var(--so-navy);font-size:12px;line-height:1.55}.so-chat-row.user .so-chat-bubble{background:var(--so-navy);color:#fff;border-color:var(--so-navy);border-bottom-right-radius:5px}.so-chat-row.bot .so-chat-bubble{border-bottom-left-radius:5px}.so-chat-bubble strong{display:block;margin-bottom:4px;font-size:12px}.so-chat-bubble p{margin:0}.so-chat-bubble a{color:#D85D0C;font-weight:700;text-decoration:none}.so-chat-row.user .so-chat-bubble a{color:#fff}
.so-support-quick{padding:9px 12px 0;display:flex;gap:6px;overflow-x:auto;background:#fff}.so-support-quick button{border:1px solid var(--so-line);background:#fff;color:#525C6B;border-radius:999px;padding:7px 10px;white-space:nowrap;font:650 10px/1 var(--so-font);cursor:pointer}.so-support-quick button:hover{border-color:var(--so-navy);color:var(--so-navy)}
.so-support-compose{margin:10px 12px 8px;padding:7px 7px 7px 12px;border:1px solid var(--so-line-strong);border-radius:14px;display:flex;align-items:flex-end;gap:8px;background:#fff}.so-support-compose:focus-within{border-color:rgba(15,23,42,.38);box-shadow:0 0 0 3px rgba(15,23,42,.04)}.so-support-compose textarea{flex:1;border:0!important;outline:0;resize:none;min-height:34px;max-height:92px;padding:7px 0;background:transparent;color:var(--so-navy);font:500 12px/1.45 var(--so-font)}.so-support-compose button{width:36px;height:36px;border:0;border-radius:10px;background:var(--so-orange);color:var(--so-navy);display:grid;place-items:center;cursor:pointer;flex:0 0 auto}.so-support-compose button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.so-support-foot{text-align:center;padding:0 10px 10px;color:#98A0AA;font-size:9px;background:#fff}
@media(max-width:720px){.so-support{right:14px;bottom:14px}.so-support-launcher{min-width:52px;width:52px;padding:0}.so-support-launcher span{display:none}.so-support-launcher i{left:28px;top:7px}.so-support-panel,.so-support-panel.expanded{position:fixed;inset:0;width:100vw;height:100dvh;border:0;border-radius:0}.so-support-head{height:68px}.so-support-head-actions [data-so-support-expand]{display:none}}

/* Final polish: no decorative green-dot labels or notification dots on public surfaces. */
.so-support-launcher>i{display:none!important}.so-support-head span i{display:none!important}

/* Kicker labels were removed in V7; headings now start cleanly. */
body.so-page .hero h1,body.so-page .banner-copy h1{margin-top:0!important}
