.portals { padding-bottom: 4rem; }
.portals h1 { margin-bottom: 1rem; }
.portals__lead { max-width: 70ch; font-size: 1.15rem; }
.portals__note { color: #49586a; margin-bottom: 2rem; }
.portals__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.portal-card { position: relative; display: flex; flex-direction: column; border: 1px solid #d5dde5; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 2px 6px #142e4710; }
.portal-card:hover, .portal-card:focus-within { border-color: #176b8a; box-shadow: 0 5px 18px #142e4724; }
.portal-card__visual { height: 180px; padding: 1.25rem; display: flex; align-items: center; justify-content: center; background: #edf3f5; border-bottom: 1px solid #e1e7eb; }
.portal-card__visual img { display: block; width: 100%; height: 100%; object-fit: contain; }
.portal-card__visual > svg { width: 64px; height: 64px; color: #176b8a; }
.portal-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem; }
.portal-card h2 { font-size: 1.25rem; line-height: 1.4; margin: 0 0 .75rem; }
.portal-card h2 a { color: #153e5a; text-decoration: none; }
.portal-card h2 a::after { content: ''; position: absolute; inset: 0; }
.portal-card h2 a:focus-visible { outline: 3px solid #176b8a; outline-offset: 4px; }
.portal-card p { margin: 0 0 1rem; color: #35465a; }
.portal-card__domain { margin-top: auto; overflow-wrap: anywhere; color: #526272; font-size: .85rem; }
.portal-card__cta { display: flex; align-items: center; gap: .5rem; margin-top: 1rem; color: #176b8a; font-weight: 700; }
.portal-card__cta svg { width: 1.1em; height: 1.1em; }
@media (max-width: 960px) { .portals__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .portals__grid { grid-template-columns: minmax(0, 1fr); } }
