/* Accesos por necesidad y promociones integradas en la portada. */
.home-page .home-hero .action-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-page .home-hero p { text-align: left; hyphens: none; }
.home-needs > h2 { margin-top: 0; }
.needs-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.need-card { padding: 1.25rem; border: 1px solid var(--coop-line); border-top: 4px solid var(--coop-green); border-radius: .6rem; background: #f7f9f5; }
.need-card h3 { margin: 0 0 .7rem; }
.need-card p { color: var(--coop-muted); line-height: 1.5; }
.need-card nav { display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; }
.need-card a { display: inline-flex; align-items: center; min-height: 44px; line-height: 1.4; font-weight: 600; }
.opening-banner { display: grid; grid-template-columns: 1.5fr 1fr; align-items: center; gap: 2rem; padding: 1.75rem; margin-block: 1.5rem; background: #edf4e9; border: 1px solid #ccdcca; border-radius: .7rem; }
.opening-banner h2 { margin-top: 0; }
.opening-banner p { max-width: 60ch; }
.opening-film { min-width: 0; }
.opening-film summary { padding: .8rem; cursor: pointer; color: var(--coop-green); font-weight: 600; border: 1px solid #a9bea5; border-radius: .4rem; }
.opening-film summary:focus-visible { outline: 3px solid #c79128; outline-offset: 4px; }
.opening-film video { display: block; max-height: 420px; width: 100%; margin-top: 1rem; border-radius: .5rem; background: #103c2d; }
#departamentos { scroll-margin-top: 8rem; }
@media (max-width: 960px) { .needs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
 .opening-banner { grid-template-columns: 1fr; gap: 1rem; padding: 1.25rem; }
 .needs-grid { gap: .75rem; }
 .need-card { padding: 1rem; }
 .need-card h3 { font-size: 1.1rem; }
 .need-card a { font-size: .9rem; }
}
@media (max-width: 380px) { .needs-grid { grid-template-columns: 1fr; } }
