/* ============================================================
POLYMORPHIC PRODUCT META
SKU + CATEGORIES
============================================================ */

.pdp .product_meta {


--meta-text: #B8965A;
--meta-muted: #777777;
--meta-border: rgba(17,17,17,.10);
--meta-bg: #f7f7f5;

display: flex;

flex-direction: column;

gap: 13px;

width: 100%;

margin-top: clamp(20px, 2vw, 30px);

padding-top: clamp(18px, 2vw, 25px);

border-top: 1px solid var(--meta-border);

color: var(--meta-muted);

font-size: clamp(11px, .8vw, 13px);

line-height: 1.6;


}

/* ============================================================
INDIVIDUAL META ROW
============================================================ */

.pdp .product_meta > span {

display: flex;

align-items: flex-start;

flex-wrap: wrap;

gap: 5px 8px;

margin: 0;

color: var(--meta-muted);


}

/* ============================================================
LABELS
============================================================ */

.pdp .product_meta .sku_wrapper::first-letter {


color: var(--meta-text);


}

/*

* WooCommerce outputs:
* SKU:
* Categories:
*
* We make the entire metadata slightly more structured.
  */

.pdp .product_meta .sku_wrapper {


font-weight: 500;


}

.pdp .product_meta .posted_in {


font-weight: 500;


}

/* ============================================================
SKU
============================================================ */

.pdp .product_meta .sku {

color: var(--meta-text);

font-weight: 700;

letter-spacing: .02em;


}

/* ============================================================
CATEGORY LINKS
============================================================ */

.pdp .product_meta .posted_in a {

position: relative;

display: inline-flex;

align-items: center;

color: var(--meta-text);

font-weight: 600;

text-decoration: none;

transition:
    color var(--pdp-transition);


}

.pdp .product_meta .posted_in a:hover {


color: var(--pdp-muted);


}

/* ============================================================
CATEGORY SEPARATOR
============================================================ */

.pdp .product_meta .posted_in a:not(:last-child)::after {


content: ",";

margin-right: 5px;

color: var(--meta-muted);


}

/* ============================================================
POLYMORPHIC LARGE LAYOUT
============================================================ */

.pdp .product_meta {


container-type: inline-size;


}

@container (min-width: 650px) {


.pdp .product_meta {

    flex-direction: row;

    align-items: center;

    justify-content: space-between;

    gap: 20px;
}


.pdp .product_meta > span {

    flex: 0 1 auto;
}


}

/* ============================================================
COMPACT LAYOUT
============================================================ */

@container (max-width: 450px) {


.pdp .product_meta {

    gap: 10px;

    margin-top: 18px;

    padding-top: 17px;

    font-size: 11px;
}


.pdp .product_meta > span {

    gap: 5px;
}


}

/* ============================================================
MOBILE
============================================================ */

@media (max-width: 767px) {

.pdp .product_meta {

    margin-top: 20px;

    padding-top: 18px;
}


.pdp .product_meta > span {

    line-height: 1.7;
}


}

/* ============================================================
VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {


.pdp .product_meta {

    font-size: 10px;
}


.pdp .product_meta .sku {

    word-break: break-word;
}


}


/* ============================================================
POLYMORPHIC VARIATION SYSTEM
WooCommerce + Variation Swatches
Works with:
.variations
.variable-items-wrapper
.variable-item
============================================================ */

/* ============================================================
DESIGN TOKENS
============================================================ */

:root {

--variation-black: #fff;
--variation-white: #ffffff;

--variation-text: #000;
--variation-muted: #777777;

--variation-border: rgba(17,17,17,.14);
--variation-border-hover: rgba(17,17,17,.35);

	--variation-soft: #DB000E;

--variation-radius-sm: 8px;
--variation-radius-md: 12px;
--variation-radius-lg: 16px;

--variation-gap:
    clamp(7px, .7vw, 11px);

--variation-size:
    clamp(42px, 3.5vw, 54px);

--variation-padding:
    clamp(10px, 1vw, 15px);

--variation-font:
    clamp(11px, .8vw, 13px);

--variation-transition:
    260ms cubic-bezier(.22,.61,.36,1);


}

/* ============================================================
VARIATION FORM
============================================================ */

.pdp .variations,
.woocommerce div.product form.variations_form .variations {


width: 100%;

margin: 0 0 24px;

border: 0;

border-collapse: separate;


}

/* ============================================================
ROW
============================================================ */

.pdp .variations tbody,
.woocommerce div.product form.variations_form .variations tbody {


display: flex;

flex-direction: column;

gap: clamp(18px, 1.8vw, 28px);


}

.pdp .variations tr,
.woocommerce div.product form.variations_form .variations tr {

display: flex;

flex-direction: column;

gap: 10px;

width: 100%;

border: 0;


}

/* ============================================================
LABEL
============================================================ */

.pdp .variations th.label,
.woocommerce div.product form.variations_form .variations th.label {


display: flex;

align-items: baseline;

gap: 20px;

width: 100%;

padding: 0;

border: 0;

text-align: left;

background: transparent;


}

/* Main label */

.pdp .variations th.label label,
.woocommerce div.product form.variations_form .variations th.label label {


margin: 0;

color: var(--variation-text);

font-size: 12px;

font-weight: 700;

line-height: 1.3;

letter-spacing: .08em;

text-transform: uppercase;


}

/* Selected value */

.pdp .woo-selected-variation-item-name,
.woocommerce .woo-selected-variation-item-name {


color: var(--variation-muted);

font-size: 12px;

font-weight: 500;

text-transform: none;

letter-spacing: 0;


}

/* ============================================================
VALUE WRAPPER
============================================================ */

.pdp .variations td.value,
.woocommerce div.product form.variations_form .variations td.value {

```
display: block;

width: 100%;

padding: 0;

border: 0;

background: transparent;


}

/* ============================================================
HIDE NATIVE SELECT
============================================================ */

.pdp .variations select,
.woocommerce div.product form.variations_form .variations select {


display: none !important;


}

/* Hide plugin-generated fake select */

.pdp .theme-select.woo-variation-raw-select,
.woocommerce .theme-select.woo-variation-raw-select {


display: none !important;


}

/* ============================================================
SWATCH CONTAINER
============================================================ */

.pdp .variable-items-wrapper,
.woocommerce .variable-items-wrapper {


display: flex !important;

flex-wrap: wrap;

align-items: center;

gap: var(--variation-gap);

width: 100%;

margin: 0 !important;

padding: 0 !important;

list-style: none;

border: 0 !important;

background: transparent !important;


}

/* ============================================================
INDIVIDUAL SWATCH
============================================================ */

.pdp .variable-items-wrapper .variable-item,
.woocommerce .variable-items-wrapper .variable-item {


position: relative;

display: flex !important;

align-items: center;

justify-content: center;

flex: 0 0 auto;

min-width: var(--variation-size);

min-height: var(--variation-size);

margin: 0 !important;

padding:
    0
    var(--variation-padding);

border: 1px solid var(--variation-border) !important;

border-radius: var(--variation-radius-sm) !important;

background: var(--variation-white) !important;

color: var(--variation-text) !important;

box-shadow: none !important;

cursor: pointer;

overflow: hidden;

transition:
    background var(--variation-transition),
    border-color var(--variation-transition),
    color var(--variation-transition),
    transform var(--variation-transition),
    box-shadow var(--variation-transition);


}

/* ============================================================
INNER CONTENT
============================================================ */

.pdp .variable-item-contents,
.woocommerce .variable-item-contents {


display: flex;

align-items: center;

justify-content: center;

width: 100%;

height: 100%;


}

.pdp .variable-item-span,
.woocommerce .variable-item-span {


color: inherit !important;

font-size: var(--variation-font);

font-weight: 600;

line-height: 1;

white-space: nowrap;


}

/* ============================================================
HOVER
============================================================ */

.pdp .variable-items-wrapper .variable-item:hover,
.woocommerce .variable-items-wrapper .variable-item:hover {


border-color:
    var(--variation-border-hover) !important;

background: var(--variation-soft) !important;

color: var(--variation-black) !important;

transform: translateY(-2px);

box-shadow:
    0 5px 15px rgba(0,0,0,.06) !important;


}

/* ============================================================
SELECTED STATE
============================================================ */

.pdp .variable-items-wrapper .variable-item.selected,
.pdp .variable-items-wrapper .variable-item[aria-checked="true"],
.woocommerce .variable-items-wrapper .variable-item.selected,
.woocommerce .variable-items-wrapper .variable-item[aria-checked="true"] {


border-color:
    var(--variation-black) !important;

background:
    var(--variation-black) !important;

color:
    var(--variation-white) !important;

box-shadow:
    0 6px 18px rgba(0,0,0,.14) !important;

transform: translateY(-1px);


}

/* Selected hover */

.pdp .variable-items-wrapper .variable-item.selected:hover,
.pdp .variable-items-wrapper .variable-item[aria-checked="true"]:hover,
.woocommerce .variable-items-wrapper .variable-item.selected:hover,
.woocommerce .variable-items-wrapper .variable-item[aria-checked="true"]:hover {


background: #2a2a2a !important;

border-color: #2a2a2a !important;


}

/* ============================================================
SELECTED INDICATOR
============================================================ */

.pdp .variable-items-wrapper .variable-item.selected::after,
.pdp .variable-items-wrapper .variable-item[aria-checked="true"]::after {


content: "";

position: absolute;

right: 6px;

top: 6px;

width: 5px;

height: 5px;

border-radius: 50%;

background: #ffffff;

opacity: .9;


}

/* ============================================================
KEYBOARD FOCUS
============================================================ */

.pdp .variable-items-wrapper .variable-item:focus-visible,
.woocommerce .variable-items-wrapper .variable-item:focus-visible {


outline: 2px solid var(--variation-black) !important;

outline-offset: 3px;


}

/* ============================================================
DISABLED / UNAVAILABLE
============================================================ */

.pdp .variable-items-wrapper .variable-item.disabled,
.pdp .variable-items-wrapper .variable-item.out-of-stock,
.woocommerce .variable-items-wrapper .variable-item.disabled,
.woocommerce .variable-items-wrapper .variable-item.out-of-stock {


opacity: .38 !important;

cursor: not-allowed;

transform: none !important;

box-shadow: none !important;


}

/* Don't allow hover effect on disabled */

.pdp .variable-items-wrapper .variable-item.disabled:hover,
.pdp .variable-items-wrapper .variable-item.out-of-stock:hover,
.woocommerce .variable-items-wrapper .variable-item.disabled:hover,
.woocommerce .variable-items-wrapper .variable-item.out-of-stock:hover {


border-color: var(--variation-border) !important;

background: var(--variation-white) !important;

color: var(--variation-text) !important;


}

/* ============================================================
CLEAR BUTTON
============================================================ */

.pdp .reset_variations,
.woocommerce .reset_variations {


display: inline-flex !important;

align-items: center;

justify-content: center;

margin-top: 12px;

padding: 0;

color: var(--variation-muted) !important;

background: transparent !important;

border: 0 !important;

cursor: pointer;

transition:
    color var(--variation-transition);


}

.pdp .reset_variations:hover,
.woocommerce .reset_variations:hover {


color: var(--variation-black) !important;


}

/* ============================================================
COLOR-SPECIFIC ENHANCEMENT
If Woo Swatches are converted to image/color swatches
============================================================ */

.pdp .color-variable-item,
.woocommerce .color-variable-item {


width:
    clamp(38px, 3vw, 48px);

min-width:
    clamp(38px, 3vw, 48px);

height:
    clamp(38px, 3vw, 48px);

min-height:
    clamp(38px, 3vw, 48px);

padding: 3px !important;

border-radius: 50% !important;


}

/* ============================================================
COLOR SWATCH INNER
============================================================ */

.pdp .color-variable-item .variable-item-contents,
.woocommerce .color-variable-item .variable-item-contents {


width: 100%;

height: 100%;

border-radius: 50%;

overflow: hidden;


}

/* ============================================================
POLYMORPHIC CONTAINER BEHAVIOR
============================================================ */

.pdp .variations {


container-type: inline-size;


}

/* Compact PDP */

@container (max-width: 420px) {


.pdp .variable-items-wrapper {

    gap: 6px;
}


.pdp .variable-items-wrapper .variable-item {

    min-width: 40px;

    min-height: 40px;

    padding: 0 11px;
}


.pdp .variable-item-span {

    font-size: 10px;
}


}

/* Medium PDP */

@container (min-width: 421px) and (max-width: 700px) {


.pdp .variable-items-wrapper .variable-item {

    min-height: 46px;

    padding: 0 14px;
}


}

/* Large PDP */

@container (min-width: 701px) {


.pdp .variable-items-wrapper .variable-item {

    min-height: 50px;

    padding: 0 17px;
}


}

/* ============================================================
TABLET
============================================================ */

@media (max-width: 1024px) {


.pdp .variations tbody {

    gap: 20px;
}


}

/* ============================================================
MOBILE
============================================================ */

@media (max-width: 767px) {


.pdp .variations {

    margin-bottom: 20px;
}


.pdp .variations tr {

    gap: 8px;
}


.pdp .variations th.label label {

    font-size: 11px;
}


.pdp .woo-selected-variation-item-name {

    font-size: 11px;
}


.pdp .variable-items-wrapper {

    gap: 7px;
}


.pdp .variable-items-wrapper .variable-item {

    min-height: 42px;

    padding: 0 13px;
}


}

/* ============================================================
SMALL MOBILE
============================================================ */

@media (max-width: 420px) {


.pdp .variable-items-wrapper {

    gap: 6px;
}


.pdp .variable-items-wrapper .variable-item {

    min-height: 39px;

    min-width: 39px;

    padding: 0 10px;

    border-radius: 7px !important;
}


.pdp .variable-item-span {

    font-size: 10px;
}


.pdp .reset_variations {

    font-size: 10px;
}


}

/* ============================================================
REDUCED MOTION
============================================================ */

@media (prefers-reduced-motion: reduce) {


.pdp .variable-items-wrapper .variable-item,
.pdp .reset_variations {

    transition: none !important;
}


}


/* =========================================================
   POLYMORPHIC WOOCOMMERCE PDP TABS
   ========================================================= */

.pdp-tabs {
    --pdp-primary: #DB000E;
    --pdp-secondary: #666666;
    --pdp-border: rgba(0, 0, 0, 0.10);
    --pdp-soft-bg: #f6f6f4;
    --pdp-active-bg: #DB000E;
    --pdp-active-color: #ffffff;

    width: 100%;
    margin: 50px 0 0;
    font-family: inherit;
}


/* =========================================================
   TAB NAVIGATION
   ========================================================= */

.pdp-tabs-nav {
    display: flex;
    align-items: center;
    gap: 8px;

    width: 100%;
    padding: 6px;

    background: var(--pdp-soft-bg);
    border: 1px solid var(--pdp-border);
    border-radius: 18px;

    overflow-x: auto;
    overflow-y: hidden;

    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.pdp-tabs-nav::-webkit-scrollbar {
    display: none;
}


/* =========================================================
   TAB BUTTON
   ========================================================= */

.pdp-tab-button {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    flex: 1 1 auto;

    min-height: 52px;
    padding: 12px 24px;

    margin: 0;

    color: var(--pdp-secondary);
    background: transparent;
    border: 0;
    border-radius: 13px;


    cursor: pointer;

    white-space: nowrap;

    transition:
        background-color 0.35s ease,
        color 0.35s ease,
        transform 0.35s ease,
        box-shadow 0.35s ease;

    -webkit-tap-highlight-color: transparent;
}


/* Hover */

.pdp-tab-button:hover {
    color: var(--pdp-primary);
    background: rgba(255, 255, 255, 0.65);
}


/* Active */

.pdp-tab-button.is-active {
    color: var(--pdp-active-color);
    background: var(--pdp-active-bg);

    box-shadow:
        0 6px 18px rgba(0, 0, 0, 0.12);
}


/* Click */

.pdp-tab-button:active {
    transform: scale(0.97);
}


/* Keyboard Focus */

.pdp-tab-button:focus-visible {
    outline: 2px solid var(--pdp-primary);
    outline-offset: 3px;
}


/* =========================================================
   TAB CONTENT
   ========================================================= */

.pdp-tabs-content {
    position: relative;

    width: 100%;
    margin-top: 30px;
}


/* Hide inactive panels */

.pdp-tab-panel {
    display: none;

    padding: 0;

    animation: pdpTabFadeIn 0.45s ease both;
}


/* Active panel */

.pdp-tab-panel.is-active {
    display: block;
}


/* =========================================================
   WOOCOMMERCE CONTENT STYLING
   ========================================================= */

.pdp-tab-panel,
.pdp-tab-panel * {
    box-sizing: border-box;
}


.pdp-tab-panel p {
    margin: 0 0 18px;

    color: var(--pdp-secondary);

    font-size: 15px;
    line-height: 1.8;
}


.pdp-tab-panel p:last-child {
    margin-bottom: 0;
}


.pdp-tab-panel h1,
.pdp-tab-panel h2,
.pdp-tab-panel h3,
.pdp-tab-panel h4,
.pdp-tab-panel h5,
.pdp-tab-panel h6 {
    margin-top: 0;
    margin-bottom: 18px;

    color: var(--pdp-primary);

    line-height: 1.25;
}


.pdp-tab-panel ul,
.pdp-tab-panel ol {
    margin: 0 0 20px;
    padding-left: 22px;

    color: var(--pdp-secondary);
}


.pdp-tab-panel li {
    margin-bottom: 10px;
    line-height: 1.7;
}


/* =========================================================
   WOOCOMMERCE ADDITIONAL INFORMATION TABLE
   ========================================================= */

.pdp-tab-panel table.shop_attributes {
    width: 100%;

    margin: 0;

    border-collapse: separate;
    border-spacing: 0;

    border: 1px solid var(--pdp-border);
    border-radius: 14px;

    overflow: hidden;
}


.pdp-tab-panel table.shop_attributes th,
.pdp-tab-panel table.shop_attributes td {
    padding: 16px 20px;

    border: 0;
    border-bottom: 1px solid var(--pdp-border);

    text-align: left;
}


.pdp-tab-panel table.shop_attributes tr:last-child th,
.pdp-tab-panel table.shop_attributes tr:last-child td {
    border-bottom: 0;
}


.pdp-tab-panel table.shop_attributes th {
    width: 35%;

    color: var(--pdp-primary);
    background: var(--pdp-soft-bg);

    font-size: 13px;
    font-weight: 700;
}


.pdp-tab-panel table.shop_attributes td {
    color: var(--pdp-secondary);
    background: #ffffff;
}


/* =========================================================
   REVIEWS
   ========================================================= */

.pdp-tab-panel #reviews {
    width: 100%;
}


.pdp-tab-panel .commentlist {
    margin: 0;
    padding: 0;

    list-style: none;
}


.pdp-tab-panel .commentlist .review {
    padding: 24px 0;

    border-bottom: 1px solid var(--pdp-border);
}


.pdp-tab-panel .commentlist .review:first-child {
    padding-top: 0;
}


.pdp-tab-panel .commentlist .review:last-child {
    border-bottom: 0;
}


.pdp-tab-panel #review_form_wrapper {
    margin-top: 35px;
    padding-top: 30px;

    border-top: 1px solid var(--pdp-border);
}


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

@keyframes pdpTabFadeIn {

    from {
        opacity: 0;
        transform: translateY(12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {

    .pdp-tabs {
        margin-top: 40px;
    }

    .pdp-tab-button {
        padding: 12px 18px;
        font-size: 13px;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .pdp-tabs {
        margin-top: 30px;
    }


    .pdp-tabs-nav {
        gap: 6px;

        padding: 5px;

        border-radius: 14px;

        justify-content: flex-start;
    }


    .pdp-tab-button {
        flex: 0 0 auto;

        min-height: 46px;
        padding: 10px 18px;

        border-radius: 10px;

        font-size: 12px;
    }


    .pdp-tabs-content {
        margin-top: 24px;
    }


    .pdp-tab-panel p {
        font-size: 14px;
        line-height: 1.75;
    }


    .pdp-tab-panel table.shop_attributes th,
    .pdp-tab-panel table.shop_attributes td {
        padding: 13px 12px;

        font-size: 12px;
    }


    .pdp-tab-panel table.shop_attributes th {
        width: 40%;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

    .pdp-tabs-nav {
        width: calc(100% + 10px);

        margin-left: -5px;
        margin-right: -5px;
    }


    .pdp-tab-button {
        min-height: 44px;

        padding: 9px 15px;

        font-size: 11px;
    }

}


/* =========================================================
   DARK SECTION SUPPORT
   Add class "pdp-tabs-dark" to parent if needed
   ========================================================= */

.pdp-tabs-dark .pdp-tabs {
    --pdp-primary: #ffffff;
    --pdp-secondary: rgba(255, 255, 255, 0.65);
    --pdp-border: rgba(255, 255, 255, 0.12);
    --pdp-soft-bg: rgba(255, 255, 255, 0.06);
    --pdp-active-bg: #ffffff;
    --pdp-active-color: #111111;
}


.pdp-tabs-dark .pdp-tab-button:hover {
    background: rgba(255, 255, 255, 0.10);
}


.pdp-tabs-dark .pdp-tab-panel table.shop_attributes td {
    background: rgba(255, 255, 255, 0.03);
}


.pdp-tabs-dark .pdp-tab-panel table.shop_attributes th {
    background: rgba(255, 255, 255, 0.06);
}

/* ============================================================
   PDP FEATURES — LIGHT THEME
   ============================================================ */

.pdp-features {
    width: 100%;
    background: #fff;
    padding: 55px 0 60px;
}


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

.pdp-features-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 45px;
}


/* ============================================================
   FEATURE
   ============================================================ */

.pdp-feature {
    min-width: 0;
}


/* ============================================================
   FEATURE ICON
   ============================================================ */

.pdp-feature-icon {
    width: 60px;
    height: 60px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 14px;

    background: #f5f5f5;
    border: 1px solid #eeeeee;
    border-radius: 50%;

    transition:
        background 0.3s ease,
        transform 0.3s ease,
        border-color 0.3s ease;
}


.pdp-feature-icon svg {
    width: 19px;
    height: 19px;

    fill: none;
    stroke: #ff2727;
    stroke-width: 1.8;

    stroke-linecap: round;
    stroke-linejoin: round;
}


.pdp-feature:hover .pdp-feature-icon {
    background: #eeeeee;
    border-color: #e5e5e5;
    transform: translateY(-2px);
}


/* ============================================================
   TITLE
   ============================================================ */

.pdp-feature h3 {
    margin: 0 0 7px;

    color: #111;

    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;

    letter-spacing: -0.2px;
}


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

.pdp-feature p {
    max-width: 290px;

    margin: 0;

    color: #777;

}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 900px) {

    .pdp-features-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 40px 30px;
    }

}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 600px) {

    .pdp-features {
        padding: 40px 0 45px;
    }

    .pdp-features-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .pdp-feature p {
        max-width: none;
    }

}



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


.custom-product-card-inner {
    width: 100%;
    position: relative;

    background: #ffffff;

    border: 1px solid #e5e8ed;
    border-radius: 12px;

    overflow: hidden;

    box-sizing: border-box;

    box-shadow:
        0 3px 10px rgba(20, 40, 80, 0.04);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}


/* ============================================================
   CARD HOVER
   ============================================================ */

.custom-product-card-inner:hover {
    transform: translateY(-3px);

    border-color: #d9dee6;

    box-shadow:
        0 10px 28px rgba(20, 40, 80, 0.10);
}


/* ============================================================
   PRODUCT IMAGE
   ============================================================ */

.custom-product-image {
    display: block;

    width: 100%;

    margin: 0;
    padding: 0;

    text-decoration: none !important;

    background: #f7f8fa;

    overflow: hidden;
}


/* Image container */

.custom-product-image-wrap {
    width: 100%;

    height: 240px;

    display: flex;
    align-items: center;
    justify-content: center;

    position: relative;

    overflow: hidden;

    background: #f7f8fa;

    box-sizing: border-box;
}


/* Product image */

.custom-product-img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    max-width: 100% !important;
    max-height: 100% !important;

    object-fit: contain !important;

    object-position: center center;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;

    box-shadow: none !important;

    transition:
        transform 0.4s ease;
}


/* Image hover */

.custom-product-card-inner:hover .custom-product-img {
    transform: scale(1.035);
}


/* ============================================================
   PRODUCT INFORMATION
   ============================================================ */

.custom-product-info {
    width: 100%;

    padding: 25px 24px 27px;

    box-sizing: border-box;

    background: #ffffff;
}


/* ============================================================
   CATEGORY
   ============================================================ */

.custom-product-category {
    display: block;

    margin: 0 0 8px;

    padding: 0;

    color: #368147;

    font-size: 13px;
    font-weight: 600;

    line-height: 1.3;

    letter-spacing: 0.1px;
}


/* ============================================================
   PRODUCT TITLE
   ============================================================ */

.custom-product-title {
    margin: 0 0 9px !important;
    padding: 0 !important;
    font-size: 21px !important;
    font-weight: 700 !important;

    line-height: 1.25 !important;

    letter-spacing: -0.3px;

    color: #173477;
}


/* Title link */

.custom-product-title a {
    display: block;

    margin: 0;
    padding: 0;

    color: #173477 !important;

    text-decoration: none !important;

    transition: color 0.2s ease;
}


/* Title hover */

.custom-product-title a:hover {
    color: #2452a4 !important;

    text-decoration: none !important;
}


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

.custom-product-description {
    margin: 0;

    padding: 0;

    color: #526078;

    font-size: 14px;

    font-weight: 400;

    line-height: 1.55;
	font-family: inherit;
    letter-spacing: 0;

    /*
     * Keeps cards aligned when descriptions
     * have different lengths.
     */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;

    overflow: hidden;

    min-height: 43px;
}


/* ============================================================
   VIEW DETAILS
   ============================================================ */

.custom-product-details {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin-top: 18px;

    padding: 0;

    color: #368147 !important;


    font-size: 14px;

    font-weight: 600;

    line-height: 1.4;

    text-decoration: none !important;

    transition:
        color 0.2s ease,
        gap 0.2s ease;
}


/* View details hover */

.custom-product-details:hover {
    color: #246936 !important;

    gap: 11px;

    text-decoration: none !important;
}


/* ============================================================
   ARROW
   ============================================================ */

.custom-product-arrow {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 18px;
    height: 18px;
    font-size: 22px;

    font-weight: 400;

    line-height: 1;

    position: relative;

    top: -1px;
}



/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 1024px) {

    .custom-product-image-wrap {
        height: 220px;
    }

    .custom-product-info {
        padding: 22px 20px 24px;
    }

    .custom-product-title {
        font-size: 20px !important;
    }

    .custom-product-description {
        font-size: 14px;
    }

}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 767px) {

    .custom-product-card-inner {
        border-radius: 10px;
    }


    .custom-product-image-wrap {
        height: 210px;
    }


    .custom-product-info {
        padding: 20px 18px 22px;
    }


    .custom-product-category {
        margin-bottom: 7px;

        font-size: 12px;
    }


    .custom-product-title {
        margin-bottom: 8px !important;

        font-size: 19px !important;

        line-height: 1.3 !important;
    }


    .custom-product-description {
        font-size: 13px;

        line-height: 1.5;

        min-height: 39px;
    }


    .custom-product-details {
        margin-top: 15px;

        font-size: 13px;
    }


    .custom-product-arrow {
        font-size: 20px;
    }

}


/* ============================================================
   SMALL MOBILE
   ============================================================ */

@media (max-width: 480px) {

    .custom-product-image-wrap {
        height: 190px;
    }


    .custom-product-info {
        padding: 18px 16px 20px;
    }


    .custom-product-category {
        font-size: 11px;
    }


    .custom-product-title {
        font-size: 17px !important;
    }


    .custom-product-description {
        font-size: 12.5px;
    }


    .custom-product-details {
        margin-top: 14px;

        font-size: 12.5px;
    }

}


/* ============================================================
   VERY SMALL MOBILE
   ============================================================ */

@media (max-width: 360px) {

    .custom-product-image-wrap {
        height: 170px;
    }


    .custom-product-info {
        padding: 16px 14px 18px;
    }


    .custom-product-title {
        font-size: 16px !important;
    }


    .custom-product-description {
        font-size: 12px;
    }

}

body .oceanwp-row .col {
    float: left;
    margin: 0 0 1.25rem;
    padding: 0 .625rem;
}