/* Clean look */
:root { --card-radius: 1rem; }

.card { border-radius: var(--card-radius); overflow: hidden; }
.card-img-top { height: 180px; object-fit: cover; background: #fafafa; }
.badge-pill { border-radius: 50rem; }
.company-meta { font-size: .95rem; color: #666; }

/* Polished cards */
.hover-card { transition: transform .2s ease, box-shadow .2s ease; }
.hover-card:hover { transform: translateY(-3px); box-shadow: 0 .75rem 1.25rem rgba(0,0,0,.08); }

/* Company grid uniformity */
.company-card { display:flex; flex-direction:column; }
.company-card .card-body { display:flex; flex-direction:column; }
.company-card .card-title { min-height: 1.5em; }
.company-card .text-muted { min-height: 2.5em; }

/* Image helpers */
.img-contain { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.img-cover { width: 100%; height: 100%; object-fit: cover; }
.thumb-img { width:100%; height:100%; object-fit: cover; }
.thumb-img.contain { object-fit: contain; background:#fff; }

.company-hero, .ratio img { border-radius: .75rem; }
.item-gallery .ratio { background:#fafafa; }

/* Container width */
@media (min-width: 1200px) { .container { max-width: 1100px; } }


/* Top-only rounded image frame for cards */
.thumb-frame {
  border-top-left-radius: var(--card-radius);
  border-top-right-radius: var(--card-radius);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

/* Square menu thumbnails with smart zoom */
.menu-thumb { width:100%; height:100%; object-fit: cover; transition: transform .25s ease; }
.menu-thumb.contain { object-fit: contain; background:#fff; }
.menu-thumb.zoom-landscape { transform: scale(1.12); } /* zoom in wide images slightly */
.menu-thumb.zoom-slight { transform: scale(1.05); }    /* tiny zoom for near-square */
