/*
 * Theme-wide responsive safety layer.
 * Loaded after every page stylesheet so WordPress, WooCommerce, plugins, and
 * future editor content inherit the same narrow-screen protections.
 */

html,
body.pixmig-theme {
  max-width: 100%;
}

body.pixmig-theme {
  overflow-x: clip;
}

body.pixmig-theme :where(main, section, article, aside, nav, header, footer, form, fieldset, div) {
  min-width: 0;
}

body.pixmig-theme :where(h1, h2, h3, h4, h5, h6, p, li, dd, dt, label, th, td, address, blockquote) {
  overflow-wrap: anywhere;
}

body.pixmig-theme :where(img, svg, canvas, video, embed, object) {
  max-width: 100%;
}

body.pixmig-theme :where(input, select, textarea, button) {
  max-width: 100%;
}

.pixmig-entry-content :where(iframe, video, embed, object),
.pixmig-woo-content :where(iframe, video, embed, object),
.pixmig-blog-single-page .single-post-content :where(iframe, video, embed, object) {
  display: block;
  width: 100%;
  max-width: 100%;
}

.pixmig-entry-content :where(pre, code),
.pixmig-blog-single-page .single-post-content :where(pre, code),
.pixmig-woo-content :where(pre, code) {
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.pixmig-entry-content table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.pixmig-content-page :where(.comparison, .table-scroll),
.pixmig-policy-page .table-scroll,
.pixmig-blog-single-page .single-post-content table {
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

/* Switch to the roomy mobile header before the desktop controls become tight. */
@media (max-width: 960px) {
  .pixmig-desktop-nav,
  .pixmig-design-button,
  .pixmig-round-action {
    display: none;
  }

  .pixmig-mobile-toggle {
    display: block;
  }

  .pixmig-header-actions {
    margin-left: auto;
  }
}

/* WordPress changes the admin toolbar from 32px to 46px at 782px. */
@media (max-width: 782px) {
  body.admin-bar .pixmig-mobile-menu {
    top: 46px;
  }
}

@media (max-width: 820px) {
  .pixmig-footer-main {
    padding-inline: 28px;
  }

  .pixmig-footer-bottom {
    flex-wrap: wrap;
  }
}

@media (max-width: 600px) {
  .pixmig-site-header,
  body.home .pixmig-site-header {
    padding-top: max(12px, env(safe-area-inset-top));
    padding-right: max(12px, env(safe-area-inset-right));
    padding-left: max(12px, env(safe-area-inset-left));
  }

  .pixmig-header-shell {
    gap: 10px;
  }

  .pixmig-header-logo {
    width: clamp(116px, 38vw, 140px);
  }

  .pixmig-mobile-menu {
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding-top: calc(72px + env(safe-area-inset-top));
    padding-right: max(24px, env(safe-area-inset-right));
    padding-bottom: calc(30px + env(safe-area-inset-bottom));
    padding-left: max(24px, env(safe-area-inset-left));
    text-align: center;
  }

  .pixmig-mobile-menu a {
    display: flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 11px 8px;
  }

  .pixmig-mobile-close {
    top: calc(18px + env(safe-area-inset-top));
    right: max(20px, env(safe-area-inset-right));
    width: 44px;
    height: 44px;
  }

  .pixmig-footer-main {
    padding-right: max(20px, env(safe-area-inset-right));
    padding-bottom: calc(96px + env(safe-area-inset-bottom));
    padding-left: max(20px, env(safe-area-inset-left));
  }

  .pixmig-footer-subscribe {
    padding: 30px 20px;
  }

  .pixmig-footer-legal {
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 22px;
  }

  .pixmig-mobile-bottom-nav {
    height: calc(72px + env(safe-area-inset-bottom));
    padding-right: env(safe-area-inset-right);
    padding-bottom: env(safe-area-inset-bottom);
    padding-left: env(safe-area-inset-left);
  }

  .pixmig-mobile-bottom-nav > a {
    min-width: 0;
    padding: 6px 2px;
  }

  .pixmig-mobile-bottom-nav > a > span:last-child {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Keep page-specific action bars above the global mobile navigation. */
  .pixmig-home #sticky,
  .pixmig-about-page #sticky,
  .pixmig-contact-page #sticky,
  .pixmig-faq-page #sticky,
  .pixmig-refund-policy-page #sticky,
  .pixmig-secure-payment-page #sticky,
  .pixmig-policy-page .policy-sticky {
    bottom: calc(72px + env(safe-area-inset-bottom));
    padding-right: max(10px, env(safe-area-inset-right));
    padding-left: max(10px, env(safe-area-inset-left));
  }

  .pixmig-home {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }

  .pixmig-about-page .sticky-copy,
  .pixmig-contact-page .sticky-copy,
  .pixmig-faq-page .sticky-copy,
  .pixmig-refund-policy-page .sticky-copy,
  .pixmig-secure-payment-page .sticky-copy,
  .pixmig-policy-page .sticky-copy {
    display: none;
  }

  .pixmig-about-page .sticky-inner,
  .pixmig-contact-page .sticky-inner,
  .pixmig-faq-page .sticky-inner,
  .pixmig-refund-policy-page .sticky-inner,
  .pixmig-secure-payment-page .sticky-inner,
  .pixmig-policy-page .sticky-inner {
    width: 100%;
    align-items: stretch;
  }

  .pixmig-about-page .sticky-actions,
  .pixmig-contact-page .sticky-actions,
  .pixmig-faq-page .sticky-actions,
  .pixmig-refund-policy-page .sticky-actions,
  .pixmig-secure-payment-page .sticky-actions,
  .pixmig-policy-page .sticky-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .pixmig-about-page .sticky-actions .btn,
  .pixmig-contact-page .sticky-actions .btn,
  .pixmig-faq-page .sticky-actions .btn,
  .pixmig-refund-policy-page .sticky-actions .btn,
  .pixmig-secure-payment-page .sticky-actions .btn,
  .pixmig-policy-page .sticky-actions .btn {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 9px 10px;
    font-size: .65rem;
    line-height: 1.25;
    white-space: normal;
  }

  .pixmig-home #sticky {
    width: 100%;
    justify-content: center;
  }

  .pixmig-home #sticky .sticky-text {
    display: none;
  }

  .pixmig-home #sticky .sticky-btns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(100%, 440px);
  }

  .pixmig-home #sticky .btn {
    min-width: 0;
    min-height: 42px;
    padding: 9px 10px;
    font-size: .65rem;
    line-height: 1.25;
    white-space: normal;
  }

  body.pixmig-theme :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    font-size: 16px;
  }

  body.pixmig-theme :where(.btn, .button, button, input[type="submit"]) {
    white-space: normal;
  }

  body.pixmig-theme :where(.quick-links a, .ql-row a, .blog-hub-quick a) {
    min-height: 44px;
  }

  .pixmig-content,
  .pixmig-woo-page {
    width: min(calc(100% - 24px), var(--pixmig-page-width));
  }
}

@media (min-width: 601px) and (max-width: 680px) {
  .pixmig-policy-page .policy-sticky {
    bottom: 0;
  }
}

@media (max-width: 380px) {
  .pixmig-header-shell {
    min-height: 62px;
    padding: 8px 13px;
  }

  .pixmig-mobile-toggle {
    width: 40px;
    height: 40px;
    padding: 7px;
  }

  .pixmig-footer-logo {
    width: min(100%, 220px);
  }

  .pixmig-footer-subscribe {
    padding-inline: 16px;
  }

  .pixmig-mobile-bottom-nav svg {
    width: 22px;
    height: 22px;
  }

  .pixmig-mobile-bottom-nav > a {
    font-size: 9px;
  }

  .pixmig-partner-page .wrap,
  .pixmig-content-page .wrap,
  .pixmig-about-page .wrap,
  .pixmig-contact-page .wrap,
  .pixmig-faq-page .wrap,
  .pixmig-refund-policy-page .wrap,
  .pixmig-secure-payment-page .wrap,
  .pixmig-delivery-page .wrap {
    padding-right: 16px;
    padding-left: 16px;
  }
}

@media (max-width: 960px) and (max-height: 540px) {
  .pixmig-mobile-menu {
    justify-content: flex-start;
  }
}
