body {
  min-height: 70vh;
}
header > nav,
.main-content section > div:not(.block-views-blockslider-homepage-block-1),
#block-espita-breadcrumbs,
.tabs,
footer .container-fluid {
  max-width: 1320px;
  margin: 0 auto;
}

header {
  box-shadow: 0 8px 24px rgba(149, 149, 149, 0.15);
  position: relative!important;
}

footer {
  background-color: #48a3e8!important;
}

footer p,
footer .nav-item a {
  font-size: 18px;
  color: white!important;
}

a {
  color: #2154a0;
}

.site-footer .block {
  margin: unset;
  border: unset;
  border-color: unset;
  padding: unset;
}

.site-footer__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.site-footer__top .region {
  flex-grow: 1;
  width: 33%;
  margin: 0 auto !important;
  padding: 20px;
}

.navbar-expand-xl {
  justify-content: space-between!important;
}

#superfish-main {
  float: right!important;
}

#superfish-main a {
  color: #2154a0!important;
  font-weight: bold !important;
  text-decoration: none !important;
  font-size: 18px!important;
}

ul.sf-menu.sf-horizontal.sf-shadow ul,
ul.sf-menu.sf-vertical.sf-shadow ul,
ul.sf-menu.sf-navbar.sf-shadow ul ul {
  box-shadow: none!important;
  background: #48a3e8!important;
  border-radius: 0 0 15px 15px!important;
}

ul.sf-menu ul a {
  color: white!important;
}
#header a.is-active:after {
  content: '';
  width: 100%;
  height: 100%;
  display: block;
  margin-top: 5px;
  border-bottom: 4px solid;
}

.sf-accordion-toggle {
  position: absolute!important;
  top: 30px!important;
  right: 20px!important;
  font-size: 36px!important;
}

#superfish-main-toggle span {
  border: 3px solid #48a3e8!important;
  border-radius: 15px!important;
  height: 60px!important;
  width: 60px!important;
  display: block!important;
}

#superfish-main-accordion {
  background: #48a3e8;
  padding-bottom: 10px;
}
#superfish-main-accordion li:not(:last-child) {
  border-bottom: 1px solid;
}

#superfish-main-accordion a,
#superfish-main-toggle {
  color: black!important;
  font-weight: bold!important;
  text-decoration: none!important;
  text-align: center!important;
}

#superfish-main-accordion a {
  margin: 5px 0;
  font-size: 24px!important;
}

header nav .nav-item > a {
  color: black!important;
  font-weight: bold;
}

header nav img {
  max-height: 100px;
}

#main-wrapper {
  margin-bottom: 5% !important;
}

#main-wrapper .title {
  margin-bottom: 2rem;
}

article h3 {
  margin-top: 1em;
  margin-bottom: 0.5em;
}

.node .field--type-image {
  display: block!important;
  float: unset!important;
}

table tr th {
  color: black;
}
.table>:not(caption)>*>* {
  padding: 0.8rem 1.2rem;
  background-color: white!important;
  border-bottom-width: 1px;
  box-shadow: none!important;
  border: 1px solid lightgray;
}

.js-form-item {
  margin-right: 15px;
}

.form-actions input {
  display: inline-block!important;
  width: auto;
  margin-right: 15px;
  margin-top: 24px;
}

.view-filters {
  margin: 3% 0;
}

.breadcrumb {
  margin: 3% auto;
}

.node__content img {
  max-height: 450px;
  object-fit: contain;
  width: 100%;
}

.blazy--grid h3,
.blazy--grid h3 a {
  text-decoration: unset!important;
  color: #333;
  font-size: 24px;
  font-weight: bold;
}

.blazy--grid .views-field-body {
  color: #666;
  font-weight: 500;
  text-align: justify!important;
}

.slick__slide img {
  filter:blur(0px);
}

#block-testohome .content {
  max-width: 1340px;
  margin: 0 auto;
  background: white;
  border-radius: 1.125rem;
  padding: 6rem !important;
  box-shadow:5px 5px 15px 0p border-radius: 15px;
}

#block-testohome .content {
  position: relative;
}
#block-testohome .text-formatted:before {
  content: '“';
  font-size: 6rem;
  position: absolute;
  top: 1rem;
  left: 3rem;
  font-family: 'Arial';
  color: #666;
}
#block-testohome .text-formatted:after {
  content: '”';
  font-size: 6rem;
  position: absolute;
  bottom: -2rem;
  right: 3rem;
  font-family: 'Arial';
  color: #666;
}

#block-testohome {
  max-width: unset;
  position: relative;
  background: rgb(117 188 202);
  padding: 7rem 20px;
  margin-left: -15px;
  margin-right: -15px;
  display: block !important;
}

#block-testohome p {
  color: #666;
  font-size: 1.59rem !important;
  line-height: 1.59rem !important;
}

#block-testohome p strong {
  font-weight: bold;
}
#block-testohome p:last-child {
  margin-bottom: 0;
}

.block-views-blockslider-homepage-block-1,
.slick-dotted.slick-slider {
  margin-bottom: 0 !important;
}

.view-content .item-list img {
  height: 250px;
  object-fit: cover;
  border-radius: 15px 15px 0 0;
  width: 100%;
  padding-bottom: 15px;
}
.view-content .list-group-item {
  box-shadow: 0 5px 5px 0 #2691e247 !important;
  border: 2px solid #316e9d1f;
  border-radius: 15px;
  padding-bottom: 25px !important;
}
.view-content .item-list .views-field-title,
.view-content .item-list .views-field-created,
.view-content .item-list .views-field-body,
.view-content .item-list .views-field-view-node {
  padding: 5px 25px;
}

.view-content .item-list .views-field-view-node {
  text-align: right;
  font-weight: bold;
}

.path-frontpage .block > h2 {
  margin-bottom: 1em;
  color: #2154a0;
  margin: 6rem 0 3rem;
  font-weight: bold;
  font-size: 40px;
  text-align: center;
}

h1.title {
  color: #2154a0;
}

#block-webform input,
#block-webform label,
#block-webform textarea {
  display: block!important;
  width: auto;
  min-width: 50%;
  margin: 0 auto;
  text-align: center;
  margin-bottom: 10px;
  font-weight: bold;
}

#block-webform input,
#block-webform textarea {
  color: gray;
}

#block-webform .form-submit {
  min-width: 100px;
  font-weight: bold;
  color: white!important;
}
body:not(.path-frontpage) #block-webform h2 {
  display: none;
}

.path-node .content .field__label {
  font-weight: bold;
  margin: 20px 0 5px;
}

.node .node__meta {
  display: none;
}

.caption > figcaption {
  font-style: italic;
  color: #888;
  text-align: center;

}

#block-views-block-slider-homepage-block-1-2 {
  margin-left: -15px;
  margin-right: -15px;
}

@media (min-width: 64em) {
  .slide__constrained {
      top: 10%!important;
      padding: 0 !important;
  }
  .slide__caption {
      top: 0%!important;
  }
}

.slick-track .slick__slide>.slide__constrained {
  top: 15%!important;
}
.slick-track .slick__slide>.slide__constrained h2 {
  text-transform: unset!important;
  margin-bottom: 20px;
}
.slick--skin--fullwidth .slide__description {
  font-size: 18px;
  text-align: justify!important;
}
.slick--skin--fullwidth .slide__caption .views-field-created {
  margin-top: 20px;
}
@media (min-width: 64em) {
  .slide--caption--center .slide__caption,
  .slide--caption--center-top .slide__caption,
  .slide--caption--left .slide__caption,
  .slide--caption--right .slide__caption {
      width: 50%!important;
  }
}
.slide__media:before {
  border-radius: 15px;
}

.slick-dots {
  bottom: 5px!important;
}
.slick-dots li button:before,
.slick-dots li.slick-active button:before {
  color: white;
}
.slick-arrow::before {
  color: #fff!important;
}

.slick-prev {
  left: 15px!important;
}
.slick-next {
  right: 15px!important;
}

.block-views-blockslider-homepage-block-1 {
  margin-bottom: 60px;
}

.block-views-blockslider-homepage-block-1,
.slick__slide,
.slick__slide img {
  max-height: 650px!important;
}

.slide__caption {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 15px;
  padding: 15px 30px 30px !important;
}

.slide__caption * {
  color: black!important;
}

.slide__caption h2,
.slide__caption h2 a {
  text-decoration: unset;
  text-align: left!important;
  font-size: 36px;
}

.slide__description .views-field-view-node {
  text-align: right;
}

.slide__description .views-field-view-node * {
  color: #2154a0!important;
  font-weight: bold;
}

@media only screen and (max-width:920px) {
  .item-list--blazy-column .blazy--grid {
      grid-template-columns: repeat(1, 1fr) !important;
  }
  #block-testohome {
      padding: 4rem 20px;
  }
  #block-testohome .content {
      padding: 3.5rem 1rem !important;
  }
  #block-testohome .content p {
      font-size: 1.125rem !important;
      line-height: 1.125rem!important;
  }
  #block-testohome .text-formatted:before {
      top: -1rem;
      left: 1rem;
  }
  #block-testohome .text-formatted:after {
      bottom: -4.5rem;
      right: 1rem;
  }

  .slick-list > .slick-track > .slick__slide > .slide__constrained {
      top: 0 !important;
      position: absolute;
      height: auto!important;
      padding-top: 0!important;
  }

  .slide__constrained {
      margin: 20px;
  }

  .slick-prev {
      left: -5px!important;
  }

  .slick-next {
      right: -5px!important;
  }

  .slide__constrained h2.slide__title, 
  .slide__constrained > .slide__caption h2.slide__title > a {
    font-size: 20px !important;
    line-height: normal !important;
    margin-bottom: 0 !important;
}

  .slide__constrained .views-field-body {
      font-size: 18px!important;
      line-height: normal!important;
      margin-bottom: 0 !important;
  }

  .views-field-created {
      margin-top: 0 !important;
  }

  .slick__slide .media {
      height: 40vh!important;
  }

  .slick__slide .media img {
      filter:blur(0px);
  }

  .site-footer__top section {
      width: 100%!important;
  }

  #block-webform input,
  #block-webform label,
  #block-webform textarea {
      width: 100%;
  }

}

#superfish-main a {
  text-transform: uppercase;
  padding: 1em 1.0em;
  font-family: Rubik;
  font-size: 1.125rem!important;
  line-height: 1.48125rem!important;
  font-weight: 700!important;
}

h1.title,
.path-frontpage .block > h2 {
  text-transform: uppercase;
  font-family: Rubik;
  font-size: 2rem!important;
  line-height: 1.48125rem!important;
  font-weight: 700!important;
}

.slide__caption h2,
.slide__caption h2 a {
  text-transform: uppercase;
  font-family: Rubik;
  line-height: 2rem!important;
  font-weight: 700!important;
}

html * {
  font-family: Rubik;
}

p {
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 400;
}

h3,
h4,
h5 {
  font-weight: 700!important;
}

footer .nav-item a {
  text-transform: uppercase;
  padding: 1em 1.0em;
  font-family: Rubik;
  font-size: 1.125rem!important;
  line-height: 1.48125rem!important;
  font-weight: 700!important;
}
footer .nav-item a:before {
  content: '> ';
}
.nav-link:hover,
li > a:hover,
p > a:hover,
span > a:hover,
h2 > a:hover,
h3 > a:hover {
  opacity: 0.7!important;
}

.form-submit {
  border-radius: 0.75rem;
  padding: 0.75rem;
}
h1.title:before,
.path-frontpage .block > h2:before {
  content: '';
  background: #cce9ff;
  width: 30px;
  height: 30px;
  display: inline-block;
  border-radius: 5px;
  position: absolute;
  z-index: -10;
  margin-left: -15px;
  margin-top: -15px;
}

.slick__slide img {
  filter:brightness(80%);
}

.slide__caption {
  background-color: unset;
  border-radius: 15px;
  padding: 15px 30px 30px !important;
}

.slide__caption *,
.slide__description .views-field-view-node * {
  color: white!important;
}

.blazy--grid {
  display: grid!important;
  grid-template-columns: repeat(3, 1fr)!important;
  gap: 1.125rem!important;
  /* Make each grid cell equal height */
  grid-auto-rows: 1fr!important;
  align-items: start!important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Card: stretch to fill the grid row (equal heights) */
.blazy--grid .list-group-item {
  display: flex!important;
  flex-direction: column!important;
  height: 100%;
  /* important for equal heights */
  overflow: hidden;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

/* Hover effect */
.blazy--grid .list-group-item:hover {
  transform: translateY(-6px)!important;
  transition: transform 0.5s!important;
}

.view-content .item-list .views-field-title a {
  font-size: 1.25rem;
}

/* Content area grows to fill remaining space */
.grid__content > .views-field-body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1 1 auto;
  /* grow so cards align to same height */
}

/* Responsive breakpoints */
@media (max-width: 1000px) {
  .blazy--grid .list-group-item {
      grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .blazy--grid .list-group-item {
      grid-template-columns: 1fr;
  }
}

.slide__description .views-field-view-node {
  padding-top: 15px;
}

#sliding-popup {
  background: rgba(33,84,160,0.86)!important;
}

#sliding-popup .popup-content {
  max-width: 1320px;
  padding: 20px;
  font-size: 18px!important;
}

#sliding-popup .popup-content * {
  font-size: 18px!important;
}

.views-field-view-node {}

.page-view-elenco-gruppi-spiritici .views-field-title a {
  font-weight: bold;
  text-decoration: none!important;
  font-size: 1.5em!important;
  text-align: center;
  margin: 0 auto;
  display: block;
}

.page-view-elenco-gruppi-spiritici .grid__content > div,
.page-view-elenco-gruppi-spiritici .grid__content > span {
  padding: 15px 15px 0 !important;
  display: block;
}

.page-view-elenco-gruppi-spiritici .views-label-field-incontri-online {
  font-weight: bold;
}

.page-view-elenco-gruppi-spiritici .views-label-field-orario-incontri {
  display: block;
  font-weight: bold;
}

.page-view-elenco-gruppi-spiritici .grid__content * {
  font-size: 1em;
}

.page-view-elenco-gruppi-spiritici .grid__content .address {
  margin-bottom: 0;
}

.page-view-elenco-gruppi-spiritici .grid__content .views-field-view-node a {
  background-color: #2154a0;
  color: white;
  display: inline-block;
  padding: 20px 30px;
  border-radius: 10px;
  text-decoration: none!important;
  margin: 0 auto !important;
  text-align: center!important;
}

.page-view-elenco-gruppi-spiritici .grid__content .views-field-field-orario-incontri {
  flex-grow: 1;
}

.page-view-elenco-gruppi-spiritici .grid__content .views-field-view-node {
  margin-bottom: auto;
}
