/*
Theme Name: West Tower
Theme URI: https://westtower.com/
Author: Patrick
Author URI: https://wppatrickk.com/
Description: Custom Theme for West Tower
Version: 1.0.0
Text Domain: westtower
*/

/*--------------------------------------------------------------
# Normalize
--------------------------------------------------------------*/


* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-weight: inherit;
	font-style: inherit;
	font-size: 100%;
	font-family: inherit;
	vertical-align: baseline;
}

:focus {
	outline: 0;
}

body {
	line-height: 1;
	color: black;
	background: white;
}

ol, ul {
	list-style: none;
}

table {
	border-collapse: separate;
	border-spacing: 0;
}

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

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: "";
}

blockquote,
q {
	quotes: "" "";
}

/*--------------------------------------------------------------
# WP Core Styles
--------------------------------------------------------------*/

.alignnone {
    margin: 5px 20px 20px 0;
}

.aligncenter,
div.aligncenter {
    display: block;
    margin: 25px auto;
}

.alignright {
    float:right;
    margin: 5px 0 20px 20px;
}

.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

a img.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}

a img.alignnone {
    margin: 5px 20px 20px 0;
}

a img.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Text meant only for screen readers. */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	white-space: nowrap;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	color: #21759b;
	display: block;
	font-size: 14px;
	font-size: 0.875rem;
	font-weight: bold;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000; /* Above WP toolbar. */
}

/*--------------------------------------------------------------
# Predefined Styles
--------------------------------------------------------------*/

:root {
	--primary-color: #c59c5b;
    --secondary-color: #f3ebde;
    --light-primary: #f9f5ee;
    --body-color: #2b2b2b;
    --dark-green: #848e7d;
    --light-green: #a6b29d;
    --dark-grey: #6a6a6a;
    --darker-grey: #42473e;
    --transition: cubic-bezier(0.76, 0, 0.24, 1);
}

body {
	background-color: var(--light-primary);
	font-family: "new-hero", sans-serif;
	font-weight: 400;
	font-size: 18px;
	color: var(--body-color);
}

body.mobile-menu-opened {
    overflow: hidden;
}

a {
	color: var(--primary-color);
	text-decoration: none;
	-webkit-transition: all 0.2s var(--transition) 0s;
	transition: all 0.2s var(--transition) 0s;
}

a:hover {
	text-decoration: none;
}

strong {
	font-weight: 700;
}

em {
	font-style: italic;
}

hr {
	border: none 0;
	border-bottom: 1px solid #E0E0E0;
	height: 1px;
	margin: 10px 0;
}

.inner {
	width: 100%;
	max-width: 1340px;
	margin: 0 auto;
    padding: 0 30px;
}

.clear {
	clear: both;
}

h1, h2, h3, h4, h5, h6 {
	font-family: "ivypresto-display", serif;
    font-weight: 300;
    line-height: 1.2;
	margin-bottom: 15px;
    color: var(--dark-grey);
    letter-spacing: 2.88px;
}

h1 {
	font-size: 52px;
}

h2 {
	font-size: 48px;
}

h3 {
	font-size: 36px;
}

h4 {
	font-size: 24px;
}

p {
	line-height: 1.4;
	margin-bottom: 20px;
    letter-spacing: 1px;
}

p:last-child {
	margin-bottom: 0;
}

img {
	max-width: 100%;
	height: auto;
}

input[type="text"], input[type="email"], input[type="tel"], textarea, select {
	width: 100%;
    height: 48px;
    padding: 8px 12px;
    border-radius: 12px;
    background-color: var(--secondary-color);
    border: 0;
}

textarea {
    height: 180px;
}

.button,
.secondary-menu ul li a,
.mobile-menu .menu-header-buttons-container li a,
input[type="submit"] {
	background-color: var(--primary-color);
    color: var(--light-primary);
    display: inline-block;
    padding: 8px 20px;
    border-radius: 100px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    position: relative;
    border: 0;
}

input[type="submit"] {
    padding: 12px 30px;
    font-weight: 500;
    font-size: 16px;
}

.button {
    padding: 10px 56px 10px 20px;
}

.button.plain-green {
    background: none;
    color: var(--dark-green);
    padding-left: 0;
    padding-right: 20px;
}

.button:after {
    width: 12px;
    height: 12px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 20px;
    background: url('images/right-arrow.png') no-repeat center / contain;
    content: "";
}

.button.light-primary:after {
    background: url('images/right-arrow-biege.png') no-repeat center / contain;
}

.button.plain-green:after {
    background: url('images/right-arrow-green.png') no-repeat center / contain;
    right: 0;
}

.secondary-menu ul li:first-child a,
.mobile-menu .menu-header-buttons-container li:first-child a,
.buttons a,
.button.light-green {
    background-color: var(--light-green);
}

.secondary-menu ul li:nth-child(2) a,
.mobile-menu .menu-header-buttons-container li:nth-child(2) a,
.buttons a:last-child {
    background-color: var(--dark-green);
}

.button.light-primary {
    background-color: var(--light-primary);
    color: var(--primary-color);
}

input[type="submit"]:hover {
	
}

.cwrap {
    display: flex;
    justify-content: space-between;
}

.valign {
    align-items: center;
}

.cols {
    flex-wrap: wrap;
    margin: 0 -16px;
    justify-content: start;
}

.col {
    flex: 1 1 50%;
    max-width: 50%;
    padding: 0 16px;
}

.col3 {
    flex: 1 1 33.33%;
    max-width: 33.33%;
    padding: 0 16px;
}

.col23 {
    flex: 1 1 66.67%;
    max-width: 66.67%;
    padding: 0 16px;
}

.col34 {
    flex: 1 1 75%;
    max-width: 75%;
    padding: 0 16px;
}

.col4 {
    flex: 1 1 25%;
    max-width: 25%;
    padding: 0 16px;
}

.col12 {
    flex: 1 1 100%;
    max-width: 100%;
    padding: 0 16px;
}

.biege-color {
    color: var(--primary-color);
}

/*--------------------------------------------------------------
# Alert Bar Styles
--------------------------------------------------------------*/

.alert-bar {
    background-color: var(--primary-color);
    padding: 10px 64px;
}

.alert-bar-content {
    position: relative;
}

.alert-close {
    width: 32px;
    height: 32px;
    top: 50%;
    transform: translateY(-50%);
    right: 0;
    background: url('images/close.png') no-repeat center / 12px;
    display: block;
    position: absolute;
    padding: 10px;
    cursor: pointer;
}

.alert-bar p {
    color: var(--light-primary);
    font-size: 14px;
}

/*--------------------------------------------------------------
# Header Styles
--------------------------------------------------------------*/

.site-header {
    background-color: var(--secondary-color);
    padding: 0 80px;
    border-bottom: 1px solid var(--primary-color);
    position: sticky;
    top: 0;
    z-index: 100;
}

.landing-page .site-header {
    padding-top: 14px;
    padding-bottom: 14px;
}

.site-branding {
    margin-right: 42px;
}

.site-branding img {
    max-width: 130px;
}

.site-menu {
    margin-right: auto;
}

.site-menu .menu,
.secondary-menu .menu {
    display: flex;
    gap: 20px;
}

.secondary-menu .menu {
    gap: 16px;
}

.site-menu ul li a {
    font-size: 14px;
    color: var(--darker-grey);
    padding: 32px 0;
    display: inline-block;
}

.mega-menu {
    display: none;
    position: absolute;
    width: 100%;
    left: 0;
    top: auto;
    background-color: var(--light-primary);
    padding: 0 80px;
    border-top: 1px solid var(--primary-color);
    border-bottom: 1px solid var(--primary-color);
    overflow: hidden;
}

.site-menu ul li:hover > .mega-menu {
    display: block;
}

.mega-menu .inner {
    max-width: none;
}

.menu-col-left {
    width: 70%;
    padding: 30px 30px 30px 0;
}

.menu-col-right {
    width: 30%;    
    padding: 30px;
    background-color: var(--dark-green);
    position: relative;
}

.menu-col-right:after {
    width: 300%;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background-color: var(--dark-green);
    content: "";
}

.menu-col-right > * {
    position: relative;
    z-index: 1;
}

.mega-menu h2 {
    font-size: 24px;
    max-width: 300px;
}

.site-menu ul li .mega-menu a {
    padding: 2px 0;
    display: block;
    line-height: 1.8;
}

.site-menu ul li .mega-menu .menu-col-left a span {
    display: inline-block;
    padding: 1px 0;
    border-bottom: 1px solid var(--light-primary);
}

.site-menu ul li .mega-menu .menu-col-left a:hover span {
    border-color: var(--darker-grey);
}

.mega-menu h4 {
    font-family: "new-hero", sans-serif;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 1px;
    color: #31352F;
}

.mega-menu .menu-col-right h4 {
    color: var(--light-primary);
}

.menu-post {
    padding: 4px 0 10px;
}

.menu-post img {
    display: block;
}

.menu-post h3 {
    color: var(--light-primary);
    font-family: "new-hero", sans-serif;
    font-weight: 600;
    line-height: 1.4;
    font-size: 16px;
    letter-spacing: 1px;
}

.menu-read-more {
    color: var(--light-primary);
    display: inline-block;
    font-size: 14px;
}

.menu-read-more span {
    display: inline-block;
    padding: 1px 0;
    border-bottom: 1px solid var(--dark-green);
}

.menu-read-more:hover span {
    border-color: var(--light-primary);
}

.site-menu ul li .menu-blog-link a,
.mobile-menu .menu-blog-link a {
    position: relative;
    padding-right: 24px;
    color: var(--light-primary);
    display: inline-block;
    font-size: 16px;
}

.mobile-menu .menu-blog-link a {
    color: var(--dark-green);
    font-size: 18px;
    padding: 10px 24px 10px 0;
}

.site-menu ul li .menu-blog-link a:after,
.mobile-menu .menu-blog-link a:after {
    width: 12px;
    height: 12px;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    content: "";
    background: url('images/right-arrow.png') no-repeat center / contain;
}

.mobile-menu .menu-blog-link a:after {
    background: url('images/right-arrow-green.png') no-repeat center / contain;
}

/*--------------------------------------------------------------
# Mobile Menu Styles
--------------------------------------------------------------*/

.mobile-slide {
	position: relative;
	height: 18px;
	display: none;
	background-color: var(--primary-color);
    width: 36px;
    height: 36px;
    border-radius: 50%;
	cursor: pointer;
}

.landing-page .mobile-slide {
    display: none;
}

.mobile-slide span {
	background-color: #fff;
	display: block;
	height: 2px;
	position: relative;
	transition: background .2s ease-out;
	width: 16px;
    margin: 0 auto;
	top: 16px;
	transition: all .3s ease-out;
}

.mobile-slide span::before,
.mobile-slide span::after {
	background: #fff;
	content: '';
	display: block;
	height: 100%;
	position: absolute;
	transition: all .2s ease-out;
	width: 100%;
}

.mobile-slide span::before {
	top: 6px;
}

.mobile-slide span::after {
	top: -6px;
}

.mobile-menu-opened .mobile-slide span {
    background: transparent;
}

.mobile-menu-opened .mobile-slide span:before,
.mobile-menu-opened .mobile-slide span:after {
	top: 0;
}

.mobile-menu-opened .mobile-slide span:before {
	transform: rotate(-45deg);
}

.mobile-menu-opened .mobile-slide span:after {
	transform: rotate(45deg);
}

.mobile-menu {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--secondary-color);
    transform: translateX(110%);
    transition: transform 0.3s ease;
    z-index: 90;
    padding-top: 94px;
}

.no-alert-bar .mobile-menu {
    padding-top: 64px;
}

.mobile-menu-opened .mobile-menu {
    transform: translateX(0);
}

.mobile-menu-inner {
    padding: 20px 20px 30px;
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.mobile-menu-main-wrapper {
    position: relative;
    height: 100%;
    padding-bottom: 30px;
}

.mobile-menu-main-menu {
    padding-right: 30px;
    border-right: 1px solid var(--primary-color);
}

.mobile-menu .menu-main-menu-container li a {
    display: block;
    font-size: 18px;
    padding: 10px 30px 10px 0;
    position: relative;
    white-space: nowrap;
}

.mobile-menu .menu-main-menu-container li.active a {
    color: var(--dark-grey);
}

.mobile-menu .menu-main-menu-container li.has-mega-menu a:after {
    width: 10px;
    height: 10px;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    content: "";
    background: url('images/right-arrow-biege.png') no-repeat center / contain;
}

.mobile-menu .menu-main-menu-container li.has-mega-menu.active a:after {
    background: url('images/right-arrow-green.png') no-repeat center / contain;
}

.mobile-menu-main-content {
    flex-grow: 1;
    padding-left: 30px;
}

.mobile-menu .menu-header-buttons-container {
    margin-top: auto;
}

.mobile-menu .menu-header-buttons-container ul {
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.mobile-menu .menu-header-buttons-container ul li {
    flex-grow: 1;
}

.mobile-menu .menu-header-buttons-container ul li a {
    display: block;
    padding-top: 12px;
    padding-bottom: 12px;
}

.mobile-menu .menu-wrap {
    display: block;
    margin: 0;
}

.mobile-menu .menu-col-right {
    background: none;
    padding: 0;
}

.mobile-menu .menu-col-right:after {
    display: none;
}

.mobile-menu .menu-col-left,
.mobile-menu .menu-col-right {
	width: 100%;
}

.mobile-menu .menu-col-left {
    padding-top: 0;
}

.mobile-menu .menu-col-left a {
    display: block;
    font-size: 15px;
    line-height: 1.5;
    padding: 6px 0;
}

.mobile-menu .menu-col-left h4 {
    margin-bottom: 2px;
}

.mobile-menu .menu-col-left h4 a {
    font-size: 24px;
}

.mobile-menu .menu-post h3,
.mobile-menu .menu-read-more {
    color: var(--primary-color);
}

.mobile-menu .menu-post h3 {
    font-size: 20px;
}

.mobile-menu .menu-read-more {
    text-decoration: underline;
}

.mobile-menu .menu-post .cwrap {
    align-items: center;
}

.mobile-menu .menu-col-right {
    border-top: 1px solid var(--primary-color);
    padding-top: 30px;
}

.menu-back {
    position: absolute;
    width: 36px;
    height: 36px;
    top: 5px;
    right: 0;
    background-color: var(--primary-color);
    border-radius: 50%;
    padding-top: 12px;
    display: none;
}

.menu-back span {
    width: 10px;
    height: 10px;
    display: block;
    background: url('images/close.png') no-repeat center / contain;
    margin: 0 auto;
}

/*--------------------------------------------------------------
# Content Styles
--------------------------------------------------------------*/

.section {
    padding: 80px 0;
}

.section h1,
.section h2 {
    margin-bottom: 32px;
}

.home-banner {
    background-color: var(--secondary-color);
}

.home-banner.above-the-fold {
    height: calc(100vh - 120px);
    display: flex;
    flex-direction: column;
}

.home-banner-image {
    height: calc(100vh - 120px);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.home-banner-video {
    height: calc(100vh - 120px);
}

.no-alert-bar .home-banner-video {
    height: calc(100vh - 78px);
}

.above-the-fold .home-banner-image,
.above-the-fold .home-banner-video {
    height: auto;
    flex-grow: 1;
}

.home-video {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.home-video video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.above-the-fold .home-banner-content {
    margin-top: auto;
}

.home-scroll {
    position: absolute;
    bottom: 30px;
    left: 0;
    right: 0;
    max-width: 120px;
    margin: 0 auto;
    display: block;
}

.home-scroll a {
    display: block;
}

.above-the-fold .home-scroll {
    display: none;
}

@keyframes rotate360 {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.home-scroll img {
    animation: rotate360 40s linear infinite;
}

.buttons,
.cta-buttons {
    display: flex;
    gap: 16px;
    padding-top: 12px;
}

.cta-buttons {
    padding-top: 0;
}

.image-text-key-points > .inner > .cwrap > .col:first-child,
.cta-with-image .col:first-child,
.reviews .col:first-child {
    padding-right: 140px;
}

.key-points {
    padding: 12px 0 40px;
}

.key-points span {
    font-family: "ivypresto-display", serif;
    color: var(--light-green);
    font-size: 52px;
    line-height: 1.2;
    letter-spacing: 3.12px;
    font-weight: 300;
}

.alternative-hero .key-points span {
    color: var(--primary-color);
}

.key-points p {
    font-size: 16px;
}

.thumbnail-first {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.image-text-thumbnail,
.cta {
    background-color: var(--secondary-color);
}

.image-text-thumbnail .main-image,
.image-bullet-points .main-image,
.packages-bottom .main-image,
.alternative-hero .main-image {
    max-width: 424px;
    margin: 0 auto;
}

.image-text-thumbnail .col:last-child {
    padding-top: 60px;
}

.thumbnail-first .image-with-text-content {
    order: 2;
}

.image-text-thumbnail .button,
.image-with-text .button,
.home-banner-content .button {
    margin-top: 20px;
}

.cta p {
    margin-bottom: 40px;
}

.thumb-image {
    padding-top: 80px;
}

.thumb-image img {
    max-width: 320px;
}

.thumbnail-first .thumb-image {
    order: 1;
    padding-top: 0;
    padding-bottom: 80px;
}

.image-left .col:last-child,
.image-right .col:last-child {
    order: 1;
}

.image-text-key-points > .inner > .cwrap.image-left > .col:first-child {
    order: 2;
    padding-right: 16px;
    padding-left: 140px;
}

.image-right .col:first-child {
    order: 2;
}

.image-right .thumbnail-first {
    align-items: end;
}

.cream-bg,
.alternative-hero.cream-bg {
    background-color: var(--light-primary);
}

.biege-bg,
.alternative-hero {
    background-color: var(--secondary-color);
}

.main-image span,
.thumb-image span,
.main-slider .slides span,
.carousel .carousel-slides span {
    display: block;
    font-size: 14px;
    padding-top: 22px;
    line-height: 1.4;
}

.main-image img,
.thumb-image img,
.main-slider .slides img {
    border-radius: 8px;
}

.slider-heading {
    padding-bottom: 80px;
}

.slider-meta {
    padding-top: 32px;
}

.slider-arrows {
    gap: 16px;
}

.slider-arrows a {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: url('images/slide-arrow.png') no-repeat center / 24px var(--light-green);
    display: block;
}

.slider-arrows a.slide-prev {
    transform: rotate(-180deg);
}

.cta-with-image p,
.cta-with-bg p {
    margin-bottom: 40px;
}

.cta-with-bg {
    background-color: var(--primary-color);
    color: var(--light-primary);
}

.cta-with-bg p a {
    color: var(--light-primary);
    border-bottom: 1px solid var(--light-primary);
    display: inline-block;
}

.cta-with-bg h2 {
    color: var(--light-primary);
}

.reviews {
    background-color: var(--secondary-color);
}

.review-slides {
    position: relative;
    z-index: 2;
}

.reviews .slick-track {
    display: flex;
}

.reviews .slick-list {
    margin: 0 -12px;
}

.reviews .slick-slide {
    height: inherit;
    padding: 0 12px;
}

.review-card {
    background-color: var(--light-primary);
    border-radius: 8px;
    padding: 32px;
    max-width: 420px;
    position: relative;
    height: 100%;
}

.review-icon img {
    max-width: 80px;
}

.review-content {
    padding: 48px 0 24px;
}

.review-meta p {
    font-weight: 600;
    font-size: 16px;
    margin-bottom: 10px;
}

.review-meta span {
    font-size: 16px;
    color: #222;
}

.reviews .slider-arrows {
    justify-content: end;
    padding-top: 48px;
}

.timeline-nav {
    padding: 64px 0;
    position: relative;
}

.timeline-nav:before {
    width: 100%;
    height: 2px;
    background-color: var(--dark-grey);
    position: absolute;
    top: 132px;
    left: 0;
    content: "";
}

.timeline-nav a {
    font-size: 14px;
    color: var(--dark-grey);
    font-weight: 600;
    text-align: center;
    position: relative;
    padding-bottom: 40px;
}

.timeline-nav a span {
    font-size: 20px;
    font-weight: 400;
    display: block;
    font-family: "ivypresto-display", serif;
    padding-top: 10px;
}

.timeline-nav a:before {
    width: 16px;
    height: 16px;
    background-color: var(--dark-grey);
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: block;
    margin: 0 auto;
    content: "";
    border-radius: 50%;
    border: 8px solid var(--light-primary);
}

.timeline-nav a.active-tab {
    color: var(--primary-color);
}

.timeline-tab {
    display: none;
}

.timeline-tab:first-child {
    display: block;
}

.timeline-tab .cwrap {
    margin: 0 -40px;
}

.timeline-tab .col {
    padding: 0 40px;
}

.timeline-tab .col:first-child {
    padding-right: 80px;
}

.timeline-tab p {
    padding: 8px 0 20px;
}

.timeline-tab img {
    border-radius: 8px;
}

.bullet-points {
    margin-bottom: 40px;
}

.bullet-points p,
.package-block p:not(.package-header) {
    position: relative;
    margin-bottom: 0;
    padding: 10px 0 10px 36px;
}

.bullet-points p:before,
.package-block p:not(.package-header):before {
    width: 24px;
    height: 24px;
    background: url('images/bullet.png') no-repeat center / contain;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    content: "";
}

.cta-green-background {
    background-color: var(--dark-green);
    text-align: center;
}

.cta-green-background img:first-child {
    max-width: 40px;
}

.cta-green-background h3 {
    font-size: 30px;
    max-width: 768px;
    color: #fff;
    margin: 0 auto;
    padding: 44px 0;
}

.carousel .slider-heading {
    max-width: 66%;
}

.carousel .slick-list,
.awards .slick-list {
    margin: 0 -16px;
}

.carousel .slick-slide,
.awards .slick-slide {
    padding: 0 16px;
}

.carousel-slide img {
    width: 100%;
    border-radius: 8px;
}

.carousel-meta {
    padding-top: 32px;
}

.image-with-text .col:last-child {
    padding-left: 140px;
}

.image-with-text.image-with-text-right .col:last-child {
    padding-left: 0;
}

.image-with-text.image-with-text-right .col:first-child {
    padding-right: 140px;
}

.packages-top {
    padding-bottom: 80px;
}

.packages-top .col:first-child {
    padding-right: 140px;
}

.package-price {
    font-family: "ivypresto-display", serif;
    color: var(--primary-color);
    font-size: 30px;
    line-height: 1.2;
    margin-bottom: 32px;
}

.packages-top h3 {
    font-size: 24px;
    color: var(--body-color);
    margin-bottom: 22px;
}

.packages .thumb-image {
    padding-top: 0;
}

.package-block {
    margin-bottom: 32px;
}

.package-block:last-child {
    margin-bottom: 0;
}

.package-header {
    margin-bottom: 16px;
}

.text-with-heading h2 {
    margin-bottom: 0;
    color: var(--primary-color);
}

.carousel-heading {
    padding-bottom: 80px;
}

.carousel-with-content .slick-list,
.menu-slider .slick-list {
    margin: 0 -24px;
}

.carousel-with-content .slick-slide,
.menu-slider .slick-slide {
    padding: 0 24px;
}

.carousel-sub-heading {
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-color);
    padding-top: 32px;
}

.carousel-with-content h3 {
    font-size: 24px;
    margin-bottom: 0;
    padding: 22px 0;
}

.carousel-with-content h3 a {
    color: var(--body-color);
}

.carousel-details p {
    font-size: 16px;
}

.carousel-with-content .carousel-meta {
    padding-top: 80px;
}

.faq-block h2 {
    color: var(--primary-color);
}

.faq-question {
    font-weight: 600;
    position: relative;
    border-top: 1px solid var(--primary-color);
    padding: 20px 0;
    cursor: pointer;
    margin-bottom: 0;
}

.faq-question:after {
    background: url('images/arrow_up.png') no-repeat center / contain;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    content: "";
}

.faq-question.faq-open:after {
    transform: translateY(-50%) rotate(-180deg);
}

.faq-answer {
    display: none;
    padding-bottom: 24px;
}

.faq:last-child {
    border-bottom: 1px solid var(--primary-color);
}

.grid-content .carousel-heading {
    padding-bottom: 48px;
}

.grid-contents .col3 {
    padding-top: 32px;
    padding-bottom: 32px;
}

.grid-content-image img {
    width: 100%;
    border-radius: 8px;
}

.grid-content-details h3 {
    font-size: 30px;
    margin-bottom: 0;
    padding: 32px 0 22px;
}

.grid-content-details p {
    margin-bottom: 32px;
}

.menu-wrapper {
    background-color: var(--light-primary);
    border-radius: 8px;
    overflow: hidden;
    position: relative;
}

.menu-links a {
    position: absolute;
    width: 56px;
    height: 100%;
    top: 0;
    left: 0;
    text-align: center;
    background-color: var(--light-primary);
    z-index: 10;
}

.menu-1-active .menu-links a:nth-child(2) {
    left: auto;
    right: 112px;
    border-left: 1px solid var(--primary-color);
}

.menu-2-active .menu-links a:nth-child(2),
.menu-3-active .menu-links a:nth-child(2),
.menu-4-active .menu-links a:nth-child(2) {
    left: 56px;
    right: auto;
    border-left: 1px solid var(--primary-color);
}

.menu-1-active .menu-links a:nth-child(3),
.menu-2-active .menu-links a:nth-child(3) {
    left: auto;
    right: 56px;
    border-left: 1px solid var(--primary-color);
}

.menu-3-active .menu-links a:nth-child(3),
.menu-4-active .menu-links a:nth-child(3) {
    left: 112px;
    right: auto;
    border-left: 1px solid var(--primary-color);
}

.menu-1-active .menu-links a:nth-child(4),
.menu-2-active .menu-links a:nth-child(4),
.menu-3-active .menu-links a:nth-child(4) {
    left: auto;
    right: 0;
    border-left: 1px solid var(--primary-color);
}

.menu-4-active .menu-links a:nth-child(4) {
    left: 168px;
    right: auto;
    border-left: 1px solid var(--primary-color);
}

.menu-links a span {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-90deg);
    transform-origin: center;
    white-space: nowrap;
    font-family: "ivypresto-display", serif;
    font-weight: 300;
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 1.44px;
}

.menu-block {
    display: none;
}

#menu-1 {
    display: block;
}

.menu-inner {
    padding: 64px 80px;
}

.menu-2-active .menu-inner {
    padding-left: 140px;
}

.menu-3-active .menu-inner {
    padding-left: 200px;
}

.menu-4-active .menu-inner {
    padding-left: 260px;
    padding-right: 60px;
}

.menu-heading {
    max-width: 580px;
    margin-bottom: 48px;
}

.menu-heading h2 {
    margin-bottom: 24px;
    color: var(--primary-color);
}

.menu-heading p,
.menu-details p {
    font-size: 16px;
}

.menu-image {
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 32px;
}

.menu-details h3 {
    font-size: 24px;
    color: var(--primary-color);
    margin-bottom: 16px;
}

.menu-price {
    font-weight: 600;
}

.menu-meta {
    justify-content: end;
}

.menu-1-active .menu-meta {
    padding-right: 112px;
}

.menu-2-active .menu-meta {
    padding-right: 56px;
}

.awards .menu-heading {
    max-width: 640px;
}

.events {
    background-color: var(--dark-green);
}

.event-list.cols {
    margin: 0 -40px;
}

.event-list .col {
    padding: 0 40px;
}

.event-heading {
    padding-bottom: 48px;
}

.event-card {
    padding: 20px 0 20px 80px;
    position: relative;
    border-bottom: 1px solid #fff;
}

.event-list .col:first-child .event-card,
.event-list .col:nth-child(2) .event-card {
    border-top: 1px solid #fff;
}

.event-card:before {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    width: 60px;
    height: 60px;
    background: url('images/event-icon.png') no-repeat center / contain;
    content: "";
}

.event-heading h2,
.event-card h3,
.event-card p {
    color: #fff;
}

.event-card h3 {
    font-size: 30px;
}

.event-card p {
    font-size: 16px;
}

.journal-header {
    max-width: 66.66%;
    padding-bottom: 80px;
}

.post-type-archive-supplier .journal-header {
    padding-bottom: 0;
}

.post-type-archive-supplier .journal-featured {
    padding-top: 80px;
}

.archive:not(.post-type-archive-supplier) .journal-header {
    padding-bottom: 40px;
}

.archive:not(.post-type-archive-supplier) .journal-teaser {
    padding-bottom: 0;
}

.archive:not(.post-type-archive-supplier) .journal-content {
    padding-top: 0;
}

.journal-featured .col {
    position: relative;
}

.journal-featured .col:first-child {
    height: 480px;
}

.journal-featured .col:last-child {
    padding: 48px;
    display: flex;
    flex-direction: column;
}

.journal-filters {
    padding-bottom: 32px;
}

.journal-filters a {
    color: var(--body-color);
    font-size: 16px;
    display: inline-block;
    padding: 10px 24px;
    border-radius: 100px;
}

.journal-filters a.active-filter {
    background-color: var(--primary-color);
    color: #fff;
    font-weight: 500;
}

.journal-card {
    background-color: var(--light-primary);
    border-radius: 8px;
    overflow: hidden;
    border-bottom: 4px solid var(--primary-color);
}

.featured-img,
.journal-img,
.post-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.featured-img a,
.journal-img a {
    display: block;
    height: 100%;
    position: relative;
}

.journal-img {
    position: relative;
    height: 260px;
}

.journal-content .col3 {
    padding-top: 32px;
    padding-bottom: 32px;
}

.journal-details {
    padding: 24px;
    display: flex;
    flex-direction: column;
    height: calc(100% - 260px);
}

.journal-cats {
    padding-bottom: 22px;
}

.carousel-details .journal-cats {
    padding-bottom: 0;
    padding-top: 22px;
}

.journal-cats a {
    font-size: 14px;
    font-weight: 600;
}

.journal-card h2 {
    font-size: 30px;
}

.journal-card h2 a {
    color: var(--dark-grey);
}

.journal-content .journal-card h2 {
    font-size: 24px;
    margin-bottom: 22px;
}

.journal-excerpts {
    margin-bottom: 30px;
}

.journal-excerpts p {
    font-size: 16px;
}

.author-title {
    padding-bottom: 8px;
}

.author-title p {
    font-weight: 300;
    font-size: 13px;
}

.journal-author {
    justify-content: start;
    gap: 16px;
}

.journal-author,
.visit-website {
    margin-top: auto;
}

.journal-content .journal-card,
.post-related .journal-card {
    position: relative;
    height: 100%;
}

.journal-content .journal-author {
    padding-top: 24px;
}

.journal-author img {
    max-width: 48px;
    border-radius: 50%;
}

.author-name {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 2px;
}

.journal-date {
    font-size: 14px;
}

.load-more {
    padding-top: 20px;
    position: relative;
}

.load-more .button {
    padding: 14px 20px;
    max-width: 160px;
    text-align: center;
    display: block;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.loading .button {
    opacity: 0;
}

.load-more .button:after {
    display: none;
}

.loader {
    width: 48px;
    height: 48px;
    border: 5px dotted var(--primary-color);
    border-radius: 50%;
    display: block;
    position: absolute;
    box-sizing: border-box;
    animation: rotation 3s linear infinite;
    margin: 0 auto;
    top: 20px;
    left: 0;
    right: 0;
    opacity: 0;
}

.loading .loader,
.popup-viewer .loader {
    opacity: 1;
}

.popup-viewer .loader {
    border-color: var(--secondary-color);
    top: 45%;
    transform: translateY(-50%);
}

.popup-viewer iframe {
    position: relative;
    z-index: 2;
}

@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.post-content {
    padding-top: 0;
}

.post-image {
    position: relative;
    height: 450px;
}

.post-header h1 {
    font-size: 48px;
    margin-bottom: 0;
}

.post-header .journal-date {
    margin: 0;
    padding: 32px 0;
}

.back-to-posts {
    position: relative;
    padding-left: 20px;
    margin-top: 30px;
    font-size: 14px;
    font-weight: 700;
    display: inline-block;
}

.back-to-posts:before {
    width: 18px;
    height: 18px;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    content: "";
    background: url('images/arrow-left.png') no-repeat center / contain;
}

.post-content .col3 h4 {
    font-family: "new-hero", sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: var(--body-color);
    letter-spacing: 1px;
    margin-bottom: 22px;
}

.post-cta {
    margin: 48px 0;
    padding: 48px 0;
    border-top: 1px solid var(--primary-color);
    border-bottom: 1px solid var(--primary-color);
}

.post-cta .secondary-menu .menu {
    flex-direction: column;
}

.share-buttons a {
    width: 32px;
    height: 32px;
    background-color: var(--primary-color);
    border-radius: 50%;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-right: 5px;
}

.share-buttons a img {
    max-width: 18px;
}

.post-article h2 {
    color: var(--primary-color);
}

.post-article ul,
.post-article ol {
    padding: 0 0 25px 25px;
}

.post-article ul li,
.post-article ol li {
    list-style: disc outside none;
    line-height: 1.5;
    margin-bottom: 8px;
}

.post-article ol li {
    list-style-type: decimal;
}

.post-article ul li:last-child,
.post-article ol li:last-child {
    margin-bottom: 0;
}

blockquote {
    position: relative;
    padding-left: 20px;
    margin-bottom: 25px;
}

blockquote p {
    color: var(--primary-color);
}

blockquote:before {
    width: 1px;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: var(--primary-color);
    content: "";
}

.post-sidebar {
    position: sticky;
    top: 110px;
}

.post-related {
    background-color: var(--secondary-color);
}

.releated-header {
    padding-bottom: 80px;
}

.releated-header h2 {
    margin-bottom: 10px;
}

.legal-content .inner {
    max-width: 768px;
}

.page-id-33 .legal-content .inner {
    max-width: 900px;
}

.legal-content h1,
.legal-content h2,
.legal-content h3,
.legal-content h4,
.legal-content h5,
.legal-content h6 {
    color: var(--body-color);
    margin-bottom: 20px;
}

.page-id-33 .legal-content h1 {
    color: var(--dark-grey);
}

.legal-content p {
    margin-bottom: 30px;
    font-size: 16px;
}

.wpcf7-form-control.wpcf7-radio {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -25px;
}

.wpcf7-form-control.wpcf7-radio > span {
    flex: 1 1 50%;
    max-width: 50%;
    padding: 5px 25px;
    margin: 0;
}

.wpcf7-list-item-label {
    font-size: 15px;
}

.wpcf7 {
    padding-top: 20px;
}

.contact-form .wpcf7 {
    padding-top: 0;
}

.wpcf7 label {
    display: block;
    margin-bottom: 7px;
}

.wpcf7 .wpcf7-form-control-wrap label {
    margin-bottom: 0;
}

.wpcf7 br {
    display: none;
}

.thank-you-block {
    background-color: var(--secondary-color);
    padding: 160px 0;
}

.thank-you-block .inner {
    max-width: 960px;
}

.next-steps {
    padding-top: 30px;
}

.thank-you-block .buttons {
    justify-content: center;
}

.thank-you-block .buttons a:first-child {
    background-color: var(--primary-color);
}

.thank-you-block .buttons a:nth-child(2) {
    background-color: var(--light-green);
}

.page-404 {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    padding: 12% 0;
    position: relative;
}

.page-404:before {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: linear-gradient(0deg, rgba(66, 71, 62, 0.80) 0%, rgba(66, 71, 62, 0.80) 100%);
    content: "";
}

.page-404 .inner {
    position: relative;
    z-index: 10;
    max-width: 768px;
    text-align: center;
}

.page-404 h1,
.page-404 p {
    color: var(--secondary-color);
}

.page-404 p {
    padding: 24px 0;
}

.buttons-404 {
    display: flex;
    gap: 30px;
    justify-content: center;
}

.buttons-404 .button:nth-child(2) {
    background-color: var(--dark-green);
}

.buttons-404 .button:nth-child(3) {
    background-color: var(--light-green);
}

.meet-the-team h3 {
    font-family: "new-hero", sans-serif;
    font-weight: 600;
    font-size: 20px;
    letter-spacing: 1px;
    color: var(--body-color);
    padding-bottom: 10px;
}

.meet-the-team .carousel-sub-heading {
    padding-top: 0;
    font-size: 16px;
    color: var(--body-color);
    font-weight: 400;
}

.meet-the-team.carousel-with-content .carousel-meta {
    padding-top: 40px;
}

.contact-header {
    padding-bottom: 80px;
}

.contact-details .cwrap {
    padding-bottom: 32px;
}

.contact-content > .cwrap > .col:first-child {
    padding-right: 8%;
}

.contact-details img {
    max-width: 32px;
}

.contact-details h4 {
    padding: 16px 0 12px;
    margin-bottom: 0;
}

.contact-details p {
    font-size: 16px;
}

.contact-details a {
    color: var(--body-color);
}

.contact-details .get-directions a {
    color: var(--primary-color);
    position: relative;
    padding-right: 28px;
    font-weight: 600;
}

.get-directions a:before {
    width: 24px;
    height: 24px;
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(180deg);
    position: absolute;
    content: "";
    background: url('images/arrow-left.png') no-repeat center / contain;
}

.contact-map iframe {
    width: 100%;
    height: 380px;
}

.contact-form p {
    margin-bottom: 24px;
}

.contact-form p label {
    display: block;
    font-size: 16px;
    margin-bottom: 6px;
}

.contact-form p br {
    display: none;
}

.contact-form p .wpcf7-acceptance label {
    display: flex;
    align-items: start;
    gap: 12px;
}

.contact-form p .wpcf7-acceptance label input {
    position: relative;
    top: 2px;
}

.contact-form p .wpcf7-acceptance label span {
    font-size: 14px;
}

.wpcf7-acceptance .wpcf7-list-item {
    margin-left: 0;
}

.wpcf7-not-valid-tip {
    display: block;
    font-size: 13px;
    padding-top: 10px;
}

.contact-teaser {
    background-color: var(--secondary-color);
}

.contact-teaser .cols {
    margin: 0 -80px;
}

.contact-teaser .col {
    padding: 0 80px;
    position: relative;
}

.contact-teaser .col:first-child:after {
    width: 1px;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    background-color: var(--primary-color);
    content: "";
}

.contact-teaser h3 {
    margin-bottom: 32px;
}

.contact-cta {
    background-color: var(--primary-color);
    color: var(--light-primary);
}

.contact-cta-content .cwrap {
    position: relative;
    padding-top: 32px;
    padding-bottom: 32px;
}

.contact-cta-content .cwrap:after {
    width: calc(100% - 16px);
    height: 1px;
    position: absolute;
    bottom: 0;
    right: 0;
    background-color: var(--light-primary);
    content: "";
}

.contact-cta-content .cta-block:first-child .cwrap:before {
    width: calc(100% - 16px);
    height: 1px;
    position: absolute;
    top: 0;
    right: 0;
    background-color: var(--light-primary);
    content: "";
}

.contact-cta h2,
.contact-cta h4 {
    color: var(--light-primary);
}

.contact-cta-content p {
    font-size: 16px;
}

.contact-cta-content p a {
    color: var(--light-primary);
    border-bottom: 1px solid var(--light-primary);
}

.breadcrumbs {
    padding-bottom: 44px;
}

.breadcrumbs .inner {
    padding: 0;
}

.breadcrumbs span > span {
    font-size: 14px;
    color: var(--primary-color);
    position: relative;
    padding-right: 20px;
    margin-right: 10px;
}

.breadcrumbs span > span:after {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    right: 0;
    background: url('images/right-arrow-biege.png') no-repeat center / contain;
    content: "";
}

.breadcrumbs span > span.breadcrumb_last {
    font-weight: 600;
}

.breadcrumbs span > span.breadcrumb_last:after {
    display: none;
}

.grecaptcha-badge {
	display: none !important;
}

/*--------------------------------------------------------------
# Opening Popup Styles
--------------------------------------------------------------*/

.opening-popup {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(243, 235, 222, 0.75);
    z-index: 100;
    display: none;
}

.opening-popup-container {
    max-width: 800px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--primary-color);
    border-radius: 8px;
    width: 90%;
    overflow: hidden;
}

.popup-inner {
    position: relative;
    height: 100%;
}

.popup-close {
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 14px;
    font-weight: 600;
    color: var(--secondary-color);
    z-index: 1;
}

.opening-popup .cols {
    margin: 0;
    position: relative;
    height: 400px;
}

.opening-popup .col:first-child {
    padding-left: 0;
    position: relative;
    height: 100%;
    flex-grow: 1;
}

.popup-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.opening-popup .col:last-child {
    padding-right: 0;
}

.popup-content {
    padding: 40px 30px;
    color: var(--secondary-color);
}

.popup-content h2 {
    font-size: 30px;
    font-weight: 400;
    color: var(--secondary-color);
}

.popup-content span {
    font-weight: 600;
    font-size: 16px;
    display: block;
    padding: 20px 0;
}

.popup-content p {
    font-size: 16px;
}

.wpcf7 form .wpcf7-response-output {
    padding: 10px 20px;
    margin: 20px 0;
    border-radius: 30px;
}

.booking-heading {
    text-align: center;
}

.booking-heading h2 {
    margin-bottom: 24px;
}

.site-content .section ul,
.site-content .section ol {
    padding: 0 0 20px 25px;
}

.site-content .section .no-styling ul,
.site-content .section .no-styling ol {
    padding: 0;
}

.site-content .section ul li,
.site-content .section ol li {
    list-style: disc outside none;
    line-height: 1.5;
    margin-bottom: 10px;
}

.site-content .section .no-styling ul li,
.site-content .section .no-styling ol li {
    list-style: none;
    margin-bottom: 0;
}

.site-content .section ol li {
    list-style: decimal;
}

.popup-viewer {
    background-color: rgba(43, 43, 43, 0.95);
}

.popup-viewer .opening-popup-container {
    max-width: 1000px;
}

.fullscreen-preview .popup-viewer .opening-popup-container {
    width: 100%;
    max-width: none;
    height: 100vh;
    border-radius: 0;
}

.popup-options {
    position: absolute;
    top: 0;
    right: 0;
    background-color: var(--darker-grey);
    padding: 8px;
    z-index: 3;
    border-radius: 0 4px 0 0;
}

.popup-options a {
    display: inline-block;
    margin: 0 8px;
}

.popup-options img {
    max-width: 28px;
}

.popup-viewer iframe {
    width: 100%;
    display: block;
    aspect-ratio: 1/0.8;
}

.legal-content-alt {
	background-color: var(--dark-green);
	color: var(--light-primary);
}

.legal-content-alt h1 {
	color: var(--light-primary);
}

/*--------------------------------------------------------------
# Footer Styles
--------------------------------------------------------------*/

.site-footer {
    background-color: var(--darker-grey);
    color: var(--light-primary);
    padding: 64px 0;
}

.footer-logo img {
    max-width: 127px;
}

.footer-menu h4 {
    color: var(--light-primary);
    font-size: 14px;
    font-weight: 600;
    font-family: "new-hero", sans-serif;
}

.footer-menu li {
    margin-bottom: 8px;
}

.footer-menu a {
    color: var(--light-primary);
    font-size: 14px;
}

.footer-bottom {
    border-top: 1px solid var(--light-primary);
    padding-top: 32px;
    margin-top: 32px;
}

.footer-bottom p {
    color: var(--light-primary);
    font-size: 14px;
    margin-bottom: 0;
}

.footer-social {
    gap: 8px;
}

.footer-social img {
    max-width: 24px;
}

.landing-footer .footer-logo {
    text-align: center;
    padding-bottom: 80px;
}

.landing-footer .footer-menu ul {
    display: flex;
    justify-content: center;
    gap: 30px;
}

.landing-footer .footer-bottom {
    text-align: center;
    display: block;
}

.csaas-widget {
	z-index: 80 !important;
	right: 10px !important;
}

/*--------------------------------------------------------------
# Responsive Styles
--------------------------------------------------------------*/

@media screen and (max-width : 1600px) {
    .alert-bar {
        padding: 8px 30px;
    }

    .site-header,
    .mega-menu {
        padding: 0 30px;
    }

    .home-banner-video {
	    height: calc(100vh - 100px);
    }

    .home-scroll a {
        max-width: 100px;
    }

    .section {
	    padding: 60px 0;
    }

    p {
        line-height: 1.6;
    }

    .slider-heading {
	    padding-bottom: 60px;
    }

    .slider-arrows a {
        width: 42px;
        height: 42px;
        background-size: 20px;
    }

    .review-icon img {
	    max-width: 60px;
    }

    .review-content {
	    padding: 32px 0 16px;
    }

    .image-text-key-points > .inner > .cwrap.image-left > .col:first-child,
    .image-with-text .col:last-child {
        padding-left: 80px;
    }

    .site-footer {
        padding: 40px 0 30px;
    }

    .home-banner-content {
        padding: 30px 0;
    }

    h1,
    .key-points span,
    .post-header h1 {
	    font-size: 42px;
    }

    h2 {
	    font-size: 38px;
    }

    body {
        font-size: 16px;
    }

    .menu-post h3,
    .site-menu ul li .menu-blog-link a,
    .key-points p {
        font-size: 14px;
    }

    .alert-bar p,
    .site-menu ul li a,
    .menu-read-more,
    .footer-menu a,
    .main-image span, .thumb-image span, .main-slider .slides span, .carousel .carousel-slides span,
    .button, .secondary-menu ul li a, input[type="submit"] {
        font-size: 13px;
    }

    .footer-bottom p {
        font-size: 12px;
    }
}

@media screen and (max-width : 1220px) {
    .alert-bar {
	    padding: 6px 20px;
        position: relative;
        z-index: 100;
    }

    .alert-bar p {
        padding-right: 40px;
        line-height: 1.4;
    }

    .site-header {
        padding: 10px 20px;
    }

    .header {
        gap: 20px;
    }

    .landing-page .header {
        justify-content: center;
    }

    .landing-page .site-branding {
	    margin-right: 0;
    }

    .secondary-menu {
        margin-left: auto;
    }

    .secondary-menu .menu {
        gap: 10px;
    }

    .site-menu {
        display: none;
    }

    .mobile-slide {
		display: block;
	}    

    .section {
	    padding: 40px 0;
    }

    .home-banner-video {
        height: 300px;
    }

    .no-alert-bar .home-banner-video {
	    height: calc(100vh - 65px);
    }

    .tablet-full .col,
    .post-header .col3,
    .post-header .col23,
    .text-with-heading .col {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .tablet-full .key-points .col,
    .related-posts .col3 {
        flex: 1 1 50%;
        max-width: 50%;
    }

    .tablet-full .col:first-child,
    .post-header .col3,
    .text-with-heading .col:first-child {
        padding-bottom: 30px;
    }

    .post-header .journal-date {
        padding: 20px 0;
    }

    .tablet-full .key-points .col:first-child {
        padding-bottom: 0;
    }

    .section h1, .section h2 {
	    margin-bottom: 0;
    }

    .booking-heading {
        padding-bottom: 20px;
    }

    .booking-heading h2 {
        margin-bottom: 12px;
    }

    .image-text-key-points h2,
    .main-slider h2,
    .cta-with-image h2,
    .cta-with-image p, .cta-with-bg p,
    .reviews h2,
    .alternative-hero h1,
    .image-text-thumbnail h2,
    .timeline h2,
    .image-bullet-points h2,
    .carousel h2,
    .image-with-text h2,
    .packages h2,
    .faq-block h2,
    .awards h2,
    .carousel-heading h2,
    .journal-header h1,
    .journal-featured h2,
    .related-posts h2,
    .related-content h2,
    .contact-header h2 {
        margin-bottom: 20px;
    }

    .journal-featured .col:last-child {
        padding: 30px;
    }

    .alternative-hero .key-points span {
        margin-bottom: 5px;
        display: block;
    }

    .key-points {
	    padding: 10px 0 20px;
    }

    .image-text-thumbnail .col:last-child {
	    padding-top: 0;
    }

    .thumb-image {
	    padding-top: 30px;
    }

    .thumbnail-first .thumb-image,
    .slider-heading {
        padding-bottom: 30px;
    }

    .cta-with-bg {
        text-align: center;
    }

    .cta-with-bg p {
        max-width: 600px;
        margin: 0 auto 30px;
    }

    .image-text-key-points > .inner > .cwrap.image-left > .col:first-child {
        padding-left: 16px;
        padding-top: 30px;
    }

    .packages-top .col:first-child {
        padding-right: 16px;
    }

    .image-with-text .col:last-child {
        padding-left: 16px;
    }

    .image-text-thumbnail .col.thumbnail-first {
        padding-bottom: 30px;
    }

    .image-right .thumbnail-first {
        align-items: start;
    }
    
    .home-banner-content .buttons {
        flex-direction: row;
    }

    .timeline-nav::before {
        top: 125px;
    }

    .timeline-tab .col:first-child {
        padding-right: 16px;
    }

    .site-footer .col:first-child {
        flex: 1 1 30%;
        max-width: 30%;
    }   

    .site-footer .col:last-child {
        flex: 1 1 70%;
        max-width: 70%;
    }

    .journal-filters a {
        border: 1px solid var(--primary-color);
    }

    .menu-wrapper {
        background: none;
    }

    .menu-block {
        display: block;
        margin-bottom: 20px;
    }

    .menu-block:last-child {
        margin-bottom: 0;
    }

    .menu-block > a {
        background-color: var(--light-primary);
        display: block;
        position: relative;
        font-family: "ivypresto-display", serif;
        font-weight: 300;
        font-size: 28px;
        padding: 16px 20px;
        border-radius: 10px;
    }

    .menu-block > a.menu-block-opened {
        border-radius: 10px 10px 0 0;
    }

    .menu-block > a > span {
        position: relative;
        display: block;
    }

    .menu-block > a > span:before {
        width: 32px;
        height: 32px;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%) rotate(90deg);
        background: url('images/right-arrow-biege.png') no-repeat center / 8px;
        border: 1px solid var(--primary-color);
        border-radius: 50%;
        content: "";
    }

    .menu-block > a.menu-block-opened > span::before {
        transform: translateY(-50%) rotate(-90deg);
    }

    .menu-inner {
        background-color: var(--light-primary);
        padding: 20px;
        display: none;
    }

    .menu-heading h2 {
        display: none;
    }

    .menu-1-active .menu-meta {
	    padding-right: 0;
    }

    .footer-logo img {
	    max-width: 90px;
    }

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

    .footer-bottom p {
        text-align: center;
    }
    
    .footer-social {
        gap: 15px;
    }

    .journal-header {
        max-width: none;
    }

    .footer-social img {
	    max-width: 32px;
    }

    .timeline-nav a {
        font-size: 12px;
    }

    .timeline-nav a span {
        font-size: 16px;
    }
}

@media screen and (max-width : 900px) {
    .secondary-menu {
        display: none;
    }

    .home-scroll a {
	    max-width: 80px;
        margin: 0 auto;
    }

    .site-content {
        overflow: hidden;
    }

    .inner {
        padding: 0 15px;
    }

    .tablet-full .col:first-child {
	    padding-bottom: 20px;
    }

    .image-text-key-points .tablet-full > .col:first-child {
	    padding-bottom: 30px;
    }

    .thumb-image img {
	    max-width: none;
        width: 100%;
    }

    .thumbnail-first {
        align-items: stretch;
    }

    .slider-arrows {
	    gap: 10px;
    }

    .buttons,
    .home-banner-content .buttons,
    .buttons-404,
    .cta-buttons {
        flex-direction: column;
        text-align: left;
        gap: 10px;
    }

    .buttons-404 {
        align-items: stretch;
        gap: 15px;
        text-align: left;
    }

    .image-text-thumbnail .button, .image-with-text .button, .home-banner-content .button {
        margin-top: 0;
    }

    .image-text-key-points > .inner > .cwrap > .col:first-child, .cta-with-image .col:first-child, .reviews .col:first-child,
    .image-with-text.image-with-text-right .col:first-child {
	    padding-right: 16px;
    }

    .image-with-text.image-with-text-right .col:last-child {
        padding-left: 16px;
    }

    .review-card {
        width: 100%;
        max-width: none;
        padding: 20px;
    }

    .review-icon img {
	    max-width: 50px;
    }

    .review-content {
	    padding: 16px 0;
    }

    .reviews .slider-arrows {
        padding-top: 20px;
    }

    .site-footer .col:first-child,
    .site-footer .col:last-child,
    .contact-header .col,
    .contact-details .col {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .contact-header,
    .contact-details .col:first-child {
	    padding-bottom: 30px;
    }

    .grid-contents .col3,
    .journal-posts .col3 {
        flex: 1 1 50%;
        max-width: 50%;
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .carousel .slider-heading {
        max-width: none;
    }

    .cta-green-background img {
        max-width: 80px;
    }

    .grid-content-details h3 {
        padding: 20px 0 12px;
    }

    .grid-content-details p {
        margin-bottom: 20px;
    }

    .carousel-heading,
    .journal-header {
	    padding-bottom: 40px;
    }

    .site-footer .col:first-child {
        text-align: center;
        padding-bottom: 30px;
    }

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

    .footer-menu {
        border-top: 1px solid var(--light-primary);
        padding-top: 20px;
    }

    .footer-menu h4 {
        position: relative;
        padding-right: 30px;
        margin-bottom: 0;
    }

    .footer-menu h4:after {
        width: 12px;
        height: 12px;
        top: 50%;
        transform: translateY(-50%) rotate(90deg);
        right: 0;
        position: absolute;
        background: url('images/right-arrow.png') no-repeat center / contain;
        content: "";
    }

    .footer-menu h4.footer-menu-opened:after {
        transform: translateY(-50%) rotate(-90deg);
    }

    .footer-menu > div {
        display: none;
        padding-top: 20px;
    }

    .landing-footer .footer-menu > div {
        display: block;
        padding-top: 0;
    }

    .footer-menu li {
        margin-bottom: 0;   
    }

    .footer-menu li a {
        padding: 12px 0;
        display: block;
        border-bottom: 1px solid var(--dark-green);
    }

    .footer-menu li:last-child a {
        border-bottom: 0;
    }

    .footer-bottom {
        margin-top: 20px;
    }

    h1, .key-points span,
    .post-header h1 {
	    font-size: 32px;
    }

    h2 {
	    font-size: 28px;
    }

    h3,
    .cta-green-background h3 {
	    font-size: 26px;
    }

    .review-meta p,
    .review-meta span,
    body,
    .legal-content p {
        font-size: 14px;
    }
}

@media screen and (max-width : 767px) {
    .alert-close {
        display: none;
    }
    
    .mobile-menu {
        padding-top: 130px;
    }
    
    .section {
        padding: 30px 0;
    }

    .breadcrumbs {
        padding-bottom: 20px;
        line-height: 1.4;
    }
    
    .alternative-hero .col,
    .timeline-tabs .col,
    .image-bullet-points .col,
    .image-with-text .col,
    .packages .col,
    .grid-content .col,
    .grid-contents .col3,
    .col23,
    .events .col,
    .journal-featured .col,
    .journal-posts .col3,
    .cta-with-bg .col,
    .post-content .col3,
    .related-posts .col3,
    .contact-content .col,
    .contact-teaser .col,
    .cta-block .col34,
    .cta-block .col4 {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .post-cta {
        margin: 20px 0;
        padding: 20px 0;
    }

    .journal-filters a,
    .cta-buttons a {
        margin-bottom: 10px;
    }

    .journal-filters a {
        margin-right: 5px;
    }

    .journal-featured .col:first-child {
        height: 280px;
    }

    .image-with-text .col:first-child,
    .grid-content .col:first-child,
    .journal-filters,
    .cta-with-bg .col:first-child,
    .post-content .col3,
    .contact-teaser .col:first-child,
    .cta-block .col34 {
        padding-bottom: 20px;
    }

    .journal-filters {
        padding-bottom: 10px;
    }

    .contact-cta-content .cwrap {
        padding-top: 15px;
        padding-bottom: 15px;
    }

    .contact-teaser h3 {
	    margin-bottom: 10px;
    }

    .alternative-hero .col:last-child,
    .timeline-tabs .col:last-child,
    .image-bullet-points .col:last-child,
    .packages .col:last-child,
    .image-with-text.image-with-text-right .col:first-child {
        order: 1;
        padding-bottom: 30px;
    }

    .alternative-hero .col:first-child,
    .timeline-tabs .col:first-child,
    .image-bullet-points .col:first-child,
    .packages .col:first-child,
    .image-with-text.image-with-text-right .col:first-child {
        order: 2;
    }

    .alternative-hero .key-points .col {
        flex: 1 1 50%;
        max-width: 50%;
    }

    .carousel-meta {
	    padding-top: 10px;
    }

    .package-price {
        margin-bottom: 20px;
    }

    .faq-question::after {
        width: 12px;
        height: 12px;
    }

    .image-text-thumbnail .thumb-image,
    .releated-header,
    .contact-content > .cwrap > .col:first-child {
        padding-bottom: 30px;
    }

    .grid-content .carousel-heading {
	    padding-bottom: 0;
    }

    .grid-content .carousel-heading .col:first-child {
        padding-bottom: 0;
    }

    .releated-header {
        display: block;
    }

    .event-heading,
    .related-content {
	    padding-bottom: 20px;
    }

    .event-card {
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .mobile-menu-main-wrapper {
        display: block;
        padding-bottom: 20px;
    }

    .mobile-menu-main-menu,
    .mobile-menu-main-content {
        width: 100%;
    }

    .mobile-menu-main-menu {
        padding-right: 0;
        border-right: 0;
    }

    .mobile-menu-main-content {
        padding-left: 0;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: calc(100% + 160px);
        transform: translateX(110%);
        transition: transform 0.3s ease;
        background-color: var(--secondary-color);
        z-index: 1;
    }

    .mobile-menu-main-content.mobile-active {
        transform: translateX(0);
    }

    .mobile-menu .menu-col-left {
        padding-right: 0;
        padding-bottom: 15px;
    }

    .mobile-menu .menu-col-left .col,
    .suppliers-module .carousel-heading .col {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .mobile-menu .menu-col-left h2 {
        padding-right: 60px;
    }

    .mobile-menu .menu-col-right,
    .suppliers-module .carousel-heading .col:last-child {
        padding-top: 15px;
    }

    .carousel-with-content .carousel-meta {
        padding-top: 30px;
        flex-direction: column;
        gap: 15px;
    }

    .carousel-with-content .carousel-meta .slider-arrows {
        order: 1;
    }

    .carousel-with-content .carousel-meta .carousel-button {
        order: 2;
    }

    .mobile-menu .menu-header-buttons-container ul {
        flex-direction: column;
        gap: 10px;
    }

    .menu-back {
        display: block;
    }

    .opening-popup .cols {
        display: block;
        height: auto;
    }

    .opening-popup .col {
        flex: 1 1 100%;
        max-width: 100%;
        padding: 0;
    }

    .opening-popup .col:first-child {
        height: 250px;
    }

    .popup-content {
        padding: 30px 20px;
    }

    .popup-content h2 {
        font-size: 24px;
    }

    .popup-content span {
        padding: 10px 0;
    }

    .journal-header {
        padding-bottom: 30px;
    }

    .site-footer {
        padding-bottom: 120px;
    }

    .timeline-nav {
        padding: 20px 0;
    }

    .timeline-nav::before {
	    top: 82px;
    }

    .menu-block > a > span::before {
        width: 24px;
        height: 24px;
        background-size: 6px;
    }

    .menu-image {
        margin-bottom: 20px;
    }

    .slider-meta {
	    padding-top: 20px;
    }

    .home-banner.above-the-fold {
        height: calc(100vh - 65px);
    }

    .post-type-archive-supplier .journal-featured {
	    padding-top: 30px;
    }

    .menu-block > a {
        font-size: 22px;
    }

    .mobile-menu h2 {
        font-size: 20px;
    }

    .mobile-menu h4 {
        font-size: 18px;
    }

    .mobile-menu .menu-post h3 {
        font-size: 16px;
    }

    .event-card h3,
    h4 {
        font-size: 20px;
        margin-bottom: 8px;
    }

    .meet-the-team h3,
    .post-content .col3 h4 {
        font-size: 16px;
    }

    .meet-the-team .carousel-sub-heading,
    .event-card p,
    .contact-details p,
    .journal-filters a,
    .menu-heading p, .menu-details p {
        font-size: 14px;
    }
}