/* PupVibes mobile unifie — boutique, checkout, panier, produit */
/* PupVibes boutique mobile — corrective grid sizing, 2026-10-11 */
@media screen and (max-width: 767.98px) {
  body#category .pv-shop-layout-container,
  body#search .pv-shop-layout-container,
  body#new-products .pv-shop-layout-container,
  body#prices-drop .pv-shop-layout-container,
  body#best-sales .pv-shop-layout-container,
  body .pv-shop-page {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-inline: 12px !important;
  }
  body .pv-shop-page .pv-boutique-page-title {font-size: clamp(30px,8vw,42px) !important; margin-bottom: 22px !important; overflow-wrap:anywhere !important;}
  body .pv-shop-page .pv-boutique-toolbar {flex-wrap:wrap !important;gap:10px !important;}
  body .pv-shop-page .pv-boutique-toolbar-wrap {margin-bottom:22px !important;}
  body .pv-shop-page .pv-boutique-control {max-width:calc(50% - 5px) !important; min-width:0 !important; width:auto !important;flex:1 1 135px !important;}
  body#category .pv-shop-page #js-product-list .products,
  body#category .pv-shop-page .products,
  body#search .pv-shop-page #js-product-list .products,
  body#search .pv-shop-page .products,
  body .pv-shop-page .product-miniature-list,
  body .pv-shop-page .js-product-miniature-list,
  body .pv-shop-page .products {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:14px !important;
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-inline:0 !important;
    padding-inline:0 !important;
    transform:none !important;
  }
  body .pv-shop-page .products > *,
  body .pv-shop-page .products .product,
  body .pv-shop-page .product-miniature,
  body .pv-shop-page .product-miniature.pv-boutique-card,
  body .pv-shop-page .thumbnail-container,
  body .pv-shop-page .product-miniature__inner {
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    flex-basis:auto !important;
    transform:none !important;
  }
  body .pv-shop-page .product-miniature.pv-boutique-card {height:auto !important;min-height:0 !important;}
  body .pv-shop-page .pv-boutique-card .product-miniature__inner {height:auto !important;min-height:0 !important;padding:12px !important;border-radius:16px !important;}
  body .pv-shop-page .pv-boutique-card .product-miniature__top {height:auto !important;min-height:0 !important;aspect-ratio: 4/3 !important;}
  body .pv-shop-page .pv-boutique-card .product-miniature__top img {width:100% !important;height:100% !important;object-fit:contain !important;}
  body .pv-shop-page .pv-boutique-card .product-miniature__bottom {padding-top:10px !important;}
  body .pv-shop-page .pv-boutique-card .product-miniature__title {font-size:20px !important;min-height:0 !important;overflow-wrap:anywhere !important;}
  body .pv-shop-page .pv-boutique-card-foot {margin-top:12px !important;}
  body .pv-shop-page .pv-boutique-variants {min-width:0 !important;max-width:100% !important;}
  body .pv-shop-page img, body .pv-shop-page picture,body .pv-shop-page svg {max-width:100% !important;}
}

@media screen and (max-width:767.98px) {
 html,body {width:100%;max-width:100%;min-width:0; overflow-x:clip!important;}
 body,body #wrapper,body #main,body main {min-width:0!important;max-width:100%!important;}
 body img,body video,body picture {max-width:100%;height:auto;}
 body .row,body .container,body .container-fluid,body [class*="col-"] {min-width:0;max-width:100%;}
 /* Catalog: prevent desktop width being inherited by small screens */
 body#category .products,body#search .products,body .pv-shop-page .products,body .product-miniature-list {display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important;width:100%!important;min-width:0!important;max-width:100%!important;margin-inline:0!important;transform:none!important;}
 body#category .product-miniature,body#search .product-miniature,body .pv-shop-page .product-miniature,body .pv-shop-page .thumbnail-container,body .product-miniature .thumbnail-container {width:100%!important;min-width:0!important;max-width:100%!important;flex:0 1 auto!important;transform:none!important;}
 body .product-miniature img,body .thumbnail-container img {width:100%;max-width:100%;height:auto;object-fit:contain;}
 /* Product page */
 body#product .product__container,body#product .product__images,body#product .product__information,body#product .product__details,body#product .product__variants,body#product .product__actions {min-width:0!important;max-width:100%!important;width:100%!important;}
 body#product .product__actions-qty-add,body#product .product__variants,body#product .product__variant,body#product .product__variants-item {flex-wrap:wrap;min-width:0;max-width:100%;}
 body#product .product__add-to-cart,body#product .product__add-to-cart-button {min-width:0;max-width:100%;}
 /* Checkout: all form columns are bounded */
 body#checkout #main,body#checkout .checkout,body#checkout .checkout-page,body#checkout .checkout-steps,body#checkout .pv-delivery-contact-card,body#checkout .pv-native-personal-stage,body#checkout #customer-form,body#checkout .form-group,body#checkout .form-row {box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;}
 body#checkout input:not([type=checkbox]):not([type=radio]),body#checkout textarea,body#checkout select,body#checkout .form-control {box-sizing:border-box!important;min-width:0!important;max-width:100%!important;width:100%!important;}
 body#checkout .pv-native-personal-stage #customer-form>section {display:grid!important;grid-template-columns:minmax(0,1fr)!important;min-width:0!important;}
 body#checkout .checkout-steps .nav,body#checkout .checkout-progress,body#checkout .pv-checkout-steps {max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
 /* Cart mascot MUST stay inside aside below product cards */
 body#cart .pv-cart-grid {display:flex!important;flex-direction:column!important;gap:0!important;max-width:100%!important;min-width:0!important;}
 body#cart .cart-grid__content,body#cart .cart-grid__aside {position:relative!important;flex:0 0 auto!important;width:100%!important;max-width:100%!important;min-width:0!important;float:none!important;}
 body#cart .cart-grid__aside {margin:42px 0 0!important;padding:0!important;clear:both!important;}
 body#cart .pv-cart-summary-shell {position:relative!important;width:100%!important;max-width:100%!important;overflow:visible!important;}
 body#cart .pv-cart-summary-stage {position:relative!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;grid-template:none!important;overflow:visible!important;}
 body#cart .pv-cart-summary-stage>.pv-cart-summary-visual {position:relative!important;order:0!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;margin:0 auto -18px!important;transform:none!important;width:min(260px,80vw)!important;max-width:100%!important;height:230px!important;min-height:230px!important;z-index:1!important;pointer-events:none!important;}
 body#cart .pv-cart-summary-stage>.pv-cart-summary-card {position:relative!important;order:1!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;transform:none!important;margin:0!important;width:100%!important;max-width:100%!important;min-width:0!important;z-index:2!important;box-sizing:border-box!important;}
 body#cart .pv-cart-summary-visual .pv-cart-mascot {max-width:100%!important;pointer-events:none!important;}
 body#cart .cart__overview,body#cart .cart__list,body#cart .cart__item,body#cart .product-line,body#cart .product-line__content {min-width:0!important;max-width:100%!important;}
 body#cart .product-line__controls {flex-wrap:wrap!important;gap:8px!important;}
}

/* PupVibes 2026-10-11 — centering product cards & genuine contact form responsive */
@media screen and (max-width:767.98px) {
  /* Center cards in their grid cells; keep a reasonable readable card width */
  body .pv-shop-page .products,
  body#category .products,body#search .products,
  body .pv-shop-page .product-miniature-list {
    grid-template-columns:minmax(0,1fr)!important;
    justify-items:center!important;
    align-items:start!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  body .pv-shop-page .products > *,
  body .pv-shop-page .product-miniature,
  body#category .product-miniature,body#search .product-miniature,
  body .pv-shop-page .product-miniature.pv-boutique-card {
    width:100%!important;
    max-width:370px!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    justify-self:center!important;
  }
  body .pv-shop-page .thumbnail-container,
  body .pv-shop-page .product-miniature__inner,
  body#category .thumbnail-container,body#search .thumbnail-container {
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-inline:auto!important;
  }
  /* Contact page: constrain wrappers, nested columns and form fields */
  body#contact #wrapper,body#contact #main,body#contact main,
  body#contact .container,body#contact .container-fluid,
  body#contact .page-content,body#contact .page-content-wrapper,
  body#contact .contact-form,body#contact .contact-form form,
  body#contact .contact-form .form-fields,
  body#contact .contact-form .mb-3,
  body#contact .contact-form .buttons-wrapper {
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  body#contact .row,body#contact [class*="col-"],
  body#contact .contact-form .form-group,body#contact .contact-form .form-row,
  body#contact .contact-form .form-row>* {
    box-sizing:border-box!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body#contact .contact-form {padding:16px!important;margin-inline:auto!important;}
  body#contact .contact-form input:not([type=checkbox]):not([type=radio]),
  body#contact .contact-form select,
  body#contact .contact-form textarea,
  body#contact .contact-form .form-control,
  body#contact .contact-form .form-select {
    box-sizing:border-box!important;
    display:block;
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
  }
  body#contact .contact-form .buttons-wrapper {display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;}
  body#contact .contact-form .buttons-wrapper button {max-width:100%!important;white-space:normal!important;}
}
