:root {
    --font-size: 1rem;
}
/* 
    GLOBALS
*/
.ga-header {
    text-align: center;
    padding-top: calc(var(--font-size) / 2);
    padding-bottom: calc(var(--font-size) / 2);
}
.ga-title {
    font-size: calc(var(--font-size) * 1.6);
    font-weight: bold;
    margin-bottom: 0;
}
.ga-subtitle {
    font-size: calc(var(--font-size) * 1.2);
    font-weight: bold;
    opacity: 0.8;
    margin-bottom: 0;
}
.ga-header-icon {
    width: 2rem;
    height: 2rem;
}

/* Generic tooltips */
.ga-tooltip {
    position: relative;
    display: inline-block;
}
.ga-tooltip .ga-tooltiptext {
    visibility: hidden;
    background-color: rgba(0, 0, 0, 0.8);
    color: #fff;
    text-align: center;
    border-radius: 6px;
    position: absolute;
    z-index: 1;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}
.ga-tooltip:hover .ga-tooltiptext {
    visibility: visible;
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}
.ga-tooltip .ga-tooltiptext {
  width: 180px;
  padding: 0.5em 1em;
  top: 100%;
  /* left: 50%; */
  /* margin-left: -90px; Use half of the width (120/2 = 60), to center the tooltip */
  /* transform: translateX(-50%); */
}
.ga-tooltip.small .ga-tooltiptext {
    width: 120px;
    font-size: calc(var(--font-size) * 0.9);
    padding: 0.25rem 0.5em;
}

/* 
    PADDING
*/
.ga-padding {
    --ga-initial-padding: var(--ga-initial-padding, 1rem);
    padding-left: var(--ga-initial-padding);
    padding-right: var(--ga-initial-padding);
}

@media (min-width: 576px) {
    .ga-padding {
        padding-left: var(--ga-initial-padding);
        padding-right: var(--ga-initial-padding);
    }
}
@media (min-width: 992px) {
    .ga-padding {
        padding-left: calc(var(--ga-initial-padding) * 2);
        padding-right: calc(var(--ga-initial-padding) * 2);
    }
}
@media (min-width: 1200px) {
    .ga-padding {
        padding-left: calc(var(--ga-initial-padding) * 2);
        padding-right: calc(var(--ga-initial-padding) * 2);
    }
}
@media (min-width: 1400px) {
    .ga-padding {
        padding-left: calc(var(--ga-initial-padding) * 2);
        padding-right: calc(var(--ga-initial-padding) * 2);
    }
}
.ga-bordered {
    --border-width: var(--bwidth, 1px);
    --border-color: var(--bcolor, rgba(var(--primary-button-bg-rgb), 0.2));
    --border-style: var(--bstyle, solid);
}
.ga-bordered:not(.top, .right, .bottom, .left) {
    border: var(--border-width) var(--border-style) var(--border-color);
}
.ga-bordered.top {
    border-top: var(--border-width) var(--border-style) var(--border-color);
}
.ga-bordered.right {
    border-right: var(--border-width) var(--border-style) var(--border-color);
}
.ga-bordered.bottom {
    border-bottom: var(--border-width) var(--border-style) var(--border-color);
}
.ga-bordered.left {
    border-left: var(--border-width) var(--border-style) var(--border-color);
}
.ga-bordered.rounded {
    border-radius: var(--component-border-radius);
}

.ga-flex-align {
    display: flex;
}
.ga-flex-align.topleft {
    justify-content: flex-start;
    align-items: flex-start;
}
.ga-flex-align.topcenter {
    justify-content: center;
    align-items: flex-start;
}
.ga-flex-align.topright {
    justify-content: flex-end;
    align-items: flex-start;
}
.ga-flex-align.centerleft {
    justify-content: flex-start;
    align-items: center;
}
.ga-flex-align.center {
    justify-content: center;
    align-items: center;
}
.ga-flex-align.centerright {
    justify-content: flex-end;
    align-items: center;
}
.ga-flex-align.bottomleft {
    justify-content: flex-start;
    align-items: flex-end;
}
.ga-flex-align.bottomcenter {
    justify-content: center;
    align-items: flex-end;
    margin-top: auto;
    margin-bottom: 0;
}
.ga-flex-align.bottomright {
    justify-content: flex-end;
    align-items: flex-end;
    margin-top: auto;
    margin-bottom: 0;
}


/* 
    blockapp/blocks/bases/settings_block.py animations
*/

.fadein {
    opacity: 0;
}
.fadeout {
    opacity: 1;
}
.slidein-left {
    opacity: 0;
    transform: translateX(-100%);
}
.slidein-right {
    opacity: 0;
    transform: translateX(100%);
}
.slidein-top {
    opacity: 0;
    transform: translateY(-100%);
}
.slidein-bottom {
    opacity: 0;
    transform: translateY(100%);
}
.bouncein {
    opacity: 0;
    transform: scale(0.3);
}
.bounceout {
    opacity: 1;
    transform: scale(1);
}
.rotatein {
    opacity: 0;
    transform: rotate(180deg);
}
.rotateout {
    opacity: 1;
    transform: rotate(0deg);
}
.scalein {
    opacity: 0;
    transform: scale(0);
}
.scaleout {
    opacity: 1;
    transform: scale(1);
}

/* THEMES */
.ga-theme-confetti:not(.ga-controlled),
.ga-theme-fireworks:not(.ga-controlled),
.ga-theme-bubbles:not(.ga-controlled) {
    min-height:             500px;
}
.ga-theme-confetti:not(.ga-controlled),
.ga-theme-fireworks:not(.ga-controlled) {
    padding-top:            90px;
    padding-bottom:         75px;
}

.ga-theme-confetti {
    --flags:                var(--flags-top);
    background-image:       var(--flags),
                            var(--confetti);
    background-position:    center -20px,
                            0 0;
    background-attachment:  local,
                            fixed;
    background-size:        90%,
                            100%;
    background-repeat:      no-repeat;
}
.ga-theme-balloons {
    background-image:       var(--baloons);
    background-position:    top center;
    background-attachment:  fixed;
    background-repeat:      no-repeat;
    background-size:        cover;
}
.ga-theme-fireworks {
/* STATIC_URL blockapp/assets/fireworks/bottom-right.svg    */
/* STATIC_URL blockapp/assets/fireworks/middle-right.svg    */
/* STATIC_URL blockapp/assets/fireworks/top-left.svg        */
/* STATIC_URL blockapp/assets/fireworks/bottom-left.svg     */
    --bottom-right:         var(--fireworks-bottom-right);
    --top-middle-left:      var(--fireworks-top-middle-left);
    --top-middle-right:     var(--fireworks-top-middle-right);
    --middle-right:         var(--fireworks-middle-right);
    --top-left:             var(--fireworks-top-left);
    --bottom-left:          var(--fireworks-bottom-left);

    background-image:       var(--bottom-right), 
                            var(--top-middle-left),
                            var(--top-middle-right),
                            var(--middle-right), 
                            var(--top-left), 
                            var(--bottom-left);
    background-size:        max(150px, 20%),
                            max(75px, 10%),
                            max(85px, 13%),
                            max(150px, 20%),
                            max(150px, 20%),
                            max(120px, 18%);
    background-position:    100% 1%,
                            40% 15%,
                            60% 5%,
                            90% calc(100% + 10px),
                            2% 2%,
                            15% calc(100% + 30px);
    background-repeat:      no-repeat;
    /* background-blend-mode:  difference; */
    background-origin:      border-box;
}
.ga-theme-hearts,
.ga-theme-flowers,
.ga-theme-stars,
.ga-theme-rainbow,
.ga-theme-snow,
.ga-theme-bubbles {
    background-position:    top center;
    background-attachment:  fixed;
    background-repeat:      no-repeat;
    background-size:        cover;
}
.ga-theme-hearts {
    background-image:       var(--hearts);
}
.ga-theme-flowers {
    background-image:       var(--flowers);
}
.ga-theme-stars {
    background-image:       var(--stars);
}
.ga-theme-rainbow {
    background-image:       var(--rainbow);
}
.ga-theme-snow {
    background-image:       var(--snow);
}
.ga-theme-bubbles {
    background-image:       var(--bubbles);
    background-attachment:  local;
}

/* SECTION.py */
.ga-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.text-left .ga-section,
.ga-section.text-left {
    align-items: flex-start;
}
.text-center .ga-section,
.ga-section.text-center {
    align-items: center;
}
.text-right .ga-section,
.ga-section.text-right {
    align-items: flex-end;
}

/* 
    blockapp/blocks/cards/cards.py
*/
.ga-cards-list {

}
.ga-cards-list header {
    padding: 0.5rem;
    text-align: center;
    border-bottom: 1px solid rgba(var(--primary-button-bg-rgb), 0.2);
}
.ga-cards-list .ga-card-block-title {
    font-size: calc(var(--font-size) * 1.6);
    font-weight: bold;
}
.ga-cards-list .ga-card-block-subtitle {
    font-size: calc(var(--font-size) * 1.2);
    font-weight: bold;
    opacity: 0.7;
}
.ga-cards-list footer {
    padding: 0.5rem;
    border-top: 1px solid rgba(var(--primary-button-bg-rgb), 0.2);
}
.ga-cards-list .ga-card-block-footer {
    text-align: center;
}
.ga-cards-list .ga-card-row {
    --bs-gutter-y: 0.5rem;
    justify-content: center;
}
.ga-cards-list .ga-card {
    padding: 0.5rem;
    height: 100%;
    position: relative;
}
.ga-cards-list .ga-card.ga-styled-card {
    --fade-from: var(--fade-from, rgba(var(--primary-button-bg-rgb), 0.6));
    --fade-to: var(--fade-to, rgba(var(--primary-button-bg-rgb), 0.75));
    --text-color: var(--text-color, var(--primary-button, #fff));

    background: var(--fade-from);
    background: -moz-linear-gradient(top, var(--fade-from) 0%, var(--fade-to) 100%);
    background: -webkit-linear-gradient(top, var(--fade-from) 0%, var(--fade-to) 100%);
    background: linear-gradient(to bottom, var(--fade-from) 0%, var(--fade-to) 100%);
    color: var(--text-color);
    transform: all 0.2s ease-in-out;
}
.ga-cards-list .ga-card.ga-styled-card .ga-card-image {
    max-height: 350px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.ga-cards-list .ga-card.ga-styled-card .ga-card-content a {
    color: var(--text-color);
}
.ga-cards-list .ga-card.link-card,
.ga-cards-list .ga-card.image-card {
    --card-border-radius: var(--component-border-radius) calc(var(--component-border-radius) * 3) var(--component-border-radius) var(--component-border-radius);
    border-radius: var(--card-border-radius);
    overflow: hidden;
}
.ga-cards-list .ga-card .ga-card-image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgb(0,0,0);
    background: linear-gradient(135deg, rgba(0,0,0,0.34) 0%, rgba(0,0,0,0.6) 96%);
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: calc(var(--font-size) * 1.2);
    opacity: 0.8;
    transition: all 0.2s ease-in-out;
}
.ga-cards-list .ga-card .ga-card-image-overlay:hover {
    opacity: 1;
}


.ga-cards-list .ga-card .ga-card-image-overlay .ga-card-image-overlay-title,
.ga-cards-list .ga-card .ga-card-image-overlay .ga-card-image-overlay-icon {
    margin-bottom: 1rem;
    transition: all 0.2s ease-in-out;
}
.ga-cards-list .ga-card .ga-card-image-overlay:hover .ga-card-image-overlay-icon {
    transform: scale(1.2);
}
.ga-cards-list .ga-card .ga-card-image-overlay:hover .ga-card-image-overlay-title {
    transform: translateY(100%);
}

.ga-cards-list .ga-card.link-card a {
    text-decoration: none;
    color: currentColor;
}
.ga-cards-list .ga-card.link-card {
    font-size: calc(var(--font-size) * 1.2);
    background-color: var(--component-bg);
    border-style: solid;
    border-width: 7px;
}
.ga-cards-list .ga-card.link-card .ga-card-link-block {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
}
.ga-cards-list .ga-card.link-card .ga-card-link-block-title,
.ga-cards-list .ga-card.link-card .ga-card-link-block-text {
    margin-bottom: 0.5rem;
}
@media (max-width: 476px) { 
    .row.ga-card-row:has(.ga-styled-card) {
        clip-path: unset !important;
    }
}
@media (max-width: 576px) {
    .row.ga-card-row:has(.ga-styled-card) {
        --bs-gutter-y: 0;
    }
    .row.ga-card-row:has(.ga-styled-card) {
        clip-path: polygon(0 3%, 100% 0%, 100% 97%, 0% 100%);
    }
    .ga-cards-list .ga-card.ga-styled-card:has(.ga-card-image)  {
        display: flex;
        flex-direction: row;
    }
}
@media (min-width: 576px) {
    .row.ga-card-row:has(.ga-styled-card) {
        --bs-gutter-y: 0.5rem;
    }
    .ga-cards-list .ga-styled-card {
        clip-path: polygon(0 5%, 100% 0%, 100% 95%, 0% 100%);
    }
    .ga-cards-list {
        padding: 0.5rem;
    }
    .ga-cards-list .row.ga-card-row:has(.ga-styled-card) >*:nth-child(even) .ga-card.ga-styled-card {
        transform: translateY(1rem) skew(-5deg, 5deg);
    }
    .ga-cards-list .row.ga-card-row:has(.ga-styled-card) >*:nth-child(odd) .ga-card.ga-styled-card {
        transform: translateY(-1rem) skew(5deg, -5deg);
    }
}
.ga-cards-list .ga-card:has(.ga-card-image) {
    display: grid;
    grid-template-columns: 1fr;
    /* grid-template-rows: auto; */
    grid-template-rows: 200px auto;
}
.ga-cards-list .ga-card-image {
    padding: 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}
.ga-cards-list .ga-card.ga-full,
.ga-cards-list .ga-card-image.ga-full {
    padding: 0 !important;
}
.ga-cards-list .ga-card-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.ga-cards-list .ga-card-image:not(.ga-full) img {
    max-height: 200px;
}

.ga-cards-list .ga-card-content {
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.ga-cards-list .ga-card-title {
    font-weight: bold;
    font-size: calc(var(--font-size) * 1.2);
    margin-bottom: 0.5rem;
}

.ga-cards-list .ga-card-text {
    font-size: calc(var(--font-size) * 0.9);
}

/* 
    blockapp/blocks/misc/list.py
*/
.ga-list {
    display: flex;
    flex-direction: column;
}
.ga-list .ga-list-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0.5rem;
    border-bottom: 1px solid rgba(var(--primary-button-bg-rgb), 0.2);
}
.ga-list .ga-list-item:last-child {
    border-bottom: none;
}
.ga-list .ga-list-header {
    padding: 0.5rem;
    border-bottom: 1px solid rgba(var(--primary-button-bg-rgb), 0.2);
}
.ga-list .ga-list-header .ga-list-title {
    font-weight: 900;
    font-size: calc(var(--font-size) * 1.6);
    margin-bottom: 0.5rem;
}
.ga-list .ga-list-header .ga-list-text {
    font-weight: 700;
    opacity: 0.7;
}
.ga-list .ga-list-ol .ga-list-item-icon {
    font-weight: bold;
    text-align: center;
    font-size: calc(var(--font-size) * 1.2);
    text-decoration: underline;
}
.ga-list .ga-list-ul {
    margin-right: 0.5rem;
}
.ga-list .ga-list-item-icon {
    flex: 0 0 2rem;
}
.ga-list .ga-list-item-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    padding-left: 0.5rem;
}
.ga-list .ga-list-item-title {
    font-weight: bold;
    font-size: calc(var(--font-size) * 1.2);
    margin-bottom: 0.5rem;
}
.ga-list .ga-list-item-text {
    font-size: calc(var(--font-size) * 0.9);
}

/* COMPARISON */
.ga-comparison-header {
    margin-bottom: 1rem;
    text-align: center;
    font-size: calc(var(--font-size) * 1.2);
}
.ga-comparison-compare {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 113.4rem;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 0.5rem;
}
@media only screen and (min-width: 1100px) {
  .ga-comparison-compare {
    flex-wrap: nowrap;
  }
}
.ga-comparison .ga-header {
    padding: 2rem 0;
}
.ga-comparison-col {
  display: block;
  width: 100%;
  margin: 0;
  flex: 1 1 30rem;
  display: grid;
  grid-template-rows: repeat(var(--row-count), 1fr);
}
@media only screen and (min-width: 1100px) {
  .ga-comparison-col {
    max-width: 30rem;
    margin: 0 1rem 0 0;
  }
}
@media only screen and (max-width: 1100px) {
  .ga-comparison-col.ga-comparison-col-head {
    display: none;
  }
}
.ga-comparison-col > * {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  background-color: var(--component-bg);
  color: var(--component-color);
  min-height: 2.4rem;
  padding: 1rem;
}
@media (min-width: 1100px) {
    .ga-comparison-col > * {
      min-height: 3.4rem;
    }
    .ga-comparison-col:not(.ga-comparison-col-head) > * {
        box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
    }
}
.ga-comparison-col > *:first-child {
  border-radius: 0.4rem 0.4rem 0 0;
}
.ga-comparison-col > *:last-child {
  border-radius: 0 0 0.4rem 0.4rem;
}
.ga-comparison-col > *:nth-child(even) {
  background-color: var(--component-bg-secondary);
  color: var(--component-color-secondary);
}
@media only screen and (min-width: 1100px) {
    .ga-comparison-col > * .hide-big {
        display: none;
    }
}
.hide-big {
    display: block;
}
.ga-comparison .ga-header,
.ga-comparison-col .ga-comparison-title,
.ga-comparison-col.ga-comparison-col-head > * {
  font-weight: 800;
  font-size: calc(var(--font-size) * 1.2);
  line-height: 1.4;
}
.ga-comparison-col.ga-comparison-col-head > * {
  background: none;
  align-items: flex-end;
  padding-right: 2.5rem;
}
.ga-comparison-col .ga-comparison-title-row-link,
.ga-comparison-col > * a,
.ga-comparison-col > * .link {
  text-decoration: none;
}


/* 
    MISC/IMAGES.PY
*/
.ga-image-list {

}
.ga-image-list .ga-image-list-images {
    width: 100%;
    height: 100%;
}
.ga-image-list .ga-image-list-col {
    margin-bottom: 0.5rem;
}

.ga-flex-display-row {
    display: flex;
    flex-direction: row;
}

.ga-flex-display-row .ga-flex-display-group:first-child {
    padding-right: 0.25rem;
}
.ga-flex-display-row .ga-flex-display-group:last-child {
    padding-left: 0.25rem;
}
.ga-flex-display-row .ga-flex-display-group:not(:first-child, :last-child) {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

.ga-flex-display-group-item {
    display: flex;
    flex-direction: column;
}

.ga-image-list .ga-image-list-img {
    width: 100%;
    height: 100%;
    border-radius: var(--component-border-radius);
    box-shadow: var(--component-box-shadow);
}
.ga-image-list-img-action {
    margin: 0.5em 0;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

/*
    MISC/TABS.py
*/
.ga-blockapp-tabs {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}
.ga-blockapp-tabs .ga-blockapp-tabs-actions {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--primary-button-bg);
    border-top: 1px solid var(--primary-button-bg);
    color: var(--body-color);
}
.ga-blockapp-tabs .ga-blockapp-tabs-action {
    color: var(--body-color);
    padding: 5px 10px;
    background-color: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    margin-bottom: -2px;
    margin-top: -2px;
}
.ga-blockapp-tabs .ga-blockapp-tabs-action.tab-open {
    border-bottom: 3px solid var(--primary-button-bg);
    border-top: 3px solid var(--primary-button-bg);
}
.ga-blockapp-tabs .ga-blockapp-tab {
    overflow: auto;
    display: none;
    flex: 1;
}
.ga-blockapp-tabs .ga-blockapp-tab.tab-open {
    display: flex;
    flex-direction: column;
}

/* 
    TYPOGRAPHY/QUOTE.py
*/
.ga-quote-block {
    --f-size: var(--font-size, 1rem);
    --margin-left: 1rem;
    --background-color: rgba(var(--primary-button-bg-rgb), 0.1);
    background-color: var(--background-color);
    padding: 2rem;
    display: flex;
    flex-direction: column;
    position: relative;
}
.ga-quote-block .ga-quote-block-icon {
    position: absolute;
    top: 5px;
    right: 5px;
    opacity: 0.6;
}
.ga-quote-block .ga-quote-block-text {
    font-size: var(--f-size);
    margin-bottom: 0.5rem;
}
.ga-quote-block .ga-quote-block-footer {
    padding-left: var(--margin-left);
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    font-size: calc(var(--f-size) * 0.9);
}
.ga-quote-block .ga-quote-block-author {
    font-weight: bold;
    margin-right: 0.2rem;
}
.ga-quote-block .ga-quote-block-date {
    opacity: 0.7;
}

/* 
    BLOCKAPP/MISC/ACCORDION.py
*/
.ga-accordion-block {
    --b-color: rgba(var(--primary-button-bg-rgb), 0.2);
    padding: 1rem 0;
}
.ga-accordion-block-item {
    border: 1px solid var(--b-color);
    border-radius: var(--component-border-radius);
    overflow: hidden;
    background-color: var(--component-bg);
}
.ga-accordion-block-item:not(:last-child) {
    margin-bottom: 1rem;
}
.ga-accordion-item-header {
    --h-size: calc(var(--font-size) * 1.2);
    padding: 1rem;
    cursor: pointer;
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    font-weight: bold;
    font-size: var(--h-size);
    transition: all 0.2s ease-in-out;
}
.ga-accordion-item-header .ga-accordion-item-icon {
    margin-right: 0.5rem;
    transition: all 0.2s ease-in-out;
    transform-origin: center;
}
.ga-accordion-item-text {
    padding: 1rem;
    display: none;
}
.ga-accordion-block-item.open > .ga-accordion-item-header {
    border-bottom: 1px solid var(--b-color);
    background-color: var(--component-bg-secondary);
}
.ga-accordion-block-item.open > .ga-accordion-item-header .ga-accordion-item-icon {
    transform: rotate(90deg);
}
.ga-accordion-block-item.open > .ga-accordion-item-text {
    display: block;
}




/* 
    models/LOGOS.PY
*/

.ga-branding-logos {
    display: flex;
    flex-direction: row;
    justify-content: var(--j, center);
    align-items: center;
    flex-wrap: wrap;
}
.ga-branding-logo-wrapper {
    opacity: var(--opacity);
    margin: 0 0.5rem;
}
.ga-branding-logo {
    height: var(--h);
    width: var(--h);
    object-fit: contain;
}

/* LAYOUT/GRID.py */
.ga-grid-block {
    --color: unset;
    --grid-bg: transparent;
    --col-bg: transparent;
    --border-radius: 0px;
    /* --grid-box-shadow: var(--component-box-shadow, none); */
    display: flex;
    flex-direction: column;
    color: var(--color);
    background-color: var(--grid-bg);
}
.ga-grid-column {
    height: 100%;
    /* box-shadow: var(--grid-box-shadow); */
}

/* TEXT_BANNER.py */
.text-banner {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 30px 40px;
  color: white;

  & .text-banner-heading {
    text-transform: uppercase;
  }

  & h1, & h2, & h3, & h4, & h5, & h6 {
      margin: 0;
  }
}

.text-banner::before {
  content: "";
  z-index: 2;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--background-color, black);
  background: linear-gradient(346deg, var(--background-color, black) 0%, rgba(0,0,0,1) 100%);
  opacity: 0.7;
}

.text-banner *:only-child {
    z-index: 3;
}

.text-banner::after {
  content: "";
  z-index: 1;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
}
  
/* CTA_BANNER.py */
.cta-banner {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 30px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.cta-banner.text-left {
    align-items: flex-start;
}
.cta-banner.text-center {
    align-items: center;
}
.cta-banner.text-right {
    align-items: flex-end;
}

.cta-banner .text-banner-heading {
    text-transform: uppercase;
}
.cta-banner h1, .cta-banner h2, .cta-banner h3, .cta-banner h4, .cta-banner h5, .cta-banner h6 {
    margin: 0;
}

/* HR.py */
hr,
.ga-hr-block {
    --h: 1px;
    --c: rgba(var(--primary-button-bg-rgb), 0.2);
    height: var(--h);
    background-color: var(--c);
    border: 0;
    width: 100%;
}

/* TEMPLATETAGS/RATING.PY */
.ga-rating-stars {
    padding: 0.5rem 0;
    text-align: center;
}

/* RICHTEXT */
.ga-rich-text {
    text-wrap: balance;
}

/* list.IconList */

.ga-icon-list-item {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 0.5rem;
}

.ga-icon-list-item .ga-icon-list-item-icon {
    margin-right: 0.5rem;
}

.ga-icon-list-item .ga-icon-list-item-content {
    display: flex;
    flex-direction: column;
}

/* LAYOUT/SPLIT.py */
.ga-split-block {
    display: flex;
    flex-direction: column;
}
split-item {
    display: flex;
    flex-direction: column;
    flex: 1;
}
split-item .ga-split-item-row {
    display: flex;
    flex-direction: row;
    flex: 1;
}
split-item .ga-split-item-col {
    background-image: var(--bg-img);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    flex-direction: column;
}
split-item .ga-split-item-col > * {
    margin-bottom: 0.5rem;
}
.ga-split-padding {
    --padding: var(--p, 0);
}
.ga-split-block > *:not(split-item).ga-split-padding {
    padding: calc(var(--padding) / 2);
}

.ga-split-block.ga-bordered:not(.top, .bottom) > *:not(:last-child),
.ga-split-block.ga-bordered.top > *:not(:last-child),
.ga-split-block.ga-bordered.bottom > *:not(:last-child) {
    border-bottom: calc(var(--border-width) / 2) var(--border-style) var(--border-color);
}


split-item.ga-split-padding .ga-split-item-col {
    padding-top: var(--padding);
    padding-bottom: var(--padding);
    padding-left: calc(var(--padding) / 2);
    padding-right: calc(var(--padding) / 2);
}
@media (max-width: 992px) {
    split-item .ga-split-item-row {
        flex-direction: column;
    }
    split-item .ga-split-item-col.img-col {
        min-height: 20dvh;
    }
}
@media (min-width: 992px) {
    split-item .ga-split-item-col {
        width: 50%;
    }
    split-item:nth-of-type(2n) .ga-split-item-row .ga-split-item-col:nth-child(1) {
        order: 1;
    }
    split-item:nth-of-type(2n + 1) .ga-split-item-row .ga-split-item-col:nth-child(2) {
        order: 1;
    }
    split-item.ga-split-padding .ga-split-item-col {
        --padding: var(--p, 0);
    }
    split-item:nth-of-type(2n).ga-split-padding .ga-split-item-col {
        padding-left: calc(var(--padding) / 3);
        padding-right: calc(var(--padding) * 2);
    }
    split-item:nth-of-type(2n + 1).ga-split-padding .ga-split-item-col {
        padding-right: calc(var(--padding) / 3);
        padding-left: calc(var(--padding) * 2);
    }
    .ga-split-block > *:not(split-item).ga-split-padding {
        padding-right: calc(var(--padding) * 2);
        padding-left: calc(var(--padding) * 2);
    }
}
@media (min-width: 1200px) {
    .ga-split-block > *:not(split-item).ga-split-padding {
        --padding: calc(var(--p, 0) * 1.2);
    }
    split-item.ga-split-padding .ga-split-item-col {
        --padding: calc(var(--p, 0) * 1.2);
    }
}
@media (min-width: 1400px) {
    .ga-split-block > *:not(split-item).ga-split-padding {
        --padding: calc(var(--p, 0) * 1.5);
    }
    split-item.ga-split-padding .ga-split-item-col {
        --padding: calc(var(--p, 0) * 1.5);
    }
}

/* IMAGE.py */
.ga-image-block {
    width: 100%;
    height: 100%;
}
.ga-image-block img {
    width: 100%;
    height: 100%;
}



/* 

    Containers for the .ga-block class.

*/
.ga-block-container > .ga-block,
.ga-block-container-fluid > .ga-block,
.ga-block-container-xxl > .ga-block,
.ga-block-container-xl > .ga-block,
.ga-block-container-lg > .ga-block,
.ga-block-container-md > .ga-block,
.ga-block-container-sm > .ga-block {
  width: 100%;
}

.ga-block-container-xl > .ga-block {
  padding-left: calc(calc(100vw - var(--container-xl)) / 2);
  padding-right: calc(calc(100vw - var(--container-xl)) / 2);
}

.ga-block-container-lg > .ga-block {
  /* max-width: 960px; */
  padding-left: calc(calc(100vw - 960px) / 2);
  padding-right: calc(calc(100vw - 960px) / 2);
}

.ga-block-container-md > .ga-block {
  /* max-width: 720px; */
  padding-left: calc(calc(100vw - 720px) / 2);
  padding-right: calc(calc(100vw - 720px) / 2);
}

.ga-block-container-sm > .ga-block {
  /* max-width: 540px; */
  padding-left: calc(calc(100vw - var(--container-sm)) / 2);
  padding-right: calc(calc(100vw - var(--container-sm)) / 2);
}

@media (max-width: 575px) {
  .container,
  .ga-block-container > .ga-block {
    --bs-gutter-x: 0.5rem;
    padding-right: calc(var(--bs-gutter-x) * 0.5);
    padding-left: calc(var(--bs-gutter-x) * 0.5);
  }
}
@media (min-width: 576px) {
  .ga-block-container > .ga-block {
    /* max-width: 540px; */
    padding-left: calc(calc(100vw - var(--container-sm)) / 2);
    padding-right: calc(calc(100vw - var(--container-sm)) / 2);
  }
}
@media (min-width: 768px) {
  .ga-block-container > .ga-block {
    /* max-width: 720px; */
    padding-left: calc(calc(100vw - var(--container)) / 2);
    padding-right: calc(calc(100vw - var(--container)) / 2);
  }
}
@media (min-width: 992px) {
  .ga-block-container-lg > .ga-block, .ga-block-container-md > .ga-block, .ga-block-container > .ga-block {
    /* max-width: 960px; */
    padding-left: calc(calc(100vw - var(--container-md)) / 2);
    padding-right: calc(calc(100vw - var(--container-md)) / 2);
  }
}
@media (min-width: 1200px) {
  .ga-block-container-xl > .ga-block, .ga-block-container-lg > .ga-block, .ga-block-container-md > .ga-block, .ga-block-container > .ga-block {
    /* max-width: 1140px; */
    padding-left: calc(calc(100vw - var(--container-xl)) / 2);
    padding-right: calc(calc(100vw - var(--container-xl)) / 2);
  }
}
@media (min-width: 1400px) {
  .ga-block-container-xxl > .ga-block, .ga-block-container-xl > .ga-block, .ga-block-container-lg > .ga-block, .ga-block-container > .ga-block {
    /* max-width: 1320px; */
    padding-left: calc(calc(100vw - var(--container-xxl)) / 2);
    padding-right: calc(calc(100vw - var(--container-xxl)) / 2);
  }
}



/* blockapp/misc/images/elastic_accordion */
.ga-elastic-group {
    --min-height: 500px;
    --children-full: calc(100% / var(--children));
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.ga-elastic-group.vertical {
    flex-direction: column;
    min-height: var(--min-height);
}

.ga-elastic-group .ga-elastic-placeholder {
    visibility: hidden;
    opacity: 0;
}

.ga-elastic-item {
    margin: 0.25em;
    background-image: var(--bg);
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 10px;
    position: relative;
    display: inline-block;
    overflow: hidden;
    cursor: pointer;
}
.ga-elastic-group:not(.vertical) .ga-elastic-item {
    width: var(--children-full);
    min-height: var(--min-height);
    background-size: cover;
}
.ga-elastic-group:not(.vertical) .ga-elastic-item:not(:has(.ga-elastic-caption)) {
    background-size: cover
}
.ga-elastic-group:not(.vertical) .ga-elastic-item .ga-elastic-caption {
    content: var(--caption, '');
    display: block;
    position: absolute;
    top: calc(var(--min-height) - 2em);
    bottom: 0;
    left: 0;
    right: 0;
    height: 100%;
    display: flex;
    padding: 0.5em;
    color: black;
    background-color: rgba(255, 255, 255, 0.6);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    transform: scale(0);
    transition: all 0.3s ease-in-out;
}
.ga-elastic-group:not(.vertical) .ga-elastic-item.elastic-item-clicked .ga-elastic-caption {
    color: white;
    background-color: rgba(0, 0, 0, 0.5);
    bottom: 0.5em;
    top: 0;
    left: 0;
    right: 0;
    padding: 0;
    font-size: 1.5em;
    transform: scale(1);
    transition: all 0.6s ease-in-out;
}

.ga-elastic-group:not(.vertical) .ga-elastic-item.elastic-item-clicked .ga-elastic-caption .ga-elastic-caption-description {
    white-space: normal;
    text-wrap: balance;
    font-size: 0.8em;
    padding: 0.5em;
}

@media (max-width: 576px) {
    .ga-elastic-group:not(.vertical) .ga-elastic-item.elastic-item-clicked .ga-elastic-caption .ga-elastic-caption-description {
        display: none;
    }
}
@media (max-width: 768px) {
    .ga-elastic-group:not(.vertical) .ga-elastic-item.elastic-item-clicked .ga-elastic-caption {
        font-size: 1.2em;
    }
    .ga-elastic-group:not(.vertical) .ga-elastic-item.elastic-item-clicked .ga-elastic-caption .ga-elastic-caption-description {
        font-size: 0.7em;
    }
}

.ga-elastic-caption-button-link {

}

.ga-elastic-group.vertical .ga-elastic-item {
    height: var(--children-full);
    width: calc(100% - 0.5em);
    background-size: 100%;
    margin: 0.25em;
}

/* BLOCKS/TYPOGRAPHY/NOTES */

.ga-note-block {
    --border-radius: var(--component-border-radius);
    --box-shadow: var(--component-box-shadow);
    --border-width: 1px;
    --border-style: solid;
    --padding: 0.5rem 1rem;
    --margin: 1rem 0;
    --text-color: var(--body-color);
    --header-color: var(--text-color);

    font-size: calc(var(--font-size) * 0.9);
    border-radius: var(--border-radius);
    border-width: var(--border-width);
    border-style: var(--border-style);
    border-color: var(--border-color);
    background-color: var(--bg-color);
    box-shadow: var(--box-shadow);
    color: var(--text-color);
    display: flex;
    flex-direction: column;
    position: relative;
    margin: var(--margin);
    overflow: hidden;
}
.ga-note-block.ga-note-type-primary {
    --header-color: var(--primary-button);
    --bg-color: rgba(var(--primary-button-bg-rgb), 0.15);
    --bg-color-header: rgba(var(--primary-button-bg-rgb), 0.8);
    --border-color: var(--bg-color-header);
}
.ga-note-block.ga-note-type-secondary {
    --header-color: var(--secondary-button);
    --bg-color: rgba(var(--secondary-button-bg-rgb), 0.15);
    --bg-color-header: rgba(var(--secondary-button-bg-rgb), 0.8);
    --border-color: var(--bg-color-header);
}
.ga-note-block.ga-note-type-note {
    --header-color: var(--info-button);
    --bg-color: rgba(var(--info-button-bg-rgb), 0.15);
    --bg-color-header: rgba(var(--info-button-bg-rgb), 0.8);
    --border-color: var(--bg-color-header);
}
.ga-note-block.ga-note-type-tip {
    --header-color: var(--success-button);
    --bg-color: rgba(var(--success-button-bg-rgb), 0.15);
    --bg-color-header: rgba(var(--success-button-bg-rgb), 0.8);
    --border-color: var(--bg-color-header);
}
.ga-note-block.ga-note-type-warning {
    --header-color: var(--warning-button);
    --bg-color: rgba(var(--warning-button-bg-rgb), 0.15);
    --bg-color-header: rgba(var(--warning-button-bg-rgb), 0.8);
    --border-color: var(--bg-color-header);
}
.ga-note-block.ga-note-type-danger {
    --header-color: var(--danger-button);
    --bg-color: rgba(var(--danger-button-bg-rgb), 0.15);
    --bg-color-header: rgba(var(--danger-button-bg-rgb), 0.8);
    --border-color: var(--bg-color-header);
}

.ga-note-block .ga-note-block-heading {
    font-size: calc(var(--font-size) * 1.2);
    background-color: var(--bg-color-header);
    color: var(--header-color);
    padding: var(--padding);
    margin-bottom: 0.5rem;
}
.ga-note-block .ga-note-block-title {
    font-weight: bold;
}
.ga-note-block .ga-note-block-text {
    padding: var(--padding);

}


/* blockapp/blocks/cards/numbers.py */
.number-list-block {
    align-items: center;
    text-align: center;
    padding-top: 4rem;
    padding-bottom: 3rem;
    font-family: var(--number-list-block-font);
    background-color: var(--component-bg-secondary, transparent);
}

.number-list-block .counter-section {
    --items: 0; /* Number of items, defined as inline style on element which uses class. */
    display: grid;
    grid-template-columns: 1;
    grid-template-rows: 1fr;
}


.number-list-block-number {
    padding: 1rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    border-radius: var(--component-border-radius);
    background-color: var(--component-bg, transparent);
    box-shadow: var(--component-box-shadow);
    color: var(--component-color, unset);
    margin: 0.5rem;
    height: 100%;
    width: 100%;
    flex: 1;
}

.number-list-block-display {
    font-size: var(--font-size);
    font-weight: bold;
    border-bottom: 1px solid var(--body-color);
}

.number-list-block-title {
    margin-top: 10px;
    font-size: calc(var(--font-size) / 2);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    height: 100%;
}


/* blocks/misc/subpages */
.ga-page-block {
    padding-top: 1rem;
    padding-bottom: 1rem;
    gap: 1rem;
}
.ga-page-block .ga-page-block-item-empty {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: calc(var(--font-size) * 1.2);
    font-weight: bold;
    height: 100%;
}
.ga-page-block .ga-page-block-item-empty svg {
    width: calc(var(--font-size) * 4.5);
    height: calc(var(--font-size) * 4.5);
    padding: 1rem;
    overflow: visible;
}
.ga-page-block .ga-page-block-item {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    overflow: hidden;
    border-radius: var(--component-border-radius);
    background-color: var(--component-bg);
    box-shadow: var(--component-box-shadow);
}
.ga-page-block .ga-page-block-item-header,
.ga-page-block .ga-page-block-item-body,
.ga-page-block .ga-page-block-item-footer {
    padding: 0 0.5rem;
}
.ga-page-block .ga-page-block-item-header {
    padding-top: 0.5rem;
}
.ga-page-block .ga-page-block-item-footer {
    padding-bottom: 0.5rem;
}
.ga-page-block .ga-page-block-item-metadata {
    padding: 0 0.5rem;
    display: none;
    flex-direction: column;
    align-items: flex-start;
}
.ga-page-block .ga-page-block-item-metadata .ga-page-block-item-metadata-item {
    display: flex;
    flex-direction: row;
    margin-bottom: 0.25rem;
}
.ga-page-block .ga-page-block-item-metadata .ga-page-block-item-metadata-item svg {
    width: 1rem;
    height: 1rem;
}
.ga-page-block .ga-page-block-item-metadata .ga-page-block-item-metadata-item-key {
    font-weight: bold;
    margin-right: 0.5rem;
}
.ga-page-block .ga-page-block-item-metadata .ga-page-block-item-metadata-item-value {
    opacity: 0.7;    
}
.ga-page-block .ga-page-block-item-logo img {
    width: 100%;
    height: 100%;
    max-height: 150px;
    object-fit: cover;
}
.ga-page-block .ga-page-block-item-logo a {
    width: fit-content;
}
.ga-page-block .ga-page-block-item-logo img.must-contain {
    object-fit: contain;
    object-position: left;
}
.ga-page-block .ga-page-block-item-logo a {

}
.ga-page-block .ga-page-block-item-header a {
    text-decoration: none;
    color: var(--body-color);
}
.ga-page-block .ga-page-block-item-header h3 {
    display: inline-block;
}

.ga-page-block.ga-page-block-list {
    display: flex;
    flex-direction: column;
}
.ga-page-block.ga-page-block-list .ga-page-block-item {
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    gap: 1rem;
}
.ga-page-block.ga-page-block-list .ga-page-block-item-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.5rem;
}
.ga-page-block.ga-page-block-list .ga-page-block-item-content .ga-page-block-item-header {

}
.ga-page-block.ga-page-block-list .ga-page-block-item-content .ga-page-block-item-body {

}
.ga-page-block.ga-page-block-list .ga-page-block-item-content .ga-page-block-item-footer {

}

.ga-page-block.ga-page-block-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 1rem;
}
.ga-page-block.ga-page-block-grid .ga-page-block-item {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.25rem;
}
.ga-page-block.ga-page-block-grid .ga-page-block-item-logo {
    
}
.ga-page-block.ga-page-block-grid .ga-page-block-item-header {

}
.ga-page-block.ga-page-block-grid .ga-page-block-item-metadata {

}
.ga-page-block.ga-page-block-grid .ga-page-block-item-body {

}
.ga-page-block.ga-page-block-grid .ga-page-block-item-footer {
    margin-top: auto;
}

@media (min-width: 768px) {
    .ga-page-block.ga-page-block-list:not(.image-shown) .ga-page-block-item {
        display: grid;
        grid-template-columns: 2fr 1fr;
    }
    .ga-page-block.ga-page-block-list.image-shown .ga-page-block-item {
        display: grid;
        grid-template-columns: 1fr 2fr 1fr;
        max-height: 250px;
    }
    .ga-page-block.ga-page-block-list .ga-page-block-item-metadata {
        align-items: flex-end;
    }
    .ga-page-block.ga-page-block-list .ga-page-block-item-logo {
        display: flex;
        justify-content: flex-end;
        align-items: flex-end;
        height: 100%;
    }
    .ga-page-block.ga-page-block-list .ga-page-block-item-logo img {
        object-position: right;
        width: 100%;
        height: 100%;
        max-height: 250px;
    }
    .ga-page-block.ga-page-block-list .ga-page-block-item-logo a {
        width: 100%;
        height: 100%;
    }
    .ga-page-block.ga-page-block-list .ga-page-block-item-content {
        min-width: min(100%, 500px);
    }
    .ga-page-block.ga-page-block-grid,
    .number-list-block .counter-section {
        grid-template-columns: repeat(calc(var(--items) * 0.25), 1fr);
        grid-template-rows: repeat(calc(var(--items) * calc(var(--items) * 0.25)), 1fr);
    }
    .ga-page-block .ga-page-block-item-metadata {
        display: flex;
    }
}

@media (min-width: 992px) {
    .ga-page-block.ga-page-block-list .ga-page-block-item-metadata {
        align-items: flex-start;
    }
    .ga-page-block.ga-page-block-grid,
    .number-list-block .counter-section {
        grid-template-columns: repeat(calc(var(--items) * 0.5), 1fr);
        grid-template-rows: calc(var(--items) * calc(var(--items) * 0.5));
    }
}

@media (min-width: 1200px) {
    .ga-page-block.ga-page-block-list .ga-page-block-item-metadata {
        align-items: flex-start;
    }
    .ga-page-block.ga-page-block-grid,
    .number-list-block .counter-section {
        grid-template-columns: repeat(calc(var(--items) * 1), 1fr);
        grid-template-rows: 1fr;
    }
}
.d-flex {
  display: flex;
}
.d-inline-flex {
  display: inline-flex;
}

/* IMAGE_BANNER.py */
.image-banner {
    height: var(--h, 300px);
    width: 100%;
    position: relative;
    overflow: hidden;
}
.image-banner::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: var(--bg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition: all 0.8s ease-in-out;
}
.image-banner {
    --scale: 1.05;
}
.image-banner.ga-zoom-out::after {
    transform: scale(var(--scale));
}
.image-banner.ga-zoom-out:hover::after {
    transform: scale(1);
}
.image-banner.ga-zoom-in:hover::after {
    transform: scale(var(--scale));
}

/* SPACER */
.ga-spacer {
    height: var(--spacer-height);
}
