/* N40: mobile marketplace landing. All custom rules belong to this page. */
.n40-main { background:#f7f5f1; color:#373642; font-size:17px; line-height:1.65; }
.n40-shell { width:100%; max-width:1320px; padding:0 15px; margin:auto; }
.n40-main p { margin:0 0 18px; }
.n40-main h1,.n40-main h2,.n40-main h3 { color:#272631; font-weight:600; letter-spacing:-.03em; }
.n40-main h1 { font-size:clamp(34px,3.55vw,52px); line-height:1.12; margin:16px 0 24px; }
.n40-main h2 { font-size:clamp(28px,2.7vw,40px); line-height:1.2; margin:12px 0 28px; }
.n40-main h3 { font-size:22px; line-height:1.3; margin:0 0 14px; }
.n40-main figure { margin:0; }
.n40-main a { color:#5843bd; }
.n40-main a:focus-visible { outline:3px solid #4e35bd; outline-offset:5px; }
.n40-main section { scroll-margin-top:30px; }
.n40-main .n40-kicker { font-size:13px; font-weight:600; line-height:1.6; letter-spacing:.05em; text-transform:uppercase; color:#60576f; margin:0; }
.n40-crumb { padding:18px 0 0; margin:0 0 28px; }
.n40-hero { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:center; padding:18px 0 46px; }
.n40-main .n40-lead { font-size:20px; line-height:1.6; }
.n40-main .n40-button { display:inline-flex; align-items:center; justify-content:space-between; gap:22px; min-height:56px; padding:16px 22px; border-radius:14px; color:#fff; background:#5843bd; text-decoration:none; font-weight:600; font-size:16px; line-height:1.4; transition:background .2s; }
.n40-main .n40-button:hover { background:#44329d; }
.n40-button span { font-size:22px; flex-shrink:0; }
.n40-main .n40-note { font-size:14px; line-height:1.65; margin:14px 0 0; color:#60576f; }
.n40-proof { border-left:3px solid #b39add; padding:0 0 0 18px; margin-top:28px; }
.n40-proof span { font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:#60576f; }
.n40-main .n40-proof p { font-size:15px; margin:6px 0 0; }
.n40-hero-media picture { border-radius:30px; overflow:hidden; }
.n40-hero-media img { width:100%; height:auto; }
.n40-main figcaption { font-size:14px; line-height:1.55; color:#60576f; margin-top:14px; }
.n40-hero-media figcaption { padding:0 8px; }
.n40-hero-media figcaption span { display:block; font-size:12px; margin-top:4px; }
.n40-jump { display:flex; flex-wrap:wrap; gap:12px 28px; padding:22px 0; border-block:1px solid #ded8e6; }
.n40-jump a { font-size:14px; line-height:1.5; text-decoration:none; font-weight:500; padding:5px 0; }
.n40-jump a:hover { text-decoration:underline; }
.n40-section { padding:68px 0; border-bottom:1px solid #ded8e6; }
.n40-heading-row { display:grid; grid-template-columns:1.15fr 1fr; gap:50px; align-items:end; margin-bottom:28px; }
.n40-heading-row h2 { margin-bottom:0; }
.n40-main .n40-heading-row>p { margin-bottom:3px; }
.n40-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; padding:0; margin:34px 0 30px; list-style:none; }
.n40-flow li { padding:28px; background:#fff; border-radius:22px; }
.n40-flow p { margin-bottom:0; }
.n40-step-no { display:flex; width:44px; height:44px; align-items:center; justify-content:center; background:#eee8fa; color:#5843bd; border-radius:14px; font-size:14px; font-weight:600; margin-bottom:24px; }
.n40-exception { display:grid; grid-template-columns:.8fr 1.2fr; gap:40px; padding:24px 0 0; border-top:1px solid #ded8e6; }
.n40-main .n40-exception h3 { font-size:20px; }
.n40-main .n40-exception p { margin-bottom:0; }
.n40-role-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin:36px 0; }
.n40-role-grid article { border-top:3px solid #c3b4e0; padding-top:20px; }
.n40-role-grid span { display:block; color:#5843bd; font-size:14px; font-weight:600; margin-bottom:12px; }
.n40-role-grid p { margin-bottom:0; }
.n40-moderation { display:grid; grid-template-columns:1fr 1fr; gap:50px; padding:32px; background:#eee9f6; border-radius:22px; }
.n40-main .n40-moderation h3 { font-size:20px; }
.n40-main .n40-text-link { font-size:15px; font-weight:600; text-underline-offset:4px; }
.n40-scope-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:34px; }
.n40-main ul { padding-left:22px; margin:18px 0; }
.n40-main li { margin-bottom:10px; }
.n40-main li::marker { color:#765ee2; }
.n40-server { background:#e9e1d9; padding:30px; border-radius:22px; }
.n40-server .n40-kicker { margin-bottom:14px; }
.n40-main .n40-server p:last-child { margin-bottom:0; }
.n40-main .n40-scope-note { font-size:14px; margin:28px 0 0; color:#60576f; }
.n40-case { display:grid; grid-template-columns:1fr 1fr; gap:42px; align-items:center; }
.n40-case figure img { width:100%; border-radius:22px; }
.n40-case figure a { display:block; }
.n40-estimate-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:36px 0; }
.n40-estimate-list>div { border-top:1px solid #bbaed0; padding-top:20px; }
.n40-estimate-list h3 { font-size:20px; }
.n40-estimate-list p { margin-bottom:0; }
.n40-work { display:grid; grid-template-columns:.65fr 1.35fr; gap:40px; margin-top:42px; }
.n40-work ol { margin:0; padding-left:24px; }
.n40-work li { padding-left:6px; }
.n40-acceptance { padding:30px; margin-top:36px; border:1px solid #cdbfe0; border-radius:22px; background:#fff; }
.n40-main .n40-acceptance ul { margin-bottom:0; }
.n40-faq-section { display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; border-bottom:0; }
.n40-main .commercial-faq { margin:0; }
.n40-final { display:grid; grid-template-columns:1.25fr .75fr; gap:52px; padding:42px; margin:12px 0 34px; background:#e8e1f2; border-radius:30px; }
.n40-final h2 { margin-top:14px; }
.n40-final aside { border-left:1px solid #c6b7da; padding-left:32px; }
.n40-final aside h3 { font-size:20px; margin-top:8px; }
.n40-final aside a { display:block; font-size:15px; margin:14px 0; overflow-wrap:anywhere; }
.n40-related { display:flex; flex-wrap:wrap; gap:14px 28px; padding:0 0 42px; }
.n40-related a { font-size:14px; line-height:1.6; }
@media(max-width:1024px) {
 .n40-hero { gap:28px; grid-template-columns:1.05fr 1fr; }
 .n40-main h1 { font-size:38px; }
 .n40-flow li { padding:22px; }
 .n40-heading-row { gap:30px; }
}
@media(max-width:767px) {
 .n40-main { font-size:16px; }
 .n40-crumb { margin-bottom:22px; }
 .n40-hero { grid-template-columns:1fr; gap:28px; padding:0 0 30px; }
 .n40-main h1 { font-size:clamp(32px,7vw,42px); margin-top:14px; }
 .n40-main h2 { font-size:29px; }
 .n40-main h2 br { display:none; }
 .n40-main h3 { font-size:21px; }
 .n40-main .n40-lead { font-size:18px; }
 .n40-hero-media { max-width:600px; }
 .n40-proof { margin-top:24px; }
 .n40-section { padding:44px 0; }
 .n40-heading-row,.n40-case,.n40-scope-grid,.n40-moderation,.n40-work,.n40-exception,.n40-faq-section { grid-template-columns:1fr; gap:24px; }
 .n40-role-grid,.n40-flow,.n40-estimate-list { grid-template-columns:1fr; gap:22px; }
 .n40-flow { margin:28px 0; }
 .n40-flow li { padding:24px; margin:0; }
 .n40-step-no { margin-bottom:18px; }
 .n40-role-grid { margin:28px 0; }
 .n40-moderation,.n40-server,.n40-acceptance { padding:24px; }
 .n40-final { grid-template-columns:1fr; padding:28px 24px; gap:28px; margin-top:0; }
 .n40-final aside { border-left:0; border-top:1px solid #c6b7da; padding:24px 0 0; }
 .n40-final h2 { font-size:28px; }
 .n40-jump { gap:10px 20px; padding:18px 0; }
 .n40-main .n40-button { gap:14px; padding:16px 18px; font-size:15px; }
}
@media(max-width:359px) {
 .n40-main h1 { font-size:32px; }
 .n40-main h2 { font-size:27px; }
 .n40-main .n40-button { width:100%; }
 .n40-main .n40-kicker { font-size:12px; }
 .n40-flow li,.n40-moderation,.n40-server,.n40-acceptance,.n40-final { padding:22px; }
}
