/**
 * Styles: woocommerce
 * Shop archive, product cards, single product, cart, checkout.
 *
 * @package Triennes
 */

/* ============================================
   SHOP WRAPPER
   ============================================ */

.tri-shop {
    padding-top: var(--tri-space-xl);
    padding-bottom: var(--tri-space-xl);
}

/* ============================================
   SHOP ARCHIVE: HEADER + SUBTITLE + FILTER PILLS
   ============================================ */

/* Center the WC shop page title */
.woocommerce-shop .page-title,
.tri-shop .woocommerce-products-header__title {
    text-align: center;
    position: relative;
    display: inline-block;
    padding-bottom: var(--tri-space-sm);
    margin-bottom: var(--tri-space-xs);
}

.woocommerce-shop .page-title::after,
.tri-shop .woocommerce-products-header__title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 3rem;
    height: 2px;
    background: var(--tri-gold);
}

.tri-shop header.woocommerce-products-header {
    text-align: center;
}

/* Subtitle injected by PHP hook */
.tri-shop-subtitle {
    text-align: center;
    font-family: var(--tri-font-heading);
    font-style: italic;
    font-size: 1rem;
    color: var(--tri-text-light);
    margin: 0 auto var(--tri-space-md);
}

/* TRI-2214: Shipping notice */
.tri-shop-shipping-notice {
    text-align: center;
    font-size: 0.85rem;
    color: var(--tri-text-muted);
    margin: 0 auto var(--tri-space-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4em;
}

.tri-shop-shipping-notice svg {
    flex-shrink: 0;
}

/* Category filter pills */
.tri-shop-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tri-space-xs);
    justify-content: center;
    margin-bottom: var(--tri-space-lg);
}

.tri-shop-filter {
    font-family: var(--tri-font-nav);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.45rem 1.25rem;
    border: 1px solid var(--tri-border);
    border-radius: 2rem;
    background: transparent !important;
    color: var(--tri-text);
    cursor: pointer;
    transition: background var(--tri-transition), color var(--tri-transition), border-color var(--tri-transition);
}

.tri-shop-filter:hover,
.tri-shop-filter.is-active {
    background: var(--tri-charcoal) !important;
    color: var(--tri-white) !important;
    border-color: var(--tri-charcoal) !important;
}

/* TRI-1022: Category archive nav */
.tri-cat-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--tri-space-xs);
    margin-bottom: var(--tri-space-md);
    font-family: var(--tri-font-nav);
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.tri-cat-nav__back {
    color: var(--tri-charcoal);
    text-decoration: none;
    font-weight: 600;
    transition: color var(--tri-transition);
}

.tri-cat-nav__back:hover {
    color: var(--tri-gold);
}

.tri-cat-nav__sep {
    color: var(--tri-border);
    margin: 0 var(--tri-space-2xs);
}

.tri-cat-nav__link {
    color: var(--tri-charcoal);
    text-decoration: none;
    padding: 0.3em 0.7em;
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    transition: background var(--tri-transition), color var(--tri-transition), border-color var(--tri-transition);
}

.tri-cat-nav__link:hover {
    border-color: var(--tri-charcoal);
}

.tri-cat-nav__link--active {
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border-color: var(--tri-charcoal);
}

/* ============================================
   ARCHIVE: PRODUCT GRID
   ============================================ */

.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--tri-space-lg) !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.woocommerce ul.products li.product {
    text-align: center !important;
    margin: 0 !important;
    padding: var(--tri-space-sm) !important;
    float: none !important;
    width: auto !important;
    border: 1px solid var(--tri-border) !important;
    border-radius: var(--tri-radius-md) !important;
    transition: box-shadow var(--tri-transition), transform var(--tri-transition) !important;
    background: var(--tri-white) !important;
    display: flex !important;
    flex-direction: column !important;
}

/* TRI-2201: hide filtered-out products — higher specificity beats display:flex above */
.woocommerce ul.products li.product.tri-hidden {
    display: none !important;
}

/* Make the summary section fill remaining card height so the CTA
   button (inside summary) can be pushed to the bottom with margin-top:auto. */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}

.woocommerce ul.products li.product:hover {
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08) !important;
    transform: translateY(-3px) !important;
}

/* TRI-2112: Full bottle thumbnails - uncropped images, CSS-sized */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img,
.astra-shop-thumbnail-wrap img.wp-post-image {
    border-radius: var(--tri-radius-sm) !important;
    width: 100% !important;
    height: 340px !important;
    max-height: 340px !important;
    object-fit: contain !important;
    object-position: center !important;
    /* White bg to match product photo background (no visible cream gap) */
    background-color: #ffffff !important;
    padding: var(--tri-space-xs) !important;
    transition: transform var(--tri-transition-slow) !important;
}

.woocommerce ul.products li.product:hover a img {
    transform: scale(1.02);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--tri-font-heading);
    font-size: 1.1rem;
    margin-top: var(--tri-space-sm);
    margin-bottom: var(--tri-space-xs);
    color: var(--tri-charcoal);
}

.woocommerce ul.products li.product .price {
    font-family: var(--tri-font-nav);
    font-size: 0.9rem;
    color: var(--tri-gold);
    letter-spacing: 0.04em;
}

.woocommerce ul.products li.product .price del {
    color: var(--tri-text-muted);
}

.woocommerce ul.products li.product .price ins {
    text-decoration: none;
    font-weight: 500;
}

/* Add to cart button in archive */
.woocommerce ul.products li.product .button {
    font-family: var(--tri-font-nav);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.5rem 1.25rem;
    margin-top: auto !important;
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border: 2px solid var(--tri-charcoal);
    border-radius: var(--tri-radius-sm);
    transition: background var(--tri-transition), color var(--tri-transition);
    align-self: center;
}

.woocommerce ul.products li.product .button:hover {
    background: transparent;
    color: var(--tri-charcoal);
}

/* Sale badge */
.woocommerce span.onsale {
    background: var(--tri-gold);
    color: var(--tri-white);
    font-family: var(--tri-font-nav);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-radius: var(--tri-radius-sm);
    padding: 0.25rem 0.6rem;
    line-height: 1;
    min-height: 0;
    min-width: 0;
}

/* ============================================
   ARCHIVE: ORDERING & RESULT COUNT
   ============================================ */

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--tri-text-light);
    margin-bottom: var(--tri-space-md);
}

.woocommerce .woocommerce-ordering select {
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    padding: 0.4rem 0.6rem;
    font-family: var(--tri-font-body);
    font-size: 0.85rem;
}

/* ============================================
   ARCHIVE: PAGINATION
   ============================================ */

.woocommerce nav.woocommerce-pagination ul {
    border: none;
    display: flex;
    gap: var(--tri-space-xs);
    justify-content: center;
    margin-top: var(--tri-space-lg);
}

.woocommerce nav.woocommerce-pagination ul li {
    border: none;
    overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    font-family: var(--tri-font-nav);
    font-size: 0.85rem;
    padding: 0.4rem 0.8rem;
    border-radius: var(--tri-radius-sm);
    color: var(--tri-text);
    border: 1px solid var(--tri-border);
    background: var(--tri-white);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border-color: var(--tri-charcoal);
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--tri-offwhite);
}

/* ============================================
   SINGLE PRODUCT
   ============================================ */

.woocommerce div.product {
    max-width: 1000px;
    margin: 0 auto;
}

/* TRI-905: Override for hero layout - wider container */
.woocommerce div.product.tri-product-hero {
    max-width: none;
    margin: 0;
}

/* TRI-905: Astra single product overrides - neutralise separate-container
   padding and background so our full-width sections render edge-to-edge. */
.single-product .ast-separate-container .ast-article-single,
.single-product .ast-separate-container .ast-article-post {
    background: transparent;
    padding: 0;
    margin: 0;
}

.single-product .ast-separate-container #primary {
    padding: 0 !important;
    background: transparent;
}

.single-product .entry-content {
    margin: 0;
}

/* Hide related products - replaced by custom section flow */
.single-product .related.products {
    display: none;
}

/* WC notices on single product - constrain width */
.single-product .woocommerce-notices-wrapper {
    max-width: var(--tri-max-width);
    margin: 0 auto;
    padding: 0 var(--tri-gutter);
}

.woocommerce div.product div.images {
    border-radius: var(--tri-radius-md);
    overflow: hidden;
    max-width: 400px;
}

.woocommerce div.product div.images img {
    max-height: 400px;
    object-fit: contain;
    object-position: center;
    background-color: #ffffff;
    padding: var(--tri-space-xs);
    width: 100%;
    height: auto;
}

.woocommerce div.product .product_title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin-bottom: var(--tri-space-xs);
}

.woocommerce div.product p.price {
    font-family: var(--tri-font-nav);
    font-size: 1.25rem;
    color: var(--tri-gold);
    margin-bottom: var(--tri-space-md);
}

.woocommerce div.product .woocommerce-product-details__short-description {
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: var(--tri-space-md);
}

/* Add to cart form */
.woocommerce div.product form.cart {
    margin-bottom: var(--tri-space-lg);
}

.woocommerce div.product form.cart .qty {
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    padding: 0.5rem;
    width: 60px;
    text-align: center;
    font-family: var(--tri-font-body);
}

/* CTA button - Terre Cuite charte (TRI-740, override Astra inline) */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart button.single_add_to_cart_button {
    font-family: var(--tri-font-nav) !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    padding: 0.75rem 2rem !important;
    background: var(--tri-terracotta) !important;
    background-color: var(--tri-terracotta) !important;
    color: var(--tri-white) !important;
    border: 2px solid var(--tri-terracotta) !important;
    border-radius: var(--tri-radius-sm) !important;
    cursor: pointer;
    transition: background var(--tri-transition), color var(--tri-transition), border-color var(--tri-transition);
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce div.product form.cart button.single_add_to_cart_button:hover {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--tri-terracotta) !important;
    border-color: var(--tri-terracotta) !important;
}

/* Tabs - hide nav bar when only one tab (TRI-810) */
.woocommerce div.product .woocommerce-tabs ul.tabs:has(li:only-child) {
    display: none;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--tri-space-md);
    display: flex;
    gap: var(--tri-space-md);
    border-bottom: 1px solid var(--tri-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    border: none;
    background: none;
    padding: 0;
    margin: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-text-light);
    padding: var(--tri-space-sm) 0;
    display: block;
    border-bottom: 2px solid transparent;
    transition: color var(--tri-transition), border-color var(--tri-transition);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--tri-charcoal);
    border-bottom-color: var(--tri-gold);
}

.woocommerce div.product .woocommerce-tabs .panel {
    margin: 0;
    padding: 0;
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
    font-size: 1.25rem;
    margin-bottom: var(--tri-space-sm);
}

/* Product meta (SKU, categories, tags) */
.woocommerce div.product .product_meta {
    font-size: 0.85rem;
    color: var(--tri-text-light);
    margin-top: var(--tri-space-md);
    padding-top: var(--tri-space-md);
    border-top: 1px solid var(--tri-border);
}

.woocommerce div.product .product_meta > span {
    display: block;
    margin-bottom: var(--tri-space-xs);
}

.woocommerce div.product .product_meta a {
    color: var(--tri-text);
    transition: color var(--tri-transition);
}

.woocommerce div.product .product_meta a:hover {
    color: var(--tri-gold);
}

/* Gallery thumbnails */
.woocommerce div.product div.images .flex-control-thumbs {
    display: flex;
    gap: var(--tri-space-xs);
    margin-top: var(--tri-space-xs);
    padding: 0;
    list-style: none;
}

.woocommerce div.product div.images .flex-control-thumbs li {
    flex: 0 0 auto;
    width: 70px;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
    border-radius: var(--tri-radius-sm);
    border: 2px solid transparent;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity var(--tri-transition), border-color var(--tri-transition);
}

.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover {
    opacity: 1;
    border-color: var(--tri-gold);
}

/* Reviews / ratings */
.woocommerce .star-rating {
    color: var(--tri-gold);
}

.woocommerce .woocommerce-Reviews .comment-respond .comment-reply-title {
    font-size: 1.1rem;
    margin-bottom: var(--tri-space-sm);
}

.woocommerce .woocommerce-Reviews #review_form .comment-form label {
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.woocommerce .woocommerce-Reviews #review_form .comment-form textarea,
.woocommerce .woocommerce-Reviews #review_form .comment-form input[type="text"],
.woocommerce .woocommerce-Reviews #review_form .comment-form input[type="email"] {
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    padding: 0.6rem 0.8rem;
    font-family: var(--tri-font-body);
    font-size: 0.95rem;
}

.woocommerce .woocommerce-Reviews .comment_container {
    display: flex;
    gap: var(--tri-space-md);
    padding: var(--tri-space-md) 0;
    border-bottom: 1px solid var(--tri-border);
}

.woocommerce .woocommerce-Reviews .comment_container img.avatar {
    border-radius: 50%;
    width: 50px;
    height: 50px;
    flex-shrink: 0;
}

.woocommerce .woocommerce-Reviews .comment_container .comment-text .meta {
    font-size: 0.85rem;
    color: var(--tri-text-light);
    margin-bottom: var(--tri-space-xs);
}

/* Related products */
.woocommerce .related.products {
    margin-top: var(--tri-space-xl);
    padding-top: var(--tri-space-lg);
    border-top: 1px solid var(--tri-border);
}

.woocommerce .related.products h2 {
    text-align: center;
    margin-bottom: var(--tri-space-lg);
}

/* ============================================
   CART
   ============================================ */

/* Cart inline notices (after cart table, before totals) */
.tri-cart-notice {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: var(--tri-space-sm) var(--tri-space-md);
    margin-top: var(--tri-space-md);
    background: #fdf0f0;
    border: 1px solid #c0392b;
    border-radius: var(--tri-radius-md);
    font-family: var(--tri-font-body);
    font-size: 0.9rem;
    color: #7a1a1a;
    line-height: 1.4;
}

.tri-cart-notice svg {
    flex-shrink: 0;
    color: #c0392b;
}

/* TRI-2300: Free shipping progress banner */
.tri-shipping-banner {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: var(--tri-space-sm) var(--tri-space-md);
    margin-top: var(--tri-space-sm);
    margin-bottom: var(--tri-space-md);
    background: var(--tri-calcaire-light, #faf6f4);
    border: 1px solid var(--tri-terre-cuite, #D4A59A);
    border-radius: var(--tri-radius-md);
    font-family: var(--tri-font-body);
    font-size: 0.9rem;
    color: var(--tri-text);
    line-height: 1.4;
}

.tri-shipping-banner svg {
    flex-shrink: 0;
    color: var(--tri-terre-cuite, #D4A59A);
}

.tri-shipping-banner--success {
    background: #f0f7f0;
    border-color: var(--tri-cypres, #5a7247);
}

.tri-shipping-banner--success svg {
    color: var(--tri-cypres, #5a7247);
}

.woocommerce table.shop_table {
    border: 1px solid var(--tri-border);
    border-collapse: collapse;
    border-radius: var(--tri-radius-md);
    overflow: hidden;
}

.woocommerce table.shop_table th {
    font-family: var(--tri-font-nav);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-text-light);
    background: var(--tri-offwhite);
    padding: var(--tri-space-sm);
    border-bottom: 1px solid var(--tri-border);
}

.woocommerce table.shop_table td {
    padding: var(--tri-space-sm);
    border-bottom: 1px solid var(--tri-border);
    vertical-align: middle;
}

.woocommerce table.shop_table img {
    width: 60px;
    height: auto;
    border-radius: var(--tri-radius-sm);
}

.woocommerce .cart-collaterals .cart_totals {
    float: none;
    width: 100%;
    max-width: 400px;
    margin-left: auto;
}

/* Cart remove button */
.woocommerce table.shop_table .product-remove a.remove {
    color: var(--tri-text-muted);
    font-size: 1.25rem;
    transition: color var(--tri-transition);
}

.woocommerce table.shop_table .product-remove a.remove:hover {
    color: var(--tri-error);
    background: none;
}

/* Cart quantity input */
.woocommerce table.shop_table .quantity .qty {
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    padding: 0.4rem;
    width: 55px;
    text-align: center;
    font-family: var(--tri-font-body);
    font-size: 0.9rem;
}

/* Cart product name */
.woocommerce table.shop_table td.product-name a {
    color: var(--tri-charcoal);
    font-weight: 500;
    transition: color var(--tri-transition);
}

.woocommerce table.shop_table td.product-name a:hover {
    color: var(--tri-gold);
}

/* Cart actions (coupon + update) */
.woocommerce .cart .coupon {
    display: flex;
    gap: var(--tri-space-xs);
    align-items: center;
}

.woocommerce .cart .coupon #coupon_code {
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    padding: 0.5rem 0.75rem;
    font-family: var(--tri-font-body);
    font-size: 0.9rem;
    min-width: 160px;
}

.woocommerce .cart .coupon .button,
.woocommerce .cart button[name="update_cart"] {
    font-family: var(--tri-font-nav);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.55rem 1.2rem;
    background: var(--tri-offwhite);
    color: var(--tri-charcoal);
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    cursor: pointer;
    transition: background var(--tri-transition), border-color var(--tri-transition);
}

.woocommerce .cart .coupon .button:hover,
.woocommerce .cart button[name="update_cart"]:hover {
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border-color: var(--tri-charcoal);
}

/* Cart totals */
.woocommerce .cart_totals h2 {
    font-size: 1.25rem;
    margin-bottom: var(--tri-space-sm);
}

.woocommerce .cart_totals .checkout-button {
    display: block;
    text-align: center;
    font-family: var(--tri-font-nav);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.75rem;
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border: 2px solid var(--tri-charcoal);
    border-radius: var(--tri-radius-sm);
    transition: background var(--tri-transition), color var(--tri-transition);
}

.woocommerce .cart_totals .checkout-button:hover {
    background: transparent;
    color: var(--tri-charcoal);
}

/* Cross-sells */
.woocommerce .cross-sells {
    margin-top: var(--tri-space-xl);
}

.woocommerce .cross-sells h2 {
    font-size: 1.25rem;
    margin-bottom: var(--tri-space-md);
}

/* ============================================
   GLOBAL WC FORM FIELDS (override Astra defaults)
   Astra inline CSS sets focus border-style:dotted
   and uses --ast-border-color. We override all of it.
   ============================================ */

.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="url"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce input[type="search"],
.woocommerce textarea,
.woocommerce select,
.woocommerce .select2-container .select2-selection--single,
.woocommerce-page input[type="text"],
.woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"],
.woocommerce-page input[type="password"],
.woocommerce-page textarea,
.woocommerce-page select {
    border: 1px solid var(--tri-border) !important;
    border-width: 1px !important;
    border-style: solid !important;
    border-radius: var(--tri-radius-sm) !important;
    padding: 0.6rem 0.8rem !important;
    font-family: var(--tri-font-body) !important;
    font-size: 0.95rem !important;
    background-color: var(--tri-white) !important;
    color: var(--tri-text) !important;
    box-shadow: none !important;
    transition: border-color var(--tri-transition);
}

.woocommerce input[type="text"]:focus,
.woocommerce input[type="email"]:focus,
.woocommerce input[type="tel"]:focus,
.woocommerce input[type="password"]:focus,
.woocommerce input[type="number"]:focus,
.woocommerce textarea:focus,
.woocommerce select:focus,
.woocommerce-page input:focus,
.woocommerce-page textarea:focus,
.woocommerce-page select:focus {
    outline: none !important;
    border-color: var(--tri-gold) !important;
    border-width: 1px !important;
    border-style: solid !important;
    box-shadow: none !important;
}

/* ============================================
   TRI-2115: Cart & Checkout - Heritage Solaire harmonization
   ============================================ */

/* Page titles: Panier, Commander */
.woocommerce-cart .entry-title,
.woocommerce-cart .page-title,
.woocommerce-checkout .entry-title,
.woocommerce-checkout .page-title {
    font-family: var(--tri-font-heading) !important;
    font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
    font-weight: 400 !important;
    color: var(--tri-charcoal) !important;
    text-align: center !important;
    margin-bottom: var(--tri-space-md) !important;
    position: relative !important;
    padding-bottom: var(--tri-space-xs) !important;
}

.woocommerce-cart .entry-title::after,
.woocommerce-cart .page-title::after,
.woocommerce-checkout .entry-title::after,
.woocommerce-checkout .page-title::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 40px !important;
    height: 2px !important;
    background: var(--tri-gold) !important;
}

/* Checkout form inputs */
.woocommerce form.checkout input[type="text"],
.woocommerce form.checkout input[type="email"],
.woocommerce form.checkout input[type="tel"],
.woocommerce form.checkout input[type="number"],
.woocommerce form.checkout textarea,
.woocommerce form.checkout select,
.woocommerce form.checkout .select2-container .select2-selection--single {
    font-family: var(--tri-font-body);
    font-size: 0.95rem;
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    padding: 0.65rem 0.85rem;
    transition: border-color var(--tri-transition);
}

.woocommerce form.checkout input:focus,
.woocommerce form.checkout textarea:focus,
.woocommerce form.checkout select:focus {
    border-color: var(--tri-gold);
    outline: none;
    box-shadow: 0 0 0 2px rgba(180, 144, 97, 0.15);
}

/* Empty cart message */
.woocommerce-cart .cart-empty {
    text-align: center;
    font-family: var(--tri-font-body);
    font-size: 1.05rem;
    color: var(--tri-text-light);
    padding: var(--tri-space-lg) 0;
}

.woocommerce-cart .return-to-shop .button {
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.75rem 2rem;
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border: 2px solid var(--tri-charcoal);
    border-radius: var(--tri-radius-sm);
    transition: background var(--tri-transition), color var(--tri-transition);
}

.woocommerce-cart .return-to-shop .button:hover {
    background: transparent;
    color: var(--tri-charcoal);
}

/* ============================================
   CHECKOUT (form layout)
   ============================================ */

.woocommerce form.checkout .form-row label {
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--tri-text);
}

.woocommerce #place_order {
    font-family: var(--tri-font-nav);
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.85rem 2.5rem;
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border: 2px solid var(--tri-charcoal);
    border-radius: var(--tri-radius-sm);
    cursor: pointer;
    transition: background var(--tri-transition), color var(--tri-transition);
}

.woocommerce #place_order:hover {
    background: transparent;
    color: var(--tri-charcoal);
}

/* Checkout layout: two columns */
.woocommerce .col2-set {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--tri-space-lg);
}

.woocommerce .col2-set h3 {
    font-size: 1.1rem;
    margin-bottom: var(--tri-space-sm);
}

/* Checkout order review */
.woocommerce #order_review_heading {
    font-size: 1.25rem;
    margin-top: var(--tri-space-lg);
    margin-bottom: var(--tri-space-sm);
}

.woocommerce .woocommerce-checkout-review-order-table {
    margin-bottom: var(--tri-space-md);
}

/* Payment methods */
.woocommerce #payment {
    background: var(--tri-offwhite);
    border-radius: var(--tri-radius-md);
    padding: var(--tri-space-md);
}

.woocommerce #payment ul.payment_methods {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--tri-space-md);
}

.woocommerce #payment ul.payment_methods li {
    padding: var(--tri-space-sm);
    border-bottom: 1px solid var(--tri-border);
}

.woocommerce #payment ul.payment_methods li:last-child {
    border-bottom: none;
}

.woocommerce #payment ul.payment_methods li label {
    font-weight: 500;
    cursor: pointer;
}

.woocommerce #payment ul.payment_methods li .payment_box {
    font-size: 0.9rem;
    color: var(--tri-text-light);
    margin-top: var(--tri-space-xs);
    padding: var(--tri-space-xs) 0;
}

/* Terms and conditions */
.woocommerce .woocommerce-terms-and-conditions-wrapper {
    margin-bottom: var(--tri-space-md);
    font-size: 0.85rem;
}

/* ============================================
   THANK-YOU
   ============================================ */

.woocommerce .woocommerce-order .woocommerce-thankyou-order-received {
    font-size: 1.1rem;
    color: var(--tri-gold);
    margin-bottom: var(--tri-space-md);
}

.woocommerce .woocommerce-order .woocommerce-order-overview {
    list-style: none;
    padding: var(--tri-space-md);
    background: var(--tri-offwhite);
    border-radius: var(--tri-radius-md);
    display: flex;
    flex-wrap: wrap;
    gap: var(--tri-space-md);
    margin-bottom: var(--tri-space-lg);
}

.woocommerce .woocommerce-order .woocommerce-order-overview li {
    font-size: 0.9rem;
}

.woocommerce .woocommerce-order .woocommerce-order-overview li strong {
    display: block;
    font-size: 1rem;
    margin-top: var(--tri-space-xs);
}

/* ============================================
   MY ACCOUNT - LOGIN CARD (TRI-825)
   ============================================ */

/* Centered card layout for the login form (non-logged-in state) */
.woocommerce-account:not(.logged-in) .woocommerce {
    max-width: 480px;
    margin: 0 auto;
    padding: var(--tri-space-md) var(--tri-space-md) var(--tri-space-lg);
}

/* Card wrapper - WC wraps login in .u-columns or directly a form */
.woocommerce-account:not(.logged-in) .woocommerce .u-columns,
.woocommerce-account:not(.logged-in) .woocommerce > form.woocommerce-form-login {
    background: #FFFFFF;
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-md);
    box-shadow: 0 2px 12px rgba(26, 43, 37, 0.06);
    padding: var(--tri-space-md);
}

/* When WC shows login+register side-by-side, stack them vertically */
.woocommerce-account:not(.logged-in) .woocommerce .u-columns {
    display: flex;
    flex-direction: column;
    gap: var(--tri-space-md);
}

.woocommerce-account:not(.logged-in) .woocommerce .u-columns .col-1,
.woocommerce-account:not(.logged-in) .woocommerce .u-columns .col-2 {
    width: 100%;
    float: none;
    padding: 0;
}

/* Page title "Mon compte" / "My Account" - centered */
.woocommerce-account:not(.logged-in) .entry-title,
.woocommerce-account:not(.logged-in) .page-title,
.woocommerce-account:not(.logged-in) .woocommerce h2 {
    text-align: center;
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin-bottom: var(--tri-space-sm);
}

/* Form headings inside card */
.woocommerce-account:not(.logged-in) .woocommerce h2:first-child {
    position: relative;
    padding-bottom: var(--tri-space-sm);
    margin-bottom: var(--tri-space-md);
}

.woocommerce-account:not(.logged-in) .woocommerce h2:first-child::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 3rem;
    height: 2px;
    background: var(--tri-gold);
}

/* Labels */
.woocommerce-account:not(.logged-in) .woocommerce form label {
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--tri-text);
    display: block;
    margin-bottom: 0.3rem;
}

/* Submit button - full width, charted */
.woocommerce-account:not(.logged-in) .woocommerce form .woocommerce-button,
.woocommerce-account:not(.logged-in) .woocommerce form button[type="submit"],
.woocommerce-account:not(.logged-in) .woocommerce form input[type="submit"] {
    display: block;
    width: 100%;
    font-family: var(--tri-font-nav);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.85rem;
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border: 2px solid var(--tri-charcoal);
    border-radius: var(--tri-radius-sm);
    cursor: pointer;
    transition: background var(--tri-transition), color var(--tri-transition);
    margin-top: var(--tri-space-sm);
}

.woocommerce-account:not(.logged-in) .woocommerce form .woocommerce-button:hover,
.woocommerce-account:not(.logged-in) .woocommerce form button[type="submit"]:hover,
.woocommerce-account:not(.logged-in) .woocommerce form input[type="submit"]:hover {
    background: transparent;
    color: var(--tri-charcoal);
}

/* "Lost your password?" link - centered */
.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-LostPassword,
.woocommerce-account:not(.logged-in) .woocommerce .lost_password {
    text-align: center;
    margin-top: var(--tri-space-sm);
}

.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-LostPassword a,
.woocommerce-account:not(.logged-in) .woocommerce .lost_password a {
    font-family: var(--tri-font-nav);
    font-size: 0.78rem;
    color: var(--tri-text-light);
    transition: color var(--tri-transition);
}

.woocommerce-account:not(.logged-in) .woocommerce .woocommerce-LostPassword a:hover,
.woocommerce-account:not(.logged-in) .woocommerce .lost_password a:hover {
    color: var(--tri-gold);
}

/* Remember me checkbox - inline with label */
.woocommerce-account:not(.logged-in) .woocommerce form .woocommerce-form__label-for-checkbox {
    display: flex;
    align-items: center;
    gap: 0.5em;
    font-size: 0.85rem;
    text-transform: none;
    letter-spacing: 0;
}

/* ============================================
   MY ACCOUNT - LOGGED IN (TRI-826)
   ============================================ */

/* Centered container for the whole account area */
.woocommerce-account.logged-in .woocommerce {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    gap: var(--tri-space-md);
    align-items: flex-start;
}

/* Navigation sidebar - card style */
.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 220px;
    flex-shrink: 0;
    float: none;
    background: #FFFFFF;
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-md);
    box-shadow: 0 2px 8px rgba(26, 43, 37, 0.04);
    padding: var(--tri-space-sm) 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid var(--tri-border);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
    border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: 0.75rem var(--tri-space-sm);
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-text);
    text-decoration: none;
    transition: color var(--tri-transition), background var(--tri-transition);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    color: var(--tri-gold);
    background: var(--tri-offwhite);
}

/* Content area - card style */
.woocommerce-account .woocommerce-MyAccount-content {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    background: #FFFFFF;
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-md);
    box-shadow: 0 2px 8px rgba(26, 43, 37, 0.04);
    padding: var(--tri-space-md);
}

/* Dashboard greeting paragraph */
.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--tri-text-light);
    margin-bottom: var(--tri-space-sm);
}

/* My Account orders table */
.woocommerce-account .woocommerce-orders-table {
    width: 100%;
    border-collapse: collapse;
}

.woocommerce-account .woocommerce-orders-table thead th {
    font-family: var(--tri-font-nav);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-text-light);
    background: var(--tri-offwhite);
    padding: 0.6rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid var(--tri-border);
}

.woocommerce-account .woocommerce-orders-table tbody td {
    padding: 0.75rem;
    border-bottom: 1px solid var(--tri-border);
    font-size: 0.9rem;
    vertical-align: middle;
}

/* Alternating rows */
.woocommerce-account .woocommerce-orders-table tbody tr:nth-child(even) {
    background: var(--tri-offwhite);
}

/* Row hover */
.woocommerce-account .woocommerce-orders-table tbody tr:hover {
    background: rgba(212, 165, 154, 0.08);
}

/* Order status badges */
.woocommerce-account .woocommerce-orders-table .order-status {
    font-family: var(--tri-font-nav);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.woocommerce-account .woocommerce-orders-table .button {
    font-family: var(--tri-font-nav);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.35rem 0.8rem;
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border: 1px solid var(--tri-charcoal);
    border-radius: var(--tri-radius-sm);
    transition: background var(--tri-transition), color var(--tri-transition);
}

.woocommerce-account .woocommerce-orders-table .button:hover {
    background: transparent;
    color: var(--tri-charcoal);
}

/* My Account addresses - stacked (tab interface, one visible at a time) */
.woocommerce-account .woocommerce-Addresses,
.woocommerce-account .col2-set.addresses {
    display: block;
    width: 100%;
}

.woocommerce-account .woocommerce-Address {
    margin-bottom: 0;
    padding: var(--tri-space-sm);
    background: var(--tri-offwhite);
    border-radius: var(--tri-radius-md);
    overflow: hidden;
    word-break: break-word;
}

.woocommerce-account .woocommerce-Address-title,
.woocommerce-account header.title {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--tri-space-xs);
}

/* Force h3 size - Astra sets enormous defaults on bare h3 / .title h3 */
.woocommerce-account .woocommerce-Address-title h3,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address h3,
.woocommerce-account .woocommerce-MyAccount-content header.title h3 {
    font-size: 1rem !important;
    font-family: var(--tri-font-nav) !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4 !important;
}

.woocommerce-account .woocommerce-Address-title .edit {
    font-family: var(--tri-font-nav);
    font-size: 0.75rem;
    text-transform: uppercase;
    color: var(--tri-gold);
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: var(--tri-space-xs);
}

.woocommerce-account .woocommerce-Address address {
    font-size: 0.9rem;
    line-height: 1.6;
    font-style: normal;
    color: var(--tri-text-light);
}

/* My Account edit forms */
.woocommerce-account .woocommerce-EditAccountForm label {
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.woocommerce-account .woocommerce-EditAccountForm .form-row {
    margin-bottom: var(--tri-space-sm);
}

.woocommerce-account .woocommerce-EditAccountForm input[type="text"],
.woocommerce-account .woocommerce-EditAccountForm input[type="email"],
.woocommerce-account .woocommerce-EditAccountForm input[type="password"] {
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    padding: 0.6rem 0.8rem;
    font-family: var(--tri-font-body);
    font-size: 0.95rem;
    width: 100%;
}

/* Edit account - 2-column name fields */
.woocommerce-account .woocommerce-EditAccountForm .form-row-first,
.woocommerce-account .woocommerce-EditAccountForm .form-row-last {
    display: inline-block;
    width: 48%;
}

.woocommerce-account .woocommerce-EditAccountForm .form-row-first {
    margin-right: 3%;
}

/* Password section - subtle separator */
.woocommerce-account .woocommerce-EditAccountForm fieldset {
    border: none;
    border-top: 1px solid var(--tri-border);
    padding: var(--tri-space-sm) 0 0;
    margin-top: var(--tri-space-sm);
}

.woocommerce-account .woocommerce-EditAccountForm fieldset legend {
    font-family: var(--tri-font-nav);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding-right: var(--tri-space-xs);
}

.woocommerce-account .woocommerce-EditAccountForm .woocommerce-Button {
    font-family: var(--tri-font-nav);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.75rem 2rem;
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border: 2px solid var(--tri-charcoal);
    border-radius: var(--tri-radius-sm);
    cursor: pointer;
    transition: background var(--tri-transition), color var(--tri-transition);
}

.woocommerce-account .woocommerce-EditAccountForm .woocommerce-Button:hover {
    background: transparent;
    color: var(--tri-charcoal);
}

/* Address edit form - 2-column grid */
.woocommerce-account .woocommerce-address-fields .form-row-first,
.woocommerce-account .woocommerce-address-fields .form-row-last {
    display: inline-block;
    width: 48%;
}

.woocommerce-account .woocommerce-address-fields .form-row-first {
    margin-right: 3%;
}

/* "No order" message */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info {
    text-align: center;
    padding: var(--tri-space-md);
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info .button {
    display: inline-block;
    margin-top: var(--tri-space-sm);
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.6rem 1.5rem;
    background: var(--tri-charcoal);
    color: var(--tri-white);
    border: 2px solid var(--tri-charcoal);
    border-radius: var(--tri-radius-sm);
    transition: background var(--tri-transition), color var(--tri-transition);
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info .button:hover {
    background: transparent;
    color: var(--tri-charcoal);
}

/* ============================================
   MY ACCOUNT - HERO BANNER (TRI-2100)
   ============================================ */

/* Hide Astra's default page title on logged-in account pages */
.woocommerce-account.logged-in .entry-title,
.woocommerce-account.logged-in .page-title,
.woocommerce-account.logged-in .ast-archive-description {
    display: none !important;
}

.tri-account-hero {
    background: var(--tri-offwhite);
    text-align: center;
    padding: var(--tri-space-lg) var(--tri-space-md) var(--tri-space-md);
    margin: calc(-1 * var(--tri-space-md)) calc(-1 * var(--tri-space-md)) var(--tri-space-md);
    border-radius: var(--tri-radius-md) var(--tri-radius-md) 0 0;
}

.tri-account-hero__title {
    font-size: clamp(1.4rem, 3vw, 1.8rem);
    margin: 0;
    position: relative;
    display: inline-block;
    padding-bottom: var(--tri-space-sm);
}

.tri-account-hero__title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 3rem;
    height: 2px;
    background: var(--tri-gold);
}

/* ============================================
   MY ACCOUNT - SPACING / PADDING (TRI-2100)
   ============================================ */

/* Bottom padding before footer */
.woocommerce-account.logged-in .woocommerce {
    padding-bottom: var(--tri-space-xl, 4rem);
}

/* ============================================
   MY ACCOUNT - FORM INPUT FIX (TRI-2100)
   ============================================ */

/* Override Astra dark inputs with clean white style */
.woocommerce-account.logged-in input[type="text"],
.woocommerce-account.logged-in input[type="email"],
.woocommerce-account.logged-in input[type="password"],
.woocommerce-account.logged-in input[type="tel"],
.woocommerce-account.logged-in select,
.woocommerce-account.logged-in textarea {
    background: var(--tri-white, #fff) !important;
    border: 1px solid var(--tri-border) !important;
    border-radius: var(--tri-radius-sm) !important;
    padding: 0.6rem 0.8rem !important;
    font-family: var(--tri-font-body) !important;
    font-size: 0.95rem !important;
    color: var(--tri-text) !important;
    transition: border-color var(--tri-transition);
}

.woocommerce-account.logged-in input:focus,
.woocommerce-account.logged-in select:focus,
.woocommerce-account.logged-in textarea:focus {
    border-color: var(--tri-gold) !important;
    outline: none;
    box-shadow: 0 0 0 2px rgba(212, 165, 154, 0.15);
}

/* Labels - consistent muted color */
.woocommerce-account.logged-in .woocommerce-MyAccount-content label {
    font-family: var(--tri-font-nav);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--tri-text-light);
}

/* ============================================
   MINI-CART (HEADER)
   ============================================ */

.tri-header__cart-count {
    font-family: var(--tri-font-nav);
    font-size: 0.7rem;
    background: var(--tri-gold);
    color: var(--tri-white);
    border-radius: 50%;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    position: relative;
    top: -0.5em;
    left: -0.3em;
}

.tri-header__cart-count:empty {
    display: none;
}

/* ============================================
   NOTICES
   ============================================ */

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
    border-top-color: var(--tri-gold);
    border-radius: var(--tri-radius-sm);
    font-size: 0.9rem;
}

.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before {
    color: var(--tri-gold);
}

/* ============================================
   BREADCRUMBS
   ============================================ */

/* TRI-820: Hide breadcrumb on shop pages (safety net - PHP hook removes it,
   but CSS hides it if another source injects one) */
.woocommerce-shop .woocommerce-breadcrumb,
.woocommerce-shop .ast-breadcrumbs-wrapper,
.woocommerce-shop .yoast-breadcrumb,
.tax-product_cat .woocommerce-breadcrumb,
.tax-product_tag .woocommerce-breadcrumb {
    display: none !important;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--tri-space-sm) !important;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs {
        flex-wrap: wrap;
        gap: var(--tri-space-sm);
    }

    .woocommerce .col2-set {
        grid-template-columns: 1fr;
    }

    /* Account pages: stack nav + content vertically */
    .woocommerce-account.logged-in .woocommerce {
        flex-direction: column;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation {
        width: 100%;
        margin-bottom: var(--tri-space-sm);
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul {
        display: flex;
        flex-wrap: wrap;
        gap: var(--tri-space-xs);
        border-bottom: none;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul li {
        border-bottom: none;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
        padding: var(--tri-space-xs) var(--tri-space-sm);
        border-radius: var(--tri-radius-sm);
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
        background: var(--tri-offwhite);
    }

    /* Edit account: stack name fields */
    .woocommerce-account .woocommerce-EditAccountForm .form-row-first,
    .woocommerce-account .woocommerce-EditAccountForm .form-row-last,
    .woocommerce-account .woocommerce-address-fields .form-row-first,
    .woocommerce-account .woocommerce-address-fields .form-row-last {
        display: block;
        width: 100%;
        margin-right: 0;
    }

    /* Account hero: reduce padding on mobile */
    .tri-account-hero {
        padding: var(--tri-space-md) var(--tri-space-sm) var(--tri-space-sm);
        margin: calc(-1 * var(--tri-space-sm)) calc(-1 * var(--tri-space-sm)) var(--tri-space-sm);
    }

    /* Orders table: horizontal scroll on small screens */
    .woocommerce-account .woocommerce-MyAccount-content {
        overflow-x: auto;
    }

    .woocommerce .cart .coupon {
        flex-wrap: wrap;
    }

    .woocommerce .woocommerce-order .woocommerce-order-overview {
        flex-direction: column;
    }
}

@media (max-width: 480px) {
    .woocommerce ul.products {
        grid-template-columns: 1fr !important;
        max-width: 300px;
        margin: 0 auto !important;
    }

    .woocommerce ul.products li.product a img,
    .woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
        height: 260px !important;
        max-height: 260px !important;
    }
}

/* ============================================
   SINGLE PRODUCT - DESCRIPTION OVERRIDE (TRI-521)
   ============================================ */

/* ============================================
   DESCRIPTION SECTION (TRI-902)
   ============================================ */

.tri-product-desc {
    background: var(--tri-white);
    padding: var(--tri-space-md) 0 var(--tri-space-lg);
    color: var(--tri-text);
}

.tri-product-desc__inner {
    max-width: var(--tri-max-width);
    margin: 0 auto;
    padding: 0 var(--tri-gutter);
}

/* Description text */
.tri-product-desc__text {
    max-width: 720px;
    margin: 0 auto var(--tri-space-lg);
    text-align: center;
}

.tri-product-desc__text p {
    font-family: var(--tri-font-body);
    font-size: 1rem;
    line-height: 1.8;
    color: var(--tri-text);
    margin: 0 0 var(--tri-space-xs);
}

/* Icon bar */
.tri-product-desc__bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0;
    margin-bottom: var(--tri-space-lg);
    border-top: 1px solid var(--tri-border);
    border-bottom: 1px solid var(--tri-border);
}

.tri-product-desc__bar-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 1.5rem;
    border-right: 1px solid var(--tri-border);
}

.tri-product-desc__bar-item:last-child {
    border-right: none;
}

.tri-product-desc__bar-icon {
    display: flex;
    align-items: center;
}

.tri-product-desc__bar-icon svg {
    width: 18px;
    height: 18px;
    color: var(--tri-text-light);
    flex-shrink: 0;
}

.tri-product-desc__bar-label {
    font-family: var(--tri-font-nav);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-charcoal);
    white-space: nowrap;
}

/* Wine description paragraph (replaces 2-column tables) */
.tri-product-desc__prose {
    max-width: 780px;
    margin: 0 auto;
    text-align: center;
}

.tri-product-desc__prose p {
    font-family: var(--tri-font-body);
    font-size: 1rem;
    line-height: 1.9;
    color: var(--tri-text);
    margin: 0 0 var(--tri-space-xs);
}

.tri-product-desc__prose p:last-child {
    margin-bottom: 0;
}

.tri-product-desc__prose strong {
    font-weight: 600;
    color: var(--tri-charcoal);
}

/* TRI-2306: Bio certification badge */
.tri-product-desc__bio-badge {
    display: flex;
    justify-content: center;
    margin-top: var(--tri-space-md);
}

.tri-product-desc__bio-badge img {
    width: 120px;
    height: auto;
}

/* ── Description responsive ── */

@media (max-width: 1024px) {
    .tri-product-desc {
        padding: var(--tri-space-lg) 0;
    }

    .tri-product-desc__columns {
        gap: var(--tri-space-lg);
    }
}

@media (max-width: 768px) {
    .tri-product-desc {
        padding: var(--tri-space-md) 0;
    }

    .tri-product-desc__text {
        margin-bottom: var(--tri-space-md);
    }

    .tri-product-desc__bar {
        flex-direction: column;
        border: 1px solid var(--tri-border);
        border-radius: var(--tri-radius-sm);
        margin-bottom: var(--tri-space-md);
    }

    .tri-product-desc__bar-item {
        border-right: none;
        border-bottom: 1px solid var(--tri-border);
        padding: 0.65rem 1rem;
    }

    .tri-product-desc__bar-item:last-child {
        border-bottom: none;
    }

    .tri-product-desc__bar-label {
        white-space: normal;
        word-break: break-word;
    }

    .tri-product-desc__prose {
        text-align: left;
    }
}

/* Shipping note below add-to-cart (TRI-810) */
.tri-shipping-note {
    display: flex;
    align-items: center;
    gap: 0.5em;
    margin-top: var(--tri-space-sm);
    font-family: var(--tri-font-nav);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--tri-text-light);
}

.tri-shipping-note__icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: var(--tri-gold);
}

/* Hide product meta (UGS / Catégorie) - TRI-740 safety net */
.woocommerce div.product .product_meta {
    display: none;
}

/* ============================================
   ACCORDS METS & VINS (TRI-904)
   ============================================ */

.tri-product-accords {
    background: var(--tri-cream);
    padding: var(--tri-space-xl) 0;
}

.tri-product-accords__inner {
    max-width: var(--tri-max-width);
    margin: 0 auto;
    padding: 0 var(--tri-gutter);
}

.tri-product-accords__title {
    font-family: var(--tri-font-heading);
    font-size: clamp(1.375rem, 2.5vw, 1.75rem);
    font-weight: 400;
    color: var(--tri-charcoal);
    margin-bottom: var(--tri-space-lg);
    text-align: center;
}

.tri-product-accords__grid {
    display: flex;
    justify-content: center;
    gap: var(--tri-space-xl);
    max-width: 800px;
    margin: 0 auto;
}

.tri-product-accords__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 0;
    background: none;
}

.tri-product-accords__icon img,
.tri-product-accords__icon svg {
    width: 64px;
    height: 64px;
    color: var(--tri-gold);
    opacity: 0.85;
    transition: opacity var(--tri-transition), transform var(--tri-transition);
}

.tri-product-accords__card:hover .tri-product-accords__icon img,
.tri-product-accords__card:hover .tri-product-accords__icon svg {
    opacity: 1;
    transform: scale(1.08);
}

.tri-product-accords__label {
    font-family: var(--tri-font-nav);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-text-light);
    text-align: center;
}

/* ── Accords responsive ── */

@media (max-width: 1024px) {
    .tri-product-accords {
        padding: var(--tri-space-lg) 0;
    }
}

@media (max-width: 768px) {
    .tri-product-accords {
        padding: var(--tri-space-lg) 0;
    }

    .tri-product-accords__title {
        margin-bottom: var(--tri-space-md);
    }

    /* TRI-2113: Uniform grid on mobile - always 2 columns, centered */
    .tri-product-accords__grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--tri-space-lg) var(--tri-space-md);
        justify-items: center;
        max-width: 320px;
    }

    /* Single item: center in full width */
    .tri-product-accords__grid:has(:nth-child(1):last-child) {
        grid-template-columns: 1fr;
    }

    /* Three items: 2 top + 1 centered bottom */
    .tri-product-accords__grid:has(:nth-child(3):last-child) .tri-product-accords__card:last-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 480px) {
    .tri-product-accords__icon img,
    .tri-product-accords__icon svg {
        width: 52px;
        height: 52px;
    }

    .tri-product-accords__grid {
        max-width: 280px;
    }
}

/* ============================================
   TASTING SECTION (TRI-903)
   ============================================ */

.tri-product-tasting {
    background: var(--tri-charcoal);
    color: var(--tri-cream);
    padding: var(--tri-space-xl) 0;
}

.tri-product-tasting__inner {
    max-width: var(--tri-max-width);
    margin: 0 auto;
    padding: 0 var(--tri-gutter);
    text-align: center;
}

/* Badge title */
.tri-product-tasting__badge {
    display: inline-block;
    font-family: var(--tri-font-nav);
    font-size: 0.72rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--tri-cream);
    border: 1px solid var(--tri-stone);
    padding: 0.4em 1.2em;
    margin-bottom: var(--tri-space-md);
}

/* Subtitle row with decorative lines */
.tri-product-tasting__subtitle-row {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: var(--tri-space-lg);
}

.tri-product-tasting__line {
    flex: 1;
    height: 1px;
    background: var(--tri-stone);
    opacity: 0.4;
}

.tri-product-tasting__subtitle {
    font-family: var(--tri-font-heading);
    font-size: clamp(1.3rem, 3vw, 2rem);
    font-weight: 400;
    font-style: italic;
    color: var(--tri-cream);
    white-space: nowrap;
    margin: 0;
}

/* Scores grid */
.tri-product-tasting__scores {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem 2.5rem;
    background: rgba(255, 255, 255, 0.06);
    border-radius: var(--tri-radius-sm);
    padding: 1.5rem 2rem;
    margin-bottom: var(--tri-space-md);
    max-width: 780px;
    margin-left: auto;
    margin-right: auto;
}

.tri-product-tasting__axis {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.tri-product-tasting__axis-label {
    font-family: var(--tri-font-nav);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-cream);
    min-width: 5.5rem;
    text-align: left;
}

.tri-product-tasting__dots {
    display: flex;
    gap: 0.35rem;
}

.tri-product-tasting__dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    transition: background var(--tri-transition);
}

.tri-product-tasting__dot.is-filled {
    background: var(--tri-terracotta);
}

/* Tasting note blockquote */
.tri-product-tasting__note {
    font-family: var(--tri-font-heading);
    font-size: clamp(1rem, 2vw, 1.15rem);
    font-style: italic;
    font-weight: 300;
    line-height: 1.8;
    color: var(--tri-cream);
    max-width: 640px;
    margin: var(--tri-space-md) auto 0;
    padding: 0;
    border: none;
    opacity: 0.9;
}

.tri-product-tasting__note p {
    margin: 0;
}

/* ── Tasting responsive ── */

@media (max-width: 1024px) {
    .tri-product-tasting {
        padding: var(--tri-space-lg) 0;
    }
}

@media (max-width: 768px) {
    .tri-product-tasting {
        padding: var(--tri-space-lg) 0;
        margin: var(--tri-space-sm) 0;
    }

    .tri-product-tasting__scores {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem 1.5rem;
        padding: 1.25rem 1rem;
    }

    .tri-product-tasting__subtitle {
        white-space: normal;
        font-size: clamp(1.1rem, 4vw, 1.5rem);
    }

    .tri-product-tasting__subtitle-row {
        gap: 0.75rem;
    }

    .tri-product-tasting__axis-label {
        min-width: 4.5rem;
        font-size: 0.65rem;
    }

    .tri-product-tasting__dot {
        width: 10px;
        height: 10px;
    }

    .tri-product-tasting__note {
        font-size: 0.95rem;
    }
}

@media (max-width: 480px) {
    .tri-product-tasting__scores {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .tri-product-tasting__axis {
        justify-content: space-between;
    }
}

/* ============================================
   SINGLE PRODUCT - HERO LAYOUT (TRI-900/901)
   ============================================ */

/* Hero grid: 2 columns on desktop */
.tri-product-hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--tri-space-lg);
    max-width: var(--tri-max-width);
    margin: 0 auto;
    padding: var(--tri-space-xs) var(--tri-gutter) var(--tri-space-xl);
    align-items: start;
}

/* Gallery column */
.tri-product-hero__gallery {
    position: sticky;
    top: var(--tri-space-md);
}

.tri-product-hero__gallery .woocommerce-product-gallery {
    max-width: 100%;
}

.tri-product-hero__gallery .woocommerce-product-gallery__image img {
    max-height: 750px;
    object-fit: contain;
    object-position: center;
    background: var(--tri-white);
    border-radius: var(--tri-radius-md);
    width: 100%;
    height: auto;
}

/* Override Astra default gallery width */
.tri-product-hero .woocommerce-product-gallery {
    width: 100% !important;
    float: none !important;
}

/* Info column */
.tri-product-hero__info {
    display: flex;
    flex-direction: column;
}

/* Title */
.tri-product-hero__title {
    font-family: var(--tri-font-heading);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 400;
    color: var(--tri-charcoal);
    margin: 0 0 var(--tri-space-xs);
    line-height: 1.2;
}

/* Subtitle (appellation, categories) */
.tri-product-hero__subtitle {
    font-family: var(--tri-font-body);
    font-size: 0.85rem;
    color: var(--tri-text-light);
    margin: 0 0 var(--tri-space-sm);
    letter-spacing: 0.02em;
}

/* Price */
.tri-product-hero__price {
    font-family: var(--tri-font-body);
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--tri-charcoal);
    margin-bottom: var(--tri-space-sm);
}

.tri-product-hero__price del {
    color: var(--tri-text-muted);
    font-size: 1rem;
    margin-right: 0.5em;
}

.tri-product-hero__price ins {
    text-decoration: none;
}

.tri-product-hero__price .woocommerce-Price-amount {
    font-size: inherit;
}

.tri-product-hero__price .price--type-variable {
    font-size: inherit;
}

/* ── Contenant pills (TRI-900) ── */

.tri-product-hero__contenants {
    margin-bottom: var(--tri-space-sm);
}

.tri-product-hero__contenants-label {
    display: block;
    font-family: var(--tri-font-nav);
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--tri-text-light);
    margin-bottom: 0.5rem;
}

.tri-product-hero__contenants-pills {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.tri-product-hero__pill {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.6rem 1rem;
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    background: transparent;
    cursor: pointer;
    transition: border-color var(--tri-transition), background var(--tri-transition);
    min-width: 100px;
    text-align: center;
}

.tri-product-hero__pill:hover {
    border-color: var(--tri-charcoal);
}

.tri-product-hero__pill.is-active {
    border-color: var(--tri-charcoal);
    background: var(--tri-offwhite);
}

.tri-product-hero__pill-label {
    font-family: var(--tri-font-nav);
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--tri-charcoal);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.tri-product-hero__pill-price {
    font-family: var(--tri-font-body);
    font-size: 0.8rem;
    color: var(--tri-text-light);
}

/* ── Add to cart area ── */

/* Hide cart area until JS picks a valid variation - prevents FOUC */
.tri-product-hero:not(.is-ready) .tri-product-hero__cart {
    visibility: hidden;
    height: 0;
    overflow: hidden;
}

.tri-product-hero__cart {
    margin-bottom: 0.25rem;
}

.tri-product-hero__cart .variations {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
    padding: 0 !important;
    margin: -1px !important;
}

.tri-product-hero__cart .reset_variations {
    display: none !important;
}

.tri-product-hero__cart .single_variation_wrap .woocommerce-variation {
    margin-bottom: 0.5rem;
}

.tri-product-hero__cart .single_variation_wrap .woocommerce-variation-price {
    display: none; /* Price shown in hero __price block */
}

.tri-product-hero__cart .woocommerce-variation-add-to-cart {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.tri-product-hero__cart .qty {
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    padding: 0.6rem;
    width: 60px;
    text-align: center;
    font-family: var(--tri-font-body);
    font-size: 0.95rem;
}

.tri-product-hero__cart .single_add_to_cart_button {
    flex: 1;
    font-family: var(--tri-font-nav) !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    padding: 0.75rem 2rem !important;
    background: var(--tri-terracotta) !important;
    color: var(--tri-white) !important;
    border: 2px solid var(--tri-terracotta) !important;
    border-radius: var(--tri-radius-sm) !important;
    cursor: pointer;
    transition: background var(--tri-transition), color var(--tri-transition);
}

.tri-product-hero__cart .single_add_to_cart_button:hover {
    background: transparent !important;
    color: var(--tri-terracotta) !important;
}

/* ── Carton info note (75cl = cases of 6) ── */

.tri-product-hero__carton-note {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: var(--tri-text-muted, #8a8275);
    margin: 0.25rem 0 0.5rem;
    line-height: 1.3;
}

.tri-product-hero__carton-note svg {
    flex-shrink: 0;
    opacity: 0.7;
}

/* ── Stock badge ── */

.tri-product-hero__stock {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--tri-font-body);
    font-size: 0.8rem;
    margin: 0 0 var(--tri-space-sm);
}

.tri-product-hero__stock--in {
    color: var(--tri-success);
}

.tri-product-hero__stock--out {
    color: var(--tri-error);
}

.tri-product-hero__stock-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--tri-success);
}

/* ── Assurance badges (TRI-900) ── */

.tri-product-hero__badges {
    display: flex;
    flex-direction: column;
    gap: var(--tri-space-sm);
    padding: var(--tri-space-sm) 0;
    border-top: 1px solid var(--tri-border);
    margin-bottom: var(--tri-space-md);
}

.tri-product-hero__badge {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.tri-product-hero__badge svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    color: var(--tri-text-light);
    margin-top: 0.1rem;
}

.tri-product-hero__badge-text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.tri-product-hero__badge-text strong {
    font-family: var(--tri-font-nav);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-charcoal);
}

.tri-product-hero__badge-text span {
    font-size: 0.8rem;
    color: var(--tri-text-light);
}

/* ── Vintage selector (TRI-901) ── */

.tri-product-hero__vintages {
    padding-top: var(--tri-space-sm);
    border-top: 1px solid var(--tri-border);
}

.tri-product-hero__vintages-title {
    font-family: var(--tri-font-nav);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--tri-charcoal);
    margin: 0 0 0.75rem;
}

.tri-product-hero__vintages-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: var(--tri-space-sm);
}

.tri-product-hero__vintage {
    padding: 0.4rem 0.8rem;
    border: 1px solid var(--tri-border);
    border-radius: var(--tri-radius-sm);
    background: transparent;
    font-family: var(--tri-font-body);
    font-size: 0.8rem;
    color: var(--tri-charcoal);
    cursor: pointer;
    transition: border-color var(--tri-transition), background var(--tri-transition);
    min-width: 52px;
    text-align: center;
}

.tri-product-hero__vintage:hover {
    border-color: var(--tri-charcoal);
}

.tri-product-hero__vintage.is-active {
    border-color: var(--tri-charcoal);
    background: var(--tri-charcoal);
    color: var(--tri-white);
}

.tri-product-hero__pill.is-unavailable,
.tri-product-hero__vintage.is-unavailable {
    opacity: 0.35;
    pointer-events: none;
}

.tri-product-hero__all-wines {
    display: inline-block;
    font-size: 0.8rem;
    color: var(--tri-text-light);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--tri-transition);
}

.tri-product-hero__all-wines:hover {
    color: var(--tri-terracotta);
}

/* ── Hero responsive ── */

@media (max-width: 1024px) {
    .tri-product-hero {
        gap: var(--tri-space-md);
        padding: var(--tri-space-xs) var(--tri-gutter) var(--tri-space-lg);
    }

    .tri-product-hero__gallery .woocommerce-product-gallery__image img {
        max-height: 580px;
    }
}

@media (max-width: 768px) {
    .tri-product-hero {
        grid-template-columns: 1fr;
        gap: var(--tri-space-sm);
        padding: var(--tri-space-sm) var(--tri-gutter) var(--tri-space-md);
    }

    .tri-product-hero__gallery {
        position: static;
    }

    .tri-product-hero__gallery .woocommerce-product-gallery__image img {
        /* Cap image so name + price + CTA are visible on first screen */
        max-height: min(45vh, 340px);
        border-radius: 0;
    }

    .tri-product-hero__title {
        font-size: clamp(1.5rem, 6vw, 2rem);
    }

    .tri-product-hero__price {
        font-size: 1.25rem;
    }

    .tri-product-hero__contenants-pills {
        gap: 0.35rem;
    }

    .tri-product-hero__pill {
        padding: 0.5rem 0.75rem;
        min-width: 80px;
    }

    .tri-product-hero__badges {
        gap: 0.75rem;
    }

    .tri-product-hero__badge svg {
        width: 20px;
        height: 20px;
    }
}

/* ============================================
   BUY CTA inside accords (scroll to hero)
   ============================================ */

.tri-product-accords__cta {
    display: flex;
    justify-content: center;
    margin-top: var(--tri-space-lg);
}

.tri-product-buy-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--tri-font-nav);
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 1rem 2.5rem;
    background: var(--tri-terracotta);
    color: var(--tri-white);
    border: 2px solid var(--tri-terracotta);
    border-radius: var(--tri-radius-sm);
    cursor: pointer;
    transition: background var(--tri-transition), color var(--tri-transition), transform 0.2s ease;
}

.tri-product-buy-cta__btn:hover {
    background: transparent;
    color: var(--tri-terracotta);
}

.tri-product-buy-cta__btn svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

/* Add-to-cart pulse animation */
@keyframes tri-pulse-cart {
    0%   { transform: scale(1); }
    30%  { transform: scale(1.15); }
    50%  { transform: scale(0.95); }
    70%  { transform: scale(1.08); }
    100% { transform: scale(1); }
}

.tri-product-hero__cart .single_add_to_cart_button.is-pulsing {
    animation: tri-pulse-cart 0.6s ease;
}
