/* Portal catalog: static presentation only; logos are served by Realgest. */
.portal-catalog { margin-block: 44px 52px; padding-block: 32px; border-block: 1px solid #cbd8c5; }
.legacy-copy .portal-catalog h2 { margin-top: 0; }
.portal-catalog-intro { max-width: 840px; }
.portal-group-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; margin-block: 32px 18px; }
.legacy-copy .portal-group-heading h3 { margin: 0; }
.portal-group-heading > a { font-size: calc(15px * var(--text-scale, 1)); font-weight: 700; min-height: 44px; display: inline-flex; align-items: center; gap: 10px; }
.legacy-copy .portal-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 0; margin-block: 18px 32px; list-style: none; }
.legacy-copy .portal-grid-dedicated { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.legacy-copy .portal-grid > li { margin: 0; min-width: 0; }
.legacy-page .portal-card:not(.button) { display: flex; flex-direction: column; height: 100%; padding: 22px 20px 14px; border: 1px solid #d5dfd0; border-radius: 4px; color: #182136; text-decoration: none; background: #fff; transition: border-color .15s, background-color .15s; }
.portal-logo { display: flex; align-items: center; justify-content: center; height: 100px; }
.portal-logo img { display: block; width: auto; height: auto; max-width: 100%; max-height: 78px; object-fit: contain; }
.portal-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; margin-top: 12px; font-size: calc(15px * var(--text-scale, 1)); line-height: 1.4; font-weight: 700; }
.portal-label > span:last-child { color: #49623c; flex-shrink: 0; }
.legacy-page .portal-grid-dedicated .portal-card { padding: 28px 28px 16px; background: #f5f8f2; border-color: #bccfb1; }
.portal-grid-dedicated .portal-logo { height: 142px; }
.portal-grid-dedicated .portal-logo img { max-width: min(100%, 320px); max-height: 130px; }
.portal-grid-dedicated .portal-label { font-size: calc(18px * var(--text-scale, 1)); }
.legacy-page .portal-card:hover { border-color: #397322; background: #f1f6ee; }
.portal-card:hover .portal-label > span:first-child { text-decoration: underline; text-underline-offset: 4px; }
.portal-card[data-portal="lacasadimilano"] .portal-logo,
.portal-card[data-portal="bachecacase"] .portal-logo { background: #183342; border-radius: 4px; padding: 14px; }
.portal-grid-dedicated [data-portal="wikicasa"] .portal-logo img { width: 130px; height: 130px; object-fit: cover; }
.portal-card:focus-visible { outline: 3px solid #c38514; outline-offset: 4px; }
.legacy-copy .portal-catalog-note { margin-bottom: 0; font-size: calc(15px * var(--text-scale, 1)); line-height: 1.65; }
html.accessibility-contrast .portal-catalog .portal-card { background: #000; border-color: #fff; color: #fff; }
html.accessibility-contrast .portal-label > span:last-child { color: #fff; }
@media (max-width: 980px) { .legacy-copy .portal-grid:not(.portal-grid-dedicated) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 620px) {
 .legacy-copy .portal-grid:not(.portal-grid-dedicated) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
 .legacy-copy .portal-grid-dedicated { grid-template-columns: minmax(0, 1fr); gap: 12px; }
 .legacy-page .portal-card:not(.button) { padding: 18px 12px 10px; }
 .portal-logo { height: 80px; }
 .portal-logo img { max-height: 65px; }
 .portal-label { font-size: calc(14px * var(--text-scale, 1)); gap: 5px; }
 .portal-grid-dedicated .portal-logo { height: 110px; }
 .portal-grid-dedicated [data-portal="wikicasa"] .portal-logo img { width: 100px; height: 100px; }
 .portal-grid-dedicated .portal-logo img { max-height: 100px; max-width: min(100%, 270px); }
 .portal-catalog { margin-block: 30px 36px; padding-block: 24px; }
 .portal-group-heading { margin-top: 24px; gap: 0 20px; }
}
@media (prefers-reduced-motion: reduce) { .portal-card { transition: none; } }

/* Shared reference for portals requiring their own subscription. */
.portal-note-ref { margin-inline-start: 2px; font-size: .65em; line-height: 0; vertical-align: super; }
