.menu-container .cdz-menu ul li{position: relative;color: #2B7A6A;}
.menu-container .groupmenu-drop{background-color: #BDF1E8;}
.menu-container .groupmenu-drop li a,.menu-container .groupmenu-drop li a:visited{color: #2B7A6A;}
.menu-container .cdz-main-menu .groupmenu-drop{box-shadow: none;}
.page-header .header-wrapper-bottom{background-color: transparent;}
.products-grid .product-item ul.cdz-product-labels{left: 0;right: 0;height: 100%;}
.cdz-products.product-style08.box-product .products-grid
.product-item ul.cdz-product-labels li.label-item.new{margin-left: 0;}
.cdz-products.product-style08.box-product
.products-grid .product-item ul.cdz-product-labels li.label-item.sale{left: auto;right: 0;max-width: 80px;}
.cdz-products.product-style08.box-product
.products-grid .product-item ul.cdz-product-labels li.label-item.bestseller{margin-left: 0;}
.cdz-products.product-style08.box-product
.products-grid .product-item ul.cdz-product-labels li.label-item.reduced-to-clear{top:auto;bottom: 0;left: 0;margin: 0 auto;}
.cdz-products.product-style08.box-product
.products-grid .product-item ul.cdz-product-labels li.label-item.bargain-basement{top:auto;bottom: 0;left: 0;margin: 0 auto;}
.cdz-products.product-style08.box-product .products-grid .product-item ul.cdz-product-labels li.label-item.reduced-to-clear .label-content{
    width: auto;
}
.cdz-products.product-style08.box-product .products-grid .product-item ul.cdz-product-labels li.label-item.bargain-basement .label-content{
    width: auto;
}
.cdz-best-seller-wrap.product-style08.box-product .products-grid .product-item ul.cdz-product-labels li.label-item.sale{
    right: -15px;
}
.products-grid .product-item ul.cdz-product-labels li.label-item.sale{left: auto;right: 0;max-width: 80px;}
.products-grid .product-item ul.cdz-product-labels li.label-item.bestseller,
.products-grid .product-item ul.cdz-product-labels li.label-item.new{margin-left: 15px;}
.products-grid .product-item ul.cdz-product-labels li.label-item.reduced-to-clear{top: auto;right: 0;left: 0;bottom: 0;margin: 0;}
.products-grid .product-item ul.cdz-product-labels li.label-item.bargain-basement{top: auto;right: 0;left: 0;bottom: 0;margin: 0;}
.products-grid .product-items .product-item.incart{border: 2px solid orange !important}
.products-list .product-items .product-item.incart{border: 2px solid orange !important}
.products-list .product-item-details{min-height: 120px;}
.products-list .product-item-name{font-size: 1.1em;}
.products-list .product-item ul.cdz-product-labels{top: 45px;}
.products-list .product-item ul.cdz-product-labels li.label-item.reduced-to-clear{top: 51px;bottom: auto;}
.products-list .product-item ul.cdz-product-labels li.label-item.bargain-basement{top: 51px;bottom: auto;}
.products-list .product-item-details .product-item-col_1{width: auto;margin-right: 10px;}
.products-list .product-item .product-item-brand{text-align: left;padding-top: 0;clear: both;}
ul.cdz-product-labels li.label-item.bestseller{position: absolute;left: 0;}
ul.cdz-product-labels li.label-item.sale{left:auto;right: 0;}
ul.cdz-product-labels li.label-item.new{position: absolute;left: 0;}
.product.media ul.cdz-product-labels{right: 0;height: 100%;left: 0;z-index: initial;}
.product.media ul.cdz-product-labels li.label-item{
    z-index: 2;
}
/* PDP vegan/organic/etc. attribute icons sit inside product.info.media,
   under the full-height cdz-product-labels ribbon overlay above - without
   this the ribbon intercepts hover before it reaches the icons, so their
   title tooltip never fires. */
.product.media .product-attributes-logos{
    position: relative;
    z-index: 3;
}
ul.cdz-product-labels li.label-item.reduced-to-clear{
    top: auto;left: 0;margin: 0 auto;bottom: 10px; right: 0; max-width: 180px;
}
ul.cdz-product-labels li.label-item.bargain-basement{
    top: auto;left: 0;margin: 0 auto;bottom: 10px; right: 0; max-width: 180px;
}
ul.cdz-product-labels li.label-item.reduced-to-clear .label-content{width: auto;}
ul.cdz-product-labels li.label-item.bargain-basement .label-content{width: auto;}
.post-content .post-description img{margin: 0;max-height: auto;}
.products-list .product-item ul.cdz-product-labels li.label-item.sale{max-width: 80px;right: 0;}
.products-list .cdz-product-wishlist{left: 0;}
.product-main-content #description-wrapper #product-description {
    border: none;
    padding: 10px;
    min-height: 90px;
}
.product.info.detailed:not(.without_tab) {
    background-color: none;
    border: none;
}
.groupmenu-drop li:first-child a {
    font-weight: 600;
    text-decoration: underline !important;
}
.minicart-wrapper .block-minicart .viewcart, .minicart-wrapper .block-minicart .viewcart:visited {
    text-align: center;
    color: #fff;
}
.minicart-wrapper .block-minicart .viewcart:hover{
    color:#007f6d;
}
.menu-link.level-2:hover,.menu-link.level-3:hover{
    text-decoration: underline !important;
}
.products-grid .product-item .product-item-name{min-height: 52px;overflow: hidden;}
.catalog-product-view .media .full-view{display: none;}
#description-wrapper { padding: 0;}
.cdz_wapper-blog01 .blog-title a:hover {color: #007f6d;}
.cart.table-wrapper .col.qty .qty-minus,.cart.table-wrapper .col.qty .qty-plus{
    margin-top: -7px;
}
.cart.table-wrapper .col.qty .btn-qty{
    height: 36px;
    line-height: 36px;
}
.box-tocart .control .qty-minus:hover .btn-qty, .box-tocart .control .qty-plus:hover .btn-qty{
    text-decoration: none;
}

.cart.table-wrapper .actions-toolbar > .cdz-product-wishlist{
    position: absolute;
    left: auto;
    right: 25px;
    display: inline-block;
    top: 0;
}
.add-to-favourites.cdz-product-wishlist {
    top: 0;
    left: auto;
    right: 100px;
}
.catalog-product-view ul.cdz-product-labels .label-item.reduced-to-clear {
    position: relative;
    top: 70%;
}
.catalog-product-view ul.cdz-product-labels .label-item.bargain-basement {
    position: relative;
    top: 70%;
}
.block-search input[type="text"]{
    font-size:15px;
}
.related-upsell-crossell,.products-grid.products-related{padding:10px;}
.brand-search {
    margin-top: 10px;
}
.brand-search .block-content {
    padding: 15px 5px !important;
}
.brand-search .block-title{
    padding: 7px 10px !important
}
.brand-search .list-wrap {
    position: absolute;
    z-index: 10;
    width: 200px;
    margin: 0 auto;
    left: -14px;
}
.cart.item .stock-status{clear: both;text-align: right;}
.post-view .item.post-categories a, a.nextprev-link.next-link{margin: 4px;line-height: 2.5em;}
@media(min-width: 1025px) {
    .header-main-menu .menu-container{display: none !important;}
    .header-wrapper-content.sticky-menu.active .header-wrapper-bottom{background-color: transparent;}
    .header-wrapper-content.sticky-menu.active{box-shadow: none;}

}
@media (min-width:768px) and (max-width: 1024px){
    .oe-moto{
        position: absolute;
        top: 50%;
        left: 15%;
    }
    .products-grid .product-items:not(.owl-carousel) > .product-item,
    .products-grid .mobile_2 .product-items:not(.owl-carousel) > .product-item,
    .products-grid .tablet_2 .product-items:not(.owl-carousel) > .product-item{width: 33%;float: none;}
}
@media(max-width: 1024px){
    .page-header .header.links > li{display: block;}
    .cdz-main-menu.left-navigation{display: none !important;}
    .slideshow-wrapper .col-sm-20,.header-main-menu .menu-container .block-static-block.widget{width: 100%;}
    .header-main-menu .nav-sections{width: calc(100% - 54px) !important;}
    .slide-caption .slide-text{display: block;}
    .oe-moto{
        position: absolute;
    }
    .products-grid .product-item .product-item-info .cdz-hover-section{position: relative;}
    .page-footer .showhide {
        visibility: visible;
        overflow: visible;
        height: auto;
        opacity: 1;
    }
    .breadcrumbs {display: block;}
}
@media(max-width: 767px){
    .oe-moto{position: relative;}
    .minicart-wrapper .ui-dialog .block-minicart{border: 1px solid #007f6d;}
}
@media(max-width: 639px){
    .products-list .product-item-photo .product-image-container{
        width: 75px !important;
    }
    .products-list .product-item-photo{padding: 0 0px 10px 0;}
}
@media(max-width: 480px){
    .products-list .product-item ul.cdz-product-labels{
        top: 70px;
        left: 0;
    }
    .products-list .product-item-details{min-height: 160px;}

    .slide-caption {
        top: 0;
        padding: 10px;
        position: initial;
        background-color: #585858;
    }
    .slide-caption .slide-text{font-size: 12px;margin: 5px auto;}

    .slide-caption .slide-title span {
        font-size: 14px;
        padding: 0;
    }
    .cdz-slideshow .owl-carousel.owl-theme .owl-dots{
        left: 38%;
        bottom: -21px;
    }
    .slide-caption .slide-title{margin-bottom: 5px;}
    .products-grid .product-item .product-item-name{height: 65px;overflow: hidden;}
    .value.col-sm-12.extra-description{margin-top: 10px;}
    .value.col-sm-12.extra-description::before {
        content: 'More details';
        clear: both;
        display: block;
        color: #007f6d;
    }
    .post-content .post-description img{width:100%;max-height: 125px;}
    .cart.table-wrapper .col.qty .qty-plus{margin-top:-1px;}
}
@media(min-width: 768px){
    .product.media ul.cdz-product-labels{
        right: 0;
        height: 100%;
    }
    ul.cdz-product-labels li.label-item.sale{left:auto;right: 0;}
    ul.cdz-product-labels li.label-item.new{position: absolute;left: 0;}
    .slide-caption{max-width: 430px;left: 11%;}

}
@media(min-width: 768px) and (max-width:1024px){
    .catalog-category-view  .columns .column.main{width: 68%;flex-basis: 68%;float: right;}
    .catalog-category-view  .columns .sidebar-main
    {flex-basis: 30%;float: left;width: 30%;order: 0; margin-right:2%;}
    .page-layout-2columns-right .column.main{width: 68%;flex-basis: 68%;margin-right: 10px;order:0}
    .page-layout-2columns-right .sidebar-additional{flex-basis: 30%;float: left;width: 30%;order: 0; margin-right:2%;}
    .products-grid .product-items:not(.owl-carousel),
    .products-grid .tablet_2 .product-items:not(.owl-carousel)
    {margin-left: 0;margin-right: 0;}
    .catalog-product-view .product.media{width: 40% !important;float: left;}
    .catalog-product-view .product-info-main{width: 58% !important;float: right;}
    .brand-search{margin-bottom: 10px;}
}
.product-cart-label ul.cdz-product-labels {
    position: relative;
    padding: 0px 15px;
}
.product-cart-label ul.cdz-product-labels li.label-item {
    position: relative;
    font-size: 12px;
    padding: 10px 20px;
}

.brand-logo .brand-img {
    width: 10%;
    float: left;
    margin: .5%;
}

@media(max-width: 1024px){
    .brand-logo .brand-img {
        width: 23%;
        float: left;
        margin: 1%;
    }
}
.cart.table-wrapper .actions-toolbar{
    bottom: 25px;
    right: 40px;
}

#ca_opt_out_marketing_label {
    color: #007f6d;
    padding: 0;
    text-decoration: none;
    background: none;
    border: 0;
    display: inline;
    border-radius: 0;
    font: 400 14px / 1.42857143 "Open Sans", sans-serif;
}

#ca_opt_out_marketing_label:hover {
    cursor: pointer;
}

.product-attributes-logos-bottom ul {
    margin: 0;
    padding: 0;
}

.product-attributes-logos-bottom ul li {
    display: flex;
    align-items: center;
    flex-direction: row;
}
.product-attributes-logos-bottom ul li img {
    padding-right: 15px;
}

input[type="checkbox"].checkout-agreements-hidden-checkbox{
    visibility: hidden;
    width: 0;
    height: 0;
    clear: both;
    content: '';
    display: inline-block;
    position: absolute;
    overflow: hidden;
}
.checkout-agreement button.action-show{
    display: contents;
}
#deposit-block-pdp{
    padding-top: 50px;
    clear: both;
    max-width: 100px;
}

#deposit-block-pdp .deposit-pdp-price {
    padding-bottom: 10px;
    font-size: 1.4em;
    color: #000;
}
#deposit-block-pdp .deposit-pdp-price .price{
    color: #000;
}

#deposit-block-pdp .deposit-pdp-image {
    padding-bottom: 10px;
}

#deposit-block-pdp .deposit-pdp-link {
    font-size: 1.4em;
    color: #777777;
    text-align: center;
}

.cart-totals .deposit_fee .mark,
.opc-block-summary .table-totals .deposit_fee .mark,
.cart-totals .deposit_fee .amount,
.opc-block-summary .table-totals .deposit_fee .amount{
    border-top: 1px solid #dbdbdb;
    border-bottom: 1px solid #dbdbdb;
}

/* Pagination box fix */
.limiter-options {
    min-width: 70px;
    width: auto;
}

/* Make phone and email links look like regular text */
.header-wrapper-center-top .top-phone a,
.header-wrapper-center-top .top-email a {
    padding-left: 10px !important;
    color: #000 !important;
    text-decoration: none !important;
    font-weight: bold !important;
    font-size: 19px !important;
    line-height: 19px !important;
    font-family: 'TestFoundersGrotesk', sans-serif !important;
}

.header-wrapper-center-top .top-phone a:hover,
.header-wrapper-center-top .top-email a:hover {
    color: #000 !important;
    text-decoration: none !important;
}

/* Category page - reduce vertical white space (desktop) */
#maincontent {
    padding-top: 5px;
}

#page-title-heading {
    margin-bottom: 0;
}

.category-description {
    padding-bottom: 0;
    margin-bottom: 0;
}

.breadcrumbs > ul:nth-child(1) {
    padding-top: 5px;
}

.category-description > div:nth-child(1) > div:nth-child(1) {
    padding-bottom: 0;
    margin-bottom: 0;
}

/* Pre-xmas 2026: more horizontal breathing room between grid tiles */
.products-grid .product-items:not(.owl-carousel) > .product-item {
    padding-left: 16px;
    padding-right: 16px;
}

/* Pre-xmas 2026: PROMO overlay background colour */
ul.cdz-product-labels li.label-item.sale {
    background-color: #f15b47 !important;
}
/* Pip 2026-10-30: promo overlay sits flush against the tile edge (right:0,
   inheriting top:0 from the base theme rule) with nothing to beat it -
   give it a small inset from both edges instead. */
.products-grid .product-item ul.cdz-product-labels li.label-item.sale {
    right: 8px !important;
    top: 8px !important;
}
/* Pip 2026-10-30: chilled/frozen icon also sits flush against the tile
   edge (bottom:0;right:0;padding:0, base rule in _listings.less). Pip
   asked for padding plus right-alignment with the favourites heart icon.
   Measured live on production: the heart's own right edge sits exactly
   10px left of the icon's current (flush) right edge, so that's the
   inset that actually lines the two up - confirmed via
   getBoundingClientRect() on .product-item-col-fav vs the icon, not
   guessed from an unrelated padding value. */
.catalog-category-view .product-items:not(.owl-carousel) li.chilled-product-label-listing-C,
.catalog-category-view .product-items:not(.owl-carousel) li.chilled-product-label-listing-F,
.catalogsearch-result-index .product-items:not(.owl-carousel) li.chilled-product-label-listing-C,
.catalogsearch-result-index .product-items:not(.owl-carousel) li.chilled-product-label-listing-F,
.cms-home .product-items li.chilled-product-label-listing-C,
.cms-home .product-items li.chilled-product-label-listing-F {
    right: 10px !important;
    bottom: 6px !important;
}

/* Pre-xmas 2026: rebuild list-view row layout for the current tile markup
   (product-item-columns/cdz-product-bottom didn't exist when the old
   products-list float rules were written, so list mode rendered scattered).
   Add to cart sits on the left, next to the image; icons are shrunk. */
.products-list .product-item .product-item-info {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.products-list .product-item .product-item-photo {
    float: none;
    margin: 0;
    flex: 0 0 140px;
}
.products-list .product-item .product-item-details {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    flex: 1;
    min-width: 0;
}
.products-list .product-item .product-item-details .product-item-name {
    flex: 0 0 100%;
}
.products-list .product-item .product-item-details .cdz-product-bottom {
    order: 1;
    flex: 0 0 160px;
    margin-right: 16px;
}
.products-list .product-item .product-item-details .product-item-columns {
    order: 2;
    display: flex;
    flex: 1;
    min-width: 0;
}
.products-list .product-item .product-item-details .product-item-columns > div {
    flex: 1;
    min-width: 0;
}
.products-list .product-item .product-item-details .product-attributes-logos {
    order: 3;
    flex: 0 0 100%;
}
.products-list .product-item .product-item-details .product-attributes-logos img {
    width: 22px;
    height: 22px;
}

/* Pre-xmas 2026: horizontal gap between grid tiles (listing/search).
   Item width is a fixed percentage set differently per breakpoint and
   column-count class (desktop_4, tablet_2, mobile_2...), so margin or a
   fixed px width reduction overflows the row for some of those - any
   change to .product-item's own box model risks overflow on one of them.
   Instead, .product-item-info (the actual card, already ~20px inset from
   .product-item's own edge via existing padding) gets the full visible
   border on all 4 sides, and .product-item itself gets a visible grey
   fill. Nothing about width/margin/border-box on .product-item changes,
   so there's no overflow risk on any breakpoint. */
.products-grid .product-items:not(.owl-carousel) > .product-item {
    background: #f8f8f8 !important;
    border: none !important;
    /* shrinks the gutter (native padding was 16px each side = ~32px
       combined between two tiles); box-sizing is border-box so this only
       reduces the inset, never the item's own width. */
    padding-left: 6px !important;
    padding-right: 6px !important;
    margin-bottom: 10px !important;
}
.products-grid .product-items:not(.owl-carousel) > .product-item .product-item-info {
    border: 2px solid #d9d9d9 !important;
    background: #ffffff !important;
}
/* Harry/Pip 2026-10-30: listing/search grid tiles don't align their
   add-to-cart row vertically - a plain card (no RRP, no attribute icons)
   has less content above the add-to-cart controls than a row-sibling with
   RRP/VAT/icons, so the controls land at different heights across the row.
   .product-item itself is already a flex child of .product-items and
   stretches to the row's tallest sibling, but .product-item-info (the
   white card) wasn't filling that full height, so its own content inside
   just sat at its natural height instead of being pinned to the bottom.
   Same fix as the owl-carousel widgets below: stretch the card to fill
   its flex-stretched parent, then pin the LAST element of
   .product-item-details to the bottom of it with margin-top:auto. That
   last element is .product-attributes-logos (the vegan/organic/etc. icon
   row), not .cdz-product-bottom (the qty/add-to-cart row) - confirmed via
   the actual DOM order, icons render AFTER the cart row. Putting
   margin-top:auto on .cdz-product-bottom instead (first attempt) pushed
   the cart row itself down to fill the gap above whatever came after it;
   when a product has no attribute icons that gap is 0, so the cart row on
   icon-less products sat lower than on products with icons - Pip reported
   this exact "cart/buttons down because no icons" mismatch 2026-10-30. */
.products-grid .product-items:not(.owl-carousel) > .product-item .product-item-info {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}
.products-grid .product-items:not(.owl-carousel) > .product-item .product-item-details {
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
}
.products-grid .product-items:not(.owl-carousel) > .product-item .product-attributes-logos {
    margin-top: auto !important;
}
/* Pip 2026-10-30, found live on Docker after the fix above: a product on
   promo shows an extra "was £X" struck-through line inside
   .oe-list-price (.oe-regular-price), which sits ABOVE .cdz-product-bottom,
   not after it - so the previous fix (pinning the LAST element) didn't
   cover it. That extra line is ~16px tall (measured: .oe-list-price is
   ~35px with it, ~19px without), pushing the cart row down on promo tiles
   relative to row-siblings with a plain price. Reserving that height
   whether or not the old price is actually present keeps the cart row
   starting at the same Y regardless of promo status. */
.products-grid .product-items:not(.owl-carousel) > .product-item .oe-list-price {
    min-height: 35px !important;
}
.products-grid .product-items.owl-carousel .product-item .oe-list-price {
    min-height: 35px !important;
}
/* Home page widgets (New Products, Best Seller, etc.) use the owl-carousel
   slider variant of the grid, excluded by :not(.owl-carousel) above and so
   missing the same gap/border treatment. Same fix, descendant selector
   since owl wraps each .product-item in its own .item-slider/.owl-item. */
.products-grid .product-items.owl-carousel .product-item {
    background: #f8f8f8 !important;
    border: none !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
}
.products-grid .product-items.owl-carousel .product-item .product-item-info {
    border: 2px solid #d9d9d9 !important;
    background: #ffffff !important;
}
/* Harry/Pip 2026-10-30: home widget (Bestsellers, New Products) tiles don't
   align at the bottom when one card has more content above the add-to-cart
   row than its row-siblings (e.g. a long brand name that wraps, or a promo
   label pushing content down). Owl Carousel doesn't equalise item heights
   on its own, so each .product-item-info is only as tall as its own
   content. Stretching the row and letting each card grow to match its
   tallest sibling, then pinning .cdz-product-bottom (the qty/add-to-cart
   row) to the bottom of that card with margin-top:auto, keeps the
   add-to-cart controls flush at the same height across the whole row
   regardless of how much text is above them. */
.products-grid .product-items.owl-carousel .item-slider {
    display: flex !important;
    align-items: stretch !important;
}
.products-grid .product-items.owl-carousel .product-item {
    display: flex !important;
}
.products-grid .product-items.owl-carousel .product-item .product-item-info {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}
.products-grid .product-items.owl-carousel .product-item .product-item-details {
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
}
.products-grid .product-items.owl-carousel .product-item .product-attributes-logos {
    margin-top: auto !important;
}
/* Client request: Favourites "in your cart" row should have a full box
   around it, not just the bottom line (styles-m.css only sets
   border-bottom on these td's). Table is border-collapse, and a <tr>
   itself can't reliably take a border in all browsers, so each side is
   applied per-cell instead - top/bottom on every cell, left on the first
   cell, right on the last, so the cells' collapsed borders read as one box. */
.favourites-list .favourites-table tr.incart td {
    border-top: 2px solid orange !important;
    border-bottom: 2px solid orange !important;
}
.favourites-list .favourites-table tr.incart td:first-child {
    border-left: 2px solid orange !important;
}
.favourites-list .favourites-table tr.incart td:last-child {
    border-right: 2px solid orange !important;
}

/* VAT stays under the heart icon as-is. RRP used to sit in the promo
   column's 2nd row, below the now-removed "X% Off" text, which lined it
   up with VAT. With that row gone, RRP floated up to row 1. Push it back
   down to row 2 to match VAT's height again. */
.products-grid .product-item-col-promo .oe-rrp-price {
    margin-top: 29px;
}
