/*
 * Canada Peptide Research Co. — Premium WooCommerce Product Tabs
 * Version: 1.0.0
 *
 * Upload this file to:
 * /wp-content/uploads/cpr-assets/cpr-product-tabs.css
 *
 * This stylesheet is intentionally scoped to single WooCommerce product pages.
 * It styles the existing WooCommerce/Custom Product Tabs navigation and provides
 * reusable layout classes for every custom product tab.
 */

.single-product {
    --cpr-red: #951A1D;
    --cpr-red-dark: #741316;
    --cpr-red-soft: #fff6f6;
    --cpr-ink: #1f2023;
    --cpr-text: #4e5258;
    --cpr-muted: #7a7f86;
    --cpr-line: #e8e9eb;
    --cpr-line-dark: #dfe1e4;
    --cpr-panel: #ffffff;
    --cpr-panel-soft: #fafafa;
    --cpr-shadow: 0 16px 45px rgba(18, 22, 28, 0.055);
}

/* ==========================================================
   1. OUTER TABS SHELL
   ========================================================== */

.single-product .woocommerce-tabs {
    position: relative;
    margin-top: 42px !important;
    padding: 18px !important;
    background:
        radial-gradient(circle at 100% 0%, rgba(149,26,29,.045), transparent 280px),
        #fff;
    border: 1px solid var(--cpr-line);
    border-radius: 20px;
    box-shadow: var(--cpr-shadow);
    overflow: visible;
}

.single-product .woocommerce-tabs::before {
    content: "";
    position: absolute;
    top: 0;
    left: 28px;
    width: 74px;
    height: 3px;
    background: var(--cpr-red);
    border-radius: 0 0 4px 4px;
}

/* ==========================================================
   2. TAB BUTTON NAVIGATION
   ========================================================== */

.single-product .woocommerce div.product .woocommerce-tabs ul.tabs,
.single-product div.product .woocommerce-tabs ul.tabs,
.single-product .woocommerce-tabs ul.tabs {
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 9px;
    width: 100%;
    margin: 0 0 16px !important;
    padding: 0 !important;
    list-style: none;
    border: 0 !important;
    background: transparent !important;
    overflow: visible;
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after {
    display: none !important;
}

.single-product .woocommerce-tabs ul.tabs li {
    position: relative;
    display: flex !important;
    align-items: stretch;
    flex: 0 0 auto;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border: 1px solid var(--cpr-line) !important;
    border-radius: 12px !important;
    box-shadow: 0 3px 12px rgba(18,22,28,.025) !important;
    transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after {
    display: none !important;
    content: none !important;
}

.single-product .woocommerce-tabs ul.tabs li:hover {
    border-color: #d2d4d8 !important;
    box-shadow: 0 7px 20px rgba(18,22,28,.06) !important;
    transform: translateY(-1px);
}

.single-product .woocommerce-tabs ul.tabs li a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    padding: 12px 16px !important;
    color: #2d3034 !important;
    font-size: 11.5px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: .015em;
    text-transform: uppercase;
    text-decoration: none !important;
    white-space: nowrap;
    opacity: 1 !important;
    transition: color .2s ease;
}

.single-product .woocommerce-tabs ul.tabs li a::before {
    content: "";
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    background-color: currentColor;
    -webkit-mask-image: var(--cpr-tab-icon);
    mask-image: var(--cpr-tab-icon);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    opacity: .88;
}

.single-product .woocommerce-tabs ul.tabs li.active {
    background: linear-gradient(135deg, #a91f22 0%, var(--cpr-red) 55%, #851619 100%) !important;
    border-color: var(--cpr-red) !important;
    box-shadow: 0 8px 20px rgba(149,26,29,.18) !important;
}

.single-product .woocommerce-tabs ul.tabs li.active:hover {
    transform: none;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
    color: #fff !important;
}

.single-product #tab-title-description,
.single-product .description_tab {
    --cpr-tab-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8%27%2F%3E%3Cpath%20d%3D%27M8%2017h8%27%2F%3E%3Cpath%20d%3D%27M8%209h2%27%2F%3E%3C%2Fsvg%3E");
}

.single-product #tab-title-what-are-peptides,
.single-product #tab-title-what_are_peptides,
.single-product .what-are-peptides_tab,
.single-product .what_are_peptides_tab {
    --cpr-tab-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%275%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%275%27%20cy%3D%2718%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2719%27%20cy%3D%2718%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2713%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27M12%207v4%27%2F%3E%3Cpath%20d%3D%27m10.3%2014.2-3.6%202.6%27%2F%3E%3Cpath%20d%3D%27m13.7%2014.2%203.6%202.6%27%2F%3E%3C%2Fsvg%3E");
}

.single-product #tab-title-storage-information,
.single-product #tab-title-storage_information,
.single-product .storage-information_tab,
.single-product .storage_information_tab {
    --cpr-tab-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%207h16v13H4z%27%2F%3E%3Cpath%20d%3D%27M8%207V4h8v3%27%2F%3E%3Cpath%20d%3D%27M9%2012h6%27%2F%3E%3Cpath%20d%3D%27M12%209v6%27%2F%3E%3C%2Fsvg%3E");
}

.single-product #tab-title-shipping,
.single-product .shipping_tab {
    --cpr-tab-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%206h11v10H3z%27%2F%3E%3Cpath%20d%3D%27M14%2010h4l3%203v3h-7z%27%2F%3E%3Ccircle%20cx%3D%277%27%20cy%3D%2718%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2718%27%20cy%3D%2718%27%20r%3D%272%27%2F%3E%3C%2Fsvg%3E");
}

.single-product #tab-title-coa-testing,
.single-product #tab-title-coa_testing,
.single-product .coa-testing_tab,
.single-product .coa_testing_tab {
    --cpr-tab-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%202%2020%206v6c0%205-3.5%208.5-8%2010-4.5-1.5-8-5-8-10V6z%27%2F%3E%3Cpath%20d%3D%27m9%2012%202%202%204-4%27%2F%3E%3C%2Fsvg%3E");
}

.single-product #tab-title-research-disclaimer,
.single-product #tab-title-research_disclaimer,
.single-product .research-disclaimer_tab,
.single-product .research_disclaimer_tab {
    --cpr-tab-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%202%2021%2019H3z%27%2F%3E%3Cpath%20d%3D%27M12%209v4%27%2F%3E%3Cpath%20d%3D%27M12%2017h.01%27%2F%3E%3C%2Fsvg%3E");
}

.single-product #tab-title-refer-a-friend,
.single-product #tab-title-refer_a_friend,
.single-product .refer-a-friend_tab,
.single-product .refer_a_friend_tab {
    --cpr-tab-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%27%2F%3E%3Ccircle%20cx%3D%279%27%20cy%3D%277%27%20r%3D%274%27%2F%3E%3Cpath%20d%3D%27M22%2021v-2a4%204%200%200%200-3-3.87%27%2F%3E%3Cpath%20d%3D%27M16%203.13a4%204%200%200%201%200%207.75%27%2F%3E%3C%2Fsvg%3E");
}

/* Fallback icon if a custom tab slug is slightly different. */
.single-product .woocommerce-tabs ul.tabs li a::before {
    -webkit-mask-image: var(--cpr-tab-icon, url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8%27%2F%3E%3Cpath%20d%3D%27M8%2017h8%27%2F%3E%3Cpath%20d%3D%27M8%209h2%27%2F%3E%3C%2Fsvg%3E"));
    mask-image: var(--cpr-tab-icon, url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%27%2F%3E%3Cpath%20d%3D%27M14%202v6h6%27%2F%3E%3Cpath%20d%3D%27M8%2013h8%27%2F%3E%3Cpath%20d%3D%27M8%2017h8%27%2F%3E%3Cpath%20d%3D%27M8%209h2%27%2F%3E%3C%2Fsvg%3E"));
}

/* ==========================================================
   3. TAB CONTENT PANEL
   ========================================================== */

.single-product .woocommerce-tabs .panel {
    margin: 0 !important;
    padding: 28px !important;
    color: var(--cpr-text);
    background:
        linear-gradient(180deg, rgba(250,250,250,.65), rgba(255,255,255,1) 105px),
        #fff;
    border: 1px solid var(--cpr-line);
    border-radius: 15px;
    box-shadow: none;
}

.single-product .woocommerce-tabs .panel > h2:first-child {
    display: none !important;
}

/* Reusable inner shell for every custom tab. */
.cpr-tab-shell {
    width: 100%;
    color: var(--cpr-text);
}

.cpr-tab-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(315px, .9fr);
    gap: clamp(26px, 3vw, 42px);
    align-items: start;
}

.cpr-tab-main,
.cpr-tab-sidebar {
    min-width: 0;
}

.cpr-tab-sidebar {
    display: grid;
    gap: 14px;
}

/* ==========================================================
   4. TYPOGRAPHY / SECTION HEADINGS
   ========================================================== */

.cpr-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 9px;
    color: var(--cpr-red);
    font-size: 11px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: .095em;
    text-transform: uppercase;
}

.cpr-kicker::before {
    content: "";
    width: 22px;
    height: 2px;
    background: var(--cpr-red);
    border-radius: 5px;
}

.cpr-tab-title {
    position: relative;
    margin: 0 0 14px !important;
    padding-bottom: 14px;
    color: var(--cpr-ink);
    font-size: clamp(22px, 2.15vw, 30px) !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
    letter-spacing: -.025em;
}

.cpr-tab-title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 42px;
    height: 2px;
    background: var(--cpr-red);
    border-radius: 3px;
}

.cpr-tab-lead {
    max-width: 760px;
    margin: 0 0 24px !important;
    color: #4f5359;
    font-size: 15px;
    line-height: 1.75;
}

.cpr-tab-copy {
    color: var(--cpr-text);
    font-size: 14.5px;
    line-height: 1.75;
}

.cpr-tab-copy p {
    margin: 0 0 15px;
}

.cpr-tab-copy p:last-child {
    margin-bottom: 0;
}

/* ==========================================================
   5. FEATURE / INFORMATION LISTS
   ========================================================== */

.cpr-feature-list {
    display: grid;
    gap: 11px;
    margin-top: 20px;
}

.cpr-feature-item {
    display: grid;
    grid-template-columns: 44px minmax(0,1fr);
    gap: 14px;
    align-items: start;
    padding: 14px 15px;
    background: #fff;
    border: 1px solid transparent;
    border-radius: 12px;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.cpr-feature-item:hover {
    background: #fcfcfc;
    border-color: var(--cpr-line);
    transform: translateX(2px);
}

.cpr-icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: var(--cpr-red);
    background: linear-gradient(180deg, #fff, #fbfbfb);
    border: 1px solid var(--cpr-line);
    border-radius: 11px;
    box-shadow: 0 4px 12px rgba(18,22,28,.045);
}

.cpr-icon-badge svg {
    width: 21px;
    height: 21px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cpr-feature-item h3 {
    margin: 0 0 4px !important;
    color: #2d3034;
    font-size: 14px !important;
    line-height: 1.35;
    font-weight: 700 !important;
}

.cpr-feature-item p {
    margin: 0 !important;
    color: #60646a;
    font-size: 13.5px;
    line-height: 1.55;
}

/* ==========================================================
   6. SIDEBAR / QUICK FACT CARDS
   ========================================================== */

.cpr-sidebar-card {
    padding: 20px 20px 17px;
    background:
        linear-gradient(180deg, #fff 0%, #fdfdfd 100%);
    border: 1px solid var(--cpr-line);
    border-radius: 14px;
}

.cpr-card-heading {
    position: relative;
    margin: 0 0 15px !important;
    padding-bottom: 10px;
    color: #272a2f;
    font-size: 13px !important;
    line-height: 1.3;
    font-weight: 800 !important;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.cpr-card-heading::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 28px;
    height: 2px;
    background: var(--cpr-red);
    border-radius: 2px;
}

.cpr-facts {
    margin: 0;
}

.cpr-fact-row {
    display: grid;
    grid-template-columns: minmax(110px, .82fr) minmax(0, 1.18fr);
    gap: 14px;
    align-items: start;
    padding: 10px 0;
    border-bottom: 1px solid #ececee;
}

.cpr-fact-row:last-child {
    border-bottom: 0;
    padding-bottom: 2px;
}

.cpr-fact-row dt,
.cpr-fact-row dd {
    margin: 0;
}

.cpr-fact-row dt {
    color: #747980;
    font-size: 12.75px;
    font-weight: 500;
}

.cpr-fact-row dd {
    color: #34373b;
    font-size: 12.75px;
    font-weight: 650;
}

/* ==========================================================
   7. CALLOUT CARDS / CHECKLISTS
   ========================================================== */

.cpr-callout {
    position: relative;
    padding: 18px 18px 17px;
    overflow: hidden;
    background: var(--cpr-red-soft);
    border: 1px solid #f0dddd;
    border-radius: 13px;
}

.cpr-callout::after {
    content: "";
    position: absolute;
    top: -32px;
    right: -32px;
    width: 90px;
    height: 90px;
    border: 18px solid rgba(149,26,29,.035);
    border-radius: 50%;
    pointer-events: none;
}

.cpr-callout--neutral {
    background: #f8f9fa;
    border-color: #e5e7e9;
}

.cpr-callout--dark {
    color: #fff;
    background: linear-gradient(135deg, #26282c, #17181b);
    border-color: #26282c;
}

.cpr-callout--dark::after {
    border-color: rgba(255,255,255,.045);
}

.cpr-callout-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.cpr-callout-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    color: var(--cpr-red);
    background: #fff;
    border: 1px solid rgba(149,26,29,.14);
    border-radius: 9px;
}

.cpr-callout--dark .cpr-callout-icon {
    color: #fff;
    background: rgba(255,255,255,.09);
    border-color: rgba(255,255,255,.16);
}

.cpr-callout-icon svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cpr-callout h3 {
    margin: 0 !important;
    color: var(--cpr-red);
    font-size: 13px !important;
    line-height: 1.35;
    font-weight: 800 !important;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.cpr-callout--dark h3 {
    color: #fff;
}

.cpr-callout p {
    position: relative;
    z-index: 1;
    margin: 0 !important;
    color: #5f646a;
    font-size: 12.75px;
    line-height: 1.6;
}

.cpr-callout--dark p {
    color: rgba(255,255,255,.76);
}

.cpr-checklist {
    display: grid;
    gap: 9px;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.cpr-checklist li {
    position: relative;
    margin: 0 !important;
    padding: 0 0 0 25px !important;
    color: #555a60;
    font-size: 12.75px;
    line-height: 1.5;
    list-style: none !important;
}

.cpr-checklist li::before {
    content: "✓";
    position: absolute;
    top: 1px;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    color: #fff;
    background: var(--cpr-red);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 800;
}

.cpr-callout--dark .cpr-checklist li {
    color: rgba(255,255,255,.8);
}

.cpr-callout--dark .cpr-checklist li::before {
    color: #17181b;
    background: #fff;
}

/* ==========================================================
   8. BUTTONS / LINKS FOR FUTURE TABS
   ========================================================== */

.cpr-tab-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.cpr-tab-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    color: #fff !important;
    background: var(--cpr-red);
    border: 1px solid var(--cpr-red);
    border-radius: 9px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.cpr-tab-btn:hover {
    color: #fff !important;
    background: var(--cpr-red-dark);
    border-color: var(--cpr-red-dark);
    transform: translateY(-1px);
}

.cpr-tab-btn--secondary {
    color: #383b40 !important;
    background: #fff;
    border-color: var(--cpr-line-dark);
}

.cpr-tab-btn--secondary:hover {
    color: var(--cpr-red) !important;
    background: #fff;
    border-color: #d7babc;
}

/* ==========================================================
   9. TABLE / DATA BLOCK SUPPORT FOR FUTURE TABS
   ========================================================== */

.cpr-data-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--cpr-line);
    border-radius: 13px;
}

.cpr-data-row {
    display: grid;
    grid-template-columns: minmax(130px, .8fr) minmax(0, 1.2fr);
    gap: 18px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--cpr-line);
}

.cpr-data-row:last-child {
    border-bottom: 0;
}

.cpr-data-label {
    color: var(--cpr-muted);
    font-size: 13px;
}

.cpr-data-value {
    color: #33363a;
    font-size: 13px;
    font-weight: 650;
}

/* ==========================================================
   10. TABLET
   ========================================================== */

@media (max-width: 1024px) {
    .single-product .woocommerce-tabs {
        padding: 15px !important;
        border-radius: 17px;
    }

    .single-product .woocommerce-tabs .panel {
        padding: 23px !important;
    }

    .single-product .woocommerce-tabs ul.tabs li a {
        padding: 11px 13px !important;
        font-size: 10.75px !important;
    }

    .cpr-tab-grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
        gap: 24px;
    }
}

/* ==========================================================
   11. MOBILE
   Designed as a polished swipeable tab rail + stacked content cards.
   ========================================================== */

@media (max-width: 767px) {
    .single-product .woocommerce-tabs {
        margin-top: 28px !important;
        padding: 11px !important;
        border-radius: 15px;
        box-shadow: 0 10px 28px rgba(18,22,28,.045);
    }

    .single-product .woocommerce-tabs::before {
        left: 20px;
        width: 58px;
    }

    .single-product .woocommerce div.product .woocommerce-tabs ul.tabs,
    .single-product div.product .woocommerce-tabs ul.tabs,
    .single-product .woocommerce-tabs ul.tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 7px;
        margin: 0 -2px 11px !important;
        padding: 2px 2px 6px !important;
        overflow-x: auto !important;
        overflow-y: hidden;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .single-product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
        display: none;
    }

    .single-product .woocommerce-tabs ul.tabs li {
        flex: 0 0 auto;
        scroll-snap-align: start;
        border-radius: 10px !important;
    }

    .single-product .woocommerce-tabs ul.tabs li:hover {
        transform: none;
    }

    .single-product .woocommerce-tabs ul.tabs li a {
        min-height: 42px;
        padding: 10px 12px !important;
        font-size: 10px !important;
        letter-spacing: .01em;
    }

    .single-product .woocommerce-tabs ul.tabs li a::before {
        width: 16px;
        height: 16px;
        flex-basis: 16px;
    }

    .single-product .woocommerce-tabs .panel {
        padding: 20px 17px !important;
        border-radius: 12px;
    }

    .cpr-tab-grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .cpr-tab-sidebar {
        gap: 11px;
    }

    .cpr-kicker {
        font-size: 10px;
        letter-spacing: .075em;
    }

    .cpr-tab-title {
        margin-bottom: 13px !important;
        padding-bottom: 12px;
        font-size: 23px !important;
    }

    .cpr-tab-lead {
        margin-bottom: 19px !important;
        font-size: 14px;
        line-height: 1.65;
    }

    .cpr-feature-list {
        gap: 7px;
        margin-top: 15px;
    }

    .cpr-feature-item {
        grid-template-columns: 39px minmax(0,1fr);
        gap: 11px;
        padding: 12px 8px 12px 0;
        border-top: 1px solid #f0f0f0;
        border-radius: 0;
    }

    .cpr-feature-item:first-child {
        border-top: 0;
    }

    .cpr-feature-item:hover {
        background: transparent;
        border-left-color: transparent;
        border-right-color: transparent;
        border-bottom-color: transparent;
        transform: none;
    }

    .cpr-icon-badge {
        width: 38px;
        height: 38px;
        border-radius: 10px;
    }

    .cpr-icon-badge svg {
        width: 19px;
        height: 19px;
    }

    .cpr-feature-item h3 {
        font-size: 13.5px !important;
    }

    .cpr-feature-item p {
        font-size: 12.75px;
    }

    .cpr-sidebar-card,
    .cpr-callout {
        padding: 17px;
        border-radius: 12px;
    }

    .cpr-fact-row {
        grid-template-columns: minmax(95px, .78fr) minmax(0,1.22fr);
        gap: 12px;
        padding: 9px 0;
    }

    .cpr-fact-row dt,
    .cpr-fact-row dd {
        font-size: 12.25px;
    }
}

/* ==========================================================
   12. VERY SMALL MOBILE
   ========================================================== */

@media (max-width: 390px) {
    .single-product .woocommerce-tabs {
        padding: 9px !important;
    }

    .single-product .woocommerce-tabs .panel {
        padding: 18px 14px !important;
    }

    .single-product .woocommerce-tabs ul.tabs li a {
        padding: 9px 10px !important;
        font-size: 9.5px !important;
    }

    .cpr-tab-title {
        font-size: 21px !important;
    }

    .cpr-fact-row {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .cpr-fact-row dd {
        font-weight: 700;
    }
}

/* ==========================================================
   13. ACCESSIBILITY / REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {
    .single-product .woocommerce-tabs ul.tabs li,
    .single-product .woocommerce-tabs ul.tabs li a,
    .cpr-feature-item,
    .cpr-tab-btn {
        transition: none !important;
    }
}


/* ==========================================================
   20. TAB PANEL CLEANUP
   - Hide the plugin/WooCommerce-generated duplicate tab title.
   - Allow sidebar fact values to use the full card width.
   ========================================================== */

/* The plugin outputs its own tab heading before our custom .cpr-tab-shell.
   Hide only headings that are direct children of the tab panel, so our
   custom headings inside .cpr-tab-shell remain visible. */
body.single-product .woocommerce-Tabs-panel > h2:first-child,
body.single-product .woocommerce-Tabs-panel > h3:first-child,
body.single-product .woocommerce-Tabs-panel > h4:first-child,
body.single-product .woocommerce-tabs .wc-tab > h2:first-child,
body.single-product .woocommerce-tabs .wc-tab > h3:first-child,
body.single-product .woocommerce-tabs .wc-tab > h4:first-child,
body.single-product .woocommerce-tabs .panel > h2:first-child,
body.single-product .woocommerce-tabs .panel > h3:first-child,
body.single-product .woocommerce-tabs .panel > h4:first-child {
    display: none !important;
}

/* Sidebar facts: label on its own line, value gets the entire row width. */
body.single-product .cpr-sidebar-card .cpr-data-row {
    display: block !important;
    width: 100% !important;
    grid-template-columns: none !important;
}

body.single-product .cpr-sidebar-card .cpr-data-label,
body.single-product .cpr-sidebar-card .cpr-data-value {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}

body.single-product .cpr-sidebar-card .cpr-data-label {
    margin-bottom: 5px !important;
}

body.single-product .cpr-sidebar-card .cpr-data-value {
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}


/* ==========================================================
   CPR PRODUCT DESCRIPTION SYSTEM
   Reusable visual system for individual product descriptions.
   ========================================================== */

.cpr-product-description .cpr-product-component-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
    margin: 20px 0 0;
}

.cpr-product-description .cpr-product-component {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 15px 16px !important;
    background: linear-gradient(180deg, #ffffff 0%, #fdfdfd 100%);
    border: 1px solid #eceef0;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(18,22,28,.025);
    box-sizing: border-box;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.cpr-product-description .cpr-product-component:hover {
    border-color: rgba(149,26,29,.18);
    box-shadow: 0 8px 22px rgba(18,22,28,.045);
    transform: translateY(-1px);
}

.cpr-product-description .cpr-product-component-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    color: var(--cpr-red) !important;
    background: linear-gradient(180deg, #ffffff, #fafafa);
    border: 1px solid #e4e6e9;
    border-radius: 11px;
    box-shadow: 0 4px 12px rgba(18,22,28,.045);
    box-sizing: border-box;
}

.cpr-product-description .cpr-product-component-icon i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 22px !important;
    height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font-size: 18px !important;
    line-height: 1 !important;
}

.cpr-product-description .cpr-product-component-copy {
    display: block !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

.cpr-product-description .cpr-product-component-copy h3 {
    margin: 0 0 5px !important;
    padding: 0 !important;
    font-size: 14.5px !important;
    line-height: 1.35 !important;
    font-weight: 750 !important;
}

.cpr-product-description .cpr-product-component-copy p {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 13.5px !important;
    line-height: 1.58 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.cpr-research-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 4px;
}

.cpr-research-tag {
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    padding: 6px 9px;
    color: #4a4e54;
    background: #fff;
    border: 1px solid var(--cpr-line);
    border-radius: 999px;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 650;
}

@media (max-width: 767px) {
    .cpr-product-description .cpr-product-component {
        gap: 12px !important;
        padding: 13px 12px !important;
    }

    .cpr-product-description .cpr-product-component-icon {
        flex-basis: 40px !important;
        width: 40px !important;
        height: 40px !important;
    }

    .cpr-product-description .cpr-product-component-icon i {
        width: 20px !important;
        height: 20px !important;
        font-size: 17px !important;
    }
}


/* ==========================================================
   KLOW STACK PURCHASE PANEL — RUNTIME COMPACT LIST
   The PHP helper identifies the plugin's real card elements
   at runtime and applies these stable classes.
   ========================================================== */

@media (min-width: 768px) {
    body.cpr-product-klow-page.cpr-klow-runtime-ready .cpr-klow-runtime-list {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns: none !important;
        column-count: 1 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.cpr-product-klow-page.cpr-klow-runtime-ready .cpr-klow-runtime-item {
        float: none !important;
        display: grid !important;
        grid-template-columns: 54px minmax(0, 1fr) auto !important;
        grid-template-rows: auto auto !important;
        align-items: center !important;
        column-gap: 12px !important;
        row-gap: 2px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 72px !important;
        margin: 0 !important;
        padding: 10px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid #ececec !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    body.cpr-product-klow-page.cpr-klow-runtime-ready .cpr-klow-runtime-media {
        grid-column: 1 !important;
        grid-row: 1 / span 2 !important;
        align-self: center !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 54px !important;
        height: 62px !important;
        max-width: 54px !important;
        max-height: 62px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        overflow: hidden !important;
    }

    body.cpr-product-klow-page.cpr-klow-runtime-ready .cpr-klow-runtime-image {
        display: block !important;
        width: auto !important;
        height: auto !important;
        max-width: 44px !important;
        max-height: 58px !important;
        margin: 0 auto !important;
        padding: 0 !important;
        object-fit: contain !important;
    }

    body.cpr-product-klow-page.cpr-klow-runtime-ready .cpr-klow-runtime-title {
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: end !important;
        display: block !important;
        width: fit-content !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #474b50 !important;
        font-size: 14px !important;
        line-height: 1.25 !important;
        font-weight: 500 !important;
        text-decoration: none !important;
    }

    body.cpr-product-klow-page.cpr-klow-runtime-ready .cpr-klow-runtime-stock {
        grid-column: 2 !important;
        grid-row: 2 !important;
        align-self: start !important;
        display: block !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 13px !important;
        line-height: 1.25 !important;
    }

    body.cpr-product-klow-page.cpr-klow-runtime-ready .cpr-klow-runtime-price {
        grid-column: 3 !important;
        grid-row: 1 / span 2 !important;
        align-self: center !important;
        justify-self: end !important;
        width: auto !important;
        max-width: 130px !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
        white-space: nowrap !important;
        text-align: right !important;
    }

    /* Any plugin card-image wrapper that still has inherited large sizing. */
    body.cpr-product-klow-page.cpr-klow-runtime-ready .cpr-klow-runtime-item img {
        width: auto !important;
        height: auto !important;
        max-width: 44px !important;
        max-height: 58px !important;
        object-fit: contain !important;
    }
}

/* Mobile keeps the plugin's native interaction pattern. */


/* ==========================================================
   26. MASTER PRODUCT DESCRIPTION ICON LIBRARY
   One-time shared library for the full product + stack catalog.
   Future product Description tabs can reuse these classes with
   HTML only — no new CSS file should be needed for each item.
   ========================================================== */

/* Draw the icon on the span itself so WordPress cannot strip it. */
.cpr-product-description .cpr-product-component-icon::before {
    content: "";
    display: block;
    width: 22px;
    height: 22px;
    background-color: var(--cpr-red);
    transform: translateX(2px);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* Hide any optional inner icon markup if an editor leaves it behind. */
.cpr-product-description .cpr-product-component-icon > * {
    display: none !important;
}

/* ----------------------------------------------------------
   LAB / FORMAT
   ---------------------------------------------------------- */

/* Water / diluent */
.cpr-product-description .cpr-icon-water::before,
.cpr-product-description .cpr-icon-bac-water::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5S5.5 10 5.5 15.2A6.5 6.5 0 0 0 12 21.5a6.5 6.5 0 0 0 6.5-6.3C18.5 10 12 2.5 12 2.5Zm0 16.8a4.2 4.2 0 0 1-4.2-4.1c0-2.6 2.6-6.6 4.2-8.8 1.6 2.2 4.2 6.2 4.2 8.8a4.2 4.2 0 0 1-4.2 4.1Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5S5.5 10 5.5 15.2A6.5 6.5 0 0 0 12 21.5a6.5 6.5 0 0 0 6.5-6.3C18.5 10 12 2.5 12 2.5Zm0 16.8a4.2 4.2 0 0 1-4.2-4.1c0-2.6 2.6-6.6 4.2-8.8 1.6 2.2 4.2 6.2 4.2 8.8a4.2 4.2 0 0 1-4.2 4.1Z'/%3E%3C/svg%3E");
}

/* Vial / lyophilized format */
.cpr-product-description .cpr-icon-vial::before,
.cpr-product-description .cpr-icon-lyophilized::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 2h8v2h-1v3.2l2.7 4.1c.8 1.2 1.3 2.7 1.3 4.2V19a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3v-3.5c0-1.5.5-3 1.3-4.2L9 7.2V4H8V2Zm3 2v3.8l-3 4.6a5.6 5.6 0 0 0-.7 1.6h9.4a5.6 5.6 0 0 0-.7-1.6l-3-4.6V4h-2Zm-3.7 12v3a.7.7 0 0 0 .7.7h8a.7.7 0 0 0 .7-.7v-3H7.3Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 2h8v2h-1v3.2l2.7 4.1c.8 1.2 1.3 2.7 1.3 4.2V19a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3v-3.5c0-1.5.5-3 1.3-4.2L9 7.2V4H8V2Zm3 2v3.8l-3 4.6a5.6 5.6 0 0 0-.7 1.6h9.4a5.6 5.6 0 0 0-.7-1.6l-3-4.6V4h-2Zm-3.7 12v3a.7.7 0 0 0 .7.7h8a.7.7 0 0 0 .7-.7v-3H7.3Z'/%3E%3C/svg%3E");
}

/* Flask / preparation */
.cpr-product-description .cpr-icon-flask::before,
.cpr-product-description .cpr-icon-preparation::before,
.cpr-product-description .cpr-icon-reconstitution::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 2h6v2h-1v5.1l4.7 7.6A3.5 3.5 0 0 1 15.7 22H8.3a3.5 3.5 0 0 1-3-5.3L10 9.1V4H9V2Zm3 8.2-2.2 3.6h4.4L12 10.2Zm-3.4 5.6-1.3 2.1a1.3 1.3 0 0 0 1 2h7.4a1.3 1.3 0 0 0 1-2l-1.3-2.1H8.6Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 2h6v2h-1v5.1l4.7 7.6A3.5 3.5 0 0 1 15.7 22H8.3a3.5 3.5 0 0 1-3-5.3L10 9.1V4H9V2Zm3 8.2-2.2 3.6h4.4L12 10.2Zm-3.4 5.6-1.3 2.1a1.3 1.3 0 0 0 1 2h7.4a1.3 1.3 0 0 0 1-2l-1.3-2.1H8.6Z'/%3E%3C/svg%3E");
}

/* Quality / controlled handling / purity */
.cpr-product-description .cpr-icon-quality::before,
.cpr-product-description .cpr-icon-purity::before,
.cpr-product-description .cpr-icon-verified::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 20 6v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-4Zm-1.2 12.6 5.1-5.1-1.4-1.4-3.7 3.7-1.7-1.7-1.4 1.4 3.1 3.1Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 20 6v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-4Zm-1.2 12.6 5.1-5.1-1.4-1.4-3.7 3.7-1.7-1.7-1.4 1.4 3.1 3.1Z'/%3E%3C/svg%3E");
}

/* ----------------------------------------------------------
   REPAIR / MATRIX / SIGNALING
   ---------------------------------------------------------- */

/* Repair / protective response */
.cpr-product-description .cpr-icon-repair::before,
.cpr-product-description .cpr-icon-bpc::before,
.cpr-product-description .cpr-icon-bpc157::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 20 6v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-4Zm-1 6h2v3h3v2h-3v3h-2v-3H8v-2h3V8Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 20 6v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-4Zm-1 6h2v3h3v2h-3v3h-2v-3H8v-2h3V8Z'/%3E%3C/svg%3E");
}

/* Movement / migration */
.cpr-product-description .cpr-icon-movement::before,
.cpr-product-description .cpr-icon-route::before,
.cpr-product-description .cpr-icon-tb::before,
.cpr-product-description .cpr-icon-tb500::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19a3 3 0 1 1 2.83-4H12c2.21 0 4-1.79 4-4V8.83a3 3 0 1 1 2 0V11c0 3.31-2.69 6-6 6H7.83A3 3 0 0 1 5 19Zm0-2a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm14-12a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19a3 3 0 1 1 2.83-4H12c2.21 0 4-1.79 4-4V8.83a3 3 0 1 1 2 0V11c0 3.31-2.69 6-6 6H7.83A3 3 0 0 1 5 19Zm0-2a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm14-12a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z'/%3E%3C/svg%3E");
}

/* Molecular network / matrix / copper */
.cpr-product-description .cpr-icon-network::before,
.cpr-product-description .cpr-icon-matrix::before,
.cpr-product-description .cpr-icon-copper::before,
.cpr-product-description .cpr-icon-ghk::before,
.cpr-product-description .cpr-icon-ghkcu::before,
.cpr-product-description .cpr-icon-solution::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3a3 3 0 1 1-2.83 4H2V5h1.17A3 3 0 0 1 6 3Zm12 0a3 3 0 1 1-2.83 4H8.83a3 3 0 0 1 0-2h6.34A3 3 0 0 1 18 3ZM12 15a3 3 0 1 1-1 5.83V22H9v-1.17A3 3 0 0 1 9.4 15.4L6.2 9.85a3 3 0 0 1 1.73-1l3.2 5.54A3 3 0 0 1 12 15Zm4.07-6.15a3 3 0 0 1 1.73 1l-3.2 5.55a3 3 0 0 1-1.73-1l3.2-5.55Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3a3 3 0 1 1-2.83 4H2V5h1.17A3 3 0 0 1 6 3Zm12 0a3 3 0 1 1-2.83 4H8.83a3 3 0 0 1 0-2h6.34A3 3 0 0 1 18 3ZM12 15a3 3 0 1 1-1 5.83V22H9v-1.17A3 3 0 0 1 9.4 15.4L6.2 9.85a3 3 0 0 1 1.73-1l3.2 5.54A3 3 0 0 1 12 15Zm4.07-6.15a3 3 0 0 1 1.73 1l-3.2 5.55a3 3 0 0 1-1.73-1l3.2-5.55Z'/%3E%3C/svg%3E");
}

/* Signaling / inflammatory models */
.cpr-product-description .cpr-icon-signal::before,
.cpr-product-description .cpr-icon-inflammatory::before,
.cpr-product-description .cpr-icon-kpv::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 13h4l2.5-7 4 12 2.5-7H22v2h-5.6l-3.9 11-4-12L7.4 15H2v-2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 13h4l2.5-7 4 12 2.5-7H22v2h-5.6l-3.9 11-4-12L7.4 15H2v-2Z'/%3E%3C/svg%3E");
}

/* Collagen / helix */
.cpr-product-description .cpr-icon-collagen::before,
.cpr-product-description .cpr-icon-helix::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h2c0 4 8 4 8 8s-8 4-8 8c0 2 2 3 4 4H9c-2-1.2-3-2.5-3-4 0-4 8-4 8-8S6 6 6 2Zm10 0h2c0 4-8 4-8 8s8 4 8 8c0 1.5-1 2.8-3 4h-3c2-1 4-2 4-4 0-4-8-4-8-8s8-4 8-8Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h2c0 4 8 4 8 8s-8 4-8 8c0 2 2 3 4 4H9c-2-1.2-3-2.5-3-4 0-4 8-4 8-8S6 6 6 2Zm10 0h2c0 4-8 4-8 8s8 4 8 8c0 1.5-1 2.8-3 4h-3c2-1 4-2 4-4 0-4-8-4-8-8s8-4 8-8Z'/%3E%3C/svg%3E");
}

/* Skin / visible appearance / GLOW */
.cpr-product-description .cpr-icon-skin::before,
.cpr-product-description .cpr-icon-look::before,
.cpr-product-description .cpr-icon-glow::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 1.4 4.6L18 8l-4.6 1.4L12 14l-1.4-4.6L6 8l4.6-1.4L12 2Zm6 10 .9 2.8L22 16l-3.1 1.2L18 20l-.9-2.8L14 16l3.1-1.2L18 12ZM6 13l1.1 3.4L10 17.5l-2.9 1.1L6 22l-1.1-3.4L2 17.5l2.9-1.1L6 13Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 1.4 4.6L18 8l-4.6 1.4L12 14l-1.4-4.6L6 8l4.6-1.4L12 2Zm6 10 .9 2.8L22 16l-3.1 1.2L18 20l-.9-2.8L14 16l3.1-1.2L18 12ZM6 13l1.1 3.4L10 17.5l-2.9 1.1L6 22l-1.1-3.4L2 17.5l2.9-1.1L6 13Z'/%3E%3C/svg%3E");
}

/* ----------------------------------------------------------
   FOCUS / NEURO / CELLULAR
   ---------------------------------------------------------- */

/* Brain / cognition */
.cpr-product-description .cpr-icon-brain::before,
.cpr-product-description .cpr-icon-cognition::before,
.cpr-product-description .cpr-icon-semax::before,
.cpr-product-description .cpr-icon-selank::before,
.cpr-product-description .cpr-icon-pinealon::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 3A3.5 3.5 0 0 0 6 6.5v.3A3.5 3.5 0 0 0 4 10a3.5 3.5 0 0 0 2 3.2v.3A3.5 3.5 0 0 0 9.5 17H11V3H9.5ZM14.5 3H13v14h1.5a3.5 3.5 0 0 0 3.5-3.5v-.3A3.5 3.5 0 0 0 20 10a3.5 3.5 0 0 0-2-3.2v-.3A3.5 3.5 0 0 0 14.5 3ZM8 19h8v2H8v-2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 3A3.5 3.5 0 0 0 6 6.5v.3A3.5 3.5 0 0 0 4 10a3.5 3.5 0 0 0 2 3.2v.3A3.5 3.5 0 0 0 9.5 17H11V3H9.5ZM14.5 3H13v14h1.5a3.5 3.5 0 0 0 3.5-3.5v-.3A3.5 3.5 0 0 0 20 10a3.5 3.5 0 0 0-2-3.2v-.3A3.5 3.5 0 0 0 14.5 3ZM8 19h8v2H8v-2Z'/%3E%3C/svg%3E");
}

/* Focus / target */
.cpr-product-description .cpr-icon-focus::before,
.cpr-product-description .cpr-icon-target::before,
.cpr-product-description .cpr-icon-receptor::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 10 10h-2a8 8 0 1 1-8-8V2Zm0 5a5 5 0 1 0 5 5h-2a3 3 0 1 1-3-3V7Zm9-5-6.5 6.5 1.4 1.4L22.4 3.4 21 2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 10 10h-2a8 8 0 1 1-8-8V2Zm0 5a5 5 0 1 0 5 5h-2a3 3 0 1 1-3-3V7Zm9-5-6.5 6.5 1.4 1.4L22.4 3.4 21 2Z'/%3E%3C/svg%3E");
}

/* Calm / balance */
.cpr-product-description .cpr-icon-calm::before,
.cpr-product-description .cpr-icon-balance::before,
.cpr-product-description .cpr-icon-stress-response::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 8h10a3 3 0 1 0-3-3h2a1 1 0 1 1 1 1H3v2Zm0 4h15a3 3 0 1 1-3 3h2a1 1 0 1 0 1-1H3v-2Zm0 6h8a3 3 0 1 1-3 3h2a1 1 0 1 0 1-1H3v-2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 8h10a3 3 0 1 0-3-3h2a1 1 0 1 1 1 1H3v2Zm0 4h15a3 3 0 1 1-3 3h2a1 1 0 1 0 1-1H3v-2Zm0 6h8a3 3 0 1 1-3 3h2a1 1 0 1 0 1-1H3v-2Z'/%3E%3C/svg%3E");
}

/* Sleep / circadian */
.cpr-product-description .cpr-icon-sleep::before,
.cpr-product-description .cpr-icon-circadian::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.5 15.5A8 8 0 0 1 8.5 3.5 9 9 0 1 0 20.5 15.5Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.5 15.5A8 8 0 0 1 8.5 3.5 9 9 0 1 0 20.5 15.5Z'/%3E%3C/svg%3E");
}

/* DNA / telomere / Epithalon */
.cpr-product-description .cpr-icon-dna::before,
.cpr-product-description .cpr-icon-telomere::before,
.cpr-product-description .cpr-icon-epithalon::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h3c0 3.2 4 4.2 4 7s-4 3.8-4 7c0 1.8 1.1 3 3 4H9c-1.4-1.2-2-2.5-2-4 0-3.8 4-4.8 4-7S7 5.2 7 2Zm7 0h3c0 3.2-4 4.2-4 7s4 3.8 4 7c0 1.5-.6 2.8-2 4h-4c1.9-1 3-2.2 3-4 0-3.2-4-4.2-4-7s4-3.8 4-7ZM8 6h8v2H8V6Zm0 10h8v2H8v-2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h3c0 3.2 4 4.2 4 7s-4 3.8-4 7c0 1.8 1.1 3 3 4H9c-1.4-1.2-2-2.5-2-4 0-3.8 4-4.8 4-7S7 5.2 7 2Zm7 0h3c0 3.2-4 4.2-4 7s4 3.8 4 7c0 1.5-.6 2.8-2 4h-4c1.9-1 3-2.2 3-4 0-3.2-4-4.2-4-7s4-3.8 4-7ZM8 6h8v2H8V6Zm0 10h8v2H8v-2Z'/%3E%3C/svg%3E");
}

/* Cellular / nucleus */
.cpr-product-description .cpr-icon-cell::before,
.cpr-product-description .cpr-icon-cellular::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm0 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm0 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm0 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'/%3E%3C/svg%3E");
}

/* ----------------------------------------------------------
   ENERGY / METABOLIC / ENDOCRINE
   ---------------------------------------------------------- */

/* Energy / NAD+ */
.cpr-product-description .cpr-icon-energy::before,
.cpr-product-description .cpr-icon-nad::before,
.cpr-product-description .cpr-icon-bolt::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 2 5 14h6l-1 8 9-13h-6V2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 2 5 14h6l-1 8 9-13h-6V2Z'/%3E%3C/svg%3E");
}

/* Mitochondrial / MOTS-c */
.cpr-product-description .cpr-icon-mitochondria::before,
.cpr-product-description .cpr-icon-mots::before,
.cpr-product-description .cpr-icon-motsc::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5c2-2 5-2 7 0s5 2 7 0v14c-2 2-5 2-7 0s-5-2-7 0V5Zm3 3c1-1 2-1 3 0s2 1 3 0 2-1 3 0v2c-1-1-2-1-3 0s-2 1-3 0-2-1-3 0V8Zm0 6c1-1 2-1 3 0s2 1 3 0 2-1 3 0v2c-1-1-2-1-3 0s-2 1-3 0-2-1-3 0v-2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5c2-2 5-2 7 0s5 2 7 0v14c-2 2-5 2-7 0s-5-2-7 0V5Zm3 3c1-1 2-1 3 0s2 1 3 0 2-1 3 0v2c-1-1-2-1-3 0s-2 1-3 0-2-1-3 0V8Zm0 6c1-1 2-1 3 0s2 1 3 0 2-1 3 0v2c-1-1-2-1-3 0s-2 1-3 0-2-1-3 0v-2Z'/%3E%3C/svg%3E");
}

/* Metabolism / burn */
.cpr-product-description .cpr-icon-metabolism::before,
.cpr-product-description .cpr-icon-burn::before,
.cpr-product-description .cpr-icon-retatrutide::before,
.cpr-product-description .cpr-icon-tirzepatide::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 2c1 4-2 5-2 8 0 1.5 1 2.5 2 3.5.7-2.5 2.6-4.2 4-5.5 1 2 2 4 2 6.5A7 7 0 1 1 5 14c0-3 1.6-5.6 4.6-8.2-.2 3 1.4 4 2.4 5.2 0-3.5 3-5.2 1-9Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 2c1 4-2 5-2 8 0 1.5 1 2.5 2 3.5.7-2.5 2.6-4.2 4-5.5 1 2 2 4 2 6.5A7 7 0 1 1 5 14c0-3 1.6-5.6 4.6-8.2-.2 3 1.4 4 2.4 5.2 0-3.5 3-5.2 1-9Z'/%3E%3C/svg%3E");
}

/* GH / endocrine pulse */
.cpr-product-description .cpr-icon-hormone::before,
.cpr-product-description .cpr-icon-gh::before,
.cpr-product-description .cpr-icon-endocrine::before,
.cpr-product-description .cpr-icon-cjc::before,
.cpr-product-description .cpr-icon-cjc1295::before,
.cpr-product-description .cpr-icon-ipamorelin::before,
.cpr-product-description .cpr-icon-tesamorelin::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 13h4l2-5 4 9 2-5h6v2h-4.6L13 22l-4-9-1 2H3v-2Zm12-9h6v6h-2V7.4l-4.3 4.3-1.4-1.4L17.6 6H15V4Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 13h4l2-5 4 9 2-5h6v2h-4.6L13 22l-4-9-1 2H3v-2Zm12-9h6v6h-2V7.4l-4.3 4.3-1.4-1.4L17.6 6H15V4Z'/%3E%3C/svg%3E");
}

/* Growth / build */
.cpr-product-description .cpr-icon-growth::before,
.cpr-product-description .cpr-icon-build::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20V9h3v11H4Zm6 0V5h3v15h-3Zm6 0V2h3v18h-3ZM3 22h18v-2H3v2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20V9h3v11H4Zm6 0V5h3v15h-3Zm6 0V2h3v18h-3ZM3 22h18v-2H3v2Z'/%3E%3C/svg%3E");
}

/* ----------------------------------------------------------
   LONGEVITY / DESIRE / STACKS
   ---------------------------------------------------------- */

/* Longevity / clock */
.cpr-product-description .cpr-icon-longevity::before,
.cpr-product-description .cpr-icon-clock::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2Zm0 2a8 8 0 1 1-8 8 8 8 0 0 1 8-8Zm-1 3v6l5 3 1-1.7-4-2.3V7h-2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2Zm0 2a8 8 0 1 1-8 8 8 8 0 0 1 8-8Zm-1 3v6l5 3 1-1.7-4-2.3V7h-2Z'/%3E%3C/svg%3E");
}

/* Heart / desire */
.cpr-product-description .cpr-icon-heart::before,
.cpr-product-description .cpr-icon-desire::before,
.cpr-product-description .cpr-icon-pt141::before,
.cpr-product-description .cpr-icon-kisspeptin::before,
.cpr-product-description .cpr-icon-kisspeptin10::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21 4.2 13.6A6.5 6.5 0 0 1 3 5.5 6 6 0 0 1 12 6a6 6 0 0 1 9-0.5 6.5 6.5 0 0 1-1.2 8.1L12 21Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21 4.2 13.6A6.5 6.5 0 0 1 3 5.5 6 6 0 0 1 12 6a6 6 0 0 1 9-0.5 6.5 6.5 0 0 1-1.2 8.1L12 21Z'/%3E%3C/svg%3E");
}

/* Stack / blend / multi-component */
.cpr-product-description .cpr-icon-stack::before,
.cpr-product-description .cpr-icon-blend::before,
.cpr-product-description .cpr-icon-layers::before,
.cpr-product-description .cpr-icon-klow::before,
.cpr-product-description .cpr-icon-glow-blend::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 9 5-9 5-9-5 9-5Zm-9 10 9 5 9-5v3l-9 5-9-5v-3Zm0 5 9 5 9-5v3l-9 5-9-5v-3Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 9 5-9 5-9-5 9-5Zm-9 10 9 5 9-5v3l-9 5-9-5v-3Zm0 5 9 5 9-5v3l-9 5-9-5v-3Z'/%3E%3C/svg%3E");
}

/* Peptide / chain */
.cpr-product-description .cpr-icon-peptide::before,
.cpr-product-description .cpr-icon-chain::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 7h3v2H7a2 2 0 0 0 0 4h3v2H7A4 4 0 0 1 7 7Zm7 0h3a4 4 0 0 1 0 8h-3v-2h3a2 2 0 0 0 0-4h-3V7Zm-5 4h6v2H9v-2Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 7h3v2H7a2 2 0 0 0 0 4h3v2H7A4 4 0 0 1 7 7Zm7 0h3a4 4 0 0 1 0 8h-3v-2h3a2 2 0 0 0 0-4h-3V7Zm-5 4h6v2H9v-2Z'/%3E%3C/svg%3E");
}

/* Generic research / laboratory */
.cpr-product-description .cpr-icon-research::before,
.cpr-product-description .cpr-icon-lab::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 2h6v2h-1v5l5 8a3 3 0 0 1-2.5 5h-9A3 3 0 0 1 5 17l5-8V4H9V2Zm3 8.8L8 17.2a1 1 0 0 0 .8 1.5h6.4a1 1 0 0 0 .8-1.5l-4-6.4Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 2h6v2h-1v5l5 8a3 3 0 0 1-2.5 5h-9A3 3 0 0 1 5 17l5-8V4H9V2Zm3 8.8L8 17.2a1 1 0 0 0 .8 1.5h6.4a1 1 0 0 0 .8-1.5l-4-6.4Z'/%3E%3C/svg%3E");
}

@media (max-width: 767px) {
    .cpr-product-description .cpr-product-component-icon::before {
        width: 20px;
        height: 20px;
    }
}


/* ==========================================================
   27. UNIVERSAL PRODUCT DESCRIPTION CARD OVERRIDE
   Uses the exact card/icon structure proven on KLOW, but
   applies it to every .cpr-product-description.
   Kept at the END of the stylesheet intentionally so OceanWP,
   WooCommerce, and tab-plugin rules cannot flatten the cards.
   ========================================================== */

body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 20px 0 0 !important;
    padding: 0 !important;
}

body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component {
    position: relative !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 15px 16px !important;

    background: linear-gradient(180deg, #ffffff 0%, #fdfdfd 100%) !important;
    border: 1px solid #eceef0 !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 14px rgba(18,22,28,.025) !important;

    box-sizing: border-box !important;
}

body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component:hover {
    border-color: rgba(149,26,29,.18) !important;
    box-shadow: 0 8px 22px rgba(18,22,28,.045) !important;
    transform: translateY(-1px);
}

/* wpautop can inject empty paragraphs around the icon span. */
body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component > p:empty,
body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-copy > p:empty {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-icon {
    position: relative !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;

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

    color: #951A1D !important;
    background: #ffffff !important;
    border: 1px solid #e1e3e6 !important;
    border-radius: 11px !important;
    box-shadow: 0 4px 12px rgba(18,22,28,.045) !important;

    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* The WordPress tab editor may remove inner icon elements.
   Draw the icon directly on the surviving span instead. */
body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-icon::before {
    content: "" !important;

    display: block !important;
    flex: 0 0 22px !important;
    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;

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

    background-color: #951A1D !important;
    transform: translateX(2px) !important;

    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
}

body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-icon > * {
    display: none !important;
}

body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-copy {
    display: block !important;
    flex: 1 1 auto !important;

    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;

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

body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-copy h3 {
    display: block !important;
    width: 100% !important;

    margin: 0 0 5px !important;
    padding: 0 !important;

    font-size: 14.5px !important;
    line-height: 1.35 !important;
    font-weight: 750 !important;

    white-space: normal !important;
}

body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-copy p {
    display: block !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

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

    font-size: 13.5px !important;
    line-height: 1.58 !important;

    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

/* Make research tags universal and resistant to theme resets. */
body.single-product .woocommerce-tabs .cpr-product-description .cpr-research-tags {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 7px !important;
    width: 100% !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
}

body.single-product .woocommerce-tabs .cpr-product-description .cpr-research-tag {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 29px !important;

    margin: 0 !important;
    padding: 6px 9px !important;

    color: #4a4e54 !important;
    background: #ffffff !important;
    border: 1px solid #e6e7e9 !important;
    border-radius: 999px !important;

    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 650 !important;

    box-sizing: border-box !important;
}

@media (max-width: 767px) {
    body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component {
        gap: 12px !important;
        padding: 13px 12px !important;
    }

    body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-icon {
        flex-basis: 40px !important;
        width: 40px !important;
        min-width: 40px !important;
        max-width: 40px !important;
        height: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;
    }

    body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-icon::before {
        flex-basis: 20px !important;
        width: 20px !important;
        min-width: 20px !important;
        max-width: 20px !important;
        height: 20px !important;
        min-height: 20px !important;
        max-height: 20px !important;
    }

    body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-copy h3 {
        font-size: 14px !important;
    }

    body.single-product .woocommerce-tabs .cpr-product-description .cpr-product-component-copy p {
        font-size: 13px !important;
        line-height: 1.55 !important;
    }
}
