/* Base — Typography, Body, Preloader, Carousel, Bootstrap replacements */
body { font: 400 1rem/1.7 var(--font-body); color: var(--on-surface-variant); margin: 0; padding: 0; overflow-x: hidden; -webkit-font-smoothing: antialiased; background: var(--surface); }
.body_wrapper { z-index: 20; overflow: hidden; }
a { color: var(--primary); text-decoration: none; transition: color var(--transition-base); }
a:hover, a:focus { color: var(--on-secondary-fixed); }
a, button { outline: none; }
p { margin-bottom: 1rem; line-height: 1.7; }

h1, h2, h3, h4, h5, h6 { font-family: var(--font-headline); color: var(--on-background); padding: 0; margin-bottom: 0.5rem; letter-spacing: -0.01em; }
h1 { font-size: 3.5rem; font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; }
h2 { font-size: 1.75rem; font-weight: 800; line-height: 1.2; }
h3 { font-size: 1.25rem; font-weight: 700; line-height: 1.3; }
h4 { font-size: 1.125rem; font-weight: 700; line-height: 1.4; }
h5 { font-size: 1rem; font-weight: 600; line-height: 1.4; }
h6 { font-size: 0.875rem; font-weight: 600; line-height: 1.4; }

/* Theme utilities */
.mt_20 { margin-top: 20px; } .mt_30 { margin-top: 30px; } .mt_40 { margin-top: 40px; } .mt_60 { margin-top: 60px; }
.mb_50 { margin-bottom: 30px; }
.pl_40 { padding-left: 40px; } .pl_120 { padding-left: 120px; } .pt_150 { padding-top: 60px; }

/* Section spacing */
.sec_pad { padding: var(--space-24) 0; }
.standard_section, .standard_section_white { padding: var(--space-24) 0; position: relative; }
.standard_section { background: var(--surface-container-low); }
.standard_section_white { background: var(--surface); }
.sec_title { text-align: center; font-family: var(--font-headline); color: var(--on-secondary-fixed); margin-bottom: var(--space-4); }
.vertical-spacer { height: var(--space-8); }
.vertical-spacer-double { height: var(--space-16); }

/* Preloader */
.ctn-preloader { display: flex; align-items: center; justify-content: center; position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 9000; background: var(--surface); }
.ctn-preloader .animation-preloader { z-index: 1000; }
.ctn-preloader .animation-preloader .spinner { animation: spinner 1s infinite linear; border-radius: 50%; border: 3px solid rgba(0,0,0,0.1); border-top-color: var(--primary); height: 9em; margin: 0 auto 3.5em; width: 9em; }
.ctn-preloader .animation-preloader .txt-loading { font: 800 5em var(--font-headline); text-align: center; user-select: none; }
.ctn-preloader .animation-preloader .txt-loading .letters-loading { color: rgba(0,0,0,0.15); position: relative; }
.ctn-preloader .animation-preloader .txt-loading .letters-loading:before { animation: letters-loading 4s infinite; color: var(--primary); content: attr(data-text-preloader); left: 0; opacity: 0; font-family: var(--font-headline); position: absolute; top: -3px; transform: rotateY(-90deg); }
.ctn-preloader .animation-preloader .txt-loading .letters-loading:nth-child(2):before { animation-delay: 0.2s; }
.ctn-preloader .animation-preloader .txt-loading .letters-loading:nth-child(3):before { animation-delay: 0.4s; }
.ctn-preloader .animation-preloader .txt-loading .letters-loading:nth-child(4):before { animation-delay: 0.6s; }
.ctn-preloader .animation-preloader .txt-loading .letters-loading:nth-child(5):before { animation-delay: 0.8s; }
.ctn-preloader .animation-preloader .txt-loading .letters-loading:nth-child(6):before { animation-delay: 1s; }
.ctn-preloader .animation-preloader .txt-loading .letters-loading:nth-child(7):before { animation-delay: 1.2s; }
.ctn-preloader .animation-preloader .txt-loading .letters-loading:nth-child(8):before { animation-delay: 1.4s; }
.ctn-preloader p { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--on-surface-variant); }
.ctn-preloader .loader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.ctn-preloader .loader .row { height: 100%; }
.ctn-preloader .loader .loader-section { padding: 0; }
.ctn-preloader .loader .loader-section .bg { background-color: var(--surface); height: 100%; left: 0; width: 100%; transition: all 800ms cubic-bezier(0.77, 0, 0.175, 1); }
.ctn-preloader.loaded .animation-preloader { opacity: 0; transition: 0.3s ease-out; }
.ctn-preloader.loaded .loader-section .bg { width: 0; transition: 0.7s 0.3s cubic-bezier(0.1, 0.1, 0.1, 1); }
@keyframes spinner { to { transform: rotateZ(360deg); } }
@keyframes letters-loading { 0%, 75%, 100% { opacity: 0; transform: rotateY(-90deg); } 25%, 50% { opacity: 1; transform: rotateY(0deg); } }

/* Animations */
.wow { visibility: visible !important; }
.animated { animation-duration: 0.65s; animation-fill-mode: both; }
@keyframes fadeInUp { from { opacity: 0; transform: translate3d(0, 24px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
.fadeInUp { animation-name: fadeInUp; }
@keyframes fadeInLeft { from { opacity: 0; transform: translate3d(-24px, 0, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
.fadeInLeft { animation-name: fadeInLeft; }
@keyframes fadeInRight { from { opacity: 0; transform: translate3d(24px, 0, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
.fadeInRight { animation-name: fadeInRight; }

/* Bootstrap navbar/tabs/media/forms */
.navbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding: 0; background: transparent; }
.navbar > .container { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; }
.navbar > .container > * { flex-shrink: 0; }
.navbar-brand { display: inline-block; white-space: nowrap; }
.navbar-brand a, a:has(.navbar-brand) { display: inline-block; }
.navbar-toggler { display: none; background: none; border: none; cursor: pointer; }
.navbar-collapse { flex-grow: 1; align-items: center; }
.navbar-nav { display: flex; flex-direction: row; padding-left: 0; margin-bottom: 0; list-style: none; align-items: center; }
.navbar-nav .nav-item + .nav-item { margin-left: 25px; }
@media (max-width: 991px) { .navbar-toggler { display: block; } .navbar-nav .nav-item + .nav-item { margin-left: 0; } .navbar > .container { flex-wrap: wrap; } .navbar-collapse { display: none; width: 100%; flex-basis: 100%; } .navbar-collapse.show { display: block; } .navbar-nav { flex-direction: column; width: 100%; } }
@media (min-width: 992px) { .navbar-expand-lg .navbar-collapse { display: flex !important; } .navbar-expand-lg .navbar-toggler { display: none; } }
.nav-tabs { display: flex; flex-direction: column; padding-left: 0; margin-bottom: 0; list-style: none; }
.tab-content > .tab-pane { display: none; }
.tab-content > .tab-pane.active { display: block; }
.tab-content > .tab-pane.fade { opacity: 0; transition: opacity var(--transition-fast) linear; }
.tab-content > .tab-pane.fade.show { opacity: 1; }
.media { display: flex; align-items: flex-start; }
.media-body { flex: 1; }
.form-group { margin-bottom: 1rem; }
.form-control { display: block; width: 100%; padding: 0.5rem 0; font: 400 1rem/1.7 var(--font-body); color: var(--on-background); background: transparent; border: 0; border-bottom: 1px solid rgba(189,201,202,0.4); border-radius: 0; transition: border-color var(--transition-base), background var(--transition-base); }
.form-control:focus { outline: 0; border-bottom: 2px solid var(--primary); background: var(--surface-container-highest); box-shadow: none; }
.form-control::placeholder { color: var(--outline); }
