.python-page [hidden]{display:none!important}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;color:#75849d;margin-bottom:28px;grid-column:1/-1}
.breadcrumbs a{color:#506582;text-decoration:none}.breadcrumbs a:hover{color:#2860ff}
.python-page .hero-copy h1{font-size:clamp(34px,3.4vw,52px);line-height:1.08}
.python-page .team-diagram{padding:0;align-self:stretch;min-width:0}
.python-system{background:linear-gradient(145deg,#fff,#edf4ff);border:1px solid #cfddfa;border-radius:18px;padding:22px;box-shadow:0 16px 45px #255cff0a}
.python-system-head{display:flex;align-items:center;gap:12px;margin-bottom:20px}.python-system-head strong{font-size:20px}.python-system-head p{margin:4px 0 0;font-size:13px;color:#667796}
.python-symbol{display:grid;place-items:center;width:52px;height:52px;background:#2860ff;border-radius:15px;color:white;font-weight:800;font-size:26px}
.system-node{border:1px solid #dae4f7;background:#fff;border-radius:10px;padding:13px 8px;text-align:center;font-size:13px}.system-core{background:#2860ff;color:white;border-color:#2860ff}.system-core b{display:block;font-size:18px}.system-core span{display:block;font-size:12px;margin-top:7px}.system-arrow{text-align:center;color:#799de6;font-size:24px;line-height:28px}.system-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.system-pair>div{padding:12px 6px;text-align:center;background:white;border:1px solid #dbe5f8;border-radius:9px;font-size:12px;font-weight:600}.system-pair small{display:block;font-size:10px;font-weight:400;margin-top:6px;color:#6a7c9c}.system-caption{text-align:center;font-size:11px;line-height:1.5;color:#7486a4;margin:15px 0 0}
.section-intro{max-width:830px;color:#617393;line-height:1.65;margin:14px 0 26px}.catalog-context{font-size:14px;color:#617393;margin:0}.python-page .catalog-filters{grid-template-columns:2fr 1fr 1.2fr}.python-page .catalog-toolbar{gap:16px;flex-wrap:wrap}
.python-page .task-art{width:100%;height:140px;object-fit:contain;margin-bottom:18px}.python-page .task-grid .card{padding:24px}
.python-tech-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.python-tech-grid .card{padding:26px;transition:transform .2s,box-shadow .2s}.python-tech-grid .card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #3157a414}.tech-number{display:inline-block;color:#2d64ff;font-size:14px;font-weight:700;margin-bottom:16px}.python-tech-grid h3{margin:0 0 12px}.python-tech-grid p{line-height:1.8;color:#647596;margin:0}.tech-cta{margin-top:24px}
.python-page .price-table{min-width:620px}.python-page .price-table td:nth-child(2){text-align:left;max-width:250px}.python-page .price-table th{white-space:normal}.python-page .price-table td{padding:15px 12px}.python-page .price-table .rate-from{white-space:nowrap}
.python-page .python-case-rail{display:block;overflow:visible}.python-page .python-case-rail>article{width:100%;max-width:none}.python-page .python-case-rail .case-card{max-width:none}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.related-grid a{text-decoration:none;color:inherit;padding:26px;transition:transform .2s,border-color .2s}.related-grid a:hover{transform:translateY(-4px);border-color:#2d64ff}.related-grid h3{color:#2860ff}.related-grid p{color:#617393;line-height:1.6}
@media(max-width:1000px){.python-page .hero-visual{gap:16px}.python-system{padding:16px}.python-page .task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.python-tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.related-grid{grid-template-columns:1fr}.python-page .catalog-filters{grid-template-columns:1fr 1fr}.python-page .catalog-filters .search-field{grid-column:1/-1}.breadcrumbs{margin-bottom:20px}.python-page .catalog-footer{flex-wrap:wrap}}
@media(max-width:520px){.python-page .hero-copy h1{font-size:36px}.python-tech-grid,.python-page .task-grid{grid-template-columns:1fr}.python-page .task-art{height:150px}.python-page .catalog-filters{grid-template-columns:1fr}.python-page .team-diagram{display:block}.python-system{margin-top:14px}.python-page .hero-visual{display:block}.python-page .mini-finder{width:100%}.python-page .catalog-toolbar{align-items:flex-start}.python-page .section-intro{font-size:16px}}
@media(prefers-reduced-motion:reduce){.python-tech-grid .card,.related-grid a{transition:none}.python-tech-grid .card:hover,.related-grid a:hover{transform:none}}

.python-page .catalog-filters{grid-template-columns:2fr 1fr 1.2fr}.python-page .catalog-filters input{width:100%;min-width:0;padding:11px;border:1px solid #dce5f6;border-radius:5px;font:inherit}.project-extra-fields{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin:16px 0}.project-extra-fields label:first-child{grid-column:1/-1}.project-extra-fields select,.project-extra-fields input{width:100%;min-width:0}.python-page .related-grid .button{margin-top:15px}.python-page #request-dialog{max-height:90vh;overflow-y:auto}.python-page .catalog-footer{gap:18px;flex-wrap:wrap}@media(max-width:760px){.python-page .catalog-filters{grid-template-columns:1fr 1fr}}@media(max-width:520px){.python-page .catalog-filters,.project-extra-fields{grid-template-columns:1fr}}

/* Compact breadcrumb spacing shared by stack pages. */
.python-page .hero{padding-top:24px}
.python-page .hero-grid{row-gap:24px}
.python-page .breadcrumbs{margin-bottom:0}
