/* Custom styles */
:root {
  --media-radius: 0.25rem;
  --grid-gutter: 1rem;
    /* --sidebar-pad: 10px;
  --sidebar-sep-pad: 10px; */
}

.block-head-b {
    --space-below: 1rem;
}

/* Hide the reCAPTCHA badge - only allowed if reCAPTCHA v3 is used and you're showing legal disclosure elsewhere */
.grecaptcha-badge {
    visibility: hidden;
}

.main {
  .elementor a {
    text-decoration: underline;
  }
}

.woocommerce .main {

  .price {
    font-weight: 700;
    letter-spacing: 0;
  }

  .sc-button,
  button.button, 
  .add_to_cart_button, 
  ul.products li.product .button,
  .widget_price_filter .price_slider_amount .button {
    border-radius: 4px;
    text-transform: none;
    font-family: var(--body-font);
    font-size: 1rem;
    letter-spacing: 0;
    padding: var(--btn-pad, 0 17px);
    height: var(--btn-height);
    font-weight: var(--btn-f-weight, 600);
    line-height: var(--btn-l-height, var(--btn-height));
  }

  .product form.cart .button {
    text-wrap: nowrap;
    padding-inline: 5px;
  }
}

/* Hide the reCAPTCHA badge - only allowed if reCAPTCHA v3 is used and you're showing legal disclosure elsewhere */
.grecaptcha-badge {
    visibility: hidden;
}

.nav-wrap {
	width: auto;
}

.widget-about .spc-social {
	margin-top: 5px;
}

/* Header */
.smart-head.smart-head-main {

  .vdlp-phone > a {
    color: #0e3d69;
  }

  .smart-head-row {
    border-radius: 4px;
  }

  /* Header image */
  .smart-head-row-3 .items {
    margin-top: 10px;
    padding: 0;

    .vdlp-header-image {
      img {
        width: 100%;
        height: auto;
        border-radius: 4px;
        object-fit: cover;
      }
    }
  }
}

/* Pricetable 'Abonnementen' */
.vdlp-pricetable-wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  margin: 0 0 2rem;
  color: #3c4552;

  .vdlp-pricetable-col {
    height: 100%;

    &.highlight {
      .vdlp-card {
        background: #f0faff;
        border-color: var(--c-main);
        box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
      }
    }
  }

  .vdlp-card {
    border: 1px solid #e9f6fe;
    border-radius: 4px;
    padding: 1.5rem;
    background: #fff;
    text-align: center;
    position: relative;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
    height: 100%;
    display: flex;
    flex-direction: column;

    .vdlp-card-top {
      display: flex;
      flex-direction: column;
      height: 100%;
      margin-bottom: 1rem;
      flex: 1 1 100%;

      .vdlp-card-top-inner {
        display: flex;
        flex-direction: column;
        height: 100%;
      }
    }

    .vdlp-card-bottom {
      display: flex;
      flex-direction: column;
      height: 100%;
      flex: 0 0 auto;
    }

    .vdlp-title {
      margin: 1rem auto 1rem;
      font-size: 1.375rem;
      min-height: 60px;
      /* border-bottom: 1px solid #e9f6fe;  */
    }

    .hr-spacer {
      height: 62px; /* select + margin */
      width: 100%;
      background-color: transparent;
      border: none;
    }

    .vdlp-price {
      font-size: 3rem;
      color: var(--c-main);
      font-weight: 700;
      margin-bottom: 0.5rem;
    }

    .vdlp-price-monthly {
      font-size: 2rem;
      color: var(--c-main);
      font-weight: bold;
      align-items: center;
      place-content: center;
      display: inline-grid;
      font: var(--typography-large-body-xs);
      grid-template-columns: auto auto;
      grid-template-areas: "euro rest";
      text-align: left;
      gap: 0.125rem;

      .price-euro {
        font-size: 2.125rem;
        font-weight: 700;
        grid-area: euro;
      }

      .price-rest {
        grid-area: rest;
        display: flex;
        flex-direction: column;
        font-size: 0.9rem;
        line-height: 1.1;
        gap: 0.125rem;

        .price-cents {
          font-size: 1rem;
          position: relative;
          text-align: left;
          font-weight: 700;
          color: var(--c-main);
        }

        .price-addon {
          display: block;
          font-size: 0.9rem;
          color: var(--e-global-color-text);
          padding-left: 0.125rem;
        }
      }
    }

    .vdlp-discount-info {
      font-size: 1.25rem;
      font-family: var(--body-font);
      font-weight: var(--btn-f-weight, 600);
      display: block;

      .discount-extra {
        font-size: 0.85rem;
        display: block;
        font-style: italic;
        font-weight: normal;
      }
    }

    .vdlp-cadeau-selector {
      margin-block: 1rem;
      text-align: left;
      font-weight: 700;

      select {
        margin-bottom: 1rem;
        width: 100%;
      }
    }

    .vdlp-image {
      img {
        max-width: 100%;
        margin: 1rem auto;
        height: auto;
      }
    }

    .vdlp-usps {
      text-align: left;
      list-style: none;
      padding: 0;
      margin: 1rem 0;

      li {
        padding-left: 1.2em;
        margin-bottom: 0.5em;
        position: relative;
        font-family: 1.125rem;

        &::before {
          content: "✓";
          position: absolute;
          left: 0;
          color: var(--c-main);
          font-weight: bold;
        }

        &.disabled {
          color: #aaa;
          text-decoration: line-through;

          &::before {
            content: "×";
            color: #ccc;
          }
        }
      }
    }

    .vdlp-btn {
      background: var(--c-main);
      color: #fff;
      padding: var(--btn-pad, 0 17px);
      border-radius: 6px;
      display: block;
      text-decoration: none;
      text-transform: none;
      font-family: var(--body-font);
      font-size: 1.125rem;
      margin: auto 0 0;
      height: var(--btn-height);
      font-weight: var(--btn-f-weight, 600);
      line-height: var(--btn-l-height, var(--btn-height));
      width: 100%;
      letter-spacing: 0;
    }

    .vdlp-product-text-extra,
    .vdlp-extra {
      margin-top: 1rem;
      font-style: italic;
      font-size: 0.9rem;
    }
  }
}

.cat-labels a:active, .cat-labels .category:active,
.cat-labels a:hover, .cat-labels .category:hover {
  color: var(--body-color);
}

/* Columnist card */
.vdlp-columnist-card {
  background-color: #E9F6FE;
  display: flex;
  padding: 1rem;
  flex-direction: column;
  gap: 12px;
  border-radius: 4px;
  height: 243px;

  .vdlp-columnist-avatar img {
    width: 82px;
    height: 82px;
    border-radius: 50%;
    object-fit: cover;
  }

  .vdlp-columnist-title {
    font-size: 14px;
    font-style: italic;
    font-weight: 700;
  }

  .vdlp-columnist-meta {
    font-size: 12px;
    font-style: normal;
    color: #0E3D69;
  }
}

/* vdlp-home-column-right */
.vdlp-home-column-right {
  .elementor-widget-wrap {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;

    .block-wrap {
      margin: 0;
    }

    .post-title {
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis;
      max-height: calc(1.4em * 3); 
    }

    img {
      margin: 0;
    }

    .textwidget img {
      height: 182px;
      object-fit: cover;
    }

    .feat-grid {
      --main-height: 243px !important;
    }

    .elementor-container {
      display: flex;
      align-items: flex-start;
      gap: 0.625rem;
      align-self: stretch;

      .elementor-column {
        border-radius: 4px;
        overflow: hidden;
        flex: 1 1 calc(50% - 6px); /* Fix for gap */        

        .post-title {
          font-size: 14px;
          font-family: var(--body-font);
          line-height: 1.5;
          font-style: italic;
          max-width: 100%;
          margin-top: 0;
        }

        .post-meta-items {
          color: #fff;
        }

        .content {
          padding: 1rem;
        }
      }
    }    
  }
}

.wp-post-image {
  border-radius: var(--media-radius);
}

.recent-posts-extended,
.widget_custom_html,
.smartmag-widget-grid {
  border-radius: var(--media-radius);
  border: var(--e-a-border);
  padding: 1rem;
  margin-bottom: 1rem;
}

.widget .rpwe-block {

  .rpwe-summary,
  h3 {
    font-size: 1rem !important;
  }

  h3 {
    font-weight: 700;
  }
}


.loop-carousel {

  .nav-dots {
    margin-top: 10px;
  }

  &.slick-dotted {
    margin-bottom: 10px;
  }
}

.feat-grid.slider {
  .post-title {
    max-width: 100%;
  }
}

.smart-head.smart-head-main .smart-head-bot {
  --head-h: auto;
}

.smart-head-mobile {
  .smart-head-bot {
    .inner {
      .items-center {
        flex-direction: column;
        flex-shrink: unset;
      }
    }
  }
}

@media (min-width: 940px) {
  .vdlp-header-mobile {
    display: none;
  }
}
