.public-project-filters{display:grid;grid-template-columns:1fr 150px 1fr auto auto;align-items:end;margin-top:20px}.public-project-grid{align-items:stretch}.public-project-grid .galeria-item{cursor:pointer}.public-project-grid .project-hover-card{position:relative;min-height:300px;margin:0;padding:0;overflow:hidden;border-radius:0;background:#f2f2f2;box-shadow:none;border:0;transition:transform .45s cubic-bezier(.175,.885,.32,1.275),box-shadow .45s cubic-bezier(.175,.885,.32,1.275)}.public-project-grid .project-hover-card:hover,.public-project-grid .project-hover-card:focus-within,.public-project-grid .project-hover-card:focus{transform:scale(1.02);box-shadow:0 18px 34px rgba(13,35,31,.22);z-index:2}.public-project-grid .project-hover-card:focus-visible{outline:3px solid var(--cafe);outline-offset:4px}.public-project-grid .project-hover-card>img{display:block;width:100%;height:100%;min-height:300px;aspect-ratio:16/9;object-fit:cover;border-radius:0;margin:0;transition:transform .45s cubic-bezier(.175,.885,.32,1.275),filter .45s cubic-bezier(.175,.885,.32,1.275)}.public-project-grid .project-hover-card:hover>img,.public-project-grid .project-hover-card:focus-within>img,.public-project-grid .project-hover-card:focus>img{transform:scale(1.04);filter:saturate(.85) brightness(.8)}.project-card-content{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:26px;text-align:center;background:rgba(148,138,80,.88);box-sizing:border-box;opacity:0;transform:translateY(100%);transition:opacity .45s cubic-bezier(.175,.885,.32,1.275),transform .45s cubic-bezier(.175,.885,.32,1.275);overflow:auto}.project-hover-card:hover .project-card-content,.project-hover-card:focus-within .project-card-content,.project-hover-card:focus .project-card-content{opacity:1;transform:translateY(0)}.project-card-content span{color:#111310;font-size:.92rem;font-weight:700;text-transform:uppercase}.project-card-content h3{max-width:90%;margin:0;color:#111310;font-size:clamp(1.1rem,2vw,1.65rem);letter-spacing:0;text-transform:uppercase;text-shadow:none}.project-card-content p{max-width:88%;margin:0;color:#111310;font-size:1rem;font-weight:600;line-height:1.45}.project-card-content .module-actions{justify-content:center;margin-top:8px}.project-card-content .btn.secundario{background:transparent;color:#111310}.project-dialog{width:min(680px,calc(100% - 28px));border:0;border-radius:18px;padding:28px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.project-dialog::backdrop{background:rgba(13,35,31,.7)}.project-dialog img{width:100%;max-height:55vh;object-fit:contain;border-radius:12px}.contact-priority-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.contact-priority{display:flex;align-items:center;gap:14px;padding:18px;background:#fff;border:1px solid #d8e6e2;border-radius:14px;color:inherit;text-decoration:none;box-shadow:var(--sombra)}.contact-priority:hover{transform:translateY(-2px);box-shadow:var(--sombra-hover)}.contact-priority>span{font-size:2rem}.contact-priority strong,.contact-priority small{display:block}.contact-priority small{color:#627b76}.contact-priority.whatsapp{background:#eafff1;border-color:#6ac78a}.public-contact-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:20px}.contact-map iframe{width:100%;height:360px;border:0;border-radius:12px}.business-hours>div{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #d8e6e2}.business-hours .btn{margin-top:20px}.contact-form-card{margin-top:20px}.contact-form-card form{max-width:800px}.contact-fields{grid-template-columns:1fr 1fr}@media(max-width:800px){.public-project-filters{grid-template-columns:1fr 1fr}.contact-priority-grid,.public-contact-grid{grid-template-columns:1fr}}@media(max-width:500px){.public-project-filters,.contact-fields{grid-template-columns:1fr}.public-project-grid .project-hover-card{min-height:230px}.public-project-grid .project-hover-card>img{min-height:230px}.project-card-content{padding:18px}.project-card-content h3{font-size:1rem}.project-card-content p{font-size:.86rem}}
