/* Hardware shop: WooCommerce still owns products, prices, sorting and the cart. */
.tg-hardware { margin: 0; }
.tg-hardware > * { margin-block-start: 0; }
.tg-hardware-hero { background: var(--tg-section-wash); }
.tg-hardware-hero-row { align-items: center !important; gap: clamp(2rem, 5vw, 4rem); }
.tg-hardware-hero h1 { margin: 1rem 0 1.25rem; font-size: clamp(2.25rem, 4vw, 3.75rem); line-height: 1.12; letter-spacing: -.05em; }
.tg-hardware-hero .tg-lead { margin-inline: 0; font-size: 1.0625rem; }
.tg-hardware-hero .wp-block-buttons { gap: .75rem; margin-top: 1.5rem; }
.tg-hardware-note { color: var(--tg-muted); font-size: .8125rem; margin-top: 1.25rem; }
.tg-hardware-showcase { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .6fr); align-items: end; gap: 1rem; padding: 1.5rem; background: #fff; border: 1px solid #e8eef6; border-radius: 24px; box-shadow: 0 18px 45px #10223908; }
.tg-hardware-showcase > figure { margin: 0; }
.tg-hardware-showcase img { display: block; width: 100%; height: auto; }
.tg-hardware-showcase figcaption { color: var(--tg-muted); font-size: .75rem; line-height: 1.5; text-align: center; margin-top: .75rem; }
.tg-hardware-showcase .tg-hardware-printer { margin-bottom: .25rem; }
.tg-hardware-catalogue { background: #fff; }
.tg-hardware-catalogue h2 { margin: 0 0 .8rem; }
.tg-shop-intro { color: var(--tg-muted); max-width: 750px; }
.tg-shop-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-block: 2rem; }
.tg-shop-categories { display: flex; flex-wrap: wrap; gap: .5rem; }
.tg-shop-categories a { display: inline-block; color: var(--tg-muted); text-decoration: none; border: 1px solid var(--tg-line); border-radius: 100px; padding: .6rem 1rem; font-size: .875rem; line-height: 1.5; }
.tg-shop-categories a:hover { color: var(--tg-blue); background: #eff7ff; border-color: #a8c8ff; }
.tg-shop-categories a[aria-current="page"] { background: var(--tg-blue); border-color: var(--tg-blue); color: #fff; }
.tg-shop-cart-status { position: fixed; right: max(1.25rem, env(safe-area-inset-right)); bottom: max(1.25rem, env(safe-area-inset-bottom)); z-index: 90; max-width: calc(100vw - 2.5rem); }
.tg-shop-cart-status:empty { display: none; }
.tg-shop-cart-status .tg-shop-cart { display: flex; align-items: center; gap: 1rem; min-height: 52px; padding: .75rem 1rem; border: 1px solid #ffffff55; border-radius: 12px; background: var(--tg-blue); color: #fff; font-size: .9375rem; font-weight: 600; text-decoration: none; box-shadow: 0 6px 24px #10223933; }
.tg-shop-cart-status .tg-shop-cart:hover { background: #0344c5; }
.tg-shop-cart-count { padding: .15rem .6rem; border-radius: 6px; background: #ffffff26; font-size: .8125rem; white-space: nowrap; }
.tg-hardware-catalogue [data-block-name="woocommerce/legacy-template"] { width: 100%; max-width: none; margin-inline: 0; }
.tg-hardware .woocommerce-breadcrumb, .tg-hardware .woocommerce-products-header { display: none; }
.woocommerce .tg-hardware .woocommerce-result-count { color: var(--tg-muted); font-size: .8125rem; margin-block: .5rem 1.5rem; }
.woocommerce .tg-hardware .woocommerce-ordering { margin-bottom: 1.5rem; }
.tg-hardware .woocommerce-ordering select { max-width: 100%; padding: .65rem 2.25rem .65rem .85rem; border: 1px solid var(--tg-line); border-radius: 8px; background-color: #fff; color: var(--tg-ink); font: inherit; font-size: .8125rem; }
.woocommerce .tg-hardware ul.products { clear: both; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 0 0 2rem; padding: 0; }
.woocommerce .tg-hardware ul.products::before, .woocommerce .tg-hardware ul.products::after { display: none; }
.woocommerce .tg-hardware ul.products li.product { float: none; display: flex; flex-direction: column; width: auto; min-width: 0; margin: 0; padding: 1.25rem; border: 1px solid var(--tg-line); border-radius: 16px; background: #fff; transition: border-color 180ms ease, box-shadow 180ms ease; }
.woocommerce .tg-hardware ul.products li.product:hover { border-color: #a8c8ff; box-shadow: 0 12px 28px #1022390a; }
.woocommerce .tg-hardware ul.products li.product .woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; text-decoration: none; }
.woocommerce .tg-hardware ul.products li.product a img { display: block; width: 100%; height: 245px; object-fit: contain; padding: .75rem; margin: 0 0 1rem; border-radius: 10px; background: #fff; }
.woocommerce .tg-hardware ul.products li.product .woocommerce-loop-product__title { padding: 0; margin: 0 0 .75rem; color: var(--tg-ink); font-size: 1rem; line-height: 1.5; letter-spacing: -.015em; }
.woocommerce .tg-hardware ul.products li.product .price { margin: auto 0 0; color: var(--tg-ink); font-size: 1rem; font-weight: 700; line-height: 1.6; }
.woocommerce .tg-hardware ul.products li.product .price small { color: var(--tg-muted); font-size: .6875rem; font-weight: 400; }
.woocommerce .tg-hardware ul.products li.product .button { display: block; margin-top: 1.25rem; padding: .75rem 1rem; width: 100%; border: 1px solid var(--tg-line); border-radius: 8px; background: #fff; color: var(--tg-blue); text-align: center; font-size: .875rem; line-height: 1.5; }
.woocommerce .tg-hardware ul.products li.product .button:hover { background: var(--tg-blue); border-color: var(--tg-blue); color: #fff; }
.tg-hardware .woocommerce-pagination { margin-top: 2rem; }
.woocommerce .tg-hardware nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: .5rem; }
.woocommerce .tg-hardware nav.woocommerce-pagination ul li { border: 0; }
.woocommerce .tg-hardware nav.woocommerce-pagination ul li a,
.woocommerce .tg-hardware nav.woocommerce-pagination ul li span { min-width: 44px; padding: .8rem; border: 1px solid var(--tg-line); border-radius: 8px; color: var(--tg-ink); }
.woocommerce .tg-hardware nav.woocommerce-pagination ul li span.current { background: var(--tg-blue); color: #fff; border-color: var(--tg-blue); }
.tg-hardware-guide { background: var(--tg-section-wash); }
.tg-hardware-guide h2 { margin: .85rem 0 2rem; }
.tg-hardware-steps { gap: 2rem; }
.tg-hardware-steps h3 { font-size: 1.125rem; line-height: 1.5; }
.tg-hardware-steps p { color: var(--tg-muted); font-size: .9375rem; line-height: 1.7; }
.tg-hardware-help { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 2.5rem; padding: 2rem; background: #fff; border: 1px solid var(--tg-line); border-radius: 16px; }
.tg-hardware-help h3 { margin: 0 0 .5rem; font-size: 1.25rem; }
.tg-hardware-help p { color: var(--tg-muted); font-size: .9375rem; max-width: 650px; margin: 0; }
.tg-hardware-help > .wp-block-buttons { flex-shrink: 0; margin: 0; }
@media (max-width: 900px) {
  .woocommerce .tg-hardware ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  .tg-hardware-help { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) {
  .tg-hardware-showcase { padding: 1rem; }
  .tg-shop-toolbar { margin-block: 1.5rem; }
  .tg-shop-categories a { padding: .5rem .8rem; font-size: .8125rem; }
  .woocommerce .tg-hardware .woocommerce-result-count, .woocommerce .tg-hardware .woocommerce-ordering { float: none; width: 100%; }
  .tg-hardware .woocommerce-ordering select { width: 100%; }
  .woocommerce .tg-hardware ul.products { grid-template-columns: minmax(0, 1fr); }
  .woocommerce .tg-hardware ul.products li.product a img { height: 235px; }
  .tg-hardware-help { padding: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .woocommerce .tg-hardware ul.products li.product { transition: none; }
}

/* Product details share the catalogue's photography, spacing and buying controls. */
.tg-checkout-section { min-height: 65vh; padding-top: 2rem; background: var(--tg-section-wash); }
.tg-checkout-navigation { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2.5rem; }
.tg-checkout-navigation a { color: var(--tg-blue); font-size: .875rem; text-underline-offset: 3px; }
.tg-checkout-section h1 { margin: .75rem 0 1rem; font-size: clamp(2.25rem, 4vw, 3.5rem); line-height: 1.12; letter-spacing: -.045em; }
.tg-checkout-intro { color: var(--tg-muted); margin: 0 0 2.5rem; }
.tg-checkout-page .tg-checkout-section .tg-checkout-content,
.tg-checkout-page .tg-checkout-content > .woocommerce { width: 100%; max-width: none; margin-inline: 0; }
.tg-checkout-content form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 410px; grid-template-rows: min-content 1fr; column-gap: 2rem; align-items: start; }
.tg-checkout-content form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; width: 100%; min-width: 0; }
.tg-checkout-content .col2-set::before, .tg-checkout-content .col2-set::after { display: none; }
.tg-checkout-content .col2-set > .col-1,
.tg-checkout-content .col2-set > .col-2 { float: none; width: 100%; min-width: 0; }
.tg-checkout-content .woocommerce-billing-fields,
.tg-checkout-content .col2-set > .col-2 { padding: 1.75rem; border: 1px solid var(--tg-line); border-radius: 14px; background: #fff; }
.tg-checkout-content .col2-set > .col-2 { margin-top: 1.5rem; }
.tg-checkout-content h3 { margin: 0 0 1.5rem; font-size: 1.25rem; line-height: 1.5; letter-spacing: -.025em; }
.tg-checkout-content .woocommerce-billing-fields__field-wrapper,
.tg-checkout-content .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.tg-checkout-page .woocommerce form .form-row { float: none; width: 100%; min-width: 0; padding: 0; margin: 0; }
.tg-checkout-content .form-row-wide { grid-column: 1 / -1; }
.tg-checkout-page .woocommerce form .form-row label { display: block; color: var(--tg-ink); font-size: .8125rem; line-height: 1.6; margin-bottom: .4rem; font-weight: 500; }
.tg-checkout-page .woocommerce form .form-row .input-text,
.tg-checkout-page .woocommerce form .form-row select:not(.select2-hidden-accessible) { display: block; width: 100%; min-height: 46px; padding: .7rem .8rem; border: 1px solid #cbd6e4; border-radius: 8px; background: #fff; color: var(--tg-ink); font: inherit; font-size: .9375rem; line-height: 1.5; }
.tg-checkout-page .woocommerce form .form-row .input-text:focus { border-color: var(--tg-blue); outline: 2px solid #0755ef33; outline-offset: 1px; }
.tg-checkout-page .woocommerce form .form-row textarea.input-text { min-height: 115px; resize: vertical; }
.tg-checkout-content .form-row .woocommerce-input-wrapper { display: block; }
.tg-checkout-content .select2-container { width: 100% !important; }
.tg-checkout-content .select2-container .select2-selection--single { box-sizing: border-box; display: flex; align-items: center; height: 46px; padding: 0; border: 1px solid #cbd6e4; border-radius: 8px; background: #fff; }
.tg-checkout-content .select2-container--default .select2-selection--single .select2-selection__rendered { box-sizing: border-box; width: 100%; min-width: 0; padding: 0 2rem 0 .8rem; line-height: 1.5; font-size: .9375rem; color: var(--tg-ink); }
.tg-checkout-content .select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; right: .5rem; transform: translateY(-50%); }
.tg-checkout-content .select2-container--focus .select2-selection--single { border-color: var(--tg-blue); }
.tg-checkout-content #billing_address_2_field { margin-top: -.25rem; }
.tg-checkout-content #ship-to-different-address { margin: 0 0 1rem; font-size: 1rem; letter-spacing: 0; }
.tg-checkout-content #ship-to-different-address label { display: flex; align-items: center; gap: .6rem; font-size: 1rem; font-weight: 600; }
.tg-checkout-content input[type="checkbox"], .tg-checkout-content input[type="radio"] { accent-color: var(--tg-blue); }
.tg-checkout-content .woocommerce-additional-fields h3 { margin-top: 1.5rem; }
.tg-checkout-content .shipping_address { margin-bottom: 1.5rem; }
.tg-checkout-content .woocommerce-account-fields { margin-top: 1.5rem; }
.tg-checkout-content .woocommerce-account-fields .create-account { margin-top: 1rem; }
.tg-checkout-content form.checkout #order_review_heading { grid-column: 2; grid-row: 1; padding: 1.5rem 1.5rem 1rem; margin: 0; border: 1px solid var(--tg-line); border-bottom: 0; border-radius: 14px 14px 0 0; background: #f7faff; }
.tg-checkout-content form.checkout #order_review { grid-column: 2; grid-row: 2; width: 100%; min-width: 0; margin: 0; padding: 0 1.5rem 1.5rem; border: 1px solid var(--tg-line); border-top: 0; border-radius: 0 0 14px 14px; background: #f7faff; }
.tg-checkout-page .woocommerce table.shop_table { width: 100%; border: 0; border-collapse: collapse; margin: 0 0 1.25rem; background: transparent; font-size: .8125rem; line-height: 1.7; }
.tg-checkout-page .woocommerce table.shop_table th,
.tg-checkout-page .woocommerce table.shop_table td { padding: .9rem 0; border: 0; border-bottom: 1px solid var(--tg-line); vertical-align: top; color: var(--tg-ink); }
.tg-checkout-page .woocommerce table.shop_table th { font-weight: 500; color: var(--tg-muted); }
.tg-checkout-page .woocommerce table.shop_table .product-name { width: 62%; padding-right: 1rem; }
.tg-checkout-page .woocommerce table.shop_table .product-total,
.tg-checkout-page .woocommerce table.shop_table tfoot td { text-align: right; }
.tg-checkout-page .woocommerce table.shop_table .order-total td { font-size: 1.125rem; }
.tg-checkout-page .woocommerce table.shop_table .order-total small { display: block; font-size: .6875rem; color: var(--tg-muted); }
.tg-checkout-content .woocommerce-shipping-methods { list-style: none; padding: 0; margin: 0; }
.tg-checkout-content .woocommerce-shipping-methods li { margin: 0 0 .5rem; }
.tg-checkout-page .woocommerce #payment { border: 1px solid var(--tg-line); border-radius: 10px; background: #fff; }
.tg-checkout-page .woocommerce #payment ul.payment_methods { padding: 1rem; border-bottom: 1px solid var(--tg-line); font-size: .875rem; line-height: 1.7; }
.tg-checkout-page .woocommerce #payment div.payment_box { background: #f3f7ff; font-size: .8125rem; border-radius: 8px; }
.tg-checkout-page .woocommerce #payment div.payment_box::before { border-bottom-color: #f3f7ff; }
.tg-checkout-page .woocommerce #payment .form-row.place-order { padding: 1rem; }
.tg-checkout-page .woocommerce #payment .woocommerce-privacy-policy-text,
.tg-checkout-page .woocommerce #payment .woocommerce-terms-and-conditions-wrapper { font-size: .75rem; color: var(--tg-muted); line-height: 1.75; }
.tg-checkout-page .woocommerce #payment a { color: var(--tg-blue); text-underline-offset: 3px; }
.tg-checkout-page .woocommerce #payment #place_order { float: none; display: block; width: 100%; min-height: 50px; margin: 1rem 0 0; padding: .85rem 1rem; border: 0; border-radius: 8px; background: var(--tg-blue); color: #fff; font-size: .9375rem; line-height: 1.5; }
.tg-checkout-page .woocommerce #payment #place_order:hover { background: #0344c5; }
.tg-checkout-page .wc-block-components-notice-banner { font-size: .8125rem; line-height: 1.7; }
.tg-checkout-content .woocommerce-form-login-toggle,
.tg-checkout-content .woocommerce-form-coupon-toggle { margin-bottom: 1.5rem; }
.tg-checkout-content .woocommerce-form-login,
.tg-checkout-content .checkout_coupon { max-width: 650px; padding: 1.5rem; border: 1px solid var(--tg-line); border-radius: 14px; background: #fff; }
.tg-checkout-content .woocommerce-form-login .form-row,
.tg-checkout-content .checkout_coupon .form-row { margin-bottom: 1rem; }
.tg-checkout-content .woocommerce-form-login .button,
.tg-checkout-content .checkout_coupon .button { padding: .75rem 1rem; border: 0; border-radius: 8px; background: var(--tg-blue); color: #fff; font: inherit; font-size: .875rem; }
.tg-checkout-help { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--tg-line); color: var(--tg-muted); font-size: .875rem; }
.tg-checkout-help a { color: var(--tg-blue); text-underline-offset: 3px; }
@media (max-width: 1000px) {
  .tg-checkout-content form.checkout { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .tg-checkout-content form.checkout #customer_details { grid-column: 1; grid-row: auto; margin-bottom: 1.5rem; }
  .tg-checkout-content form.checkout #order_review_heading,
  .tg-checkout-content form.checkout #order_review { grid-column: 1; grid-row: auto; }
}
@media (max-width: 600px) {
  .tg-checkout-content .woocommerce-billing-fields,
  .tg-checkout-content .col2-set > .col-2 { padding: 1.25rem; }
  .tg-checkout-content .woocommerce-billing-fields__field-wrapper,
  .tg-checkout-content .woocommerce-shipping-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
  .tg-checkout-content .form-row-wide { grid-column: auto; }
  .tg-checkout-content form.checkout #order_review_heading { padding: 1.25rem 1.25rem 1rem; }
  .tg-checkout-content form.checkout #order_review { padding: 0 1.25rem 1.25rem; }
}

.tg-cart-section { min-height: 60vh; padding-top: 2rem; background: var(--tg-section-wash); }
.tg-cart-section h1 { margin: .75rem 0 1rem; font-size: clamp(2.25rem, 4vw, 3.5rem); line-height: 1.12; letter-spacing: -.045em; }
.tg-cart-intro { margin: 0 0 2.5rem; color: var(--tg-muted); }
.tg-cart-page .tg-cart-section .tg-cart-content { width: 100%; max-width: none; margin-inline: 0; }
.tg-cart-page .tg-cart-content > .woocommerce { width: 100%; max-width: none; margin-inline: 0; display: grid; grid-template-columns: minmax(0, 1fr) 350px; align-items: start; gap: 1.75rem; }
.tg-cart-content > .woocommerce > .woocommerce-notices-wrapper,
.tg-cart-content > .woocommerce > .wc-block-components-notice-banner { grid-column: 1 / -1; }
.tg-cart-content .woocommerce-notices-wrapper:empty { display: none; }
.tg-cart-content .woocommerce-cart-form { min-width: 0; margin: 0; }
.tg-cart-page .woocommerce table.shop_table { margin: 0; border: 1px solid var(--tg-line); border-radius: 14px; border-collapse: separate; border-spacing: 0; background: #fff; font-size: .875rem; line-height: 1.65; }
.tg-cart-page .woocommerce table.shop_table th { padding: .9rem .65rem; color: var(--tg-muted); font-weight: 600; font-size: .75rem; }
.tg-cart-page .woocommerce table.shop_table td { padding: 1.25rem .65rem; border-color: #edf1f6; }
.tg-cart-page .product-name a { color: var(--tg-ink); font-weight: 600; text-decoration: none; }
.tg-cart-page .product-name a:hover { color: var(--tg-blue); }
.tg-cart-page .woocommerce table.cart img { width: 70px; max-width: none; height: 80px; object-fit: contain; }
.tg-cart-page .woocommerce table.cart .product-thumbnail { width: 85px; }
.tg-cart-page .woocommerce table.cart .product-remove { width: 30px; }
.tg-cart-page .woocommerce a.remove { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-size: 1.35rem; color: #64748b !important; font-weight: 400; }
.tg-cart-page .woocommerce a.remove:hover { background: #fff0f0; color: #c52a2a !important; }
.tg-cart-page .product-price, .tg-cart-page .product-subtotal { white-space: nowrap; }
.tg-cart-page .product-subtotal { font-weight: 600; color: var(--tg-ink); }
.tg-cart-page .quantity .qty { width: 65px; min-height: 44px; padding: .5rem .25rem; border: 1px solid var(--tg-line); border-radius: 7px; color: var(--tg-ink); font: inherit; }
.tg-cart-page .woocommerce table.cart td.actions { padding: 1rem; background: #f9fbfe; border-radius: 0 0 14px 14px; }
.tg-cart-page .woocommerce table.cart td.actions .coupon { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; float: none; margin-bottom: .75rem; }
.tg-cart-page .woocommerce table.cart td.actions .coupon .input-text { width: 180px; max-width: 100%; margin: 0; padding: .65rem .75rem; border: 1px solid var(--tg-line); border-radius: 7px; font: inherit; font-size: .8125rem; }
.tg-cart-page .woocommerce .button { padding: .7rem 1rem; border: 1px solid var(--tg-line); border-radius: 7px; background: #fff; color: var(--tg-blue); font-size: .8125rem; font-weight: 600; line-height: 1.5; }
.tg-cart-page .woocommerce .button:hover { background: #eff7ff; color: #0344c5; }
.tg-cart-page .woocommerce .cart-collaterals { width: 100%; min-width: 0; }
.tg-cart-page .woocommerce .cart-collaterals::before, .tg-cart-page .woocommerce .cart-collaterals::after { display: none; }
.tg-cart-page .woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; padding: 1.5rem; border: 1px solid var(--tg-line); border-radius: 14px; background: #f7faff; }
.tg-cart-page .cart_totals > h2 { margin: 0 0 1.25rem; font-size: 1.375rem; letter-spacing: -.025em; }
.tg-cart-page .woocommerce .cart_totals table.shop_table { display: block; width: 100%; border: 0; background: transparent; }
.tg-cart-page .woocommerce .cart_totals table.shop_table tbody { display: block; width: 100%; }
.tg-cart-page .woocommerce .cart_totals table.shop_table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 1rem; border-bottom: 1px solid var(--tg-line); }
.tg-cart-page .woocommerce .cart_totals table.shop_table tr:last-child { border-bottom: 0; }
.tg-cart-page .woocommerce .cart_totals table.shop_table th,
.tg-cart-page .woocommerce .cart_totals table.shop_table td { display: block; min-width: 0; padding: 1rem 0; border: 0; background: transparent; font-size: .8125rem; vertical-align: top; }
.tg-cart-page .woocommerce .cart_totals table.shop_table th { width: auto; }
.tg-cart-page .woocommerce .cart_totals table.shop_table td { text-align: right; color: var(--tg-ink); }
.tg-cart-page .woocommerce .cart_totals table.shop_table td::before { display: none; }
.tg-cart-page .woocommerce .cart_totals table.shop_table .woocommerce-shipping-totals { grid-template-columns: minmax(0, 1fr); }
.tg-cart-page .woocommerce .cart_totals table.shop_table .woocommerce-shipping-totals th { padding-bottom: .5rem; }
.tg-cart-page .woocommerce .cart_totals table.shop_table .woocommerce-shipping-totals td { padding-top: 0; text-align: left !important; }
.tg-cart-page .cart_totals .woocommerce-shipping-methods { margin: 0; padding: 0; list-style: none; }
.tg-cart-page .cart_totals .woocommerce-shipping-methods li { margin: 0 0 .5rem; }
.tg-cart-page .cart_totals .order-total { color: var(--tg-ink); font-size: 1rem; }
.tg-cart-page .woocommerce .cart_totals .order-total td { font-size: 1.2rem; }
.tg-cart-page .cart_totals small { display: block; font-size: .6875rem; font-weight: 400; color: var(--tg-muted); }
.tg-cart-page .cart_totals a { color: var(--tg-blue); font-size: .8125rem; }
.tg-cart-page .shipping-calculator-form { margin-top: 1rem; text-align: left; }
.tg-cart-page .shipping-calculator-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.tg-cart-page .woocommerce .shipping-calculator-form .form-row { float: none; width: 100%; margin: 0 0 1rem; padding: 0; }
.tg-cart-page .woocommerce .shipping-calculator-form .form-row label { display: block; margin-bottom: .4rem; color: var(--tg-ink); font-size: .8125rem; font-weight: 500; line-height: 1.6; }
.tg-cart-page .woocommerce .shipping-calculator-form .input-text,
.tg-cart-page .woocommerce .shipping-calculator-form select:not(.select2-hidden-accessible) { box-sizing: border-box; display: block; width: 100%; max-width: 100%; min-height: 46px; padding: .7rem .8rem; border: 1px solid #cbd6e4; border-radius: 8px; background: #fff; color: var(--tg-ink); font: inherit; font-size: .9375rem; line-height: 1.5; }
.tg-cart-page .shipping-calculator-form .select2-container { width: 100% !important; }
.tg-cart-page .shipping-calculator-form .select2-selection--single { box-sizing: border-box; display: flex; align-items: center; height: 46px; padding: 0; border: 1px solid #cbd6e4; border-radius: 8px; background: #fff; }
.tg-cart-page .shipping-calculator-form .select2-selection__rendered { box-sizing: border-box; width: 100%; min-width: 0; padding: 0 2rem 0 .8rem; color: var(--tg-ink); font-size: .9375rem; line-height: 1.5; }
.tg-cart-page .shipping-calculator-form .select2-selection__arrow { top: 50%; right: .5rem; transform: translateY(-50%); }
.tg-cart-page .shipping-calculator-form .input-text:focus,
.tg-cart-page .shipping-calculator-form select:focus-visible { border-color: var(--tg-blue); outline: 2px solid #0755ef33; outline-offset: 1px; }
.tg-cart-page .woocommerce .wc-proceed-to-checkout { padding: 1.25rem 0 0; }
.tg-cart-page .woocommerce .wc-proceed-to-checkout a.checkout-button { margin: 0; padding: .95rem 1rem; border-color: var(--tg-blue); border-radius: 8px; background: var(--tg-blue); color: #fff; font-size: .9375rem; }
.tg-cart-page .woocommerce .wc-proceed-to-checkout a.checkout-button:hover { background: #0344c5; }
.tg-cart-content > .woocommerce:has(.tg-cart-empty) { display: block; padding: clamp(2rem, 5vw, 4rem) 1.5rem; border: 1px solid var(--tg-line); border-radius: 20px; background: #fff; text-align: center; }
.tg-cart-empty-icon { display: block; width: 72px; height: 72px; margin: 0 auto 1.5rem; background: #eaf3ff; border-radius: 20px; }
.tg-cart-empty-icon::before { content: ''; display: block; width: 100%; height: 100%; background: var(--tg-blue); mask: url('../icons/box.svg') center / 36px no-repeat; }
.tg-cart-empty h2 { margin: 0 0 .85rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.tg-cart-empty p { max-width: 540px; margin: 0 auto 1.75rem; color: var(--tg-muted); font-size: .9375rem; line-height: 1.75; }
.tg-cart-page .return-to-shop { margin: 0; }
.tg-cart-page .woocommerce .return-to-shop a.button { padding: .85rem 1.25rem; background: var(--tg-blue); border-color: var(--tg-blue); color: #fff; font-size: .9375rem; }
@media (max-width: 1000px) {
  .tg-cart-page .tg-cart-content > .woocommerce { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 768px) {
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents thead { display: none; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents tbody { display: block; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents tr.cart_item { display: grid; grid-template-columns: 64px minmax(0, 1fr) 24px; grid-template-areas: 'image name remove' 'image price price' 'quantity quantity subtotal'; gap: .75rem; padding: 1.25rem; border-bottom: 1px solid #edf1f6; background: #fff; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents tr.cart_item td { display: block; width: auto; padding: 0; border: 0; background: transparent; text-align: left !important; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents tr.cart_item td::before { display: none; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents td.product-thumbnail { grid-area: image; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents td.product-thumbnail img { width: 64px; height: 75px; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents td.product-name { grid-area: name; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents td.product-remove { grid-area: remove; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents td.product-price { grid-area: price; color: var(--tg-muted); }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents tr.cart_item td.product-quantity { grid-area: quantity; display: flex; align-items: center; gap: .75rem; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents tr.cart_item td.product-quantity::before { display: block; content: attr(data-title); font-size: .8125rem; font-weight: 400; color: var(--tg-muted); }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents td.product-subtotal { grid-area: subtotal; align-self: center; justify-self: end; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents tr:not(.cart_item) { display: block; }
  .tg-cart-page .woocommerce table.woocommerce-cart-form__contents td.actions { display: block; }
  .tg-cart-page .woocommerce table.cart td.actions .coupon { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .tg-cart-page .woocommerce table.cart td.actions .coupon .input-text { width: 100%; }
  .tg-cart-page .woocommerce table.cart td.actions .coupon .button { width: auto; }
}

.tg-hardware-detail { padding-top: 2rem; }
.tg-product-navigation { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2.5rem; }
.tg-product-navigation a { color: var(--tg-blue); font-size: .875rem; text-decoration: none; }
.tg-product-navigation a:hover { text-decoration: underline; text-underline-offset: 3px; }
.tg-hardware-detail [data-block-name="woocommerce/legacy-template"] { width: 100%; max-width: none; margin-inline: 0; }
.woocommerce .tg-hardware-detail #main > div.product { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 3rem; align-items: start; }
.woocommerce .tg-hardware-detail #main > div.product::before,
.woocommerce .tg-hardware-detail #main > div.product::after { display: none; }
.woocommerce .tg-hardware-detail div.product > div.images,
.woocommerce .tg-hardware-detail div.product > div.summary { float: none; width: 100%; min-width: 0; margin: 0; }
.woocommerce .tg-hardware-detail div.product > div.images { padding: 1rem; border: 1px solid var(--tg-line); border-radius: 20px; background: #fff; }
.woocommerce .tg-hardware-detail div.product div.images .woocommerce-product-gallery__image img { aspect-ratio: 1; width: 100%; height: auto; object-fit: contain; }
.woocommerce .tg-hardware-detail div.product div.images .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.woocommerce .tg-hardware-detail div.product div.images .flex-control-thumbs li { float: none; width: 74px; border: 1px solid var(--tg-line); border-radius: 8px; overflow: hidden; }
.woocommerce .tg-hardware-detail div.product div.images .flex-control-thumbs li img { width: 100%; height: 74px; object-fit: contain; }
.woocommerce .tg-hardware-detail div.product div.images .flex-control-thumbs li:has(.flex-active) { border-color: var(--tg-blue); }
.woocommerce .tg-hardware-detail .product_title { margin: 0 0 1rem; font-size: clamp(2rem, 3vw, 2.75rem); line-height: 1.15; letter-spacing: -.045em; }
.woocommerce .tg-hardware-detail div.product p.price { margin: 0 0 1.3rem; color: var(--tg-ink); font-size: 1.75rem; font-weight: 700; }
.woocommerce .tg-hardware-detail div.product p.price small { color: var(--tg-muted); font-size: .8125rem; font-weight: 400; }
.tg-hardware-detail .summary .woocommerce-product-details__short-description { font-size: .9375rem; line-height: 1.75; color: var(--tg-muted); }
.tg-hardware-detail .summary .woocommerce-product-details__short-description > p:first-child { margin-top: 0; }
.tg-product-highlights { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 1.25rem 0; }
.tg-product-highlights li { padding: .35rem .65rem; border-radius: 6px; background: #eff7ff; color: #154994; font-size: .75rem; }
.tg-product-inclusions { padding: 1.25rem; border: 1px solid #dce9fb; border-radius: 12px; background: #f7faff; }
.tg-product-inclusions h2 { margin: 0 0 .65rem; color: var(--tg-ink); font-size: 1rem; line-height: 1.5; letter-spacing: -.01em; }
.tg-product-inclusions ul { margin: 0; padding-left: 1.2rem; color: var(--tg-ink); font-size: .875rem; line-height: 1.9; }
.tg-product-inclusions p { font-size: .8125rem; margin: .75rem 0 0; }
.tg-product-setup-note { font-size: .8125rem; margin: 1rem 0 1.5rem; }
.woocommerce .tg-hardware-detail div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 1.5rem 0 1rem; }
.woocommerce .tg-hardware-detail div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce .tg-hardware-detail .quantity .qty { width: 80px; min-height: 50px; border: 1px solid var(--tg-line); border-radius: 8px; padding: .65rem .5rem; color: var(--tg-ink); font: inherit; }
.woocommerce .tg-hardware-detail button.single_add_to_cart_button { float: none; flex: 1; min-height: 50px; padding: .85rem 1.5rem; border: 0; border-radius: 8px; color: #fff; background: var(--tg-blue); font-size: .9375rem; line-height: 1.5; }
.woocommerce .tg-hardware-detail button.single_add_to_cart_button:hover { background: #0344c5; }
.tg-product-buying-help { margin: .8rem 0 1rem; color: var(--tg-muted); font-size: .8125rem; }
.tg-product-buying-help a { color: var(--tg-blue); text-underline-offset: 3px; }
.tg-hardware-detail .product_meta { padding-top: 1rem; border-top: 1px solid var(--tg-line); color: var(--tg-muted); font-size: .75rem; line-height: 1.9; }
.tg-hardware-detail .product_meta > span { display: block; }
.tg-hardware-detail .product_meta a { color: var(--tg-muted); }
.woocommerce .tg-hardware-detail div.product > .woocommerce-tabs,
.woocommerce .tg-hardware-detail div.product > section.related,
.woocommerce .tg-hardware-detail div.product > section.up-sells { grid-column: 1 / -1; width: 100%; min-width: 0; margin-top: 1rem; }
.woocommerce .tg-hardware-detail div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .75rem; padding: 0 0 1rem; margin-bottom: 2rem; border-bottom: 1px solid var(--tg-line); }
.woocommerce .tg-hardware-detail div.product .woocommerce-tabs ul.tabs::before,
.woocommerce .tg-hardware-detail div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce .tg-hardware-detail div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce .tg-hardware-detail div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; border-radius: 8px; background: #f3f6fa; }
.woocommerce .tg-hardware-detail div.product .woocommerce-tabs ul.tabs li a { padding: .7rem 1.15rem; color: var(--tg-muted); font-size: .875rem; }
.woocommerce .tg-hardware-detail div.product .woocommerce-tabs ul.tabs li.active { background: #eff7ff; }
.woocommerce .tg-hardware-detail div.product .woocommerce-tabs ul.tabs li.active a { color: var(--tg-blue); }
.tg-hardware-detail .woocommerce-Tabs-panel { color: var(--tg-muted); line-height: 1.8; }
.tg-hardware-detail .woocommerce-Tabs-panel > h2 { color: var(--tg-ink); font-size: 1.75rem; }
.tg-hardware-detail .woocommerce-Tabs-panel h3 { color: var(--tg-ink); font-size: 1.125rem; margin: 2rem 0 .75rem; }
.tg-hardware-detail .woocommerce-Tabs-panel p { max-width: 950px; font-size: .9375rem; }
.tg-hardware-detail .woocommerce-Tabs-panel ul { padding-left: 1.25rem; font-size: .9375rem; }
.tg-hardware-detail .related > h2 { margin: 0 0 1.5rem; font-size: 1.75rem; }
.tg-product-advice { background: var(--tg-section-wash); }
.tg-product-advice .tg-hardware-help { margin-top: 0; }
.tg-product-advice .tg-hardware-help .tg-eyebrow { color: var(--tg-blue); font-size: .75rem; }
.tg-product-advice h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); margin: .75rem 0; }
@media (max-width: 900px) {
  .woocommerce .tg-hardware-detail #main > div.product { gap: 2rem; }
}
@media (max-width: 700px) {
  .woocommerce .tg-hardware-detail #main > div.product { grid-template-columns: minmax(0, 1fr); }
  .tg-hardware-detail { padding-top: 1.5rem; }
  .tg-product-navigation { margin-bottom: 1.5rem; }
}
