/* Nivara 1.0.4. Component boundaries prevent generic prose/form rules from
   overriding WooCommerce Blocks. Keep content visible rather than hiding overflow. */
body.nivara-theme :where(.page-content,.shop-main,.page-main,.woocommerce,.wc-block-cart,.wc-block-checkout){min-width:0}
body.nivara-theme :where(.section-heading,.trust-item,.category-tile,.review-card-head,.footer-main,.footer-callout,.product-reassurance>div,.search-result,.product-utility)>*{min-width:0}
body.nivara-theme :where(.page-heading,.section-heading,.hero-copy,.story-copy,.category-tile,.review-card,.footer-main,.footer-callout,.product_title,.woocommerce-loop-product__title,.woocommerce-product-details__short-description,.product-reassurance,.product-help,.search-result,.nv-notification-copy){overflow-wrap:anywhere}
body.nivara-theme .hero-copy :is(h1,h2) p{margin:0;font:inherit;line-height:inherit}
body.nivara-theme :where(.button,.wp-element-button,.text-link){max-width:100%;white-space:normal;overflow-wrap:anywhere}
body.nivara-theme .text-link .nv-icon{flex-shrink:0}
body.nivara-theme .search-result img,body.nivara-theme .review-card-head img{flex-shrink:0}
body.nivara-theme .main-navigation .sub-menu{max-width:calc(100vw - 32px)}
body.nivara-theme .main-navigation>.menu>li:last-child>.sub-menu{left:auto;right:0}
body.nivara-theme .woocommerce div.product .woocommerce-tabs ul.tabs{display:flex;flex-wrap:wrap;gap:8px 24px;padding-inline:0}
body.nivara-theme .woocommerce div.product .woocommerce-tabs ul.tabs li{white-space:normal;max-width:100%;margin:0}
body.nivara-theme .woocommerce div.product .woocommerce-tabs ul.tabs li a{overflow-wrap:anywhere}
body.nivara-theme .woocommerce .product-utility{flex-wrap:wrap}
body.nivara-theme .nv-variation-buttons{flex-wrap:wrap}
body.nivara-theme .nv-variation-buttons button{max-width:100%;overflow-wrap:anywhere;white-space:normal}
body.nivara-theme .woocommerce ul.products li.product .onsale{max-width:calc(100% - 62px);overflow-wrap:anywhere}
body.nivara-theme .woocommerce div.product form.cart:not(.variations_form):not(.grouped_form),
body.nivara-theme .woocommerce div.product .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}
body.nivara-theme .woocommerce div.product form.cart .quantity{float:none;margin:0;flex:0 0 auto}
body.nivara-theme .woocommerce div.product form.cart .single_add_to_cart_button{float:none;min-width:0;max-width:100%;flex:1 1 160px;margin:0;height:auto;white-space:normal;overflow-wrap:anywhere}

/* Cart and checkout outer columns. Avoid min-content widths stretching the page. */
body.nivara-theme .page-content :is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout){width:100%;max-width:100%;margin-inline:0}
body.nivara-theme :is(.wc-block-cart,.wc-block-checkout,.wc-block-components-sidebar-layout){min-width:0;max-width:100%}
body.nivara-theme :is(.wc-block-components-main,.wc-block-components-sidebar,.wp-block-woocommerce-cart-items-block,.wp-block-woocommerce-cart-totals-block){min-width:0;max-width:100%;box-sizing:border-box}
body.nivara-theme .wc-block-cart table.wc-block-cart-items{width:100%;max-width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;margin:0}
body.nivara-theme .wc-block-cart table.wc-block-cart-items :is(th,td){box-sizing:border-box;background:transparent;padding:16px 12px;vertical-align:top;line-height:1.5;min-width:0}
body.nivara-theme .wc-block-cart table.wc-block-cart-items th.wc-block-cart-items__header-image,
body.nivara-theme .wc-block-cart table.wc-block-cart-items td.wc-block-cart-item__image{width:80px;padding-left:0}
body.nivara-theme .wc-block-cart table.wc-block-cart-items th.wc-block-cart-items__header-total,
body.nivara-theme .wc-block-cart table.wc-block-cart-items td.wc-block-cart-item__total{width:112px;text-align:right;padding-right:0}
body.nivara-theme .wc-block-cart .wc-block-cart-item__image img{display:block;width:64px;max-width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
body.nivara-theme .wc-block-cart :is(.wc-block-cart-item__product,.wc-block-cart-item__wrap,.wc-block-components-product-metadata){min-width:0;max-width:100%;overflow-wrap:anywhere}
body.nivara-theme .wc-block-cart .wc-block-components-product-name{display:block;max-width:100%;font-size:14px;line-height:1.5;overflow-wrap:anywhere;word-break:normal;white-space:normal;text-decoration:none}
body.nivara-theme .wc-block-cart .wc-block-cart-item__wrap>*{margin-top:0;margin-bottom:8px}
body.nivara-theme .wc-block-cart .wc-block-components-product-price{display:flex;flex-wrap:wrap;gap:2px 6px;font-size:13px;line-height:1.5;max-width:100%}
body.nivara-theme .wc-block-cart .wc-block-components-product-price :is(del,ins){display:inline-block;white-space:normal;overflow-wrap:anywhere}
body.nivara-theme .wc-block-cart .wc-block-components-sale-badge{display:inline-block;max-width:100%;margin:0;padding:3px 7px;font-size:11px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
body.nivara-theme .wc-block-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper{display:flex;flex-direction:column;gap:6px;align-items:flex-end;min-width:0;max-width:100%}
body.nivara-theme .wc-block-cart .wc-block-cart-item__quantity{display:flex;flex-wrap:wrap;align-items:center;gap:10px;max-width:100%;margin:12px 0 0;padding:0}
body.nivara-theme .wc-block-cart .wc-block-cart-item__remove-link{position:static;display:inline-flex;align-items:center;justify-content:center;float:none;min-height:40px;margin:0;padding:6px;border:0;max-width:100%;white-space:normal}

/* Quantity controls: explicit box model wins over prose and form input defaults.
   Widths add up to 110px; hidden inputs retain native hidden behavior. */
body.nivara-theme .wc-block-components-quantity-selector:not([hidden]):has(input:not([type=hidden])){box-sizing:border-box;display:flex;align-items:stretch;flex:0 0 110px;width:110px;min-width:110px;max-width:110px;height:42px;min-height:42px;max-height:42px;margin:0;padding:0;border:1px solid var(--nv-border);border-radius:4px;background:var(--nv-background);color:var(--nv-text);overflow:visible}
body.nivara-theme .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:not([type=hidden]){box-sizing:border-box;position:static;display:block;float:none;flex:1 1 40px;width:40px;min-width:0;max-width:none;height:40px;min-height:0;max-height:40px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;box-shadow:none;text-align:center;line-height:40px;font-size:14px;appearance:textfield}
body.nivara-theme .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button{box-sizing:border-box;position:static;display:flex;align-items:center;justify-content:center;float:none;flex:0 0 34px;width:34px;min-width:0;max-width:34px;height:40px;min-height:0;max-height:40px;margin:0;padding:0;border:0;background:transparent;color:inherit;font-size:16px;line-height:1;box-shadow:none;transform:none}
body.nivara-theme .wc-block-components-quantity-selector input::-webkit-inner-spin-button,
body.nivara-theme .wc-block-components-quantity-selector input::-webkit-outer-spin-button{appearance:none;margin:0}
body.nivara-theme .wc-block-components-quantity-selector :is(input,button):focus-visible{outline:2px solid var(--nv-focus);outline-offset:-3px}
body.nivara-theme .wc-block-components-quantity-selector[hidden]{display:none!important}
body.nivara-theme .wc-block-cart .wc-block-cart__submit-button{width:100%;min-height:48px;max-width:100%;white-space:normal;text-align:center;text-decoration:none}
body.nivara-theme .wc-block-cart .wc-block-cart__submit-button .wc-block-components-button__text{min-width:0;overflow-wrap:anywhere}
body.nivara-theme :is(.wc-block-cart,.wc-block-checkout) :is(.wc-block-components-totals-wrapper,.wc-block-components-totals-item,.wc-block-components-panel){min-width:0;max-width:100%}
body.nivara-theme :is(.wc-block-cart,.wc-block-checkout) .wc-block-components-totals-item__label{min-width:0;flex:1;overflow-wrap:anywhere;padding-right:12px}
body.nivara-theme :is(.wc-block-cart,.wc-block-checkout) .wc-block-components-totals-item__value{flex:0 0 auto;max-width:55%;text-align:right;overflow-wrap:anywhere}
body.nivara-theme .wc-block-components-radio-control__option{min-width:0;overflow-wrap:anywhere}
body.nivara-theme .wc-block-components-text-input input{box-sizing:border-box}

/* One stable desktop grid even when WooCommerce switches on container classes. */
body.nivara-theme .wc-block-cart table.wc-block-cart-items,
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody{display:block!important;width:100%}
body.nivara-theme .wc-block-cart table.wc-block-cart-items thead{display:none}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row{display:grid!important;grid-template-columns:80px minmax(0,1fr) 112px!important;grid-template-rows:auto!important;grid-template-areas:"image product total"!important;gap:16px!important;width:100%!important;min-width:0;padding:20px 0;border-bottom:1px solid var(--nv-border);align-items:start}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td{position:static!important;display:block!important;float:none!important;width:auto!important;min-width:0!important;max-width:100%!important;margin:0!important;padding:0!important;border:0;transform:none!important}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__image{grid-area:image!important}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__product{grid-area:product!important}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__total{grid-area:total!important}
body.nivara-theme .wc-block-cart .wc-block-cart-item__prices{display:flex;flex-wrap:wrap;min-width:0;max-width:100%;gap:6px;align-items:center}
body.nivara-theme .wc-block-cart .wc-block-cart-item__wrap{width:100%;min-width:0;max-width:100%;padding:0}
body.nivara-theme .wc-block-cart .wc-block-cart-item__wrap>*{min-width:0;max-width:100%}
/* Two deliberate areas instead of mixing WooCommerce named areas with numeric
   grid lines. !important is limited to the grid contract that third-party block
   styles and container queries also set, including styles loaded in the footer. */
@media(max-width:900px){
body.nivara-theme .wc-block-components-sidebar-layout{display:flex;flex-direction:column;gap:24px}
body.nivara-theme .wc-block-components-sidebar-layout :is(.wc-block-components-main,.wc-block-components-sidebar){width:100%;flex:0 0 auto;margin:0;padding:0}
body.nivara-theme .wc-block-cart table.wc-block-cart-items,
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody{display:block!important;width:100%;min-width:0}
body.nivara-theme .wc-block-cart table.wc-block-cart-items thead{display:none}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row{display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;grid-template-rows:auto auto!important;grid-template-areas:"image product" "image total"!important;gap:10px 16px!important;width:100%!important;min-width:0;margin:0;padding:20px 0;border:0;border-bottom:1px solid var(--nv-border);align-items:start}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td{position:static!important;display:block!important;float:none!important;width:auto!important;min-width:0!important;max-width:100%!important;margin:0!important;padding:0!important;border:0;transform:none!important;align-self:start}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__image{grid-area:image!important}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__product{grid-area:product!important}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__total{grid-area:total!important;text-align:left}
body.nivara-theme .wc-block-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper{align-items:flex-start}
body.nivara-theme .wc-block-cart .wc-block-cart-item__wrap{padding:0;margin:0}
body.nivara-theme .wc-block-cart .wc-block-components-product-name{font-size:14px}
body.nivara-theme .wc-block-cart .wc-block-cart-item__total::before{content:"";display:none}
}
/* Also respect WooCommerce's narrow-container classes on wider viewports. */
body.nivara-theme .wc-block-cart:is(.is-mobile,.is-small) table.wc-block-cart-items tbody tr.wc-block-cart-items__row{display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;grid-template-rows:auto auto!important;grid-template-areas:"image product" "image total"!important;gap:10px 16px!important}
body.nivara-theme .wc-block-cart:is(.is-mobile,.is-small) table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td{position:static!important;display:block!important;float:none!important;width:auto!important;min-width:0!important;max-width:100%!important;margin:0!important;padding:0!important}
body.nivara-theme .wc-block-cart:is(.is-mobile,.is-small) table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__image{grid-area:image!important}
body.nivara-theme .wc-block-cart:is(.is-mobile,.is-small) table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__product{grid-area:product!important}
body.nivara-theme .wc-block-cart:is(.is-mobile,.is-small) table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__total{grid-area:total!important;text-align:left}
body.nivara-theme .wc-block-cart:is(.is-mobile,.is-small) .wc-block-cart-item__total-price-and-sale-badge-wrapper{align-items:flex-start}

/* Classic WooCommerce carts and mini cart remain supported. */
body.nivara-theme .woocommerce-cart-form,body.nivara-theme .cart-collaterals,body.nivara-theme .cart_totals{max-width:100%;min-width:0}
body.nivara-theme .woocommerce table.shop_table .product-name{overflow-wrap:anywhere;white-space:normal}
body.nivara-theme .woocommerce-mini-cart__buttons{flex-wrap:wrap}
body.nivara-theme .woocommerce-mini-cart__buttons .button{flex:1 1 120px;min-width:0;white-space:normal;text-align:center}
body.nivara-theme :is(.nv-dialog,.drawer){max-width:100%;overflow-y:auto}
body.nivara-theme .dialog-heading{min-width:0}
body.nivara-theme .dialog-heading h2{min-width:0;overflow-wrap:anywhere}
body.nivara-theme .dialog-heading .icon-button{flex-shrink:0}
body.nivara-theme .cart-drawer{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
@media(max-width:680px){
body.nivara-theme .section-heading{flex-wrap:wrap}
body.nivara-theme .section-heading>div{flex:1 1 180px}
body.nivara-theme .section-heading .text-link{max-width:100%;flex:0 1 auto}
body.nivara-theme .trust-item{min-width:0}
body.nivara-theme .trust-item>.nv-icon{flex-shrink:0}
body.nivara-theme .footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}
body.nivara-theme .footer-brand{max-width:100%;min-width:0}
body.nivara-theme .footer-brand a{max-width:100%;overflow-wrap:anywhere}
body.nivara-theme .woocommerce-cart .page-heading{padding:12px 0 20px}
body.nivara-theme.woocommerce-cart .page-heading{padding:12px 0 20px}
body.nivara-theme.woocommerce-cart .page-heading h1{font-size:36px;margin-bottom:12px}
body.nivara-theme .woocommerce table.cart td.actions .coupon{float:none;display:flex;flex-wrap:wrap;width:100%;gap:8px}
body.nivara-theme .woocommerce table.cart td.actions .coupon .input-text,
body.nivara-theme .woocommerce table.cart td.actions .coupon .button{width:auto;flex:1 1 120px;min-width:0;margin:0}
body.nivara-theme .mobile-bottom{height:auto;min-height:calc(64px + env(safe-area-inset-bottom));grid-template-columns:repeat(5,minmax(0,1fr))}
body.nivara-theme .mobile-bottom a{min-width:0}
body.nivara-theme .mobile-bottom a>span:not(.nv-cart-count){text-align:center;overflow-wrap:anywhere}
body.nivara-theme .sticky-purchase{gap:10px;bottom:calc(64px + env(safe-area-inset-bottom));align-items:center}
body.nivara-theme:not(.has-mobile-nav) .sticky-purchase{bottom:0}
body.nivara-theme .sticky-purchase>div{min-width:0;flex:1;max-width:50%}
body.nivara-theme .sticky-purchase .button{flex:0 1 50%;min-width:0;white-space:normal;text-align:center}
body.nivara-theme:not(.has-mobile-nav) .whatsapp-button{bottom:calc(18px + env(safe-area-inset-bottom))}
body.nivara-theme.has-visible-purchase:not(.has-mobile-nav) .whatsapp-button{bottom:calc(90px + env(safe-area-inset-bottom))}
}

/* Narrow cart containers can occur on a wide screen (sidebar layouts). */
@container (max-width:700px){
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row{grid-template-columns:64px minmax(0,1fr)!important;grid-template-rows:auto auto!important;grid-template-areas:"image product" "image total"!important;gap:10px 16px!important}
body.nivara-theme .wc-block-cart table.wc-block-cart-items tbody tr.wc-block-cart-items__row>td.wc-block-cart-item__total{text-align:left}
body.nivara-theme .wc-block-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper{align-items:flex-start}
}
/* Measured heights keep wrapped mobile navigation and purchase controls apart. */
@media(max-width:680px){
body.nivara-theme{--nv-bottom-nav-height:0px;--nv-purchase-height:0px;--nv-notification-bottom:calc(var(--nv-bottom-nav-height) + var(--nv-purchase-height) + 16px)}
body.nivara-theme.has-mobile-nav{--nv-bottom-nav-height:calc(64px + env(safe-area-inset-bottom));padding-bottom:calc(var(--nv-bottom-nav-height) + var(--nv-purchase-height))}
body.nivara-theme.has-visible-purchase{padding-bottom:calc(var(--nv-bottom-nav-height) + var(--nv-purchase-height))}
body.nivara-theme .sticky-purchase,body.nivara-theme:not(.has-mobile-nav) .sticky-purchase{bottom:var(--nv-bottom-nav-height)}
body.nivara-theme .whatsapp-button,body.nivara-theme:not(.has-mobile-nav) .whatsapp-button,body.nivara-theme.has-visible-purchase:not(.has-mobile-nav) .whatsapp-button,body.nivara-theme.has-visible-purchase .whatsapp-button{bottom:calc(var(--nv-bottom-nav-height) + var(--nv-purchase-height) + 16px)}
body.nivara-theme .nv-toast,body.nivara-theme.has-visible-purchase .nv-toast{bottom:calc(var(--nv-bottom-nav-height) + var(--nv-purchase-height) + 18px)}
}
