/* Facility profile: shared AnimalisPro profile family and existing theme tokens. */
.fp-page .fp-cover > img { aspect-ratio:3/2;object-fit:contain;background:var(--bg-secondary); }
.fp-cover-empty { min-height:15rem;aspect-ratio:3/2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--text-muted);background:var(--grad-soft); }
.fp-cover-empty > i { font-size:2rem;color:var(--accent-soft); }
.fp-cover-empty > span { color:var(--text-main);font-weight:600; }
.fp-intro-description { display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--text-muted);margin-bottom:.4rem; }
.fp-description { white-space:normal;overflow-wrap:anywhere; }
.fp-stats { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem; }
.fp-page .fp-stat { display:flex;flex-direction:row;align-items:center;gap:.8rem;padding:1rem; }
.fp-stat > i { color:var(--accent-primary);font-size:1.5rem; }
.fp-stat strong,.fp-stat span { display:block; }
.fp-stat strong { font-size:1.5rem;line-height:1.2; }
.fp-stat span { font-size:.8rem;color:var(--text-muted); }
.fp-overview { display:grid;gap:1rem;align-items:start; }
.fp-overview > *, .fp-overview-animals,.fp-animal,.fp-contact dd { min-width:0; }
.fp-section-heading { display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap; }
.fp-contact dd { overflow-wrap:anywhere; }
.fp-page .pp-definition > div { grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); }
.fp-dogs,.fp-litters { display:grid;grid-template-columns:minmax(0,1fr);gap:.85rem; }
.fp-page .fp-animal { border-radius:var(--radius-sm);overflow:hidden;background:var(--glass-bg);height:100%; }
.fp-animal-image { display:block;overflow:hidden; }
.fp-animal-image img { display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover; }
.fp-animal h3 { font-size:1rem;overflow-wrap:anywhere; }
.fp-animal p { margin-bottom:.5rem; }
.fp-animal .card-body { padding:.85rem; }
.fp-animal .btn { min-height:2.4rem; }
.fp-empty { text-align:center;padding:1.25rem;color:var(--text-muted); }
.fp-empty > i { font-size:1.75rem;display:block;color:var(--accent-primary);margin-bottom:.5rem; }
.fp-empty p { margin:0; }
.fp-filters { display:flex;gap:.75rem;align-items:end;flex-wrap:wrap;margin-bottom:1rem; }
.fp-filters > label { flex:1 1 9rem;font-size:.8rem;color:var(--text-muted); }
.fp-filters .form-select { margin-top:.35rem;background-color:var(--bg-secondary);color:var(--text-main);border-color:var(--glass-border-h); }
.fp-filters .fp-stud-filter { flex:0 1 auto;align-self:center; }
.fp-dogs-list,.fp-dogs-accordion { grid-template-columns:minmax(0,1fr)!important; }
.fp-dogs-list .fp-animal { display:grid;grid-template-columns:5rem minmax(0,1fr); }
.fp-dogs-list .fp-animal-image img { height:100%;min-height:7rem; }
.fp-page .accordion-button,.fp-page .accordion-body { background:var(--bg-secondary);color:var(--text-main); }
.fp-page .accordion-button { padding:.85rem 1rem;font-size:1rem; }
.fp-page .accordion-button::after { filter:brightness(0) invert(1); }
.fp-dogs-accordion .fp-animal-image { max-width:12rem; }
@media(min-width:576px) {
 .fp-dogs,.fp-litters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:992px) {
 .fp-dogs-grid3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .fp-dogs-grid4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .fp-overview { grid-template-columns:minmax(0,1fr) minmax(0,1.8fr); }
 .fp-contact-card { grid-column:1;grid-row:2; }
 .fp-overview-animals { grid-column:2;grid-row:1 / span 2; }
 .fp-page .pp-hero { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }
}
@media(max-width:575px) {
 .fp-stats { gap:.4rem; }
 .fp-page .fp-stat { padding:.7rem .4rem;gap:.3rem;flex-direction:column;align-items:flex-start; }
 .fp-stat strong { font-size:1.2rem; }
 .fp-stat span { font-size:.7rem;overflow-wrap:anywhere; }
 .fp-page .card-body { padding:1rem; }
}
.fp-cover-failed { min-height:15rem;display:grid;place-items:center;color:var(--accent-primary); }
.fp-cover-failed > i { font-size:2rem; }
@media(min-width:992px) { .fp-overview { grid-template-rows:min-content 1fr; } }
.fp-cover-empty { aspect-ratio:auto; }
@media(max-width:575px) { .fp-cover-empty { min-height:12rem; } }
.fp-cover-failed > img { display:none!important; }
