/*
A simple little SCSS mixin for creating scrim gradients
Inspired by Andreas Larson - https://github.com/larsenwork
https://css-tricks.com/easing-linear-gradients/
*/
/* HIGHTLIGHT GRID STYLE - reusable - for FacetWp */
/* ------------------------------------ *\
  #COMMON-GENERAL-COMPONENTS
\* ------------------------------------ */
/* General components */
/* List with label and value, managed with flex */
.opd-list-label-value {
  --_list-gap: var(--list-gap, 0.625rem);
  --_list-item-flex-flow: var(--list-item-flex-flow, column nowrap);
  --_list-item-gap: var(--list-item-gap, 0.3em);
  --_list-item-label-flex: var(--list-item-label-flex, " ");
  --_list-item-value-flex: var(--list-item-value-flex, " ");
  display: grid;
  gap: var(--_list-gap);
}
.opd-list-label-value__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: var(--_list-item-flex-flow);
          flex-flow: var(--_list-item-flex-flow);
  gap: var(--_list-item-gap);
}
.opd-list-label-value__item a {
  text-decoration: underline;
}
.opd-list-label-value__label {
  -webkit-box-flex: var(--_list-item-label-flex);
      -ms-flex: var(--_list-item-label-flex);
          flex: var(--_list-item-label-flex);
  font-weight: 700;
}
.opd-list-label-value__value {
  -webkit-box-flex: var(--_list-item-value-flex);
      -ms-flex: var(--_list-item-value-flex);
          flex: var(--_list-item-value-flex);
}
.opd-list-label-value--align-right .opd-list-label-value__value {
  text-align: right;
}

/* ------------------------------------ *\
  #DOCUMENT-ITEM
\* ------------------------------------ */
/* Document element in document list */
.opd-document-item {
  --document-item-display: grid;
  --document-item-gap: 1.25rem;
  --document-item-padding: 0.9375rem 1.25rem;
  --document-item-background-color: hsl(40deg, 20%, 97%);
  --document-item-title-font-size: clamp(0.75rem, 1rem + 1.5vw, 0.875rem);
  --document-item-icon-font-size: 1.5em;
  --document-item-icon-color: hsl(0deg, 0%, 53%);
  display: var(--document-item-display);
  gap: var(--document-item-gap);
  padding: var(--document-item-padding);
  background-color: var(--document-item-background-color);
}
.opd-document-item__icon {
  color: var(--document-item-icon-color);
  font-size: var(--document-item-icon-font-size);
}
.opd-document-item__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-width: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  gap: 1em;
  font-size: var(--document-item-title-font-size);
  overflow-wrap: break-word;
  word-wrap: break-word;
  -ms-word-break: break-all;
  word-break: break-word;
  -ms-hyphens: auto;
  -webkit-hyphens: auto;
  hyphens: auto;
}

/* ------------------------------------ *\
  #WATCH-VIDEO-ACTION
\* ------------------------------------ */
.opd-watch-video-action {
  --watch-video-icon-size: 2.5rem;
  --watch-video-icon-background-color: #ffffff;
  --watch-video-icon-color: #752E4A;
  --watch-video-color: #ffffff;
  --watch-video-font-size: clamp(0.75rem, 1rem + 1.5vw, 0.875rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
  color: var(--watch-video-color);
  font-size: var(--watch-video-font-size);
  /* For video link in homepage - overriding wp element button styles */
}
.opd-watch-video-action:hover, .opd-watch-video-action:focus {
  color: inherit;
}
.opd-watch-video-action__icon {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: var(--watch-video-icon-size);
  height: var(--watch-video-icon-size);
  min-width: var(--watch-video-icon-size);
  background-color: var(--watch-video-icon-background-color);
  border-radius: 50%;
  color: var(--watch-video-icon-color);
}
.opd-watch-video-action__icon [class^=fa]::before,
.opd-watch-video-action__icon [class*=fa-]::before {
  display: inline-block; /* remove text decoration underline from icon */
}
.opd-watch-video-action .wp-block-button__link.wp-element-button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  padding-right: 1em;
  padding-left: 1em;
  gap: 1em;
  background-color: transparent !important;
  line-height: 1.1;
  text-align: left;
}
.opd-watch-video-action .wp-block-button__link.wp-element-button:hover, .opd-watch-video-action .wp-block-button__link.wp-element-button:focus {
  color: var(--watch-video-color) !important;
  background-color: transparent !important;
}
.opd-watch-video-action .wp-block-button__link.wp-element-button:hover .opd-watch-video-action__icon, .opd-watch-video-action .wp-block-button__link.wp-element-button:focus .opd-watch-video-action__icon {
  --watch-video-icon-background-color: #752E4A;
  --watch-video-icon-color: #ffffff;
}
.opd-watch-video-action .wp-block-button__link.wp-element-button .opd-watch-video-action__icon {
  --watch-video-icon-size: 3.5rem;
  font-size: 1.5rem;
}
.has-logo-gray-background-header .opd-watch-video-action {
  --watch-video-color: hsl(214deg, 13%, 24%);
  --watch-video-icon-background-color: #752E4A;
  --watch-video-icon-color: #ffffff;
}
.has-logo-gray-background-header .opd-watch-video-action .wp-block-button__link.wp-element-button {
  padding-right: 0;
  padding-left: 0;
}
.is-formazione .opd-watch-video-action .wp-block-button__link.wp-element-button {
  background-color: rgba(0, 0, 0, 0.2) !important;
}
.has-video-action-absolute .opd-watch-video-action {
  /* For video link in homepage - overriding wp element button styles */
}
.has-video-action-absolute .opd-watch-video-action .wp-block-button__link.wp-element-button {
  max-width: 17em;
}

/* Wrapper in homepage ISTITUTO banner */
.has-video-action-absolute .opd-watch-video-wrapper {
  --wrapper-offset-top: 0;
  position: absolute;
  top: var(--wrapper-offset-top);
}

/* ------------------------------------ *\
  #CARD-FILTERED-GRID
\* ------------------------------------ */
/* Custom card grid with filters */
.opd-card-filtered-grid {
  --card-filtered-grid-filters-display: flex;
  --card-filtered-grid-filters-wrap: wrap;
  --card-filtered-grid-filters-gap: 1.25rem;
  --_card-filtered-grid-filters-flex: var(--card-filtered-grid-filters-flex, " ");
  --_card-filtered-grid-filters-width: var(--card-filtered-grid-filters-width, 100%);
  --card-filtered-grid-filters-color: #ffffff;
}
.opd-card-filtered-grid .opd-select--inverse {
  --select-color: #ffffff;
}
.opd-card-filtered-grid .opd-form-item {
  -webkit-box-flex: var(--_card-filtered-grid-filters-flex);
      -ms-flex: var(--_card-filtered-grid-filters-flex);
          flex: var(--_card-filtered-grid-filters-flex);
  width: var(--_card-filtered-grid-filters-width);
}
.opd-card-filtered-grid__filters {
  --card-filtered-grid-filters-columns: repeat(1, 1fr);
  display: var(--card-filtered-grid-filters-display);
  gap: var(--card-filtered-grid-filters-gap);
  grid-template-columns: var(--card-filtered-grid-filters-columns);
  -ms-flex-wrap: var(--card-filtered-grid-filters-wrap);
      flex-wrap: var(--card-filtered-grid-filters-wrap);
  color: var(--card-filtered-grid-filters-color);
}
.opd-card-filtered-grid .facetwp-type-pager {
  padding: 2.1875rem 0;
  text-align: center;
}
.opd-card-filtered-grid.has-light-bg {
  /* manage filters on light bg wrapper */
  --card-filtered-grid-filters-color: hsl(214deg, 13%, 24%);
}

/* ------------------------------------ *\
  #PAGINATION
\* ------------------------------------ */
.opd-pagination {
  --_pagination-padding-v: var(--pagination-padding-v, 2.5rem);
  --_pagination-gap: var(--pagination-gap, 0.625rem);
  --_pagination-number-size: var(--pagination-number-size, 3rem);
  --_pagination-number-font-size: var(--pagination-number-font-size, 1rem);
  --_pagination-number-background: var(--pagination-number-background, #ffffff);
  --_pagination-number-background-active: var(--pagination-number-background-active, hsl(40deg, 20%, 97%));
  --_pagination-number-color: var(--pagination-number-color, hsl(214deg, 13%, 24%));
  --_pagination-number-color-active: var(--pagination-number-color-active, #752E4A);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  padding: var(--_pagination-padding-v) 0;
  gap: var(--_pagination-gap);
  /* FACETWP PAGINATION */
}
.opd-pagination .page-numbers,
.opd-pagination .facetwp-page {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-decoration: none;
  width: var(--_pagination-number-size);
  height: var(--_pagination-number-size);
  background-color: var(--_pagination-number-background);
  color: var(--_pagination-number-color);
  font-size: var(--_pagination-number-font-size);
  font-weight: 500;
}
.opd-pagination .page-numbers:hover, .opd-pagination .page-numbers:focus, .opd-pagination .page-numbers.current, .opd-pagination .page-numbers.active,
.opd-pagination .facetwp-page:hover,
.opd-pagination .facetwp-page:focus,
.opd-pagination .facetwp-page.current,
.opd-pagination .facetwp-page.active {
  background-color: var(--_pagination-number-background-active);
  color: var(--_pagination-number-color-active);
}
.opd-pagination .facetwp-type-pager {
  padding: 0;
}
.opd-pagination .facetwp-pager {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--_pagination-gap);
}
.opd-pagination .facetwp-facet-results {
  margin-left: auto;
}
.opd-pagination .facetwp-per-page-select {
  border-radius: none;
  border-color: hsl(0deg, 0%, 85%);
}

/* ------------------------------------ *\
  #VIDEO
\* ------------------------------------ */
/* Manage video section/block */
.opd-video {
  height: 0 !important;
  padding-bottom: 56.25%;
  position: relative;
  overflow: hidden;
}
.opd-video iframe,
.opd-video video {
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

/* ------------------------------------ *\
  #MEDIA-QUERIES
\* ------------------------------------ */
@media all and (max-width: 767px) {
  .opd-list-label-value--align-right {
    --list-item-flex-flow: row nowrap;
    --list-item-label-flex: 1;
    --list-item-value-flex: 1;
    --list-item-gap: 1ch; /* nearly 1 character spacing */
  }
}
@media all and (min-width: 768px) {
  .opd-list-label-value {
    --list-item-flex-flow: row nowrap;
    --list-item-label-flex: 1;
    --list-item-value-flex: 1;
    --list-item-gap: 1ch; /* nearly 1 character spacing */
  }
  /* Document element in document list */
  .opd-document-item {
    --document-item-display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .opd-document-item__cta {
    margin-left: auto;
  }
  .opd-card-filtered-grid {
    --card-filtered-grid-filters-flex: 1;
    --card-filtered-grid-filters-width: fit-content;
  }
  .opd-card-filtered-grid.has-filters-display-grid {
    --card-filtered-grid-filters-display: grid;
  }
  .opd-card-filtered-grid.has-filters-display-grid .opd-form-item {
    width: 100%;
  }
  .opd-card-filtered-grid__filters.is-filters-grid-2 {
    --card-filtered-grid-filters-columns: repeat(2, 1fr);
  }
  .opd-card-filtered-grid__filters.is-filters-grid-3 {
    --card-filtered-grid-filters-columns: repeat(3, 1fr);
  }
}