/* PrintStrokes responsive normalization — v3.11.82
 * Loaded after the main theme and product-detail styles so the final breakpoint
 * wins consistently. This is presentation-only and does not alter WooCommerce logic.
 */

html { max-width: 100%; overflow-x: clip; }
body { min-width: 320px; max-width: 100%; overflow-x: clip; }
img, picture, video, iframe { max-width: 100%; }
svg { max-width: 100%; }
:where(main, section, article, aside, nav, header, footer, .container, .woocommerce-page-wrap,
       .ps-inner-hero-content, .ps-product-shell, .ps-product-content, .ps-shop-layout,
       .account-layout-grid, .auth-modern-grid) { min-width: 0; }
:where(.container, .ps-inner-hero-content) > * { min-width: 0; }
:where(input, select, textarea, button, .button, .btn) { max-width: 100%; }
:where(input, select, textarea) { box-sizing: border-box; }
body { overflow-wrap: break-word; }

/* Common content cards and split-page layouts. */
.ps-editor-grid,
.ps-about-home-grid,
.ps-about-intro-grid,
.ps-about-process-grid,
.ps-about-hero-modern,
.ps-contact-main-grid,
.ps-contact-method-grid,
.ps-faq-grid,
.ps-guide-quickstart-grid,
.ps-journal-article-grid,
.ps-journal-hero-grid,
.blog-hero-grid,
.about-hero-grid,
.about-story-grid,
.account-hero-grid,
.woocommerce-hero-grid,
.product-story-banner,
.single-post-layout,
.single-post-page .single-post-layout {
  min-width: 0;
}

/* Tablet: avoid fixed/minimum column widths forcing a horizontal page scroll. */
@media (max-width: 1024px) {
  .container { width: calc(100% - 36px); }
  .ps-editor-grid,
  .ps-about-home-grid,
  .ps-about-intro-grid,
  .ps-about-process-grid,
  .ps-contact-main-grid,
  .ps-faq-grid,
  .ps-guide-quickstart-grid,
  .ps-journal-article-grid,
  .ps-journal-hero-grid,
  .blog-hero-grid,
  .about-hero-grid,
  .about-story-grid,
  .account-hero-grid,
  .woocommerce-hero-grid,
  .product-story-banner,
  .single-post-layout,
  .single-post-page .single-post-layout,
  .auth-modern-grid,
  .account-layout-grid,
  .ps-shop-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }
  .ps-shop-layout { gap: 22px !important; }
  .ps-shop-sidebar { position: static !important; top: auto !important; min-width: 0; }
  .ps-shop-results, .ps-shop-sidebar, .woocommerce-MyAccount-content,
  .account-nav-card, .auth-form-card, .auth-showcase { min-width: 0; }
  .ps-shop-results ul.products,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .ps-product-grid,
  .ps-category-grid,
  .ps-category-directory-grid,
  .blog-card-grid,
  .blog-card-grid-lg,
  .ps-wishlist-grid,
  .ps-steps-grid,
  .ps-guide-steps-grid,
  .ps-about-value-grid,
  .ps-about-process-list,
  .testimonial-grid,
  .trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .ps-about-home-stats, .about-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .single-post-content, .ps-journal-prose { min-width: 0; overflow-wrap: anywhere; }
  .single-post-layout .article-aside, .single-post-layout .article-aside-card { position: static !important; }
}

/* Phones and narrow tablets: single-column editorial pages, two-up product cards. */
@media (max-width: 760px) {
  .container { width: calc(100% - 30px); }
  .section-title { font-size: clamp(27px, 6vw, 36px); line-height: 1.15; }
  .section-copy { font-size: 14px; line-height: 1.65; }
  .hero-actions, .about-hero-actions, .footer-actions, .account-welcome-actions,
  .account-hero-actions, .mobile-actions {
    min-width: 0;
    flex-wrap: wrap;
  }
  .hero-actions .btn, .about-hero-actions .btn,
  .footer-actions .btn, .account-welcome-actions .btn { max-width: 100%; white-space: normal; }
  .ps-editor-grid,
  .ps-about-home-grid,
  .ps-about-intro-grid,
  .ps-about-process-grid,
  .ps-about-hero-modern,
  .ps-contact-main-grid,
  .ps-contact-method-grid,
  .ps-faq-grid,
  .ps-guide-quickstart-grid,
  .ps-journal-article-grid,
  .ps-journal-hero-grid,
  .blog-hero-grid,
  .about-hero-grid,
  .about-story-grid,
  .account-hero-grid,
  .woocommerce-hero-grid,
  .product-story-banner,
  .single-post-layout,
  .single-post-page .single-post-layout,
  .auth-modern-grid,
  .account-layout-grid,
  .ps-shop-layout,
  .contact-grid,
  .auth-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .ps-shop-layout { gap: 18px !important; }
  .ps-shop-sidebar { order: 0; }
  .ps-shop-results { order: 1; }
  .ps-shop-results-head { align-items: flex-start !important; flex-wrap: wrap !important; gap: 10px !important; }
  .ps-shop-results ul.products,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .ps-product-grid,
  .ps-category-grid,
  .ps-category-directory-grid,
  .blog-card-grid,
  .blog-card-grid-lg,
  .ps-wishlist-grid,
  .ps-steps-grid,
  .ps-guide-steps-grid,
  .ps-about-value-grid,
  .ps-about-process-list,
  .testimonial-grid,
  .trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .ps-about-home-stats, .about-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 20px 16px !important; }
  .footer-main { grid-column: 1 / -1 !important; }
  .footer-brand, .footer-copy, .footer-actions { min-width: 0; }
  .woocommerce-checkout .col2-set,
  .woocommerce-account .woocommerce-Addresses,
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses,
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address { grid-template-columns: minmax(0, 1fr) !important; }
  .woocommerce table.shop_table { display: block; width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .woocommerce-account .woocommerce-MyAccount-navigation { width: 100% !important; float: none !important; }
  .woocommerce-account .woocommerce-MyAccount-content { width: 100% !important; float: none !important; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 8px; }
  .woocommerce-account .woocommerce-MyAccount-navigation li { flex: 1 1 140px; min-width: 0; }
  .form-row, .woocommerce form .form-row, .contact-form7-card .ps-cf7-row { min-width: 0; }
  .form-row-first, .form-row-last, .woocommerce form .form-row-first,
  .woocommerce form .form-row-last { width: 100% !important; float: none !important; }
  .single-post-page .ps-article-hero, .single-post-page .single-post-footer { min-width: 0; }
  .single-post-content img, .ps-journal-prose img { max-width: 100%; height: auto; }
}

@media (max-width: 480px) {
  .container { width: calc(100% - 24px); }
  .ps-home .ps-hero-copy h1, .ps-home-hero .ps-hero-copy h1 { font-size: clamp(30px, 9vw, 40px) !important; line-height: 1.08 !important; }
  .hero-actions .btn, .about-hero-actions .btn, .footer-actions .btn,
  .account-welcome-actions .btn, .ps-contact-bottom-inner .btn { width: 100%; }
  .ps-shop-filter-form, .ps-shop-filter-form .ps-filter-actions { min-width: 0; }
  .ps-shop-results ul.products,
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .ps-product-grid,
  .ps-category-grid,
  .ps-category-directory-grid,
  .blog-card-grid,
  .blog-card-grid-lg,
  .ps-wishlist-grid,
  .ps-steps-grid,
  .ps-guide-steps-grid,
  .ps-about-value-grid,
  .ps-about-process-list,
  .testimonial-grid,
  .trust-grid { gap: 12px !important; }
  .ps-product-card, .woocommerce ul.products li.product,
  .woocommerce-page ul.products li.product { min-width: 0 !important; width: auto !important; }
  .ps-product-card .button, .woocommerce ul.products li.product .button,
  .woocommerce-page ul.products li.product .button { width: 100%; min-width: 0; white-space: normal; }
  .footer-grid { gap: 18px 12px !important; }
  .contact-grid .info-card, .contact-grid .form-card { padding: 18px !important; }
  .auth-form-card, .auth-showcase, .account-content-panel { min-width: 0; padding-left: 16px; padding-right: 16px; }
  .woocommerce .button, .woocommerce button.button, .woocommerce input.button { white-space: normal; }
}

@media (max-width: 360px) {
  .container { width: calc(100% - 20px); }
  .ps-product-grid, .ps-wishlist-grid, .blog-card-grid, .blog-card-grid-lg,
  .ps-category-grid, .ps-category-directory-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .site-header .header-inner { gap: 8px !important; }
}

/* Single-product page: this deliberately comes last to correct an earlier
   two-column declaration that was placed after the 900px stacking rule. */
body.single-product .ps-product-shell > .container {
  width: min(1240px, calc(100% - 40px)) !important;
  max-width: 1240px !important;
}
body.single-product .ps-product-content,
body.single-product .ps-product-content > div.product,
body.single-product .ps-product-content > div.product > .ps-product-main-row,
body.single-product .ps-product-content > div.product > .ps-product-main-row > .images,
body.single-product .ps-product-content > div.product > .ps-product-main-row > .summary {
  min-width: 0 !important;
  max-width: 100% !important;
}
body.single-product .ps-product-content > div.product > .ps-product-main-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  grid-template-areas: "gallery summary" !important;
  align-items: start !important;
  gap: clamp(20px, 3vw, 38px) !important;
  margin-bottom: clamp(28px, 5vw, 64px) !important;
}
body.single-product .ps-product-content > div.product > .ps-product-main-row > .images {
  grid-area: gallery !important;
  grid-column: 1 !important;
  position: sticky !important;
  top: 104px !important;
  width: 100% !important;
}
body.single-product .ps-product-content > div.product > .ps-product-main-row > .summary {
  grid-area: summary !important;
  grid-column: 2 !important;
  width: 100% !important;
}
body.single-product .ps-product-content .product .summary .product_title {
  max-width: calc(100% - 48px) !important;
  font-size: clamp(25px, 2.6vw, 36px) !important;
  line-height: 1.14 !important;
  overflow-wrap: anywhere;
}
body.single-product .ps-product-content .product .summary form.cart,
body.single-product .ps-product-content .product .summary .ps-product-cart-actions,
body.single-product .ps-product-content .product .summary .woocommerce-variation-add-to-cart {
  min-width: 0 !important;
  max-width: 100% !important;
}
body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .quantity {
  flex-shrink: 0 !important;
}
body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .single_add_to_cart_button,
body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .button.single_add_to_cart_button {
  min-width: 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}
body.single-product .woocommerce-product-gallery .ps-gallery-thumbnail-rail {
  display: flex !important;
  flex-wrap: nowrap !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
}
body.single-product .ps-single-product-reviews .ps-review-columns { min-width: 0 !important; }
body.single-product .related ul.products,
body.single-product .upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }

@media (min-width: 901px) and (max-width: 1100px) {
  body.single-product .ps-product-content > div.product > .ps-product-main-row { gap: 24px !important; }
  body.single-product .woocommerce-product-gallery { --ps-gallery-stage-height: clamp(330px, 39vw, 430px) !important; }
  body.single-product .ps-product-content .product .summary .product_title { font-size: clamp(25px, 2.6vw, 31px) !important; }
}
@media (max-width: 900px) {
  body.single-product .ps-product-shell > .container { width: calc(100% - 32px) !important; }
  body.single-product .ps-product-content > div.product > .ps-product-main-row {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: "gallery" "summary" !important;
    gap: 24px !important;
    margin-bottom: 34px !important;
  }
  body.single-product .ps-product-content > div.product > .ps-product-main-row > .images,
  body.single-product .ps-product-content > div.product > .ps-product-main-row > .summary {
    grid-column: 1 !important;
    position: static !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
  }
  body.single-product .woocommerce-product-gallery { --ps-gallery-stage-height: clamp(280px, 60vw, 420px) !important; }
  body.single-product .ps-product-content .product .summary .product_title { font-size: clamp(27px, 4.5vw, 34px) !important; }
  body.single-product .ps-product-content .product .summary .variations,
  body.single-product .ps-product-content .product .summary table.variations,
  body.single-product .ps-product-content .product .summary form.variations_form { width: 100% !important; max-width: 100% !important; }
  body.single-product .ps-product-content .product .summary form.variations_form .value { min-width: 0 !important; max-width: 100% !important; }
  body.single-product .ps-product-content .product .summary .product_meta { overflow-wrap: anywhere; }
  body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .quantity { flex-basis: 132px !important; width: 132px !important; min-width: 132px !important; max-width: 132px !important; }
}
@media (max-width: 520px) {
  body.single-product .ps-product-shell { padding-top: 12px !important; padding-bottom: 26px !important; }
  body.single-product .ps-product-shell > .container { width: calc(100% - 24px) !important; }
  body.single-product .ps-product-breadcrumb { font-size: 11px !important; line-height: 1.4 !important; overflow-wrap: anywhere; }
  body.single-product .ps-product-content > div.product > .ps-product-main-row { gap: 20px !important; margin-bottom: 28px !important; }
  body.single-product .woocommerce-product-gallery { --ps-gallery-stage-height: clamp(245px, 76vw, 340px) !important; }
  body.single-product .ps-gallery-prev { left: 7px !important; }
  body.single-product .ps-gallery-next { right: 7px !important; }
  body.single-product .ps-gallery-nav { width: 34px !important; height: 34px !important; min-width: 34px !important; }
  body.single-product .ps-gallery-thumbnail-rail { gap: 8px !important; margin-top: 9px !important; padding-bottom: 7px !important; }
  body.single-product .woocommerce-product-gallery #cppd-product-preview .cppd-product-gallery-actions { top: 8px !important; right: 8px !important; gap: 5px !important; }
  body.single-product .cppd-product-action-button,
  body.single-product .woocommerce-product-gallery #cppd-product-preview .cppd-product-action-button { min-width: 0 !important; min-height: 34px !important; padding: 7px 9px !important; border-radius: 8px !important; font-size: 11px !important; gap: 5px !important; }
  body.single-product .ps-product-content .product .summary .product_title { max-width: calc(100% - 48px) !important; margin-bottom: 8px !important; font-size: clamp(25px, 7vw, 31px) !important; }
  body.single-product .ps-product-content .product .summary .price { font-size: 21px !important; }
  body.single-product .ps-product-content .product .summary .ps-product-cart-actions { gap: 8px !important; }
  body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .quantity { flex-basis: 112px !important; width: 112px !important; min-width: 112px !important; max-width: 112px !important; height: 44px !important; min-height: 44px !important; }
  body.single-product .ps-product-content .product .summary .ps-product-quantity-control .ps-product-qty-step { flex-basis: 32px !important; width: 32px !important; min-width: 32px !important; max-width: 32px !important; }
  body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .single_add_to_cart_button,
  body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .button.single_add_to_cart_button { height: 44px !important; min-height: 44px !important; padding: 8px 7px !important; font-size: 12px !important; }
  body.single-product .ps-product-content .product .summary .woocommerce-variation-price .price { font-size: 20px !important; }
  body.single-product .ps-product-content .product .summary .woocommerce-product-details__short-description,
  body.single-product .ps-single-product-description-content,
  body.single-product .ps-single-product-description-content p { font-size: 13px !important; line-height: 1.6 !important; }
  body.single-product .ps-single-product-reviews .ps-product-reviews-heading { padding: 16px 15px 12px !important; }
  body.single-product .ps-single-product-reviews .ps-review-workspace { padding: 12px !important; }
  body.single-product .related ul.products,
  body.single-product .upsells ul.products { gap: 10px !important; }
}
@media (max-width: 360px) {
  body.single-product .ps-product-shell > .container { width: calc(100% - 20px) !important; }
  body.single-product .woocommerce-product-gallery { --ps-gallery-stage-height: 245px !important; }
  body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .quantity { flex-basis: 100px !important; width: 100px !important; min-width: 100px !important; max-width: 100px !important; }
  body.single-product .ps-product-content .product .summary .ps-product-quantity-control .ps-product-qty-step { flex-basis: 28px !important; width: 28px !important; min-width: 28px !important; max-width: 28px !important; }
  body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .single_add_to_cart_button,
  body.single-product .ps-product-content .product .summary .ps-product-cart-actions > .button.single_add_to_cart_button { font-size: 11px !important; padding-inline: 5px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}


/* Personalization controls and the full-screen designer must remain scroll-safe. */
@media (max-width: 900px) {
  body.single-product #cppd-product-controls .cppd-product-control-actions,
  body.single-product .cppd-front #cppd-product-controls .cppd-product-control-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  body.single-product #cppd-product-controls .cppd-product-control-actions > button,
  body.single-product .cppd-front #cppd-product-controls .cppd-product-control-actions > button {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
  .cppd-modal.cppd-editor-redesign .cppd-dialog,
  .cppd-modal.cppd-editor-redesign .cppd-preview-dialog {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }
  .cppd-modal.cppd-editor-redesign .cppd-body,
  .cppd-modal.cppd-editor-redesign .cppd-stage-panel,
  .cppd-modal.cppd-editor-redesign .cppd-workspace,
  .cppd-modal.cppd-editor-redesign .cppd-controls,
  .cppd-modal.cppd-editor-redesign #cppd-stage {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .cppd-modal.cppd-editor-redesign .cppd-controls { overflow-x: hidden !important; overflow-y: auto !important; }
  .cppd-modal.cppd-editor-redesign .cppd-controls input:not([type="file"]),
  .cppd-modal.cppd-editor-redesign .cppd-controls select,
  .cppd-modal.cppd-editor-redesign .cppd-controls textarea { min-width: 0 !important; max-width: 100% !important; }
}
@media (max-width: 760px) {
  .cppd-modal.cppd-editor-redesign .cppd-body {
    grid-template-columns: 52px minmax(0, 1fr) !important;
    grid-template-rows: minmax(150px, 1fr) minmax(175px, 38dvh) !important;
  }
  .cppd-modal.cppd-editor-redesign .cppd-editor-rail { grid-column: 1 !important; grid-row: 1 / span 2 !important; min-width: 0 !important; }
  .cppd-modal.cppd-editor-redesign .cppd-stage-panel { grid-column: 2 !important; grid-row: 1 !important; min-height: 0 !important; }
  .cppd-modal.cppd-editor-redesign .cppd-controls {
    grid-column: 2 !important; grid-row: 2 !important; width: 100% !important;
    min-height: 175px !important; max-height: 38dvh !important; height: auto !important;
    border-right: 0 !important; border-top: 1px solid #dfe5ec !important;
  }
  .cppd-modal.cppd-editor-redesign .cppd-editor-topbar { grid-template-columns: auto minmax(0, 1fr) auto !important; min-width: 0 !important; }
  .cppd-modal.cppd-editor-redesign .cppd-editor-topbar > * { min-width: 0 !important; }
}
@media (max-width: 480px) {
  .cppd-modal.cppd-editor-redesign .cppd-body {
    grid-template-columns: 46px minmax(0, 1fr) !important;
    grid-template-rows: minmax(130px, 1fr) minmax(165px, 40dvh) !important;
  }
  .cppd-modal.cppd-editor-redesign .cppd-editor-rail button { min-width: 0 !important; padding-inline: 1px !important; }
  .cppd-modal.cppd-editor-redesign .cppd-controls { min-height: 165px !important; max-height: 40dvh !important; }
  .cppd-modal.cppd-editor-redesign .cppd-controls .cppd-mini-grid,
  .cppd-modal.cppd-editor-redesign .cppd-controls .cppd-color-row { grid-template-columns: minmax(0, 1fr) !important; }
}

/* The theme's studio.css uses ID-level mobile rules; match that specificity here
   so the editor's rail, canvas and controls retain a usable compact layout. */
@media (max-width: 900px) {
  #cppd-modal.cppd-editor-redesign {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: 100vw !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-dialog {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-body,
  #cppd-modal.cppd-editor-redesign .cppd-stage-panel,
  #cppd-modal.cppd-editor-redesign .cppd-workspace,
  #cppd-modal.cppd-editor-redesign .cppd-controls,
  #cppd-modal.cppd-editor-redesign #cppd-stage {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-controls {
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
}
@media (max-width: 760px) {
  #cppd-modal.cppd-editor-redesign .cppd-editor-topbar {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    gap: 6px !important;
    padding: 6px 8px !important;
    min-width: 0 !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-body {
    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) !important;
    grid-template-rows: minmax(140px, 1fr) minmax(165px, 38dvh) !important;
    height: calc(100dvh - 52px) !important;
    max-height: calc(100dvh - 52px) !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-editor-rail {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 7px 4px !important;
    gap: 5px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-editor-rail button {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    padding: 5px 1px !important;
    font-size: 10px !important;
    overflow-wrap: anywhere !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-editor-rail button small { font-size: 7px !important; }
  #cppd-modal.cppd-editor-redesign .cppd-stage-panel {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-height: 0 !important;
    width: 100% !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-workspace { padding: 4px !important; gap: 0 !important; }
  #cppd-modal.cppd-editor-redesign .cppd-controls {
    grid-column: 2 !important;
    grid-row: 2 !important;
    width: 100% !important;
    min-height: 165px !important;
    max-height: 38dvh !important;
    height: auto !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 1px solid #dfe5ec !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-controls > section { padding: 12px 10px !important; }
  #cppd-modal.cppd-editor-redesign .cppd-editor-topbar > * { min-width: 0 !important; max-width: 100% !important; }
  #cppd-modal.cppd-editor-redesign .cppd-editor-topbar h1,
  #cppd-modal.cppd-editor-redesign .cppd-editor-topbar h2,
  #cppd-modal.cppd-editor-redesign .cppd-editor-topbar .cppd-editor-title {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
}
@media (max-width: 480px) {
  #cppd-modal.cppd-editor-redesign .cppd-body {
    grid-template-columns: 46px minmax(0, 1fr) !important;
    grid-template-rows: minmax(125px, 1fr) minmax(160px, 40dvh) !important;
  }
  #cppd-modal.cppd-editor-redesign .cppd-editor-rail { padding: 5px 2px !important; }
  #cppd-modal.cppd-editor-redesign .cppd-editor-rail button { min-height: 42px !important; }
  #cppd-modal.cppd-editor-redesign .cppd-controls { min-height: 160px !important; max-height: 40dvh !important; }
  #cppd-modal.cppd-editor-redesign .cppd-controls .cppd-mini-grid,
  #cppd-modal.cppd-editor-redesign .cppd-controls .cppd-color-row { grid-template-columns: minmax(0, 1fr) !important; }
  #cppd-modal.cppd-editor-redesign #cppd-stage { padding: 3px !important; }
}

/* Header/footer min-content safeguards that otherwise create clipped labels on phones. */
.site-header .header-inner > *,
.site-header .header-actions > *,
.site-footer .footer-grid > *,
.site-footer .footer-bottom > *,
.site-footer .footer-links,
.site-footer .footer-links a { min-width: 0 !important; }
.site-footer .footer-copy,
.site-footer .footer-links a,
.site-footer .footer-bottom { overflow-wrap: anywhere; }
@media (max-width: 1024px) {
  .site-footer .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 24px 18px !important; }
}
@media (max-width: 760px) {
  .site-header .header-inner { gap: 8px !important; }
  .site-header .header-actions { gap: 5px !important; max-width: 100% !important; }
  .site-header .header-icon-link { overflow: hidden !important; flex: 0 0 38px !important; }
  .site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 20px 14px !important; }
  .site-footer .footer-bottom { align-items: flex-start !important; flex-direction: column !important; gap: 8px !important; }
}
@media (max-width: 480px) {
  .site-header .header-actions { gap: 4px !important; }
  .site-header .header-icon-link { flex-basis: 36px !important; width: 36px !important; height: 36px !important; }
  .site-footer .footer-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 18px !important; }
}


/* PrintStrokes 3.11.82 — targeted homepage and mobile-header corrections. */

/* On narrow screens the announcement strip's multiple no-wrap messages fight
   for the same horizontal space; remove the strip instead of clipping text. */
@media (max-width: 1024px) {
  body .ps-announcement { display: none !important; }
}

/* Keep the cart count badge outside the cart button's border. Older responsive
   rules set overflow:hidden on every header icon and clipped this badge. */
.site-header .header-actions { overflow: visible !important; }
.site-header .header-icon-link.ps-cart-link {
  position: relative !important;
  overflow: visible !important;
  isolation: isolate !important;
}
.site-header .header-icon-link.ps-cart-link .ps-cart-count-fragment {
  position: absolute !important;
  top: -6px !important;
  right: -5px !important;
  z-index: 8 !important;
  display: grid !important;
  place-items: center !important;
  min-width: 17px !important;
  width: auto !important;
  height: 17px !important;
  padding: 0 4px !important;
  box-sizing: border-box !important;
  border: 2px solid #fff !important;
  border-radius: 999px !important;
  background: #e74031 !important;
  color: #fff !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  pointer-events: none !important;
  overflow: visible !important;
}

/* The menu button's close mark is drawn from the accessible expanded state,
   so it remains visible even if a cached/legacy SVG icon fails to swap paths. */
.site-header .menu-toggle::before,
.site-header .menu-toggle::after { content: none !important; }
.site-header .menu-toggle[aria-expanded="true"] .ps-menu-icon { visibility: hidden !important; }
.site-header .menu-toggle[aria-expanded="true"]::before,
.site-header .menu-toggle[aria-expanded="true"]::after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  display: block !important;
  width: 18px !important;
  height: 2px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: currentColor !important;
  box-shadow: none !important;
  transform-origin: center !important;
  pointer-events: none !important;
}
.site-header .menu-toggle[aria-expanded="true"]::before {
  transform: translate(-50%, -50%) rotate(45deg) !important;
}
.site-header .menu-toggle[aria-expanded="true"]::after {
  transform: translate(-50%, -50%) rotate(-45deg) !important;
}

/* Shorter home hero on tablet/phone. The old 850px slider and 580px copy panel
   reserved a large blank area around the heading and call-to-action. */
@media (max-width: 900px) {
  body .ps-home .ps-hero-slider.ps-home-hero,
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-slides,
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-slide {
    height: 640px !important;
    min-height: 640px !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero { padding-block: 0 !important; }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-media {
    min-height: 0 !important;
  }
}
@media (max-width: 760px) {
  body .ps-home .ps-hero-slider.ps-home-hero,
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-slides,
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-slide {
    height: 640px !important;
    min-height: 640px !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-slides {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-media {
    inset: auto 0 0 !important;
    width: 100% !important;
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-media img {
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-copy {
    width: 100% !important;
    height: 420px !important;
    min-height: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 23px 18px 8px !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-copy > .eyebrow {
    margin: 0 0 7px !important;
    font-size: 10px !important;
    line-height: 1.4 !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-copy h1 {
    max-width: 100% !important;
    margin: 5px 0 9px !important;
    font-size: clamp(31px, 8.8vw, 38px) !important;
    line-height: 1.06 !important;
    letter-spacing: -.035em !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-copy p {
    max-width: 100% !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .hero-actions {
    width: auto !important;
    margin-top: 13px !important;
    gap: 8px !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .hero-actions .btn {
    width: auto !important;
    min-height: 42px !important;
    padding: 0 15px !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .hero-mini-proof {
    margin-top: 9px !important;
    gap: 6px 11px !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .hero-mini-proof > span {
    font-size: 9px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-arrow {
    bottom: 12px !important;
    top: auto !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-prev { left: 12px !important; }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-next { right: 12px !important; }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-dots { bottom: 19px !important; }

  /* Category copy should follow its description naturally rather than holding
     desktop-sized description slots and pushing the label down. */
  body .ps-home .ps-category-copy {
    min-height: 0 !important;
    height: auto !important;
    padding: 12px !important;
    justify-content: flex-start !important;
  }
  body .ps-home .ps-category-copy p {
    min-height: 0 !important;
    height: auto !important;
    margin: 0 0 6px !important;
    line-height: 1.45 !important;
  }
  body .ps-home .ps-category-copy > span {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  /* Compact the four how-it-works cards without squeezing their text. */
  body .ps-home .ps-how-section .ps-steps-grid { margin-top: 22px !important; gap: 11px !important; }
  body .ps-home .ps-how-section .ps-steps-grid > .ps-step {
    padding: 15px 14px !important;
    border-radius: 14px !important;
  }
  body .ps-home .ps-how-section .ps-step-num { top: 12px !important; right: 12px !important; }
  body .ps-home .ps-how-section .ps-step-icon { margin: 12px 0 10px !important; width: 40px !important; height: 40px !important; border-radius: 12px !important; }
  body .ps-home .ps-how-section .ps-step h3 { margin-bottom: 5px !important; font-size: 15px !important; }
  body .ps-home .ps-how-section .ps-step p { font-size: 12px !important; line-height: 1.5 !important; }

  /* Customer stories: one full-width card per row and a lighter card inset. */
  body .ps-home .ps-testimonial-section .testimonial-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    margin-top: 22px !important;
  }
  body .ps-home .ps-testimonial-section .quote {
    width: 100% !important;
    min-width: 0 !important;
    padding: 18px !important;
    border-radius: 14px !important;
  }
  body .ps-home .ps-testimonial-section .quote p { margin: 8px 0 12px !important; font-size: 14px !important; line-height: 1.6 !important; }

  /* The 210px lower inset belongs to a shared desktop CTA composition, not the
     mobile homepage. Restore ordinary card and section padding here. */
  body .ps-home section.cta {
    margin: 0 !important;
    padding: 26px 0 !important;
  }
  body .ps-home section.cta .ps-cta-box,
  body .ps-home .cta-box.ps-cta-box {
    min-height: 0 !important;
    margin: 0 !important;
    padding: 25px 18px 28px !important;
    background-position: center bottom !important;
    background-size: cover !important;
  }
  body .ps-home .ps-cta-box .hero-actions { margin-top: 16px !important; }
}
@media (max-width: 400px) {
  body .ps-home .ps-hero-slider.ps-home-hero,
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-slides,
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-slide {
    height: 650px !important;
    min-height: 650px !important;
  }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-copy { height: 430px !important; padding-inline: 15px !important; }
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-copy h1 { font-size: clamp(30px, 9vw, 35px) !important; }
  body .ps-home .ps-hero-slider.ps-home-hero .hero-mini-proof { gap: 5px 8px !important; }
  body .ps-home .ps-category-copy { padding: 11px !important; }
  body .ps-home .ps-how-section .ps-steps-grid > .ps-step { padding: 13px 12px !important; }
  body .ps-home .ps-testimonial-section .quote { padding: 16px !important; }
  body .ps-home section.cta .ps-cta-box,
  body .ps-home .cta-box.ps-cta-box { padding: 22px 15px 25px !important; }
}


/* PrintStrokes v3.11.82 — responsive spacing and single-product refinements.
   Several older mobile rules added padding to BOTH #main-content and the
   already-guttered .container. Remove that duplicate inset on small screens. */
@media (max-width: 600px) {
  main .container,
  .site-main .container,
  .woocommerce-page-wrap {
    padding-inline: 0 !important;
  }
}

/* Product page: use one source of horizontal gutters instead of nesting
   #main-content padding + .container padding + a reduced container width. */
@media (max-width: 900px) {
  body.single-product #main-content.woocommerce-page-wrap.is-single-product {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    box-sizing: border-box !important;
  }
  body.single-product #main-content .ps-product-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    box-sizing: border-box !important;
  }
  body.single-product #main-content .ps-product-shell > .container {
    width: calc(100% - 32px) !important;
    max-width: 1240px !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box !important;
  }
  body.single-product #main-content .ps-product-breadcrumb,
  body.single-product #main-content .ps-product-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    box-sizing: border-box !important;
  }
  body.single-product .ps-product-content > div.product > .ps-product-main-row,
  body.single-product .ps-product-content > div.product > .ps-product-main-row > .images,
  body.single-product .ps-product-content > div.product > .ps-product-main-row > .summary {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Keep the wishlist directly beside the product heading, not detached at
     the edge of a padded summary column. */
  body.single-product .ps-product-content > div.product > .ps-product-main-row > .summary {
    position: relative !important;
  }
  body.single-product .ps-product-content .product .summary .product_title {
    display: block !important;
    width: calc(100% - 52px) !important;
    max-width: calc(100% - 52px) !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere !important;
  }
  body.single-product .ps-product-content .product .summary .ps-single-wishlist {
    top: 1px !important;
    right: 0 !important;
    margin: 0 !important;
  }
  body.single-product .ps-product-content .product .summary:has(.ps-product-topline) .ps-single-wishlist {
    top: 29px !important;
  }

  /* Related products are a readable vertical list on responsive layouts.
     WooCommerce still returns four for desktop; the fourth is hidden here. */
  body.single-product .ps-product-content .related ul.products {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }
  body.single-product .ps-product-content .related ul.products > li.product {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
  }
  body.single-product .ps-product-content .related ul.products > li.product:nth-child(n + 4) {
    display: none !important;
  }
}

@media (max-width: 520px) {
  body.single-product #main-content .ps-product-shell > .container {
    width: calc(100% - 24px) !important;
  }
  body.single-product .ps-product-content .product .summary .product_title {
    width: calc(100% - 48px) !important;
    max-width: calc(100% - 48px) !important;
    font-size: clamp(24px, 7vw, 31px) !important;
    line-height: 1.14 !important;
  }
  body.single-product .ps-product-content .product .summary .ps-single-wishlist {
    top: 1px !important;
  }
  body.single-product .ps-product-content .product .summary:has(.ps-product-topline) .ps-single-wishlist {
    top: 28px !important;
  }
  body.single-product .ps-single-wishlist button.ps-product-single-wishlist-icon {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
  }
  body.single-product .related > h2 {
    font-size: 22px !important;
    line-height: 1.25 !important;
  }
}

@media (max-width: 360px) {
  body.single-product #main-content .ps-product-shell > .container {
    width: calc(100% - 20px) !important;
  }
}

/* PrintStrokes v3.11.82 — remove the mobile hero blank band and normalize
   shared CTA height on About Us. The copy panel now ends shortly after the
   proof row; the lifestyle image remains in its own bottom strip. */
@media (max-width: 760px) {
  body .ps-home .ps-hero-slider.ps-home-hero,
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-slides,
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-slide {
    height: 550px !important;
    min-height: 550px !important;
  }

  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-copy {
    height: 330px !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    padding: 23px 18px 12px !important;
    justify-content: flex-start !important;
  }

  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-media {
    inset: auto 0 0 !important;
    width: 100% !important;
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
  }

  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-media img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
  }

  /* A global mobile CTA rule reserved 210px under the content for artwork.
     About Us should keep the artwork as a background, not as empty layout. */
  html body .ps-about-page .cta.ps-unified-cta {
    margin-block: 0 !important;
    padding-block: 26px 30px !important;
  }
  html body .ps-about-page .cta.ps-unified-cta .cta-box.ps-cta-box,
  html body .ps-about-page .cta.ps-unified-cta .ps-cta-box {
    height: auto !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    padding: 28px 18px 30px !important;
    background-position: center, right bottom !important;
    background-size: 100% 100%, auto 100% !important;
  }
}

@media (max-width: 400px) {
  body .ps-home .ps-hero-slider.ps-home-hero .ps-hero-copy {
    height: 330px !important;
    padding-inline: 15px !important;
  }
}

