/* ==========================================================================
   Brand palette — overrides Bootstrap's theme.css custom properties so every
   component still using the default PS9/Hummingbird colors (badges, alerts,
   focus rings, form validation, links, pagination, etc.) inherits the same
   brand colors already used throughout this migration, instead of stock
   Bootstrap blue/red. Components with a bespoke look (e.g. .btn-primary
   using lime on dark green) keep their own explicit override further below.
   ========================================================================== */
:root {
    --bs-primary: #18443D;
    --bs-primary-rgb: 24, 68, 61;
    --bs-primary-text-emphasis: #18443D;

    --bs-secondary: #C5FA53;
    --bs-secondary-rgb: 197, 250, 83;
    --bs-secondary-text-emphasis: #18443D;

    --bs-danger: #CB0000;
    --bs-danger-rgb: 203, 0, 0;
    --bs-danger-text-emphasis: #CB0000;

    --bs-body-color: #252525;
    --bs-body-color-rgb: 37, 37, 37;
    --bs-emphasis-color: #252525;

    --bs-link-color: #252525;
    --bs-link-color-rgb: 37, 37, 37;
    --bs-link-hover-color: #18443D;
    --bs-link-hover-color-rgb: 24, 68, 61;

    --bs-focus-ring-color: rgba(24, 68, 61, 0.25);

    --bs-form-valid-color: #18443D;
    --bs-form-valid-border-color: #18443D;
    --bs-form-invalid-color: #CB0000;
    --bs-form-invalid-border-color: #CB0000;

    --bs-success: #18443D;
    --bs-success-rgb: 24, 68, 61;
}

/* Bootstrap's .btn variants read their colors from --bs-btn-* custom properties
   scoped per class (set with literal hex values at build time in theme.css),
   not from the --bs-primary/--bs-secondary/--bs-danger root variables above —
   so any plain .btn-primary/.btn-secondary/.btn-danger (or their outline
   counterparts) still used somewhere without a bespoke override needs these
   set directly to stay on-brand. Primary/secondary intentionally swap
   background/text on hover, mirroring the add-to-cart button's existing
   invert style; danger just darkens, matching the rest of the site. */
.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #18443D;
    --bs-btn-border-color: #18443D;
    --bs-btn-hover-color: #18443D;
    --bs-btn-hover-bg: #C5FA53;
    --bs-btn-hover-border-color: #C5FA53;
    --bs-btn-focus-shadow-rgb: 24, 68, 61;
    --bs-btn-active-color: #18443D;
    --bs-btn-active-bg: #B2E93F;
    --bs-btn-active-border-color: #B2E93F;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #18443D;
    --bs-btn-disabled-border-color: #18443D;
}

.btn-secondary {
    --bs-btn-color: #18443D;
    --bs-btn-bg: #C5FA53;
    --bs-btn-border-color: #C5FA53;
    --bs-btn-hover-color: #C5FA53;
    --bs-btn-hover-bg: #18443D;
    --bs-btn-hover-border-color: #18443D;
    --bs-btn-focus-shadow-rgb: 197, 250, 83;
    --bs-btn-active-color: #C5FA53;
    --bs-btn-active-bg: #0F2B28;
    --bs-btn-active-border-color: #0F2B28;
    --bs-btn-disabled-color: #18443D;
    --bs-btn-disabled-bg: #C5FA53;
    --bs-btn-disabled-border-color: #C5FA53;
}

.btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: #CB0000;
    --bs-btn-border-color: #CB0000;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #A80000;
    --bs-btn-hover-border-color: #A80000;
    --bs-btn-focus-shadow-rgb: 203, 0, 0;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #8F0000;
    --bs-btn-active-border-color: #8F0000;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #CB0000;
    --bs-btn-disabled-border-color: #CB0000;
}

.btn-outline-primary {
    --bs-btn-color: #18443D;
    --bs-btn-border-color: #18443D;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #18443D;
    --bs-btn-hover-border-color: #18443D;
    --bs-btn-focus-shadow-rgb: 24, 68, 61;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #0F2B28;
    --bs-btn-active-border-color: #0F2B28;
    --bs-btn-disabled-color: #18443D;
    --bs-btn-disabled-border-color: #18443D;
}

.btn-outline-secondary {
    --bs-btn-color: #18443D;
    --bs-btn-border-color: #18443D;
    --bs-btn-hover-color: #18443D;
    --bs-btn-hover-bg: #C5FA53;
    --bs-btn-hover-border-color: #C5FA53;
    --bs-btn-focus-shadow-rgb: 197, 250, 83;
    --bs-btn-active-color: #18443D;
    --bs-btn-active-bg: #B2E93F;
    --bs-btn-active-border-color: #B2E93F;
    --bs-btn-disabled-color: #18443D;
    --bs-btn-disabled-border-color: #18443D;
}

.btn-outline-danger {
    --bs-btn-color: #CB0000;
    --bs-btn-border-color: #CB0000;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #CB0000;
    --bs-btn-hover-border-color: #CB0000;
    --bs-btn-focus-shadow-rgb: 203, 0, 0;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #A80000;
    --bs-btn-active-border-color: #A80000;
    --bs-btn-disabled-color: #CB0000;
    --bs-btn-disabled-border-color: #CB0000;
}

.fa::before, .fa-regular::before, .far::before {
    font-family: "FontAwesome", "FontAwesomeAS4";
}

@media (min-width: 1400px) {
    .checkout-steps__mobile, .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xs, .container-xxl {
        max-width: 1380px;
    }
}

@media (min-width: 1200px) {
    .page-product .product__container {
        gap: 2rem;
        grid-template-columns: 50% minmax(0, 1fr);
    }
}

#index .breadcrumb__wrapper {
    display: none;
}

.header {
    position: relative;
}

/*a {
    color: #252525;
}*/

a.btn-primary {
    color: #C5FA53;
}

a.btn-primary:hover {
    color: #18443D;
}

.elementor-button-primary .elementor-button {
    background: #C5FA53;
    border-color: #C5FA53;
    color: #18443D !important;
}

/* ==========================================================================
   Product miniature (catalog listing card) — matches legacy child-alysum design
   ========================================================================== */

.product-miniature__inner {
    background-color: #F8F8F8;
    border-radius: 10px;
}

.product-miniature__top {
    padding: 15px 15px 0;
}

.product-miniature__image-container {
    aspect-ratio: 1 / 1;
}

.product-miniature__image {
    mix-blend-mode: darken;
}

.product-miniature__bottom {
    padding: 5px 10px 10px;
}

/* Flags */
.product-miniature .product-flags.js-product-flags,
#mobile-flags .product-flags.js-product-flags {
    position: absolute;
    top: 10px;
    right: 10px;
    left: auto;
    width: auto;
    padding: 0;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
}

.product-flags .product-flag {
    background: #C5FA53;
    color: #18443D;
    font-family: 'Inter', 'Lato', Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 5px;
    padding: 4px 10px 2px;
}

.product-flags .product-flag.discount,
.product-flags .product-flag.on-sale {
    background: #CB0000;
    color: #fff;
}

.product-flags .product-flag.out_of_stock {
    background: #333333;
    color: #fff;
}

.product-flags .product-flag.new {
    background: #18443D;
    color: #C5FA53;
}

.product-flags .product-flag.bestseller {
    background: #7F59BD;
    color: #fff;
    font-weight: 400;
}

/* Promo countdown pill (li.countdown.discount, inner markup injected by JS) */
.product-flags .countdown.discount {
    background: #CB0000;
    color: #fff;
    font-family: 'Inter', 'Lato', Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 5px;
    padding: 4px 10px 2px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.product-flags .countdown.discount > div {
    display: flex;
    align-items: baseline;
    margin: 0 3px 0 0;
}

.product-flags .countdown.discount > div:last-child {
    margin-right: 0;
}

.product-flags .countdown.discount span,
.product-flags .countdown.discount i {
    color: #fff;
    font-style: normal;
    font-size: 12px;
    font-weight: 700;
    text-transform: lowercase;
}

/* Product page: flags row above the title (desktop) */
.product-flags-header .product-flags.js-product-flags {
    position: static;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    width: auto;
    padding: 0;
    margin-bottom: 15px;
}

@media (max-width: 992px) {
    .product-flags-header {
        display: none;
    }
}

/* Product page: flags overlaid on the image (mobile only) */
#mobile-flags {
    display: none;
}

.product__no-image {
    position: relative;
}

@media (max-width: 992px) {
    #mobile-flags {
        display: block;
    }
}

/* CBD % / price-per-gram pills */
.cbd_feature {
    width: 100%;
    height: fit-content;
    min-height: 23px;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    justify-content: center;
    align-items: center;
    margin-top: 10px;
}

.cbd_feature span {
    font-family: "Rubik", sans-serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    background: #C5FA53;
    border-radius: 3px;
    padding: 5px 6px;
    color: #000;
}

.cbd_feature span.price_per_gram {
    background: #E7E8E8;
}

@media (max-width: 768px) {
    .cbd_feature span {
        font-size: 11px;
    }
}

/* Title */
.product-miniature__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 44px;
    margin-top: 5px;
    font-family: "Rubik", sans-serif;
    font-size: 18px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: -0.5px;
    text-align: center;
    text-transform: capitalize;
    color: #252525;
}

/* Starting at / price / add-to-cart row */
.product-miniature__prices {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 2px;
    margin-top: 3px;
}

.starting_at {
    display: flex;
    align-items: center;
    width: 100%;
    margin: 0;
    font-family: "Rubik", sans-serif;
    font-size: 11px;
    font-weight: 400;
    color: #626262;
}

.starting_at::before,
.starting_at::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #bfbfbf;
}

.starting_at::before {
    margin-right: 5px;
}

.starting_at::after {
    margin-left: 5px;
}

.starting_at span {
    white-space: nowrap;
}

.product-miniature__price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
}

.product-miniature__price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-family: "Rubik", sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #000;
}

.product-miniature__discount-price {
    display: contents;
}

.product-miniature__regular-price {
    order: -1;
    font-size: 15px;
    font-weight: 400;
    color: #666666;
    text-decoration: line-through;
}

@media (max-width: 992px) {
    .product-miniature__regular-price {
        font-size: 12px;
    }
}

.product-miniature__price-row .product-miniature__actions {
    flex-shrink: 0;
    margin-top: 0;
}

.product-miniature__add {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    background: #C5FA53;
    border: none;
    border-radius: 8px;
    color: #18443D;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.product-miniature__add:hover {
    background: #b2e93f;
}

.product-miniature__add-text {
    display: none;
}

/* ==========================================================================
   Combination picker modal (opened from a product-miniature "see-details")
   ========================================================================== */

body.combinations-modal-active {
    overflow-y: hidden;
}

#modalCombinationProductOverlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 10000000000;
    display: none;
}

#modalCombinationProductOverlay.active {
    display: block;
}

#modalCombinationProduct {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #fff;
    padding: 10px;
    border-radius: 5px;
    z-index: 10000000001;
    display: none;
    width: 580px;
    max-width: 90%;
}

#modalCombinationProduct.active {
    display: block;
}

#modalCombinationProduct .mobile-selector {
    display: block;
    width: 100%;
    padding: 5px 0;
    margin-bottom: 10px;
}

#modalCombinationProduct .mobile-selector li {
    display: flex;
    cursor: pointer;
    align-content: center;
    justify-content: space-between;
    padding: 15px 0;
    color: #000;
    font-size: 16px;
    border-bottom: 1px solid #ddd;
}

#modalCombinationProduct .mobile-selector li .price-box {
    display: flex;
}

#modalCombinationProduct .mobile-selector li .price-box .original_price {
    color: #CB0000;
    text-decoration: line-through;
    font-weight: normal;
}

#modalCombinationProduct .mobile-selector li .price-box .radio-box {
    width: 20px;
    height: 20px;
    border: 1px solid #ddd;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 10px;
}

#modalCombinationProduct .mobile-selector li.selected {
    color: #18443D;
    font-weight: 600;
}

#modalCombinationProduct .mobile-selector li.selected .price-box .radio-box {
    background-color: #18443D;
    border-color: #18443D;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><polyline points='20 6 9 17 4 12' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 20px 18px;
}

#modalCombinationProduct .modal-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100% !important;
    position: relative;
}

#modalCombinationProduct button.close-modal {
    background: transparent;
    color: #000;
    position: absolute;
    top: 10px;
    right: 10px;
    border: none;
    padding: 0;
    cursor: pointer;
    z-index: 1002;
}

#modalCombinationProduct button.close-modal .material-icons {
    font-size: 18px;
}

#modalCombinationProduct .product-combination-image img {
    max-width: 150px;
    height: auto;
}

#modalCombinationProduct .product-combination-name,
#modalCombinationProduct .product-combination-name-mobile {
    width: 100%;
    font-size: 20px;
    font-weight: 600;
    text-transform: capitalize;
    color: #000;
    text-align: left;
    font-family: "Rubik", sans-serif;
    margin-bottom: 10px;
}

#modalCombinationProduct .product-combination-name-mobile {
    display: none;
    text-transform: none;
    text-align: center;
}

#modalCombinationProduct select {
    display: none;
    width: 100%;
    padding: 15px 5px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 16px;
    margin-bottom: 10px;
}

#modalCombinationProduct form {
    width: 100%;
}

#modalCombinationProduct form button {
    background-color: #C5FA53;
    width: 100%;
    display: block;
    border: none;
    padding: 10px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
    color: #18443D;
}

#modalCombinationProduct form button.disabled {
    background-color: #ccc;
    cursor: not-allowed;
}

@media (max-width: 768px) {
    #modalCombinationProduct {
        width: 100%;
        bottom: 0;
        top: unset;
        left: unset;
        max-width: unset;
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
        display: block;
        transform: translateY(100%);
        transition: transform 200ms ease-out;
    }

    #modalCombinationProduct .modal-body {
        padding-top: 10px;
    }

    #modalCombinationProduct.active {
        transform: translateY(0);
    }

    #modalCombinationProduct.active .close-modal {
        display: none;
    }

    #modalCombinationProduct.active select {
        display: none;
    }

    #modalCombinationProduct.active .product-combination-image,
    #modalCombinationProduct.active .product-combination-name {
        display: none;
    }

    #modalCombinationProduct.active .product-combination-name-mobile {
        display: block;
    }
}

/* ==========================================================================
   Product page — matches legacy child-alysum design
   Values verified against the live old site's *computed* styles (not just
   source CSS, since old/#product rules and old/V3/product.css disagreed in
   a few places — the computed values below are what actually renders).
   Each block below is annotated with the old selector it replicates.
   ========================================================================== */

/* Old: #product h1 (custom.css, 40px) is overridden by product.sass's plain
   `h1` rule (loads after custom.css on the old site → wins the cascade).
   Live computed value: Geologica / 600 / 50px desktop / 27px mobile / #252525. */
.page-product h1.product__name {
    font-family: "Geologica", sans-serif;
    font-weight: 600;
    text-transform: capitalize;
    font-size: 50px;
    line-height: 1;
    color: #252525;
    margin-top: 0;
    margin-bottom: 10px;
}

@media (max-width: 767px) {
    .page-product h1.product__name {
        font-size: 27px;
    }
}

.product__variants + .product__prices {
    margin-top: 20px;
}

.product__additional-info .freeshipping_from {
    display: flex;
    gap: 10px;
    justify-content: start;
    align-items: center;
    font-family: Inter, sans-serif;
    color: #000000;
    font-size: 12px;
    font-weight: 400;
}

.product__additional-info #shipping_today_container {
    display: flex;
    gap: 10px;
    justify-content: start;
    align-items: center;
    font-family: Inter, sans-serif;
    color: #000000;
    font-size: 12px;
    font-weight: 400;
}

.product__additional-info #shipping_today_container.hidden {
    display: none;
}

.page-product .product__additional-info {
    gap: 0;
}

/* Old: .product-prices.price is a flex ROW (current price + crossed-out regular
   price sit side by side), not the stacked column PS9 uses by default. Wrap
   tax-infos to its own line so it doesn't get squeezed into that row too. */
.product__prices-block {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.product__prices-block .product__tax-infos {
    flex-basis: 100%;
}

/* Old: the visible price text is <span class="normal-price"> (product.sass),
   not the outer .product-price wrapper — Lato / 900 / 30px / #CB0000 (red). */
.product__prices .product__price {
    font-family: "Lato", sans-serif;
    font-size: 30px;
    font-weight: 900;
    color: #CB0000;
}

/* Old: .product-discount .regular-price */
.product__prices .product__regular-price {
    font-size: 16px;
    font-weight: 400;
    color: #A4A4A4;
}

.product__prices .product__discount-percentage,
.product__prices .product__discount-amount {
    font-size: 14px;
}

.product__prices .product__tax-infos {
    font-size: 12px;
    color: #9b9b9b;
}

/* Old: .product-features-flags — an absolute overlay pinned to the bottom of the
   main product image (not a block sitting below the gallery). Live-verified:
   position:absolute inside the image's positioned ancestor, bottom:25px,
   full width, centered. */
.product__carousel {
    position: relative;
}

.product__carousel .carousel-inner {
    background: rgba(185, 185, 185, .1019607843);
}

.product__carousel .carousel-inner img {
    mix-blend-mode: darken;
}

.product-feature-pills {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 25px;
    z-index: 10;
    width: 100%;
    padding: 0 1rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    pointer-events: none;
}

.product-feature-pills__item {
    pointer-events: auto;
}

.product-feature-pills__item {
    font-family: "Rubik", sans-serif;
    font-size: 16px;
    font-weight: 500;
    background: #C5FA53;
    color: #000;
    border-radius: 5px;
    padding: 5px 12px;
}

@media (max-width: 767px) {
    .product-feature-pills__item {
        font-size: 14px;
    }
}

/* Weight / combination selector — Old: .product-variants .control-label / .variant-card
   (live-verified: card is a flex ROW with space-between — name left, price right —
   not the centered column layout used for the miniature's "see-details" grid). */
.product-variant__legend {
    font-family: "Rubik", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #18443D;
    text-transform: capitalize;
    letter-spacing: 0.5px;
    margin-bottom: 18px;
}

.product-variant__radios {
    display: grid;
    /* Without an explicit width, this grid — a block child of a flex column
       (.product__variants) sitting inside a <fieldset> — sizes to fit its
       content instead of stretching to the fieldset's full width, leaving a
       blank gap on the left and pushing the cards to the right. */
    width: 100%;
    /* auto-fit + minmax(0, 1fr) instead of a fixed repeat(3, 1fr): this theme's
       right-hand product column is narrower than the old site's (55/45 grid vs
       50/50), so a hard-coded 3-column track let cards overflow past the
       container — grid items default to min-width:auto, which ignores 1fr
       sizing when content (big Lato/900 name+price) is wider than its fair
       share. auto-fit lets the browser pick however many ~150px columns
       actually fit, and minmax(0, ...) allows tracks to shrink below content
       size instead of blowing out. */
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 15px;
}

@media (max-width: 991px) {
    .product-variant__radios {
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
        gap: 12px;
    }
}

.product-variant__radio {
    margin: 0;
    min-width: 0;
    padding-left: 0;
}

.product-variant__radio .form-check-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.product-variant__radio label {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    height: 100%;
    min-width: 0;
    padding: 10px;
    background: #fff;
    color: #000;
    border: 1px solid #18443D;
    border-radius: 10px;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.product-variant__radio--discounted label {
    border-color: #CB0000;
}

.product-variant__radio--discounted .product-variant__radio-name,
.product-variant__radio--discounted .product-variant__radio-price,
.product-variant__radio--discounted .product-variant__radio-unit-price {
    color: #CB0000;
}

.product-variant__radio--discounted .form-check-input:checked + label .product-variant__radio-name,
.product-variant__radio--discounted .form-check-input:checked + label .product-variant__radio-price,
.product-variant__radio--discounted .form-check-input:checked + label .product-variant__radio-unit-price {
    color: #fff;
}

.product-variant__radio-original-price {
    order: -1;
    font-size: 10px;
    line-height: 1;
    text-decoration: line-through;
    color: #252525;
}

.product-variant__radio .form-check-input:checked + label .product-variant__radio-original-price {
    color: #fff;
}

.product-variant__radio-badges {
    position: absolute;
    top: -10px;
    left: 4px;
    right: 4px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px;
    pointer-events: none;
}

.product-variant__radio-badge {
    padding: 5px 10px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 700;
    text-transform: capitalize;
    letter-spacing: 0.3px;
    line-height: 1;
    white-space: nowrap;
}

.product-variant__radio-badge--promo {
    background: #CB0000;
    color: #fff;
}

.product-variant__radio-badge--bestseller {
    background: #18443D;
    color: #fff;
}

.product-variant__radio .form-check-input:checked + label {
    background: #18443D;
    color: #fff;
}

.product-variant__radio .form-check-input:focus-visible + label {
    outline: 2px solid #18443D;
    outline-offset: 2px;
}

.product-variant__radio--oos label {
    opacity: 0.5;
    cursor: not-allowed;
    background: #EFEFEF;
}

.product-variant__radio-name {
    font-family: "Lato", sans-serif;
    font-weight: 900;
    font-size: 25px;
    line-height: 1;
}

.product-variant__radio-price-container {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.product-variant__radio-price {
    font-family: "Lato", sans-serif;
    font-weight: 900;
    font-size: 25px;
    line-height: 1;
    letter-spacing: -0.5px;
}

.product-variant__radio-unit-price {
    font-family: "Rubik", sans-serif;
    font-weight: 400;
    font-size: 12px;
    line-height: 1;
    margin-top: 4px;
}

@media (max-width: 991px) {
    .product-variant__radio-name,
    .product-variant__radio-price {
        font-size: 17px;
    }
}

/* Add to cart button — Old: .product-add-to-cart .btn-primary (uppercase pill,
   colors invert on hover) */
.product__add-to-cart-button {
    background: #C5FA53;
    border-color: #C5FA53;
    color: #18443D;
    font-family: "Rubik", sans-serif;
    font-size: 19px;
    font-weight: 500;
    text-transform: uppercase;
    border-radius: 10px;
    transition: all 0.3s ease-in-out;
}

.product__add-to-cart-button:hover,
.product__add-to-cart-button:focus {
    background: #18443D;
    border-color: #18443D;
    color: #C5FA53;
}

.product__add-to-cart-button .product__add-to-cart-price::before {
    content: " | ";
}

@media (max-width: 991px) {
    .product__add-to-cart-button {
        font-size: 15px;
    }
}

/* Tabs — Old: .tabs-container .nav-tabs .nav-link (wide rounded pill buttons,
   not an underlined browser-tab style) */
.product__tabs-nav {
    border-bottom: none;
    gap: 10px;
    flex-wrap: wrap;
}

.product__tabs-nav .nav-link {
    font-family: "Rubik", sans-serif;
    font-size: 16px;
    font-weight: 500;
    text-transform: uppercase;
    color: #18443D;
    background: #EFEFEF;
    border: none;
    border-radius: 10px;
    padding: 12px 32px;
    min-width: 285px;
    text-align: center;
}

.product__tabs-nav .nav-link.active {
    color: #fff;
    background: #18443D;
}

@media (max-width: 991px) {
    .product__tabs-nav .nav-link {
        width: 100%;
        min-width: 0;
    }
}

.product__tabs-content {
    padding-top: 20px;
}

/* Description content — Old: #description .product-description */
.product__description h2 {
    font-family: "Geologica", sans-serif;
    font-weight: 600;
    color: #18443D;
    font-size: 28px;
}

.product__description a, .product__description-short a {
    color: #18443d;
    font-weight: 600;
    text-decoration: underline;
}

.product__description h3,
.product__description h4 {
    font-family: "Geologica", sans-serif;
    font-weight: 600;
    color: #252525;
    font-size: 24px;
}

.product__description p,
.product__description-short {
    font-family: "Rubik", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.3;
    color: #252525;
}

.product__description ul,
.product__description li,
.product__description-short ul,
.product__description-short li {
    font-family: "Rubik", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.3;
    color: #18443D;
}

/* Gallery thumbnails — Old: #product-images-cont .product-images .thumb(.selected) */
.product__thumbnail-image {
    border: 1px solid #EFEFEF;
    border-radius: 10px;
}

.product__thumbnail.active .product__thumbnail-image {
    outline: none;
    border: 1px solid #18443D;
}

.product__image {
    mix-blend-mode: darken;
}

/* Data sheet / details list — Old: .product-features .feature_name / .feature_value */
.details__title {
    font-family: "Rubik", sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #000;
}

.details__right span {
    font-family: "Rubik", sans-serif;
    font-weight: 300;
    font-size: 14px;
    color: #000;
}

.page-product .product__bottom {
    display: block;
    max-width: 1200px;
    margin: 1.5rem auto 0;
}

#agWidget-1 {
    display: none !important;
}

#index #agWidget-1 {
    display: block;
}

.product__additional-info > * {
    margin-top: 10px;
}

.product-shipping-infos {
    background: #FFFFFF;
    border: none;
    padding: 0;
}

.product-shipping-infos-container {
    display: flex;
    gap: 60px;
    justify-content: space-between;
    align-items: center;
    color: #18443D;
    width: fit-content;
    border: 1px solid #18443D;
    padding: 20px 25px;
    border-radius: 10px;
    background: #F7F7F7;
}

@media (max-width: 992px) {
    .product-shipping-infos-container {
        gap: 20px;
        padding: 10px 15px;
    }
}

.product-shipping-infos-container .today,
.product-shipping-infos-container .delay {
    display: flex;
    justify-content: start;
    align-items: center;
    gap: 20px;
    font-family: "Inter", sans-serif;
    font-size: 12px;
    color: #18443D;
}

.product-shipping-infos-container .today .title,
.product-shipping-infos-container .delay .title {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.product-shipping-infos-container .today .title > span:last-child,
.product-shipping-infos-container .delay .title > span:last-child {
    font-weight: 600;
}

.product-rating {
    min-height: 20px;
    cursor: pointer;
}

.product-container .grc-widget-product-summary-stars::before {
    background: url("/themes/child_hummingbird/assets/img/stars_off.png") no-repeat;
    display: block;
    height: 48px;
    width: 272px;
    padding: 0;
    zoom: .5;
    content: " ";
}

.product-container .grc-widget-product-summary-stars::after {
    background: url("/themes/child_hummingbird/assets/img/stars_on.png") no-repeat;
    display: block;
    height: 48px;
    padding: 0;
    zoom: .5;
    content: " ";
}

/* Product miniature (category card) — same image-based star design as the
   PDP's .grc-widget-product-summary-stars, just smaller. Wrapped in a
   centered, min-height container so cards without reviews (empty widget)
   don't shift the layout compared to cards that have them. */
.product-miniature__reviews {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 28px;
    margin-top: 4px;
}

.product-miniature__reviews .grc-widget-category-stars-stars::before {
    background: url("/themes/child_hummingbird/assets/img/stars_off.png") no-repeat;
    display: block;
    height: 48px;
    width: 272px;
    padding: 0;
    zoom: .4;
    content: " ";
}

.product-miniature__reviews .grc-widget-category-stars-stars::after {
    background: url("/themes/child_hummingbird/assets/img/stars_on.png") no-repeat;
    display: block;
    height: 48px;
    padding: 0;
    zoom: .4;
    content: " ";
}

#product .module-products .section-title {
    text-align: center;
    font-family: "Geologica", sans-serif;
    line-height: 1;
    letter-spacing: normal;
    font-weight: 500;
    color: #18443d;
    text-decoration: none;
    font-size: 30px;
}

.category__header .page-title-section {
    font-size: 50px;
    line-height: 1;
    font-weight: 600;
    color: #252525;
    font-family: "Geologica", sans-serif;
}

.layout-left-column .products, .layout-right-column .products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 992px) {
    .layout-left-column .products, .layout-right-column .products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .adtm_menu .adtm_column_wrap {
        padding-top: 0;
    }

    .adtm_menu .adtm_column_wrap span.column_wrap_title {
        padding-top: 3px;
        padding-bottom: 3px;
    }

    .adtm_menu .adtm_column ul.adtm_elements li a, .adtm_menu .adtm_column ul.adtm_elements li span[data-href] {
        padding-top: 3px;
        padding-bottom: 3px;
    }
}

.adtm_menu .adtm_column ul.adtm_elements li a::before {
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    background-color: #C5FA53;
    -webkit-mask-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8.5%2017C8.5%2017.4045%208.74364%2017.7691%209.11732%2017.9239C9.49099%2018.0787%209.92111%2017.9931%2010.2071%2017.7071L15.2071%2012.7071C15.5976%2012.3166%2015.5976%2011.6834%2015.2071%2011.2929L10.2071%206.29289C9.92111%206.00689%209.49099%205.92134%209.11732%206.07612C8.74364%206.2309%208.5%206.59554%208.5%207V17Z%22%20fill%3D%22%23000000%22%2F%3E%3C%2Fsvg%3E');
    mask-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8.5%2017C8.5%2017.4045%208.74364%2017.7691%209.11732%2017.9239C9.49099%2018.0787%209.92111%2017.9931%2010.2071%2017.7071L15.2071%2012.7071C15.5976%2012.3166%2015.5976%2011.6834%2015.2071%2011.2929L10.2071%206.29289C9.92111%206.00689%209.49099%205.92134%209.11732%206.07612C8.74364%206.2309%208.5%206.59554%208.5%207V17Z%22%20fill%3D%22%23000000%22%2F%3E%3C%2Fsvg%3E');
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.breadcrumb-item {
    padding: 0;
    white-space: nowrap;
    line-height: 20px;
    color: #274F2E;
    margin: 0 3px;
    font-size: 10px;
    font-family: "Rubik", Helvetica, sans-serif;
    letter-spacing: -0.2px;
}

.breadcrumb {
    padding: 2px 0;
}

@media (min-width: 992px) {
    .breadcrumb__wrapper {
        margin-bottom: 1.5rem;
    }

    .adtm_menu .adtm_column {
        margin-bottom: 0.5rem;
    }
}

a.big-button, .big-button {
    background: #ffd045;
    color: #1a1a1a;
    border: none;
    display: inline-block;
    width: 100%;
    padding: 18px 33px;
    font-size: 16px;
    font-weight: 500;
    font-family: "Roboto Condensed", "Rubik", Helvetica, sans-serif;
    letter-spacing: 0;
}

.cart-grid__aside-wrapper {
    border: 1px solid #18443D;
    padding: 10px;
    border-radius: 10px;
}

.checkout-steps__step--current .checkout-steps__btn {
    /*color: var(--bs-secondary);*/
}

.checkout-steps__step--current .checkout-steps__number {
    background: var(--bs-secondary);
    color: var(--bs-primary);
}

.rich-text a {
    text-decoration: underline;
    color: #18443D;
}

humind-widget:not([template-name="product"]) ~ .dixa-messenger-namespace .dixa-messenger-wrapper {
    display: none;
}

humind-widget:not([template-name="product"]) ~ .dixa-messenger-namespace .dixa-messenger-wrapper.fromhumind {
    display: block;
    bottom: 80px !important;
    right: 10px !important;
}

#product #product_humind-questions {
    width: 100%;
}

@media (min-width: 992px) {
    .checkout-grid__aside-wrapper {
        z-index: 2;
    }
}