@font-face {
    font-family: 'Helvetica W01 Roman';
    src: url('./fonts/Helvetica W01 Roman.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Manrope';
    src: url('./fonts/Manrope-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}
* {
    margin: 0;
    box-sizing: border-box;
}
body {
    font-family: 'Helvetica W01 Roman', Arial, sans-serif;
    margin: 0 !important;
}
h1, h2, h3, h4 {
    font-family: "Manrope", sans-serif;
}
:root {
    --one-unit: 1vw;
    --section-max-width: 9999px;
    --spx-stopper-max: 9999px;
    --spx-stopper-min: 0px;
    --browser-zoom: 1;
    --full-viewport: 100 * var(--one-unit) * var(--browser-zoom);
    --scaling-factor: clamp(var(--spx-stopper-min), var(--full-viewport), min(var(--spx-stopper-max), var(--section-max-width)));
    --theme-spx-ratio: var(--scaling-factor) / 1280;
    --scrollbar-width: 15px;
}
.flexContainer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
button.toggle-button {
    display: none;
    background: transparent;
    border: 0;
}
img {
    max-width: 100%;
}
.logo {
    width: 8.06%;
    margin-left: 2.3161570416451496%;
    margin-top: max(0.5px, 0.0130435 * (var(--scaling-factor) - var(--scrollbar-width)));
    margin-bottom: max(0.5px, 0.0135046 * (var(--scaling-factor) - var(--scrollbar-width)));
}
header {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 111;
}
.main-nav {
    margin-right: 2.3161570416451496%;
    margin-top: max(0.5px, 0.0299901 * (var(--scaling-factor) - var(--scrollbar-width)));
    margin-bottom: max(0.5px, 0.0297101 * (var(--scaling-factor) - var(--scrollbar-width)));
}
.main-nav ul {
        display: flex;
    list-style: none;
}
.main-nav ul li a{
    font-size: clamp(12.6px, 1.24vw, 23.8px);
    color: #000209;
    text-decoration: none;
    margin: calc(0.9425vw - 0.2px);
    display:inline-block
}
.hero-section {
    position: relative;
}
.hero-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    object-fit: cover;
}
.hero-section .container {
    padding-top: calc(13.10625vw - 1.96px);
    padding-bottom: calc(26.4246vw - 3.996px);
}
.container-card {
    width: 51.05%;    
    margin-left: calc(2.0438vw + 0.351px);
    background-color: #fff;
    border-radius: calc(0.9425vw - 0.2px);
    padding: calc(2.2776vw + 0.395px);
}
.container-card h1 {
    font-size: calc(4.1105vw - 0.621px);
    margin-bottom: calc(6.8822vw - 1.017px);    
}
.container-card p {
    font-size: calc(1.2648vw - 0.190px);
}
.container-card a {
    font-size: calc(1.2648vw - 0.190px);
    background-color: #255e95;
    color: #fff;
    padding: calc(1.1719vw - 0.180px) calc(2.34vw - 0.360px);
    display: inline-block;
    white-space: nowrap;
    border-radius: 50px;
    text-decoration: none;
}
.hero-section .cotent.flexBox {
    display: flex;
    gap: 25px;
    align-items: center;
}
.about-us h2 {
    min-width: 34.89%;
    font-size: calc(5vw - 0.75px);
}
.about-us p {
    font-size: calc(2.5vw - 0.375px);
    margin-bottom: calc(4.1295vw - 22.286px);
}
.about-us .flexBox {
    display: flex;
    justify-content: space-between;
    padding-top: calc(9.3541vw - 1.406px);
    margin-bottom: calc(9.3541vw - 1.406px);
    margin-left: 2.3392197205156293%;
    margin-right: 2.3392197205156293%;
}

.our-services {
    background-color: #255e95;
}
.our-services .flexBox {
    display: flex;
    justify-content: space-between;
    padding-top: calc(10.3795vw - 1.286px);
    padding-bottom: calc(4.0179vw - 0.152px);
    margin-left: 2.3392197205156293%;
    margin-right: 7%;
}
.our-services h2 {
    min-width: 34.89%;
    font-size: calc(5vw - 0.75px);
    color: #fff;
    position: relative;
    top: -45px;
}
.our-services p {
    font-size: calc(1.4844vw - 0.230px);
    color: #fff;
    margin-bottom: calc(4.0179vw - 0.152px);
}
.our-services h3 {
    font-size: calc(2.5vw - 0.375px);
    margin-bottom: calc(1.5848vw - 0.428px);
    margin-top: calc(5vw - 0.75px);
}
.rotating-icon {
    width: 85px;
    height: 85px;
    transition: transform 0.1s linear; 
    will-change: transform;
    position: relative;
    top: 10px;
    left: 10px;
}
.our-services .box {
    border-radius: calc(0.9425vw - 0.2px);
    padding: calc(1.776vw + 0.395px);
    background-color: #EAE9E6;
}
.our-services .box p {
    color: #000209;
    margin-bottom: 0;
}
.our-services .flexBox.odd {
    width: 55%;
    margin-left: 5.86181640625%;
    padding-top: 0;
}
.our-services .flexBox.even {
    width: 55%;
    margin-left: 38.59619140625%;
    padding-top: 0;
}
.why-choose-us {
    background-color: #eae9e6;
}
.why-choose-us .flexBox {
    display: flex;
    justify-content: space-between;
    padding-top: calc(10.3795vw - 1.286px);
    padding-bottom: calc(4.0179vw - 0.152px);
    margin-left: 2.3392197205156293%;
    margin-right: 7%;
}
.why-choose-us h2 {
    min-width: 34.89%;
    font-size: calc(5vw - 0.75px);
    position: relative;
    top: -45px;
}
.why-choose-us p {
    font-size: calc(1.4844vw - 0.230px);
    margin-bottom: calc(4.0179vw - 0.152px);
}
.why-choose-us h3 {
    font-size: calc(2.5vw - 0.375px);
    margin-bottom: calc(1.5848vw - 0.428px);
}
.svg-icon {
    min-width: 88px;
    height: 88px;
}
.why-choose-us .box {
    display: flex;
    justify-content: space-between;
    gap: 70px;
    border-bottom: 1px solid #7F8189;
    padding-top: calc(3vw - 0.75px);
}
.why-choose-us .box:first-child {
    padding-top: 0;
}
.why-choose-us .box:last-child {
    border-bottom: none;
    border-bottom: 0;
}
.contact-us h2 {
    min-width: 33.39%;
    font-size: calc(5vw - 0.75px);
}
.contact-us p {
    font-size: calc(1.1161vw - 0.429px);
}
.contact-us .flexBox {
    display: flex;
    padding-top: calc(9.3541vw - 1.406px);
    margin-bottom: calc(9.3541vw - 1.406px);
    margin-left: 2.3392197205156293%;
    margin-right: 2.3392197205156293%;
}
.contact-us label {
    font-size: 24px;
    display: block;
    margin-bottom: 10px;
}
.contact-us input, .contact-us textarea {
    font-size: 24px;
    border: 0;
    border-bottom: 1px solid #000209;
    padding: 9px 0;
    width: 100%;
}
.contact-us textarea {
    resize: unset;
}
.contact-us .form-group {
    margin-bottom: 30px;
}
.contact-us input[type="submit"] {
    font-size: calc(1.2648vw - 0.190px);
    background-color: #255e95;
    color: #fff;
    padding: calc(1.1719vw - 0.180px) calc(3.34vw - 0.360px);
    display: inline-block;
    white-space: nowrap;
    border-radius: 50px;
    text-decoration: none;
    border: 0;
    margin-bottom: 30px;
    cursor: pointer;
    width: auto;
}
.parallax-1, .parallax-2, .parallax-section {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  will-change: background-position;
  transition: background-position 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.parallax-section {
  background-image: url('images/Jeremy-matteo.webp');
  min-height: 800px;
  width: 100%;
}
.tfooter {
    background-color: #050505;
    padding-bottom: 260px;
}
.tfooter * {
    color: #fff;
}
.tfooter .footer-logo {
    margin-top: calc(9.375vw - 2px);
}
.tfooter .address, .tfooter .footer-nav {
    margin-top: calc(13.3929vw - 2.143px);
}
.tfooter .footer-top {
    margin-left: calc(2.34375vw + 0px);
}
.tfooter .footer-bottom {
    margin-left: calc(6.9196vw + 1.143px);
    display: flex;
    margin-top: 110px;
}
.tfooter a, .tfooter .address p, .tfooter button {
    font-size: calc(1.09375vw - 0.17px);
    line-height: 1.3;
}
.tfooter .footer-nav ul {
    padding: 0;
    margin: 0;
    list-style: none;
}
.tfooter .footer-nav ul li {
    margin-bottom: 30px;
    margin-top: 5px;
}
.tfooter .footer-nav ul li a {
    text-decoration: unset;
}
.tfooter .footer-nav ul li svg {
    width: 36px;
    height: 36px;
}
.tfooter .address p:nth-last-child(2) {
    margin-top: 33px;
}
.tfooter .address ul {
    display: none;
}
.footer-logo img {
    width: calc(19.7545vw + 3.71px);
}
.flexBox.footer-top {
    display: flex;
    gap: calc(20.0893vw - 45.714px);
}
.tfooter .links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    position: relative;
    top: 200px;
}
.tfooter .links button {
    padding: 0;
    cursor: pointer;
}
.tfooter .links a, 
.tfooter .links button.link-btn {
  background: none;
  border: none;
  text-decoration: underline;
}
.tfooter .footer-bottom .button a {
    border: 1px solid #fff;
    border-radius: 50px;
    text-decoration: unset;
    padding: calc(1.1719vw - 0.180px) calc(2vw - 0.360px);
    display: inline-block;
}
.contact-us p.legal-note a {
    color: initial;
}
.tfooter .modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.tfooter .modal-overlay.active {
  opacity: 1;
  visibility: visible;
}
.tfooter .modal-box {
  background-color: #ffffff;
  width: 100%;
  max-width: 720px;
  max-height: 85vh;
  border-radius: 12px;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(20px);
  transition: transform 0.3s ease;
}
.tfooter .modal-overlay.active .modal-box {
  transform: translateY(0);
}
.tfooter .modal-header {
  padding: 20px 24px;
  border-bottom: 1px solid #e5e7eb;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #ffffff;
  position: sticky;
  top: 0;
  z-index: 10;
}
.tfooter .modal-box * {
    color: #000209;
}
.tfooter .modal-header h2 {
  font-size: 2.35rem;
  font-weight: 700;
  color: #111827;
}
.tfooter .modal-close-btn {
  background: transparent;
  border: none;
  font-size: 1.75rem;
  line-height: 1;
  color: #6b7280;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: color 0.2s, background-color 0.2s;
}
.tfooter .modal-close-btn:hover {
  color: #111827;
  background-color: #f3f4f6;
}
.tfooter .modal-body {
  padding: 24px;
  overflow-y: auto;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #374151;
}
.tfooter .modal-body a {
    font-size: .95rem;
}
.tfooter .modal-body h3 {
  font-size: 1.5rem;
  color: #111827;
  margin: 18px 0 8px 0;
  font-weight: 600;
}
.tfooter .modal-body h3:first-child {
  margin-top: 0;
}
.tfooter .modal-body p {
  margin-bottom: 14px;
}
.tfooter .modal-body ul {
  margin-bottom: 14px;
  padding-left: 20px;
}
.tfooter .modal-body li {
  margin-bottom: 6px;
}
.tfooter .modal-body::-webkit-scrollbar {
  width: 6px;
}
.tfooter .modal-body::-webkit-scrollbar-thumb {
  background-color: #d1d5db;
  border-radius: 3px;
}
.tfooter .modal-body::-webkit-scrollbar-thumb:hover {
  background-color: #9ca3af;
}
button.toggle-button svg {
    width: 52px;
    height: 52px;
}
.tfooter .footer-logo .footer-bottom {
    display: none;
}
.contact-us input + span, .contact-us textarea + span {
    position: absolute;
    bottom: -35px;
    font-size: 13px;
}
.contact-us textarea + span {
    bottom: -18px;
}
.contact-us input, .contact-us textarea, .contact-us input:focus-visible {
    outline: none;
}
.tfooter .footer-bottom .button a:hover {
    color: #fff;
    text-decoration: underline;
}
.svg-icon {
  opacity: 0;
  transform: translateX(-70px); 
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), 
              opacity 0.6s ease-out;
  will-change: transform, opacity;
}
.svg-icon.animate {
  opacity: 1;
  transform: translateX(0);
}
.main-nav ul li a:hover {
    text-decoration: underline;
}
footer a:visited {
    color: #fff !important;
}
@media (max-width: 1300px) {
    .tfooter .links {
        top: 203px;
    }
}
@media (max-width: 1023px) {
    button.toggle-button {
        display: block;
    }
    .logo, button.toggle-button {
        z-index: 12;
    }
    nav.main-nav {
        position: fixed;
        width: 100%;
        height: 100%;
        background: #f0f0f0;
        top: 0;
        left: 0;
        margin: 0;
        z-index: 11;
        display: none;
    }
    .open nav.main-nav {
        display: block;
    }
    .main-nav ul {
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .main-nav ul li a {
        font-size: calc(1.9404vw + 4.739px);
    }
    button.toggle-button {
        position: relative;
        width: 53px;
        height: 53px;
    }
    button.toggle-button span {
        width: 100%;
        display: inline-block;
        height: 4px;
        background: #000000;
        border-radius: 5px;
        position: absolute;
        top: 0px;
        left: 0;
        transform: rotate(0);
        transition: all .3s;
    }
    button.toggle-button span.last {
        top: 34px;
    }
    button.toggle-button span.middle {
        top: 17px;
    }
    .open button.toggle-button span.middle {
        display: none;
    }
    .open button.toggle-button span.last {
        transform: rotate(-45deg);
        top: 20px;
    }
    .open button.toggle-button span.first {
        transform: rotate(45deg);
        top: 20px;
    }
    .logo {
        width: calc(18.6344vw + 0.370px);
    }
    .flexContainer {
        align-items: center;
        padding-right: 7vw;
    }
    .container-card {
        width: calc(100% - 4.3vw);
        padding: 7.017543859649122%;
        border-radius: 10px;
    }
    .container-card p {
        font-size: 28.7179px;
        line-height: 37.3333px;
    }
    .container-card h1 {
        font-size: 50.2564px;
        line-height: 50.2564px;
    }
    .hero-section .cotent.flexBox {
        display: block;
    }
    .hero-section .cotent.flexBox a.hero-button {
        margin-top: 20px;
        font-size: 28.7179px;
        line-height: 37.3333px;
        padding: 14px 30px;
    }
    .hero-section .container {
        padding-top: calc(20.4836vw + 87.453px);
        padding-bottom: calc(20.4836vw + 87.453px);
    }
    .our-services, .why-choose-us {
        padding: 50px 0 70px;
    }
    .about-us h2, .our-services h2, .why-choose-us h2 {
        font-size: 59.7333px;
        line-height: 59.7333px;
        margin-bottom: 10vw;
    }
    .contact-us h2 {
        font-size: 53.8462px;
        line-height: 53.8462px;
    }
    .our-services h3, .why-choose-us h3 {
        font-size: 53.077px;
    }
    .about-us p, .our-services p, .why-choose-us p {
        font-size: 43.077px;
        line-height: 51.6924px;
    }
    .about-us .flexBox {
        display: block;
        margin: 50px 6.152691% 100px;
    }
    .parallax-section {
        min-height: 400px;
        background-size: auto 200%;
    }
    .our-services .flexBox.odd {
        width: calc(100% - 11.6%);
    }
    .our-services .flexBox.even {
        width: calc(100% - 11.6%);
        margin-left: 5.86181640625%;
    }
    .our-services .flexBox {
        margin: 10px 6.152691% 0px;
        display: block;
    }
    .why-choose-us .flexBox {
        display: block;
        margin: 0px 6.152691% 0px;
        padding-bottom: 0;
    }
    .our-services .box {
        padding: 6%;
    }
    .our-services h2 {
        margin-bottom: 5vw;
    }
    .why-choose-us .box {
        gap: 20px;
    }
    .svg-icon {
        min-width: 68px;
        height: 68px;
    }
    .contact-us .flexBox {
        display: block;
    }
    .contact-us h2 {
        margin-bottom: 70px;
    }
    .contact-us .flexBox {
        margin: 0px 6.152691% 100px;
    }
    header {
        padding-left: 4%;
    }
    .contact-us p {
        font-size: 25.1282px;
        line-height: 32.6667px;
    }
    .flexBox.footer-top {
        display: flex;
        gap: 20px;
        flex-direction: column;
        align-items: center;
    }
    .footer-logo img {
        width: calc(46.23vw + 1.06px);
    }
    .tfooter a, .tfooter .address p, .tfooter button {
        font-size: 25.1282px;
        line-height: 32.6667px;
        text-align: center;
    }
    .tfooter .links {
        top: 0;
    }
    .tfooter .footer-logo .footer-bottom {
        margin: auto;
        display: flex;
        justify-content: center;
    }
    .tfooter .footer-nav {
        order: -1;
    }
    .tfooter .footer-logo {
        order: -2;
    }
    .tfooter .footer-nav ul {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .tfooter .links button {
        width: 100%;
    }
    .tfooter .links {
        top: 0;
        display: flex;
        justify-content: center;
        margin-top: 100px;
    }
    .tfooter > .footer-bottom {
        display: none;
    }
    .tfooter .footer-nav ul li:last-child {
        display: none;
    }
    .tfooter .address ul {
        padding: 0;
        margin: 0;
        list-style: none;
        display: flex;
        justify-content: center;
    }
    .tfooter .address ul svg {
        width: 36px;
        height: 36px;
        margin-top: 50px;
    }
    .tfooter {
        padding-bottom: 180px;
    }
    .contact-us input[type="submit"] {
        font-size: 24px;
        padding: 14px 40px 18px;
    }
}
@media (max-width: 640px) {
    .container-card h1 {
        font-size: 44.2564px;
    }
    .container-card p {
        font-size: 22.7179px;
        line-height: 27.3333px;
    }
    .hero-section .cotent.flexBox a.hero-button {
        font-size: 24.7179px;
        line-height: 34.3333px;
        padding: 10px 28px;
    }
    .about-us h2, .our-services h2, .why-choose-us h2 {
        font-size: 44.2564px;
    }
    .about-us p, .our-services p, .why-choose-us p {
        font-size: 22.7179px;
        line-height: 27.3333px;
    }
    .our-services h3, .why-choose-us h3 {
        font-size: 29px;
    }
    .why-choose-us .box {
        flex-wrap: wrap;
    }
    .why-choose-us .box {
        padding-top: 30px;
        padding-bottom: 30px;
    }
    .why-choose-us .box:last-child {
        padding-bottom: 0;
    }
    .tfooter {
        padding-bottom: 150px;
    }
    .tfooter .footer-bottom .button a {
        padding: 10px 25px;
    }
    .tfooter a, .tfooter .address p, .tfooter button {
        font-size: 22.1282px;
        line-height: 25.6667px;
        text-align: center;
    }
    .contact-us input[type="submit"] {
        font-size: 20px;
        padding: 14px 40px 18px;
    }
    .contact-us p {
        font-size: 14px;
        line-height: 1.2;
    }
    .contact-us label {
        font-size: 20px;
        display: block;
        margin-bottom: 0;
    }
}
@media (max-width: 820px) {
    button.toggle-button {
        transform: scale(.85);
    }
}
@media (max-width: 620px) {
    button.toggle-button {
        transform: scale(.7);
    }
}
@media (max-width: 420px) {
    button.toggle-button {
        transform: scale(.6);
    }
}