/* =========================================================
   RegenpijpDesign — complete page styling
   Loaded after the original CCV Shop styles.
   ========================================================= */

/* ---------- Base ---------- */

html {
    box-sizing: border-box;
    min-width: 320px;
}

body {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    overflow-x: auto;
}

#Main {
    box-sizing: border-box;
    width: 1076px;
    max-width: 100%;
    margin: 0 auto;
}

#Main *,
#Main *::before,
#Main *::after {
    box-sizing: border-box;
}

img {
    max-width: 100%;
    height: auto;
}

a {
    text-decoration: none;
}

p {
    margin-top: 0;
}

/* ---------- Header ---------- */

#Top {
    width: 100%;
    margin: 0;
    padding: 0;
}

#TopContent {
    width: 100%;
    max-width: 1076px;
    margin: 0 auto;
    padding: 0;
    cursor: pointer;
    line-height: 0;
    text-align: center;
}

#TopContent img {
    display: block;
    width: 100%;
    max-width: 1076px;
    height: auto;
    margin: 0 auto;
}

/* ---------- Main navigation ---------- */

#ButtonBar {
    width: 100%;
    margin: 0;
    padding: 0;
}

#ButtonBarContent {
    width: 100%;
    max-width: 1076px;
    margin: 0 auto;
    padding: 0;
    overflow: visible;
}

#Menu {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-wrap: nowrap;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

#Menu > li {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    list-style: none;
}

#Menu > li.Button {
    position: relative;
}

#Menu > li.ButtonActive {
    position: relative;
}

#Menu > li.ButtonSeperator {
    display: flex;
    align-items: stretch;
    width: auto;
    min-width: 1px;
}

#Menu .ButtonSeperator1,
#Menu .ButtonSeperator2 {
    display: block;
    width: 1px;
    height: 100%;
}

#Menu .Middle {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
}

#Menu .ButtonBarItem {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 9px;
    white-space: nowrap;
}

#Menu .ButtonBarMarginLeft,
#Menu .ButtonBarMarginRight {
    display: block;
}

/* ---------- Main columns ---------- */

#Container {
    display: grid;
    grid-template-columns: 202px minmax(0, 578px) 202px;
    column-gap: 47px;
    align-items: start;
    width: 100%;
    max-width: 1076px;
    margin: 0 auto;
    padding: 15px 0 0;
}

#Left,
#Right,
#Content {
    min-width: 0;
}

#Left {
    width: 202px;
}

#Content {
    width: 578px;
    min-height: 1px;
}

#Right {
    width: 202px;
}

/* ---------- Left / right windows ---------- */

.WindowTop {
    width: 100%;
    min-height: 28px;
    padding: 6px 8px;
    font-weight: bold;
    line-height: 1.2;
}

.Window {
    width: 100%;
    padding: 8px;
}

#Left .Window form {
    width: 100%;
    margin: 0;
}

#Left .Window form p {
    margin: 0 0 8px;
}

#UL_Login input[type="text"],
#UL_Login input[type="password"] {
    display: block;
    width: 100% !important;
    height: 30px;
    margin: 0 0 4px !important;
    padding: 5px 7px;
    font-size: 12px !important;
    line-height: 18px;
}

#UL_Login > div {
    display: flex;
    align-items: center;
    min-height: 25px;
}

#UL_Login > div:first-of-type {
    float: left;
}

#UL_Login > div:last-of-type {
    float: right;
}

#UL_Login::after {
    display: block;
    clear: both;
    content: "";
}

.HeightSpace {
    width: 100%;
    height: 15px;
    clear: both;
}

#Left .Banners,
#Right .Banners {
    width: 202px !important;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 0 5px !important;
    text-align: center;
    line-height: 0;
}

#Left .Banners img,
#Right .Banners img {
    display: block;
    width: 202px;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

/* ---------- Social block ---------- */

#Left > div[style*="text-align: center"] {
    box-sizing: border-box;
    max-width: 202px;
    margin-right: auto;
    margin-left: auto;
}

#nav-shadow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: auto;
    margin: 0 auto !important;
    padding: 0;
    list-style: none;
}

#nav-shadow li {
    display: block;
    margin: 0;
    padding: 0;
}

/* ---------- Main content ---------- */

.PageElement {
    width: 100%;
    margin: 0 0 15px;
    padding: 0;
}

.ContentWindow {
    width: 100%;
    margin: 0;
    padding: 0;
}

.ContentWindow h1,
.ContentWindow h2 {
    margin-top: 0;
}

.ContentWindow h1 {
    margin-bottom: 12px;
}

.ContentWindow h2 {
    margin-bottom: 10px;
}

.container-content {
    width: 100%;
    margin: 0;
    padding: 0;
}

.content-page-text {
    width: 100%;
    margin: 0;
    line-height: 1.55;
}

.content-page-text br {
    line-height: 1.55;
}

/* ---------- Top slider ---------- */

.newhomepage-nivoslider-container {
    width: 100%;
    max-width: 578px !important;
    margin: 0 auto !important;
    padding: 0;
    text-align: center;
}

#slider274461 {
    position: relative;
    display: flex !important;
    align-items: stretch;
    justify-content: center;
    width: 100% !important;
    max-width: 578px;
    height: auto !important;
    min-height: 136px;
    overflow: hidden;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

#slider274461 img {
    position: static !important;
    top: auto !important;
    left: auto !important;
    display: block !important;
    flex: 0 0 50%;
    width: 50% !important;
    max-width: 50%;
    height: auto !important;
    min-height: 0;
    margin: 0;
    object-fit: cover;
    opacity: 1 !important;
}

/*
 * The first two homepage images are intentionally kept visible
 * next to each other. The remaining slider images are hidden.
 */
#slider274461 img:nth-child(n + 3) {
    display: none !important;
}

#slider274461 .nivo-caption {
    display: none;
}

#slider274461 .nivo-directionNav {
    display: none !important;
}

#slider274461 .nivo-controlNav {
    display: none !important;
}

#slider274461 .nivo-slice,
#slider274461 .nivo-box {
    display: none !important;
}

/* ---------- Product catalogue ---------- */

.BlockWrapper {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px 8px;
    width: 100%;
    margin: 0;
    padding: 0;
}

.BlockWrapper > form {
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.Block_2_578 {
    width: 100%;
    margin: 0;
    padding: 0;
}

.Block {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
}

.Block_2_Block,
.Block_23_Block {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 100%;
}

.Block_2_Title {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 30px;
    margin: 0;
    padding: 5px 3px;
    text-align: center;
}

.Block_2_Title a {
    display: block;
    width: 100%;
    overflow-wrap: anywhere;
    line-height: 1.2;
    text-align: center;
}

.Block_2_Photo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 136px;
    margin: 0;
    padding: 5px 0;
    text-align: center;
}

.Block_2_Photo > a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.Block_2_Photo > a > span {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.Block_2_Photo img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 136px;
    margin: 0 auto;
}

.PriceBlock {
    width: 100%;
    margin: 0;
    padding: 5px 2px;
    text-align: center;
}

.Price {
    display: inline-block;
    white-space: nowrap;
    line-height: 1.2;
}

.currency_eur {
    white-space: nowrap;
}

.InfoButton {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 30px;
    margin: auto 0 0;
    padding: 5px 0 0;
    gap: 5px;
}

.Info,
.Order {
    display: block;
    float: none !important;
    margin: 0;
    padding: 0;
}

.InfoButton a.StandardButton,
.InfoButton .StandardButton {
    white-space: nowrap;
}

.InfoButton .StandardButtonLeft,
.InfoButton .StandardButtonRight {
    display: inline-block;
    vertical-align: middle;
}

/* ---------- Product buttons ---------- */

.StandardButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 3px 8px;
    line-height: 1;
    cursor: pointer;
}

a.Hand {
    cursor: pointer;
}

.InfoButton a {
    text-decoration: none;
}

/* ---------- Image preview ---------- */

#preview {
    position: absolute;
    z-index: 99999;
    display: none;
    margin: 0;
    padding: 5px;
    background: #fff;
    border: 1px solid #ccc;
    box-shadow: 0 3px 12px rgba(0, 0, 0, .22);
    line-height: 0;
}

#preview img {
    display: block;
    max-width: 500px;
    height: auto;
}

/* ---------- Twitter section ---------- */

#Content .PageElement:last-child {
    margin-bottom: 20px;
}

#Content .PageElement:last-child .ContentWindow {
    overflow: hidden;
}

#Content .PageElement:last-child .content-page-text {
    min-height: 80px;
}

/* ---------- Shopping cart ---------- */

#idSmallShoppingCart {
    width: 100%;
    padding: 8px;
}

.ShoppingCart {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}

.ShoppingCart td {
    padding: 8px 4px;
    text-align: center;
    vertical-align: middle;
}

.ShoppingCart a {
    display: block;
    line-height: 1.4;
}

/* ---------- Right column ---------- */

#Right .Window {
    width: 100%;
    min-height: 30px;
}

#Right .HeightSpace {
    height: 15px;
}

#Right .Banners + .HeightSpace {
    clear: both;
}

/* ---------- Bottom bar ---------- */

#BottomBar {
    width: 100%;
    margin-top: 20px;
    padding: 0;
}

#BottomBarContent {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
    max-width: 1076px;
    min-height: 35px;
    margin: 0 auto;
    padding: 8px 0;
}

.BottomColumn {
    flex: 1 1 30%;
    min-width: 0;
    min-height: 1px;
}

.BottomColumnSpacer {
    flex: 0 0 1px;
    min-height: 1px;
}

#Footer {
    flex: 1 0 100%;
    width: 100%;
    margin-top: 8px;
    padding: 0;
}

#FooterContent {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
    min-height: 28px;
    padding: 5px 0;
}

.BottomLineText {
    margin: 0;
    line-height: 1.4;
}

.BottomLineText img {
    display: inline-block;
    width: auto;
    height: auto;
    vertical-align: middle;
}

/* ---------- Iframe warning ---------- */

#IframeBar {
    display: none;
    position: relative;
    z-index: 99999;
    width: 100%;
    margin: 0;
    padding: 10px;
}

.IframeBarText {
    width: 100%;
    margin: 0 auto;
    line-height: 1.45;
}

/* ---------- Inline banner protection ---------- */

.Banners * {
    max-width: 100%;
}

/* ---------- Forms ---------- */

input,
select,
textarea,
button {
    max-width: 100%;
    font: inherit;
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
select,
textarea {
    box-sizing: border-box;
}

form {
    max-width: 100%;
}

/* ---------- Links / focus ---------- */

#Main a:focus {
    outline-offset: 2px;
}

#Menu a:focus,
#Content a:focus,
#Left a:focus,
#Right a:focus {
    outline-offset: 2px;
}

/* =========================================================
   Tablet
   ========================================================= */

@media (max-width: 1100px) {
    #Main {
        width: 100%;
        padding: 0 10px;
    }

    #Container {
        grid-template-columns: 202px minmax(0, 1fr) 202px;
        column-gap: 20px;
    }

    #Content {
        width: 100%;
    }

    .newhomepage-nivoslider-container {
        max-width: 100% !important;
    }

    #slider274461 {
        max-width: 100%;
    }

    #ButtonBarContent {
        overflow-x: auto;
    }

    #Menu {
        justify-content: flex-start;
        width: max-content;
        min-width: 100%;
    }
}

/* =========================================================
   Smaller tablet
   ========================================================= */

@media (max-width: 900px) {
    #Container {
        grid-template-columns: 180px minmax(0, 1fr) 180px;
        column-gap: 15px;
    }

    #Left,
    #Right {
        width: 180px;
    }

    #Left .Banners,
    #Right .Banners {
        width: 180px !important;
    }

    #Left .Banners img,
    #Right .Banners img {
        width: 180px;
    }

    .BlockWrapper {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 700px) {
    #Main {
        width: 100%;
        padding: 0;
    }

    #TopContent {
        width: 100%;
    }

    #TopContent img {
        width: 100%;
    }

    #ButtonBarContent {
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }

    #Menu {
        justify-content: flex-start;
        width: max-content;
        min-width: 100%;
    }

    #Menu .ButtonBarItem {
        padding-right: 8px;
        padding-left: 8px;
    }

    #Container {
        display: flex;
        flex-direction: column;
        width: 100%;
        margin: 0;
        padding: 12px;
    }

    #Content {
        order: 1;
        width: 100%;
    }

    #Left {
        order: 2;
        width: 100%;
    }

    #Right {
        order: 3;
        width: 100%;
    }

    #Left,
    #Right {
        margin-top: 15px;
    }

    #Left .Banners,
    #Right .Banners {
        width: 202px !important;
        max-width: 100%;
    }

    #Left .Banners img,
    #Right .Banners img {
        width: 202px;
        max-width: 100%;
    }

    .BlockWrapper {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 15px 10px;
    }

    .Block_2_Photo {
        min-height: 136px;
    }

    #BottomBarContent {
        flex-direction: column;
        align-items: stretch;
        padding-right: 12px;
        padding-left: 12px;
    }

    .BottomColumn,
    .BottomColumnSpacer {
        display: none;
    }

    #Footer {
        width: 100%;
    }

    #FooterContent {
        align-items: flex-start;
        justify-content: center;
        gap: 5px;
    }

    .BottomLineText {
        float: none !important;
        width: 100%;
        text-align: center;
    }
}

/* =========================================================
   Small mobile
   ========================================================= */

@media (max-width: 430px) {
    #Container {
        padding: 8px;
    }

    .BlockWrapper {
        grid-template-columns: 1fr 1fr;
        gap: 12px 7px;
    }

    .Block_2_Title {
        min-height: 34px;
    }

    .Block_2_Photo {
        min-height: 120px;
    }

    .Block_2_Photo img {
        max-height: 120px;
    }

    .InfoButton {
        flex-wrap: wrap;
        gap: 3px;
    }

    .InfoButton .Info,
    .InfoButton .Order {
        flex: 0 1 auto;
    }

    #slider274461 img {
        flex-basis: 50%;
        width: 50% !important;
        max-width: 50%;
    }
}