/* NorthShore store layer: footer, cart page and mobile fixes. Loads last. */

/* Never let any element push the page sideways on phones */
html,body{max-width:100%;overflow-x:clip}

/* ---------- Mobile header: keep logo, account and cart inside the screen ---------- */
@media(max-width:980px){
  .ns-header-row{grid-template-columns:40px minmax(0,1fr) auto}
  .ns-header .ns-logo{min-width:0;max-width:100%;font-size:clamp(15px,4.6vw,20px);gap:6px}
  .ns-header .ns-logo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .ns-header .ns-logo svg{width:20px;height:20px}
  .ns-actions{gap:2px}
  .ns-acct,.ns-cart{padding:8px 6px}
  .ns-cart b{right:-2px}
  .ns-burger{width:40px;height:40px}
}

/* ---------- Footer ---------- */
.ns-ft{background:var(--navy);color:#c9d3e0;margin-top:80px;font-size:14px;line-height:1.6;border-top:0}
.ns-ft a{color:inherit}
.ns-ft-main{display:grid;grid-template-columns:minmax(260px,1.1fr) 2.4fr;gap:64px;padding-top:64px;padding-bottom:56px}
.ns-ft .ns-logo{color:#fff;font-size:21px;font-weight:600;letter-spacing:-.01em}
.ns-ft .ns-logo svg{width:22px;height:22px;color:var(--primary)}
.ns-ft-about{margin:16px 0 22px;max-width:340px;color:#aab6c6}
.ns-ft-contact{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.ns-ft-contact li{display:flex;gap:12px;align-items:flex-start}
.ns-ft-contact svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--primary)}
.ns-ft-contact address{font-style:normal}
.ns-ft-contact small{color:#8796ab}
.ns-ft-contact a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.ns-ft-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.ns-ft-col h3{margin:4px 0 18px;font:600 13px "IBM Plex Sans",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#fff;opacity:1}
.ns-ft-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ns-ft-col li{margin:0}
.ns-ft-col a{color:#aab6c6;opacity:1;transition:color .15s}
.ns-ft-col a:hover{color:#fff;text-decoration:none}
.ns-ft-bottom{border-top:1px solid rgba(255,255,255,.1)}
.ns-ft-bottom-in{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}
.ns-ft-copy{margin:0;font-size:13px;color:#8796ab}
.ns-ft-pay .ns-pay{margin:0;gap:6px}
.ns-ft-pay .ns-pay li{background:#fff;border-color:transparent;border-radius:4px}

@media(max-width:1100px){
  .ns-ft-main{grid-template-columns:1fr;gap:44px}
  .ns-ft-about{max-width:560px}
}
@media(max-width:700px){
  .ns-ft{margin-top:56px}
  .ns-ft-main{padding-top:48px;padding-bottom:40px;gap:36px}
  .ns-ft-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}
  .ns-ft-bottom-in{flex-direction:column;align-items:flex-start}
}

/* ---------- Cart page ---------- */
.woocommerce-cart .ns-shop{padding-top:32px}
.woocommerce-cart .woocommerce{max-width:100%}
.woocommerce-cart .woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error{list-style:none;margin:0 0 20px;padding:14px 18px;border:1px solid var(--border);border-left:3px solid var(--primary);background:#fff;border-radius:var(--r);font-size:14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.woocommerce-message .button,.woocommerce-info .button{order:2}
table.shop_table.cart{width:100%;border-collapse:collapse;table-layout:auto;background:#fff;border:1px solid var(--border);margin:0 0 32px;font-size:15px}
table.shop_table.cart th{text-align:left;padding:14px 16px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);background:var(--alt)}
table.shop_table.cart td{padding:18px 16px;border-bottom:1px solid var(--border);vertical-align:middle}
table.shop_table.cart td.product-remove{width:44px;text-align:center}
table.shop_table.cart td.product-remove a.remove{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;font-size:20px;line-height:1;color:var(--muted)}
table.shop_table.cart td.product-remove a.remove:hover{background:#fdecea;color:#c0392b}
table.shop_table.cart td.product-thumbnail{width:96px}
table.shop_table.cart td.product-thumbnail img{display:block;width:80px;height:80px;object-fit:contain;background:var(--alt);padding:6px;border-radius:var(--r)}
table.shop_table.cart td.product-name a{font-weight:500;line-height:1.4}
table.shop_table.cart td.product-name a:hover{color:var(--primary-d)}
table.shop_table.cart td.product-name dl.variation{margin:6px 0 0;font-size:13px;color:var(--muted)}
table.shop_table.cart .quantity .qty{width:72px;padding:10px;border:1px solid var(--border);border-radius:var(--r);font:inherit;text-align:center}
table.shop_table.cart td.product-subtotal{font-weight:600}
table.shop_table.cart td.actions{padding:16px;background:#fff}
table.shop_table.cart td.actions .coupon{display:flex;gap:10px;flex-wrap:wrap;float:left}
table.shop_table.cart td.actions .coupon .input-text{width:200px;max-width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:var(--r);font:inherit}
table.shop_table.cart td.actions>.button{float:right}
table.shop_table.cart td.actions:after{content:"";display:table;clear:both}
.woocommerce-cart .button,.woocommerce-cart button.button{display:inline-block;padding:11px 20px;border:1px solid var(--fg);background:transparent;color:var(--fg);border-radius:var(--r);font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}
.woocommerce-cart .button:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.woocommerce-cart .button:disabled,.woocommerce-cart .button[disabled]{opacity:.45;cursor:not-allowed;background:transparent;color:var(--fg)}

.cart-collaterals{display:flex;justify-content:flex-end;margin:0 0 24px}
.cart-collaterals .cross-sells{display:none}
.cart_totals{width:100%;max-width:440px;background:var(--alt);padding:28px;border-radius:var(--r)}
.cart_totals h2{font-size:20px;font-weight:500;margin:0 0 18px}
.cart_totals table.shop_table{width:100%;border-collapse:collapse;font-size:14.5px}
.cart_totals table th,.cart_totals table td{padding:12px 0;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.cart_totals table th{font-weight:500;color:var(--muted);width:40%}
.cart_totals table td{text-align:right}
.cart_totals .order-total th,.cart_totals .order-total td{border-bottom:0;padding-top:16px;font-size:18px;font-weight:600;color:var(--fg)}
.cart_totals #shipping_method{list-style:none;margin:0;padding:0}
.cart_totals #shipping_method li{margin:0 0 4px}
.cart_totals .woocommerce-shipping-destination{font-size:13px;color:var(--muted);margin:6px 0}
.cart_totals .shipping-calculator-button{font-size:13px;text-decoration:underline}
.cart_totals .shipping-calculator-form p{margin:0 0 8px}
.cart_totals .shipping-calculator-form input,.cart_totals .shipping-calculator-form select{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:var(--r);font:inherit}
.wc-proceed-to-checkout{margin-top:20px}
.wc-proceed-to-checkout a.checkout-button{display:block;width:100%;text-align:center;padding:16px 20px;background:var(--primary);border:0;color:#fff!important;font-size:16px;font-weight:600;border-radius:var(--r)}
.wc-proceed-to-checkout a.checkout-button:hover{background:var(--primary-d)}
.cart-empty{font-size:18px;margin:8px 0 18px}
.return-to-shop .button{background:var(--primary);border-color:var(--primary);color:#fff}

/* Phones: each cart line becomes a card instead of a wide table */
@media(max-width:768px){
  table.shop_table.cart{border:0;background:transparent;font-size:14.5px}
  table.shop_table.cart thead{display:none}
  table.shop_table.cart,table.shop_table.cart tbody,table.shop_table.cart tr,table.shop_table.cart td{display:block;width:100%}
  table.shop_table.cart tr.cart_item{position:relative;min-height:112px;margin:0 0 14px;padding:16px 48px 12px 112px;background:#fff;border:1px solid var(--border);border-radius:var(--r)}
  table.shop_table.cart tr.cart_item td{padding:4px 0;border:0;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:12px}
  table.shop_table.cart tr.cart_item td[data-title]:before{content:attr(data-title);font-size:12px;font-weight:500;color:var(--muted);flex:none}
  table.shop_table.cart tr.cart_item td.product-name{display:block;padding-bottom:8px}
  table.shop_table.cart tr.cart_item td.product-name:before{display:none}
  table.shop_table.cart tr.cart_item td.product-name a{overflow-wrap:anywhere}
  table.shop_table.cart td.product-thumbnail{position:absolute;top:16px;left:16px;width:80px;padding:0;display:block}
  table.shop_table.cart td.product-remove{position:absolute;top:8px;right:8px;width:auto;padding:0;display:block}
  table.shop_table.cart .quantity .qty{width:64px;padding:8px}
  table.shop_table.cart td.actions{padding:16px;border:1px solid var(--border);border-radius:var(--r)}
  table.shop_table.cart td.actions .coupon{float:none;margin:0 0 12px}
  table.shop_table.cart td.actions .coupon .input-text{flex:1 1 160px;width:auto}
  table.shop_table.cart td.actions .coupon .button{flex:0 0 auto}
  table.shop_table.cart td.actions>.button{float:none;width:100%}
  .cart-collaterals{display:block}
  .cart_totals{max-width:none;padding:22px 18px}
}
@media(max-width:380px){
  table.shop_table.cart tr.cart_item{padding-left:92px}
  table.shop_table.cart td.product-thumbnail{width:64px}
  table.shop_table.cart td.product-thumbnail img{width:64px;height:64px}
}