*,
*::before,
*::after { box-sizing: border-box; padding: 0; margin: 0; }
*:focus { outline: 0; }

html { font-size: 100%;scroll-behavior: smooth; scroll-padding: 60px; }
body { font-family: 'Montserrat',sans-serif; font-size: clamp(16px, 1.4vw, 24px); font-weight: 300; -webkit-tap-highlight-color: transparent; }

h1, h2, h3, h4, h5, h6 { font-family: 'Fustat'; font-weight: 400; text-wrap: balance; }
ul, ol { margin: 0; }
a, a:link, a:hover, a:focus, a:active { text-decoration: none; outline: 0; -webkit-tap-highlight-color: transparent; }

img { max-width: 100%; height: auto; }

header { position: fixed; width: 100%; top: 0; transition: all 0.3s; z-index: 10; }
header .container { display: flex; justify-content: space-between; align-items: center; }
header .logo img { display: block; }
header ul { list-style: none; }
header ul li { display: inline-block; }
header ul li:not(:last-child) { margin-right: clamp(50px, 6vw, 100px); }
header ul li a { color: #fff; font-weight: 700; line-height: 1; text-transform: uppercase; }
header nav.mobile-navigation { display: none; }

.navigation-toggle { position: relative; height: 25px; width: 30px; z-index: 10; }
.navigation-toggle .bar { position: absolute; display: block; width: 100%; height: 2px; background: #fff; transition: all 0.3s; }
.navigation-toggle .bar1 { top: 0; }
.navigation-toggle .bar2 { top: 50%; transform: translateY(-50%); }
.navigation-toggle .bar3 { bottom: 0; }

.navigation-mob-active { overflow: hidden; }
.navigation-mob-active .navigation-toggle .bar1 { top: 50%; transform: translateY(0) rotate(45deg); }
.navigation-mob-active .navigation-toggle .bar2 { opacity: 0; }    
.navigation-mob-active .navigation-toggle .bar3 { top: 50%; bottom: auto; transform: translateY(0) rotate(-45deg); }

.scroll-top header { transform: translateY(0%); background: #1D1D1B; }
.scroll-bottom header { transform: translateY(-100%); }

.hero { position: relative; height: 100vh; background: linear-gradient(0deg, rgba(0, 0, 0, 0.50) 0%, rgba(0, 0, 0, 0.50) 100%); color: #fff; padding-bottom: 0; margin: 0; }
.hero .container { display: flex; justify-content: space-between; align-items: flex-end; height: 100%; gap: 60px; padding-bottom: 100px; }
.hero img { position: absolute; top: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; }
.hero h1 { font-size: clamp(36px, 5vw, 90px); line-height: 1; max-width: 85%; margin-bottom: 30px;}
.hero p { max-width: 60%; text-wrap: balance; }

.hero-basic { height: clamp(250px, 28vw, 500px); background: #1D1D1B; color: #fff; margin-top: 0; }
.hero-basic .container { height: 100%; display: flex; align-items: flex-end; padding-bottom: 80px; }
.hero-basic h1 { font-size: clamp(36px, 5vw, 90px); line-height: 1.1; }

.btn-cta { flex: 0 0 auto; display: flex; justify-content: center; align-items: center; color: #000; background: #ECC868; width: clamp(200px, 15vw, 270px); height: clamp(200px, 15vw, 270px); font-weight: 600; border-radius: 50%; }
.btn-cta span { display: inline-block; font-size: clamp(24px, 2.5vw, 40px); margin-left: 15px; margin-bottom: 3px; }

section { margin: 100px 0; }
section .section-title { font-family: 'Montserrat',sans-serif; font-size: clamp(16px, 1.4vw, 24px); text-transform: uppercase; line-height: 1; font-weight: 700; margin: 0 0 40px 0; }
.featured .style-text h3 { font-size: clamp(30px, 3vw, 48px); line-height: 1.1; margin: clamp(30px, 3vw, 48px) 0 clamp(24px, 3vw, 32px) 0; }
.featured .style-text ul li { text-decoration: underline; }
section.black { padding: 100px 0; margin: 0; background: #000; color: #fff; }
section.black section:first-child { margin-top: 0; }
section.black section:first-child::after { content: "";display: block;width: calc(100% - 120px);margin-left: 60px;left: 60px;height: 1px;background: #fff;margin-top: 100px;border-bottom: 1px solid #fff; }
section.black section:last-child { margin-bottom: 0; }
section.black .style-text a { color: #fff; }
.contact-info { display: flex; justify-content: space-between; gap: 40px; }
.contact-info .section-title { margin-bottom: 20px; }
section.black iframe { height: 600px; width: 100%; margin-top: 50px; }

form label { display: block; margin-bottom: 10px;}
form input, form textarea { font-family: 'Montserrat',sans-serif; font-size: clamp(16px, 1.4vw, 24px); background: #5A5A5A; color: #fff; width: 100%; padding: 15px; border: 0; border-radius: 5px; }
form .form-group:not(:last-child) { margin-bottom: 30px; }
form button { font-family: 'Montserrat',sans-serif; font-size: clamp(16px, 1.4vw, 24px); background: #ECC868; padding: 14px 40px; border: 0; border-radius: 40px; cursor: pointer; }

.accordions .accordion { border-bottom: 1px solid #fff; }
.accordions .accordion-header {display: flex;justify-content: space-between;align-items: center;padding: 30px 0;cursor: pointer;}
.accordions .accordion-header h3 { font-size: clamp(20px, 2vw, 30px); }
.accordions .accordion-header h3 { padding-right: 30px;}
.accordions .accordion-header span { font-size: clamp(30px, 3vw, 40px); line-height: 1; }
.accordions .accordion-header + .style-text { display: none; max-width: 600px; padding-bottom: 40px;}
.accordions .accordion-header.active span { transform: rotate(180deg);}
.accordions .accordion-header span::before { content: "+"; }
.accordions .accordion-header.active span::before { content: "-"; }
.accordions .accordion-header.active + .style-text { display: block;}
.accordions .accordion:first-child .accordion-header { padding-top: 0; }

.style-text h1 { font-size: clamp(38px, 4vw, 60px); line-height: 1; margin: clamp(38px, 4vw, 60px) 0 clamp(26px, 4vw, 34px) 0;}
.style-text h2 { font-size: clamp(30px, 3vw, 48px); line-height: 1.1; margin: clamp(30px, 3vw, 48px) 0 clamp(24px, 3vw, 32px) 0; }
.style-text h3 { font-size: clamp(24px, 2vw, 38px); line-height: 1.2; margin: clamp(24px, 2vw, 38px) 0 clamp(22px, 2vw, 30px) 0; }
.style-text h4 { font-size: clamp(20px, 2vw, 32px); line-height: 1.3; margin: clamp(20px, 2vw, 32px) 0 clamp(20px, 2vw, 28px) 0; }
.style-text h5 { font-size: clamp(18px, 1.6vw, 28px); line-height: 1.4; margin: clamp(18px, 1.6vw, 28px) 0 clamp(18px, 1.6vw, 26px) 0; }
.style-text h6 { font-size: clamp(16px, 1.4vw, 24px); line-height: 1.4; margin: clamp(16px, 1.4vw, 24px) 0 clamp(16px, 1.4vw, 24px) 0; }
.style-text p, .style-text li { font-size: clamp(16px, 1.4vw, 24px); line-height: 1.4;}
.style-text p, .style-text ul, .style-text ol { margin: clamp(16px, 1.4vw, 24px) 0 clamp(16px, 1.4vw, 24px) 0; }
.style-text a { color: #000; }
.style-text ul, .style-text ol { padding-left: 24px; }
.style-text :first-child { margin-top: 0; }
.style-text :last-child { margin-bottom: 0; }

footer { background: #4C4747; padding: 100px 0; }
footer .footer-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; padding-bottom: 100px; border-bottom: 1px solid #fff; }
footer ul { list-style: none; }
footer ul li:not(:last-child) { margin-bottom: 15px; }
footer ul li a, footer .style-text a { color: #fff; }
footer .footer-bottom { display: flex; justify-content: space-between; gap: 40px; padding-top: 40px; }
  
.eu { background: #fff; padding: 70px 0; }
.eu img { display: block; margin: 0 auto; }

/* -------------------------- GRID & UTILS -------------------------- */

.container {  width: 100%;  padding-left: 60px;  padding-right: 60px; }

.row { display: flex; flex-wrap: wrap; margin: 0 -20px;  }
.row > * { padding: 0 20px; }

.d-none { display: none!important; }
.d-block { display: block!important; }
.d-inline-block { display: inline-block!important; }
.d-flex { display: flex!important; }

.justify-content-center { justify-content: center!important; }
.justify-content-between { justify-content: space-between!important; }
.justify-content-end {  justify-content: flex-end!important; } 

.align-items-start { align-items: flex-start!important; }
.align-items-center { align-items: center!important; }
.align-items-end { align-items: flex-end!important; }

.pt-0 { padding-top: 0; }
.pb-0 { padding-bottom: 0; }
.py-0 { padding-top: 0; padding-bottom: 0; }

[class*="col-"] { width: 100%; }

.col-auto { flex: 0 0 auto; width: auto; }
.col-12 { flex: 0 0 auto; width: 100%; }
.col-11 { flex: 0 0 auto; width: 91.66666667%;}
.col-10 { flex: 0 0 auto; width: 83.33333333%;}
.col-9 { flex: 0 0 auto; width: 75%;}
.col-8 { flex: 0 0 auto; width: 66.66666667%;}
.col-7 { flex: 0 0 auto; width: 58.33333333%;}
.col-6 { flex: 0 0 auto; width: 50%; }
.col-5 { flex: 0 0 auto; width: 41.66666667%;}
.col-4 { flex: 0 0 auto; width: 33.33333333%;}
.col-3 { flex: 0 0 auto; width: 25%; }
.col-2 { flex: 0 0 auto; width: 16.66666667%;}
.col-1 { flex: 0 0 auto; width: 8.33333333%;}

.offset-1 { margin-left: 8.33333333%; }
.offset-2 { margin-left: 16.66666667%; }
.offset-3 { margin-left: 25%;}
.offset-4 { margin-left: 33.33333333%;}

.order-0 { order: 0 !important; }
.order-1 { order: 1 !important; }
.order-2 { order: 2 !important; }
.order-3 { order: 3 !important; }
.order-4 { order: 4 !important ;}
.order-5 { order: 5 !important; }

.pl-40 { padding-left: 40px!important; }
.pr-40 { padding-right: 40px!important; }

.mt-30 { margin-top: 30px!important; }
.mt-40 { margin-top: 40px!important; }
.mt-50 { margin-top: 50px!important; }
.mt-0 { margin-top: 0!important; }

footer small { width: 100%; text-align: center; }

@media (min-width: 768px) {
    .col-md-auto { flex: 0 0 auto; width: auto; }
    .col-md-1 { flex: 0 0 auto; width: 8.33333333%; }
    .col-md-2 { flex: 0 0 auto; width: 16.66666667%; }
    .col-md-3 { flex: 0 0 auto; width: 25%; }
    .col-md-4 { flex: 0 0 auto; width: 33.33333333%; }
    .col-md-5 { flex: 0 0 auto; width: 41.66666667%; }
    .col-md-6 { flex: 0 0 auto; width: 50%; }
    .col-md-7 { flex: 0 0 auto; width: 58.33333333%; }
    .col-md-8 { flex: 0 0 auto; width: 66.66666667%; }
    .col-md-9 { flex: 0 0 auto; width: 75%; }
    .col-md-10 { flex: 0 0 auto; width: 83.33333333%; }
    .col-md-11 { flex: 0 0 auto; width: 91.66666667%; }
    .col-md-12 { flex: 0 0 auto; width: 100%; }

    .offset-md-1 { margin-left: 8.33333333%; }
    .offset-md-2 { margin-left: 16.66666667%; }
    .offset-md-3 { margin-left: 25%;}
    .offset-md-4 { margin-left: 33.33333333%;}

    .order-md-0 { order: 0 !important; }
    .order-md-1 { order: 1 !important; }
    .order-md-2 { order: 2 !important; }
    .order-md-3 { order: 3 !important; }
    .order-md-4 { order: 4 !important ;}
    .order-md-5 { order: 5 !important; }

    .d-md-none { display: none!important; }
    .d-md-block { display: block!important; }
    .d-md-inline-block { display: inline-block!important; }
    .d-md-flex { display: flex!important; }

    .justify-md-content-center { justify-content: center!important; }
    .justify-md-content-between { justify-content: space-between!important; }

    .align-md-items-start { align-items: flex-start!important; }
    .align-md-items-center { align-items: center!important; }
    .align-md-items-end { align-items: flex-end!important; }

    .pl-md-40 { padding-left: 40px!important; }
    .pr-md-40 { padding-right: 40px!important; }

    .mt-md-30 { margin-top: 30px!important; }
    .mt-md-40 { margin-top: 40px!important; }
    .mt-md-50 { margin-top: 50px!important; }
    .mt-md-0 { margin-top: 0!important; }
}

@media (min-width: 992px) {
    .col-lg-auto { flex: 0 0 auto; width: auto; }
    .col-lg-1 { flex: 0 0 auto; width: 8.33333333%; }
    .col-lg-2 { flex: 0 0 auto; width: 16.66666667%; }
    .col-lg-3 { flex: 0 0 auto; width: 25%; }
    .col-lg-4 { flex: 0 0 auto; width: 33.33333333%; }
    .col-lg-5 { flex: 0 0 auto; width: 41.66666667%; }
    .col-lg-6 { flex: 0 0 auto; width: 50%; }
    .col-lg-7 { flex: 0 0 auto; width: 58.33333333%; }
    .col-lg-8 { flex: 0 0 auto; width: 66.66666667%; }
    .col-lg-9 { flex: 0 0 auto; width: 75%; }
    .col-lg-10 { flex: 0 0 auto; width: 83.33333333%; }
    .col-lg-11 { flex: 0 0 auto; width: 91.66666667%; }
    .col-lg-12 { flex: 0 0 auto; width: 100%; }

    .offset-lg-1 { margin-left: 8.33333333%; }
    .offset-lg-2 { margin-left: 16.66666667%; }
    .offset-lg-3 { margin-left: 25%;}
    .offset-lg-4 { margin-left: 33.33333333%;}

    .order-lg-0 { order: 0 !important; }
    .order-lg-1 { order: 1 !important; }
    .order-lg-2 { order: 2 !important; }
    .order-lg-3 { order: 3 !important; }
    .order-lg-4 { order: 4 !important ;}
    .order-lg-5 { order: 5 !important; }

    .d-lg-none { display: none!important; }
    .d-lg-block { display: block!important; }
    .d-lg-inline-block { display: inline-block!important; }
    .d-lg-flex { display: flex!important; }

    .justify-lg-content-center { justify-content: center!important; }
    .justify-lg-content-between { justify-content: space-between!important; }

    .align-lg-items-start { align-items: flex-start!important; }
    .align-lg-items-center { align-items: center!important; }
    .align-lg-items-end { align-items: flex-end!important; }

    .pl-lg-40 { padding-left: 40px!important; }
    .pr-lg-40 { padding-right: 40px!important; }

    .mt-lg-30 { margin-top: 30px!important; }
    .mt-lg-40 { margin-top: 40px!important; }
    .mt-lg-50 { margin-top: 50px!important; }
    .mt-lg-0 { margin-top: 0!important; }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
    .container { padding-left: 40px; padding-right: 40px; } 

    .hero h1 { font-size: clamp(36px, 6vw, 90px); }
    .hero p { max-width: 80%; }

    .btn-cta { width: auto; }

    section.black section:first-child::after { width: calc(100% - 80px); margin-left: 40px; }
    section.black iframe { height: 500px; }
}

@media only screen and (max-width: 991px) {
    section { margin: 50px 0; }
    section.black { padding: 50px 0; }
    section.black section:first-child::after { margin-top: 50px; }

    .hero .container { justify-content: flex-end; align-items: flex-start; flex-direction: column; gap: unset;  }
    .hero h1 { max-width: 100%; }
    .hero-basic .container { padding-bottom: 50px; }

    .btn-cta { height: unset; border-radius: 0; padding: 10px 40px; margin-top: 35px; }

    section.featured img { margin-top: 25px; }
}

@media only screen and (max-width: 767px) {
    html { scroll-padding: 100px; }

    .container { padding-left: 25px; padding-right: 25px; }

    header .logo img { width: 70px; height: auto; }

    .navigation-mob-active header nav.mobile-navigation { display: block; }
    header nav.mobile-navigation { position: absolute; top: 0; left: 0; width: 100%; height: 100vh; background: #1D1D1B; padding: 25px; z-index: -1; }
    header nav.mobile-navigation ul { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); text-align: center; }
    header nav.mobile-navigation ul li { display: block; }
    header nav.mobile-navigation ul li:not(:last-child) { margin: 0 0 20px 0; }
    header nav.mobile-navigation ul li { font-size: 22px; }

    .hero h1 { margin-bottom: 20px; }
    .hero p { max-width: 100%; }

    .btn-cta { width: 100%; }

    section.black section:first-child::after { width: calc(100% - 50px);  margin-left: 25px; }
    section .section-title { margin-bottom: 30px; }
    section.featured img { margin-top: 25px; }
    section.black iframe { height: 300px; }

    .contact-info { flex-direction: column; }
    .contact-info .section-title { margin-bottom: 10px; }

    form .form-group:not(:last-child) { margin-bottom: 15px; }
    form input, form textarea { padding: 10px 15px; border-radius: 10px; }

    .accordions .accordion-header + .style-text { padding-bottom: 20px; }
    .accordions .accordion-header { padding: 20px 0; }

    footer { padding: 50px 0; }
    footer .logo { width: 100%; text-align: center; }
    footer .logo img { width: 70px; height: auto; }
    footer .footer-top { flex-direction: column; justify-content: center; gap: 15px; padding-bottom: 50px; }
    footer .footer-bottom { flex-direction: column; align-items: center; gap: 15px; padding-top: 30px; }
    footer a { font-size: 14px; }
    .eu { padding: 30px 0 70px 0; }
}

@font-face {
    font-family: 'Fustat';
    src: url('../fonts/FustatRegular.eot');
    src: url('../fonts/FustatRegular.eot') format('embedded-opentype'),
         url('../fonts/FustatRegular.woff2') format('woff2'),
         url('../fonts/FustatRegular.woff') format('woff'),
         url('../fonts/FustatRegular.ttf') format('truetype'),
         url('../fonts/FustatRegular.svg#FustatRegular') format('svg');
    font-weight: 400;
}

@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/MontserratBold.eot');
    src: url('../fonts/MontserratBold.eot') format('embedded-opentype'),
         url('../fonts/MontserratBold.woff2') format('woff2'),
         url('../fonts/MontserratBold.woff') format('woff'),
         url('../fonts/MontserratBold.ttf') format('truetype'),
         url('../fonts/MontserratBold.svg#MontserratBold') format('svg');
    font-weight: 700;
}

@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/MontserratRegular.eot');
    src: url('../fonts/MontserratRegular.eot') format('embedded-opentype'),
         url('../fonts/MontserratRegular.woff2') format('woff2'),
         url('../fonts/MontserratRegular.woff') format('woff'),
         url('../fonts/MontserratRegular.ttf') format('truetype'),
         url('../fonts/MontserratRegular.svg#MontserratRegular') format('svg');
    font-weight: 400;
}
