/* Site chrome: header/footer, tap targets, contact (UI batch, Oct 2026). */

/* ---------- Footer accordions (details/summary) ----------
   Desktop: always open, summary looks like the old column heading.
   Phones (<=760px): collapsed accordions, toggled by the summary. */
.jv-footer .jv-foot-acc > summary { list-style: none; cursor: default; }
.jv-footer .jv-foot-acc > summary::-webkit-details-marker { display: none; }
.jv-footer .jv-foot-cities-acc > summary { display: none; }
/* Dark background: the brand-blue focus ring is too faint here. */
.jv-public .jv-footer :focus-visible { outline-color: #8fb3ea; }

/* ---------- WhatsApp green (AA contrast with white text) ---------- */
.jv-public .jv-btn-wa { background: #15803d; border-color: #15803d; color: #fff; }
.jv-public .jv-btn-wa:hover { background: #166534; border-color: #166534; color: #fff; }

/* ---------- Contact page list ---------- */
.jv-contact-list { list-style: none; margin: 0; padding: 0; }
.jv-contact-info .jv-contact-list .row {
  align-items: center; min-height: 44px; margin: 0 -8px 10px; padding: 6px 8px;
  border-radius: 12px; color: inherit; text-decoration: none;
}
.jv-contact-info .jv-contact-list a.row { transition: background .15s ease; }
.jv-contact-info .jv-contact-list a.row:hover { background: var(--jv-tint); }
.jv-contact-info .jv-contact-list a.row:hover .v { color: var(--jv-blue); }
.jv-contact-info .jv-contact-list .k,
.jv-contact-info .jv-contact-list .v { display: block; }
.jv-contact-info .jv-contact-wa .ic { background: #e7f6ec; color: #15803d; font-size: 21px; }
.jv-contact-map {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
  color: var(--jv-blue); font-weight: 600; font-size: 14px; text-decoration: none;
}
.jv-contact-map:hover { text-decoration: underline; }

/* ---------- Mobile sticky Call / WhatsApp bar ---------- */
.jv-contact-bar .jv-btn { flex: 1; justify-content: center; min-height: 48px; font-size: 16px; }
.jv-contact-bar .jv-btn-wa i { font-size: 20px; }

/* ---------- Phones: tap targets + collapsed footer ---------- */
@media (max-width: 760px) {
  /* Header + drawer */
  .jv-header-right .jv-btn { min-height: 44px; }
  .jv-nav .drop a { min-height: 44px; }

  /* Footer: every link is a full-height row */
  .jv-footer { padding-top: 36px; }
  .jv-footer .jv-footer-grid { gap: 0; }
  .jv-footer .jv-footer-grid > div:first-child { margin-bottom: 8px; }
  .jv-footer .jv-footer-grid > div:last-child { margin-top: 20px; }
  .jv-footer a { display: flex; align-items: center; min-height: 44px; margin: 0; }
  .jv-footer .jv-foot-nap a { align-items: center; margin: 0; }
  .jv-footer .jv-foot-nap i { margin-top: 0; }
  .jv-footer .newsletter input,
  .jv-footer .newsletter button { min-height: 44px; }

  .jv-footer .jv-foot-acc > summary {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 48px; cursor: pointer; border-top: 1px solid rgba(255,255,255,.08);
  }
  .jv-footer .jv-foot-acc > summary h4 { margin: 0; font-size: 15.5px; }
  .jv-footer .jv-foot-acc > summary::after {
    content: '\f078'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 12px;
    color: #8fb3ea; transition: transform .2s ease;
  }
  .jv-footer .jv-foot-acc[open] > summary::after { transform: rotate(180deg); }
  .jv-footer .jv-foot-links { padding: 0 0 10px 4px; }

  /* Jobs by city: its own accordion, links wrap as chips */
  .jv-footer .jv-foot-cities-acc { margin-top: 20px; }
  .jv-footer .jv-foot-cities-acc > summary { display: flex; border-bottom: 1px solid rgba(255,255,255,.08); }
  .jv-footer .jv-foot-cities-acc .jv-foot-cities { padding: 12px 0 4px; border-top: 0; }
  .jv-footer .jv-foot-cities strong { display: block; margin: 0 0 6px; }
  .jv-footer .jv-foot-cities a {
    display: inline-flex; padding: 0 14px; margin: 0 6px 8px 0;
    border: 1px solid #3a3a40; border-radius: 999px;
  }

  /* Bottom bar: stack copyright over the social row */
  .jv-footer .jv-footer-bottom { flex-direction: column; gap: 14px; margin-top: 20px; text-align: center; }
  .jv-footer .jv-social a { width: 44px; height: 44px; }
}

/* Final tap-target / legibility sweep (UI audit re-check). */
.jv-stat-copy small, .jv-ai-copy small { font-size: 12.5px; }
@media (max-width: 760px) {
  .lj-chips a, .bl-filter a { display: inline-flex; align-items: center; min-height: 44px; padding-top: 0; padding-bottom: 0; }
  .jv-content details > summary { min-height: 44px; display: flex; align-items: center; }
}
@media (max-width: 600px) {
  .svc-stats .svc-stat .l { font-size: 12.5px; }
}
