@font-face {
  font-family: "Montserrat";
  src: local("Montserrat"), url("../fonts/Montserrat.ttf") format("truetype");
}

@font-face {
  font-family: "SansBold";
  src: local("SansBold"), url("../fonts/SourceSansPro-Bold.ttf") format("truetype");
}

@font-face {
  font-family: "Source Sans Pro Light";
  src: local("Source Sans Pro Light"), url("../fonts/SourceSansPro-Light.ttf") format("truetype");
}

:root {
    --color-text: #000;
    --color-backround: #E0F3FB;
    --section-width: 1070px;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
    font-size: 1.313rem;
    line-height: 1.875rem;
    font-family: "Source Sans Pro Light", sans-serif;
    font-weight: 300;
    font-size: 21px;
    line-height: 30px;
    color: var(--color-text);
}

h1 {
    font-family:  "Source Sans Pro Light", sans-serif;
    font-weight: 300;
    font-size: 60px;
    line-height: 70px;
    margin-top:0;
    margin-bottom: 10px;
}

h2 {
    font-family:  "Source Sans Pro Light", sans-serif;
    font-weight: 300;
    font-size: 30px;
    line-height: 40px;
    margin: 0px;
}

h3 {
    font-family: SansBold, Montserrat, sans-serif;
    font-size: 40px;
    line-height: 50px;
    margin-top:100px;
    margin-bottom: 50px;
}

h4 {
    font-family: SansBold, Montserrat, sans-serif;
    font-size: 21px;
    line-height: 31px;
    margin-top: 0px;
    margin-bottom: 30px;
}

ul {
    list-style: none;
    margin: 0;
    padding-left: 2rem;
}

ul li {
    margin-bottom: 10px;
}

button {
    appearance: none;
}

section ul li:before,
.modal ul li:before {
    content: '•';
    width: 20px;
    margin-left: -20px;
    display: inline-block;
}

a {
    color: var(--color-text);
    text-decoration: underline;
}

a:hover {
    color: var(--color-text);
    text-decoration: none;
}

.button {
    font-family:  "Source Sans Pro Light", sans-serif;
    font-weight: 400;
    font-size: 18px;
    padding: 0px 34px;
    height: 44px;
    border: solid 1px var(--color-text);
    border-radius: 10px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    transition: all 0.3ms ease;
    text-decoration: none;
}

.button.apply {
    background-color: var(--color-text);
    color: white;
    padding: 0px 50px;
}

.button:hover {
    box-shadow: 0 0 0 3px #9edaf3;
    text-decoration: none;
    color: var(--color-text);
}

.button.apply:hover {
    color:white;
}

.wrapper {
    width:100%;
    max-width: 1220px;
    margin:0 auto;
    padding: 0 20px;
}

.hero-slider-mobile {
    display: none;
}

section {
    width: 100%;
    max-width: var(--section-width);
    margin: 60px auto;
}

section.no-bleed {
    margin-top:0px;
}

.slick-slide img {
    border-radius: 10px;
}

.grid {
    display: grid;
    gap:40px;
}

.grid-cols-2 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 80px;
}

.col-span-2 {
    grid-column: span 2 / span 2;
}

.col-span-1 {
    grid-column: span 1 / span 1;
}

.flex {
    display: flex;
}

.flex-col {
    flex-direction: column;
    gap: 20px;
}

article {
    margin-top: 50px;
}

header {
    width: 100%;
    max-width: var(--section-width);
    margin:20px auto;
    display: flex;
    justify-content: flex-end;
    gap:20px;
}

header .services {
    display: flex;
    align-items: flex-end;
    gap: 7px;
}

header .services img {
    height: 45px;
    width: auto;
}

header .logo {
    width: 132px;
    display: block;
}

header .logo img {
    display: block;
    width: 100%;
    height: auto;
}

.title {
    width:100%;
    max-width: var(--section-width);
    margin: 120px auto 80px;
}

.intro {
    margin-top: 80px;
    margin-bottom: 120px;
}

.intro p {
    font-size: 30px;
    line-height: 42px;
    margin:0px;
}

.meta {
    padding: 25px;
    background-color: var(--color-backround);
    border-radius: 8px;
}

.meta:first-of-type ul li {
    display: flex;
}

.img-title {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
}

.img-title img {
    width: 55px;
    height: 55px;
}

.contact {
    padding: 55px;
    border: solid 3px #9EDAF3;
    border-radius: 10px;
}

.contact .items {
    display: flex;
    flex-direction: row;
    gap: 80px;
    margin-top: 30px;
}

.contact .item {
    display: flex;
    gap: 30px;
}

.contact .item img {
    border-radius: 9999px;
    width:108px;
    height:108px;
}

.contact .item h4 {
    margin-bottom: 0px;
}

.contact .item span {
    display: block;
}

.contact .note {
    margin-top: 40px;
}

.benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 50px;
    margin-bottom: 50px;
    row-gap: 2.5rem;
    column-gap: 1.25rem;
}

.benefit {
    padding: 45px 21px;
    background-position: center;
    background-size: cover;
    border-radius: 15px;
    height: 348px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
    transition: all 0.3ms ease;
    cursor: pointer;
}

.benefit:hover {
    box-shadow: 0 0 0 3px #CCECF9;
}

.benefit h4 {
    margin:0px;
    color:white;
}

.modal-trigger {
    width: 40px;
    height: 40px;
    position: absolute;
    left: 50%;
    margin-left: -20px;
    bottom: -20px;
}

.modal-trigger svg {
    display: block;
    width: 44px!important;
}

.modal-trigger svg:nth-child(2){
    position: absolute;
    top:11px;
    left:0;
}

.benefit.framed {
    border: solid 1px #ADB5BD;
}

.benefit.framed img {
    position: absolute;
    top: 40px;
    right: 40px;
}

.benefit.framed h4 {
    color: var(--color-text);
}

.modal {
    padding: 70px 45px 45px;
}

.modal header {
    position: relative;
    margin: 0px;
}

div [data-modal-close] svg {
    position: absolute;
    top: -40px;
    right: 0px;
    cursor: pointer;
}

.ui.modal {
    width:850px!important;
}

.modal header img {
    border-radius: 8px;
    width:100%;
}

.modal h4 {
    margin: 75px 0 65px;
    text-align: center;
    font-size: 40px;    
}

.modal p, .modal ul li {
    font-size: 18px;
    line-height: 24px;;
    margin-bottom:0px;
}

.modal ul li {
    margin-bottom: 20px;
}

.button[data-modal-close] {
    position: relative;
    margin-top: 35px;
    background-color: white;
    cursor: pointer;
}

.modal .mx-auto {
    width: auto;
    margin: 0 auto;
}

.about {
    margin-top:88px;
    display: flex;
    gap: 65px;
    align-items: center;
}

.about-us-slider {
    width:587px;
    height: auto;
}

.about-us-text {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.about-us-text h3, .about-us-text p {
    margin:0px;
}

.about-us-text .button {
    width: 194px;
}

.video {
    position: relative;
    margin-top: 90px;
}

#ytContainer {
    border-radius: 10px;
    width:100%;
}

#playOverlay {
    position: absolute;
    z-index: 10;
    cursor: pointer;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.awards {
    margin-top:50px;
    display: flex;
    align-items: center;
    gap:80px;
}

.awards img {
    display: block;
    height:86px;
}

.external-links {
    padding-top:30px;
    padding-bottom: 40px;
    border-bottom: solid 1px var(--color-text);
    display: flex;
    justify-content: space-between;
}

.external-links div {
    display: flex;
    gap: 30px;
    align-items: center;
}

.sharing {
    margin-top:20px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.sharing .icons {
    display: flex;
    gap: 18px;
}

.sharing .icons a {
    display: block;
    height: 50px;
    text-decoration: none;
    border-radius: 9999px;
    transition: all 0.3ms ease;
}

.sharing .icons a:hover {
    box-shadow: 0 0 0 3px #9edaf3;
}

footer {
    background: linear-gradient(90deg, #1F286D 0%, #00A9E0 67.11%);
    width: 100%;
    position: sticky;
    bottom:0px;
    z-index: 20;
}

footer .internal-wrap {
    max-width: calc(var(--section-width) + 40px);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;    
    padding: 15px 20px;
}

footer .internal-wrap h4 {
    margin: 0px;
    color: white;
    font-size: 30px;
}

.mobile {
    display: none;
}

@media (max-width: 1024px) {
    .about-us-slider {
        width: 400px;
        height: auto;
    }
    .grid-cols-2 {
        display: block;
        
    }
    .col-span-1 {
        margin: 50px 0px;
    }
    .contact .items {
        flex-direction: column;
        gap: 40px;
    }
}

@media (max-width: 768px) {
    .desktop {
        display: none!important;
    }

    .mobile {
        display: block!important;
    }

    header {
        justify-content: flex-start;
    }
    header .logo {
        order: 1;
        width: 63px;
    }
    header .services {
        order: 2;
    }
    header .services img {
        height: 21px;
    }
    .title {
        margin: 40px auto 30px;
    }
    h1 {
        font-size: 36px;
        line-height: 40px;
        margin-bottom: 10px;
    }
    h2 {
        font-size: 22px;
        line-height: 28px;
    }
    h3 {
        font-size: 32px;
        line-height: 38px;
        margin-bottom: 30px;
        margin-top: 50px;
    }
    h4 {
        margin-bottom: 20px;
    }
    .hero-slider-desktop {
        display: none;
    }
    .hero-slider-mobile {
        display: block;
    }
    .slick-dots {
        bottom: 5px;
    }
    .slick-dots li button,
    .slick-dots li button:before {
        width: 14px;
        height: 14px;
        font-size: 46px;
    }
    .intro {
        margin-top: 30px;
        margin-bottom: 50px;
    }
    .intro p {
        font-size: 22px;
        line-height: 28px;
    }
    section {
        margin: 50px 0px;
    }
    article {
        margin-top: 30px;
    }
    .contact {
        padding: 50px 25px;
    }
    .benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 25px;
    }
    .benefit {
        height: 163px;
        padding: 25px 10px;
    }
    .benefit h4 {
        font-size: 14px;
        line-height: 18px;
    }
    .ui.modal {
        width:95%!important;
        padding: 70px 15px 45px;
    }
    .ui.modal header {
        gap:0px;
    }
    .ui.modal h4 {
        font-size: 24px;
        margin: 50px 0px 40px;
    }
    .modal-trigger {
        width: 20px;
        height: 20px;
        margin-left: -10px;
        bottom: -10px;
    }
    .modal-trigger svg {
        width: 20px !important;
        height: 20px !important;
    }
    .modal-trigger svg:nth-child(2) {
        width:10px!important;
        top: 0px;
        left: 5px;
    }
    .benefit.framed img {
        width: 46px;
        position: absolute;
        top: 20px;
        right: 20px;
    }
    .modal {
        padding: 25px;
    }
    .about {
        flex-direction: column;
        gap: 30px;
        margin-top:50px;
        align-items: flex-start;
    }
    .about-us-slider {
        width: 100%;
    }
    .video {
        margin-top: 50px;
    }
    .awards {
        margin-top: 25px;
        gap: 0px;
        justify-content: space-between;        
    }
    .awards img {
        height: 42px;
    }
    .external-links {
        padding-top: 0px;
        padding-bottom: 18px;
        flex-direction: column;
        gap: 50px;
    }
    .external-links div {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }
    footer .internal-wrap h4 {
        font-size: 24px;
    }
    footer .internal-wrap {
        flex-direction: column;
        gap: 15px;
    }
    #ytContainer {
        height: 190px;
    }
    #playOverlay {
        width: 80px;
        height: 80px;
    }
}