/* Eventor Layout: base styles for the former WPBakery markup (the theme's custom.css builds on these class names). */

/* Grid */
.vc_row { margin-left: -15px; margin-right: -15px; }
.vc_row::before, .vc_row::after { content: " "; display: table; }
.vc_row::after { clear: both; }
.vc_column_container { width: 100%; padding-left: 0; padding-right: 0; }
.vc_column_container > .vc_column-inner { box-sizing: border-box; width: 100%; padding-left: 15px; padding-right: 15px; }
[class*="vc_col-sm-"] { position: relative; float: left; box-sizing: border-box; min-height: 1px; width: 100%; }
@media (min-width: 768px) {
  .vc_col-sm-1 { width: 8.3333%; } .vc_col-sm-2 { width: 16.6667%; } .vc_col-sm-3 { width: 25%; }
  .vc_col-sm-4 { width: 33.3333%; } .vc_col-sm-5 { width: 41.6667%; } .vc_col-sm-6 { width: 50%; }
  .vc_col-sm-7 { width: 58.3333%; } .vc_col-sm-8 { width: 66.6667%; } .vc_col-sm-9 { width: 75%; }
  .vc_col-sm-10 { width: 83.3333%; } .vc_col-sm-11 { width: 91.6667%; } .vc_col-sm-12 { width: 100%; }
}
.vc_row-no-padding > .vc_column_container > .vc_column-inner { padding-left: 0; padding-right: 0; }
.vc_column-gap-20 > .vc_column_container { padding: 10px; }
.vc_column-gap-30 > .vc_column_container { padding: 15px; }
.vc_column-gap-35 > .vc_column_container { padding: 17.5px; }

/* Flex rows: equal height and vertical content placement */
.vc_row-flex { display: flex; flex-wrap: wrap; }
.vc_row-flex::before, .vc_row-flex::after { display: none; }
.vc_row-flex > .vc_column_container { display: flex; }
.vc_row-flex > .vc_column_container > .vc_column-inner { display: flex; flex-direction: column; flex-grow: 1; z-index: 1; }
.vc_row-o-equal-height > .vc_column_container { align-items: stretch; }
.vc_row-o-content-top > .vc_column_container > .vc_column-inner { justify-content: flex-start; }
.vc_row-o-content-middle > .vc_column_container > .vc_column-inner { justify-content: center; }
.vc_row-o-content-bottom > .vc_column_container > .vc_column-inner { justify-content: flex-end; }
.vc_row-o-content-middle:not(.vc_row-o-equal-height) > .vc_column_container { align-items: center; }
.vc_row-o-content-bottom:not(.vc_row-o-equal-height) > .vc_column_container { align-items: flex-end; }
.vc_row-o-full-height { min-height: 100vh; }

/* Sections */
.vc_section { position: relative; padding-left: 15px; padding-right: 15px; margin-left: -15px; margin-right: -15px; }
.vc_section-flex { display: flex; flex-direction: column; }
.vc_section-o-content-top { justify-content: flex-start; }
.vc_section-o-content-middle { justify-content: center; }
.vc_section-o-content-bottom { justify-content: flex-end; }
[data-vc-full-width] { overflow: hidden; transition: opacity .3s ease; }
.eventor-js [data-vc-full-width-init="false"] { opacity: 0; }
.vc_row-full-width { clear: both; }

/* Content elements */
.wpb_content_element, .vc_icon_element { margin-bottom: 35px; }
.wpb_text_column > .wpb_wrapper > :last-child { margin-bottom: 0; }
.vc_align_left { text-align: left; } .vc_align_center { text-align: center; } .vc_align_right { text-align: right; }
.vc_figure { display: inline-block; max-width: 100%; margin: 0; vertical-align: top; }
.vc_single_image-wrapper { display: inline-block; max-width: 100%; vertical-align: top; }
.vc_single_image-img { max-width: 100%; height: auto; vertical-align: top; }
.vc_empty_space { clear: both; }

/* Buttons */
.vc_btn3-container { display: block; max-width: 100%; margin-bottom: 21.74px; }
.vc_btn3-inline { display: inline-block; vertical-align: top; }
.vc_btn3-left { text-align: left; } .vc_btn3-center { text-align: center; } .vc_btn3-right { text-align: right; }
.vc_btn3 { display: inline-block; box-sizing: border-box; max-width: 100%; padding: 14px 20px; border: 1px solid transparent;
  font-size: 14px; line-height: normal; text-align: center; vertical-align: middle; word-wrap: break-word; text-decoration: none;
  cursor: pointer; transition: all .2s ease-in-out; }
.vc_btn3:hover, .vc_btn3:focus { text-decoration: none; }
.vc_btn3-shape-round { border-radius: 5px; }
.vc_btn3-color-grey.vc_btn3-style-flat { background-color: #ebebeb; color: #666; }
.vc_btn3-color-grey.vc_btn3-style-flat:hover { background-color: #dcdcdc; color: #5e5e5e; }

/* Icons */
.vc_icon_element { line-height: 0; font-size: 14px; }
.vc_icon_element-align-left { text-align: left; } .vc_icon_element-align-center { text-align: center; } .vc_icon_element-align-right { text-align: right; }
.vc_icon_element-inner { position: relative; display: inline-block; box-sizing: content-box; width: 4em; height: 4em; text-align: center; border: 2px solid transparent; }
.vc_icon_element-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 2.15em; font-style: normal; line-height: 1 !important; }
.vc_icon_element-size-xs { width: 2.5em; height: 2.5em; } .vc_icon_element-size-xs .vc_icon_element-icon { font-size: 1.2em; }
.vc_icon_element-size-lg { width: 6em; height: 6em; } .vc_icon_element-size-lg .vc_icon_element-icon { font-size: 2.85em; }
.vc_icon_element-color-black { color: #2a2a2a; } .vc_icon_element-color-white { color: #fff; }
.vc_icon_element-link { position: absolute; inset: 0; }
.vc_icon_element-icon.fa, .vc_icon_element-icon.fas { padding-right: 0; }

/* Video */
.wpb_video_wrapper { position: relative; width: 100%; padding-top: 56.25%; }
.wpb_video_wrapper iframe, .wpb_video_wrapper object, .wpb_video_wrapper embed, .wpb_video_wrapper video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; margin: 0; }

/* Background video and parallax */
.vc_video-bg-container, .vc_parallax { position: relative; overflow: hidden; }
.vc_video-bg-container > :not(.vc_video-bg), .vc_parallax > :not(.vc_parallax-inner) { position: relative; z-index: 1; }
.vc_video-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.vc_video-bg iframe { position: absolute; top: 50%; left: 50%; width: 100vw; height: 56.25vw; min-width: 177.78vh; min-height: 100vh; transform: translate(-50%, -50%); border: 0; }
.vc_parallax-inner { position: absolute; left: 0; right: 0; top: 0; height: 150%; z-index: 0; background-position: center; background-size: cover; background-repeat: no-repeat; will-change: transform; }

/* Entrance animations */
.eventor-js .wpb_animate_when_almost_visible:not(.wpb_start_animation) { opacity: 0; }
.wpb_start_animation.left-to-right { animation: eventor-left-to-right .7s both ease; }
.wpb_start_animation.right-to-left { animation: eventor-right-to-left .7s both ease; }
.wpb_start_animation.top-to-bottom { animation: eventor-top-to-bottom .7s both ease; }
.wpb_start_animation.bottom-to-top { animation: eventor-bottom-to-top .7s both ease; }
@keyframes eventor-left-to-right { from { opacity: 0; transform: translateX(-10%); } to { opacity: 1; transform: none; } }
@keyframes eventor-right-to-left { from { opacity: 0; transform: translateX(10%); } to { opacity: 1; transform: none; } }
@keyframes eventor-top-to-bottom { from { opacity: 0; transform: translateY(-10%); } to { opacity: 1; transform: none; } }
@keyframes eventor-bottom-to-top { from { opacity: 0; transform: translateY(10%); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .eventor-js .wpb_animate_when_almost_visible:not(.wpb_start_animation) { opacity: 1; }
  .wpb_start_animation { animation: none !important; }
  .vc_parallax-inner { height: 100%; transform: none !important; }
}

/* Photo grid (former masonry media grid) */
.eventor-grid { column-count: 1; column-gap: 10px; margin-bottom: 35px; }
@media (min-width: 576px) { .eventor-grid { column-count: 2; } }
@media (min-width: 992px) { .eventor-grid { column-count: 3; } }
.eventor-grid-item { display: block; margin-bottom: 10px; break-inside: avoid; overflow: hidden; }
.eventor-grid-img { display: block; width: 100%; height: auto; transition: transform .3s ease; }
.eventor-grid-item:hover .eventor-grid-img, .eventor-grid-item:focus .eventor-grid-img { transform: scale(1.03); }
.eventor-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .9); }
.eventor-lightbox[hidden] { display: none; }
.eventor-lightbox figure { max-width: 92vw; max-height: 88vh; margin: 0; text-align: center; color: #fff; }
.eventor-lightbox img { display: block; max-width: 92vw; max-height: 82vh; margin: 0 auto; object-fit: contain; }
.eventor-lightbox figcaption { margin-top: .5em; font-size: 1rem; }
.eventor-lightbox button { position: absolute; padding: .2em .5em; border: 0; background: transparent; color: #fff; font-size: 2.5rem; line-height: 1; cursor: pointer; }
.eventor-lightbox button:focus-visible { outline: 2px solid #fff; }
.eventor-lightbox .eventor-lb-close { top: .3em; right: .3em; }
.eventor-lightbox .eventor-lb-prev { left: .2em; top: 50%; transform: translateY(-50%); }
.eventor-lightbox .eventor-lb-next { right: .2em; top: 50%; transform: translateY(-50%); }

/* Contact form (former Gravity Forms layout; colours and borders come from the theme) */
.eventor-contact ul.gform_fields, .eventor-contact ul.gfield_checkbox { margin: 0; padding: 0; list-style: none; }
.eventor-contact fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.eventor-contact legend { display: block; width: 100%; margin: 0; padding: 0; font-size: inherit; }
.eventor-contact ul.gform_fields { display: flex; flex-wrap: wrap; }
.eventor-contact .gfield { box-sizing: border-box; width: 100%; margin-top: 16px; }
.eventor-contact .gfield_label { display: block; font-weight: 700; }
.eventor-contact .gfield_required { margin-left: 4px; color: #790000; }
.eventor-contact input[type=text], .eventor-contact input[type=email], .eventor-contact input[type=tel], .eventor-contact textarea {
  box-sizing: border-box; width: 100%; padding: 6px 8px; font: inherit; font-size: 1rem; }
.eventor-contact .ginput_complex { display: flex; flex-wrap: wrap; gap: 0 16px; clear: both; }
.eventor-contact .ginput_complex > span { flex: 1 1 200px; }
.eventor-contact .ginput_complex label { display: block; font-size: .8125rem !important; }
@media (min-width: 641px) {
  .eventor-contact .gf_left_half, .eventor-contact .gf_right_half { width: 50%; }
  .eventor-contact .gf_left_half { padding-right: 16px; }
}
.eventor-contact .gchoice { display: flex; align-items: baseline; gap: 8px; margin: 4px 0; }
.eventor-contact .gchoice label { margin: 0 !important; font-weight: 400; }
.eventor-contact .gform_footer { margin-top: 16px; padding: 16px 0 10px; }
.eventor-contact .validation_error { margin-bottom: 16px; padding: 12px; border: 1px solid #790000; color: #790000; font-weight: 700; }
.eventor-contact .gfield_error input, .eventor-contact .gfield_error textarea { border-color: #790000 !important; }
.eventor-contact .validation_message { margin-top: 4px; color: #790000; font-size: .9rem; }
.eventor-contact-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.gform_confirmation_message { padding: 20px 0; font-size: 1.2rem; }
