/* bs accordion button */
/*[aria-expanded="false"] > .expanded, [aria-expanded="true"] > .collapsed { display: none; } */

/* image behave like background cover */
.nfi-image-cover img {
  object-fit: cover;
  display: contents;
}
.image-inline img { display: inline-block; }

.filter-hide-select .views-exposed-form .select-wrapper select { display: none; }
.bef-not-inline .bef-exposed-form .form--inline > .form-item {
    float: none; 
}

.nfi-full-width-container > .container {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}
/* restore container for a row within full width */
.container .nfi-container-restore .container {
  padding-left: 60px;
  padding-right: 60px;
}
.nfi-min-vw-100 {
  min-width: 100vw;
}
.nfi-min-vh-100 {
  min-height: 100vh;
}
.nfi-vw-100 {
  width: 100vw;
}

.nfi-vh-60 { height: 60vh; }
.nfi-vh-70 { height: 70vh; }
.nfi-vh-80 { height: 80vh; }
.nfi-vh-90 { height: 90vh; }
.nfi-vh-100 { height: 100vh; }

.nfi-h-300 { height: 300px; }
.nfi-minh-300 { min-height: 300px; }
.nfi-minh-340 { min-height: 340px; }
.nfi-minh-350 { min-height: 350px; }
.nfi-minh-360 { min-height: 360px; }
.nfi-minh-370 { min-height: 370px; }
.nfi-minh-380 { min-height: 380px; }
.nfi-minh-390 { min-height: 390px; }
.nfi-minh-400 { min-height: 400px; }

.nfi-width-fit { width: fit-content; }

.nfi-font-responsive-8 { font-size: 8vw; }
.nfi-font-responsive-4 { font-size: 4vw; line-height: initial;}

 /* https://www.smashingmagazine.com/2016/05/fluid-typography/ */
.h1-fluid,
.h1-responsive,
.h1-responsive p { font-size: calc(24px + (116-24)*(100vw - 320px) / (4000-320)); line-height: 1; }  

.h2-35-fluid { font-size: calc(12px + (60-12)*(100vw - 320px) / (4000-320)); line-height: 1.1; }  

.nfi-front-slider h1, .nfi-front-slider .h1 { font-size: calc(34px + (92-34)*(100vw - 320px) / (4000-320)); line-height: 1; font-weight: 500; }  
.nfi-front-slider h2 { font-size: calc(20px + (37-20)*(100vw - 320px) / (4000-320)); line-height: 1.1; font-weight: 300; }  

/* top padding at least as tall as overlay menu */
.row.nfi-front-slider { margin-top: 60px; }

@media (min-width: 767px) {
  .row.nfi-front-slider { padding-top: 0px; margin-left: 60px; margin-right: 60px; }
}


.d-flex { display: flex; }
.d-block { display: block; }

/* fix bootstrap unequal height problem */
.fix-height .row,
.fix-height-problem .row,
.row.d-flex {
  display: flex;
  flex-wrap: wrap;
}
.fix-height .row > [class*='col-'],
.fix-height-problem .row > [class*='col-'],
.row.d-flex > [class*='col-'] {
  display: flex;
  flex-direction: column;
  position: relative;
  height: 100%;
}  

.w-100-percent, .w-100-percent img {   width: 100%; }

.view-filters-center .view-filters { display: flex; justify-content: center; }
.view-filters-center .view-filters .form-item { display: block;}



/* filters are not using bs grid */
.view-filters input, .view-filters button { margin-left: 15px; margin-right: 15px; }

.hide-select-label .form-type-select .control-label  { display: none; }

.trimmed:after {
  content: ' ...';
}

.btn.btn-extra-small, .btn-extra-small .btn {
    font-size: 11px;
    padding: 0px 10px;
    height: 28px;
}

.d-contents { display: contents; }