.ph-site-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;padding:20px;background:#101018;color:#f5f3ff;font-size:14px}.ph-site-contact a,.ph-profile-bridge a{color:#e0d1ff;text-decoration:underline;text-underline-offset:3px}.ph-site-contact a:focus-visible,.ph-profile-bridge a:focus-visible{outline:3px solid #c7a5ff;outline-offset:5px}.ph-profile-bridge{padding:12px 18px;background:#171321;border:1px solid #5b426f;border-radius:12px;margin:12px auto;max-width:1200px}

/* Standalone contact actions keep a usable touch target without changing inline links. */
.ph-contact > section > p > a[href^="mailto:"]{display:inline-flex;align-items:center;box-sizing:border-box;min-height:44px;max-width:100%;padding:8px 0;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px}
.ph-contact > section > p > a[href^="mailto:"]:focus-visible{outline:3px solid #c7a5ff;outline-offset:4px}

/* Long email addresses remain readable on narrow Contact layouts. */
.ph-contact a[href^="mailto:"]{overflow-wrap:anywhere}

/* Keep the error heading visible when theme-wide title hiding is enabled. */
body.error404 main#content .page-header h1.entry-title{display:block!important}

/* Match the homepage's wide shell without changing media, panels, or narrow layouts. */
@media (min-width: 1440px) {
  html body.phspb-filter-landing-page .phspb-model-shortcode.phspb-filter-landing-wrap,
  html body.phspb-stream-template .phspb-model-shortcode:not(.phspb-home-live-cams-shortcode) {
    box-sizing: border-box !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  html body.phspb-filter-landing-page .phspb-filter-landing-wrap .phspb-page-layout,
  html body.phspb-stream-template .phspb-model-shortcode:not(.phspb-home-live-cams-shortcode) .phspb-page-layout {
    grid-template-columns: 282px minmax(0, 1fr) 268px !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}
@media (max-width: 768px) {
  html body.phspb-stream-template .phspb-model-shortcode:not(.phspb-home-live-cams-shortcode) {
    box-sizing: border-box !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

/* Compact category cards size to their contents; grid stretch still equalizes each row. */
html body.phspb-filter-landing-page #phspb-filter-directory .phlc-grid > .phlc-card,
html body.phspb-filter-landing-page #phspb-filter-directory .phlc-card {
  min-height: 0 !important;
}

/* Match the shared shell when the right rail is hidden at this breakpoint. */
@media (min-width: 1181px) and (max-width: 1439px) {
  html body.phspb-filter-landing-page .phspb-filter-landing-wrap .phspb-page-layout {
    grid-template-columns: minmax(190px, 230px) minmax(0, 1fr) !important;
    gap: 16px !important;
  }
}
@media (max-width: 1180px) {
  html body.phspb-filter-landing-page .phspb-filter-landing-wrap .phspb-page-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* WordPress fixes its toolbar above tablet/desktop layouts. Mobile topbar is relative. */
@media (min-width: 783px) {
  html body.admin-bar .phspb-topbar { top: 32px !important; }
}
@media (min-width: 768px) and (max-width: 782px) {
  html body.admin-bar .phspb-topbar { top: 46px !important; }
}

/* Constrain the outside of the chip scroller, retaining native scrolling inside. */
html body.phspb-filter-landing-page .phspb-filter-landing-wrap .phspb-quick-chips-wrap,
html body.phspb-filter-landing-page .phspb-filter-landing-wrap .phspb-quick-chips-scroll {
  box-sizing: border-box !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
html body.phspb-filter-landing-page .phspb-filter-landing-wrap .phspb-quick-chips-wrap {
  width: 100% !important;
}
html body.phspb-filter-landing-page .phspb-filter-landing-wrap .phspb-quick-chips-scroll {
  width: 0 !important;
  flex: 1 1 0% !important;
}

/* The compact home sections share Popular's content gutter, independent of legacy safe-version classes. */
@media (max-width: 1024px) {
  html body .phspb-home-live-cams-shortcode .phspb-filter-live-directory.phspb-section-card,
  html body .phspb-home-live-cams-shortcode .phspb-filter-live-directory.phspb-section-card :is(.phlc-directory, .phlc-wrap, .phlc-section, .phlc-block, .phlc-inner, .phlc-directory-inner, .phlc-homepage-block) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-left-width: 0 !important;
    border-right-width: 0 !important;
  }
}

/* Mobile category grids use the same ten-pixel outside gutter as the home shell. */
@media (max-width: 768px) {
  html body.phspb-filter-landing-page .phspb-model-shortcode.phspb-filter-landing-wrap {
    box-sizing: border-box !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  html body.phspb-filter-landing-page #phspb-filter-directory.phspb-filter-directory-shell {
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-left-width: 0 !important;
    border-right-width: 0 !important;
  }
}

/* Desktop section shells have the same twenty-pixel inset as the home sections. */
@media (min-width: 1025px) {
  html body.phspb-filter-landing-page #phspb-filter-directory.phspb-filter-directory-shell {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* Footer links retain a readable line box and a usable touch target. */
html body .ph-site-contact a {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding-top: 8px;
  padding-bottom: 8px;
  line-height: 1.6 !important;
}

/* Source-state captions and metric labels remain readable on the dark hero. */
html body.home .phspb-home-live-cams-shortcode.phspb-home-live-cams-shortcode .phspb-home-hero-card .phspb-home-hero-highlights.phspb-home-hero-highlights .phspb-home-hero-highlight-copy.phspb-home-hero-highlight-copy small { color: #e9dff5 !important; background: #160d20 !important; box-shadow: 0 0 0 2px #160d20; border-radius: 2px; }
html body.home .phspb-home-stats-freshness { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; grid-column: 1 / -1; white-space: normal; color: #e9dff5 !important; background: #160d20; padding: 8px 10px; border-radius: 8px; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; margin: 10px 0 0; }
