/* Our Partners: logo wall */
.partners-section { background: linear-gradient(180deg, var(--ato-bg), #fff 70%); }
.partners-section .section-head { max-width: 720px; margin: 0 auto 46px; text-align: center; }
.partners-section .section-head p { color: var(--ato-muted); margin: 0; }
.plogo-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 26px; max-width: 1120px; margin: 0 auto; }
.plogo-card { position: relative; flex: 0 1 calc((100% - 52px) / 3); display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ato-line); border-radius: 20px; overflow: hidden; color: inherit; text-decoration: none; box-shadow: var(--ato-shadow); transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.plogo-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, var(--ato-mint), var(--ato-yellow)); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; z-index: 1; }
.plogo-media { display: flex; align-items: center; justify-content: center; height: 190px; padding: 30px 36px; background: #fff; }
.plogo-media img { width: auto; height: auto; max-width: 100%; max-height: 120px; object-fit: contain; transition: transform .35s ease; }
.plogo-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 20px 18px; border-top: 1px solid var(--ato-line); background: #fff; }
.plogo-meta { display: flex; flex-direction: column; min-width: 0; }
.plogo-meta strong { font-family: var(--ato-font-head); font-weight: 800; font-size: 1.02rem; color: var(--ato-ink); line-height: 1.25; }
.plogo-meta em { font-style: normal; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ato-700); margin-top: 3px; }
.plogo-go { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ato-bg); color: var(--ato-800); border: 1px solid var(--ato-line); transition: background .25s ease, color .25s ease, transform .25s ease, border-color .25s ease; }
.plogo-go svg { width: 18px; height: 18px; }
a.plogo-card:hover, a.plogo-card:focus-visible { transform: translateY(-6px); box-shadow: var(--ato-shadow-lg); border-color: rgba(6,214,160,.55); color: inherit; }
a.plogo-card:hover::before, a.plogo-card:focus-visible::before { transform: scaleX(1); }
a.plogo-card:hover .plogo-media img, a.plogo-card:focus-visible .plogo-media img { transform: scale(1.04); }
a.plogo-card:hover .plogo-go, a.plogo-card:focus-visible .plogo-go { background: var(--ato-mint); border-color: var(--ato-mint); color: var(--ato-950); transform: rotate(45deg); }
a.plogo-card:focus-visible { outline: 3px solid var(--ato-mint); outline-offset: 3px; }
@media (max-width: 980px) { .plogo-card { flex-basis: calc((100% - 26px) / 2); } }
@media (max-width: 600px) { .plogo-grid { gap: 18px; } .plogo-card { flex-basis: 100%; } .plogo-media { height: 160px; padding: 24px 28px; } .plogo-media img { max-height: 100px; } }
@media (prefers-reduced-motion: reduce) { .plogo-card, .plogo-card::before, .plogo-media img, .plogo-go { transition: none; } }