/* Official destinations share the directory's palette without imitating agency branding. */
.official-portals{scroll-margin-top:24px}
.official-portals .section-head p{font-size:1rem;max-width:430px}
.portal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.portal-card{--portal-accent:#286250;--portal-wash:#e8f1e8;position:relative;display:flex;flex-direction:column;min-width:0;padding:22px;background:#fff;border:1px solid #cdded4;border-radius:18px;transition:background-color .18s,border-color .18s}
.portal-card--services{--portal-accent:#29637e;--portal-wash:#e8f2f7}
.portal-card--together{--portal-accent:#505b97;--portal-wash:#edefF8}
.portal-card--consumer{--portal-accent:#8a6025;--portal-wash:#faf0dd}
.portal-card--prosecutor{--portal-accent:#505779;--portal-wash:#eceef6}
.portal-card--rais{--portal-accent:#37664e;--portal-wash:#e9f1e3}
.portal-top{display:flex;align-items:center;gap:12px;margin-bottom:17px}
.portal-icon{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;background:var(--portal-wash);color:var(--portal-accent);border-radius:12px}
.portal-domain{font-size:.75rem;color:#617569;overflow-wrap:anywhere;line-height:1.45}
.portal-card h3{font-size:1.1875rem;line-height:1.3;letter-spacing:-.035em;margin:0 0 10px;color:#153e3b}
.portal-card p{font-size:1rem;line-height:1.55;margin:0 0 20px;color:#536b60}
.portal-auth{font-size:.8125rem;line-height:1.45;color:#596e61;margin-top:auto;margin-bottom:13px}
.portal-action{display:block;border-top:1px solid #e3ebe4;padding-top:13px;color:var(--portal-accent);font-weight:800;font-size:.875rem;line-height:1.45}
.portal-card:hover{border-color:var(--portal-accent);background:#fafcf9}
.portal-card:hover .portal-action{text-decoration:underline;text-underline-offset:4px}
.portal-card:focus-visible{outline:3px solid #164d43;outline-offset:3px}
.portal-notice{font-size:.875rem;line-height:1.6;color:#536b60;margin:17px 0 0;max-width:880px}
@media(max-width:900px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.portal-grid{grid-template-columns:1fr;gap:12px}.portal-card{padding:20px}.portal-top{margin-bottom:14px}.portal-card h3{font-size:1.1875rem}.official-portals .section-head{gap:10px}.portal-notice{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){.portal-card{transition:none}}

/* Shared photographic header, matching the service and emergency panels. */
.official-banner{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:226px;padding:32px 38px;border:1px solid #52746b;border-radius:24px;overflow:hidden;background:linear-gradient(90deg,rgba(12,43,45,.97),rgba(18,63,60,.85) 48%,rgba(18,63,60,.36)),url('./assets/service-civic.png') center 58%/cover;box-shadow:0 10px 30px #153e3b18;color:#fff}
.official-banner-copy{min-width:0}
.official-banner .section-kicker{display:block;color:#d9ed94;font-size:.875rem;letter-spacing:.1em;margin-bottom:12px}
.official-banner h2{color:#fff;font-size:clamp(1.75rem,3.3vw,2.75rem);line-height:1.12;letter-spacing:-.04em;margin:0}
.official-banner p{color:#e0ece7;font-size:1rem;line-height:1.5;margin:14px 0 0;max-width:420px}
.official-brand{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:268px;padding:25px 24px;background:#fff;border:1px solid #ffffffb3;border-radius:16px;box-shadow:0 8px 30px #092d3430}
.official-brand img{display:block;width:100%;height:auto}
.official-brand:focus-visible{outline:3px solid #d9ed94;outline-offset:5px}
.official-intro{font-size:1rem;line-height:1.55;color:#536b60;margin:18px 0 22px;max-width:720px}
@media(max-width:760px){.official-banner{gap:20px;padding:26px;min-height:210px}.official-brand{width:200px;padding:21px 18px}}
@media(max-width:600px){.official-banner{flex-direction:column;align-items:flex-start;gap:18px;min-height:0;padding:23px 22px;border-radius:16px;background-position:center 58%}.official-banner .section-kicker{font-size:.8125rem;margin-bottom:10px}.official-banner h2{font-size:1.875rem}.official-banner p{font-size:1rem;margin-top:11px;max-width:290px}.official-brand{width:180px;padding:17px 18px;border-radius:11px}.official-intro{margin:15px 0 18px}}

.portal-crest{display:block;width:44px;height:51px;object-fit:contain;flex-shrink:0;border-radius:3px}

/* Frame the supplied logos without screenshot captions or surrounding fields. */
.portal-logo{display:grid;place-items:center;width:56px;height:56px;flex:0 0 56px;background:#fff;border-radius:12px;overflow:hidden}
.portal-logo-crop{display:block;position:relative;overflow:hidden;border-radius:10px}
.portal-logo-crop img{position:absolute;display:block;max-width:none;object-fit:fill}

/* Match the rounded app silhouettes so screenshot backgrounds cannot show. */
.portal-card--services .portal-logo-crop,
.portal-card--together .portal-logo-crop,
.portal-card--control .portal-logo-crop{border-radius:34%;clip-path:inset(1px round 34%)}
