/*
Theme Name: BlankMasterTheme
Theme URI: https://devadesign.eu/
Author: devaDesign
Author URI: https://devadesign.eu/
Description: Blank, modular, modern WP theme for fast development with variables.
Version: 1.0
License: DevaDesign License v1
License URI: https://devadesign.eu/license
Tags: custom-theme, responsive
Text Domain: blankmastertheme
*/

/* ===================================================================================================
   Global CSS Variables
   =================================================================================================== */
:root {
	/* Color palette */
	--color-primary: #0a7dcb;
	--color-primary-dark: #0662a3;
	--color-accent: #f6faff;
	--color-bg: #fff;
	--color-bg-alt: #f9f9fb;
	--color-text: #222;
	--color-text-light: #666;
	--color-border: #e6e6e6;

	/* Typography */
	--font-size-base: 18px;
	--font-size-small: 15px;
	--font-size-large: 22px;
	--font-weight-normal: 400;
	--font-weight-bold: 700;

	/* Spacing */
	--space-xs: 0.5rem;
	--space-sm: 1rem;
	--space-md: 2rem;
	--space-lg: 3rem;
	--space-xl: 5rem;

	/* Border radius */
	--radius: 9px;
	--radius-full: 9999px;

	/* Shadows */
	--shadow: 0 4px 24px rgba(0,0,0,0.09);

	/* Transition */
	--transition: 0.36s cubic-bezier(.4,0,.2,1);
	--transition-slow: 0.54s cubic-bezier(.4,0,.2,1);

	/* Container width */
	--container-max: 1440px;

	/* Header & Navigation */
	--header-height: 90px;
	--nav-link-margin: 36px;
	--nav-link-height: 90px;
	--nav-link-lh: 90px;
	--nav-sub-link-height: 54px;
	--nav-sub-link-lh: 54px;
	--nav-sub-link-padding: 0 18px;
}

/* ===================================================================================================
   Reset & Box Sizing
   =================================================================================================== */
html {
	font-size: 18px;
	box-sizing: border-box;
	overflow-y: scroll;
	-webkit-text-size-adjust: 100%;
}

*, *::before, *::after {
	box-sizing: inherit;
}

/* ===================================================================================================
   Base Typography
   =================================================================================================== */
body {
	margin: 0;
	padding: 0;
    font-family: "IBM Plex Sans", sans-serif;
    font-style: normal;
	font-size: 1rem;
	font-weight: var(--font-weight-normal);
    line-height: 1.6;
	color: var(--color-text);
	background: var(--color-bg);
	text-align: left;
	text-rendering: optimizeLegibility;
    text-rendering: auto;
	-webkit-font-smoothing: auto;
	-moz-osx-font-smoothing: auto;
	font-variant-ligatures: normal;
	min-height: 100vh;
    opacity: 0;
    animation: body-fade-in var(--transition) forwards;
}
@keyframes body-fade-in {
    from {opacity: 0;}
    to {opacity: 1;}
}

h1, h2, h3, h4, h5, h6 {
    font-family: "Source Serif 4", serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
	color: var(--color-text);
	margin-top: 2rem;
	margin-bottom: 1rem;
}
h1 { font-size: clamp(2rem, 1.1rem + 3.2vw, 2.9rem); line-height: 1.15; }
h2 { font-size: clamp(1.6rem, 1rem + 2.1vw, 2.2rem); line-height: 1.2; }
h3 { font-size: clamp(1.25rem, 0.95rem + 1.2vw, 1.6rem); line-height: 1.25; }

/* Optical balancing of title breaks where supported */
h1, h2, h3 { text-wrap: balance; }

h4 { font-size: 1.222rem; line-height: 1.3; }
h5 { font-size: 1rem; text-transform: uppercase; line-height: 1.3; }
h6 { font-size: 0.888rem; text-transform: uppercase; line-height: 1.3; }

blockquote, ul, ol, dl, form, table, pre {
	margin-bottom: var(--space-md);
}
p{
    margin: 0 0 var(--space-md) 0;
}

table, input, textarea, select, li, button, p{
    font-family: inherit;
}

/* ===================================================================================================
   Lists
   =================================================================================================== */
ul, ol, dl{padding:0;}
ul ul, ul ol, ol ol, ol ul, dd{margin:0;}
ul li{position:relative;margin:0 0 0 1rem;counter-increment:li;display:list-item;list-style-position:outside;}
ul { list-style: disc outside; }
ol { list-style: decimal outside; }

small { font-size: 0.8rem; }
strong, b { font-weight: var(--font-weight-bold); }
em, cite, q { font-style: italic; }

abbr, acronym {
	text-transform: uppercase;
	border-bottom: 1px dotted #000;
	cursor: help;
}

/* ===================================================================================================
   Code & Pre
   =================================================================================================== */
pre, code, kbd, samp, var {
	font-family: 'Fira Mono', 'Menlo', 'Monaco', 'Consolas', monospace;
	font-size: 0.96em;
}
code {
	background: #f7f7f7;
	border: 1px solid var(--color-border);
	padding: 0 3px;
	border-radius: var(--radius);
	color: #555;
}
pre {
	background: #f7f7f7;
	border: 1px solid var(--color-border);
	padding: var(--space-sm);
	overflow-x: auto;
}

/* ===================================================================================================
   Blockquote
   =================================================================================================== */
blockquote {
	margin-left: 2rem;
	border-left: 3px solid var(--color-border);
	padding-left: 1rem;
	font-style: italic;
	color: var(--color-text-light);
}

/* ===================================================================================================
   Tables
   =================================================================================================== */
table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--space-md);
	border: 1px solid var(--color-border);
}
th, td {
	text-align: left;
	padding: .5em 1rem;
	border-bottom: 1px solid var(--color-border);
}
tr:nth-child(odd) td {
	background: var(--color-bg-alt);
}
caption {
	font-style: italic;
	color: #777;
	margin: .5em 0;
}

/* ===================================================================================================
   Images & Figures
   =================================================================================================== */
img {
	display: block;
	max-width: 100%;
	height: auto;
	border: none;
}
figure {
	margin: 0 0 .5em 0;
}
figcaption {
	color: #636363;
	font-size: 1rem;
	margin: .25rem 0;
	text-align: center;
}

/* ===================================================================================================
   Forms
   =================================================================================================== */
input, textarea, select, button {
	font-family: inherit;
	font-size: inherit;
}
input, select, textarea {
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	background: var(--color-bg);
	padding: 0.7em 1em;
	margin-bottom: var(--space-sm);
	transition: border-color var(--transition);
}
input:focus, textarea:focus, select:focus {
	border-color: var(--color-primary);
}
input[type="submit"], input[type="reset"], input[type="button"], a.button {
	display: inline-block;
	padding: 0.6em 2em;
	border: none;
	border-radius: var(--radius);
	background: var(--color-primary);
	color: #fff;
	font-weight: var(--font-weight-bold);
	cursor: pointer;
	text-transform: uppercase;
	transition: background-color var(--transition), color var(--transition);
}
input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover, a.button:hover {
	background: var(--color-primary-dark);
}

/* Hide browser default checkboxes/radios (keep only for generic) */
input[type="checkbox"], input[type="radio"] {
	accent-color: var(--color-primary);
}

/* ===================================================================================================
   Numbers, prices...
   =================================================================================================== */

.number_display{font-variant-numeric: tabular-nums;}

/* ===================================================================================================
   Links
   =================================================================================================== */
a, a:visited {
	color: var(--color-primary);
	text-decoration: none !important;
}
a:hover, a:focus {
	color: var(--color-primary-dark);
	text-decoration: none !important;
}
a:focus {
  outline: none;
}

a:focus-visible {
  outline: 2px solid #1976d2 !important;
  outline-offset: 2px;
}

/* ===================================================================================================
   Helpers & Utilities
   =================================================================================================== */
.hidden {display: none !important;}
.clear {clear: both;}
.block {display: block;}
.no_link > a,
a.no_link {
    pointer-events: none;
    cursor: pointer;
}

/* ===================================================================================================
   Container (basic)
   =================================================================================================== */

.site-container{}
.site-main {
    overflow: hidden;
    padding-top:150px;
}

.container {
	width: 90%;
	max-width: var(--container-max);
	margin: 0 auto;
	position: relative;
}

.inner {
	width: 90%;
	max-width: var(--container-max);
	margin: 0 auto;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	box-sizing: border-box;
}

/* ===================================================================================================
   HR
   =================================================================================================== */
hr {
	border: none;
	border-bottom: 1px solid var(--color-border);
	margin: var(--space-md) 0;
	clear: both;
	height: 1px;
}

/* ===================================================================================================
   Selection
   =================================================================================================== */
::selection {
	background: var(--color-primary);
	color: #fff;
}
::-moz-selection {
	background: var(--color-primary);
	color: #fff;
}

/* ===================================================================================================
   Skip Link
   =================================================================================================== */
    .skip-link{
        position:absolute;
        left:-9999px;
        top:auto;
        width:1px;
        height:1px;
        overflow:hidden
}
    .skip-link:focus{
        left:1rem;
        top:1rem;
        width:auto;
        height:auto;
        padding:.5rem .75rem;
        background:#000;
        color:#fff;
        z-index:999999999
}

/* ===================================================================================================
   Top bar
   =================================================================================================== */
.top-bar {
    position: absolute;
    top:0;
    left:0;
    right:0;
    background: #23272f;
    color: #f6f6f6;
    font-size: var(--font-size-small);
    padding: 0;
    height: 60px;
    z-index: 100;
}

.top-bar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 auto;
}

.top-bar-left{
    display: flex;
    gap: 18px;
    align-items: left;
}

.top-bar-left a {
    color: #f6f6f6;
    text-decoration: none;
    transition: color 0.36s;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0;
}

.top-bar-left a:hover,
.top-bar-left a:focus {
    color: #5fd4c7;
}

/* Icon before phone */
.top-bar-phone::before {
    content: '';
    font-size: 15px;
    margin-right: 5px;
}

/* Icon before mail */
.top-bar-mail::before {
    content: '';
    font-size: 15px;
    margin-right: 5px;
}

.top-bar-right {
    display: flex;
    gap: 0;
    align-items: right;
}

/* Responsive */
@media (max-width: 1024px) {
    .top-bar {
        display: none;
    }
}

/* ===================================================================================================
   Header
   =================================================================================================== */
.header {
	height: auto;
	box-shadow: 0 2px 7px rgba(0,0,0,0.09);
	position: absolute;
	top: 60px;
    left: 0;
    right: 0;
    transition: background-color 0.36s;
    background: rgba(255,255,255,.72);
	z-index: 100;
}

.header .inner {
	height: var(--header-height);
    transition: all var(--transition);
}

.site-branding {
    position: absolute;
    top:50%;
    left:0;
    transform: translateY(-50%);
    width: auto;
    height: auto;
}
.site-branding a {
    display: block;
    width: auto;
    height: auto;
}
.site-branding a img {
    display: block;
    width: auto;
    height: 44px;
    opacity: 1;
}
.site-branding a:hover img {
    opacity: .63;
}

body.active .header{
    position: fixed;
    top: 0;
    background: #fff;
}
body.active .header .inner,
body.active .main-navigation .nav > li > a{
    height: 54px;
}
body.active .main-navigation .nav > li > a{
    line-height: 54px;
}
body.active .main-navigation .nav > li.menu-item-has-children > .submenu-trigger {
    top: 17px;
}
body.active .main-navigation .nav > li.nav-button > a {
    height: 36px;
    line-height: 36px;
}

/* ===================================================================================================
   Main Navigation
   =================================================================================================== */
.main-navigation {
    margin: 0 0 0 auto;
	display: flex;
	align-items: center;
	transition: none;
}

.main-navigation .nav {
	display: flex;
	align-items: center;
}

nav ul, nav li {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Main Navigation Items */
.main-navigation .nav > li {
	position: relative;
	display: flex;
	align-items: center;
}

.main-navigation .nav > li:not(:first-child) {
	margin-left: var(--nav-link-margin);
}

.main-navigation .nav > li:first-child {
	margin-left: 0;
}

.main-navigation #menu-menu > li:first-child {
    display: none;
}

.main-navigation .nav > li > a {
    display: flex;
    align-items: center;
    height: var(--nav-link-height);
    line-height: var(--nav-link-lh);
    color: #222;
    font-weight: 500;
    font-size: 1rem;
    padding: 0;
    position: relative;
}

.main-navigation .nav > li.nav-button > a {
	padding: 0 1.5rem;
	border: none;
	border-radius: 5px;
	background: var(--color-primary);
	color: #fff;
	cursor: pointer;
    height: 44px;
    line-height: 44px;
    transition: all var(--transition);
}
.main-navigation .nav > li.nav-button > a:hover {
	background: var(--color-primary-dark);
}

/* Submenu trigger */
.main-navigation .nav > li.menu-item-has-children > a{padding-right: 22px;}
.main-navigation .nav > li.menu-item-has-children > .submenu-trigger {
    display: block;
    position: absolute;
    right: -4px;
    top: 35px;
    width: 20px;
    height: 20px;
    cursor: pointer;
    border: none;
    color: #000;
    background: none;
    padding: 0;
    margin: 0;
    font: inherit;
    line-height: 1;
    appearance: none;
    z-index: 10;
}
.main-navigation .nav > li.menu-item-has-children > .submenu-trigger svg {
    position: absolute;
    top: 0;
    left: 0;
    transform: rotate(90deg);
    display: block;
    width: 100%;
    height: 100%;
}
.main-navigation .nav > li.menu-item-has-children.active > .submenu-trigger svg {
    transform: rotate(-90deg);
}

/* ===================================================================================================
   Submenu (Desktop)
   =================================================================================================== */
.main-navigation .sub-menu{
	position: absolute;
	left: -18px;
	top: 100%;
	min-width: 220px;
	background: #fff;
	box-shadow: 0 4px 16px rgba(0,0,0,.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity var(--transition), transform var(--transition);
	z-index: 10;
	pointer-events: none;
}

/* Show submenu on hover/focus */
.main-navigation .nav > li:hover > .sub-menu,
.main-navigation .nav > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

.main-navigation .sub-menu > li {
	position: relative;
}

.main-navigation .sub-menu > li > a {
	display: flex;
	align-items: center;
	height: var(--nav-sub-link-height);
	line-height: var(--nav-sub-link-lh);
	padding: var(--nav-sub-link-padding);
	color: #333;
	font-size: 1rem;
	white-space: nowrap;
}
.main-navigation .sub-menu > li.menu-item-has-children > a{padding-right: 45px;}

.main-navigation .sub-menu > li > a:hover {
	background: #f3f3f3;
}

/* Submenu trigger for nested submenus */
.main-navigation .sub-menu .submenu-trigger {
    position: absolute;
    right: 18px;
    top: 36%;
    width: 20px;
    height: 20px;
    border: none;
    color: #000;
    z-index: 10;
    display: block;
    cursor: pointer;
    background: none;
    padding: 0;
    margin: 0;
    font: inherit;
    line-height: 1;
    appearance: none;
}
.main-navigation .sub-menu .submenu-trigger svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* ===================================================================================================
   Third Level Submenu (Desktop)
   =================================================================================================== */
.main-navigation .sub-menu .sub-menu {
	top: 0;
	left: 100%;
	margin-left: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateX(20px);
	transition: opacity var(--transition), transform var(--transition);
	pointer-events: none;
}

/* Show third level on hover/focus */
.main-navigation .sub-menu > li:hover > .sub-menu,
.main-navigation .sub-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
	pointer-events: auto;
}

/* ===================================================================================================
   NAV-END: Align sub-menu right under parent, third level to the left
   =================================================================================================== */
.main-navigation .nav > li.nav-end > .sub-menu {
    left: auto;
    right: -9px;
}
.main-navigation .nav > li.nav-end > .sub-menu > li > a{
    padding-right: 36px;
}

.main-navigation .nav > li.nav-end > .sub-menu .sub-menu {
    left: auto;
    right: 100%;
    margin-left: 0;
    margin-right: 0;
    /* Show third level from the left side */
    transform: translateX(-20px);
    /* Transitions same as other menus */
    transition: opacity var(--transition), transform var(--transition);
}

.main-navigation .nav > li.nav-end > .sub-menu > li:hover > .sub-menu,
.main-navigation .nav > li.nav-end > .sub-menu > li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
    pointer-events: auto;
}

/* Right-align text in all sub-menus under nav-end */
.main-navigation .nav > li.nav-end > .sub-menu,
.main-navigation .nav > li.nav-end > .sub-menu .sub-menu {
    text-align: right;
}

.main-navigation .nav > li.nav-end > .sub-menu a,
.main-navigation .nav > li.nav-end > .sub-menu .sub-menu a {
    justify-content: flex-end;
}

/* Submenu trigger for nested submenus under nav-end */
.main-navigation .nav li.nav-end .sub-menu .submenu-trigger {
    right: auto;
    left: 18px;
}
.main-navigation .nav li.nav-end .sub-menu .submenu-trigger svg {transform: rotate(180deg);}

/* ===================================================================================================
   Hamburger
   =================================================================================================== */
.menu-toggle {
	display: none;
	cursor: pointer;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	margin-left: auto;
	z-index: 9999;
}

.menu-toggle .bar {
	width: 36px;
	height: 3px;
	background: #222;
	margin: 3px 0;
	border-radius: 2px;
	transition: all var(--transition);
}

.menu-toggle.open .bar:nth-child(1) {
	transform: translateY(9px) rotate(45deg);
}
.menu-toggle.open .bar:nth-child(2) {
	opacity: 0;
}
.menu-toggle.open .bar:nth-child(3) {
	transform: translateY(-9px) rotate(-45deg);
}

/* ===================================================================================================
   Language Navigation
   =================================================================================================== */
.main-navigation .navLang{
    margin-left: 30px;
}
.main-navigation .navLang > li{}
.main-navigation .navLang > li.no_link{
    cursor: pointer;
}
.main-navigation .navLang > li > a{
    display: block;
    text-indent: -999999999px;
    width: 50px;
    height: 100%;
    padding-right: 27px;
    background-color: #222;
    mask-size: 36px;
    mask-repeat: no-repeat;
    mask-position: left center;
    mask-image: url("svg/globe.svg");
    }
.main-navigation .navLang > li > a:hover{
    background-color: #0a66c2;
    }
.main-navigation .navLang .sub-menu{
    min-width: 108px;
}

/* ===================================================================================================
   Social Icons
   =================================================================================================== */
.navSocial {
    display: flex;
    flex-direction: row;
    gap: .25rem;
}
.navSocial li {
    margin-bottom: 0;
    border-radius: 100%;
    overflow: hidden;
}
.navSocial a {
    display: block;
    width: 30px;
    height: 30px;
    text-indent: -999999999px;
    overflow: hidden;
    position: relative;
    background: #3f4246;
}
.navSocial a:focus-visible {
    outline-offset: -4px;
}

.navSocial .linkedin a:hover{
    background: #0a66c2;
}
.navSocial .facebook a:hover{
    background: #0866ff;
}
.navSocial .instagram a:hover{
    background: rgba(0,0,0,0);
}

.navSocial li.instagram {
    background: url("svg/bg-instagram.svg") no-repeat center;
    background-size: contain;
}

.navSocial a::after {
    position: absolute;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    background-color: #fff;
    mask-size: contain;
    mask-repeat: no-repeat;
}

.navSocial .linkedin a::after {
    mask-image: url("svg/social-linkedin.svg");
}
.navSocial .facebook a::after {
    mask-image: url("svg/social-facebook.svg");
}
.navSocial .instagram a::after {
    mask-image: url("svg/social-instagram.svg");
}

.navSocial a:hover::after {
    background-color: #fff;
}

/* Main navigation Social Icons */
.main-navigation .navSocial{
    display: none;
    padding-left: 27px;
}

/* Top bar Social Icons */
.top-bar .navSocial {
    gap: 0;
    margin-bottom: 14px;
}
.top-bar .navSocial li{
    margin-left:9px;
}

/* Footer Social Icons */
.footer-social .navSocial {
    gap: .5rem;
}
.footer-social .navSocial li {
    border-radius: 9px;
}
.footer-social .navSocial a {
    width: 45px;
    height: 45px;
}
.footer-social .navSocial a::after {
    width: 27px;
    height: 27px;
    background-color: #bfc9d1;
}
.footer-social .navSocial a:hover::after {
    background-color: #fff;
}

/* ===================================================================================================
   Breadcrumbs
   =================================================================================================== */
.breadcrumbs {
  font-size: 0.9rem;
  margin: 1rem 0;
  color: #636363;
}

.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
}

.breadcrumbs li {
  display: flex;
  align-items: center;
}

.breadcrumbs li + li:before {
  content: ">";
  margin: 0 0.5rem;
  color: #aaa;
  font-size: 0.9rem;
}

.breadcrumbs a {
  color: #1a73e8;
  text-decoration: none;
  transition: color 0.27s;
}

.breadcrumbs a:hover,
.breadcrumbs a:focus {
  text-decoration: underline;
  color: #174ea6;
}

.breadcrumbs [aria-current="page"] {
  color: #636363;
  text-decoration: none;
  pointer-events: none;
  cursor: default;
}

/* ===================================================================================================
   Hero Section
   =================================================================================================== */
.hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100vh;
	min-height: 100vh;
	min-width: 100%;
	overflow: hidden;
	color: #fff;
    margin-top: -150px;
}

/* Video background styles */
.hero__bg-video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	object-fit: cover;
	z-index: 1;
}

/* Image and slider backgrounds */
.hero--image {
	background-size: cover;
	background-position: center;
	width: 100%;
	height: 100vh;
	position: relative;
}

/* Content centering and overlay */
.hero__content {
	position: relative;
	z-index: 2;
	display: inline-block;
    max-width: min(100%, 720px);
}
.hero__content .box {
	position: relative;
	text-align: center;
	border-radius: 9px;
	backdrop-filter: blur(2px);
	display: block;
}
.hero__content .box.no_bcg{}

.hero__content .box.dark_bcg{
	padding: 2rem 2rem;
    color:#fff;
	background: rgba(0,0,0,0.36);
}
.hero__content .box.dark_bcg h1,
.hero__content .box.dark_bcg h2,
.hero__content .box.dark_bcg h3{
    color:#fff;
}

.hero__content .box.light_bcg{
	padding: 2rem 2rem;
    color: var(--color-text);
	background: rgba(255,255,255,0.63);
}
.hero__content .box.light_bcg h1,
.hero__content .box.light_bcg h2,
.hero__content .box.light_bcg h3{
    color:#000;
}

.hero__slogan {
	font-size: 2.8rem;
	font-weight: 700;
	margin-bottom: 1rem;
}
.hero__desc {
	font-size: 1rem;
	margin-bottom: 2rem;
}
.hero__cta.btn {
	background: #e94560;
	color: #fff;
	padding: 0.9em 2.3em;
	border: none;
	border-radius: 30px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color .36s;
	display: inline-block;
}
.hero__cta.btn:hover {
	background: #ba2448;
}

.hero .inner.box_center{
	justify-content: center;
}
.hero .inner.box_left{
	justify-content: flex-start;
}
.hero .inner.box_right{
	justify-content: flex-end;
}

/* Slider specific */
.hero--slider {
	background: var(--color-bg);
}
.hero--slider .hero__slider {
	position: relative;
	width: 100%;
	height: 100vh;
	margin: 0 auto;
	overflow: hidden;
}
.hero__slide {
	display: none;
	position: absolute;
	top: 0;
    left: 0;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	background-size: cover;
	background-position: center;
	transition: opacity var(--transition), transform var(--transition);
}
.hero__slide.active {
	display: flex;
}

/* Fade animation */
.hero__slide.fade-in {
	animation: fadeIn 0.7s forwards;
}
.hero__slide.fade-out {
	animation: fadeOut 0.7s forwards;
}
@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}
@keyframes fadeOut {
	from { opacity: 1; }
	to { opacity: 0; }
}
/* Left/Right animations */
.hero__slide.slide-in-right {
	animation: slideInRight 0.7s forwards;
}
.hero__slide.slide-out-left {
	animation: slideOutLeft 0.7s forwards;
}
.hero__slide.slide-in-left {
	animation: slideInLeft 0.7s forwards;
}
.hero__slide.slide-out-right {
	animation: slideOutRight 0.7s forwards;
}
@keyframes slideInRight {
	from { opacity: 0; transform: translateX(100%);}
	to { opacity: 1; transform: translateX(0);}
}
@keyframes slideOutLeft {
	from { opacity: 1; transform: translateX(0);}
	to { opacity: 0; transform: translateX(-100%);}
}
@keyframes slideInLeft {
	from { opacity: 0; transform: translateX(-100%);}
	to { opacity: 1; transform: translateX(0);}
}
@keyframes slideOutRight {
	from { opacity: 1; transform: translateX(0);}
	to { opacity: 0; transform: translateX(100%);}
}
/* Up/Down animations */
.hero__slide.slide-in-up {
	animation: slideInUp 0.7s forwards;
}
.hero__slide.slide-out-down {
	animation: slideOutDown 0.7s forwards;
}
.hero__slide.slide-in-down {
	animation: slideInDown 0.7s forwards;
}
.hero__slide.slide-out-up {
	animation: slideOutUp 0.7s forwards;
}
@keyframes slideInUp {
	from { opacity: 0; transform: translateY(-100%);}
	to { opacity: 1; transform: translateY(0);}
}
@keyframes slideOutDown {
	from { opacity: 1; transform: translateY(0);}
	to { opacity: 0; transform: translateY(100%);}
}
@keyframes slideInDown {
	from { opacity: 0; transform: translateY(100%);}
	to { opacity: 1; transform: translateY(0);}
}
@keyframes slideOutUp {
	from { opacity: 1; transform: translateY(0);}
	to { opacity: 0; transform: translateY(-100%);}
}

.hero__content .box,
.hero__content .hero__slogan,
.hero__content .hero__desc,
.hero__content .hero__cta {
  opacity: 0;
  transform: translateY(18px);
  animation: fadeInUp 0.9s cubic-bezier(.4,0,.2,1) forwards;
}

.hero__content .box { animation-delay: .75s; }
.hero__content .hero__slogan { animation-delay: 1s; }
.hero__content .hero__desc { animation-delay: 1.25s; }
.hero__content .hero__cta { animation-delay: 1.5s; }

@keyframes fadeInUp {
  to {opacity: 1; transform: none;}
}

/* Arrows */
.hero__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 54px;
	height: 54px;
	background: #fff;
	border: none;
	border-radius: var(--radius-full);
	box-shadow: var(--shadow);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 20;
    opacity: 0;
    transition: all var(--transition);
}
.hero__slider:hover .hero__arrow {
    opacity: 1;
}
.hero__arrow svg {
	width: 1.5rem;
	height: 1.5rem;
    color:#0662a3;
	transition: color var(--transition);
}
.hero__arrow--prev {
	left: -54px;
	transform: translateY(-50%) rotate(180deg);
}
.hero__arrow--next {
	right: -54px;
}
.hero__arrow:hover {
	background: #0a7dcb;
}
.hero__arrow:hover svg {
	color: #fff;
}

.hero__slider:hover .hero__arrow {
    opacity: 1;
}
.hero__slider:hover .hero__arrow--prev {
	left: 54px;
}
.hero__slider:hover .hero__arrow--next {
	right: 54px;
}

/* Dots */
.hero__dots {
	position: absolute;
	left: 50%;
	bottom: var(--space-lg);
	transform: translateX(-50%);
	display: flex;
	gap: var(--space-xs);
	z-index: 10;
}
.hero__dot {
	width: 1rem;
	height: 1rem;
	border-radius: var(--radius-full);
	background: var(--color-border);
	border: none;
	cursor: pointer;
	transition: background-color var(--transition), box-shadow var(--transition);
	box-shadow: 0 0 0 2px transparent;
}
.hero__dot.active,
.hero__dot:hover {
	background: var(--color-primary);
	box-shadow: 0 0 0 2px var(--color-primary-dark);
}

/* Responsive */
@media (max-width: 1107px) {
    .hero__slider:hover .hero__arrow--prev {
        left: 5%;
    }
    .hero__slider:hover .hero__arrow--next {
        right: 5%;
    }
}
@media (max-width: 900px) {
	.hero__slogan {
		font-size: 2rem;
	}
	.hero__desc {
		font-size: 1rem;
	}
	.hero__content {
		padding: 1rem;
	}
	.hero__arrow {
		width: 2.5rem;
		height: 2.5rem;
	}
	.hero__dots {
		bottom: var(--space-md);
	}
}
@media (max-width: 600px) {
	.hero {
		min-height: 80vh;
		height: 80vh;
	}
	.hero__slogan {
		font-size: 1.3rem;
	}
	.hero__arrow {
		width: 2rem;
		height: 2rem;
	}
}

/* ===================================================================================================
   About section
   =================================================================================================== */
.about-section {
	padding: var(--space-xl) 0;
	background-color: var(--color-accent);
}
.about-container {
	display: flex;
	align-items: center;
	gap: var(--space-lg);
	margin: 0 auto;
}

.about-image,
.about-content {
	flex: 0 0 calc(50% - var(--space-lg) / 2);
	min-width: 0;
}

.about-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--radius);
	box-shadow: var(--shadow);
}
.about-content h2 {
	font-size: 2.5rem;
	margin-bottom: var(--space-sm);
	color: var(--color-primary-dark);
}
.about-text {
	color: var(--color-text);
	font-family: var(--font-base);
}
@media (max-width: 900px) {
	.about-container {
		flex-direction: column;
		gap: var(--space-md);
	}
	.about-image img {
		width: 100%;
		max-width: 25rem;
	}
}

/* ===================================================================================================
   Before / After section
   =================================================================================================== */
/* Section container */
.before_after-section {
	padding: 2rem 1rem;
	margin: auto;
}

/* Header */
.before_after-header h3 {
	font-size: 2rem;
	margin-bottom: 0.5rem;
}
.before_after-header p {
	font-size: 1.1rem;
	margin-bottom: 2rem;
	color: #555;
}

/* === Layout: Before / After === */
/* Keep column flow with consistent spacing */
.before_after-list {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

/* Two-column layout on wider screens */
.before_after-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 3rem; /* Fixed gap between image and text */
}

/* Stack on small screens */
@media (max-width: 768px) {
	.before_after-row {
		flex-direction: column;
		gap: 1.5rem;
	}
	.before_after-image,
	.before_after-info {
		flex: 1 1 auto;
		width: 100%;
	}
}

/* Image and info blocks */
.before_after-image {
	flex: 0 0 50%;
	width: 50%;
	max-width: none;
	min-width: 0;
	position: relative;
}

.before_after-info {
	flex: 0 0 50%;
	width: 50%;
	min-width: 0;
	max-width: none;
	padding-top: 1.5rem;
}

/* === Slider container === */
.slider-container {
	/* Pointer/gesture handling */
	touch-action: pan-y; /* Allow vertical page scroll; JS handles horizontal drag */
	cursor: ew-resize;

	/* Geometry */
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;

	/* Custom properties */
	--ba-value: 50%;           /* Current reveal value (0%..100%), kept in sync by JS */
	--ba-handle-half: 12px;    /* Half of handle width, used to center the handle */
}

/* Disable motion while dragging for a snappier feel */
.slider-container.is-dragging .slider-img-before {
	transition: none;
}

/* === Images === */
.slider-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: none;
	user-select: none;
	pointer-events: none; /* Images themselves shouldn’t trap input */
}

.slider-img-after {
	z-index: 1;
}

/* Foreground reveal using clip-path; animated for initial adjustments */
.slider-img-before {
	/* JS sets --ba-value; keep a fallback at 50% */
	clip-path: inset(0 calc(100% - var(--ba-value, 50%)) 0 0);
	z-index: 2;
	transition: clip-path 0.24s ease; /* Shorter, feels more responsive */
}

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
	.slider-img-before {
		transition: none;
	}
}

/* === Slider bar and handle === */
.slider-bar {
	position: absolute;
	top: 0;
	bottom: 0;
	/* JS sets left as a percentage; default 50% */
	left: var(--ba-value, 50%);
	width: 0;
	z-index: 5;
	pointer-events: none; /* Container listens for input, not the bar */
}

/* Visual vertical line to aid perception */
.slider-bar::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 2px;
	background: rgba(0, 0, 0, 0.4);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.4) inset;
}

/* Handle styling */
.slider-handle {
	position: absolute;
	top: 50%;
	/* JS sets left via calc(percent - var(--ba-handle-half)) */
	left: calc(-1 * var(--ba-handle-half, 12px));
	transform: translateY(-50%);
	width: calc(var(--ba-handle-half, 12px) * 2);
	height: 48px;

	/* High-contrast neutral UI */
	background: #f5f5f5;
	border: 2px solid #9aa0a6;
	border-radius: 16px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);

	/* Make it obvious it can be dragged */
	cursor: grab;

	display: flex;
	align-items: center;
	justify-content: center;
}

/* While actively dragging, communicate affordance */
.slider-container.is-dragging .slider-handle {
	cursor: grabbing;
}

.slider-handle::before {
	content: "";
	display: block;
	width: 6px;
	height: 24px;
	background: #6b7280; /* Better contrast than #888 on #f5f5f5 */
	border-radius: 3px;
}

/* === Focus styles for keyboard users === */
/* If native range is visually hidden, provide a visible focus ring on container */
.slider-container:focus,
.slider-container:focus-visible {
	outline: 2px solid #2563eb; /* Accessible blue focus */
	outline-offset: 2px;
}

.before_after-range:focus,
.before_after-range:focus-visible {
	outline: 2px solid #2563eb;
	outline-offset: 2px;
}

/* === Accessibility utilities === */
/* Screen-reader text (keep readable to AT, hidden visually) */
.screen-reader-text {
	position: absolute !important;
	height: 1px; width: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* Fully hidden but focusable area for controls if needed */
.is-visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	clip: rect(0 0 0 0); clip-path: inset(50%);
	overflow: hidden; white-space: nowrap;
}

/* Info area */
.before_after-subtitle {
	font-size: 1.15rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
}
.before_after-description {
	font-size: 1rem;
	color: #555;
}

/* Responsive styles */
@media (max-width: 700px) {
	.before_after-row {
		flex-direction: column;
		align-items: stretch;
	}
	.before_after-image,
	.before_after-info {
		width: 100%;
		flex: 1 1 100%;
	}
}

/* Focus styles for accessibility */
/* Backward compat if container is focusable elsewhere */
.slider-container[tabindex]:focus .slider-handle {
	box-shadow: 0 0 0 3px #cce4ff;
	border-color: #339cff;
}
/* Preferred: highlight handle when any child (range) has focus */
.slider-container:focus-within .slider-handle {
	box-shadow: 0 0 0 3px #cce4ff;
	border-color: #339cff;
}

/* Optional: place the range control as an overlay at the bottom of the slider */
.before_after-control {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 0.25rem 0.5rem;
	z-index: 6; /* above .slider-bar */
}

.before_after-range {
	width: 100%;
	touch-action: none; /* smoother touch handling with our JS */
	background: transparent;
}

/* Accessible focus outline for the native control */
.before_after-range:focus-visible {
	outline: 3px solid #339cff;
	outline-offset: 2px;
}

/* Visually hidden but operable range control */
.before_after-control.is-visually-hidden .before_after-range {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	overflow: hidden;
}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
	.slider-img-before {
		transition: none;
	}
}


/* ===================================================================================================
   Footer
   =================================================================================================== */
.footer {
    background: #212529;
    color: #fff;
    padding: 3rem 0 2rem 0;
    font-size: .9rem;
}

.footer a {
    color: #bfc9d1;
}

.footer a:hover,
.footer a:focus {
    color: #fff;
}

.footer .inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0;
}

.footer-row {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2rem;
    flex-wrap: wrap;
}

.footer-col {
    flex: 1 1 0;
    min-width: 220px;
    display: flex;
    flex-direction: column;
}

.footer-col:first-child {
    align-items: flex-start;
    text-align: left;
}

.footer-col:nth-child(2) {
    align-items: center;
    text-align: center;
}

.footer-col:last-child {
    align-items: flex-end;
    text-align: right;
}

/* ===================================================================================================
   Interactive Elements
   =================================================================================================== */
/* TABS */
.tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end; /* align tab buttons to bottom edge */
    gap: 4px;
    position: relative;
    margin: 0;
    padding: 0;
    z-index: 10;
    background: transparent;
}

/* legacy clearfix kept for safety with old layouts */
.tabs::after {
    content: "";
    display: table;
    clear: both;
}

.tabs li {
    /* floats not needed with flex but harmless if left in place */
    float: none;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tabs li a {
    display: block;
    min-height: 30px;
    line-height: 30px;
    padding: 0 20px;
    text-decoration: none !important;
    background: #fff;
    border: 1px solid #ddd;
    border-bottom: none;
    color: #1a1a1a; /* slightly darker for contrast */
    border-radius: 8px 8px 0 0;
    margin: 0; /* gap is handled by .tabs */
    position: relative;
    z-index: 2;
    /* smoother transition with fallback */
    transition: background-color var(--transition, .3s ease), color var(--transition, .3s ease), border-color var(--transition, .3s ease);
}

/* hover and selected states */
.tabs li a:hover {
    background: #f4f4f4;
}

.tabs li a.selected,
.tabs li a[aria-selected="true"] {
    background: #eee;
    font-weight: 600;
    color: #111;
    border-color: #ccc;
}

/* focus visibility for keyboard and a11y */
.tabs li a:focus,
.tabs li a:focus-visible {
    outline: 2px solid #0a7dd6;
    outline-offset: 2px;
}

/* ===== Holder and panels ===== */
.tab-holder {
    position: relative;
    overflow: hidden; /* required for height transition */
    margin-bottom: 3rem;
    /* use fallback if --transition missing */
    transition: height var(--transition, .3s ease);
    will-change: height; /* hint for smoother animation */
    z-index: 1;
    /* optional: prevent layout shift while images load */
    contain: layout paint;
    background: #f7f7f7; /* move bg to holder so inactive panels don't show through */
    border: 1px solid #ddd;
    border-radius: 0 0 8px 8px;
}

/* Panels are stacked on top of each other; JS toggles .active and aria-hidden */
.tab {
    position: absolute;
    /* was: inset: 0;  <-- ovo uklonite */
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition, .3s ease);
    z-index: 1;
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 20px;
    margin: 0;
    box-sizing: border-box;
}

.tab.active,
.tab[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
    z-index: 2;
}

/* ===== Mobile behavior ===== */
@media (max-width: 600px) {
    .tabs {
        /* stack tabs vertically on small screens */
        align-items: stretch;
        gap: 2px;
    }
    .tabs li {
        display: block;
    }
    .tabs li a {
        border-radius: 8px; /* all corners rounded for standalone buttons */
        border-bottom: 1px solid #ddd; /* keep full border in stacked mode */
    }

    /* Optional: allow natural flow on mobile if you prefer no height animation.
       If you keep JS auto-height, leave this block commented out.
    */
    /* 
    .tab-holder {
        overflow: visible;
        transition: none;
    }
    .tab {
        position: static;
        opacity: 1;
        pointer-events: auto;
    }
    .tab:not(.active) { display: none; }
    */
}

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce) {
    .tabs li a,
    .tab-holder,
    .tab {
        transition: none;
    }
}

/* ===== Print friendly ===== */
@media print {
    .tabs { display: none; }
    .tab-holder { overflow: visible; height: auto !important; border: 0; }
    .tab { position: static; opacity: 1; pointer-events: auto; }
}

/* ===== Minor utilities for edge cases ===== */
/* Prevent long tab titles from breaking layout */
.tabs li a {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    max-width: 100%;
}

/* If a tab is disabled via aria-disabled, reflect it visually */
.tabs li a[aria-disabled="true"] {
    opacity: .5;
    pointer-events: none;
    cursor: default;
}


/* EXPAND */
.expand {
    margin-bottom: 3rem;
    border-bottom: 1px solid #ddd;
}
.expand > .expand-item {
    position: relative;
    list-style: none;
    margin: 0;
    background: #f3f3f3;
    border-top: 1px solid #ddd;
    transition: background-color 0.36s;
}
.expand > .expand-item.expanded {
    background: #eee;
}
.expand > .expand-item .source {
    position: relative;
    margin: 0;
    cursor: pointer;
    user-select: none;
}
.expand > .expand-item .source button{
    display: block;
    width: 100%;
    padding: 1.5rem 4rem 1.5rem 1.5rem;
    margin: 0;
    border: none;
    font-weight: var(--font-weight-bold);
    font-family: "IBM Plex Sans", sans-serif;
    font-size: 1rem;
    text-align: left;
    background: none;
    cursor: pointer;
}
.expand > .expand-item .source span{
    position: absolute;
    top:50%;
    right: 1.5rem;
    transform: translateY(-50%) rotate(0deg);
    transition: var(--transition);
    width:18px;
    height: 18px;
    opacity: .54;
}
.expand > .expand-item.expanded .source span {
    transform: translateY(-50%) rotate(135deg);
    opacity: 1;
}
.expand > .expand-item .source span::before{
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width:100%;
    height: 2px;
    background: #000;
}
.expand > .expand-item .source span::after{
    content: '';
    position: absolute;
    top:0;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 100%;
    background: #000;
}

.expand > .expand-item .target {
    margin: 0;
    padding: 0 1.5rem;
    overflow: hidden;
    display: block;
    height: 0;
    background: #fff;
    transition: height var(--transition);
	will-change: height;
}
.expand > .expand-item .target p {
    margin: 1.5rem 0;
}

/* GALLERY */
.gallery br{
    display:none !important;
    clear:none !important;
}

.gallery,
.gallery-item,
.gallery-item a,
.gallery-item img,
.gallery-item figure {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.gallery-item {}

.gallery-item a {
    position: relative;
    display: block;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    z-index: 0;
}

.gallery-item a img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%) scale(1.09);
    transition: all 0.54s ease-in-out;
    display: block;
    z-index: 1;
}

.gallery-item a:hover img {
    transform: translate(-50%, -50%) scale(1.044);
}

.gallery-item a::after{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,.0);
    transition: all 0.54s ease-in-out;
    z-index: 2;
}
.gallery-item a:hover::after{
    background: rgba(0,0,0,.27);
}

/* columns */
.gallery-columns-1 .gallery-item { width: 100%; }
.gallery-columns-2 .gallery-item { width: calc((100% - 9px) / 2);}
.gallery-columns-3 .gallery-item { width: calc((100% - 2*9px) / 3);}
.gallery-columns-4 .gallery-item { width: calc((100% - 3*9px) / 4);}
.gallery-columns-5 .gallery-item { width: calc((100% - 4*9px) / 5);}
.gallery-columns-6 .gallery-item { width: calc((100% - 5*9px) / 6);}

/* lightbox */
.custom-lightbox {
    display:none;
    position:fixed;
    z-index:9999;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:rgba(0,0,0,0.9);
    align-items:center;
    justify-content:center;
    flex-direction:column;
    transition:background 0.36s, opacity 0.36s;
    opacity:0;
}
.custom-lightbox.active {
    display:flex;
}
.custom-lightbox.fadein {
    opacity:1;
}
.custom-lightbox-img {
    max-width:90vw;
    max-height:81vh;
    box-shadow:0 8px 30px #000;
    border-radius:0;
    background: none;
    margin:0 48px;
    object-fit:contain;
    transition:opacity 0.36s;
    opacity:1;
}
.custom-lightbox-img.fadeout {
    opacity:0;
    transition:opacity 0.36s;
}
.custom-lightbox-img.fadeinimg {
    opacity:1;
    transition:opacity 0.36s;
}
.custom-lightbox-close,
.custom-lightbox-prev,
.custom-lightbox-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(30,30,30,0.7);
    color: #fff;
    border: none;
    font-size: 2.5rem;
    cursor: pointer;
    padding: 0;
    border-radius: 999px;
    z-index: 10;
    width: 54px;
    height: 54px;
    line-height: 54px;
    text-align: center;
    transition:background 0.36s;
}
.custom-lightbox-close {
    top:24px;
    right:24px;
    font-size:2.4rem;
    transform:none;
}
.custom-lightbox-prev {
    left:24px;
}
.custom-lightbox-next {
    right:24px;
}
.custom-lightbox-counter {
    position:absolute;
    bottom:24px;
    left:50%;
    transform:translateX(-50%);
    color:#fff;
    background:rgba(0,0,0,0.5);
    padding:.2rem .8rem;
    border-radius:0;
    font-size:1rem;
}
@media (max-width: 600px) {
    .custom-lightbox-img {
        max-width:98vw;
        max-height:72vh;
    }
    .custom-lightbox-prev,
    .custom-lightbox-next {
        font-size:2em;
    }
    .custom-lightbox-prev{
        left:6px;
    }
    .custom-lightbox-next {
        right:6px;
    }
    .custom-lightbox-close {
        right:9px;
    }
}

/* ===================================================================================================
   Video lightbox
   =================================================================================================== */
/* Container for video thumbnail */
.video-lightbox-container {background: #090;
    display: block;
    position: relative;
    margin: 0;
}

.video-lightbox-trigger{
    display: block;
    position: relative;
    z-index: 0;
}
.video-lightbox-trigger::before{
    content: '';
    position: absolute;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    height: 36px;
    width: 36px;
    background-color: #fff;
    z-index: 2;
}
.video-lightbox-trigger::after{
    content: '';
    position: absolute;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    height: 54px;
    width: 54px;
    background-color: var(--color-primary);
    mask-size: 54px;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-image: url("svg/youtube.svg");
    z-index: 3;
}
.video-lightbox-trigger:hover::after{
    background-color: #f03;
}

.video-lightbox-thumb {
    display: block;
    width: 100%;
    height: auto;
    position: relative;
    z-index: 1;
}

/* Modal overlay - animated fade */
.video-lightbox-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.85);
    opacity: 0;
    transition: opacity var(--transition);
}

/* Show modal with fade-in */
.video-lightbox-modal.open {
    display: block;
    opacity: 1;
}

/* Modal content - animated zoom in/out */
.video-lightbox-modal-content {
    height: 80vh;
    aspect-ratio: 16 / 9;
    max-width: 98vw;
    background: #111;
    border-radius: 10px;
    padding: 0;
    overflow: hidden;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.92);
    opacity: 0;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
    transition: transform var(--transition), opacity var(--transition);
}

/* Show content with zoom-in effect */
.video-lightbox-modal.open .video-lightbox-modal-content {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
}

/* Hide content with zoom-out effect */
.video-lightbox-modal.closing .video-lightbox-modal-content {
    transform: translate(-50%, -50%) scale(0.92);
    opacity: 0;
}

/* Responsive modal content */
@media (max-width: 900px) {
    .video-lightbox-modal-content {
        width: 90vw;
        height: 55vw;
        min-height: 200px;
    }
}

/* Video iframe */
.video-lightbox-modal iframe {
    width: 100%;
    height: 100%;
    border: none;
    background: #000;
}

/* Close button */
.video-lightbox-close {
    position: absolute;
    top: 10px;
    right: 20px;
    font-size: 36px;
    color: #fff;
    cursor: pointer;
    z-index: 10;
    transition: color 0.36s;
}

.video-lightbox-close:hover {
    color: #f44;
}

/* ===================================================================================================
   Glide.js (carousel)
   =================================================================================================== */
/* ===== Glide core ===== */
.glide {
    position: relative;
    width: 100%;
    box-sizing: border-box;
}
.glide * {box-sizing: inherit;}
.glide__track {overflow: hidden;}
.glide__slides {
    display: flex;
    flex-wrap: nowrap;
    padding: 0;
    margin: 0 0 0 -18px; /* gap value */
    list-style: none;
    will-change: transform;
}
.glide__slide {
    flex-shrink: 0;   /* Never shrink slides */
    width: 100%;      /* Glide will override inline when needed */
    user-select: none;
    -webkit-user-drag: none;
}

/* Container */
.c-slider {
    position: relative;
    margin: 0 auto;
    padding: 16px 0;
    max-width: 100%;
}

/* Card wrapper inside each slide: put all spacing here */
.c-slide {
    display: block;
    padding: 0;
    height: 100%;
}

/* Image block */
.img_holder {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    background: #f5f5f7;
    aspect-ratio: 16 / 9;
}
.img_holder img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Text */
.c-slider h4 {
    margin: 12px 0 8px;
    font-size: 18px;
    line-height: 1.35;
    font-weight: 700;
    color: #111;
}
.c-slider .carousel.text {
    color: #2a2a2a;
    font-size: 16px;
    line-height: 1.6;
}
.c-slider .carousel.text p {margin: 8px 0;}
.c-slider .carousel.text a {
    color: #0a58ca;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Arrows */
.glide__arrows {
    position: absolute;
    inset: 0;
    pointer-events: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 4px;
}
.glide__arrow {
    pointer-events: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px; height: 40px;
    border-radius: 999px; border: 0;
    background: rgba(17,17,17,0.65); color: #fff;
    font-size: 16px; cursor: pointer;
    transition: transform 160ms ease, background-color 160ms ease, opacity 160ms ease;
}
.glide__arrow:hover {
    background: rgba(17,17,17,0.8);
}
.glide__arrow:active {transform: translateY(0);}

/* ===== Centered carousel ===== */
.glide--center .glide__slide .c-slide{
    opacity: .54;
    transition: opacity var(--transition);
}
.glide--center .glide__slide--active .c-slide{opacity: 1;}

/* Glide counter */
.glide .glide__counter{
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: 5;
	padding: 4px 8px;
	font-size: 0.875rem;
	line-height: 1;
	background: rgba(0,0,0,.6);
	color: #fff;
	border-radius: 999px;
	user-select: none;
	pointer-events: none;
}

@media (hover: none) {
.glide__arrow {width: 44px; height: 44px;}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
    }
}

/* ===================================================================================================
   To top
   =================================================================================================== */
.totop{
    position: fixed;
    right: 9px;
    bottom: 9px;
    width: 36px;
    height: 36px;
    background: rgba(0,0,0,.45);
    border-radius: 5px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.36s;
    z-index: 999;
}
.totop.visible {
    opacity: 1;
    pointer-events: auto;
}
.totop a{
    display: block;
    height: 100%;
}
.totop a svg{
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    color: #fff;
    transform: rotate(-90deg);
}

/* ===================================================================================================
   Clearfix
   =================================================================================================== */
.clearfix::after {
	content: "";
	display: table;
	clear: both;
}

/* ===================================================================================================
   Transitions
   =================================================================================================== */
a {
    transition: color var(--transition), background var(--transition);
}
a::before, a::after, a svg, a img, .transition {
    transition: all var(--transition);
}

/* ===================================================================================================
   Responsive (1440px)
   =================================================================================================== */
@media (max-width: 1440px) {
}

/* ===================================================================================================
   Responsive (1200px)
   =================================================================================================== */
@media (max-width: 1200px) {
}

/* ===================================================================================================
   Responsive (1024px)
   =================================================================================================== */
@media (max-width: 1024px) {
	html { font-size: 17px; }
	/* Main navigation as sidebar */    
	.menu-toggle {
		display: flex;
	}
    .site-main {padding-top:90px;}
    .header {
        top: 0;
        position: fixed;
        background: #fff;
    }
    .header .inner{
        height: 54px;
    }
    
	.main-navigation {
		position: fixed;
		top: 0;
		right: -100%;
		width: 100%;
		height: 100vh;
		background: #fff;
		box-shadow: -2px 0 16px rgba(0,0,0,.06);
		display: block;
		overflow-y: auto;
		padding: 0 5%;
		transition: right var(--transition);
		z-index: 150;
	}
    .main-navigation::after{
        position: fixed;
		top: 0;
		right: -100%;
		width: 100%;
		height: 54px;
        content: "";
        background: #fff;
	    box-shadow: 0 2px 8px rgba(0,0,0,0.045);
		transition: right var(--transition);
		z-index: 999;
    }
	.main-navigation.open,    
    .main-navigation.open::after{
		right: 0;
	}
	.main-navigation .nav {
		flex-direction: column;
		align-items: stretch;
		height: auto;
		padding-top: 0;
	}
	.main-navigation .nav:first-of-type {
		padding-top: 54px;
	}
	.main-navigation .nav > li {
        position: relative;
		width: 100%;
		margin-left: 0 !important;
		height: auto !important;
		align-items: stretch;
		display: flex;
		flex-direction: column;
	}
    .main-navigation #menu-menu > li:first-child {
        display: flex;
    }
	.main-navigation .nav > li > a {
		width: 100%;
		height: var(--nav-sub-link-height);
		line-height: var(--nav-sub-link-lh);
		justify-content: flex-start;
		border-bottom: 1px solid #f0f0f0;
		flex-shrink: 0;
	}

    .main-navigation .nav > li.nav-button > a,
    body.active .main-navigation .nav > li.nav-button > a {
        padding: 0;
		border-bottom: 1px solid #f0f0f0;
        border-radius: 0;
        background: none;
        color: inherit;
        cursor: pointer;
        transition: background-color var(--transition), color var(--transition);
		height: var(--nav-sub-link-height);
		line-height: var(--nav-sub-link-lh);
    }
    .main-navigation .nav > li.nav-button > a:hover {
        background: none;
    }
    
    
	.main-navigation .nav > li.menu-item-has-children > a {
		position: relative;
	}
	/* Submenu trigger for mobile */
    .main-navigation .nav > li.menu-item-has-children > .submenu-trigger,
	body.active .main-navigation .nav > li.menu-item-has-children > .submenu-trigger {
		display: block;
		position: absolute;
		right: -5px;
		top: 0;
		width: var(--nav-sub-link-height);
		height: var(--nav-sub-link-height);
		cursor: pointer;
		border: none;
		color: #999;
		z-index: 10;
	}
    .main-navigation .nav > li.menu-item-has-children > .submenu-trigger svg {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%) rotate(90deg);
        width: 36px;
        height: 36px;
    }
    .main-navigation .nav > li.menu-item-has-children.active > .submenu-trigger svg {
        transform: translate(-50%,-50%) rotate(-90deg);
    }    
	/* Submenu mobile styles */
	.main-navigation .sub-menu {
		position: static !important;
		background: none;
		box-shadow: none;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		max-height: 0;
		overflow: hidden;
		transition: max-height var(--transition-slow);
		pointer-events: auto;
	}
	.main-navigation .sub-menu.open {
		max-height: 600px;
		transition: max-height var(--transition-slow);
	}
	/* Always show submenus on hover/focus */
	.main-navigation .nav > li:hover > .sub-menu,
	.main-navigation .nav > li:focus-within > .sub-menu,
	.main-navigation .sub-menu > li:hover > .sub-menu,
	.main-navigation .sub-menu > li:focus-within > .sub-menu {
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}
	.main-navigation .sub-menu > li > a {
		padding-left: 27px;
	}

    .main-navigation .sub-menu > li > a:hover {
        background: none;
    }
	.main-navigation .sub-menu .sub-menu > li > a {
		padding-left: 54px;
	}
	.main-navigation .sub-menu .sub-menu > li > a:hover {
		background: none;
	}

    /* Left-align all sub-menus under nav-end on mobile */
    .main-navigation .nav > li.nav-end > .sub-menu,
    .main-navigation .nav > li.nav-end > .sub-menu .sub-menu {
        text-align: left;
    }
    .main-navigation .nav > li.nav-end > .sub-menu a,
    .main-navigation .nav > li.nav-end > .sub-menu .sub-menu a {
        justify-content: flex-start;
    }

	/* Submenu trigger for nested mobile submenus */
	.main-navigation .sub-menu .submenu-trigger,
    .main-navigation .nav li.nav-end .sub-menu .submenu-trigger {
		position: absolute;
		right: 27px;
        left: auto;
		top: 0;
		width: var(--nav-sub-link-height);
		height: var(--nav-sub-link-height);
		border: none;
		color: #999;
		z-index: 10;
		display: block;
        cursor: pointer;
	}
    .main-navigation .sub-menu .submenu-trigger svg,
    .main-navigation .nav li.nav-end .sub-menu .submenu-trigger svg {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%) rotate(90deg);
        width: 27px;
        height: 27px;
    }
    .main-navigation .sub-menu li.active .submenu-trigger svg,
    .main-navigation .nav li.nav-end .sub-menu li.active .submenu-trigger svg {
        transform: translate(-50%,-50%) rotate(-90deg);
    }
    
    /* lang navigation */
    .main-navigation .navLang{
        margin-left: 0;
    }
    .main-navigation .navLang > li{
        padding-right: 0;
    }
    .main-navigation .navLang > li > a{
        padding-right: 0;
        background-color: transparent;
        mask-size: 0;
        mask-image: none;
        background: url("svg/globe.svg") no-repeat -4px center;
        background-size: 40px;
    }
    .main-navigation .navLang > li > a:hover{
        background-color: transparent;
    }
	.main-navigation .navLang > li.menu-item-has-children > .submenu-trigger,
	body.active .main-navigation .navLang > li.menu-item-has-children > .submenu-trigger {
		right: 4px;
		width: 100%;
	}
    .main-navigation .navLang > li.menu-item-has-children > .submenu-trigger svg {
        top: 50%;
        left: 100%;
        transform: translate(-100%,-50%) rotate(90deg);
    }
    .main-navigation .navLang > li.menu-item-has-children.active > .submenu-trigger svg {
        transform: translate(-100%,-50%) rotate(-90deg);
    }
    .main-navigation .navLang .sub-menu{
        min-width: 100%;
    }
    
    /* social navigation */
    .main-navigation .navSocial{
        display: flex;
        padding-bottom: 3rem;
        padding-left: 1px;
        padding-top: 18px;
        gap: 1rem;
    }
}

/* ===================================================================================================
   Responsive (900px)
   =================================================================================================== */
@media (max-width: 900px) {
}

/* ===================================================================================================
   Responsive (768px)
   =================================================================================================== */
@media (max-width: 768px) {    
    .footer-row {
        flex-direction: column;
        gap: 1.5rem;
    }
    .footer-col {
        align-items: flex-start !important;
        text-align: left !important;
    }
}

/* ===================================================================================================
   Responsive (600px)
   =================================================================================================== */
@media (max-width: 600px) {
}

/* ===================================================================================================
   Responsive (480px)
   =================================================================================================== */
@media (max-width: 480px) {
	h1 { font-size: 1.7rem; }
	h2 { font-size: 1.35rem; }
	h3 { font-size: 1.15rem; }
}

/* ===================================================================================================
   Responsive (375px)
   =================================================================================================== */
@media (max-width: 375px) {
}

/* ===================================================================================================
   Accessibility
   =================================================================================================== */
.screen-reader-text {
	border: 0 !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	height: 1px; width: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	position: absolute !important;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: #f1f1f1;
	clip: auto !important;
	color: #21759b;
	display: block;
	font-size: 1rem;
	font-weight: bold;
	left: 5px; top: 5px;
	height: auto; width: auto;
	padding: 15px 23px 14px;
	z-index: 100000;
}

.main-navigation a:focus-visible,
.main-navigation .submenu-trigger:focus-visible,
.menu-toggle:focus-visible {
  outline: 2px solid var(--color-primary, #1a73e8);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .main-navigation .sub-menu,
  .main-navigation .nav > li > a,
  .menu-toggle .bar,
  .main-navigation.open,
  .main-navigation.open::after {
    transition: none !important;
  }
}