/* =============================================
   H3VEL SHOP STYLES
   ============================================= */

.shop-page,
.single-product-page {
    --shop-card-radius: 16px;
    --shop-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* =========================
   HERO
   ========================= */

.shop-hero {
    padding: var(--space-16) 0 var(--space-8);
    background: linear-gradient(180deg, rgba(var(--color-verdeZ-500), 0.05) 0%, transparent 100%);
}

.shop-hero__content {
    max-width: 680px;
}

.shop-hero__content .txt_caption {
    margin-bottom: var(--space-2);
    letter-spacing: 0.12em;
    color: rgb(var(--color-verdeZ-700));
    font-weight: 700;
}

.shop-hero__content .txt_headline {
    font-size: clamp(36px, 5vw, 56px);
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: var(--space-4);
    color: rgb(var(--color-neutral-grayscale-900));
}

.shop-hero__content .txt_body {
    font-size: 1.125rem;
    line-height: 1.6;
    max-width: 520px;
}

/* =========================
   TOOLBAR (categories + sort)
   ========================= */

.shop-toolbar {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

@media (min-width: 768px) {
    .shop-toolbar {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
    .woocommerce-cart-form td.actions{
        border: none !important;
    }
}

/* Category filter pills */
.shop-categories {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.shop-cat-btn {
    padding: 10px 20px;
    border: 1.5px solid rgba(0, 0, 0, 0.1);
    border-radius: 50px;
    background: transparent;
    font-size: 14px;
    font-weight: 600;
    color: rgb(var(--color-neutral-grayscale-700));
    cursor: pointer;
    transition: var(--shop-transition);
    text-decoration: none;
}

.shop-cat-btn:hover {
    border-color: rgb(var(--color-verdeZ-700));
    color: rgb(var(--color-verdeZ-700));
}

.shop-cat-btn.active {
    background: rgb(var(--color-verdeZ-700));
    border-color: rgb(var(--color-verdeZ-700));
    color: #fff;
}

/* Sort select */
.shop-sort {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
}

.shop-sort__label {
    font-size: 14px;
    font-weight: 600;
    color: rgb(var(--color-neutral-grayscale-700));
    white-space: nowrap;
}

.shop-sort__select {
    appearance: none;
    -webkit-appearance: none;
    padding: 10px 40px 10px 16px;
    border: 1.5px solid rgba(0, 0, 0, 0.1);
    border-radius: 12px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    font-size: 14px;
    font-weight: 500;
    color: rgb(var(--color-neutral-grayscale-800));
    cursor: pointer;
    transition: var(--shop-transition);
    min-width: 200px;
}

.shop-sort__select:hover,
.shop-sort__select:focus {
    border-color: rgb(var(--color-verdeZ-700));
    outline: none;
}

/* Results count */
.shop-results-count {
    font-size: 14px;
    color: rgb(var(--color-neutral-grayscale-500));
    margin: 0 0 var(--space-6);
}

/* =========================
   GRID
   ========================= */

.shop-grid-section {
    padding: var(--space-4) 0 var(--space-16);
}

.shop-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
}

@media (min-width: 540px) {
    .shop-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .shop-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1280px) {
    .shop-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* =========================
   PRODUCT CARD
   ========================= */

.shop-card {
    background: #fff;
    border-radius: var(--shop-card-radius);
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.06);
    transition: var(--shop-transition);
    animation: shopFadeIn 0.4s ease both;
}

.shop-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
    border-color: rgb(var(--color-verdeZ-700));
}

.shop-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
}

/* Image */
.shop-card__image {
    position: relative;
    aspect-ratio: 1/1;
    overflow: hidden;
    margin: 0;
    background: rgb(var(--color-neutral-grayscale-200));
}

.shop-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.shop-card:hover .shop-card__image img {
    transform: scale(1.05);
}

/* Sale badge */
.shop-card__badge {
    position: absolute;
    top: var(--space-3);
    left: var(--space-3);
    padding: 6px 14px;
    border-radius: 50px;
    background: rgb(var(--color-verdeZ-700));
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    z-index: 1;
}

/* Content */
.shop-card__content {
    padding: var(--space-5);
}

.shop-card__category {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgb(var(--color-verdeZ-700));
    margin-bottom: var(--space-2);
}

.shop-card__title {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0 0 var(--space-2);
    color: rgb(var(--color-neutral-grayscale-900));
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.shop-card__excerpt {
    font-size: 0.875rem;
    line-height: 1.5;
    color: rgb(var(--color-neutral-grayscale-600));
    margin: 0 0 var(--space-4);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Footer: price + button */
.shop-card__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: var(--space-3);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.shop-card__price {
    font-size: 1.125rem;
    font-weight: 800;
    color: rgb(var(--color-neutral-grayscale-900));
}

.shop-card__price del {
    font-size: 0.875rem;
    font-weight: 500;
    color: rgb(var(--color-neutral-grayscale-500));
    margin-right: var(--space-1);
}

.shop-card__price ins {
    text-decoration: none;
    color: rgb(var(--color-verdeZ-700));
}

.shop-card__btn {
    font-size: 14px;
    font-weight: 600;
    color: rgb(var(--color-verdeZ-700));
    transition: var(--shop-transition);
}

.shop-card:hover .shop-card__btn {
    color: rgb(var(--color-verdeZ-900));
}

/* =========================
   NO PRODUCTS STATE
   ========================= */

.shop-no-products {
    grid-column: 1 / -1;
    text-align: center;
    padding: var(--space-16) var(--space-6);
    background: #fff;
    border-radius: var(--shop-card-radius);
    border: 1px dashed rgba(0, 0, 0, 0.15);
}

.shop-no-products svg {
    color: rgb(var(--color-neutral-grayscale-400));
    margin-bottom: var(--space-4);
}

.shop-no-products p {
    font-size: 1.125rem;
    color: rgb(var(--color-neutral-grayscale-600));
    margin: 0 0 var(--space-6);
}

/* =========================
   ANIMATION
   ========================= */

@keyframes shopFadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

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

@media (max-width: 767px) {
    .shop-hero {
        padding: var(--space-12) 0 var(--space-6);
    }

    .shop-hero__content .txt_headline {
        font-size: 32px;
    }

    .shop-categories {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: var(--space-2);
        -webkit-overflow-scrolling: touch;
    }

    .shop-cat-btn {
        flex-shrink: 0;
    }

    .shop-sort {
        width: 100%;
    }

    .shop-sort__select {
        flex: 1;
        min-width: 0;
    }

    .shop-card__content {
        padding: var(--space-4);
    }
}

/* =========================
   LOGGED-IN FIX (same as blog)
   ========================= */

body:not(.logged-in) #shop-page,
body:not(.logged-in) #single-product-page {
    margin-top: 60px;
}

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

/* Breadcrumb */
.sp-breadcrumb-section {
    padding: var(--space-12) 0 0;
}

.sp-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: 14px;
}

.sp-breadcrumb a {
    color: rgb(var(--color-neutral-grayscale-600));
    text-decoration: none;
    transition: var(--shop-transition);
}

.sp-breadcrumb a:hover {
    color: rgb(var(--color-verdeZ-700));
}

.sp-breadcrumb .separator {
    color: rgb(var(--color-neutral-grayscale-400));
}

.sp-breadcrumb span:last-child {
    color: rgb(var(--color-neutral-grayscale-900));
    font-weight: 500;
}

/* =========================
   PRODUCT LAYOUT
   ========================= */

.sp-main {
    padding: var(--space-8) 0 var(--space-12);
}

.sp-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
}

@media (min-width: 768px) {
    .sp-layout {
        grid-template-columns: 55% 1fr;
        gap: var(--space-10);
        align-items: start;
    }
}

@media(max-width:768px){
    .sp-layout{
        display: block;
    }
    .sp-info{
        margin-top: 30px;
    }
}

/* =========================
   GALLERY
   ========================= */

.sp-gallery__main {
    position: relative;
    margin: 0;
    border-radius: var(--shop-card-radius);
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

.sp-gallery__main img {
    width: 100%;
    height: 550px;
    display: block;
    object-fit: cover;
}

.sp-gallery__thumbs {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-4);
    overflow-x: auto;
    padding-bottom: var(--space-2);
}

.sp-thumb {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border-radius: 12px;
    overflow: hidden;
    border: 2px solid transparent;
    cursor: pointer;
    transition: var(--shop-transition);
    background: #fff;
    padding: 0;
}

.sp-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sp-thumb:hover {
    border-color: rgba(var(--color-verdeZ-700), 0.4);
}

.sp-thumb.active {
    border-color: rgb(var(--color-verdeZ-700));
}

/* =========================
   PRODUCT INFO
   ========================= */

.sp-info {
    display: flex;
    flex-direction: column;
}

.sp-info__category {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgb(var(--color-verdeZ-700));
    margin-bottom: var(--space-2);
}

.sp-info__title {
    font-size: clamp(24px, 3.5vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: rgb(var(--color-neutral-grayscale-900));
    margin: 0 0 var(--space-4);
}

.sp-info__price {
    font-size: 1.75rem;
    font-weight: 800;
    color: rgb(var(--color-neutral-grayscale-900));
    margin-bottom: var(--space-5);
}

.sp-info__price del {
    font-size: 1.125rem;
    font-weight: 500;
    color: rgb(var(--color-neutral-grayscale-500));
    margin-right: var(--space-2);
}

.sp-info__price ins {
    text-decoration: none;
    color: rgb(var(--color-verdeZ-700));
}

.sp-info__short-desc {
    font-size: 1rem;
    line-height: 1.7;
    color: rgb(var(--color-neutral-grayscale-700));
    margin-bottom: var(--space-5);
    padding-bottom: var(--space-5);
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.sp-info__short-desc p {
    margin: 0 0 var(--space-3);
}

.sp-info__short-desc p:last-child {
    margin-bottom: 0;
}

/* Stock */
.sp-info__stock {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 var(--space-5);
}

.sp-info__stock--in {
    color: rgb(var(--color-verdeZ-700));
}

.sp-info__stock--out {
    color: #c0392b;
}

/* Add to cart button */
.sp-info__actions {
    margin-bottom: var(--space-6);
}

.sp-btn-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    width: 100%;
    padding: 16px 32px;
    border-radius: 14px;
    background: rgb(var(--color-verdeZ-700));
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    transition: var(--shop-transition);
    border: none;
    cursor: pointer;
}

.sp-btn-cart:hover {
    background: rgb(var(--color-verdeZ-900));
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.sp-btn-cart:active {
    transform: translateY(0);
}

/* Meta */
.sp-info__meta,
.sp-info__tags {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    font-size: 14px;
    color: rgb(var(--color-neutral-grayscale-600));
    margin-bottom: var(--space-3);
}

.sp-meta-label {
    font-weight: 600;
    color: rgb(var(--color-neutral-grayscale-700));
}

.sp-tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.sp-tag {
    padding: 4px 12px;
    border-radius: 50px;
    background: rgba(0, 0, 0, 0.05);
    font-size: 13px;
    color: rgb(var(--color-neutral-grayscale-700));
    text-decoration: none;
    transition: var(--shop-transition);
}

.sp-tag:hover {
    background: rgb(var(--color-verdeZ-700));
    color: #fff;
}

/* =========================
   DESCRIPTION TAB
   ========================= */

.sp-description {
    padding: var(--space-8) 0 var(--space-12);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.sp-description__inner {
    max-width: 800px;
}

.sp-description__title {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 var(--space-6);
    color: rgb(var(--color-neutral-grayscale-900));
}

.sp-description__content {
    font-size: 1.0625rem;
    line-height: 1.75;
    color: rgb(var(--color-neutral-grayscale-800));
}

.sp-description__content p {
    margin: 0 0 var(--space-5);
}

.sp-description__content ul,
.sp-description__content ol {
    margin: 0 0 var(--space-5);
    padding-left: var(--space-6);
}

.sp-description__content li {
    margin-bottom: var(--space-2);
    line-height: 1.75;
}

.sp-description__content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--shop-card-radius);
    margin: var(--space-4) 0;
}

/* =========================
   RELATED PRODUCTS
   ========================= */

.sp-related {
    padding: var(--space-12) 0;
    background: rgba(0, 0, 0, 0.02);
}

.sp-related__title {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 var(--space-8);
    color: rgb(var(--color-neutral-grayscale-900));
}

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

@media (max-width: 767px) {
    .sp-breadcrumb-section {
        padding: var(--space-8) 0 0;
    }

    .sp-main {
        padding: var(--space-6) 0 var(--space-8);
    }

    .sp-info__title {
        font-size: 24px;
    }

    .sp-bundle__title {
        font-size: clamp(18px, 6vw, 26px);
    }

    .sp-info__price {
        font-size: 1.5rem;
    }

    .sp-thumb {
        width: 60px;
        height: 60px;
    }
}

/* =============================================
   WOOCOMMERCE CART PAGE
   ============================================= */

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-12) var(--space-5) var(--space-16);
}

body:not(.logged-in).woocommerce-cart .woocommerce,
body:not(.logged-in).woocommerce-checkout .woocommerce {
    padding-top: calc(var(--space-12) + 60px);
}

/* Page title */
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title {
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 800;
    color: rgb(var(--color-neutral-grayscale-900));
    margin: 0 0 var(--space-8);
}

/* ---- Cart Table ---- */
.woocommerce table.shop_table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    margin-bottom: var(--space-8);
    table-layout: fixed;
}

.woocommerce table.shop_table thead {
    background: rgb(var(--color-neutral-grayscale-200));
}

.woocommerce table.shop_table thead th {
    padding: var(--space-4) var(--space-5);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgb(var(--color-neutral-grayscale-700));
    border: none;
    text-align: left;
}

.woocommerce table.shop_table thead th.product-remove {
    width: 44px;
    padding-left: var(--space-3);
    padding-right: 0;
}

.woocommerce table.shop_table thead th.product-thumbnail {
    width: 92px;
    padding-left: 0;
    padding-right: var(--space-3);
}

.woocommerce table.shop_table tbody td {
    padding: var(--space-5);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    vertical-align: middle;
    color: rgb(var(--color-neutral-grayscale-800));
    font-size: 0.9375rem;
}

.woocommerce table.shop_table tbody tr:first-child td {
    border-top: none;
}

/* Product thumbnail in cart */
.woocommerce table.shop_table .product-thumbnail img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

/* Product name link */
.woocommerce table.shop_table .product-name a {
    color: rgb(var(--color-neutral-grayscale-900));
    font-weight: 600;
    text-decoration: none;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.woocommerce table.shop_table .product-name a:hover {
    color: rgb(var(--color-verdeZ-700));
}

/* Quantity input */
.woocommerce table.shop_table .quantity .qty {
    width: 64px;
    padding: 8px 12px;
    border: 1.5px solid rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    text-align: center;
    font-size: 0.9375rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-grayscale-900));
    background: #fff;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.woocommerce table.shop_table .quantity .qty:focus {
    border-color: rgb(var(--color-verdeZ-700));
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--color-verdeZ-700), 0.15);
}

/* Column widths (table-layout: fixed) */
.woocommerce table.shop_table .product-remove {
    width: 44px;
    text-align: center;
    padding-left: var(--space-3) !important;
    padding-right: 0 !important;
}

.woocommerce table.shop_table .product-thumbnail {
    width: 92px;
    padding-left: 10px !important;
    padding-right: var(--space-3) !important;
}

.woocommerce table.shop_table .product-name {
    width: auto;
}

.woocommerce table.shop_table .product-price {
    width: 120px;
}

.woocommerce table.shop_table .product-quantity {
    width: 110px;
}

.woocommerce table.shop_table .product-subtotal {
    width: 120px;
}

/* Remove button */
.woocommerce table.shop_table .product-remove a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.05);
    color: rgb(var(--color-neutral-grayscale-500));
    font-size: 16px;
    text-decoration: none;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    line-height: 1;
}

.woocommerce table.shop_table .product-remove a:hover {
    background: #c0392b;
    color: #fff;
}

/* Price columns */
.woocommerce table.shop_table .product-price,
.woocommerce table.shop_table .product-subtotal {
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-900));
}

/* Actions row (coupon + update) */
.woocommerce table.shop_table .actions {
    padding: var(--space-6) var(--space-5);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.woocommerce .coupon {
    display: flex;
    gap: var(--space-3);
    align-items: center;
    flex: 0 1 auto;
    min-width: 0;
}

.woocommerce .coupon #coupon_code {
    padding: 10px 16px;
    border: 1.5px solid rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    font-size: 14px;
    color: rgb(var(--color-neutral-grayscale-800));
    background: #fff;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: 220px;
    flex-shrink: 1;
}

.woocommerce .coupon #coupon_code:focus {
    border-color: rgb(var(--color-verdeZ-700));
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--color-verdeZ-700), 0.15);
}

/* All WooCommerce buttons */
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce .coupon button,
.woocommerce button[name="update_cart"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    border-radius: 10px;
    white-space: nowrap;
    background: rgb(var(--color-verdeZ-900));
    color: #fff !important;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    border: none;
    cursor: pointer;
    transition: background-color 200ms ease-in-out, transform 0.2s;
    text-decoration: none;
}

.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover,
.woocommerce .coupon button:hover,
.woocommerce button[name="update_cart"]:hover {
    background: rgb(var(--color-verdeZ-700));
    transform: translateY(-2px) scale(1.03);
}

.woocommerce button.button:disabled,
.woocommerce input.button:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none;
}

/* ---- Cart Totals ---- */
.woocommerce .cart_totals {
    max-width: 480px;
    margin-left: auto;
}

.woocommerce .cart_totals h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-900));
    margin: 0 0 var(--space-5);
}

.woocommerce .cart_totals table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: var(--space-5);
}

.woocommerce .cart_totals table th,
.woocommerce .cart_totals table td {
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 0.9375rem;
}

.woocommerce .cart_totals table tr:first-child th,
.woocommerce .cart_totals table tr:first-child td {
    border-top: none;
}

.woocommerce .cart_totals table th {
    font-weight: 600;
    color: rgb(var(--color-neutral-grayscale-700));
    text-align: left;
    width: 40%;
}

.woocommerce .cart_totals table td {
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-900));
    text-align: right;
}

.woocommerce .cart_totals .order-total td {
    font-size: 1.25rem;
    font-weight: 800;
    color: rgb(var(--color-verdeZ-900));
}

/* Checkout button in cart */
.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button {
    display: block;
    width: 100%;
    padding: 16px 32px;
    border-radius: 14px;
    background: rgb(var(--color-verdeZ-700));
    color: #fff !important;
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.10);
}

.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button:hover {
    background: rgb(var(--color-verdeZ-900));
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

/* Cart empty message */
.woocommerce .cart-empty {
    text-align: center;
    padding: var(--space-16) var(--space-6);
    font-size: 1.125rem;
    color: rgb(var(--color-neutral-grayscale-600));
}

.woocommerce .return-to-shop a {
    display: inline-flex;
    align-items: center;
    padding: 14px 32px;
    border-radius: 14px;
    background: rgb(var(--color-verdeZ-700));
    color: #fff !important;
    font-weight: 700;
    text-decoration: none;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.woocommerce .return-to-shop a:hover {
    background: rgb(var(--color-verdeZ-900));
    transform: translateY(-2px);
}

/* Cart responsive */
@media (max-width: 767px) {
    .woocommerce table.shop_table,
    .woocommerce table.shop_table thead,
    .woocommerce table.shop_table tbody,
    .woocommerce table.shop_table tr,
    .woocommerce table.shop_table td {
        display: block;
    }

    .woocommerce table.shop_table {
        overflow: visible;
    }

    .woocommerce table.shop_table thead {
        display: none;
    }

    .woocommerce table.shop_table tbody tr {
        padding: var(--space-5);
        border-top: 1px solid rgba(0, 0, 0, 0.06);
        display: block !important;
        position: relative;
    }

    .woocommerce table.shop_table tbody tr.woocommerce-cart-form__cart-item {
        display: flex !important;
        flex-direction: column !important;
        align-items: normal !important;
        position: relative;
        padding-top: calc(var(--space-5) + 36px);
    }

    .woocommerce table.shop_table tbody tr:first-child {
        border-top: none;
    }

    .woocommerce table.shop_table tbody td {
        padding: 0;
        border: none;
    }

    .woocommerce table.shop_table_responsive tr:nth-child(2n) td,
    .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: #fff !important;
    }

    /* Remove button: in flow, top-right */
    .woocommerce table.shop_table .product-remove {
        position: absolute;
        top: var(--space-4);
        right: var(--space-4);
        width: auto;
        order: -1;
        z-index: 2;
    }

    .woocommerce table.shop_table .product-remove a {
        width: 36px;
        height: 36px;
        font-size: 20px;
        background: rgba(0, 0, 0, 0.06);
    }

    .woocommerce table.shop_table .product-thumbnail {
        flex-shrink: 0;
    }

    .woocommerce table.shop_table .product-thumbnail img {
        width: 100%;
        height: auto;
        max-width: 120px;
        aspect-ratio: 1/1;
    }

    .woocommerce table.shop_table .product-name {
        flex: 1;
        min-width: 0;
        padding-top: var(--space-3);
    }

    .woocommerce table.shop_table .product-price,
    .woocommerce table.shop_table .product-quantity,
    .woocommerce table.shop_table .product-subtotal {
        width: auto;
        padding-top: var(--space-2);
    }

    .woocommerce table.shop_table .product-price::before,
    .woocommerce table.shop_table .product-quantity::before,
    .woocommerce table.shop_table .product-subtotal::before {
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: rgb(var(--color-neutral-grayscale-500));
        margin-right: var(--space-2);
    }

    .woocommerce table.shop_table .actions {
        flex-direction: column;
        align-items: stretch;
    }

    .woocommerce .coupon {
        flex-direction: column;
    }

    .woocommerce .coupon #coupon_code {
        min-width: 0;
        width: 100%;
    }

    .woocommerce .cart_totals {
        max-width: none;
    }
}

/* =============================================
   WOOCOMMERCE CHECKOUT PAGE
   ============================================= */

/* Notices */
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-error {
    padding: var(--space-4) var(--space-5);
    border-radius: 12px;
    margin-bottom: var(--space-6);
    font-size: 0.9375rem;
    border: none;
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.woocommerce-checkout .woocommerce-info {
    background: rgba(var(--color-verdeZ-700), 0.08);
    color: rgb(var(--color-verdeZ-900));
}

.woocommerce-checkout .woocommerce-info::before {
    color: rgb(var(--color-verdeZ-700));
    display: none !important;
}

.woocommerce-checkout .woocommerce-error {
    background: #fef2f2;
    color: #991b1b;
}

.woocommerce-checkout .woocommerce-message {
    background: rgba(var(--color-verdeZ-700), 0.08);
    color: rgb(var(--color-verdeZ-900));
}

/* Coupon toggle link */
.woocommerce-checkout .showcoupon {
    color: rgb(var(--color-verdeZ-700));
    font-weight: 600;
    text-decoration: none;
    transition: 0.2s;
}

.woocommerce-checkout .showcoupon:hover {
    color: rgb(var(--color-verdeZ-900));
}

/* Checkout form - two columns on desktop */
.woocommerce-checkout .col2-set {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
    margin-bottom: var(--space-8);
}

/* Kill WooCommerce clearfix ::before/::after that break grid */
.woocommerce-checkout .col2-set::before,
.woocommerce-checkout .col2-set::after,
.woocommerce-checkout .col2-set .col-1::before,
.woocommerce-checkout .col2-set .col-1::after,
.woocommerce-checkout .col2-set .col-2::before,
.woocommerce-checkout .col2-set .col-2::after {
    display: none !important;
    content: none !important;
}

/* Reset WooCommerce default float/width on columns */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    float: none;
    width: 100%;
    max-width: 100%;
}

#order_review .cart-subtotal th, #order_review .cart-subtotal td, #order_review .order-total th, #order_review .order-total td{
    padding-left: 20px;
    padding-right: 20px;
}

@media (min-width: 768px) {
    .woocommerce-checkout .col2-set {
        grid-template-columns: 1fr;
    }
}

/* Column headings */
.woocommerce-checkout .col2-set h3,
.woocommerce-checkout h3#order_review_heading {
    font-size: 1.25rem;
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-900));
    margin: 0 0 var(--space-5);
    padding-bottom: var(--space-4);
    border-bottom: 2px solid rgb(var(--color-verdeZ-700));
}

/* Form rows */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
}

@media (min-width: 540px) {
    .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
    .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
        grid-template-columns: 1fr 1fr;
    }

    .woocommerce-checkout .form-row-wide {
        grid-column: 1 / -1;
    }

    .woocommerce-checkout .form-row-first {
        grid-column: 1;
    }

    .woocommerce-checkout .form-row-last {
        grid-column: 2;
    }
}

/* Labels */
.woocommerce-checkout .form-row label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: rgb(var(--color-neutral-grayscale-700));
    margin-bottom: var(--space-1);
}

.woocommerce-checkout .form-row label .required {
    color: rgb(var(--color-verdeZ-700));
}

/* Inputs */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
    width: 100%;
    padding: 12px 16px;
    border: 1.5px solid rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    font-size: 0.9375rem;
    color: rgb(var(--color-neutral-grayscale-900));
    background: #fff;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-sizing: border-box;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
    border-color: rgb(var(--color-verdeZ-700));
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--color-verdeZ-700), 0.15);
}

/* Select2 overrides */
.woocommerce-checkout .select2-container--default .select2-selection--single {
    height: auto;
    min-height: 46px;
    display: flex;
    align-items: center;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0;
    line-height: 1.4;
    color: rgb(var(--color-neutral-grayscale-900));
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
    right: 12px;
}

.woocommerce-checkout .select2-container--open .select2-selection--single {
    border-color: rgb(var(--color-verdeZ-700));
    box-shadow: 0 0 0 3px rgba(var(--color-verdeZ-700), 0.15);
}

.select2-dropdown {
    border: 1.5px solid rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.select2-results__option--highlighted {
    background: rgb(var(--color-verdeZ-700)) !important;
}

/* Textarea */
.woocommerce-checkout .form-row textarea {
    min-height: 100px;
    resize: vertical;
}

/* Checkboxes */
.woocommerce-checkout .form-row input[type="checkbox"] {
    accent-color: rgb(var(--color-verdeZ-700));
    width: 18px;
    height: 18px;
    margin-right: var(--space-2);
    vertical-align: middle;
}

/* ---- Order Review Table ---- */
.woocommerce-checkout #order_review {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    padding: var(--space-6);
    margin-bottom: var(--space-8);
}

.woocommerce-checkout .woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--space-5);
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
    padding: var(--space-3) 0;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgb(var(--color-neutral-grayscale-600));
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    text-align: left;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead th:last-child {
    text-align: right;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table td {
    padding: var(--space-4) 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 0.9375rem;
    color: rgb(var(--color-neutral-grayscale-800));
}

.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child {
    text-align: right;
    font-weight: 600;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name {
    font-weight: 500;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name .product-quantity {
    color: rgb(var(--color-neutral-grayscale-500));
    font-weight: 400;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th {
    padding: var(--space-4) 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    font-weight: 600;
    font-size: 0.9375rem;
    color: rgb(var(--color-neutral-grayscale-700));
    text-align: left;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
    padding: var(--space-4) 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    text-align: right;
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-900));
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td {
    border-bottom: none;
    padding-top: var(--space-5);
    font-size: 1.125rem;
    font-weight: 800;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td {
    color: rgb(var(--color-verdeZ-900));
}

/* ---- Payment Methods ---- */
.woocommerce-checkout #payment {
    background: transparent;
    border-radius: 0;
}

.woocommerce-checkout #payment ul.payment_methods {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-6);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
}

.woocommerce-checkout #payment ul.payment_methods li {
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

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

.woocommerce-checkout #payment ul.payment_methods li label {
    font-size: 0.9375rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-grayscale-900));
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
    accent-color: rgb(var(--color-verdeZ-700));
    width: 18px;
    height: 18px;
}

.woocommerce-checkout #payment .payment_box {
    background: rgb(var(--color-neutral-grayscale-200));
    padding: var(--space-4) var(--space-5);
    margin-top: var(--space-3);
    border-radius: 10px;
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-grayscale-700));
    line-height: 1.6;
}

.woocommerce-checkout #payment .payment_box::before {
    display: none;
}

/* Privacy / Terms */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
    margin-bottom: var(--space-5);
}

.woocommerce-checkout .woocommerce-privacy-policy-text p {
    font-size: 0.8125rem;
    color: rgb(var(--color-neutral-grayscale-600));
    line-height: 1.6;
}

.woocommerce-checkout .woocommerce-privacy-policy-text a {
    color: rgb(var(--color-verdeZ-700));
    text-decoration: none;
    font-weight: 600;
}

.woocommerce-checkout .woocommerce-privacy-policy-text a:hover {
    color: rgb(var(--color-verdeZ-900));
}

/* Place Order button */
.woocommerce-checkout #place_order {
    display: block;
    width: 100%;
    padding: 16px 32px;
    border-radius: 14px;
    background: rgb(var(--color-verdeZ-700));
    color: #fff !important;
    font-size: 1.0625rem;
    font-weight: 700;
    text-align: center;
    border: none;
    cursor: pointer;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.10);
    letter-spacing: 0.02em;
}

.woocommerce-checkout #place_order:hover {
    background: rgb(var(--color-verdeZ-900));
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

/* Checkout validation errors */
.woocommerce-checkout .woocommerce-invalid input.input-text {
    border-color: #c0392b;
}

.woocommerce-checkout .woocommerce-invalid input.input-text:focus {
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.15);
}

/* ---- Login form on checkout ---- */
.woocommerce-checkout .woocommerce-form-login-toggle + .woocommerce-form-login,
.woocommerce-checkout .woocommerce-form-coupon-toggle + .checkout_coupon {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    padding: var(--space-6);
    margin-bottom: var(--space-6);
}

.woocommerce-checkout .checkout_coupon .form-row {
    display: inline-flex;
    gap: var(--space-3);
    margin: 0;
}

.woocommerce-checkout .checkout_coupon #coupon_code {
    padding: 10px 16px;
    border: 1.5px solid rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    font-size: 14px;
}

.woocommerce-checkout .checkout_coupon #coupon_code:focus {
    border-color: rgb(var(--color-verdeZ-700));
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--color-verdeZ-700), 0.15);
}

@media (max-width: 767px) {
    .woocommerce-cart button[name="update_cart"]{
        width: 100% !important;
    }
}

.woocommerce form .form-row{
    width: 100%;
}

/* Checkout responsive */
@media (max-width: 767px) {
    .woocommerce-checkout #order_review {
        padding: var(--space-4);
    }

    .woocommerce-checkout #payment ul.payment_methods li {
        padding: var(--space-3) var(--space-4);
    }
    #order_review tfoot{
        display: block;
        width: 100%;
    }
}

/* ---- WooCommerce Notices (global) ---- */
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-error {
    padding: var(--space-4) var(--space-5);
    border-radius: 12px;
    margin-bottom: var(--space-6);
    font-size: 0.9375rem;
    border: none;
}

.woocommerce-cart .woocommerce-message {
    background: rgba(var(--color-verdeZ-700), 0.08);
    color: rgb(var(--color-verdeZ-900));
}

.woocommerce-cart .woocommerce-error {
    background: #fef2f2;
    color: #991b1b;
}
.woocommerce-message::before{
    display: none !important;
}

/* =============================================
   WOOCOMMERCE THANK YOU / ORDER RECEIVED PAGE
   ============================================= */

.woocommerce-order {
    max-width: 720px;
    margin: 0 auto;
}

/* Success notice */
.woocommerce-order .woocommerce-notice--success {
    text-align: center;
    font-size: 1.5rem;
    font-weight: 800;
    color: rgb(var(--color-neutral-grayscale-900));
    padding: var(--space-8) var(--space-6) var(--space-4);
    margin: 0 0 var(--space-6);
    background: none;
    border: none;
}

.woocommerce-order .woocommerce-notice--success::before {
    content: "✓";
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0 auto var(--space-4);
    border-radius: 50%;
    background: rgba(var(--color-verdeZ-700), 0.1);
    color: rgb(var(--color-verdeZ-700));
    font-size: 28px;
    font-weight: 700;
}

/* Order overview list */
.woocommerce-order .woocommerce-order-overview {
    list-style: none;
    padding: var(--space-5) var(--space-6);
    margin: 0 0 var(--space-8);
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4) var(--space-6);
}

.woocommerce-order .woocommerce-order-overview li {
    font-size: 0.8125rem;
    color: rgb(var(--color-neutral-grayscale-600));
    padding: 0;
    margin: 0;
    border: none;
}

.woocommerce-order .woocommerce-order-overview li strong {
    display: block;
    margin-top: 2px;
    font-size: 0.9375rem;
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-900));
    word-break: break-all;
}

.woocommerce-order .woocommerce-order-overview li.total strong {
    color: rgb(var(--color-verdeZ-900));
    font-size: 1.125rem;
}

/* Order details section */
.woocommerce-order .woocommerce-order-details {
    margin-bottom: var(--space-8);
}

.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-900));
    margin: 0 0 var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 2px solid rgb(var(--color-verdeZ-700));
}

/* Order details table */
.woocommerce-order table.order_details {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    overflow: hidden;
    table-layout: auto;
}

.woocommerce-order table.order_details thead th {
    padding: var(--space-4) var(--space-5);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgb(var(--color-neutral-grayscale-600));
    background: rgb(var(--color-neutral-grayscale-200));
    border: none;
    text-align: left;
}

.woocommerce-order table.order_details thead th:last-child {
    text-align: right;
}

.woocommerce-order table.order_details tbody td {
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 0.9375rem;
    color: rgb(var(--color-neutral-grayscale-800));
}

.woocommerce-order table.order_details tbody td:last-child {
    text-align: right;
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-900));
}

.woocommerce-order table.order_details tbody td .product-quantity {
    color: rgb(var(--color-neutral-grayscale-500));
    font-weight: 400;
}

.woocommerce-order table.order_details tbody td a {
    color: rgb(var(--color-neutral-grayscale-900));
    font-weight: 600;
    text-decoration: none;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.woocommerce-order table.order_details tbody td a:hover {
    color: rgb(var(--color-verdeZ-700));
}

.woocommerce-order table.order_details tfoot th,
.woocommerce-order table.order_details tfoot td {
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 0.9375rem;
}

.woocommerce-order table.order_details tfoot th {
    text-align: left;
    font-weight: 600;
    color: rgb(var(--color-neutral-grayscale-700));
}

.woocommerce-order table.order_details tfoot td {
    text-align: right;
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-900));
}

/* Customer details / billing address */
.woocommerce-order .woocommerce-customer-details {
    margin-bottom: var(--space-8);
}

.woocommerce-order .woocommerce-customer-details address {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 16px;
    padding: var(--space-5) var(--space-6);
    font-style: normal;
    font-size: 0.9375rem;
    line-height: 1.8;
    color: rgb(var(--color-neutral-grayscale-800));
}

.woocommerce-order .woocommerce-customer-details address p {
    margin: var(--space-2) 0 0;
    color: rgb(var(--color-neutral-grayscale-600));
    font-size: 0.875rem;
}

.wc-empty-cart-message{
    margin-top: 120px;
}

table.shop_table tr.fee td{
    padding-right: 20px;
}
table.shop_table tr.fee th{
    padding-left: 20px;
}

/* Responsive */
@media (max-width: 540px) {
    .woocommerce-order .woocommerce-order-overview {
        grid-template-columns: 1fr;
        gap: var(--space-3);
        padding: var(--space-4) var(--space-5);
    }

    .woocommerce-order .woocommerce-notice--success {
        font-size: 1.25rem;
        padding: var(--space-6) var(--space-4) var(--space-3);
    }
}

/* =========================
   DUAL GALLERY
   ========================= */

.sp-galleries-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    align-items: start;
}

.sp-gallery-col {
    display: flex;
    flex-direction: column;
    min-width: 0; /* prevent grid blowout */
}

.sp-gallery-col__label {
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgb(var(--color-neutral-grayscale-900));
    margin: 0 0 10px;
}

/* When only one gallery column exists, stretch it */
.sp-galleries-wrap > .sp-gallery-col:only-child {
    grid-column: 1 / -1;
}

/* ---- Swiper inside gallery col ---- */
.sp-swiper {
    width: 100%;
    overflow: hidden;
    border-radius: var(--shop-card-radius);
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

.sp-swiper .swiper-slide {
    height: auto;
}

/* Remove border/radius from figure inside swiper (swiper handles it) */
.sp-swiper .sp-gallery__main {
    border-radius: 0;
    border: none;
    background: transparent;
}

/* Navigation arrows: smaller & contained */
.sp-swiper .swiper-button-prev,
.sp-swiper .swiper-button-next {
    width: 32px;
    height: 32px;
    background: rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
    backdrop-filter: blur(4px);
}

.sp-swiper .swiper-button-prev::after,
.sp-swiper .swiper-button-next::after {
    font-size: 13px;
    color: rgb(var(--color-neutral-grayscale-900));
    font-weight: 800;
}

/* Pagination dots */
.sp-swiper .swiper-pagination {
    bottom: 8px;
}

.sp-swiper .swiper-pagination-bullet-active {
    background: rgb(var(--color-verdeZ-700));
}

@media (max-width: 480px) {
    .sp-galleries-wrap {
        grid-template-columns: 1fr;
    }
}

/* =========================
   PRODUCT INFO — NEW ELEMENTS
   ========================= */

.sp-info__headline {
    font-size: 14px;
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-800));
    margin: 0 0 10px;
    line-height: 1.4;
}

.sp-info__price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
}

.sp-info__price-note {
    font-size: 12px;
    font-weight: 500;
    color: rgb(var(--color-verdeZ-700));
}

/* =========================
   INFO TABLE
   ========================= */

.sp-info-table {
    margin: 18px 0;
    border-top: 1px solid rgba(0, 0, 0, .10);
}

.sp-info-row {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 12px;
    padding: 13px 0;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
    align-items: start;
}

.sp-info-row__label {
    font-size: 13px;
    font-weight: 800;
    color: rgb(var(--color-neutral-grayscale-900));
    padding-top: 1px;
}

.sp-info-row__content {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.sp-info-row__content p {
    margin: 0;
    font-size: 13px;
    color: rgb(var(--color-neutral-grayscale-700));
    line-height: 1.45;
}

/* =========================
   CTA BLOCK
   ========================= */

.sp-info__cta {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sp-info__cta-pre {
    font-size: 16px;
    font-weight: 700;
    color: rgb(var(--color-neutral-grayscale-800));
    text-align: center;
    margin: 0;
}

/* Override old .sp-info__actions margin for new CTA block */
.sp-info__cta .sp-btn-cart {
    border-radius: 999px;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

@media(max-width:768px){
    .sp-gallery__main img{
        height: auto;
        aspect-ratio: 1/1;
    }
}

/* =========================================================
   PRODUCTO BUNDLE — H3VEL ONE + H3VEL HEALTH (diseño rico)
   ========================================================= */

.sp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    align-self: flex-start;
    padding: 7px 16px;
    border-radius: 999px;
    background: rgb(var(--color-verdeZ-900));
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 16px;
}
.sp-badge__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgb(var(--color-verdeZ-100));
}

.sp-bundle__eyebrow {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgb(var(--color-verdeZ-900));
    margin: 0 0 10px;
    line-height: 1.4;
}
.sp-bundle__title {
    font-size: clamp(22px, 3.2vw, 38px);
    font-weight: 800;
    line-height: 1.2;
    color: rgb(var(--color-neutral-grayscale-900));
    margin: 0 0 8px;
    max-width: 100%;
    overflow-wrap: break-word;
}
.sp-bundle__subtitle {
    font-size: 15px;
    color: rgb(var(--color-neutral-grayscale-700));
    margin: 0 0 22px;
}

/* ---- Tarjeta de precio ---- */
.sp-pricecard {
    position: relative;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 20px;
    padding: 26px 24px 24px;
    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}
.sp-pricecard::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, rgb(var(--color-verdeZ-900)), rgb(var(--color-verdeZ-700)), rgb(var(--color-verdeZ-100)));
}

.sp-pricecard__alert {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fdecec;
    color: #c0392b;
    border-radius: 10px;
    padding: 9px 14px;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 18px;
}
.sp-pricecard__alert svg { width: 17px; height: 17px; flex-shrink: 0; }

.sp-pricecard__price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 6px;
}
.sp-pricecard__now .woocommerce-Price-amount {
    font-size: clamp(40px, 6vw, 54px);
    font-weight: 900;
    line-height: 1;
    color: rgb(var(--color-neutral-grayscale-900));
    letter-spacing: -0.02em;
}
.sp-pricecard__unit {
    font-size: 14px;
    color: rgb(var(--color-neutral-grayscale-700));
    font-weight: 500;
}
.sp-pricecard__unit small {
    display: block;
    font-size: 12px;
    color: rgb(var(--color-neutral-grayscale-500));
}

.sp-pricecard__was {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 20px;
    font-size: 13px;
    color: rgb(var(--color-neutral-grayscale-700));
}
.sp-pricecard__was-amount {
    text-decoration: line-through;
    color: rgb(var(--color-neutral-grayscale-500));
}
.sp-pricecard__was-amount .woocommerce-Price-amount { text-decoration: line-through; }
.sp-pricecard__save {
    color: rgb(var(--color-verdeZ-900));
    font-weight: 800;
}

.sp-pricecard__list {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.sp-pricecard__list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    color: rgb(var(--color-neutral-grayscale-800, 51, 51, 51));
    line-height: 1.4;
}
.sp-pricecard__list li strong { color: rgb(var(--color-neutral-grayscale-900)); font-weight: 800; }
.sp-pricecard__list svg {
    width: 18px; height: 18px;
    flex-shrink: 0;
    color: rgb(var(--color-verdeZ-900));
    margin-top: 1px;
}

.sp-pricecard__renew {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: rgb(var(--color-verdeZ-100));
    border-radius: 14px;
    padding: 16px 18px;
    margin-bottom: 16px;
}
.sp-pricecard__renew-title {
    display: block;
    font-size: 13px;
    font-weight: 800;
    color: rgb(var(--color-neutral-grayscale-900));
    margin-bottom: 4px;
}
.sp-pricecard__renew-text p {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: rgb(var(--color-neutral-grayscale-700));
}
.sp-pricecard__renew-text strong { color: rgb(var(--color-neutral-grayscale-900)); }
.sp-pricecard__renew-price {
    flex-shrink: 0;
    font-size: 22px;
    font-weight: 900;
    color: rgb(var(--color-verdeZ-900));
    white-space: nowrap;
    line-height: 1;
}
.sp-pricecard__renew-price .woocommerce-Price-amount { font-size: 22px; font-weight: 900; }
.sp-pricecard__renew-price small { font-size: 13px; font-weight: 600; }

.sp-pricecard__note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    font-size: 13px;
    color: rgb(var(--color-neutral-grayscale-700));
    line-height: 1.4;
}
.sp-pricecard__note svg {
    width: 16px; height: 16px;
    flex-shrink: 0;
    color: rgb(var(--color-verdeZ-900));
    margin-top: 1px;
}

/* CTA del bundle hereda .sp-info__cta / .sp-btn-cart existentes */
.sp-info__cta .sp-btn-cart span { font-size: 1.1em; }

/* ---- Trust badges ---- */
.sp-trust {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 18px;
    margin-top: 4px;
}
.sp-trust__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: rgb(var(--color-neutral-grayscale-700));
}
.sp-trust__item svg {
    width: 15px; height: 15px;
    color: rgb(var(--color-verdeZ-900));
}

/* ---- Qué incluye ---- */
.sp-section-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgb(var(--color-neutral-grayscale-500));
    margin: 0 0 12px;
}
.sp-includes {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.sp-includes__card {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 14px;
    padding: 14px 16px;
    margin-bottom: 12px;
}
.sp-includes__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    flex-shrink: 0;
    border-radius: 11px;
    background: rgb(var(--color-verdeZ-100));
    color: rgb(var(--color-verdeZ-900));
}
.sp-includes__icon svg { width: 22px; height: 22px; }
.sp-includes__text { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.sp-includes__text strong { font-size: 14px; font-weight: 800; color: rgb(var(--color-neutral-grayscale-900)); }
.sp-includes__text span { font-size: 12.5px; color: rgb(var(--color-neutral-grayscale-700)); line-height: 1.4; }
.sp-includes__check {
    flex-shrink: 0;
    color: rgb(var(--color-verdeZ-900));
}
.sp-includes__check svg { width: 18px; height: 18px; }

/* ---- Caja servicio médico ---- */
.sp-medbox {
    margin-top: 22px;
    border-radius: 18px;
    padding: 24px 22px;
    color: #fff;
    background: linear-gradient(135deg, rgb(var(--color-verdeZ-900)), rgb(var(--color-verdeZ-700)));
}
.sp-medbox__label {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255, 255, 255, 0.8);
    margin: 0 0 8px;
}
.sp-medbox__title {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
    margin: 0 0 16px;
    color: #fff;
}
.sp-medbox__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sp-medbox__list li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 14px;
    line-height: 1.4;
}
.sp-medbox__list svg {
    width: 17px; height: 17px;
    flex-shrink: 0;
    color: #fff;
    margin-top: 1px;
}