/* CPI Annunci: the site's custom CSS for the onOffice classes (.oo-*) still applies; these rules only add what is new. */
.cpi-annunci .oo-listframe{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.cpi-annunci .oo-listimage{display:block;aspect-ratio:4/3;overflow:hidden;background:#f3f4f6}
.cpi-annunci .oo-listimage img{width:100%;height:100%;object-fit:cover;display:block}
.cpi-annunci .cpi-noimage{display:flex;height:100%;align-items:center;justify-content:center;color:#6b7280}
.cpi-annunci .oo-listinfotableview{display:grid;grid-template-columns:auto 1fr;column-gap:12px}
.cpi-annunci .oo-searchformfieldwrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;align-items:end;margin-bottom:24px}
.cpi-annunci .oo-searchformfield label{display:flex;flex-direction:column;gap:4px}
.cpi-pagination{display:flex;gap:8px;justify-content:center;margin:28px 0}
.cpi-pagination .cpi-page{padding:6px 12px;border-radius:999px;border:1px solid #d1d5db;text-decoration:none}
.cpi-pagination .cpi-current{background:#004d65;color:#fff;border-color:#004d65}
.oo-detailview.cpi-detail .oo-details-main{display:block}
.oo-detailview.cpi-detail .cpi-gallery-wrap{position:relative}
.oo-detailview.cpi-detail #oo-galleryslide{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory;scrollbar-width:none}
.oo-detailview.cpi-detail #oo-galleryslide .oo-detailspicture{flex:0 0 100%;scroll-snap-align:start}
.cpi-gallery-prev,.cpi-gallery-next{position:absolute;top:50%;transform:translateY(-50%);border:0;border-radius:999px;width:40px;height:40px;background:rgba(15,23,42,.55);color:#fff;font-size:24px;cursor:pointer}
.cpi-gallery-prev{left:12px}.cpi-gallery-next{right:12px}
.oo-detailview.cpi-detail .oo-detailstable{display:grid;grid-template-columns:minmax(160px,auto) 1fr;gap:6px 16px}
.cpi-map iframe{width:100%;height:320px;border:0;border-radius:12px}
.cpi-contact form p{margin:0 0 12px}.cpi-contact label{display:flex;flex-direction:column;gap:4px}
.cpi-contact .cpi-privacy label{flex-direction:row;align-items:flex-start;gap:8px;font-size:13px}
.cpi-contact input[type=text],.cpi-contact input[type=email],.cpi-contact input[type=tel],.cpi-contact textarea{width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:12px;padding:9px 12px}
.cpi-error{color:#b91c1c}.cpi-success{color:#065f46}
.cpi-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
