/* https://uplifted-copy-698523.framer.app/ */
/*https://css-marquees.webflow.io/*/


/* Group/cover text alignment */
:root {
    --scrollbar-width: calc(100vw - 100%);
    --vw-no-scroll: calc(100vw - var(--scrollbar-width));
}
.wp-block-cover.alignfull,
.wp-block-group.alignfull {
    overflow: visible;
    position: relative;
    padding-left: max(
        var(--wp--style--root--padding-left, 10px),
        calc((var(--vw-no-scroll) - 90vw) / 2)
    );
    padding-right: max(
        var(--wp--style--root--padding-right, 10px),
        calc((var(--vw-no-scroll) - 90vw) / 2)
    );
    box-sizing: border-box;
}

/*
body {
  padding-top: 1rem;
}
*/


header {
  transition: opacity .3s ease, transform .3s ease;
}

header.sticky {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;

  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.1);

  animation: slideDown .3s ease;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-100%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}




header.sticky hr {display: none;}



.fade,
.fade-up,
.fade-left {
  opacity: 0;
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-up { transform: translateY(20px); }
.fade-left { transform: translateX(-20px); }

.fade.is-visible,
.fade-up.is-visible,
.fade-left.is-visible {
  opacity: 1;
  transform: none;
}

/* manual delay modifiers, still available for one-off use */
.delay-1 { transition-delay: 0.15s; }
.delay-2 { transition-delay: 0.3s; }
.delay-3 { transition-delay: 0.45s; }
.delay-4 { transition-delay: 0.6s; }

@media (prefers-reduced-motion: reduce) {
  .fade,
  .fade-up,
  .fade-left {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.fade-heading {
  opacity: 0;
  transform: translateY(15px);
  filter: blur(6px);
  transition: opacity 0.7s ease, transform 0.7s ease, filter 0.7s ease;
}

.fade-heading.is-visible {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

@media (prefers-reduced-motion: reduce) {
  .fade-heading {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
}


html {
    scroll-behavior: smooth;
}

.hero-bg:after {
	background-color: #E0E8CF;
    z-index: -1;
    flex: none;
    width: 50%;
    height: 88%;
    position: absolute;
    bottom: 6%;
    right: 0;
    overflow: hidden;
    content: "";
    border-radius: 10px;
}

@media screen and (max-width:1249px) {
    .col-relative {position: relative;}
    .hero-bg:after {
        width: 40%;
    }
}

@media screen and (max-width:1249px) {
    

    .wp-block-column.is-layout-flow.wp-block-column-is-layout-flow.wp-block-hidden-mobile.wp-block-hidden-tablet {
        display: none;
    }
    .col-equal {flex-basis: 50% !important;}
    .offerings .wp-block-column.left-col {flex-basis: 100% !important;}
    
}


.image-frame:after {
    content: "";
    border: 3px solid #E0E8CF;
    position: absolute;
    width: 100%;
    height: 100%;
    left: -15px;
    top: -15px;
    z-index: -1;
}

.btm-img {
    aspect-ratio: 0.685714 / 1;
    bottom: -210px;
    position: absolute;
    flex: 0 0 auto;
    left: 214px;
    width: 20%;
    z-index: 1;
}

.btm-img-right {
aspect-ratio: 0.685714 / 1;
    bottom: -210px;
    position: absolute;
    flex: 0 0 auto;
    right: 214px;
    width: 20%;
    z-index: 1;
}


.bg-grid {
    position: absolute;
    top: calc(50% + 10.5vh);
    left: 50%;
    width: calc(100% + var(--wp--style--root--padding-left, 0) + var(--wp--style--root--padding-right, 0));
    transform: translate(-50%, -50%) scale(1.2);
    opacity: 0.05;
}

@media (max-width: 768px) {
    .bg-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .bg-grid > :nth-child(n + 4) {
        display: none;
    }
}

.pricing, .experiences .wp-block-group, .faqs {box-shadow: 0 8px 30px rgba(0,0,0,0.05);}

/* Yoast FAQ */
.schema-faq {
    max-width: 900px;
    margin: 0 auto;
}

/* Item */
.schema-faq-section {
    border-bottom: 1px solid #e7e2dc;
}

/* Question */
.schema-faq-question {
    display: block;
    position: relative;
    padding: 30px 50px 30px 0;
    cursor: pointer;
    font-weight: 500;
	font-size: 30px;
    transition: color .3s;
	font-family: Playfair, serif;
	color: #4f5353;
}

.schema-faq-question:hover {
    color: var(--wp--preset--color--custom-color-2);
}

/* Chevron */
.schema-faq-question::after {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;

    width: 10px;
    height: 10px;

    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;

    transform: translateY(-70%) rotate(45deg);
    transition: transform .3s;
}

.schema-faq-section.active .schema-faq-question::after {
    transform: translateY(-30%) rotate(-135deg);
}

/* Answer */
.schema-faq-answer {
    max-height: 0;
    overflow: hidden;

    margin: 0;
    padding: 0;

    color: #666;
    line-height: 1.8;

    transition:
        max-height .35s ease,
        padding .35s ease;
}

.schema-faq-section.active .schema-faq-answer {
    padding: 0 0 30px;
}

footer {
    margin-top: 0px;
}

footer a {
    text-decoration: none;
}

li.wp-block-navigation-item.current-menu-item.wp-block-navigation-link {
    font-weight: 500;
}

.hero-heading {
    font-size: clamp(3rem, 5vw, 5rem) !important;
    /*64px*/
}

.home-hero-heading {
    font-size: clamp(3rem, 5vw, 4rem) !important;
}


h2 {
    font-size: clamp(2.5rem, 4vw, 4rem) !important;
}


figure.wp-block-image.size-large.arrow-link img {
    width: 39px;
}


@media (max-width: 768px) {
    .swap-mobile .wp-block-column:first-child {
        order: 2;
    }

    .swap-mobile .wp-block-column:last-child {
        order: 1;
    }
}

@media screen and (max-width:768px) {
    .no-pad-left {padding-left: 0px !important;}
}

.offering-row {transition: all 0.2s;}

.offering-row:hover {
    cursor: pointer;
    color: #909984;
}


.offering-row img {
    transition: all 0.2s;
    filter: opacity(0.5);
}

.offering-row:hover img {
    filter: opacity(1);
}






 


/* ==========================================================================
   Image marquee -- paste this whole block into
   Appearance -> Customize -> Additional CSS
   ========================================================================== */

/* Hides the native Gallery block once JS has read its images.
   Add the custom CSS class "marquee-source" to your Gallery block
   in the block editor's Advanced panel (right sidebar). */
.marquee-source {
  display: none !important;
}

.marquee-wrap {
  width: 90%;
  max-width: 900px;
  margin: 60px auto;
  background: linear-gradient(360deg, rgb(242, 240, 225) 0%, rgb(255, 255, 255) 100%);
}

.marquee-flex-horizontal {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  gap: 30px;
}

.marquee-col {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden;
  width: 100%;
  height: 600px;
  flex: 1;
}

.marquee-track {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  white-space: nowrap;
  will-change: transform;
  animation: marquee-vertical 20s linear infinite;
}

.marquee-track-alt {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  white-space: nowrap;
  will-change: transform;
  animation: marquee-vertical-alt 24s linear infinite;
}

@keyframes marquee-vertical {
  from { transform: translateY(0); }
  to   { transform: translateY(calc(-1 * var(--loop-h, 50%))); }
}

@keyframes marquee-vertical-alt {
  from { transform: translateY(calc(-1 * var(--loop-h, 50%))); }
  to   { transform: translateY(0); }
}

.marquee-cover {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
  pointer-events: none;
  background-image:
    linear-gradient(180deg, rgb(255, 255, 255) 0%, hsla(0, 0%, 100%, 0) 30%),
    linear-gradient(180deg, hsla(52, 39%, 92%, 0) 70%, rgb(242, 240, 225) 100%);
  background-repeat: no-repeat, no-repeat;
  background-size: 100% 100%, 100% 100%;
  background-position: top, bottom;
}

.marquee-col-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.marquee-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90%;
  height: 22vw;
  max-height: 260px;
  border-radius: 8px;
  box-shadow: 0 7px 15px 3px rgba(175, 177, 179, 0.15);
  overflow: hidden;
}

.marquee-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.marquee-spacer {
  width: 100%;
  height: 30px;
  flex: 0 0 auto;
}

@media (max-width: 700px) {
  .marquee-flex-horizontal {
    gap: 12px;
  }
  .marquee-col {
    height: 70vw;
  }
  .marquee-item {
    height: 32vw;
  }
}