/* Présentation publique commune aux produits, locations et services. */
.catalog-grid { padding-top: 2rem; padding-bottom: 3rem; }
.catalog-column { display: flex; margin-bottom: 1.75rem; }
/* Avec un seul ou deux résultats (pas trois), la grille est centrée plutôt
   que collée à gauche: plus équilibré visuellement. */
.catalog-grid .row:has(> .catalog-column:only-child),
.catalog-grid .row:has(> .catalog-column:first-child:nth-last-child(2)) {
    justify-content: center;
}
a.catalog-card {
    display: flex; flex-direction: column; width: 100%; overflow: hidden;
    border: 1px solid #e5e7e9; border-radius: 12px; background: #fff;
    color: #252a2e; text-decoration: none; box-shadow: 0 3px 12px rgba(25,35,40,.04);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.catalog-card:hover { color: #252a2e; text-decoration: none; border-color: var(--gold, #fcb715); box-shadow: 0 9px 24px rgba(25,35,40,.10); transform: translateY(-3px); }
a.catalog-card:focus-visible { outline: 3px solid var(--gold, #fcb715); outline-offset: 4px; }
.catalog-card-media { aspect-ratio: 4 / 3; background: #f4f5f5; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.catalog-card-media img { width: 100%; height: 100%; object-fit: cover; }
.catalog-placeholder { color: #747c82; font-size: .9rem; }
.catalog-card-body { display: flex; flex-direction: column; flex: 1; padding: 1.35rem; }
.catalog-card h2 { margin: 0 0 .55rem; font: 700 1.25rem/1.3 'Montserrat', sans-serif; }
.catalog-card-description { color: #60686d; font-size: .95rem; line-height: 1.6; margin: 0 0 1.25rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.catalog-card-footer { margin-top: auto; }
.catalog-price { color: var(--green, #169998); font-weight: 700; font-size: 1.2rem; margin-bottom: .8rem; }
.catalog-card-action { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #eceeef; padding-top: .9rem; color: #353c41; font-size: .85rem; font-weight: 600; }
section.content.catalog-detail { text-align: left; padding: 2.5rem 0 4rem; }
.catalog-back { display: inline-block; color: #60686d; font-size: .9rem; margin-bottom: 2rem; }
.catalog-detail-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 3rem; align-items: start; }
.catalog-gallery { min-width: 0; }
.catalog-main-photo { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; border-radius: 12px; background: #f5f6f6; border: 1px solid #eceeef; }
.catalog-gallery .catalog-thumb { width: 88px; height: 70px; padding: 0; margin: .75rem .5rem 0 0; border: 1px solid #e2e5e7; border-radius: 6px; background: #f5f6f6; overflow: hidden; cursor: pointer; }
.catalog-thumb img { width: 100%; height: 100%; object-fit: cover; }
.catalog-main-trigger { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; border-radius: 12px; }
.catalog-gallery button:focus-visible { outline: 3px solid var(--gold, #fcb715); outline-offset: 3px; }
.catalog-detail .catalog-kind { font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #737b80; margin-bottom: .75rem; }
.catalog-detail .catalog-title { font: 700 clamp(1.65rem, 3vw, 2.35rem)/1.2 'Montserrat', sans-serif; margin: 0 0 1.25rem; overflow-wrap: anywhere; }
.catalog-description { color: #525b61; font-size: 1rem; line-height: 1.8; margin-bottom: 1.5rem; overflow-wrap: anywhere; }
.catalog-detail .catalog-price { font-size: 1.5rem; margin: 0 0 1.5rem; }
.catalog-resources { margin: 0 0 1.75rem; display: grid; gap: .75rem; }
.catalog-resources a { display: flex; align-items: center; gap: .65rem; padding: .9rem 1.1rem; border: 1px solid #e0e2e4; border-radius: 10px; background: #fbfbfa; color: #252a2e; font-weight: 600; font-size: .95rem; text-decoration: none; overflow-wrap: anywhere; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.catalog-resources a:hover { border-color: var(--gold, #fcb715); box-shadow: 0 6px 16px rgba(25,35,40,.08); transform: translateY(-2px); }
.catalog-resources a:focus-visible { outline: 3px solid var(--gold, #fcb715); outline-offset: 3px; }
.catalog-resources i { color: var(--green, #169998); font-size: 1.15rem; }
.catalog-resources a span { margin-left: auto; color: #9aa1a5; font-weight: 400; }
a.catalog-contact { display: inline-flex; align-items: center; justify-content: center; padding: .55rem 1rem; border-radius: 7px; border: 1px solid #d5d8da; background: transparent; color: #414b52; font-weight: 600; font-size: .85rem; text-decoration: none; transition: background .18s ease, border-color .18s ease, color .18s ease; }
a.catalog-contact:hover { background: #f5f6f6; border-color: #a7abae; color: #252a2e; }
@media (max-width: 767.98px) {
    .catalog-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
    section.content.catalog-detail { padding-top: 1.5rem; }
    .catalog-back { margin-bottom: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    a.catalog-card, a.catalog-contact { transition: none; }
    a.catalog-card:hover { transform: none; }
}
