.fullwidth {
        width: 100%;
}
                                
.viewportheight {
        height: 100vh;
}

.centered {
        margin-left: auto !important;
        margin-right: auto !important;
}

.responsive {
        width:100%;
        height:auto;
}

.responsive img {
        width:100%;
        height:auto;
}  

.responsive figure {
        width:100%;
        height:auto;
}  
 
.responsive-width {
        width: 100%;
}

.responsive-width img {
        width: 100%;
}  

.responsive-width figure {
        width: 100%;
}  
                                               
.responsive-height {
        height: 100%;
}

.responsive-height img {
        height: 100%;
}  

.responsive-height figure {
        height: 100%;
}  
                        
video.responsive {
        width: 100%; height:auto;
}  
                        
.limit {
        max-width: 100%;
}

.limit img {
        max-width: 100%;
}  
                        
.clip {
        overflow:clip;
}

.clip-x {
        overflow-x:clip;
}

.grid {
        float:left;
} 

.clear {
        clear:both;
}  

.left {
        float:left;
}  

.right {
        float:right;
}  

.clear-left {
        clear:left;
}   

.clear-right {
        clear:right;
}   
                        
.box {
        display:block; pointer-events:all;
}   
                        
.center {
        text-align:center !important;
}       
                        
.align-left {
        text-align:left !important;
}   

.align-left * {
        text-align:left !important;
}   

.align-right {
        text-align:right !important;
}   

.align-right * {
        text-align:right !important;
}  

.align-center {
        text-align:center !important;
}   

.align-center * {
        text-align:center !important;
}   
                        
.baseline {
        vertical-align:baseline !important;
}   

.baseline * {
        vertical-align:baseline !important;
}   
                        
.margin-center * {
        margin-left: auto !important; margin-right: auto !important;
}        

.margin-right * {
        margin-left: auto !important; margin-right: 0 !important;
}         

.margin-left * {
        margin-left: 0 !important; margin-right: auto !important;
}        
                        
.keepmargins {
        padding-top:1px;padding-bottom:1px;
}   
                        
.middle, .middle * {
        vertical-align:middle !important;
}     
                        
.hyphenate, .hyphenate * {
        overflow-wrap: break-word; word-wrap: break-word; -webkit-hyphens: auto; -ms-hyphens: auto; hyphens: auto;
}     

.break-word, .break-word * {
        overflow-wrap: break-word; word-wrap: break-word;
}     
                        
.center-element {
        position: absolute; top: 50%; left: 50%; transform: translateY(-50%) translateX(-50%);
}       

.center-element-horizontal {
        position: absolute; left: 50%; transform: translateX(-50%);
}

.center-element-vertical {
        position: absolute; top: 50%; transform: translateY(-50%);
}
                        
.caption-top-right {
        position: absolute; top: 0; right: 0;
}   

.caption-middle-right {
        position: absolute; top: 50%; right: 0;
}    

.caption-bottom-right {
        position: absolute; bottom: 0; right: 0;
}
   
.caption-below-right {
        text-align:right !important; display:block !important; width:100%;
} 
                        
.caption-top-center {
        position: absolute; top: 0; left: 0; right: 0; text-align:center !important;
}   

.caption-middle-center {
        position: absolute; top: 50%; left: 0; right: 0; text-align:center !important;
}   

.caption-bottom-center {
        position: absolute; bottom: 0; left: 0; right: 0; text-align:center !important;
} 

.caption-below-center {
        text-align:center !important; display:block !important; width:100%;
}         
                        
.caption-top-left {
        position: absolute; top: 0; left: 0;
}   

.caption-middle-left {
        position: absolute; top: 50%; left: 0;
}   

.caption-bottom-left {
        position: absolute; bottom: 0; left: 0;
}
  
.caption-below-left {
        text-align:left !important; display:block !important; width:100%;
} 

.caption-overlay {
        display: inline; z-index: 1;
}   

.caption-overlay .caption-invisible {
        display:none;
} 

span.caption-overlay {
        pointer-events: none;
}   
    
.block {
        display: block;
} 

.inline-block {
        display: inline-block;
} 
                        
.absolute {
        position: absolute;
}  

.relative {
        position: relative;
}  

.static {
        position: static;
}  

.fixed {
        position: fixed;
}  

.cover {
        position: absolute; top:0;right:0;bottom:0;left:0;
} 
                                                
.high-z {
        position:relative; z-index: 999999;
}   
                        
.ellipsis {
        white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}   
                        
.nowrap {
        white-space:nowrap;
}   
                        
.remove-margin-bottom * {
        margin-bottom:0 !important;
}  

.remove-last-margin-bottom *:last-child {
        margin-bottom:0 !important;
}  

.remove-margin {
        margin:0 !important;
}  

.hide {
        display:none !important;
}  

.hidden {
        display:none !important;
}  
                        
.pointer {
        cursor:pointer;
}   
                        
.pointer-events-none {
        pointer-events: none;
}     

.pointer-events-auto {
        pointer-events: auto;
}     
                        
.animated {
        transition: all 0.4s ease;
}   

.animated-slow {
        transition: all 0.6s ease;
}   

.animated-fast {
        transition: all 0.2s ease;
}

.notransition, .notransition * {
        transition: none !important;
}
     
.fixed-screen {
        position:fixed; top: 0; right: 0; bottom: 0; left: 0;
}  

.fixed-top {
        position:fixed; top: 0;
}  

.fixed-bottom {
        position:fixed; bottom: 0;
}  
                        
.table {
        display:table !important;
}    

.table-row {
        display:table-row !important;
}    

.table-cell {
        display:table-cell !important;
} 
                        
.rotate {
        display: inline-block;overflow: hidden;
}

.rotate-inner {
        display: inline-block; white-space: nowrap;
} 

.rotate-clockwise {
        transform: rotate(90deg); transform-origin: 0 0;
} 

.rotate-counter-clockwise {
        transform: translate(0,100%) rotate(-90deg); transform-origin: 0 0;
} 

.rotate-inner:after {
        content: "";
        float: left;
        margin-top: 100%;
} 
                        
.object-fit-fill {
        object-fit: fill;
}     

.object-fit-contain {
        object-fit: contain;
}     

.object-fit-cover {
        object-fit: cover; width:100%; height:100%;
} 

.object-fit-none {
        object-fit: none;
} 

.object-fit-scale-down {
        object-fit: scale-down;
} 
  
.space-evenly:before,.space-evenly:after {
        content: '';
        display: block;
}   

.flex-row{
        display: flex;
        flex-direction: row;
}    
.flex-column{
        display:flex;flex-direction:column;
}    

.inline-flex-row{
        display:inline-flex !important;
        flex-direction:row;
}    

.inline-flex-column{
        display:inline-flex !important;
        flex-direction:column;
}    

.flex-wrap{
        flex-wrap:wrap;
}
    
.flex-wrap-reverse{
        flex-wrap:wrap-reverse;
}    

.flex-nowrap{
        flex-wrap:nowrap;
}    
                        
.flex-align-center{
        align-items:center;
}

.flex-align-start{
        align-items:flex-start;
}

.flex-align-end{
        align-items:flex-end;
}

.flex-stretch {
        align-items: stretch;
}                   
                        
.flex-space-between{
        justify-content:space-between;
}
   
.flex-space-around{
        justify-content:space-around;
}   
                                                     
.flex-center{
        display:flex;
        align-items:center;
        justify-content:center;
}    

.flex-center-row{
        display:flex;flex-direction:row;align-items:center;justify-content:center;
}    

.flex-center-column {
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
}    

.flex-stretch {
        align-items: stretch;
}  

.flex-top-left{
        display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;
} 

.flex-top-center{
        display:flex;flex-direction:row;align-items:flex-start;justify-content:center;
} 

.flex-top-right{
        display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-end;
} 
                        
.flex-center-left{
        display:flex;flex-direction:row;align-items:center;justify-content:flex-start;
} 

.flex-center-center{
        display:flex;flex-direction:row;align-items:center;justify-content:center;
} 

.flex-center-right{
        display:flex;flex-direction:row;align-items:center;justify-content:flex-end;
} 
                        
.flex-bottom-left{
        display:flex;flex-direction:row;align-items:flex-end;justify-content:flex-start;
} 

.flex-bottom-center{
        display:flex;flex-direction:row;align-items:flex-end;justify-content:center;
} 

.flex-bottom-right{
        display:flex;flex-direction:row;align-items:flex-end;justify-content:flex-end;
} 
                        
.flex-grow{
        flex:1 0 auto;
}  

.flex-samesize * {
        flex:1 1 0;
} 
                        
.flex-cover-grow{
        flex:1 1 auto;
        align-self:stretch;
}    
                        
.flex-fill{
        display:flex;
        align-items:stretch;
}

.flex-fill * {
        flex:1 0 auto;
}

.hover-caption-container {
        position:absolute;
        top:0;
        bottom:0;
        left:0;
        right:0;
        opacity:0;
}

.hover-caption-content {
        position:absolute;
        top:50%;
        transform:translateY(-50%);
        width:100%;
        text-align: center;
}

.hover-caption-container:hover, a:hover .hover-caption-container, a.hover .hover-caption-container {
        opacity: 1;
}

.transition-ease-fast {
        transition: all 0.2s ease 0s;
}

.transition-ease-normal {
        transition: all 0.4s ease 0s;
}

.transition-ease-slow {
        transition: all 0.6s ease 0s;
}

.responsive-video iframe, .responsive-video video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
}

.responsive-video {
        position: relative;
        padding-bottom: 56.25%;
        padding-top: 0;
        height: 0;
        overflow: hidden;
}

.responsive-iframe {
        position: relative;
        overflow: hidden;
}

div:has(> .background-video) {
        position: relative;
        overflow: hidden;
}
.background-video {
        position: absolute;
        width: auto;
        height: auto;
        min-width: 100%;
        min-height: 100%;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        z-index : -1;
}
.responsive-iframe iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
}

.aspect-ratio-box-4-by-1 {
        aspect-ratio: 4/1;
}

.aspect-ratio-box-3-by-1 {
        aspect-ratio: 3/1;
}

.aspect-ratio-box-21-by-9 {
        aspect-ratio: 21/9;
}

.aspect-ratio-box-2-by-1 {
        aspect-ratio: 2/1;
}

.aspect-ratio-box-16-by-9 {
        aspect-ratio: 16/9;
}

.aspect-ratio-box-16-by-10 {
        aspect-ratio: 16/10;
}

.aspect-ratio-box-3-by-2 {
        aspect-ratio: 3/2;
}

.aspect-ratio-box-4-by-3 {
        aspect-ratio: 4/3;
}

.aspect-ratio-box-5-by-4 {
        aspect-ratio: 5/4;
}

.aspect-ratio-box-1-by-1 {
        aspect-ratio: 1;
}

.aspect-ratio-box-2-by-3 {
        aspect-ratio: 2/3;
}

.aspect-ratio-box-1-by-2 {
        aspect-ratio: 1/2;
}

.placeholder {
        position: relative;
        background-color: #EEEEEE;
        background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAwCAIAAADCXI5eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2lpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzU4NTA2MDIwNzQxMUUzOUEyMEY0NDFBRDNDQ0Y1RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxRUNGRDM2Q0FCRjAxMUVBOTY3RUVGNEUyMjlDRTdBRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxRUNGRDM2QkFCRjAxMUVBOTY3RUVGNEUyMjlDRTdBRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjhmODNhYmYtOWI0ZC00NTQxLTk4MzYtNzhhNmRkNGUwYWJjIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3NTg1MDYwMjA3NDExRTM5QTIwRjQ0MUFEM0NDRjVEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+BLlTRQAABI9JREFUeNrUmtlO6zAURWkwlOnSFpCYRJnUigd4QeL/vwAk5lGCyyAolHkoM6z2SL5RiNMkvRDjhyo0ibO8s8/xsUuqXC47jtPe3n57e3t5efn29pZKpZpsah8fH0qpXC7X1dVVqVTe399Vc3NzOp3+W2tPT0+pWrMNmgbk2NjYyMjI4+Ojamtr29vbW19f7+zsZCicbrKvoePz8/Pq6irH+XxeXV9fozHEra2tnEBs3GIVMX5I1xrHu7u7+EThY1jRmE+cPTo6Kq/DHo1pp6enuAJZ7+7uAFZEnvgGjcfHxwuFAqetUhoD87m1tYUdGMDr66uS0fCJK0Cv1JqFttamhVa5c8VXV/CNpBd9AwPFSD+fPdzfqOCrOzo6QDw6Orq/vycgcBVx0NPTw5cvLy9JJUcVQIyHzs/PMRP2l4CoJnalBgYGsD7yS163BVo0hnhhYQF76PwNIoFLXgd3ZmaGUwwjAX/7D0UpDIDGYJEHtaU4ICCy2ezJycnBwYH7VPLQvHpSI67wxZJJVXIno4r6SPokNhoZrWOyB5GHGUxd81SIuYZ3EmmmwHX7+/tXV1cETGxuI3Tdco9rMHT4QORKYoNEtLKyQhXBgGNzO6ZMjgECmCSNoLdMqGGIQaTIWVtby2Qy3DU/Px+b2x+aTok2U3KAAG/8qTXmmpAa4wqI0YJuMQlpPja3PzQZra+vj3x8c3PjEZs/pRKktAqT74RYql9CsKWlRXzl5o5aEhs9TcorFouDg4PUrlDKXMobYIGDutPT07yKuqWVm5i6B0e5sycaCzdpKpLejulhdMcBM8jU1BQPRhtYERj55+bm+vv7Jb3U9THEGxsbaOwm1oGB3nQblVsFPBKB8R/16tDQkK49ZADBxDIHicYQezT2XMl4qCuZemdnZwkSKRniKK25hY9PusMPhBEPqFtyaOKvrjBxi954L4y/Q62sgJaVmM4VAdDaFRJ5wcTuUkfyYBjuOMtBMgCSy6KhcWKtS3i9I0PTHdUSUxrckr/CR14kvenKlFKdqMSlUonqj5kCMje3Jt7c3IxB7OEmLqlP9IopPjSxCPHS0hJALF4oTbXenNUa1428uj6Bm+g/PDyUniOkPF9XCLEUllDCzQETDWe3t7cb0djDzSM83osMLa5YXFzUxO6qDWlhBfq/EDc0uXiI0Zihe4p34UZviX3ffJIAtLhieXnZrfHXDCgD+LGllxMceR4fB+xcJb9GlDg7Pj72dUXiTZkWtmjMushCYqPSFHcEH0neQuIge6Ax6HbusTtNv7D9SmgVsNx6eHhIal+URwfsyirTFkJ3dzerLFOd9d2NBQcApv0JZboH4nw+n1Qgyu69aV2nPJe67wmzEfPd6L4z7r+ijKJHfrq1LeyoIgHTq5jqD7hSmjEU5pGzszPSM6dt+0kOMPCkJmP2UJlMhnqIyCPmWJlR0Fn44yfE4JFP0LQKzMJpeHh4Z2eHaOWrSPvNPxyXaFosFrPZrCJCJycnkZ01GXrbJrMWG1cUCoWJiYlqSimXy1IuX1xcWPuvExDncrne3l7ZMPoUYAAd4L/OvipSGwAAAABJRU5ErkJggg==');
        background-position: center;
        background-repeat: no-repeat;
}

.placeholder-caption {
        font-family: sans-serif;
        font-size: 0.8rem;
        color: #808080;
        padding: 0.5rem;
}

.zoom-on-hover {
        overflow: hidden;
        position: relative;
}

.zoom-on-hover img  {
        transition: transform 400ms ease;
        overflow: hidden;
}

.zoom-on-hover:hover img  {
        transform: scale(1.1);
}

.zoom-on-hover.zoom-120:hover img  {
        transform: scale(1.2);
}

.zoom-on-hover.zoom-130:hover img  {
        transform: scale(1.3);
}

.zoom-on-hover.zoom-140:hover img  {
        transform: scale(1.4);
}