/* ============================================================
   UTILITIES — minimal responsive helpers that can't be inlined.
   Components are otherwise fully inline-styled.
   ============================================================ */

/* Layout container */
.esn-container {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.esn-container--narrow { max-width: var(--container-narrow); }

/* StickyCallBar — mobile only by default; --always to keep on desktop */
.esn-sticky-callbar:not(.esn-sticky-callbar--always) {
  display: flex;
}
@media (min-width: 768px) {
  .esn-sticky-callbar:not(.esn-sticky-callbar--always) {
    display: none;
  }
}

/* Hero: collapse to single column on small screens */
@media (max-width: 860px) {
  [data-esn-hero-grid] {
    grid-template-columns: 1fr !important;
  }
}

/* Footer: collapse columns progressively */
@media (max-width: 860px) {
  [data-esn-footer-grid] {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 520px) {
  [data-esn-footer-grid] {
    grid-template-columns: 1fr !important;
  }
}

/* SiteHeader: hide desktop nav + actions, show burger on mobile */
@media (max-width: 900px) {
  [data-esn-header-nav], [data-esn-header-actions] { display: none !important; }
  [data-esn-header-burger] { display: grid !important; }
}

/* Focus-visible ring for keyboard users on interactive brand elements */
.esn-btn:focus-visible,
.esn-phone-solid:focus-visible,
.esn-phone-inline:focus-visible,
.esn-service-card:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
}
