/*
 Theme Name:   Newsletters
 Theme URI:    picnic.app
 Text Domain: newsletters
 Description:  Picnic runner/fulfilment newsletters
 Author:       David Lieffijn
 Author URI:   picnic.app
 Version:      3.1.14.5
 License:
 License URI:
 Tags:

*/

* {
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Roboto', sans-serif;
}

a {
  text-decoration: none;
}

.container {
  width: 100%;
  padding: 0 20px;
  box-sizing: border-box;
}

.container.gray {
  background-color: #F7F5F2;
}

.wrapper {
  width: 100%;
  max-width: 500px;
  padding: 0 6px;
  margin: 0 auto;
  box-sizing: border-box;
}

.fixed-button {
  width: 50px;
	height: 50px;
	position: fixed;
	background-color: #FFFFFF;
	cursor: pointer;
	border-radius: 30px;
	text-align:center;
	-webkit-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.1);
	-moz-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.1);
	box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.1);
	transition: 0.5s;
  background-size: cover;
  background-position: center;
}

.fixed-button:hover {
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.3);
	-moz-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.3);
	box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.3);
}

.language-picker {
	top: 25px;
	right: 25px;
}

.language-picker.nl {
  background-image: url('library/images/nl.svg');
}

.language-picker.en {
  background-image: url('library/images/en.svg');
}

.logo {
  border-radius: 3px;
  display: block;
  width: 30px;
  margin: 0 10px;
}

.top {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 60px;
}

.top span {
  color: #818181;
  font-size: 12px;
}

.header-image {
  display: block;
  width: 100%;

}

.menu {
  height: 46px;
  border-radius: 15px;
  background-color: #FFFFFF;
  font-size: 16px;
  display: flex;
  padding: 3px;
  box-sizing: border-box;
  margin: 0 6px 30px 6px;
}

.menu .item {
  color: #262626;
  height: 39px;
  padding: 10px;
  box-sizing: border-box;
}

.menu .item.active {
  color: #FFFFFF;
  background-color: #CE332C;
  border-radius: 10px;
}

.menu .item.edition {
  flex-grow: 1;
  text-align: right;
  color: #B5B5B5;
}

.category {
  padding: 5px 7px;
  border-radius: 4px;
  display: inline-block;
  font-size: 13px;
  background-color: #B5B5B5;
  color: #343434;
  margin: 0 !important;
}

.article .post-info + h1 {
  margin-top: 10px;
}

.preview-title {
  color: #343434;
  font-size: 18px;
  margin: 0 0 6px 10px;
}

.article-preview {
  width: calc(100% - 10px);
  display: grid;
  grid-template-columns: 50% 50%;
  column-gap: 10px;
  row-gap: 10px;
  transform-origin: left top;
  padding-bottom: 60px;
}

.article-preview .item {
  width: 100%;
  height: 300px;
  background-color: #FFFFFF;
  border-radius: 6px;
  cursor: pointer;
  position: relative;
}

.article-preview .item .category {
  position: absolute;
  top: 6px;
  right: 6px;
}

.article-preview .item .image {
  height: 55%;
  width: 100%;
  background-color: #FFFFFF;
  border-radius: 6px 6px 0 0;
  display: block;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.article-preview .item .info {
  padding: 10px;
  height: 45%;
  box-sizing: border-box;
  overflow-y: hidden;
  position: relative;
}

.article-preview .item .info .title {
  display: block;
  font-size: 16px;
  color: #343434;
  margin-bottom: 4px;
}

.article-preview .item .info .description {
  font-size: 15px;
  color: #818181;
  text-overflow: ellipsis;
  max-height: 50px;
}

@media only screen and (max-width: 500px) {
  .article-preview .item .info .title {
    font-size: 15px;
    margin-bottom: 2px;
  }

  .article-preview .item .info .description {
    font-size: 14px;
  }
}

.article-preview .item .info .icons {
  position: absolute;
  display: flex;
  bottom: 10px;
  justify-content: space-between;
  width: calc(100% - 20px);
  box-sizing: border-box;
}

@media only screen and (max-width: 400px) {
  .article-preview .item .info {
    padding: 0 6px 6px 6px;
  }

  .article-preview .item .info .title {
    margin-top: 5px;
    font-size: 14px;
    margin-bottom: 0px;
  }

  .article-preview .item .info .description {
    font-size: 13px;
    line-height: 1;
  }

  .article-preview .item .info .icons {
    bottom: 6px;
    width: calc(100% - 12px);
  }
}

.article .post-info {
  display: flex;
}

.article .edit {
  margin: 2px 0 0 20px;
  display: block;
}

.article .edit .pencil {
  width: 20px;
  transition: 0.5s;
}

.article .edit:hover .pencil {
  transform: rotate(-20deg);
}

.article .edit:hover span {
  opacity: 100;
}

.article {
  max-width: 600px;
  margin: 0 auto;
  font-size: 18px;
  color: #343434;

}

.article h1 {
  font-size: 2em;
}

.article h2 {
  font-size: 1.1em;
}

.article p {
  line-height: 1.7;
}

.article * + h1, .article * + h2, .article * + h3, .article * + h4, .article * + h5, .article * + h6 {
  margin-top: 20px;
}

.article iframe {
  width: 600px;
  height: 338px;
}

.article * + * {
  margin-top: 10px;
}

.article ul, .article ol {
  line-height: 1.7;
  padding-left: 30px;
}

.article li {
  padding-left: 10px;
}

.article {
  padding: 60px 0;
}

.article a {
	color: #CE332C;
}

.article .wp-block-image {
  margin: 0 auto;
}

.article .wp-block-image .aligncenter {
  text-align: center;
}

.article figcaption {
  display: block;
  margin: 10px auto 0 auto;
  color: #818181;
  font-size: 16px;
}

.article * + .wp-block-image {
  margin-top: 20px;
}

.article .wp-block-image + p {
  margin-top: 20px;
}

.article .signature {
	display: inline-block;
}

.article blockquote {
  border-left: 4px solid #343434;
  padding: 0 0 5px 10px;

}

.article blockquote p {
  font-size: 0.9em;
}

.article blockquote cite {
  font-weight: bold;
  font-size: 0.8em;
  font-style: normal;
}

.back-to-top {
	bottom: 25px;
	right: 25px;
	opacity: 0;
}

.back-to-top .arrow {
	width: 25px;
	margin-top: 12px;
}

.page-not-found {
	text-align: center;
}

.page-not-found img {
	max-width: 300px;
	display: block;
	margin: 0 auto 30px auto;
}

.page-not-found p {
	font-size: 18px;
}

.wp-block-gallery { --wp--style--unstable-gallery-gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) ); gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )}

.wp-block-gallery {display: flex;gap: 0.5em;flex-wrap: wrap;align-items: center;}.wp-container-2 > * { margin: 0; }



.section-heading {
  background: #e3000b;
  color: #fff;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center;
  padding: 16px;
  margin: 16px 0;
}

.wrapper2{
  max-width: 640px;
  width: 100%;
  padding: 0 6px;
  margin: 0 auto;
  box-sizing: border-box;
  * {
    font-family: 'Source Sans Pro', sans-serif;
  }
}

.header2 {
  padding-bottom: 40px;
  & .date-logo-group {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;

    & .logo {
      width: 60px;
      height: 60px;
    }

    & span{
      font-size: 12px;
    }
  }

  & .title {
    font-size: 56px;
  }
}

.article-grid {
  display: grid;
  grid-template-areas:
    "main"
    "sub"
    "item1"
    "item2";
  gap: 16px;

  @media (min-width: 768px) {
    grid-template-columns: 1fr 2fr;
    grid-template-rows: auto auto auto;
    grid-template-areas:
      "main main"
      "sub  item1"
      "sub  item2";
  }

  & .article2 {
    position: relative;
    background-position: center;
    background-size: cover;
    background-color: transparent;
    background-repeat: no-repeat;
    min-height: 250px;
    @media (min-width: 768px) {
      min-height: 175px;
    }

    &::before {
      position: absolute;
      width: 100%;
      height: 100%;
      z-index: 1;
      opacity: 1;
      background-image: linear-gradient(180deg, transparent 10%, #00000095 130%);
      bottom: 0;
      left: 0;
      content: "";
    }

    .title {
      position: absolute;
      bottom: 12px;
      left: 12px;
      z-index: 3;
      font-weight: 600;
      color: #fff;
    }
  }

  & .main {
    grid-area: main;
    min-width: 100%;
    height: 350px;
  }

  & .sub {
    grid-area: sub;
    width: 100%;
    
    @media (min-width: 768px) {
      height: 100%;
      min-height: 350px;
      width: 300px;
    }
  }

  & .item:nth-of-type(3) {
    grid-area: item1;
  }

  & .item:nth-of-type(4) {
    grid-area: item2;
  }

  /* Optional extra items will auto-flow into new rows */
  & .item:nth-of-type(n+5) {
    grid-column: 1 / -1;
  }
}

.quick-links {
  .slick-dots {
    bottom: 0px !important;
    li button:before {
      font-size: 32px !important;
    }
  }

  & .item {
    display: flex;
    background: #fff;
    position: relative;
    padding: 12px;
    gap: 12px;
    min-height: 80px;
    
    img {
      background: #B5B5B5;
      width: 140px;
      height: 80px;
    }

    & .content {
      width: 65%;
    }

    & .title {
      font-weight: 600;
      font-size: 16px;
      color: #191a1a;
    }
    
    & .metadata {
      display: flex;
      gap: 12px;
      padding: 6px 0;
    }

    & .btn2 {
      position: absolute;
      bottom: 10px;
      right: 16px;
      margin: 0;
    }
  }
}

.video-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;

  a {
    flex: 1 1 100%;
    max-width: 100%;
    
    @media (min-width: 768px) {
      flex: 1 1 calc(33.33% - 12px);
      max-width: calc(33.33% - 12px);
    }
  }

  .video {
    width: 100%;
    min-height: 310px;
    position: relative;

    &::before {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      height: 40%;
      max-height: 80px;
      width: 100%;
      background-image: linear-gradient(to bottom, transparent 0, #00000060 130%);
      z-index: 1;
    }

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      position: absolute;
      top: 0;
      left: 0;
    }

    span {
      padding: 4px 6px;
      position: absolute;
      bottom: 6px;
      left: 6px;
      background: #e3000b;
      border-radius: 8px;
      font-size: 12px;
      color: #fff;
      font-weight: 600;
      z-index: 2;
    }
  }
}

.btn2 {
  font-style: normal;
  padding: 12px 16px;
  background: #e3000b;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  border-radius: 12px;
  display: inline-block;
  margin: 16px 0;
}

.footer2 {
  background: transparent;
  display: flex;
  gap: 40px;
  align-items: center;
  padding: 60px 32px;
  flex-direction: column;
  
  @media (min-width: 768px) {
    flex-direction: row;
  }

  & .image {
    flex: 1;
    text-align: center;
    img {
      border-radius: 200px;
      width: 250px;
      height: 250px;
      max-width: 100%;
      max-height: 100%;
      object-fit: cover;
    }
  }

  & .content {
    flex: 1;
    font-style: italic;
    
    p {
      line-height: normal;
    }

    img {
      width: 100%;
      max-width: 250px;
      max-height: 80px;
      object-fit: contain;
      object-position: 0 0;
    }
  }

  .icon {
    width: 24px;
    height: 24px;
    object-fit: contain;
    object-position: 0 0;
  }
}

.wrapper-central {
  box-sizing: border-box;
  max-width: 100vw;
  width: 100%;
  padding: 0 48px 32px 48px;
  margin: auto;
  
  @media (min-width: 1024px) {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 48px;
    padding: 0px 20px;
  }
  
  & > .page {
    min-width: 0;
    overflow: hidden;
    &.page1 {
      display: grid;
      gap: 12px;
      grid-template-rows: min-content min-content auto;
      .header2.section-heading {
        margin-bottom: 0;
      }
    }
  }
  
  .article2.headline {
    position: relative;
    display: inline-block;
    background-position: center;
    background-size: cover;
    background-color: transparent;
    background-repeat: no-repeat;
    min-height: 250px;
    width: 100%;
    height: 100%;
    
    &::before {
      position: absolute;
      width: 100%;
      height: 100%;
      z-index: 1;
      opacity: 1;
      background-image: linear-gradient(180deg, transparent 10%, #00000095 130%);
      bottom: 0;
      left: 0;
      content: "";
    }

    .title {
      position: absolute;
      bottom: 12px;
      left: 12px;
      z-index: 3;
      font-weight: 600;
      color: #fff;
    }
  }

  .article-grid {
    grid-template-areas: none;
    
    @media screen and (min-width: 768px) {
      /* default - 3 articles */
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      
      .article2 {
        min-height: 300px;
      }
      
      /* variant 1: 4 articles */
      &:has(a:nth-last-child(n + 4):nth-last-child(-n + 4):first-child) {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        grid-template-rows: 1fr 1fr;
      }
      
      & a:nth-last-child(n + 4):nth-last-child(-n + 4):first-child,
      & a:nth-last-child(n + 4):nth-last-child(-n + 4):first-child ~ a {
        min-height: 150px;
        grid-column: span 1;
        
        &:nth-of-type(1), &:nth-of-type(3) {
          grid-row: span 2;
        }
      }

      /* variant 2: 5+ articles */
      &:has(a:nth-last-child(n + 5)) {
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: auto;
      }
      
      & a:nth-last-child(n + 5),
      & a:nth-last-child(n + 5) ~ a {
        min-height: 150px;
        grid-column: span 1;

        &:nth-of-type(1) {
          grid-area: 1 / 2 / span 2 / 2;
        }
      }
    }
  }

  .video-gallery .play-button {
    width: 80px;
    height: 80px;
    border-radius: 60px;
    padding: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .events-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    
    .event {
      background: #fff;
      color: #262626;
      display: grid;
      grid-template-columns: auto 1fr auto;
      align-items: center;
      padding: 12px;
      
      .date {
        font-size: 24px;
        font-weight: 700;
        margin-right: 16px;
      }

      .details {
        display: flex;
        flex-direction: column;
        gap: 4px;
      
        .status {
          font-weight: 600;
          font-size: 16px;
        }

        .time {
          font-size: 14px;
          opacity: 0.9;
        }
      }

      .btn2 {
        margin: 0;
        &:hover {
          background: #c20009;
        }
      }
    }
  }

  .slick-slider {
    margin-bottom: 0;
  }

  .banner {
    grid-column: span 2;
    background-color: #e3000b;
    color: white;
    margin-top: 12px;

    .closing-section {
      padding: 12px;
      .btn2 {
        border: 2px solid white;
        min-width: fit-content;
      }
      
      .signature {
        margin-left: auto;
        display: flex;
        align-items: center;
        img {
          width: 100px;
          max-height: 100px;
          object-fit: cover;
          object-position: center;
        }
      }
      
      @media screen and (min-width: 768px) {
        display: flex;
        gap: 12px;
        align-items: center;
        padding: 0 12px;
      }
    }
  }
}