:root {
    --ctw-bg: #faf7f0;
    --ctw-paper: #faf7f0;
    --ctw-paper-2: #f5efe4;
    --ctw-ink: #08281d;
    --ctw-muted: #6d675d;
    --ctw-line: #d8cfbe;
    --ctw-green: #2b8d25;
    --ctw-green-dark: #0d4a36;
    --ctw-content-width: 1200px;
    --ctw-cols-desktop: 4;
    --ctw-cols-tablet: 2;
    --ctw-cols-mobile: 1;
    --ctw-shop-pad-x: 24px;
    --ctw-shop-pad-y: 24px;
    --ctw-shop-mobile-pad-x: 14px;
    --ctw-shop-mobile-pad-y: 16px;
    --ctw-grid-gap-x: 0px;
    --ctw-grid-gap-y: 0px;
    --ctw-card-pad-x: 12px;
    --ctw-card-pad-y: 11px;
    --ctw-mobile-card-margin-x: 0px;
    --ctw-mobile-card-margin-y: 0px;
}

body.ctw-shop-page,
body.ctw-single-product-page,
body.ctw-cart-page {
    background: var(--ctw-bg) !important;
}

/* The custom templates own the page content. Theme content widths should not affect them. */
body.ctw-shop-page .site-content,
body.ctw-single-product-page .site-content,
body.ctw-cart-page .site-content,
body.ctw-shop-page #content,
body.ctw-single-product-page #content,
body.ctw-cart-page #content {
    background: var(--ctw-bg) !important;
}

.ctw-page,
.ctw-page *,
.ctw-page *::before,
.ctw-page *::after {
    box-sizing: border-box;
}

.ctw-page {
    width: 100%;
    margin: 0;
    padding: 0 24px 36px;
    color: var(--ctw-ink);
    background: var(--ctw-bg);
}

.ctw-page.ctw-shop-template {
    padding: var(--ctw-shop-pad-y) var(--ctw-shop-pad-x);
}

.ctw-container {
    width: 100%;
    max-width: var(--ctw-content-width);
    margin: 0 auto;
    padding: 0;
}

/* Woo notices */
.ctw-page .woocommerce-notices-wrapper,
.ctw-page .woocommerce-message,
.ctw-page .woocommerce-error,
.ctw-page .woocommerce-info {
    max-width: var(--ctw-content-width);
    margin: 12px auto !important;
}

/* ---------------- SHOP INTRO ---------------- */
.ctw-shop-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin: 0;
    padding: 24px 0 18px;
}

.ctw-shop-intro__copy {
    min-width: 0;
}

.ctw-shop-intro h1,
.ctw-category-section .ctw-shop-intro h2,
.ctw-elementor-products .ctw-shop-intro h2 {
    margin: 0 0 7px;
    padding: 0;
    color: #071f16;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(32px, 2.55vw, 44px);
    font-weight: 700;
    line-height: .98;
    letter-spacing: -0.035em;
}

.ctw-shop-intro p {
    margin: 0;
    padding: 0;
    color: #4d554f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 14px;
    line-height: 1.4;
}

.ctw-shop-intro__count {
    flex: 0 0 auto;
    padding: 0 0 3px;
    color: #5d574e;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .22em;
    white-space: nowrap;
}

/* ---------------- CATEGORY SECTIONS ---------------- */
.ctw-category-section {
    width: 100%;
    margin: 0;
    padding: 0;
}

.ctw-category-section + .ctw-category-section {
    margin-top: 34px;
}

.ctw-category-section .ctw-category-intro {
    padding-top: 18px;
}

.ctw-category-section:first-of-type .ctw-category-intro {
    padding-top: 24px;
}

/* ---------------- PRODUCT GRID ---------------- */
.ctw-products-grid {
    display: grid;
    grid-template-columns: repeat(var(--ctw-cols-desktop), minmax(0, 1fr));
    column-gap: var(--ctw-grid-gap-x);
    row-gap: var(--ctw-grid-gap-y);
    width: 100%;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--ctw-line);
    border-left: 1px solid var(--ctw-line);
}

.ctw-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: var(--ctw-paper);
    border-right: 1px solid var(--ctw-line);
    border-bottom: 1px solid var(--ctw-line);
    border-radius: 0;
    box-shadow: none;
}

.ctw-card__media-link,
.ctw-card__text-link {
    display: block;
    color: inherit !important;
    text-decoration: none !important;
}

.ctw-card__media {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--ctw-paper-2);
    border-bottom: 1px solid var(--ctw-line);
}

.ctw-card__image {
    position: absolute;
    inset: 0;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover;
    object-position: center;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: transform .25s ease;
}

.ctw-card:hover .ctw-card__image {
    transform: scale(1.018);
}

.ctw-badge,
.ctw-single-badge {
    color: #fff;
    background: var(--ctw-green);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.ctw-badge {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    min-height: 20px;
    padding: 6px 10px 5px;
}

.ctw-card__placeholder,
.ctw-single-gallery__placeholder,
.ctw-single-gallery__thumb--placeholder {
    background:
        repeating-linear-gradient(135deg,
            rgba(125, 105, 75, .035) 0,
            rgba(125, 105, 75, .035) 14px,
            rgba(125, 105, 75, .085) 15px,
            rgba(125, 105, 75, .085) 16px),
        #f5efe4;
}

.ctw-card__placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 28px;
    text-align: center;
}

.ctw-card__placeholder span {
    color: #9a8d79;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.ctw-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 124px;
    padding: 0;
}

.ctw-card__text-link {
    padding: var(--ctw-card-pad-y) var(--ctw-card-pad-x) 0;
}

.ctw-card__native {
    min-height: 15px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    color: #6c655b;
    font-family: Georgia, "Noto Serif Bengali", "Noto Sans Bengali", serif;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.18;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ctw-card__title {
    margin: 3px 0 0 !important;
    padding: 0 !important;
    color: var(--ctw-ink) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.ctw-card__detail {
    min-height: 31px;
    margin: 5px 0 0;
    padding: 0;
    overflow: hidden;
    color: #746e64;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.ctw-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 47px;
    margin-top: auto;
    padding: 6px var(--ctw-card-pad-x) var(--ctw-card-pad-y);
}

.ctw-card__price,
.ctw-card__price .amount {
    color: #061b13 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
}

.ctw-card__price del {
    opacity: .45;
    font-size: .82em;
}

.ctw-card__price ins {
    text-decoration: none;
}

.ctw-card__add {
    display: inline-flex !important;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 30px;
    margin: 0 !important;
    padding: 0 10px !important;
    color: #0a4431 !important;
    background: transparent !important;
    border: 1px solid #0a4431 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    text-transform: none !important;
}

.ctw-card__add:hover,
.ctw-card__add:focus {
    color: #fff !important;
    background: var(--ctw-green-dark) !important;
}

.ctw-card__add.loading,
.ctw-card__add.added {
    opacity: .72;
}

.ctw-card__add::after,
.ctw-card .added_to_cart {
    display: none !important;
}


/* ---------------- ELEMENTOR PRODUCT WIDGET ---------------- */
.ctw-elementor-products {
    width: 100%;
    color: var(--ctw-ink);
}

.ctw-elementor-products .ctw-shop-intro {
    padding-top: 0;
}

.ctw-elementor-products .ctw-products-grid {
    width: 100%;
}

.ctw-elementor-products .ctw-card {
    min-width: 0;
}

/* Pagination */

.ctw-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    width: 100%;
    padding: 30px 0 12px;
}

.ctw-pagination .page-numbers {
    display: grid;
    place-items: center;
    min-width: 34px;
    height: 34px;
    padding: 0 8px;
    color: #14382a;
    background: #f5efe4;
    border: 1px solid var(--ctw-line);
    text-decoration: none;
}

.ctw-pagination .current {
    color: #fff;
    background: #14382a;
    border-color: #14382a;
}

.ctw-empty {
    padding: 36px 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 17px;
}

/* ---------------- SINGLE PRODUCT ---------------- */
.ctw-single-template {
    padding-top: 12px;
}

.ctw-single-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 38px;
    padding: 0 0 54px;
    border-bottom: 1px solid var(--ctw-line);
}

.ctw-single-gallery__main {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--ctw-paper-2);
    border: 1px solid var(--ctw-line);
}

.ctw-single-gallery__image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.ctw-single-gallery__placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #9a8d79;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.ctw-single-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 7px;
}

.ctw-single-gallery__thumb {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    aspect-ratio: 1 / 1;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: var(--ctw-paper-2);
    border: 1px solid var(--ctw-line);
    border-radius: 0;
    box-shadow: none;
}

button.ctw-single-gallery__thumb--image {
    cursor: pointer;
}

.ctw-single-gallery__thumb--image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ctw-single-gallery__thumb--image.is-active {
    outline: 2px solid var(--ctw-green-dark);
    outline-offset: -2px;
}

.ctw-single-gallery__thumb--placeholder span {
    color: #8f826f;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.ctw-single-hero__right {
    min-width: 0;
}

.ctw-single-badge {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 19px;
    padding: 5px 10px 4px;
}

.ctw-single-native {
    margin-top: 13px;
    color: #6d665b;
    font-family: Georgia, "Noto Serif Bengali", "Noto Sans Bengali", serif;
    font-size: 12px;
    line-height: 1.2;
}

.ctw-single-title {
    margin: 10px 0 0 !important;
    padding: 0 !important;
    color: var(--ctw-ink) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(34px, 3vw, 46px) !important;
    font-weight: 700 !important;
    line-height: .98 !important;
    letter-spacing: -.03em !important;
}

.ctw-single-detail {
    margin-top: 14px;
    color: #635e55;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 15px;
    line-height: 1.4;
}

.ctw-single-price,
.ctw-single-price .amount {
    margin-top: 17px;
    color: var(--ctw-ink) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 28px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
}

.ctw-single-actions {
    display: flex;
    align-items: stretch;
    gap: 10px;
    margin-top: 24px;
}

.ctw-single-cart-form {
    margin: 0 !important;
}

.ctw-single-add-button,
.ctw-single-keep-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 43px;
    margin: 0 !important;
    padding: 0 20px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    text-transform: none !important;
    cursor: pointer;
}

.ctw-single-add-button {
    color: #fff !important;
    background: var(--ctw-green) !important;
    border: 1px solid var(--ctw-green) !important;
}

.ctw-single-add-button:hover,
.ctw-single-add-button:focus {
    background: var(--ctw-green-dark) !important;
    border-color: var(--ctw-green-dark) !important;
}

.ctw-single-keep-button {
    color: var(--ctw-ink) !important;
    background: transparent !important;
    border: 1px solid var(--ctw-green-dark) !important;
}

.ctw-single-keep-button:hover,
.ctw-single-keep-button:focus {
    color: #fff !important;
    background: var(--ctw-green-dark) !important;
}

.ctw-info-box {
    width: 100%;
    margin-top: 24px;
    padding: 17px 18px;
    background: #f4eee2;
    border: 1px solid var(--ctw-line);
}

.ctw-info-box + .ctw-info-box {
    margin-top: 14px;
    background: transparent;
}

.ctw-info-box h2 {
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: var(--ctw-green) !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .16em !important;
    text-transform: none !important;
}

.ctw-provenance dl {
    margin: 0;
}

.ctw-provenance__row {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 18px;
    padding: 8px 0;
    border-bottom: 1px solid var(--ctw-line);
}

.ctw-provenance__row:last-child {
    border-bottom: 0;
}

.ctw-provenance dt,
.ctw-provenance dd {
    margin: 0;
    color: #56534c;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    line-height: 1.3;
}

.ctw-provenance dd {
    color: #202820;
}

.ctw-kitchen p {
    margin: 0;
    color: #59554e;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    line-height: 1.55;
}

.ctw-kitchen__empty {
    opacity: .68;
}

.ctw-related {
    padding-top: 44px;
}

.ctw-related__heading {
    margin: 0 0 20px !important;
    padding: 0 !important;
    color: #071f16 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 30px !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
    letter-spacing: -.025em !important;
}

/* Related grid is always 4 columns on desktop, as in the reference. */
.ctw-products-grid--related {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ctw-products-grid--related .ctw-card__body {
    min-height: 118px;
}

/* Variable product fallback: keep Woo form usable without letting theme spacing explode. */
.ctw-single-variable-cart .variations_form,
.ctw-single-variable-cart form.cart {
    margin: 0 !important;
}

.ctw-single-variable-cart table.variations {
    margin: 0 0 14px !important;
}


/* ---------------- CART / BASKET ---------------- */
.ctw-cart-template {
    padding-top: 62px;
    padding-bottom: 54px;
}

.ctw-cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 390px);
    gap: 44px;
    align-items: start;
}

.ctw-cart-header {
    margin: 0 0 34px;
}

.ctw-cart-header h1,
.ctw-cart-empty h1 {
    margin: 0 !important;
    padding: 0 !important;
    color: var(--ctw-ink) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(38px, 3.25vw, 52px) !important;
    font-weight: 700 !important;
    line-height: .98 !important;
    letter-spacing: -.035em !important;
}

.ctw-cart-header p,
.ctw-cart-empty > p {
    margin: 14px 0 0;
    color: #625c54;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 17px;
    line-height: 1.3;
}

.ctw-cart-form,
.ctw-cart-items {
    margin: 0;
    padding: 0;
}

.ctw-cart-item {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) 170px;
    gap: 18px;
    align-items: center;
    min-height: 124px;
    margin: 0;
    padding: 20px 0;
    border-bottom: 1px solid var(--ctw-line);
}

.ctw-cart-item:first-child {
    border-top: 0;
}

.ctw-cart-item__media {
    width: 72px;
    height: 72px;
    overflow: hidden;
    background: var(--ctw-paper-2);
}

.ctw-cart-item__media a {
    display: block;
    width: 100%;
    height: 100%;
}

.ctw-cart-item__image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover;
    border: 0 !important;
    border-radius: 0 !important;
}

.ctw-cart-item__placeholder {
    width: 100%;
    height: 100%;
    background:
        repeating-linear-gradient(135deg,
            rgba(125, 105, 75, .035) 0,
            rgba(125, 105, 75, .035) 14px,
            rgba(125, 105, 75, .085) 15px,
            rgba(125, 105, 75, .085) 16px),
        #f5efe4;
}

.ctw-cart-item__info {
    min-width: 0;
}

.ctw-cart-item__native {
    margin: 0 0 4px;
    color: #756d62;
    font-family: Georgia, "Noto Serif Bengali", "Noto Sans Bengali", serif;
    font-size: 11px;
    line-height: 1.2;
}

.ctw-cart-item__title {
    margin: 0 !important;
    padding: 0 !important;
    color: var(--ctw-ink) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
}

.ctw-cart-item__title a {
    color: inherit !important;
    text-decoration: none !important;
}

.ctw-cart-item__detail,
.ctw-cart-item__variation {
    margin-top: 5px;
    color: #6a645b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 13px;
    line-height: 1.35;
}

.ctw-cart-item__variation dl,
.ctw-cart-item__variation p {
    margin: 0;
}

.ctw-cart-item__note {
    margin-top: 7px;
    color: var(--ctw-green);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
}

.ctw-cart-item__controls {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 10px;
}

.ctw-cart-item__subtotal,
.ctw-cart-item__subtotal .amount {
    color: #071f16 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

.ctw-cart-qty {
    display: grid;
    grid-template-columns: 32px 36px 32px;
    height: 38px;
    border: 1px solid var(--ctw-line);
    background: transparent;
}

.ctw-cart-qty__button,
.ctw-cart-qty__input,
.ctw-cart-qty--fixed {
    margin: 0 !important;
    padding: 0 !important;
    color: var(--ctw-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1 !important;
}

.ctw-cart-qty__button {
    display: grid !important;
    place-items: center;
    min-width: 0 !important;
    cursor: pointer;
}

.ctw-cart-qty__input {
    width: 36px !important;
    height: 36px !important;
    text-align: center;
    -moz-appearance: textfield;
}

.ctw-cart-qty__input::-webkit-outer-spin-button,
.ctw-cart-qty__input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.ctw-cart-qty--fixed {
    display: grid;
    place-items: center;
    width: 100px;
    height: 38px;
    border: 1px solid var(--ctw-line) !important;
}

.ctw-cart-item__remove {
    color: #a24a2e !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 12px;
    line-height: 1;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

.ctw-cart-keep-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin-top: 22px;
    padding: 0 18px !important;
    color: var(--ctw-ink) !important;
    background: transparent !important;
    border: 1px solid var(--ctw-green-dark) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

.ctw-cart-keep-button:hover,
.ctw-cart-keep-button:focus {
    color: #fff !important;
    background: var(--ctw-green-dark) !important;
}

.ctw-cart-summary {
    padding: 24px 24px 22px;
    background: #f3eddf;
    border: 1px solid var(--ctw-line);
}

.ctw-cart-summary h2 {
    margin: 0 0 19px !important;
    padding: 0 !important;
    color: var(--ctw-green) !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .18em !important;
}

.ctw-cart-summary__row,
.ctw-cart-summary__total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.ctw-cart-summary__row {
    margin-top: 14px;
    color: #141d18;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.2;
}

.ctw-cart-summary__row strong {
    font-weight: 400;
}

.ctw-cart-delivery-progress {
    margin-top: 15px;
}

.ctw-cart-delivery-progress__track {
    position: relative;
    width: 100%;
    height: 7px;
    overflow: hidden;
    background: #e6decf;
}

.ctw-cart-delivery-progress__track span {
    display: block;
    height: 100%;
    background: var(--ctw-green);
}

.ctw-cart-delivery-progress__text {
    margin-top: 8px;
    color: #777066;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.25;
}

.ctw-cart-summary__total {
    margin-top: 26px;
    padding-top: 18px;
    border-top: 1px solid var(--ctw-line);
    color: var(--ctw-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    line-height: 1;
}

.ctw-cart-summary__total strong,
.ctw-cart-summary__total strong .amount {
    color: inherit !important;
    font: inherit !important;
    font-weight: 700 !important;
}

.ctw-cart-checkout {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    margin-top: 20px;
    padding: 0 18px !important;
    color: #fff !important;
    background: var(--ctw-green) !important;
    border: 1px solid var(--ctw-green) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

.ctw-cart-checkout:hover,
.ctw-cart-checkout:focus {
    background: var(--ctw-green-dark) !important;
    border-color: var(--ctw-green-dark) !important;
}

.ctw-cart-summary__note {
    margin: 15px 0 0;
    color: #756f65;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.6;
}

.ctw-cart-empty {
    min-height: 420px;
    padding: 10px 0 40px;
}

.ctw-cart-empty__message {
    margin-top: 34px;
    color: #5f5a52;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 16px;
}

/* ---------------- RESPONSIVE ---------------- */
@media (max-width: 980px) {
    .ctw-page:not(.ctw-shop-template) {
        padding-left: 18px;
        padding-right: 18px;
    }

    .ctw-products-grid {
        grid-template-columns: repeat(var(--ctw-cols-tablet), minmax(0, 1fr));
    }

    .ctw-products-grid--related {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ctw-single-hero {
        gap: 26px;
    }
}

@media (max-width: 760px) {
    .ctw-single-hero {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-bottom: 38px;
    }

    .ctw-single-hero__right {
        width: 100%;
    }
}

@media (max-width: 560px) {
    .ctw-page:not(.ctw-shop-template) {
        padding-left: 12px;
        padding-right: 12px;
    }

    .ctw-page.ctw-shop-template {
        padding: var(--ctw-shop-mobile-pad-y) var(--ctw-shop-mobile-pad-x);
    }

    .ctw-shop-intro {
        align-items: flex-start;
        gap: 14px;
        padding-top: 18px;
        padding-bottom: 14px;
    }

    .ctw-shop-intro h1,
    .ctw-elementor-products .ctw-shop-intro h2 {
        font-size: 30px;
    }

    .ctw-shop-intro p {
        max-width: 270px;
        font-size: 12px;
    }

    .ctw-shop-intro__count {
        padding-top: 7px;
        font-size: 8px;
    }

    .ctw-products-grid {
        grid-template-columns: repeat(var(--ctw-cols-mobile), minmax(0, 1fr));
    }

    .ctw-products-grid--shop {
        width: 100%;
        min-width: 0;
    }

    .ctw-products-grid--shop .ctw-card {
        min-width: 0;
        max-width: 100%;
    }

    .ctw-products-grid--related {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ctw-card__body {
        min-height: 116px;
    }

    .ctw-products-grid--shop .ctw-card {
        margin: var(--ctw-mobile-card-margin-y) var(--ctw-mobile-card-margin-x);
    }

    .ctw-single-actions {
        flex-wrap: wrap;
    }

    .ctw-single-add-button,
    .ctw-single-keep-button {
        min-height: 42px;
    }

    .ctw-provenance__row {
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 12px;
    }
}


@media (max-width: 900px) {
    .ctw-cart-layout {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .ctw-cart-summary {
        width: 100%;
        max-width: 520px;
    }
}

@media (max-width: 620px) {
    .ctw-cart-template {
        padding-top: 34px;
    }

    .ctw-cart-header {
        margin-bottom: 20px;
    }

    .ctw-cart-item {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 14px;
        padding: 18px 0;
    }

    .ctw-cart-item__media {
        width: 64px;
        height: 64px;
    }

    .ctw-cart-item__controls {
        grid-column: 2;
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "price qty"
            "remove qty";
        width: 100%;
        align-items: center;
        gap: 8px 14px;
    }

    .ctw-cart-item__subtotal {
        grid-area: price;
        justify-self: start;
    }

    .ctw-cart-qty,
    .ctw-cart-qty--fixed {
        grid-area: qty;
    }

    .ctw-cart-item__remove {
        grid-area: remove;
        justify-self: start;
    }

    .ctw-cart-summary {
        padding: 20px 18px;
    }
}

/* ================================================================
   v1.6 refinements
   - keep a reliable visual gap above the theme footer at every zoom level
   - prevent price wrapping and make AJAX add state obvious
   - Fresh Krishi dynamic Elementor Basket button
   ================================================================ */

/* A flow-root keeps the container's bottom spacing inside the custom page,
   even when a theme uses unusual footer/content margin rules. */
.ctw-page {
    display: flow-root;
    overflow: visible;
}

/* Use the existing Customizer vertical page-padding value as the visible
   space before the footer. This avoids adding another unnecessary setting. */
.ctw-page.ctw-shop-template {
    padding: var(--ctw-shop-pad-y) var(--ctw-shop-pad-x) 0;
}

.ctw-shop-template > .ctw-container {
    margin-top: 0;
    margin-right: auto;
    margin-bottom: var(--ctw-shop-pad-y);
    margin-left: auto;
}

.ctw-elementor-products {
    display: flow-root;
    overflow: visible;
}

.ctw-card__footer {
    flex-wrap: nowrap;
}

.ctw-card__price,
.ctw-card__price .amount,
.ctw-card__price .woocommerce-Price-amount,
.ctw-card__price bdi,
.ctw-single-price,
.ctw-single-price .amount,
.ctw-single-price bdi {
    white-space: nowrap !important;
}

.ctw-card__price {
    flex: 0 0 auto;
    min-width: 0;
}

/* Clear, persistent AJAX state after an item is added. */
.ctw-card__add.ctw-is-adding {
    pointer-events: none !important;
    cursor: wait !important;
    opacity: .7 !important;
}

.ctw-card__add.ctw-is-added,
.ctw-card__add.added.ctw-is-added {
    pointer-events: none !important;
    cursor: default !important;
    color: #fff !important;
    background: var(--ctw-green) !important;
    border-color: var(--ctw-green) !important;
    opacity: 1 !important;
}

.ctw-card__add.ctw-is-added:hover,
.ctw-card__add.ctw-is-added:focus {
    color: #fff !important;
    background: var(--ctw-green-dark) !important;
    border-color: var(--ctw-green-dark) !important;
}

/* Elementor: Fresh Krishi Basket widget */
.ctw-basket-widget {
    display: flex;
    width: 100%;
    min-width: 0;
}

.ctw-basket-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 38px;
    margin: 0 !important;
    padding: 0 13px !important;
    color: #0b3d2c !important;
    background: transparent !important;
    border: 1px solid #0b3d2c !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px;
    font-weight: 500;
    line-height: 1 !important;
    text-decoration: none !important;
    text-transform: none !important;
    white-space: nowrap;
}

.ctw-basket-button:hover,
.ctw-basket-button:focus {
    color: #0b3d2c !important;
    background: #f5efe4 !important;
    border-color: #0b3d2c !important;
}

.ctw-basket-button__label {
    display: inline-block;
    line-height: 1;
}

.ctw-basket-count {
    display: inline-grid;
    flex: 0 0 auto;
    place-items: center;
    min-width: 20px;
    height: 20px;
    margin: 0;
    padding: 0 4px;
    color: #fff !important;
    background: var(--ctw-green) !important;
    border: 0;
    border-radius: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}

@media (max-width: 560px) {
    .ctw-page.ctw-shop-template {
        padding: var(--ctw-shop-mobile-pad-y) var(--ctw-shop-mobile-pad-x) 0;
    }

    .ctw-shop-template > .ctw-container {
        margin-bottom: var(--ctw-shop-mobile-pad-y);
    }

    /* Margin controls now stay inside the mobile viewport rather than making
       a stretched grid item wider than its column. */
    .ctw-products-grid--shop .ctw-card {
        width: auto;
        max-width: none;
        margin: var(--ctw-mobile-card-margin-y) var(--ctw-mobile-card-margin-x);
    }

    .ctw-card__footer {
        min-width: 0;
    }
}


/* v2.4: ONE isolated Elementor product-layout implementation.
   Do not apply these rules to the shop, cart, footer, or other Elementor widgets. */
.ctw-elementor-products,
.ctw-elementor-products *,
.ctw-elementor-products *::before,
.ctw-elementor-products *::after { box-sizing: border-box; }
.ctw-elementor-products {
    display: block;
    position: relative;
    isolation: isolate;
    clear: both;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: auto;
    overflow: visible;
    color: var(--ctw-ink, #08281d);
}
.ctw-elementor-products .ctw-products-grid--elementor {
    display: grid !important;
    grid-template-columns: repeat(var(--ctw-widget-desktop-columns, 4), minmax(0,1fr)) !important;
    grid-auto-flow: row !important;
    grid-auto-rows: auto !important;
    align-items: stretch;
    align-content: start;
    gap: var(--ctw-grid-gap-y, 0px) var(--ctw-grid-gap-x, 0px);
    position: relative;
    float: none;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0 !important;
    overflow: visible;
}
.ctw-elementor-products .ctw-products-grid--elementor > article.ctw-card {
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    inset: auto !important;
    float: none !important;
    transform: none !important;
    align-self: stretch;
    width: auto;
    min-width: 0;
    max-width: 100%;
    height: auto !important;
    min-height: 0 !important;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--ctw-line, #d8cfbe);
    border-radius: 0;
    box-shadow: none;
}
.ctw-elementor-products .ctw-card__media-link {
    display: block;
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    height: auto;
}
.ctw-elementor-products .ctw-card__media {
    display: block;
    position: relative;
    width: 100%;
    height: auto;
    min-width: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
.ctw-elementor-products .ctw-card__media > img.ctw-card__image,
.ctw-elementor-products .ctw-card__media > .ctw-card__placeholder {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0;
    aspect-ratio: auto;
    object-fit: cover;
}
.ctw-elementor-products .ctw-card__media > .ctw-card__placeholder {
    display: grid !important;
    place-items: center;
}
.ctw-elementor-products .ctw-card__media > .ctw-badge {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    max-width: 100%;
}
.ctw-elementor-products .ctw-card__body {
    display: flex;
    position: relative;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    min-height: 0;
    height: auto;
}
.ctw-elementor-products .ctw-card__text-link { min-width: 0; overflow-wrap: anywhere; }
.ctw-elementor-products .ctw-card__footer {
    display: flex;
    flex-wrap: wrap;
    position: relative;
    flex: 0 0 auto;
    gap: 8px;
    min-width: 0;
    margin-top: auto;
}
.ctw-elementor-products .ctw-card__price { min-width: 0; }
.ctw-elementor-products .ctw-card__add { position: relative; flex-shrink: 0; }
@media (min-width: 768px) and (max-width: 1024px) {
    .ctw-elementor-products .ctw-products-grid--elementor {
        grid-template-columns: repeat(var(--ctw-widget-tablet-columns, 2), minmax(0,1fr)) !important;
    }
}
@media (max-width: 767px) {
    .ctw-elementor-products .ctw-products-grid--elementor {
        grid-template-columns: repeat(var(--ctw-widget-mobile-columns, 1), minmax(0,1fr)) !important;
    }
}
