/* Pet shops directory — live Petline.ge */
:root {
  --ps-bg: #f4f7f5;
  --ps-surface: #ffffff;
  --ps-text: #1b212d;
  --ps-muted: #345091;
  --ps-primary: #343e56;
  --ps-border: #c9d4ec;
  --ps-soft: #e6eaf2;
  --ps-radius: 14px;
  --ps-font: "Noto Sans Georgian", "Noto Sans", system-ui, sans-serif;
  --ps-wrap: min(1100px, calc(100% - 2rem));
}
* { box-sizing: border-box; }
body.ps-page { margin: 0; font-family: var(--ps-font); color: var(--ps-text); background: var(--ps-bg); line-height: 1.55; }
html, body.ps-page { overflow-x: hidden; }
.ps-wrap { width: var(--ps-wrap); margin-inline: auto; max-width: 100%; }
#ps-map, #ps-map .leaflet-container { width: 100% !important; max-width: 100%; }
.header-inner { flex-wrap: wrap; }
html[lang="ka"] [data-lang="en"], html[lang="en"] [data-lang="ka"] { display: none !important; }
.ps-page a { color: var(--ps-primary); }
.site-header { position: sticky; top: 0; z-index: 20; background: #fffffff0; backdrop-filter: blur(10px); border-bottom: 1px solid var(--ps-border); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 64px; gap: .75rem; }
.logo img { height: 44px; display: block; }
.header-actions { display: flex; gap: .5rem; align-items: center; }
.lang-select { height: 40px; border-radius: 10px; border: 1px solid var(--ps-border); background: #ffffff; padding: 0 .55rem; font: inherit; font-weight: 600; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .55rem 1rem; border-radius: 12px; border: 1px solid transparent; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.btn-primary { background: var(--ps-primary); color: #ffffff; }
.btn-secondary { background: #ffffff; color: var(--ps-text); border-color: var(--ps-border); }
.crumb { padding: 1rem 0 .25rem; font-size: .9rem; color: var(--ps-muted); }
.ps-hero h1 { margin: 0 0 .35rem; font-size: clamp(1.45rem, 3vw, 2rem); }
.ps-hero p { margin: 0; color: var(--ps-muted); max-width: 52rem; }
.ps-filters { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.1rem 0 1rem; }
.ps-filters input, .ps-filters select {
  border: 1px solid var(--ps-border); border-radius: 10px; padding: .55rem .7rem; font: inherit; background: #ffffff; min-width: 140px; min-height: 44px;
}
.ps-stats { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.ps-stat { background: #ffffff; border: 1px solid var(--ps-border); border-radius: 10px; padding: .55rem .8rem; font-size: .82rem; }
#ps-map { height: 280px; border-radius: var(--ps-radius); border: 1px solid var(--ps-border); margin-bottom: 1.1rem; background: #e5e9f1; }
.ps-grid { display: grid; grid-template-columns: 1fr; gap: .85rem; padding-bottom: 3rem; }
@media (min-width: 700px) { .ps-grid { grid-template-columns: repeat(2, 1fr); } #ps-map { height: 340px; } }
@media (min-width: 1000px) { .ps-grid { grid-template-columns: repeat(3, 1fr); } }
.ps-card {
  background: var(--ps-surface); border: 1px solid var(--ps-border); border-radius: var(--ps-radius);
  padding: 1rem; display: flex; flex-direction: column; gap: .35rem; min-height: 100%;
}
.ps-card h2 { margin: 0; font-size: 1.05rem; }
.ps-card .branch { font-weight: 600; color: var(--ps-primary); }
.meta { font-size: .85rem; color: var(--ps-muted); }
.pills { display: flex; flex-wrap: wrap; gap: .3rem; }
.pill { font-size: .68rem; font-weight: 700; background: var(--ps-soft); color: var(--ps-primary); border-radius: 999px; padding: .18rem .5rem; }
.actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; padding-top: .55rem; }
.actions .btn { min-height: 38px; font-size: .8rem; }
.empty { text-align: center; padding: 2rem; color: var(--ps-muted); }
.skip-link { position: absolute; left: -999px; }
.skip-link:focus { left: 1rem; top: 1rem; background: #ffffff; padding: .4rem .7rem; z-index: 50; }
.ps-notice { background: var(--ps-soft); border: 1px solid var(--ps-border); border-radius: 12px; padding: .85rem 1rem; margin: 1rem 0; font-size: .9rem; }
.profile-block { background: #ffffff; border: 1px solid var(--ps-border); border-radius: 16px; padding: 1.25rem; margin: 1rem 0 1.5rem; }
.profile-block h2 { margin: 0 0 .65rem; font-size: 1.1rem; }
.branch-list { display: grid; gap: .75rem; }
.admin-table { width: 100%; border-collapse: collapse; font-size: .82rem; background: #ffffff; }
.admin-table th, .admin-table td { border: 1px solid var(--ps-border); padding: .4rem .5rem; text-align: left; vertical-align: top; }
.admin-table th { background: var(--ps-soft); }
@media (max-width: 640px) {
  .ps-filters input, .ps-filters select { min-width: 0; width: 100%; }
  .header-inner { min-height: 56px; }
}
