/* ====================
1. resets & defaults
2. base styles
3. layout
4. components
==================== */


:root{
    --font-family: 'Noto Sans Georgian', sans-serif;
    --font-family-secondary: 'Noto Serif Georgian', serif;

    --bs-font-sans-serif: var(--font-family);
    --bs-body-font-size: var(--body-font-size);

    --bs-body-bg: #fff;
    --bs-body-bg-rgb: 255, 255, 255;

    --bs-body-color-rgb: 35,31,32;
    --bs-body-color: #231F20;
    --bs-secondary-color-rgb: 44,54,63;
    --bs-secondary-color: #2C363F;
    --bs-tertiary-color-rgb: 76,91,92;
    --bs-tertiary-color: #4C5B5C;

    --bs-emphasis-color: #000;
    --bs-emphasis-color-rgb: 0,0,0;

    --bs-heading-color: var(--bs-body-color);

    --bs-primary-rgb: 255,72,86;
    --bs-primary: #FF4856;
    --bs-primary-bg-subtle: #ff6a76;
    --bs-primary-text-emphasis: #d43640;
    --bs-highlight-bg: rgba(var(--bs-primary-rgb), .15);

    --bs-secondary-rgb: 76,91,92;
    --bs-secondary: #4C5B5C;
    --bs-secondary-bg-subtle: #d9d9d9;
    --bs-secondary-text-emphasis: #2C363F;

    --bs-danger-rgb: 240,122,129;
    --bs-danger: #F07A81;
    --bs-danger-bg-subtle: #F9989E;
    --bs-danger-text-emphasis: #D73E47;

    --bs-light-rgb: 235,235,235;
    --bs-light: #ebebeb;
    --bs-light-bg-subtle: #f2f1ef;
    --bs-light-text-emphasis: #fcfcfc;

    --bs-dark-rgb: 35,31,32;
    --bs-dark: #231F20;
    --bs-dark-bg-subtle: #D5D7D9;
    --bs-dark-text-emphasis: #000;


    --bs-link-color: var(--bs-body-color);
    --bs-link-color-rgb: var(--bs-body-color-rgb);
    --bs-link-decoration: none;
    --bs-link-hover-color: var(--bs-primary-bg-subtle);
    --bs-link-hover-color-rgb: 255,106,118;
    --bs-link-active-color: var(--bs-primary-text-emphasis);
    --bs-link-active-color-rgb: 212,54,64;


    --bs-border-color: #d9d9d9;
    --bs-border-color-translucent: rgba(217,217,217,1);

    --bs-form-invalid-color: #D7263D;
    --bs-form-invalid-border-color: #D7263D;


    --btn-primary: var(--bs-primary);
    --btn-primary-hover: var(--bs-primary-bg-subtle);
    --btn-primary-active: var(--bs-primary-text-emphasis);

    --btn-secondary: var(--bs-secondary);
    --btn-secondary-hover: #7C8D8E;
    --btn-secondary-active: var(--bs-secondary-text-emphasis);

    --btn-light: var(--bs-light);
    --btn-light-hover: var(--bs-light-bg-subtle);
    --btn-light-active: #ddd;

    --btn-default-color: var(--bs-dark);

    --icon-color: var(--bs-dark);

    --color-muted: #a4a4a4;

    --app-scrollbar-width: 4px;

    --app-header-height: 160px;
    --app-content-px: 16px;


    --container-size-1: 400px;
    --container-size-2: 668px;
    --container-size-3: 900px;
    --container-size-4: 1200px;
    --container-size-5: 1368px;


    --fs-h1: 2rem;
    --fs-h2: 1.875rem;
    --fs-h3: 1.5rem;
    --fs-h4: 1.25rem;
    --fs-h5: 1.125rem;
    --fs-h6: 1rem;

    --body-font-size: var(--fs-text3);
    --fs-text1: 1.25rem;
    --fs-text2: 1.125rem;
    --fs-text3: 1rem;
    --fs-text4: 14px;
    --fs-text5: 13px;
    --fs-text6: 12px;


    --element-size-1: 1.375rem;
    --element-size-2: 1.75rem;
    --element-size-3: 2.125rem;
    --element-size-4: 2.375rem;
    --element-size-5: 2.75rem;
    --element-size-6: 3.25rem;

    --icon-size-xs: 1rem;
    --icon-size-sm: 1.25rem;
    --icon-size-md: 1.5rem;
    --icon-size-lg: 1.75rem;
    --icon-size-xl: 2rem;


    --form-control-height: var(--element-size-4);
    --form-control-px: .875rem;
    --form-control-py: .375rem;
    --form-control-fs: 1rem;
    --form-control-color: var(--bs-body-color);
    --form-control-placeholder-color: var(--bs-secondary);
    --form-control-bg: var(--bs-body-bg);
    --form-control-border-color: var(--bs-secondary);
    --form-control-border-radius: var(--radius-md);
    --form-control-active-color: var(--form-control-color);
    --form-control-active-bg: var(--form-control-bg);
    --form-control-active-border-color: var(--bs-primary);
    --form-control-disabled-bg: #F8F9FB;
    --form-control-disabled-border-color: var(--bs-border-color-translucent);
    --form-control-disabled-color: #959BA4;

    --radius-sm: 8px;
    --radius-md: 12px;

    --bs-border-radius: var(--radius-md);
}

@media (min-width: 768px) {
    :root{
        --app-content-px: 32px;
    }
}

html{
    font-size: 14px;
}

@media (min-width: 992px){
    html{
        font-size: 16px;
    }
}



/* ==================== 1. resets & defaults ==================== */
html,body,
h1,h2,h3,h4,h5,h6,
ul,ol,p,figure,
form,fieldset,input,textarea{
    margin: 0;
    padding: 0;
}

header,nav,main,article,section,aside,footer,figure{
    display: block;
}

*{box-sizing: border-box; -webkit-tap-highlight-color: transparent;}

/* ----- */

html,body{
    width: 100%;
    height: 100%;
}

nav ul,.nav ul{list-style: none;}
a img,fieldset{border:0;}

.logo img{display: block;}
.img-container img,
.thumb img,
figure img{
    display: block;
    max-width: 100%;
}

button,
input[type=button],
input[type=submit]{
    cursor: pointer;
    outline: none !important;
}

a.is-active{cursor: default;}

.disabled-click{pointer-events: none;}

/* ----- */

a{
    --icon-color: var(--bs-link-color);

    color: var(--bs-link-color);
    text-decoration: var(--bs-link-decoration);
}
a:hover{
    --icon-color: var(--bs-link-hover-color);
    color: var(--bs-link-hover-color);
}
a:hover:active{
    --icon-color: var(--bs-link-active-color);
    color: var(--bs-link-active-color);
}

.svg-icon path{
    fill: var(--icon-color) !important;
    transition: fill 0.15s ease-in-out;
}

/* ----- */

.item-fade{opacity: 0; visibility: hidden; -webkit-transition: opacity 0.3s linear; transition: opacity 0.3s linear; z-index: -1;}
.item-fade.fade-in{opacity: 1; visibility: visible; z-index: 1;}

/* ----- */

b{font-weight: 500}
strong{font-weight: 700}

/* ----- */

body{
    background: #fff;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    font-family: var(--font-family);

    color: var(--bs-body-color);
    font-size: 14px;
}


/* ==================== 2. base styles ==================== */
.app{
    display: flex;
    flex-direction: column;
    min-height: 100%;
}
main.app-page{
    flex-grow: 1;
}

h1,h2,h3,h4,h5,h6{
    color: var(--bs-heading-color);
    font-family: var(--font-family-secondary);
    font-weight: bold;
}
h1{font-size: var(--fs-h1);}
h2{font-size: var(--fs-h2);}
h3{font-size: var(--fs-h3);}
h4{font-size: var(--fs-h4);}
h5{font-size: var(--fs-h5);}
h6{font-size: var(--fs-h6);}

.title,
.page-title,.section-title{
    font-feature-settings: "case" on;
    text-transform: uppercase;
}

.text,
.text-wrap{
    color: var(--bs-body-color);
    font-size: var(--body-font-size);
    font-weight: 400;
    font-family: var(--font-family-secondary);
}
.text-wrap > *{margin-bottom: 20px;}
.text-wrap > *:last-child{margin-bottom: 0;}
.text-wrap hr{margin: 35px 0;}
.text-wrap + .row{margin-top: 28px;}
.text-wrap a:not(.btn){
    --bs-link-color: var(--bs-primary);
    --bs-link-decoration: underline;
}
.text-wrap a:not(.btn):hover{
    --bs-link-hover-color: var(--bs-primary-bg-subtle);
}

/* ----------- container ----------- */
.container,
.container-xxs,
.container-xs,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-fluid{
    width: 100%;
    padding-left: var(--app-content-px);
    padding-right: var(--app-content-px);
    margin: 0 auto;
}
.container,
.container-xxs,
.container-xs,
.container-sm,
.container-md,
.container-lg,
.container-xl{
    --container-width: var(--container-size-5, 100%);
    max-width: calc(var(--container-width) + var(--app-content-px) * 2);
}

.container .container-xxs,
.container .container-xs,
.container .container-sm,
.container .container-md,
.container .container-lg{
    max-width: var(--container-width);
    padding-left: 0;
    padding-right: 0;
}

.container-xxs{
    --container-width: var(--container-size-1);
}
.container-xs{
    --container-width: var(--container-size-2);
}
.container-sm{
    --container-width: var(--container-size-3);
}
.container-md{
    --container-width: var(--container-size-4);
}
.container-fluid{
    max-width: 100%;
}
/* ----------- /container ----------- */


/* ==================== 3. layout ==================== */

/* ---------- header ---------- */
.app-header{
    border-top: 1px solid var(--bs-border-color);
    border-bottom: 1px solid var(--bs-dark);
    position: relative;
    z-index: 300;
}
.app-header .main-wrap{
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.25rem 0;
}

.app-header .logo{
    flex-shrink: 0;
}
.app-header .logo img{
    display: block;
    max-width: 64px;
}

/* nav */
.app-header nav.js-app-nav{
    flex-grow: 1;
    min-width: 0;
    overflow-x: auto;
}
.app-header nav.js-app-nav > ul{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 1.25rem;
    width: max-content;
    min-width: 100%;
}
.app-header nav a{
    --bs-link-color: var(--bs-dark);

    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;

    transition: color .15s ease-in-out;
}
.app-header nav a:hover{
    --bs-link-hover-color: var(--bs-primary);
}

.app-header .col-end{
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}
.app-header .search-box{
    width: 140px;
}

@media (min-width: 1200px) {
    .app-header .logo img{
        max-width: 80px;
    }
    .app-header .main-wrap{
        gap: 2rem;
    }
    .app-header nav.js-app-nav > ul{
        gap: 1.75rem;
    }
    .app-header nav a{
        font-size: 14px;
    }
    .app-header .col-end{
        gap: 1.5rem;
    }
    .app-header .search-box{
        width: 220px;
    }
}

.app-header .lang-switch{
    --bs-link-color: var(--bs-dark);

    font-size: 14px;
    font-weight: bold;
    white-space: nowrap;
    color: var(--color-muted);
}
.app-header .lang-switch a{
    color: inherit;
    text-decoration: none;
}
.app-header .lang-switch a.is-muted{
    pointer-events: none;
    cursor: default;
}
.app-header .lang-switch a:not(.is-muted){
    color: var(--bs-dark);
}
.app-header .lang-switch a:not(.is-muted):hover{
    color: var(--bs-primary);
}

.app-header .search-box input{
    font-family: var(--font-family);
    font-size: 14px;
}

.app-header .search-results-wrap{
    --spacing-x: 1.25rem;

    display: none;
    width: 320px;
    background-color: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius-md);
    box-shadow: 0 6px 14px 0 rgba(0,0,0,.11);
    padding: 0 var(--spacing-x);
    margin-top: 0.5rem;
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 10;
}
.app-header .search-results-wrap .scrollable-container{
    max-height: 282px;
    overflow-y: auto;
    padding: 0.75rem 0;
}
.app-header .search-results-item{
    --bs-link-color: var(--bs-body-color) !important;
    --icon-color: var(--bs-secondary);

    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
    padding: 0.625rem;
    border-radius: var(--radius-sm);
    font-size: 14px;
    transition: background-color .15s ease-in-out;
}
.app-header .search-results-item .svg-icon{
    flex-shrink: 0;
    width: 1.25rem;
    height: auto;
}
.app-header .search-results-item:hover{
    --bs-link-hover-color: var(--bs-link-color);
    --icon-color: var(--bs-primary);
    background-color: var(--bs-light-bg-subtle);
}
.app-header .search-results-footer{
    display: flex;
    justify-content: flex-end;
    border-top: 1px solid var(--bs-border-color);
    padding: 1rem 0;
}
.app-header .search-results-empty{
    padding: 1.25rem 0;
    font-size: 14px;
    color: var(--bs-secondary);
}

@media (min-width: 992px) {
    .app-header .search-results-wrap{
        width: 900px;
    }
}

@media (max-width: 991px) {
    .app-header .search-results-wrap{
        width: 100%;
    }
}

.app-header .hamburger{
    display: none;
}
.app-header .mobile-nav-wrap{
    display: none;
}

@media (max-width: 991px) {
    .app-header nav.js-app-nav,
    .app-header .col-end{
        display: none;
    }
    .app-header .hamburger{
        display: block;
        margin-left: auto;
    }

    .app-header .mobile-nav-wrap{
        display: block;
        height: 0;
        overflow: hidden;
        border-top: 0 solid var(--bs-border-color);
        transition: height .2s ease-in-out;
    }
    .app-header.nav-is-open .mobile-nav-wrap{
        border-top-width: 1px;
    }
    .app-header .mobile-nav-wrap nav ul{
        list-style: none;
        padding: 1.25rem 0 0.5rem;
        margin: 0;
    }
    .app-header .mobile-nav-wrap nav li + li{
        margin-top: 1.125rem;
    }
    .app-header .mobile-nav-wrap nav a{
        --bs-link-color: var(--bs-dark);
        display: block;
        font-size: 16px;
        font-weight: 500;
    }
    .app-header .mobile-nav-bottom{
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: 1rem 0 1.5rem;
    }
    .app-header .mobile-nav-bottom .search-wrap{
        flex-grow: 1;
        min-width: 0;
    }
    .app-header .mobile-nav-bottom .search-box{
        width: auto;
    }

    .app-header.nav-is-open .mobile-nav-wrap{
        height: var(--mobile-nav-height, auto);
    }
    .app-header.nav-is-open.nav-is-settled .mobile-nav-wrap{
        overflow: visible;
    }
}
/* ---------- /header ---------- */

/* ---------- hamburger ---------- */
.hamburger,
.hamburger span,
.hamburger span::before,
.hamburger span::after{
    width: 18px;
}
.hamburger{
    flex-shrink: 0;
    display: block;
    height: 14px;
    background-color: transparent;
    border: 0;
    padding: 0;
    overflow: visible;
    position: relative;
    z-index: 50;
}
.hamburger:before{
    content: "";
    position: absolute;
    top: -12px;
    bottom: -12px;
    left: -12px;
    right: -12px;
}
.hamburger span,
.hamburger span::before,
.hamburger span::after {
    display: block;
    height: 1px;
    background-color: var(--bs-dark);
    position: absolute;
    transition: transform 0.15s ease;
}
.hamburger span{
    top: 0;
}
.hamburger span::before,
.hamburger span::after {
    content: "";
    display: block;
}
.hamburger span::before {
    width: 100%;
    top: 6px;
    transition-property: transform, opacity;
}
.hamburger span::after {
    top: 12px;
}
.nav-is-open .hamburger span{
    transform: translate3d(-1px, 7px, 0) rotate(45deg);
}
.nav-is-open .hamburger span::before {
    transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);
    opacity: 0;
}
.nav-is-open .hamburger span::after {
    transform: translate3d(0, -12px, 0) rotate(-90deg);
}
.nav-is-open .hamburger span,
.nav-is-open .hamburger span::before,
.nav-is-open .hamburger span::after{
    width: 21px;
}
/* ---------- /hamburger ---------- */

/* ---------- footer ---------- */
.app-footer{
    flex-shrink: 0;
    background-color: #1a1a1a;
    overflow: hidden;
    position: relative;
    z-index: 250;

    color: var(--bs-light-bg-subtle);
    font-family: var(--font-family);
    font-size: 14px;
}
.app-footer a{
    --bs-link-color: var(--bs-light-text-emphasis);
    transition: color .15s ease-in-out;
}
.app-footer a:hover{
    --bs-link-hover-color: var(--bs-primary);
}

.app-footer > .container{
    padding-top: 2.25rem;
    padding-bottom: 2.25rem;
}

.app-footer .social-items-row{
    --bs-gutter-x: 1.25rem;
}
.app-footer .social-items-row img,
.app-footer .social-items-row svg{
    display: block;
    width: auto;
    height: 1.25rem;
}

.app-footer .links-row{
    --bs-gutter-x: 2.5rem;
    --bs-gutter-y: 0.5rem;
    justify-content: flex-end;
    font-weight: 500;
}

.app-footer .bottom-bar{
    background-color: #000;
    padding: 0.75rem 0;
}
.app-footer .bottom-bar .container{
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 36px;
    font-size: var(--fs-text4);
}
.app-footer .bottom-bar .createdby{
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.app-footer .bottom-bar .createdby img{
    display: block;
    height: 15px;
}

.hide-footer ~ .app-footer{
    display: none !important;
}

/* ---------- section ---------- */
.section{
    --section-spacing-bottom: 1.875rem;
    border-bottom: 1px solid var(--bs-dark);
    padding-bottom: var(--section-spacing-bottom);
    margin-bottom: var(--section-spacing-bottom);
}
.section.border-bottom-0{
    border-bottom: 0;
    padding-bottom: 0;
}
/* ---------- /section ---------- */

/* ---------- page title ---------- */
.page-title,
.section-title{
    margin-top: 1.5rem;
    margin-bottom: 2rem;

    text-align: center;
}
.page-title::after,
.section-title::after {
    content: "";
    display: block;
    width: 100%;
    max-width: 100px;
    border-bottom: 2px solid var(--bs-border-color);
    margin: 0.9375rem auto 0;
}
@media (min-width: 768px) {
    .page-title,
    .section-title{
        margin-bottom: 3.25rem;
    }
}
/* ---------- /page title ---------- */

/* ---------- top banner ---------- */
.banner{
    width: 100%;
    position: relative;
    z-index: 1;
}
.banner .btn-close{
    position: absolute;
    top: 0;
    right: 0;
}

.app-top-banner-container{
    padding: 2.125rem var(--app-content-px) 1.875rem;
}
.app-top-banner-container .banner{
    max-width: 970px;
    margin: 0 auto;
}
/* ---------- /top banner ---------- */

@media (max-width: 575px) {
    .app-footer > .container > .row{
        justify-content: center;
        text-align: center;
    }
    .app-footer .links-row{
        justify-content: center;
    }
    .app-footer .bottom-bar .container{
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
    }
}
/* ---------- /footer ---------- */


/* ==================== 4. components ==================== */

/* ---------- buttons ---------- */
.btn{
    --bs-btn-padding-x: 1.375rem;
    --bs-btn-padding-y: 0.375rem;
    --bs-btn-font-size: 1rem;
    --bs-btn-font-weight: 500;
    --bs-btn-border-radius: var(--radius-md);
    --bs-btn-disabled-opacity: 0.3;

    --btn-size: var(--element-size-5);
    --btn-gap: 0.75rem;
    --icon-size: var(--icon-size-md);
    --icon-color: var(--bs-btn-color);

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--btn-gap);
    min-width: var(--btn-size);
    min-height: var(--btn-size);
    font-family: var(--font-family);
}

.btn-sm{
    --bs-btn-padding-x: 1rem;
    --bs-btn-padding-y: 0.25rem;
    --bs-btn-font-size: 14px;
    --btn-size: var(--element-size-3);
    --btn-gap: 0.625rem;
}
.btn-lg{
    --bs-btn-padding-x: 1.75rem;
    --btn-size: var(--element-size-6);
}

.btn img,
.btn svg{
    flex-shrink: 0;
    width: var(--icon-size);
    height: auto;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--btn-primary);
    --bs-btn-border-color: var(--btn-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--btn-primary-hover);
    --bs-btn-hover-border-color: var(--btn-primary-hover);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--btn-primary-active);
    --bs-btn-active-border-color: var(--btn-primary-active);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--btn-primary);
    --bs-btn-disabled-border-color: var(--btn-primary);
}
.btn-outline-primary{
    --bs-btn-color: var(--btn-default-color);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--bs-dark);
    --bs-btn-hover-color: var(--btn-default-color);
    --bs-btn-hover-bg: transparent;
    --bs-btn-hover-border-color: var(--btn-primary-hover);
    --bs-btn-active-color: var(--btn-default-color);
    --bs-btn-active-bg: transparent;
    --bs-btn-active-border-color: var(--btn-primary-active);
    --bs-btn-disabled-color: var(--btn-default-color);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-dark);
}

/* secondary */
.btn-secondary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--btn-secondary);
    --bs-btn-border-color: var(--btn-secondary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--btn-secondary-hover);
    --bs-btn-hover-border-color: var(--btn-secondary-hover);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--btn-secondary-active);
    --bs-btn-active-border-color: var(--btn-secondary-active);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--btn-secondary);
    --bs-btn-disabled-border-color: var(--btn-secondary);
}
.btn-outline-secondary {
    --bs-btn-color: var(--btn-secondary);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--btn-secondary);
    --bs-btn-hover-color: var(--btn-secondary-hover);
    --bs-btn-hover-bg: transparent;
    --bs-btn-hover-border-color: var(--btn-secondary-hover);
    --bs-btn-active-color: var(--btn-secondary-active);
    --bs-btn-active-bg: transparent;
    --bs-btn-active-border-color: var(--btn-secondary-active);
    --bs-btn-disabled-color: var(--btn-secondary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--btn-secondary);
}

.btn-dark {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-dark);
    --bs-btn-border-color: var(--bs-dark);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #000;
    --bs-btn-hover-border-color: #000;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #000;
    --bs-btn-active-border-color: #000;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-dark);
    --bs-btn-disabled-border-color: var(--bs-dark);
}

.btn-outline-white {
    --bs-btn-color: #fff;
    --bs-btn-bg: transparent;
    --bs-btn-border-color: #fff;
    --bs-btn-hover-color: var(--bs-primary);
    --bs-btn-hover-bg: #fff;
    --bs-btn-hover-border-color: #fff;
    --bs-btn-active-color: var(--bs-primary);
    --bs-btn-active-bg: #fff;
    --bs-btn-active-border-color: #fff;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #fff;
}

/* light */
.btn-light {
    --bs-btn-color: var(--bs-secondary);
    --bs-btn-bg: var(--btn-light);
    --bs-btn-border-color: var(--btn-light);
    --bs-btn-hover-color: var(--bs-secondary);
    --bs-btn-hover-bg: var(--btn-light-hover);
    --bs-btn-hover-border-color: var(--btn-light-hover);
    --bs-btn-active-color: var(--bs-secondary);
    --bs-btn-active-bg: var(--btn-light-active);
    --bs-btn-active-border-color: var(--btn-light-active);
    --bs-btn-disabled-color: var(--bs-secondary);
    --bs-btn-disabled-bg: var(--btn-light);
    --bs-btn-disabled-border-color: var(--btn-light);
}
/* ---------- /buttons ---------- */

/* ---------- btn-close ---------- */
.btn-close{
    --bs-btn-close-bg: none;
    --bs-btn-close-opacity: 1;
    --bs-btn-close-hover-opacity: 0.9;
    --bs-btn-close-focus-shadow: none;
    --bs-btn-close-focus-opacity: 1;
    --bs-btn-close-disabled-opacity: 0.25;

    --btn-close-padding: 0.625rem;
    --btn-close-size: auto;

    --btn-close-icon-size: 20px;
    --btn-close-icon-color: var(--bs-light-text-emphasis);
    --btn-close-icon-shadow: none;

    width: var(--btn-close-size);
    height: var(--btn-close-size);
    padding: var(--btn-close-padding);
}
.btn-close img,
.btn-close svg{
    display: block;
    width: var(--btn-close-icon-size);
    height: auto;
}
.btn-close svg{
    filter: var(--btn-close-icon-shadow);
}
.btn-close svg > *{
    fill: var(--btn-close-icon-color);
}
/* ---------- /btn-close ---------- */


/* ---------- form ---------- */
.form-group{
    margin-bottom: 1.875rem;
}
.row .form-group{
    margin-bottom: 0;
}

.form-label{
    margin-bottom: .5rem;

    color: var(--form-control-color);
    font-size: var(--form-control-fs);
}

.form-text{
    margin-top: 0.5rem;
    color: var(--bs-secondary-color);
    font-size: 14px;
}

.form-control,
.form-select{
    height: var(--form-control-height);
    background-color: var(--form-control-bg);
    border-color: var(--form-control-border-color);
    border-radius: var(--form-control-border-radius);
    padding: var(--form-control-py) var(--form-control-px);

    color: var(--form-control-color);
    font-size: var(--form-control-fs);
    font-family: var(--font-family);
}

.form-control:focus,
.form-select:focus{
    background-color: var(--form-control-active-bg);
    border-color: var(--form-control-active-border-color);
    box-shadow: none;
    color: var(--form-control-active-color);
}

.form-control.disabled,
.form-select.disabled,
.form-control[disabled],
.form-select[disabled]{
    color: var(--form-control-disabled-color);
    background-color: var(--form-control-disabled-bg);
    border-color: var(--form-control-disabled-border-color);
}

.form-control::placeholder{
    color: var(--form-control-placeholder-color);
}

.search-wrap,
.search-box{
    position: relative;
}
.search-input{
    padding-left: 1.25rem;
    padding-right: 3rem;
}
.search-input::-webkit-search-cancel-button{
    -webkit-appearance: none;
    appearance: none;
}
.search-box .i-wrap{
    --icon-color: var(--bs-secondary);

    display: flex;
    align-items: center;
    height: 100%;
    padding-right: 0.75rem;
    position: absolute;
    top: 0;
    right: 0;
}
.search-box .i-wrap img,
.search-box .i-wrap svg{
    width: 1.5rem;
}
.search-box .i-clear{
    --icon-color: var(--bs-dark);

    display: none;
    border: 0;
    background: none;
    padding-right: 1rem;
    cursor: pointer;
}
.search-box .i-clear img{
    width: 0.75rem;
}
.search-input:not(:placeholder-shown) ~ .i-search{
    display: none;
}
.search-input:not(:placeholder-shown) ~ .i-clear{
    display: flex;
}
.search-input:not(:placeholder-shown){
    border-color: var(--bs-primary);
}

/* error */
.error-text,
.global-error-text,
.invalid-feedback{
    color: var(--bs-form-invalid-color);
    font-size: 14px;
    line-height: 1.25;
}
.error-text,
.invalid-feedback{
    padding: 0 1rem;
}
.error-text {
    display: none;
}
.global-error-text {
    display: block;
    margin-bottom: 1.25rem;
    text-align: center;
}
.has-error .form-control:not(:focus),
.has-error .form-select:not(:focus){
    border-color: var(--bs-form-invalid-border-color);
}
.has-error .error-text,
.has-error .invalid-feedback{
    display: block;
}
/* ---------- /form ---------- */


/* ---------- card ---------- */
.card{
    border-radius: var(--radius-md);
    border-color: var(--bs-border-color);
    overflow: hidden;
}
.card .card-img-top{
    border-top-left-radius: var(--radius-md);
    border-top-right-radius: var(--radius-md);
    aspect-ratio: 16 / 10;
    object-fit: cover;
}
.card .card-body{
    padding: 1.5rem;
}
.card-meta{
    color: var(--color-muted);
    font-size: var(--fs-text4);
    font-weight: 500;
    margin-bottom: 0.5rem;
}
.card-title{
    font-family: var(--font-family-secondary);
    font-size: var(--fs-h4);
    text-transform: uppercase;
    margin-bottom: 0.75rem;
}
@media (min-width: 1300px) {
    .card-title{
        font-size: var(--fs-h3);
    }
}
.card-text{
    font-family: var(--font-family-secondary);
    font-size: var(--fs-text4);
    color: var(--bs-body-color);
}

.article-card{
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.article-card-media{
    overflow: hidden;
}
.article-card .card-img-top{
    transition: transform .6s ease, filter .6s ease;
}
.article-card-media > a img{
    transition: transform .3s ease;
}
.article-card .card-title a{
    transition: color .2s ease-in-out;
}
.article-card:hover,
.article-card:focus-within{
    --bs-border-color: var(--bs-primary);
    transform: translateY(-6px);
    box-shadow: 0 16px 32px -12px rgba(35, 31, 32, .25);
}
.article-card:hover .card-img-top,
.article-card:focus-within .card-img-top{
    transform: scale(1.06);
    filter: brightness(.92);
}
.article-card:hover .article-card-media > a img{
    transform: scale(1.15);
}
.article-card:hover .card-title a,
.article-card:focus-within .card-title a{
    color: var(--bs-primary);
}
@media (prefers-reduced-motion: reduce){
    .article-card,
    .article-card .card-img-top,
    .article-card-media > a img{
        transition: none;
    }
    .article-card:hover,
    .article-card:focus-within,
    .article-card:hover .card-img-top,
    .article-card:focus-within .card-img-top,
    .article-card:hover .article-card-media > a img{
        transform: none;
    }
}

.floating-card-title{
    display: flex;
    align-items: center;
    max-width: 100%;
    min-height: 48px;
    background: var(--bs-secondary-bg-subtle);
    padding: 0.75rem 1.5rem 0.625rem;

    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);

    color: var(--bs-secondary);
    font-size: 1rem;
    font-weight: normal;
    text-align: center;
    text-transform: uppercase;
}
.floating-card-title + .card-body{
    padding-top: 5rem;
}
/* ---------- /card ---------- */

/* ---------- accordion ---------- */
.policy-accordion{
    --bs-accordion-bg: transparent;
    --bs-accordion-active-bg: transparent;
    --bs-accordion-active-color: var(--bs-body-color);
    --bs-accordion-border-width: 0;
    --bs-accordion-btn-padding-x: 0;
    --bs-accordion-btn-padding-y: 1.25rem;
    --bs-accordion-body-padding-x: 0;
    --bs-accordion-body-padding-y: 0;
    --bs-accordion-btn-icon: none;
    --bs-accordion-btn-active-icon: none;
    --bs-accordion-btn-icon-transform: none;
}
.policy-accordion .accordion-item{
    border-bottom: 1px solid var(--bs-border-color);
}
.policy-accordion .accordion-button{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;

    color: var(--bs-body-color);
    font-family: var(--font-family-secondary);
    font-size: var(--fs-h5);
    font-weight: bold;
    text-transform: uppercase;
    box-shadow: none;
}
.policy-accordion .accordion-button::after{
    flex-shrink: 0;
    width: var(--icon-size-md);
    height: var(--icon-size-md);
    background-image: url("../../images/icons/add_box_line.svg");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    transform: rotate(45deg);
    transition: transform .2s ease-in-out;
}
.policy-accordion .accordion-button.collapsed::after{
    transform: rotate(0deg);
}
.policy-accordion .accordion-body{
    padding-bottom: 1.25rem;

    color: var(--bs-body-color);
    font-family: var(--font-family-secondary);
    font-size: var(--fs-text3);
}
.policy-accordion .accordion-body ul{
    padding-left: 1.5rem;
}
.policy-accordion .accordion-body li + li{
    margin-top: 0.5rem;
}
/* ---------- /accordion ---------- */

/* ---------- js-form success toggle ---------- */
.js-form .success-container{
    display: none;
}
.js-form.show-success .controls-container{
    display: none;
}
.js-form.show-success .success-container{
    display: block;
}
.mail-sent-icon{
    --icon-color: var(--bs-primary);

    width: 64px;
    height: auto;
}
/* ---------- /js-form success toggle ---------- */

/* ---------- mail-form ---------- */
.mail-form{
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius-md);
    padding: 1.5rem;
}
.mail-form .form-control{
    height: auto;
    resize: vertical;
}
.mail-form hr{
    margin: 1.5rem 0;
    border-color: var(--bs-border-color);
    opacity: 1;
}
.mail-form .mail-form-footer{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
/* ---------- /mail-form ---------- */

/* ---------- dropzone ---------- */
.dropzone{
    --icon-color: var(--bs-secondary);

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-align: center;
    padding: 1.75rem 1rem;
    border: 1.5px dashed var(--bs-border-color);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: border-color .15s ease-in-out, background-color .15s ease-in-out;
}
.dropzone:hover,
.dropzone.is-dragover{
    --icon-color: var(--bs-primary);

    border-color: var(--bs-primary);
    background-color: var(--bs-light-bg-subtle);
}
.dropzone img,
.dropzone svg{
    width: var(--icon-size-lg);
    height: auto;
}
.dropzone .dropzone-title{
    font-weight: 500;
    font-size: var(--fs-text3);
}
.dropzone .dropzone-hint{
    color: var(--color-muted);
    font-size: var(--fs-text5);
}
.dropzone input[type=file]{
    display: none;
}

.mail-form-link-action{
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;

    background: none;
    border: 0;
    padding: 0;

    color: var(--bs-secondary);
    font-size: var(--fs-text4);
    font-weight: 500;
}
.mail-form-link-action:hover{
    color: var(--bs-primary);
}
.mail-form-link-action img,
.mail-form-link-action svg{
    width: var(--icon-size-sm);
    height: auto;
}
/* ---------- /dropzone ---------- */

/* ---------- article details ---------- */
.article-details-container{
    padding-top: 3.125rem;
    padding-bottom: 3.125rem;
}

.side-banner{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 200px;
    height: 400px;
    padding: 1rem;
    background-color: var(--bs-dark);
    border-radius: var(--radius-md);
    text-align: center;
}
.side-banner-corner{
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 1.25rem;
}

.article-meta{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;

    color: var(--color-muted);
    font-size: var(--fs-text4);
}

.badge-outline{
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius-md);

    color: var(--bs-secondary-text-emphasis);
    font-size: var(--fs-text6);
}

.article-details-container .title{
    margin-bottom: 1.5rem;
}

.user-wrap{
    --gap: 0.75rem;
    --avatar-size: 40px;

    display: flex;
    align-items: center;
    gap: var(--gap);
    margin-bottom: 1.5rem;
}
.user-wrap .avatar{
    width: var(--avatar-size);
    height: var(--avatar-size);
    border-radius: 50%;
    object-fit: cover;
}
.user-wrap a{
    font-weight: 600;
}

.article-details-container .img-wrap{
    margin-bottom: 0.5rem;
}
.article-details-container .img-wrap img{
    width: 100%;
    border-radius: var(--radius-md);
    aspect-ratio: 900 / 440;
    object-fit: cover;
}
.article-details-container .img-wrap .play-btn{
    width: 60px;
    aspect-ratio: auto;
    border-radius: 0;
}
.article-details-container .img-wrap figcaption{
    color: var(--color-muted);
    font-size: var(--fs-text4);
}

.article-details-container .floating-box{
    --width: 40px;
    --top-gap: 10px;

    width: var(--width);
    padding-top: var(--top-gap);
    margin-right: var(--bs-gutter-x);
    position: absolute;
    top: calc(-1 * var(--top-gap));
    right: 100%;
}
.article-details-container .floating-box > div{
    width: var(--width);
    background: #000;
    padding: 5px;
    margin-left: auto;
}
.article-details-container .floating-box > div.position-fixed{
    top: var(--top-gap);
    z-index: 500;
}

.article-details-container .floating-box .social-items-wrap{
    display: flex;
    flex-direction: column;
    --icon-color: var(--bs-light);
}
.article-details-container .floating-box .social-items-wrap a{
    display: flex;
    align-items: center;
    justify-content: center;
    height: 2.375rem;
    border-bottom: 1px solid var(--bs-light);
}
.article-details-container .floating-box .social-items-wrap a img{
    display: block;
    width: auto;
    height: 0.9375rem;
}
.article-details-container .floating-box .social-items-wrap a:hover{
    --icon-color: rgba(255,255,255,0.6);
}

.article-details-container .floating-box .scroll-progress-wrap{
    width: 100%;
    background: var(--bs-light);
    border-radius: 50%;
    position: relative;
    padding: 2px;
    margin: 20px auto 10px;
}
.article-details-container .floating-box .scroll-progress-wrap svg{
    display: block;
    width: 100%;
    height: auto;
    transform: rotate(-90deg);
    transform-origin: center;
    fill: none;
    stroke: var(--bs-primary);
    stroke-width: 5;
    stroke-linecap: round;
    stroke-dasharray: 283;
    stroke-dashoffset: 283;
    transition: stroke-dashoffset 0.1s linear;
}
@media (max-width: 1199px) {
    .article-details-container .floating-box{
        display: none !important;
    }
}

.media-list-item{
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
    margin: 2.5rem 0;
    padding: 1.5rem 0;
    border-top: 1px solid var(--bs-border-color);
    border-bottom: 1px solid var(--bs-border-color);
}
.media-list-item .img-wrap{
    flex-shrink: 0;
    width: 319px;
    position: relative;
    margin-bottom: 0;
}
.media-list-item .img-wrap img{
    display: block;
    width: 100%;
    aspect-ratio: 319 / 204;
    border-radius: var(--radius-md);
    object-fit: cover;
}
.media-list-item .img-wrap .i-overlay{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 2.75rem;
}
.media-list-item .info-wrap{
    flex-grow: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.media-list-item .btn{
    order: -1;
    align-self: flex-start;
    margin-bottom: 0.75rem;
}
.media-list-item .title{
    font-family: var(--font-family-secondary);
    font-size: var(--fs-h5);
    margin-bottom: 0.75rem;
}
.media-list-item .text{
    margin-bottom: 0;
    font-size: var(--fs-text4);
}
@media (max-width: 767px) {
    .media-list-item{
        flex-direction: column;
    }
    .media-list-item .img-wrap{
        width: 100%;
    }
}

.quote-note-row{
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem;
    margin: 2.5rem 0;
}
.quote-note-row > *{
    flex: 1 1 380px;
    min-width: 0;
}

.pull-quote{
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}
.pull-quote .quote-mark{
    flex-shrink: 0;
    color: #515790;
    font-family: var(--font-family-secondary);
    font-weight: bold;
    font-size: 3rem;
    line-height: 1;
}
.pull-quote .quote-text{
    font-family: var(--font-family-secondary);
    font-weight: bold;
    font-size: var(--fs-text2);
}

.article-note{
    font-family: var(--font-family-secondary);
}
.article-note .note-label{
    display: block;
    font-weight: bold;
    margin-bottom: 0.5rem;
}
.article-note .note-text{
    margin-bottom: 0;
}

.gallery-figure{
    margin-bottom: 0;
}
.gallery-figure img{
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: var(--radius-md);
    object-fit: cover;
    margin-bottom: 0.75rem;
}
.gallery-figure figcaption{
    color: var(--color-muted);
    font-size: var(--fs-text4);
}

.article-details-container .text-wrap h3{
    font-family: var(--font-family-secondary);
    font-size: var(--fs-h5);
    text-transform: none;
    margin-bottom: 0.75rem;
}

.tag-list-group{
    margin-bottom: 1.5rem;
}
.tag-list-group .item-with-icon{
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;

    color: var(--color-muted);
    font-weight: 600;
}
.tag-list-group .item-with-icon img{
    width: var(--icon-size-sm);
}
.tag-chip{
    --tag-chip-color: var(--bs-secondary-text-emphasis);

    display: inline-flex;
    align-items: center;
    height: 35px;
    padding: 0 0.875rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius-md);

    color: var(--tag-chip-color);
    font-size: var(--fs-text5);
    transition: border-color .15s ease-in-out, background-color .15s ease-in-out, color .15s ease-in-out;
}
.tag-chip:hover{
    border-color: var(--bs-primary);
}
.tag-chip.is-active{
    --tag-chip-color: #fff;

    background-color: var(--bs-dark);
    border-color: var(--bs-dark);
    font-weight: bold;
}
/* ---------- /article details ---------- */

/* ---------- region card ---------- */
.region-card{
    --bs-link-color: var(--bs-body-color);
    --bs-link-hover-color: var(--bs-body-color);

    display: flex;
    align-items: center;
    gap: 1rem;
    height: 141px;
    padding: 0 1.5rem;
    border: 1px solid var(--bs-dark);
    border-radius: var(--radius-md);
    transition: border-color .15s ease-in-out;
}
.region-card:hover{
    border-color: var(--bs-primary);
}
.region-card-thumb{
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 122px;
    height: 110px;
    background-color: var(--bs-secondary-bg-subtle);
    border-radius: var(--radius-sm);
}
.region-card-thumb img{
    display: block;
    max-width: 70%;
    max-height: 70%;
}
.region-card-title{
    flex-grow: 1;
    font-weight: 600;
    font-size: var(--fs-text3);
    text-align: right;
    text-transform: uppercase;
}
/* ---------- /region card ---------- */

/* ---------- region hero ---------- */
.region-hero{
    margin-top: 50px;
}
.region-hero-map-wrap{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.5rem;
}
.region-info{
    flex: 1 1 260px;
}
.region-title{
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-family-secondary);
    font-size: var(--fs-h3);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    margin-bottom: 1rem;
}
.region-title img{
    width: 24px;
    height: 24px;
}
.region-info-text{
    font-family: var(--font-family-secondary);
    font-size: var(--fs-text4);
}

.georgia-map{
    flex: 1 1 320px;
    max-width: 420px;
    filter: drop-shadow(3px 12px 8px rgba(0, 0, 0, 0.25));
}
.georgia-map path{
    fill: var(--bs-secondary-bg-subtle);
    stroke: #fff;
    stroke-width: 1;
    transition: fill .15s ease-in-out;
}
.georgia-map path:hover,
.georgia-map a:focus-visible path,
.georgia-map path.is-active{
    fill: var(--bs-primary);
}

.region-location-list{
    display: flex;
    flex-direction: column;
}
.region-location-item{
    display: flex;
    gap: 0.5rem;
    padding: 1.25rem 0;
    border-bottom: 1px solid var(--bs-border-color);
}
.region-location-item:first-child{
    padding-top: 0;
}
.region-location-item:last-child{
    border-bottom: 0;
    padding-bottom: 0;
}
.region-location-item img{
    flex-shrink: 0;
    width: 24px;
    height: 24px;
}
.region-location-item-name{
    font-weight: 700;
}
/* ---------- /region hero ---------- */

/* ---------- attachment chip ---------- */
.attachment-list{
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.25rem;
}
.attachment-list:empty{
    display: none;
}
.attachment-chip{
    --icon-color: var(--bs-secondary);

    display: flex;
    align-items: center;
    gap: 0.5rem;
    max-width: 220px;
    padding: 0.375rem 0.625rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius-sm);

    font-size: var(--fs-text5);
}
.attachment-chip .thumb{
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 4px;
    object-fit: cover;
}
.attachment-chip .file-icon{
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
}
.attachment-chip .file-icon img,
.attachment-chip .file-icon svg{
    width: var(--icon-size-sm);
    height: auto;
}
.attachment-chip .name{
    flex-grow: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.attachment-chip .remove-btn{
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    background: none;
    border: 0;
    padding: 0;
}
.attachment-chip .remove-btn img,
.attachment-chip .remove-btn svg{
    width: 0.5rem;
}
/* ---------- /attachment chip ---------- */

/* ---------- home: section spacing ---------- */
.section-home{
    --section-spacing-bottom: 50px;
}
/* ---------- /home: section spacing ---------- */


/* ---------- home: section heading row ---------- */
.section-heading-row{
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}
.section-heading-row .section-title{
    margin: 0;
    text-align: left;
}
.section-heading-row .section-title::after{
    display: none;
}
.section-title-sm{
    font-size: 24px;
}
.section-title-left{
    text-align: left;
}
.section-title-left::after{
    display: none;
}
.section-heading-row .link{
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 500;
}
.section-heading-row .link img{
    width: 1.5rem;
}
/* ---------- /home: section heading row ---------- */


/* ---------- home: hero ---------- */
.hero{
    padding: 2.5rem 0;
}
.hero .title{
    margin-bottom: 1.25rem;
}
.hero .text{
    margin-bottom: 1.5rem;
}
.hero-img-wrap{
    height: 100%;
    min-height: 260px;
}
.hero-img-wrap > img{
    display: block;
    width: 100%;
    height: 100%;
    border-radius: var(--radius-md);
    object-fit: cover;
}

.hero-meta-row{
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
}
.read-more-pill{
    --bs-btn-color: #fff;
    --bs-btn-bg: #000;
    --bs-btn-border-color: #000;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #000;
    --bs-btn-hover-border-color: #000;

    white-space: nowrap;
}
/* ---------- /home: hero ---------- */


/* ---------- home: cta banner ---------- */
.cta-banner{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.5rem 2.5rem;
    background-color: var(--bs-primary);
    border-radius: var(--radius-md);
    padding: 1.5rem;

    color: #fff;
}
.cta-banner .cta-banner-icon{
    flex-shrink: 0;
    width: 3.5rem;
    height: auto;
}
.cta-banner-message{
    flex: 1 1 260px;
}
.cta-banner-message .title{
    font-size: var(--fs-text3);
    margin-bottom: 0.375rem;
}
.cta-banner-message .text{
    color: #fff;
    font-size: var(--fs-text3);
}
.cta-banner-checklist{
    flex: 1 1 240px;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: var(--fs-text3);
    font-weight: 500;
}
@media (min-width: 992px){
    .cta-banner{
        display: grid;
        grid-template-columns:
            minmax(1.5rem, 115px)
            90px
            15px
            minmax(240px, 350px)
            80px
            minmax(220px, 1fr)
            2.5rem
            minmax(165px, max-content)
            minmax(1.5rem, 135px);
        align-items: center;
        row-gap: 1.5rem;
        column-gap: 0;
        padding: 1.5rem 0;
    }
    .cta-banner .cta-banner-icon{
        grid-column: 2;
        width: 90px;
        margin-left: 0;
    }
    .cta-banner-message{
        grid-column: 4;
        max-width: 350px;
        margin-left: 0;
    }
    .cta-banner-message .title{
        font-size: 16px;
        font-weight: 700;
    }
    .cta-banner-checklist{
        grid-column: 6;
        margin-left: 0;
    }
    .cta-banner .btn-outline-white{
        grid-column: 8;
        margin-left: 0;
        margin-right: 0;
    }
}
.cta-banner-checklist li{
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
}
.cta-banner-checklist img{
    margin-top: 0.125rem;
}
.cta-banner-checklist li + li{
    margin-top: 0.75rem;
}
.cta-banner-checklist img{
    width: 1rem;
}
.cta-banner .btn-outline-white{
    flex-shrink: 0;
}
/* ---------- /home: cta banner ---------- */


/* ---------- home: featured tenders ---------- */
.tenders-row .card-title,
.tenders-row .card-text{
    font-size: var(--fs-text4);
}
.card-photo-only{
    display: block;
    border-radius: var(--radius-md);
    overflow: hidden;
    aspect-ratio: 4 / 3;
}
.card-photo-only--wide{
    aspect-ratio: 3 / 2;
}
.card-photo-only img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* ---------- /home: featured tenders ---------- */


/* ---------- home: region highlight panel ---------- */
.region-panel{
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius-md);
    padding: 2rem;
}
.region-panel .georgia-map{
    max-width: 100%;
}
/* ---------- /home: region highlight panel ---------- */


/* ---------- home: video grid ---------- */
.video-card{
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
    color: #fff;
    min-height: 439px;
}
.video-card img{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
.video-card::after{
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0) 24%, rgba(34,29,29,.36) 60%, #000 97%);
    z-index: 1;
}
.video-card-body{
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.25rem;
}
.video-card .play-btn{
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 3.75rem;
    height: auto;
}
.video-card-duration{
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: var(--fs-text4);
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}
.video-card-duration img{
    position: static;
    width: 1.5rem;
    height: 1.5rem;
}
.video-card .play-btn img{
    position: static;
    width: 100%;
    height: auto;
}
.video-card-title{
    font-family: var(--font-family-secondary);
    font-size: var(--fs-h4);
    text-transform: uppercase;
    margin-bottom: 0.5rem;
    color: inherit;
}
.video-card-text{
    font-size: var(--fs-text4);
}
.video-card--feature .video-card-title{
    font-size: var(--fs-h3);
}
.video-card--feature .video-card-text{
    max-width: 429px;
    margin-bottom: 0;
}
.video-card--sm{
    min-height: 439px;
}
.video-card--reel .video-card-title{
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 30px;
}
.video-card--reel .video-card-text{
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 30px;
}
.video-next-btn{
    display: none;
}
@media (min-width: 992px) {
    .video-next-btn{
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 3rem;
        height: 3rem;
    }
    .video-next-btn img{
        width: 100%;
    }
}
/* ---------- /home: video grid ---------- */


/* ---------- home: ranked list ---------- */
.ranked-list{
    display: flex;
    flex-direction: column;
}
.ranked-item{
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--bs-border-color);
}
.ranked-item:first-child{
    padding-top: 0;
}
.ranked-item-index{
    flex-shrink: 0;
    width: 62px;

    color: var(--bs-primary);
    font-family: var(--font-family-secondary);
    font-weight: 300;
    font-size: 4rem;
    line-height: 1;
}
.ranked-item-title{
    font-size: var(--fs-text4);
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}
.ranked-item-meta{
    color: var(--color-muted);
    font-size: var(--fs-text4);
}
/* ---------- /home: ranked list ---------- */


/* ---------- home: popular + newsletter ---------- */
.popular-list-item{
    display: flex;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}
.popular-list-item .img-wrap{
    flex-shrink: 0;
    margin-bottom: 0;
}
.popular-list-item .img-wrap img{
    display: block;
    border-radius: var(--radius-md);
    object-fit: cover;
}
.popular-list-item.popular-list-item--lg .img-wrap img{
    width: 319px;
    height: 204px;
}
.popular-list-item.popular-list-item--sm .img-wrap img{
    width: 203px;
    height: 130px;
}
.popular-list-item .title{
    font-size: var(--fs-text4);
    margin-bottom: 0.5rem;
}
.popular-list-item .text{
    font-family: var(--font-family-secondary);
    font-size: var(--fs-text4);
    margin-bottom: 0.5rem;
}
.popular-list-item .card-meta{
    margin-bottom: 0;
}
@media (max-width: 575.98px){
    .popular-list-item--lg{
        flex-direction: column;
        gap: 0.75rem;
    }
    .popular-list-item.popular-list-item--lg .img-wrap img{
        width: 100%;
        height: auto;
        aspect-ratio: 319 / 204;
    }
    .popular-list-item.popular-list-item--sm .img-wrap img{
        width: 120px;
        height: 77px;
    }
}

.newsletter-panel{
    display: flex;
    flex-direction: column;
    background-color: var(--bs-light-bg-subtle);
    border-radius: var(--radius-md);
    padding: 2rem;
    height: 100%;
}
.newsletter-panel .newsletter-form{
    margin-bottom: 2.5rem;
}
.newsletter-panel .social-title{
    margin-top: auto;
}
.newsletter-panel .form-control{
    border-color: var(--bs-dark);
    margin-bottom: 1rem;
}
.newsletter-panel .social-items-row img,
.newsletter-panel .social-items-row svg{
    height: 1.25rem;
}
/* ---------- /home: popular + newsletter ---------- */

/* ---------- videos: listing ---------- */
.video-thumb{
    position: relative;
    display: block;
    border-radius: var(--radius-md);
    overflow: hidden;
}
.video-thumb-img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.video-thumb .play-btn{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: auto;
}
.video-feature-thumb{
    aspect-ratio: 16 / 9;
}
@media (min-width: 992px){
    .video-feature-thumb{
        aspect-ratio: auto;
        min-height: 439px;
    }
}
.video-grid-thumb{
    --bs-aspect-ratio: 56%;
}
.video-grid-row-bottom{
    margin-bottom: 50px;
}
.video-feature{
    border-radius: var(--radius-md);
    overflow: hidden;
}
.video-feature .video-thumb{
    border-radius: 0;
}
.video-feature-panel{
    height: 100%;
    background-color: var(--bs-dark);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2.5rem;
}
.video-feature-panel .card-meta{
    color: rgba(255, 255, 255, .7);
}
.video-feature-panel .card-text{
    color: rgba(255, 255, 255, .85);
}
.video-grid-row{
    padding-top: 2rem;
    border-top: 1px solid var(--bs-border-color);
}
.video-grid-row:first-of-type{
    padding-top: 0;
    border-top: 0;
}
@media (min-width: 768px){
    .video-grid-col:not(:last-child){
        border-right: 1px solid var(--bs-border-color);
    }
}
/* ---------- /videos: listing ---------- */


/* ---------- slider ---------- */
.carousel{
    --carousel-width: var(--container-width);
    --slides-per-page: 3;
    --slide-gap: 0.5rem;
    --item-width: calc( (var(--carousel-width) - (var(--slides-per-page) - 1) * var(--slide-gap)) / var(--slides-per-page) );
}

.carousel .splide__arrow{
    width: var(--app-content-px);
    height: 100%;
    background-color: #fff;
    border-radius: 0;
    padding: 0;
    opacity: 1 !important;
    top: 0;
    transform: none;
    transition: opacity .1s ease;
}
.carousel .splide__arrow--prev{
    justify-content: flex-start;
    left: 0;
}
.carousel .splide__arrow--next{
    justify-content: flex-end;
    right: 0;
}
.carousel .splide__arrow.disabled,
.carousel .splide__arrow:disabled{
    opacity: 0 !important;
    pointer-events: none;
}

.carousel .splide__arrow svg{
    fill: var(--icon-color);
    width: 3rem;
    height: auto;
    transition: fill .15s ease-in-out;
}
.carousel .splide__arrow:hover svg{
    --icon-color: var(--bs-link-hover-color);
}
.carousel .splide__arrow:active svg{
    --icon-color: var(--bs-link-active-color);
}

.carousel .splide__slide{
    margin-right: var(--slide-gap);
}
.carousel .splide__slide > *{
    width: var(--item-width);
}

@media (min-width: 576px) {
    .carousel{
        --slide-gap: 0.75rem;
    }
}
@media (min-width: 768px) {
    .carousel{
        --slide-gap: 1.5rem;
    }
}
@media (min-width: 1200px) {
    .carousel{
        --slide-gap: 1.875rem;
    }
    .carousel .splide__arrow{
        width: 4.5rem;
        padding: 10px;
    }
}
@media (max-width: 991px) {
    .carousel{
        margin-left: calc(var(--app-content-px) * -1);
        margin-right: calc(var(--app-content-px) * -1);
    }
    .carousel .splide__slide:first-child{
        padding-left: var(--app-content-px);
    }
    .carousel .splide__slide:last-child{
        padding-right: var(--app-content-px);
    }
    .carousel .splide__arrow{
        display: none;
    }
}
/* ---------- /slider ---------- */


/* ---------- reels ---------- */
.reels-grid-item{
    --bs-aspect-ratio: 180.8%;
    position: relative;
    cursor: pointer;
    border-radius: var(--radius-md);
    overflow: hidden;
}

.reels-grid-item .info-wrap{
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 1.5rem;
    width: 100%;
    height: 100%;
    background: #FFF;
    background: linear-gradient(180deg,rgba(255, 255, 255, 0) 0%, rgba(34, 29, 29, 0.24) 24%, rgba(0, 0, 0, 1) 100%);
    padding: 1.25rem;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 2;

    color: #fff;
}
.reels-grid-item .title{
    color: inherit;
    font-size: var(--fs-h6);
}
.reels-grid-item .text{
    color: inherit;
    font-size: var(--fs-text6);
}
.reels-grid-item .item-with-icon{
    gap: 0.5rem;
    margin-top: 0.5rem;
    font-weight: bold;
}

.reels-grid-item video{
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}

.reels-grid-item video,
.reels-grid-item .item-with-icon{
    transition: opacity .1s ease-in-out;
}
.reels-grid-item video,
.desktop .reels-grid-item:hover .item-with-icon{
    opacity: 0;
}
.desktop .reels-grid-item:hover video{
    opacity: 1;
}

/* carousel */
@media (min-width: 576px) {
    .reels-carousel{
        --slides-per-page: 6;
    }
}
@media (max-width: 575px) {
    .reels-carousel{
        --item-width: calc(100vw / 2.25) ;
    }
    .reels-carousel .reels-grid-item .info-wrap{
        gap: 0.75rem;
        padding: 0.75rem;
    }
    .reels-carousel .reels-grid-item .text{
        font-size: 11px;
    }
}

.reels-carousel--home{
    --carousel-width: calc(var(--container-width) / 2);
    --slides-per-page: 3;
}
@media (max-width: 575px) {
    .reels-carousel--home{
        --item-width: calc(100vw / 2.25);
    }
}
@media (max-width: 991px) {
    .reels-carousel--home{
        margin-left: 0;
        margin-right: 0;
    }
    .reels-carousel--home .splide__slide:first-child{
        padding-left: 0;
    }
    .reels-carousel--home .splide__slide:last-child{
        padding-right: 0;
    }
    .reels-carousel--home .splide__arrow{
        display: flex;
    }
}

.reels-carousel--home,
.reels-carousel--home .splide__track{
    height: 100%;
}
.reels-carousel--home .reels-grid-item,
.reels-carousel--home .reels-grid-item .img-wrap{
    height: 100%;
}

/* --- player --- */
.reels-player{
    --bs-aspect-ratio: 180.8%;

    width: 100%;
    position: relative;
}
.reels-player .btn{
    --bs-btn-padding-x: 0;
    --bs-btn-padding-y: 0;
    --bs-btn-border-width: 0;
    --bs-btn-border-radius: 50%;
    --btn-size: auto;
    --btn-gap: 0;
}

.reels-player .btn-play,
.reels-player .btn-pause{
    --icon-size: 6rem;
}
.reels-player .btn-backward,
.reels-player .btn-forward{
    --icon-size: 3rem;
}
.reels-player.is-playing .i-play,
.reels-player:not(.is-playing) .i-pause{
    display: none;
}

.reels-player .btn-volume{
    --btn-size: 2.5rem;
    --icon-size: 1.5rem;
    --bs-btn-bg: rgba(0,0,0,.62);
    --bs-btn-hover-bg: var(--bs-btn-bg);
    --bs-btn-active-bg: var(--bs-btn-bg);
}
.reels-player .btn img,
.reels-player .btn svg{
    transition: opacity .15s ease-in-out;
}
.reels-player .btn:hover img,
.reels-player .btn:hover svg{
    opacity: 0.75;
}

.reels-player .controls-wrap{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.125rem;
    width: 100%;

    position: absolute;
    top: 50%;
    left: 0;
    z-index: 3;
    transform: translateY(-50%);
}

.reels-player .info-wrap{
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0.75rem;

    color: #fff;
    font-size: 12px;
}
.reels-player .info-wrap .title{
    color: inherit;
    font-size: 1rem;
}

.reels-player .overlay{
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.56);
    padding: 1rem;
    opacity: 0;

    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;

    transition: opacity .15s ease-in-out;
}

.reels-player:not(.is-playing) .overlay,
.desktop .reels-player:hover .overlay,
.reels-player.show-overlay .overlay{
    opacity: 1;
}
.mobile .reels-player:not(.show-overlay) .overlay .btn,
.tablet .reels-player:not(.show-overlay) .overlay .btn{
    pointer-events: none;
}


/* --- modal --- */
.reels-modal{
    --bs-modal-bg: transparent;
    --bs-modal-border-width: 0;
    --bs-modal-border-color: transparent;
    --bs-modal-padding: 0;
    --bs-modal-width: 435px;
}

.reels-modal .btn-close{
    --btn-close-padding: 0;
    --btn-close-icon-size: 3rem;

    position: absolute;
    top: 0;
    z-index: 10;
}

@media (min-width: 576px) {
    .reels-modal .btn-close{
        margin-left: 1.25rem;
        left: 100%;
    }
}

@media (max-width: 575px) {
    .reels-modal{
        --bs-modal-margin: 1rem;
    }
    .reels-modal .btn-close{
        --btn-close-padding: 0.5rem;
        right: 0;
    }
}
/* ---------- /reels ---------- */


/* ---------- pagination ---------- */
.pagination{
    --bs-pagination-padding-x: 0.25rem;
    --bs-pagination-padding-y: 0.25rem;
    --bs-pagination-font-size: 16px;
    --bs-pagination-color: var(--btn-default-color);
    --bs-pagination-bg: transparent;
    --bs-pagination-border-width: 0;
    --bs-pagination-border-color: transparent;
    --bs-pagination-border-radius: 0;
    --bs-pagination-hover-color: var(--btn-primary);
    --bs-pagination-hover-bg: transparent;
    --bs-pagination-hover-border-color: transparent;
    --bs-pagination-focus-color: var(--btn-default-color);
    --bs-pagination-focus-bg: transparent;
    --bs-pagination-focus-box-shadow: none;
    --bs-pagination-active-color: #fff;
    --bs-pagination-active-bg: var(--btn-primary);
    --bs-pagination-active-border-color: var(--btn-primary);

    --pagination-item-size: 24px;

    justify-content: center;
    gap: 0.5rem;
    margin: 3rem 0;
}
.pagination .page-item{
    flex-shrink: 0;
}
.pagination .page-link{
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: var(--pagination-item-size);
    height: var(--pagination-item-size);
    border-radius: var(--bs-pagination-border-radius);
    font-weight: bold;
}
.pagination .page-link.active:focus{
    color: var(--bs-pagination-active-color);
}
.pagination img,
.pagination svg{
    width: 24px;
    height: auto;
}
/* ---------- /pagination ---------- */
