/*  =================================================================
    0.0 :ROOT ~ overwrites or extras (if needed)
    ================================================================== */
    :root {
        --row-width: 1440px; /* max-width */
        --row-content: 1124px;
        --row-half-width: -720px; /* half-width */
        --font-main: 'Poppins', sans-serif;
        --font-secondary: 'Roboto', sans-serif;
        --font-weight: 400;
        
        --clr-green: #0F595C;
        --clr-whatsapp: #25D366;
        --clr-beach: #EDE7E2;

        --clr-grey_69: #696969;
    }


/*  =================================================================
	1.0 BASE
	================================================================== */
    body, h1, h2, h3, h4, h5, h6, p, ul, ol, label, a, .button, button, input, select, textarea, address {
        font-family: var(--font-main);
        color: var(--clr-black);
    }

    main.row, .row.outer {
        padding-left: 20px;
        padding-right: 20px;
    }
    .row.outer.collapsed {
        padding-left: 0;
        padding-right: 0;
    }
	
    .row._content {
        max-width: var(--row-content);
    }

/*  1.1 BASE - Colors
    -------------------------------------------------------------- */
    .bgBeach {
        background-color: var(--clr-beach);
    }

/*  1.2 BASE - Clearfix
    -------------------------------------------------------------- */
    .clear, .clearall, .clearfix {
        clear: both;
    }

/*  1.4 BASE - Text stylings
    -------------------------------------------------------------- */
    h1, h2, h3, h4, h5, h6, cite {
        color: var(--clr-grey_3b);
    }
    h1 {
        font-weight: 600;
    }
    h2 {
        padding: 0;
        text-transform: none;
		font-size: 22px;
        line-height: 34px;
        font-weight: 500;
    }
    h2 span {
        display: inline;
        color: var(--clr-green);
    }    
    h2 small {
        font-size: 18px;
        line-height: 24px;
        font-weight: 300;
		margin-bottom: 20px;
        color: #4f4f4f;
    }
    h3 {
        font-weight: 600;
        font-size: 24px;
        line-height: 33px;
        text-transform: none;
        margin-bottom: 20px;
		color: var(--clr-green);
    }
    p, li {
        font-size: 14px;
        line-height: 30px;
        color: var(--clr-grey_69);
    }
    p, .WYSIWYG ul, .WYSIWYG ol  {
        margin-bottom: 24px;
    }

    input[type="submit"],
    button,
    .button {
        background-color: var(--clr-black);
        color: var(--clr-white);
        font-family: var(--font-main);
        -webkit-transform: translateZ(0);
                transform: translateZ(0);
    }


/*  =================================================================
    x.0 HEADER
    ================================================================== */
    nav {
        position: sticky;
        left: 0;
        top: 0;
        background-color: var(--clr-white);
        z-index: 997;
    }
    nav .logo-link {
        position: relative;
        font-size: 0;
        line-height: 0;
        display: inline-block;
        margin: 14px 0;
        z-index: 1;
    }
    nav .logo-link img {
        width: auto;
        height: 32px;
    }
	nav .mobileBTN {
		margin-left: auto;
		font-size: 20px;
	}
    nav .row {
        display: flex;
        align-items: center;
        justify-content: space-between;
		padding: 0 20px;
    }
    nav .topRow {
        position: absolute;
        top: 20px;
        right: 0;
        text-align: right;
    }
    nav .row ul {
        margin-left: auto;
        font-size: 0;
        line-height: 0;
        text-align: left;
    }
    nav .row ul li {
		position: relative;
		display: inline-block;
    }
	nav .row > ul ul li {
		display: block;
		width: 100%;
	}
    nav .row ul li:not(:first-of-type) {
        margin-left: 24px;
    }
    nav .row ul li.extra-links a:not(:first-of-type) {
        margin-left: 6px;
    }
    nav .row ul li.extra-links {
        margin-left: 111px;
    }
    nav ul a {
        font-family: var(--font-secondary);
        display: block;
        line-height: 30px;
        font-size: 16px;
        font-weight: 500;
        color: var(--clr-green);
    }
    nav ul a span {
        font-size: 14px;
        font-weight: 400;
	}
    nav.showed ul a span {
		line-height: 22px;
		vertical-align: bottom;
    }
    nav ul i {
        font-size: 22px;
        line-height: 20px;
        vertical-align: bottom;
    }
	
	nav ul {
		display: none;
	}
	
	nav ul ul {
		position: absolute;
		left: 0;
		top: 100%;
		display: none;
		background-color: var(--clr-white);
		width: fit-content;
		min-width: 200px;
		padding: 5px 0;
		padding-top: 20px;
	}
	nav.showed ul ul {
		position: relative;
		left: auto;
		top: auto;
		width: calc(100% + 20px);
		margin-left: -10px;
		padding-top: 5px;
		padding-left: 20px;
	}
	
	nav ul ul li {
		margin: 0 !important;
		padding: 0 10px;
	}
	
	nav ul ul ul {
		left: 100%;
		top: 0;
		background-color: var(--clr-white);
		padding-top: 0;
	}
	
	nav.showed .row > ul {
		padding-top: 10px;
		display: block;
		position: fixed;
		left: 0;
		top: 60px;
		width: 100%;
		border-top: 1px solid var(--clr-green);
		background-color: var(--clr-white);
		height: 100dvh;
	}
	nav.showed .row > ul li {
		display: block;
		margin: 0 !important;
		padding: 10px 20px;
	}
	nav.showed .row > ul ul li {
		padding: 5px 10px;
	}
	nav.showed li.has-children .dd {
		position: absolute;
		right: 5px;
		top: 5px;
		width: 40px;
		height: 40px;
		text-align: center;
		line-height: 40px;
		border: 0;
		transform: translateZ(0);
		z-index: 1;
	}
	nav.showed ul ul li.has-children .dd {
		top: 0;
	}
	nav.showed .row > ul li.extra-links {
		padding: 40px;
		text-align: center;
	}
	nav.showed .row > ul li.extra-links a {
		display: inline-block;
	}


    /*  =================================================================
    x.0 HEADER
    ================================================================== */
    header {
        overflow: hidden;
        font-size: 0;
        line-height: 0;
    }
	header.type_1 {
        margin-bottom: 66px;
    }
	header.type_2, header.type_4 {
        margin-bottom: 99px;
    }	
	header.type_3 {
        margin-bottom: 20px;
    }
    header:before {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
        background-color: #EDE7E290;
    }
    header:after {
        content: '';
        position: absolute;
        left: 0;
        bottom: -1px;
        width: 100%;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: bottom center;
        z-index: 2;
    }
    header.type_1:after,
    header.type_3:after {
        height: 20px;
        background-image: url(../img/btm-bar.svg);
		background-size: cover;
    }
    header.type_2:after {
        height: 110px;
        background-image: url(../img/btm-bar_inv.svg);
    }
    header.type_4:after {
        display: none;
    }
    header img {
        object-fit: cover;
    }
    header.type_1 img {
        height: 662px;
    }
    header.type_2 img {
        height: 320px;
    }
    header.type_3 img {
        height: 447px;
    }
    header.type_4 img {
        height: 449px;
    }
    header img.icon {
        position: absolute;
        width: auto;
        object-fit: contain;
        z-index: 2;
        opacity: 31% !important;
    }
    header.type_1 img.icon {
		top: 10px;
		right: calc(-525px / 1.9);
		height: 525px;
    }
    header.type_2 img.icon {
        top: -175px;
        right: calc(-320px / 1.5);
        height: 525px;
    }
    header.type_3 img.icon {
		top: 15px;
		right: calc(-650px / 2.2);
		height: 650px;
    }
    header.type_4 img.icon {
		top: -45px;
		right: calc(-549px / 2.75);
		height: 549px;
    }
    header hgroup {
        position: absolute;
        z-index: 2; 
        display: block;
    }
    header hgroup h1 {
		font-size: 22px;
		line-height: 28px;
        color: var(--clr-green);
        margin-bottom: 35px;
    }
    header.type_1 hgroup {
        top: 201px;
        left: 10.76%;
		max-width: calc(100% - (2 * 10.76%));
		text-align: center;
    }
    header.type_2 hgroup,
    header.type_3 hgroup,
    header.type_4 hgroup {
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
        width: fit-content;
        text-align: center;
    }
    header hgroup h1 {
        color: var(--clr-green);
    }
    header.type_1 hgroup h1 {
        font-weight: 700;
		font-size: 22px;
		line-height: 28px;
        color: var(--clr-green);
        margin-bottom: 35px;
    }
    header.type_1 hgroup h1.small {
        font-weight: 400;
		font-size: 20px;
        line-height: 27px;
        color: #060606;
    }
    header.type_2 hgroup h1,
    header.type_3 hgroup h1,
    header.type_4 hgroup h1 {
        font-weight: 500;
    }
    header.type_2 hgroup h1.small,
    header.type_3 hgroup h1.small,
    header.type_4 hgroup h1.small {
        font-weight: 300;
        font-size: 26px;
        line-height: 33px;
        color: #4f4f4f;
    }
    /*header*/ .appBtn {
        position: fixed;
        right: 16px;
        bottom: 76px;
        display: block;
        width: 50px;
        height: 50px;
        border-radius: 50%;
        background-color: var(--clr-whatsapp);
        color: var(--clr-white);
        font-size: 22px;
        z-index: 3;
        line-height: 50px;
        text-align: center;
		z-index: 100;
    }

/*  =================================================================
    x.0 SIDEBAR
    ================================================================== */


/*  =================================================================
    x.0 CONTENT
    ================================================================== */
    section {
		padding-left: 20px;
		padding-right: 20px;
        margin-bottom: 0;
    }
	
	section:last-of-type,
	.home section,
	section.USP {
		margin-bottom: 80px;
	}
	
	section.topBorder {
		padding-top: 75px;
	}
	section.topBorder:before {
		content: '';
		position: absolute;
		left: 0;
		top: 0;
		width: 100%; 
		height: 95px;
        background-image: url(../img/btm-bar_inv.svg);
		background-repeat: no-repeat;
		background-position: top center;
		background-size: cover;
		-webkit-transform: rotate(180deg);
				transform: rotate(180deg);
	}
    
    /*  x.x WYSIWYG controler
    -------------------------------------------------------------- */    
    .WYSIWYG h1, .WYSIWYG h3, .WYSIWYG h4, .WYSIWYG h5, .WYSIWYG h6,
    .WYSIWYG p,
    .WYSIWYG ol,
    .WYSIWYG ul,
    .WYSIWYG figure {		
        margin-bottom: 20px;
    }
    
	.WYSIWYG h2 {
		font-size: 28px;
		line-height: 41px;
		margin-bottom: 20px;
	}
	.WYSIWYG h2.icon {
		position: relative;
	}
	.WYSIWYG h2.icon:before {
		content: "";
		display: inline-block;
		width: 42px;
		height: 41px;
		vertical-align: bottom;
		background: url('../img/icon-site.svg') no-repeat center / contain;
		margin-right: 5px;
	}
	
	.WYSIWYG p, .WYSIWYG li {
        line-height: 30px;
        color: var(--clr-black);
    }
    .WYSIWYG p:last-of-type, .WYSIWYG ul:last-of-type, .WYSIWYG ol:last-of-type {
        margin-bottom: 0;
    }
	.WYSIWYG p:last-of-type + ul, 
	.WYSIWYG p:last-of-type + ol, 
	.WYSIWYG ul:last-of-type + p,
	.WYSIWYG ul:last-of-type + ol,	
	.WYSIWYG ol:last-of-type + p,
	.WYSIWYG ol:last-of-type + ul {
        margin-top: 20px;
    }
	.WYSIWYG ul ul, .WYSIWYG ul ol, .WYSIWYG ol ol, .WYSIWYG ol ul {
        margin-bottom: 0;
    }
    .WYSIWYG p strong, .WYSIWYG li strong {
        font-weight: 600;
    }
	
	.WYSIWYG p a {
		color: var(--clr-green);
	}
	
	.WYSIWYG:not(.blocked) ul,
	.WYSIWYG:not(.blocked) ol {
		padding-left: 20px;
	}
    
    .WYSIWYG li {
        position: relative;
        padding-left: 30px;
    }
    .WYSIWYG li:before {
        display: inline-block;
        line-height: 30px;
        width: 30px;
        position: absolute;
        left: 0;
        top: 0;
    }
    .WYSIWYG ol {
        counter-reset: section;
    }
    .WYSIWYG ol > li > ol {
        counter-reset: subsection;
    }
    .WYSIWYG ol li:before {
        font-size: 16px;
        text-align: left;
        font-weight: 600;
        color: var(--clr-green);
    }
    .WYSIWYG ol > li {        
        counter-increment: section;
    }
    .WYSIWYG ol > li:before {
        content: counter(section) ".";
    }
    .WYSIWYG ol > li > ol > li {
        counter-increment: subsection;
    }
    .WYSIWYG ol > li > ol > li:before {
        content: counter(section) "." counter(subsection) " ";
    }
    .WYSIWYG ul li:before {
        font-family: remixicon;
        content: '\F3C1';
        text-align: center;
        font-size: 6px;
    }

    .WYSIWYG .img figure {
        border-radius: 16px;
		padding-bottom: 100%;
    }
	.WYSIWYG .img figure img {
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
    
    .WYSIWYG blockquote {
        position: relative;
        border: 0;
        margin: 0;
        padding: 0;
        width: 100%;
        background-color: var(--clr-beach);
        padding-bottom: 100%;
    }
    .WYSIWYG blockquote p {
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
        font-size: 18px/*21px*/;
        line-height: 24px/*31px*/;
        font-weight: 300;
        padding: 70px;
        /*padding: 0 40px 0 50px;*/
		padding: 0 10px 0 20px;
        width: 100%;
        margin: 0;
    }
    .WYSIWYG blockquote p img {
        width: auto;
        height: 42px;
        vertical-align: text-bottom;
    }
	
	.WYSIWYG.blocked .grid-item {
		background-color: var(--clr-beach);
		padding: 30px 30px 10px 95px;
	}
	.WYSIWYG.blocked .grid-item p {
		line-height: 20px;
		margin-bottom: 20px;
	}
    
    /*  x.x HOME - USP
    -------------------------------------------------------------- */
	.USP .gridFrame {
		padding: 0 28px;
		row-gap: 20px;
	}
	/*.USP .grid-item {
		padding: 20px;
		padding-bottom: 60px;
	}*/
	.USP .grid-item._full {
		padding-left: 0;
		padding-right: 0;
	}
	.USP .grid-item > a {
		display: block;
		padding: 20px;
		padding-bottom: 60px;
	}
    .USP h3, .USP p {
        text-align: center;
    }
    .USP p a.btn {
        font-weight: 700;
    }
	.USP h3, .USP p {
		color: var(--clr-black);
	}
	.USP p:last-of-type {
		margin-bottom: 0;
	}
	.USP h3 {
		font-size: 20px;
		line-height: /*36px*/ 24px;
		padding: 6px 0;
	}
    /*.USP p strong {
        color: var(--clr-green);
    }*/
    .USP figure {
        margin: 0 auto;
        width: 100%;
        max-width: 64px;
        padding-bottom: 64px;
        margin-bottom: 10px;
    }
    .USP figure img {
        position: absolute;
        left: 50%;
        top: 50%;
        max-width: 90%;
        -webkit-transform: translate(-50%,-50%);
                transform: translate(-50%,-50%);
    }
	.USP .btn,
	.USP .fakeBtn {
		font-weight: 700;
	    position: absolute;
		left: 50%;
		bottom: 20px;
		-webkit-transform: translateX(-50%);
				transform: translateX(-50%);
	}

    /*  x.x HOME - ABOUT
    -------------------------------------------------------------- */
    section.about {
		padding-left: 0;
		padding-right: 0;
	}
	.about .row {
        padding: 65px 0 0 0;
    }
    
    .about figure {
        position: relative;
        max-width: calc(100% - 48px);
        float: left;
        z-index: 2;
        overflow: visible;
    }
    .about figure:before {
        content: '';
        position: absolute;
        left: 0;
        bottom: 100%;
        height: 65px;
        width: 83px;
        background-color: var(--clr-white);
    }
    .about figure img {
        object-fit: cover;
        height: 100%;
		max-height: 360px;
    }

    .about .text-container {
        float: left;
        padding: 20px 48px;
        width: 100%;
		background-color: var(--clr-white);
    }
    .about h2 {
        font-size: 22px;
		line-height: 33px;
        padding: 0 0 20px 0;
    }
    .about h2 img {
        width: auto;
        height: 41px;
        vertical-align: bottom;
		margin-right: 5px;
    }
    .about h2:before,
	.blog h2:before {
		content: "";
		display: inline-block;
		width: 42px;
		height: 41px;
		vertical-align: bottom;
		background: url("../img/icon-site.svg") no-repeat center / contain;
		margin-right: 5px;
    }
    .about p {
        line-height: 30px;
        margin-bottom: 0;
        color: var(--clr-black);
    }

    /*  x.x HOME - PARTNERS
    -------------------------------------------------------------- */
    section.partners:not(.noBG) {
		margin-bottom: 20px;
	}
	.partners:not(.noBG) {
        background-color: var(--clr-beach);
        padding: 58px 20px 110px 20px;
    }
    .partners:not(.noBG):after {
        content: '';
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 110px;
        background-image: url(../img/btm-bar_inv.svg);
        background-repeat: no-repeat;
        background-size: contain;
        background-position: bottom center;
        z-index: 2;
    }

    .partners h2 {
		font-size: 24px;
		line-height: 29px;
        font-weight: 600;
        margin-bottom: 30px;
    }
    .partners h2 small {
        font-weight: 300;
        color: #4f4f4f;
		font-size: 18px;
		line-height: 24px;
		margin-bottom: 20px;
    }

    .partners .logos {
        text-align: center;
        font-size: 0;
        line-height: 0;
    }
    .partners .logos figure {
        display: inline-block;
        width: fit-content;
        height: 80px;
		padding: 5px;
		margin: 0 5px;
        /*padding: 10px;
        margin: 0 10px;*/
    }
    .partners .logos figure img {
        height: 60px;
        object-fit: contain;
        filter: grayscale(100);
    }

    .partners .partnerSlider {
        margin: 30px 28px 66px; /* row - _content / 2 */
    }
    .partners .swiper-slide {
        background-color: var(--clr-white);
        border-radius: 10px;
        padding: 20px;
        height: 256px;
    }
    .partners .swiper-slide h3,
	.partners .swiper-slide p {
		color: var(--clr-green);
	}
	.partners .swiper-slide h3 {
		font-size: 20px;
	}
	.partners .swiper-slide p {
		font-size: 14px;
		line-height: 22px;
	}
	.partners .swiper-slide h3 span {
		color: var(--clr-black);
        margin-left: 20px;
        display: inline;
    }
	
	.partners .swiper-slide .ri-star-line {
		opacity: 0;
		color: transparent;
		pointer-events: none;
		display: none;
	}

    .partners .swiper-button-prev:after,
    .partners .swiper-button-next:after {
        font-family: "remixicon";
        font-size: 40px;
        color: var(--clr-green);
        font-weight: 600;
    }

    .partners .swiper-button-prev {
        left: var(--swiper-navigation-sides-offset, -10px);
    }
    .partners .swiper-button-prev:after {
        content:'\F494';
    }
    .partners .swiper-button-next {
        right: var(--swiper-navigation-sides-offset, -10px);
    }    
    .partners .swiper-button-next:after {
        content: '\F496';
    }
	
	.partners.noBG .gridFrame {
		gap: 48px;
	}
	.partners.noBG .grid-item,
	.partners.noBG .grd-item {
		position: relative;
		background-color: var(--clr-beach);
		border-radius: 10px;
		padding: 48px 32px 64px 32px;
	}
	.partners.noBG .grid-item p,
	.partners.noBG .grd-item p {
		color: var(--clr-green);
	}
	.partners.noBG .rating {
		font-weight: 400;
		position: absolute;
		left: 50%;
		bottom: 32px;
		-webkit-transform: translateX(-50%);
				transform: translateX(-50%);
		color: var(--clr-black);
	}
	
    .partners .button,
    .blogs .button,
    .WYSIWYG p a.button {
        display: inline-block;
        line-height: 24px;
        min-width: 242px;
        padding: 12px 8px;
        border-radius: 16px;
        font-size: 16px;
        background-color: var(--clr-green); 
        color: var(--clr-white);
    }

    /*  x.x HOME - VIDEO
    -------------------------------------------------------------- */
    .video-container {
        border-radius: 16px;
    }
    .play-button { 
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
        margin: 0;
        z-index: 1;
        cursor: pointer;
    }
    .play-button svg {
        width: auto;
        height: 100px;
    }
    .play-button svg path {
        -webkit-transition: fill 150ms ease-in;
                transition: fill 150ms ease-in;
    }
    .play-button:hover svg path.cls {
        fill: #c4002f;
    }

    /*  x.x HOME - BLOGS
    -------------------------------------------------------------- */
    main section:first-of-type {
		margin-top: 81px;
	}
	main header + section:first-of-type {
		margin-top: 0;
	}
	
	section.blogs {
        margin-top: 75px;
    }
	section.blogs._first {
        margin-top: 0;
    }
    .blogs.topBar:before {
        content: '';
        position: absolute;
        left: 0;
        bottom: 100%;
        width: 100%;
        height: 75px;
        background-image: url(../img/btm-bar_beach.svg);
        background-repeat: no-repeat;
        background-size: contain;
        background-position: bottom center;
    }
    .blogs h2 {
        margin-bottom: 75px;
		font-size: 24px;
		line-height: 29px;
		font-weight: 600;
    }
    .blogs article {
        font-size: 0;
        line-height: 0;
        border-radius: 16px;
        background-color: var(--clr-beach);
        overflow: hidden;
    }
    .blogs.bgBeach article {
        background-color: var(--clr-white);
    }
    .blogs article img {
        margin-top: -27px;
        margin-left: -27px;
        width: calc(100% + 54px);
        height: 234px;
        object-fit: cover;
    }
    .blogs article time {
        display: block;
        margin-top: 20px;
        color: #8C89A2;
        font-weight: 500;
        letter-spacing: 2px;
        font-size: 15px;
        line-height: 26px;
        text-transform: uppercase;
    }
    .blogs article h3 {
        margin-top: 20px;
        font-size: 20px;
        line-height: 27px;
        font-weight: 600;
        color: var(--clr-green);
    }
    .blogs article a {
		display: block;
        padding: 27px;
	}
	.blogs article span.fakeBTN {
        display: inline-block;
        margin-top: 20px;
        font-size: 14px;
        font-weight: 700;
        color:var(--clr-black);
    }
    .blogs .button {
        margin: 75px 0;
    }
	
	.blog h2:before {
		vertical-align: text-top;
    }	

    /*  x.x HOME - CONTACT FORM
    -------------------------------------------------------------- */
	.text.quote .txt {
		padding-top: 24px;
	}

    /*  x.x HOME - CONTACT FORM
    -------------------------------------------------------------- */
    .contact h3 {
		font-size: 20px;
		line-height: 36px;
	}
	.contact h3 i {
		font-weight: normal;
	}
	.content-form h2 {
        line-height: 41px;
        font-size: 28px;
        font-weight: 400;
        margin-bottom: /*100px*/50px;
    }
    .content-form h2 img {
        width: auto;
        height: 41px;
        margin-right: 5px;
        vertical-align: bottom;
    }
    .content-form .col {
        padding: 0;
        margin-bottom: 21px;
    }
    input, textarea, button {
        background-color: var(--clr-beach);
        color: var(--clr-black);
        padding: 17px 26px;
        line-height: 30px;
        border-radius: 16px;
        display: block;
        width: 100%;
        font-size: 18px;
    }
    textarea {
        height: 256px;
    }
    button {
        font-family: var(--font-secondary);
        font-weight: 500;
        background-color: var(--clr-green);
        color: var(--clr-white);
    }
		
    input + label, textarea + label {
        position: absolute;
        left: 17px;
        top: 17px;
        width: 100%;
        height: 30px;
        font-size: 18px;
        line-height: 30px;
        font-weight: 600;
        pointer-events: none;
        color: var(--clr-green);
        -webkit-transition: all 200ms linear;
                transition: all 200ms linear;
    }
    input:focus + label, textarea:focus + label {
        top: -17px;
        opacity: 0.6;
    }
    input:not(:placeholder-shown) + label, textarea:not(:placeholder-shown) + label {
        top: -17px;
        opacity: 0;
    }
	
	section.blog .gridFrame,
    section.quote .gridFrame {
        grid-gap: 34px;
    }

/*  =================================================================
    FOOTER
    ================================================================== */
    footer {
        background-color: var(--clr-beach);
    }
    footer ul {
        font-size: 0;
        line-height: 0;
        text-align: center;
    }
    footer li {
        position: relative;
        display: inline-block;
        padding: 0 20px;
    }
    footer li,
    footer a {
        color: var(--clr-green);
    }
    footer > ul > li:first-of-type {
        font-size: 16px;
        line-height: 24px;
        padding: 18px 0;
        /*margin-right: 50px;*/
		display: block;
    }
    footer > ul > li > a {
        display: block;
        font-size: 16px;
        line-height: 24px;
        padding: 0;
    }
	footer ul > li:not(:first-of-type) > a {
        padding: 3px 0;
    }
    footer ul ul {
        display: none;
        position: absolute;
        left: 0;
        bottom: 100%;
        background: var(--clr-beach);
        width: fit-content;
        min-width: 300px;
        padding: 10px;
        z-index: 99;
    }
    footer ul ul li {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0 10px;
        text-align: left;
    }
    footer ul ul a {
        padding: 3px 0;
    }
    footer li:hover ul {
        display: block;
    }


    /*  =================================================================
    MEDIA QUERIES
    ================================================================== */
    /* MOBILE */
    @media only screen and (min-width: 572px) { 
	
		.partners.noBG .gridFrame {
			gap: 64px;
		}
		header.type_1:after, header.type_3:after {
			height: 30px;
		}
		
		.content-form .col.w50 {
			max-width: calc(50% - 10px);
		}
		.content-form .col.w50.left {
			margin-right: 20px;
		}
	
	}

    @media only screen and (min-width: 572px) and (orientation: landscape) { }
    @media only screen and (min-width: 572px) and (orientation: portrait) { }

    /* IPADS portrait */
    @media only screen and (min-width: 768px) and (min-height: 600px) {	}

    /* IPADS */
    @media only screen and (min-width: 768px) {

		.text.quote .txt {
			padding-top: 0;
		}

	}

    /* IPADS landscape AND mini laptops */
    @media only screen and (min-width: 960px) {		
		
		/*  =================================================================
		x.0 STANDARDS
		================================================================== */		
		h2 {
			font-size: 34px;
			line-height: 52px;
		} 
		h2 small {
			font-size: 20px;
			line-height: 30px;
			margin-bottom: 0;
		}
		
        p, li {
			font-size: 16px;
			line-height: 24px;
		}
		
		
		/*  =================================================================
		x.0 NAV
		================================================================== */
		.mobileBTN,
		nav li.has-children .dd {
            display: none;
        }
		
		nav ul {
			display: block;
		}
		
		nav ul a {
			display: inline-block;
			line-height: 20px;
		}
		
		nav ul ul {
			position: absolute;
			left: 0;
			top: 100%;
			display: none;
			background-color: var(--clr-white);
			/*width: fit-content;
			min-width: 200px;
			padding: 5px 0;
			padding-top: 20px;*/
			min-width: 240px;
			width: fit-content;
			white-space: nowrap;
			padding: 10px;
			margin: 0;
			box-shadow: 0px 15px 20px 0px rgba(0, 0, 0, 0.1);
			text-align: left;
		}
		nav ul ul li {
			margin: 0 !important;
			padding: 0 /*10px*/;
		}
		nav ul ul a {
			font-size: 15px;
			font-weight: 400;
			float: none;
			display: block;
			padding: 8px 12px;
		}		
		/*nav ul ul li:hover {
			background-color: rgba(0,0,0,0.1);
		}*/
		nav ul ul ul {
			left: 100%;
			top: -10px;
			background-color: var(--clr-white);
			padding-top: 10px;
		}
		
		
		/*  =================================================================
		x.0 CONTENT
		================================================================== */
		main#siteContainer {
			padding-bottom: 60px;
		}
		
		section:last-of-type,
		.home section,
		section.USP {
			margin-bottom: 80px;
		}
		
		header.type_1:after, header.type_3:after {
			height: 40px;
		}
		section.about {
			padding-left: 20px;
			padding-right: 20px;
		}
		.USP .gridFrame {
			padding: 0;
		}
		
		/*  x.x WYSIWYG controler
		-------------------------------------------------------------- */	
		.WYSIWYG blockquote p {
			font-size: 28px;
			line-height: 48px;
			padding: 0 50px 0 70px;
		}		
	
		/*  x.x HOME - ABOUT
		-------------------------------------------------------------- */
		.about .row {
			padding: 65px 30px 0 0;
		}
		.about:after {
			content: '';
			position: absolute;
			left: 0;
			bottom: 20px; /* compensate for 20px standard padding */
			height: 65px;
			width: 100%;
			background-color: var(--clr-white);
		}		
		.about figure {
			max-width: 341px;
		}
		.about figure img {
			max-height: none;
		}
		.about .text-container {
			padding: 0 0 0 60px;
			max-width: calc(100% - 342px);
			background-color: transparent;
		}
		.about h2 {
			line-height: 41px;		
			padding: 0 20px 20px 0;
		}
		
		/*  x.x HOME - BOXED
		-------------------------------------------------------------- */
		section.boxed {
			padding-bottom: 110px;
		}
		.boxed .WYSIWYG h2 {
			font-size: 34px;
			line-height: 33px;
		}
		.boxed .WYSIWYG h3 {
			font-weight: 400;
			font-size: 28px;
			line-height: 33px;
			color: var(--clr-black);
		}
		
		/*  x.x HOME - PARTNERS
		-------------------------------------------------------------- */
		section.boxed:not(:first-of-type),
		section.partners:not(:first-of-type) {
			margin-top: 80px;
		}
		
		section.partners:not(.noBG) {
			margin-bottom: 80px;
		}
		
		.partners:not(.noBG) {
			padding: 58px 0 110px 0;
		}
		
		.partners.noBG .gridFrame {
			gap: 72px;
		}
		
		.partners.noBG .grid-item {
			padding: 48px 32px 64px 96px;
		}
		
		.partners h2 {
			font-size: 34px;
			line-height: 33px;
		}
		.partners h2 small {
			font-size: 28px;
			line-height: 33px;
			margin-bottom: 0;
		}
		.partners .partnerSlider {
			margin: 30px 79px 66px; /* row - _content / 2 */
		}	
		.partners .swiper-slide {
			padding: 40px;
		}
		.partners .swiper-slide p {
			display: -webkit-box;
			-webkit-line-clamp: 4;
			-webkit-box-orient: vertical;  
			overflow: hidden;
		}
		.partners .swiper-button-prev {
			left: var(--swiper-navigation-sides-offset, 30px);
		}
		.partners .swiper-button-next {
			right: var(--swiper-navigation-sides-offset, 30px);
		}
		
		.partners .swiper-slide h3 {
			font-size: 24px;
		}
		
		/*  x.x HOME - BLOGS
		-------------------------------------------------------------- */
		section.blogs {
			margin-top: 150px;
		}
		
		.content-form .col {
			margin-bottom: 51px;
		}
	
		
		/*  =================================================================
		FOOTER
		================================================================== */
		footer {
			position: absolute;
			left: 0;
			bottom: 0;
			width: 100%;
		}
		
		footer > ul > li:first-of-type {
			margin-right: 50px;
			display: inline-block;
		}
		footer ul > li > a {
			padding: 18px 0;
		}
		
    }

    /* SMALL SCREENS */
    @media only screen and (min-width: 1280px) {
		
		nav .row ul li.extra-links {
			margin-left: 211px;
		}

		/*  =================================================================
		x.0 HEADER
		================================================================== */
		header.type_1:after,
		header.type_3:after {
			height: 70px;
		}				
		header.type_1 img.icon {
			top: -20px;
			right: calc(-675px / 2.1);
			height: 675px;
		}
		header.type_1 hgroup h1 {
			text-align: left;
			font-size: 54px;
			line-height: 52px;
		}
		header.type_1 hgroup h1.small {
			font-size: 28px;
			line-height: 37px;
		}
		header.type_2 hgroup h1,
		header.type_3 hgroup h1,
		header.type_4 hgroup h1 {
			font-size: 34px;
			line-height: 52px;
		}
		
		/*  x.x HOME - BLOG
		-------------------------------------------------------------- */
		section.blog .gridFrame,
		section.text .doubleCol .gridFrame {
			grid-column-gap: 96px;
		}
		
		/*  x.x HOME - PARTNERS
		-------------------------------------------------------------- */
		.partners.noBG .gridFrame {
			gap: 96px;
		}
		
		.partners .partnerSlider {
			margin: 50px 79px 96px; /* row - _content / 2 */
		}
		
		.partners .logos figure {
			padding: 10px;
			margin: 0 10px;
		}
		
	}

    /* WEIRD HEADER TEXT BREAKPOINT ~ must be paddings or margins */
    @media only screen and (min-width: 1340px) { }

    /* SMALL SCREENS */
    @media only screen and (min-width: 1440px) { }
    @media only screen and (min-width: 1600px) { }
    @media only screen and (min-width: 1920px) { }

/*  =================================================================
    TOUCH DEVICES
    ================================================================== */
    @media (pointer:coarse) { }

/*  =================================================================
    HOVER STATES
    ================================================================== */
    @media (any-hover: hover) {
	
		nav .row > ul > li.has-children:hover > ul {
			display: block;
		}
		nav .row > ul > li.has-children > ul > li.has-children:hover > ul {
			display: block;
		}
		
		nav ul li.has-children:hover > a,
		nav ul a:hover {
			color: var(--clr-black);
		}
		nav ul ul a:hover {
			background-color: var(--clr-beach);
			color: var(--clr-black);
		}
		
	}