.catalog-product-card,
.catalog-product-detail-visual {
    --card-ink: #23332f;
    --card-muted: #78817d;
    --card-line: rgba(52, 67, 61, .13);
    --card-warm: #f8f5ee;
    --card-warm-deep: #efebe2;
    --series-deep: #0b514a;
    --series-shape: #46776c;
    --series-soft: #d7dfd8;
    --series-accent: #bd8a34;
}

/* Series palette: tune these variables to adjust all cards of a series group. */
.catalog-product-card--palette-teal,
.catalog-product-detail-visual.catalog-product-card--palette-teal {
    --series-deep: #0b514a;
    --series-shape: #3f7068;
    --series-soft: #d4ded9;
    --series-accent: #b9822d;
}

.catalog-product-card--palette-olive,
.catalog-product-detail-visual.catalog-product-card--palette-olive {
    --series-deep: #556044;
    --series-shape: #7b8563;
    --series-soft: #dfe1d4;
    --series-accent: #ad7d32;
}

.catalog-product-card--palette-umber,
.catalog-product-detail-visual.catalog-product-card--palette-umber {
    --series-deep: #65483d;
    --series-shape: #8a6858;
    --series-soft: #e4d9d1;
    --series-accent: #b47d35;
}

.catalog-product-card--palette-plum,
.catalog-product-detail-visual.catalog-product-card--palette-plum {
    --series-deep: #5f3847;
    --series-shape: #815768;
    --series-soft: #e2d6da;
    --series-accent: #b7833b;
}

.catalog-product-card--palette-sage,
.catalog-product-detail-visual.catalog-product-card--palette-sage {
    --series-deep: #465b51;
    --series-shape: #708178;
    --series-soft: #dae1dc;
    --series-accent: #ac7d36;
}

.catalog-product-card--palette-slate,
.catalog-product-detail-visual.catalog-product-card--palette-slate {
    --series-deep: #44535b;
    --series-shape: #687780;
    --series-soft: #d8dfe1;
    --series-accent: #ad7c36;
}

.catalog-product-card {
    background: var(--card-warm);
    border: 1px solid var(--card-line);
    border-radius: 10px;
    box-shadow: 0 10px 28px rgba(39, 48, 43, .08);
    min-width: 0;
    overflow: hidden;
    transition: box-shadow .24s ease, transform .24s ease;
}

.catalog-product-card:hover,
.catalog-product-card:focus-within {
    box-shadow: 0 16px 34px rgba(39, 48, 43, .14);
    transform: translateY(-3px);
}

.catalog-product-card__link,
.catalog-product-card__link:hover,
.catalog-product-card__link:focus {
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
    outline: none;
    text-decoration: none;
}

.catalog-product-card__link:focus-visible {
    box-shadow: inset 0 0 0 3px var(--series-accent);
}

.catalog-product-card__media.catalog-product-card__visual,
.catalog-product-detail-visual.catalog-product-card__media.catalog-product-card__visual {
    align-items: center;
    background:
        radial-gradient(circle at 48% 60%, rgba(255,255,255,.7), transparent 43%),
        linear-gradient(145deg, var(--card-warm), var(--card-warm-deep));
    color: var(--series-deep);
    display: flex;
    height: 242px;
    justify-content: center;
    overflow: hidden;
    padding: 22px;
    position: relative;
}

.catalog-product-card__visual::before {
    background: linear-gradient(145deg, var(--series-shape), var(--series-deep));
    border-radius: 48% 52% 42% 58% / 39% 42% 58% 61%;
    content: '';
    height: 260px;
    opacity: .94;
    position: absolute;
    right: -105px;
    top: -73px;
    transform: rotate(14deg);
    width: 228px;
}

.catalog-product-card__visual::after {
    border: 1px solid rgba(83, 91, 76, .22);
    border-radius: 50%;
    content: '';
    height: 190px;
    position: absolute;
    right: -84px;
    top: -68px;
    width: 190px;
}

.catalog-product-card__arc {
    border: 1px solid rgba(83, 91, 76, .18);
    border-radius: 50%;
    bottom: -106px;
    height: 188px;
    left: -92px;
    position: absolute;
    width: 220px;
    z-index: 1;
}

.catalog-product-card__micro {
    color: rgba(49, 61, 55, .58);
    font: 700 8px/1.2 'Roboto', sans-serif;
    left: 18px;
    letter-spacing: .13em;
    position: absolute;
    text-transform: uppercase;
    top: 17px;
    z-index: 4;
}

.catalog-product-card__stage {
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    position: relative;
    width: 100%;
    z-index: 3;
}

.catalog-product-card--can .catalog-product-card__stage {
    height: 92%;
    margin-top: 17px;
    width: 76%;
}

.catalog-product-card__stage .catalog-product-card__product-image {
    display: block;
    height: 100%;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
    position: relative;
    transition: transform .26s ease;
    width: 100%;
    z-index: 2;
}

.catalog-product-card--can .catalog-product-card__stage .catalog-product-card__product-image {
    filter: drop-shadow(0 12px 8px rgba(35, 36, 32, .22));
}

.catalog-product-card--reference .catalog-product-card__stage {
    background: rgba(255, 255, 255, .78);
    border: 1px solid rgba(54, 67, 60, .11);
    border-radius: 8px;
    box-shadow: 0 12px 24px rgba(43, 48, 44, .12);
    height: 70%;
    margin-top: 17px;
    overflow: hidden;
    padding: 6px;
    width: 78%;
}

.catalog-product-card--swatch .catalog-product-card__stage {
    background: #fff;
    height: 60%;
    padding: 0;
    width: 80%;
}

.catalog-product-card--swatch .catalog-product-card__stage .catalog-product-card__product-image {
    object-fit: cover;
}

.catalog-product-card.catalog-product-card--can:hover .catalog-product-card__stage .catalog-product-card__product-image,
.catalog-product-card.catalog-product-card--can:focus-within .catalog-product-card__stage .catalog-product-card__product-image {
    transform: scale(1.018);
}

.catalog-product-card.catalog-product-card--reference:hover .catalog-product-card__stage .catalog-product-card__product-image,
.catalog-product-card.catalog-product-card--reference:focus-within .catalog-product-card__stage .catalog-product-card__product-image {
    transform: scale(1.01);
}

.catalog-product-card.catalog-product-card--swatch:hover .catalog-product-card__stage .catalog-product-card__product-image,
.catalog-product-card.catalog-product-card--swatch:focus-within .catalog-product-card__stage .catalog-product-card__product-image {
    transform: scale(1.01);
}

.catalog-product-card__placeholder {
    color: var(--series-deep);
    font-size: 48px;
    opacity: .45;
}

.catalog-product-card__novelty {
    background: var(--series-accent);
    border-radius: 20px;
    color: #fffaf1;
    font: 700 9px/1.2 'Roboto', sans-serif;
    letter-spacing: .08em;
    left: auto;
    padding: 6px 10px;
    position: absolute;
    right: 13px;
    text-transform: uppercase;
    top: 13px;
    z-index: 6;
}

.catalog-product-card__badge {
    align-items: center;
    background: rgba(219, 223, 216, .88);
    border: 1px solid rgba(54, 72, 64, .08);
    border-radius: 22px;
    bottom: 14px;
    color: var(--series-deep);
    display: inline-flex;
    font: 600 10px/1.2 'Roboto', sans-serif;
    gap: 7px;
    left: 16px;
    letter-spacing: .035em;
    padding: 8px 12px;
    position: absolute;
    text-transform: uppercase;
    z-index: 5;
}

.catalog-product-card__badge .fa {
    font-size: 13px;
}

.catalog-product-card--labelled .catalog-product-card__stage {
    height: 79%;
    margin-top: -1px;
}

.catalog-product-card__body {
    align-items: flex-start;
    background: rgba(255, 253, 248, .9);
    border-top: 1px solid rgba(52, 67, 61, .09);
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    gap: 14px;
    justify-content: space-between;
    min-height: 108px;
    padding: 18px 18px 19px 20px;
}

.catalog-product-card__identity {
    flex: 1 1 auto;
    min-width: 0;
}

.catalog-product-card__category {
    color: var(--series-deep);
    display: block;
    font: 700 10px/1.3 'Roboto', sans-serif;
    letter-spacing: .095em;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.catalog-product-card h3 {
    color: var(--card-ink);
    font: 400 23px/1.08 'Fira Sans Extra Condensed', sans-serif;
    margin: 0;
    overflow-wrap: anywhere;
}

.catalog-product-card__description,
.catalog-product-card__detail {
    margin: 0;
    overflow-wrap: anywhere;
}

.catalog-product-card__description {
    color: var(--card-ink);
    font: 400 16px/1.22 'Fira Sans Extra Condensed', sans-serif;
    margin-top: 6px;
}

.catalog-product-card__detail {
    color: var(--card-muted);
    font: 400 12px/1.3 'Roboto', sans-serif;
    margin-top: 5px;
}

.catalog-product-card--labelled .catalog-product-card__body {
    min-height: 146px;
}

.catalog-product-card--labelled h3 {
    font-size: 29px;
}

.catalog-product-card__code {
    color: var(--series-deep);
    font-weight: 600;
}

.catalog-product-card__separator {
    color: var(--series-accent);
}

.catalog-product-card__name {
    color: var(--card-ink);
}

.catalog-product-card__symbol {
    align-items: center;
    border: 1px solid var(--series-deep);
    border-radius: 50%;
    color: var(--series-deep);
    display: flex;
    flex: 0 0 auto;
    font-size: 17px;
    height: 43px;
    justify-content: center;
    margin-top: 20px;
    opacity: .8;
    width: 43px;
}

/* The product detail hero reuses the same visual language without becoming a card. */
.catalog-product-detail-visual.catalog-product-card__media.catalog-product-card__visual {
    border-radius: 8px;
    height: 100%;
    min-height: 330px;
}

.catalog-product-detail-visual > .catalog-product-card__micro {
    left: 24px;
    top: 24px;
}

.catalog-product-detail-visual > .catalog-product-card__symbol {
    bottom: auto;
    font-size: 28px;
    height: 72px;
    left: 24px;
    position: absolute;
    top: 74px;
    width: 72px;
    z-index: 4;
}

.catalog-product-detail-visual > .catalog-product-card__visual-category {
    bottom: 25px;
    color: var(--series-deep);
    font: 700 13px/1.3 'Roboto', sans-serif;
    left: 24px;
    max-width: 70%;
    position: absolute;
    text-transform: uppercase;
    z-index: 4;
}

.catalog-product-detail-visual > .catalog-product-card__swatches {
    bottom: 26px;
    display: flex;
    position: absolute;
    right: 23px;
    z-index: 4;
}

.catalog-product-detail-visual > .catalog-product-card__swatches i {
    background: var(--series-accent);
    border: 2px solid rgba(255, 255, 255, .86);
    border-radius: 50%;
    display: block;
    height: 14px;
    margin-left: -4px;
    width: 14px;
}

.catalog-product-detail-visual > .catalog-product-card__swatches i:nth-child(2) { background: #f7f3eb; }
.catalog-product-detail-visual > .catalog-product-card__swatches i:nth-child(3) { background: var(--series-shape); }
.catalog-product-detail-visual > .catalog-product-card__swatches i:nth-child(4) { background: var(--series-deep); }

.catalog-product-detail-visual.catalog-product-card--can .catalog-product-card__stage {
    height: 88%;
    max-width: 275px;
}

.catalog-product-detail-visual.catalog-product-card--reference .catalog-product-card__stage {
    height: 68%;
    max-width: 285px;
}

@media (max-width: 1199px) {
    .catalog-product-card__media.catalog-product-card__visual {
        height: 232px;
    }

    .catalog-product-card h3 {
        font-size: 22px;
    }
}

@media (max-width: 767px) {
    .catalog-product-card__media.catalog-product-card__visual {
        height: 248px;
    }

    .catalog-product-card--can .catalog-product-card__stage {
        width: 70%;
    }

    .catalog-product-card__body {
        min-height: 104px;
    }

    .catalog-product-card--labelled .catalog-product-card__body {
        min-height: 138px;
    }
}

@media (max-width: 420px) {
    .catalog-product-card__media.catalog-product-card__visual {
        height: 230px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .catalog-product-card,
    .catalog-product-card__stage .catalog-product-card__product-image {
        transition: none;
    }
}
