:root {
  --font-family-primary: 'Montserrat', sans-serif;
  --font-family-head: 'Montserrat', sans-serif;
  --font-weight-base: 500;
  --font-weight-heading: 700;
  --line-height-base: 1.5;
  --line-height-heading: 1.4;

  --sp-120-240: clamp(7.5rem, 4.6154rem + 11.5385vw, 15rem); /* 120 - 240 */
  --sp-96-274: clamp(6rem, 1.7212rem + 17.1154vw, 17.125rem); /* 96 - 274 */
  --sp-96-140: clamp(6rem, 4.9423rem + 4.2308vw, 8.75rem); /* 96 - 140 */
  --sp-72-164: clamp(4.5rem, 2.2885rem + 8.8462vw, 10.25rem); /* 72 - 164 */
  --sp-64-240: clamp(4rem, -0.2308rem + 16.9231vw, 15rem); /* 64 - 240 */
  --sp-64-148: clamp(4rem, 1.9808rem + 8.0769vw, 9.25rem); /* 64 - 148 */
  --sp-64-112: clamp(4rem, 2.8462rem + 4.6154vw, 7rem); /* 64 - 112 */
  --sp-48-180: clamp(3rem, -0.75rem + 15vw, 11.25rem); /* 48 - 180 */
  --sp-48-148: clamp(3rem, 0.5962rem + 9.6154vw, 9.25rem); /* 48 - 148 */
  --sp-48-64: clamp(3rem, 2.6154rem + 1.5385vw, 4rem); /* 48 - 64 */
  --sp-40-124: clamp(2.5rem, 0.4808rem + 8.0769vw, 7.75rem); /* 40 - 124 */
  --sp-40-112: clamp(2rem, 0.0769rem + 7.6923vw, 7rem); /* 32 - 112 */
  --sp-64-80: clamp(4rem, 3.6154rem + 1.5385vw, 5rem); /* 64 - 80 */
  --sp-40-80: clamp(2.5rem, 1.5385rem + 3.8462vw, 5rem); /* 40 - 80 */
  --sp-24-80: clamp(1.5rem, 0.1538rem + 5.3846vw, 5rem); /* 24 - 80 */
  --sp-40-64: clamp(2.5rem, 1.9231rem + 2.3077vw, 4rem); /* 40 - 64 */
  --sp-32-64: clamp(2rem, 1.2308rem + 3.0769vw, 4rem); /* 32 - 64 */
  --sp-32-48: clamp(2rem, 1.6154rem + 1.5385vw, 3rem); /* 32 - 48 */
  --sp-24-100: clamp(1.5rem, -0.3269rem + 7.3077vw, 6.25rem); /* 24 - 100 */
  --sp-64-96: clamp(4rem, 3.2308rem + 3.0769vw, 6rem); /* 64 - 96 */
  --sp-24-64: clamp(1.5rem, 0.5385rem + 3.8462vw, 4rem); /* 24 - 64 */
  --sp-24-48: clamp(1.5rem, 0.9231rem + 2.3077vw, 3rem); /* 24 - 48 */
  --sp-24-40: clamp(1.5rem, 1.1154rem + 1.5385vw, 2.5rem); /* 24 - 40 */
  --sp-16-160: clamp(1rem, -2.4615rem + 13.8462vw, 10rem); /* 16 - 160 */
  --sp-16-80: clamp(1rem, -0.5385rem + 6.1538vw, 5rem); /* 16 - 80 */
  --sp-16-64: clamp(1rem, -0.1538rem + 4.6154vw, 4rem); /* 16 - 64 */
  --sp-16-56: clamp(1rem, 0.0385rem + 3.8462vw, 3.5rem); /* 16 - 56 */
  --sp-16-48: clamp(1rem, 0.2308rem + 3.0769vw, 3rem); /* 16 - 48 */
  --sp-16-40: clamp(1rem, 0.4231rem + 2.3077vw, 2.5rem); /* 16 - 40 */
  --sp-16-32: clamp(1rem, 0.6154rem + 1.5385vw, 2rem); /* 16 - 32 */
  --sp-16-24: clamp(1rem, 0.8077rem + 0.7692vw, 1.5rem);  /* 16 - 24 */
  --sp-12-24: clamp(0.75rem, 0.4615rem + 1.1538vw, 1.5rem); /* 12 - 24 */
  --sp-12-18: clamp(0.75rem, 0.6058rem + 0.5769vw, 1.125rem); /* 12 - 18 */
  --sp-10-20: clamp(0.625rem, 0.3846rem + 0.9615vw, 1.25rem); /* 10 - 20 */
  --sp-8-16: clamp(0.5rem, 0.3077rem + 0.7692vw, 1rem); /* 8 - 16 */
  --sp-0-16: clamp(0rem, -0.3846rem + 1.5385vw, 1rem); /* 0 - 16 */
  
  --b-radius--lg: 8px;
  --b-radius--24: clamp(1rem, 0.8077rem + 0.7692vw, 1.5rem);  /* 16 - 24 */;
  --b-radius--16: 16px;
  --b-radius--12: 12px;
}

@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  src: url('/app/themes/i3studio/assets/fonts/montserrat-300.woff2') format('woff2'),
       url('/app/themes/i3studio/assets/fonts/montserrat-300.ttf') format('truetype');
}
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  src: url('/app/themes/i3studio/assets/fonts/montserrat-regular.woff2') format('woff2'),
       url('/app/themes/i3studio/assets/fonts/montserrat-regular.ttf') format('truetype');
}
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  src: url('/app/themes/i3studio/assets/fonts/montserrat-500.woff2') format('woff2'),
       url('/app/themes/i3studio/assets/fonts/montserrat-500.ttf') format('truetype');
}
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  src: url('/app/themes/i3studio/assets/fonts/montserrat-600.woff2') format('woff2'),
       url('/app/themes/i3studio/assets/fonts/montserrat-600.ttf') format('truetype');
}
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  src: url('/app/themes/i3studio/assets/fonts/montserrat-700.woff2') format('woff2'),
       url('/app/themes/i3studio/assets/fonts/montserrat-700.ttf') format('truetype');
}
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  src: url('/app/themes/i3studio/assets/fonts/montserrat-800.woff2') format('woff2'),
       url('/app/themes/i3studio/assets/fonts/montserrat-800.ttf') format('truetype');
}
@font-face {
    font-family: lg;
    src: url("/wp-content/themes/willa-kasia-i3/assets/fonts/lg.ttf") format("truetype"), 
         url("/wp-content/themes/willa-kasia-i3/assets/fonts/lg.woff") format("woff"),
         url("/wp-content/themes/willa-kasia-i3/assets/fonts/lg.svg") format("svg"); 
    font-weight: normal;
    font-style: normal;
}

html {
  -webkit-font-smoothing: antialiased;
  font-family: var(--font-family-primary);  
  scroll-behavior: smooth;
  font-size: 16px;
}
input {
    font-family: var(--font-family-primary);
}
body {
    overflow-x: clip;
    font-weight: var(--font-weight-base);
    line-height: var(--line-height-base);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: var(--color-body-text);
    background: var(--color-body-bg);
}
body.admin-bar #header-nav {
    margin-top: 32px;
}

.main {
    overflow-x: clip;
	position: relative;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.skip-link {
	position: absolute;
	top: 0;
	left: 0;
	transform: translateY(-120%);
	z-index: 10000;
	padding: 0.75rem 1rem;
	background: #ffffff;
	color: #000000;
	text-decoration: none;
	border: 2px solid currentColor;
}
.screen-reader-text:focus,
.skip-link:focus {
	width: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	clip: auto;
	white-space: normal;
}

body, nav, h1, h2, h3, h4, h5, h6, header, footer, address,
p, hr, blockquote, ol, ul, li, dl, dt, figure, figcaption, div, main,
a, strong, s, q, data, time, code, var, sub, sup, i, b, u, rt, span, br,
img, iframe, embed, object, param, video, source, track, map, area,
form, label, optgroup, option, output, progress {
  margin: 0;
  border: 0;
  vertical-align: top;
}
ul, ol {
    margin-bottom: 12px;
    margin-top: 8px;
    padding-left: 24px;
}
address,
cite {
    font-style: normal;
}
img {
    width: 100%;
    height: auto;
}

figcaption, figure, footer, header, main, nav {
  display: block;
}
nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}


blockquote {
  page-break-inside: avoid;
}

strong, b {
  font-weight: 600;
}

sub, sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: auto;
}

 th, td {
  text-align: left;
  font-weight: normal;
}

a {
  text-decoration: none;
  cursor: pointer;
}

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

.no-scroll {
    overflow: hidden;
    padding-right: 14px;
}
/*
body::-webkit-scrollbar {
  width: 14px;
}

body::-webkit-scrollbar-track {
  background: var(--color-medium);
}

body::-webkit-scrollbar-thumb {
  background-color: var(--color-dark);
  border-radius: 20px;
  border: 3px solid var(--color-medium);
}
*/

.bg--primary {
    background: var(--dark-blue-600);
}
.bg--white {
    background: #fff;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h4, .h5, .h6,
.ff--head {
  font-family: var(--font-family-head);
  line-height: var(--line-height-heading);
  font-weight: var(--font-weight-heading);
  color: var(--gray-950, #030712);
}
.ff--main {
  font-family: var(--font-family-primary);
  line-height: var(--line-height-base);
  font-weight: var(--font-weight-base);
}

.fs--italic {
    font-style: italic;
}
h1:last-child, h2:last-child, h3:last-child, h4:last-child, h5:last-child, h6:last-child, .h1:last-child, .h2:last-child, .h3:last-child, .h4:last-child, .h5:last-child, .h6:last-chil {
  margin-bottom: 0;
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, .h1 a, .h2 a, .h3 a, .h4 a, .h4 a, .h5 a, .h6 a, a {
  color: inherit;
  transition: background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);;
}
p {
  margin-bottom: 12px;
  line-height: var(--line-height-base);
}
p:last-child {
  margin-bottom: 0;
}


/* 40 - 64px */
.fs--64 {
    font-size: clamp(2.5rem, 1.9231rem + 2.3077vw, 4rem);
}
/* 32 - 56px */
.fs--56 {
    font-size: clamp(2rem, 1.4231rem + 2.3077vw, 3.5rem);
}
/* 32 - 44px */
.fs--48,
h1.wp-block-heading {
    font-size: clamp(2rem, 1.7115rem + 1.1538vw, 2.75rem);
}
/* 32 - 40px */
.fs--40 {
    font-size: clamp(2rem, 1.8077rem + 0.7692vw, 2.5rem);
}
/* 28 - 36px */
.fs--36 {
    font-size: clamp(1.75rem, 1.5577rem + 0.7692vw, 2.25rem);
}
/* 26 - 36px */
.fs--20-36 {
    font-size: clamp(1.25rem, 0.8654rem + 1.5385vw, 2.25rem);
}
/* 28 - 34px */
.fs--28-34 {
    font-size: clamp(1.75rem, 1.6058rem + 0.5769vw, 2.125rem);
}
/* 26 - 32px */
.fs--32,
h2.wp-block-heading {
    font-size: clamp(1.625rem, 1.4808rem + 0.5769vw, 2rem);
}
/* 24 - 28px */
.fs--28,
h3.wp-block-heading {
    font-size: clamp(1.5rem, 1.4038rem + 0.3846vw, 1.75rem);
}
/* 22 - 24px */
.fs--24,
h4.wp-block-heading {
    font-size: clamp(1.375rem, 1.3269rem + 0.1923vw, 1.5rem);
}
/* 20 - 22px */
.fs--22 {
    font-size: clamp(1.25rem, 1.2019rem + 0.1923vw, 1.375rem);
}
/* 18 - 20px */
.fs--18-20 {
    font-size: clamp(1.125rem, 1.0769rem + 0.1923vw, 1.25rem);
}
/* 20px */
.fs--20,
h5.wp-block-heading {
    font-size: 1.25rem;
}
.fs--18-18 {
    font-size: 1.15rem;
}
/* 17 - 18px */
.fs--18,
h6.wp-block-heading  {
    font-size: clamp(1.0625rem, 1.0385rem + 0.0962vw, 1.125rem);
}
/* 15 - 16px */
.fs--16 {
    font-size: 1rem
}
/* 14 - 15px */
.fs--15 {
    font-size: 0.9375rem;
}
/* 14px */
.fs--14 {
    font-size: 0.875rem;
    line-height: 1.4;
}
/* 14px */
.fs--13 {
    font-size: 0.8125rem;
    line-height: 1.3;
}
/* 10 - 12px */
.fs--10-12 {
    font-size: clamp(0.625rem, 0.5769rem + 0.1923vw, 0.75rem);
    line-height: 1.2;
}
.fs--12 {
    font-size: 0.75rem;
    line-height: 1.2;
}
.fs--10 {
    font-size: 0.65rem;
    line-height: 1.2;
}
h1.wp-block-heading,
h2.wp-block-heading {
    color: var(--dark-blue-700);
}
h3.wp-block-heading,
h4.wp-block-heading {
    color: var(--gray-800);
}
h5.wp-block-heading {
    color: var(--gray-700);
}
h6.wp-block-heading {
    color: var(--gray-600);
    text-transform: uppercase;
    font-weight: 600;
}


.fc--white {
    color: #fff!important;
}

.fw--700 {
    font-weight: 700;
}
.fw--600 {
    font-weight: 600;
}
.fw--500 {
    font-weight: 500;
}
.fw--400 {
    font-weight: 400;
}
.fw--300 {
    font-weight: 300;
}


.text--center {
    width: 100%;
    text-align: center;
}
.tt--upper {
    text-transform: uppercase;
}


.container {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1400px;
    padding: clamp(2.5rem, 1.7308rem + 3.0769vw, 4.5rem) 16px; /* 40 - 72px */
    position: relative;
    display: flex;
    flex-direction: column;
}


.pad-t--xl {
    padding-top: clamp(3rem, 1.8462rem + 4.6154vw, 6rem)!important; /* 48 - 96px */
}
.pad-b--xl {
    padding-bottom: clamp(3rem, 1.8462rem + 4.6154vw, 6rem)!important; /* 48 - 96px */
}
.pad-t--m {
    padding-top: clamp(1.5rem, 1.1154rem + 1.5385vw, 2.5rem);!important; /* 24 - 40px */
}
.pad-b--m {
    padding-bottom: clamp(1.5rem, 1.1154rem + 1.5385vw, 2.5rem)!important; /* 24 - 40px */
}
.pad-t--xs {
    padding-top: 16px!important;
}
.pad-b--xs {
    padding-bottom: 16px!important;
}
.pad-t--32 {
    padding-top: 32px!important;
}
.pad-b--32 {
    padding-bottom: 32px!important;
}
.pad-t--16 {
    padding-top: 16px!important;
}
.pad-b--16 {
    padding-bottom: 16px!important;
}
.pad-t--0 {
    padding-top: 0!important;
}
.pad-b--0 {
    padding-bottom: 0!important;
}

.w--100 {
    width: 100%!important;
}

.col-wrap {
    display: flex;
    gap: 40px 48px;
}
/*
.col-wrap:has(.vert--center) {
    align-items: normal;
}
*/
.col--80,
.col--75,
.col--70, 
.col--65,
.col--60,
.col--55, 
.col--50, 
.col--45,
.col--40,
.col--35,
.col--30,
.col--25,
.col--20,
.col--10 {
    position: relative;
}
.col--80 {
    width: 80%;
}
.col--75 {
    width: 75%;
}
.col--70 {
    width: 70%;
}
.col--65 {
    width: 65%;
}
.col--60 {
    width: 60%;
}
.col--55 {
    width: 55%;
}
.col--50 {
    width: 50%;
}
.col--45 {
    width: 45%;
}
.col--40 {
    width: 40%;
}
.col--35 {
    width: 35%;
}
.col--30 {
    width: 30%;
}
.col--25 {
    width: 25%;
}
.col--20 {
    width: 20%;
}
.col--10 {
    width: 10%;
}
.max-w--1200 {
    width: 100%;
    max-width: 1200px;
}
.max-w--1100 {
    width: 100%;
    max-width: 1100px;
}
.max-w--1000 {
    width: 100%;
    max-width: 1000px;
}
.max-w--900 {
    width: 100%;
    max-width: 900px;
}
.max-w--800 {
    width: 100%;
    max-width: 800px;
}
.max-w--650 {
    width: 100%;
    max-width: 650px;
}
.max-w--600 {
    width: 100%;
    max-width: 600px;
}
.max-w--550 {
    width: 100%;
    max-width: 550px;
}
.max-w--500 {
    width: 100%;
    max-width: 500px;
}
.max-w--450 {
    width: 100%;
    max-width: 450px;
}

@media (max-width: 992px) {
    .col-wrap {
        flex-direction: column;
    }
    .col-wrap--rev {
        flex-direction: column-reverse!important
    }
    .col--80,
    .col--75,
    .col--70, 
    .col--65,
    .col--60,
    .col--55, 
    .col--50, 
    .col--45,
    .col--40,
    .col--35,
    .col--30,
    .col--25,
    .col--20,
    .col--10 {
        width: 100%;
    }
}

.vert--center {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.vert--bottom {
    display: flex;
    align-items: flex-end;
}
.align--center {
    margin-left: auto;
    margin-right: auto;
}
.space-between {
    justify-content: space-between;
}
.align--right {
    margin-left: auto;
}

.mb--4 {
    margin-bottom: 4px;
}
.mb--6 {
    margin-bottom: 6px;
}
.mb--8 {
    margin-bottom: 8px;
}
.mb--12 {
    margin-bottom: 12px;
}
.mb--16 {
    margin-bottom: 16px;
}
.mb--20 {
    margin-bottom: 20px;
}
.mb--24 {
    margin-bottom: 24px;
}
.mb--32 {
    margin-bottom: 32px;
}
.mb--40 {
    margin-bottom: 40px;
}
.mb--48 {
    margin-bottom: 48px;
}
.mb--56 {
    margin-bottom: 56px;
}
.mb--64 {
    margin-bottom: 64px;
}
.mb--80 {
    margin-bottom: 80px;
}
.mb--120 {
    margin-bottom: 120px;
}
.mt--auto {
    margin-top: auto;
}
.mt--16 {
    margin-top: 16px;
}
.mt--24 {
    margin-top: 24px;
}
@media (max-width: 768px) {
    .mb--32 {
        margin-bottom: 24px;
    }
    .mb--40 {
        margin-bottom: 24px;
    }
    .mb--48 {
        margin-bottom: 24px;
    }
    .mb--64 {
        margin-bottom: 40px;
    }
    .mb--80 {
        margin-bottom: 40px;
    }
    .mb--120 {
        margin-bottom: 48px;
    }
}

.grid--2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--sp-16-32);
}
.grid--3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-16-32);
}
.grid--4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sp-16-32);
}
.grid--5 {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--sp-16-32);
}
.grid--6 {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--sp-16-24);
}
.grid--8 {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: var(--sp-16-24);
}
@media (max-width: 1024px) {
    .grid--5 {
        grid-template-columns: repeat(3, 1fr);
    } 
    .grid--8 {
        grid-template-columns: repeat(4, 1fr);
    } 
}
@media (max-width: 992px) {
    .grid--6 {
        grid-template-columns: repeat(3, 1fr);
    }
    .grid--3 {
        grid-template-columns: repeat(1, 1fr);
    }
   .grid--4 {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 768px) {
    .grid--2,
    .grid--3 {
        grid-template-columns: repeat(1, 1fr);
    }
    .grid--4,
    .grid--5,
    .grid--6,
    .grid--8 {
        grid-template-columns: repeat(2, 1fr);
    }
}
.gap--32 {
    gap: 32px;
}
.gap--24 {
    gap: 24px;
}
.gap--20 {
    gap: 20px;
}

@media (min-width: 992px) {
    .sticky {
        position: sticky;
        top: 100px;
    }
}

#main-content {
    padding-top: 124px;
    z-index: 2;
}
@media (max-width: 540px) {
    #main-content {
        padding-top: 100px;
    }
    html {
        font-size: 15px;
    }
}