/*
* Highlight the generated ones
*
*/
/* section[data-generated=true] {
    border: 2px solid red;
    position: relative;
}
section[data-generated=true]:after {
    content: "";
    position: absolute;
    background-color: rgba(255, 134, 134, 0.351);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
} */
/* ---------------------------------------------
    GLOBAL / BASE STYLES
--------------------------------------------- */
section {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.x-container {
    padding-left: 1rem;
    padding-right: 1rem;
    margin-left: auto;
    margin-right: auto;
    max-width: 80rem;
}

.cover-me {
    position: relative;
    overflow: hidden;
}

.shadow {
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: transparent;
    left: 0;
    top: 0;
}
/* ---------------------------------------------
    SECTION HEADINGS
--------------------------------------------- */
body[data-set='home'] section h2 {
    font-size: 2rem; 
    line-height: 1.15;
}
section h2 {
    font-size: 1.75rem; /* 4xl */
    line-height: 1.4;
}

/* ---------------------------------------------
    NAVIGATION
--------------------------------------------- */
nav#desktop-links .group {
    margin-left: 1.5rem;
}

nav button.flex {
    align-items: baseline;
}

/* ---------------------------------------------
    HERO SECTION
--------------------------------------------- */
#hero h1 {
    font-size: 2rem;
    line-height: 1.25;
}

#hero .set-1 .subheading {
    font-size: 1.125rem;
}

#hero .set-1 .description {
    font-size: 1rem;
}
/* ---------------------------------------------
    CTA SECTION
--------------------------------------------- */
#cta h2 {
    font-size: 2rem;
    line-height: 1.4;
}

 
/* ---------------------------------------------
    TRUSTED BRANDS SECTION
--------------------------------------------- */
#trusted-brands .brands {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.brands .brand img {
    max-width: 100px;
}

/* ---------------------------------------------
    FAQ SECTION
--------------------------------------------- */
#faq .x-container {
    max-width: 56rem;
}

.faq-item {
    --tw-border-opacity: 1;
    border-radius: 0.5rem;
    padding: 1rem;
    border: 1px solid rgb(227 230 234 / var(--tw-border-opacity, 1));
}

/* ---------------------------------------------
    CTA BUTTON GROUP (Global)
--------------------------------------------- */
.x-cta-btns {
    display: flex;
    flex-direction: column;
    gap: 1rem 0;
}

.x-cta-btns button,
.x-cta-btns a {
    width: fit-content;
    margin: auto;
}
/* ---------------------------------------------
    STATE-BASED OVERRIDES BY data-set
--------------------------------------------- */

body[data-set='promotions-engagement'] .faq-item {
    background-color: white;
    --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    border: unset;
    border-radius: 1rem;
}

body[data-set='technology'] .faq-item {
    background-color: white;
}

body[data-set='growth-marketing'] .faq-item, body[data-set='legal-admin'] .faq-item {
    border: unset;
    border-radius: 1rem;
}

body[data-set='growth-marketing'] .faq-item:nth-child(odd), body[data-set='legal-admin'] .faq-item:nth-child(odd) {
    background-color: rgb(236 241 255 / 1);
}

body[data-set='growth-marketing'] .faq-item:nth-child(even) {
    background-color: rgb(236 253 244 / 1);
}
body[data-set='legal-admin'] .faq-item:nth-child(odd) {  
    border: 1px solid rgb(219 234 254 / 1);
    background-image: linear-gradient(to right, #eff6ff , #fff);
}
body[data-set='legal-admin'] .faq-item:nth-child(even) {
    background-image: linear-gradient(to right,#fdf2f8 , #fff);
    border: 1px solid rgb(252 231 243 / 1);
}
 
body[data-set='growth-marketing'] .faq-item:hover, body[data-set='legal-admin'] .faq-item:hover {
    --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 
                 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 
                         0 4px 6px -4px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), 
                var(--tw-ring-shadow, 0 0 #0000),
                var(--tw-shadow);
}

/* ---------------------------------------------
    ALERTS 
--------------------------------------------- */
.alert-box {
  opacity: 0;
  transform: translateY(-30px);
  pointer-events: none;
  transition: opacity 0.45s ease, transform 0.45s ease;

  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  margin: 1rem;
}

.alert-box.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.alert-box.active.success {
  background-color: #dcfce7;
  border-left: 4px solid #22c55e;
  color: #15803d;
}

.alert-box.active.error {
  background-color: #fee2e2;
  border-left: 4px solid #ef4444;
  color: #991b1b;
}
/* ---------------------------------------------
   Loading
--------------------------------------------- */
.spinner {
  width: 18px;
  height: 18px;
  border: 3px solid rgba(255, 255, 255, 0.4);
  border-top-color: white;
  border-radius: 50%;
  display: none;
  animation: spin 0.8s linear infinite;
}
.loading .spinner {
  display: inline-block;
}
.loading .btn-text {
  display: none;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
/* Default hidden state */
.cookie-banner {
  opacity: 0;
  transform: translate(-50%, 40px);
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
}

/* Active / Visible State */
.cookie-banner.active {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
  width: 90%;
  text-align: center;
  max-width: 570px;
}
/* ---------------------------------------------
    CASE STUDIES CARDS
--------------------------------------------- */
.bg-casestudy{
    background-color: #efefef;
}

/*
* OVERRIDES
* s-head = small head text for cards
* sr-head = smaller head text for cards
* s-desc = small desc text for cards
* no-d-m = no desc margin for cards
* cp = card padding. (cp-md, cp-xl) 
*/ 
section.s-head h3 {
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 600;
}
section.sr-head h3 {
   font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 600;
}
section.s-desc .cards .description {
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.no-d-m .cards .description {
    margin-bottom: 0;
}
.cp-md {
    padding: 1rem;
}
.cp-xl {
    padding: 1.2rem;
}
#integration-showcase .tags span {
    font-size: 0.75rem;
    line-height: 1rem;
}
#trusted-brands.digital-coupons .card {
    background-color: unset;
}
section#hero h2 {
    font-size: 1.2rem;
}
/* ---------------------------------------------
    RESPONSIVE BREAKPOINTS
--------------------------------------------- */

@media (min-width: 480px) {
    .x-cta-btns button,
    .x-cta-btns a {
        margin: unset;
    }

    .x-cta-btns {
        flex-direction: row;
        gap: 0 1rem;
        justify-content: center;
    }
    #trusted-brands .brands {
        display: flex;
    }
    .brands .brand img {
        max-width: 150px;
    }
}

@media (max-width: 640px) {
    .cta {
        width: fit-content;
        margin: auto;
    }
    .g-recaptcha {
        width: calc(302px * 0.8);
        height: calc(78px * 0.8);
        transform: scale(0.8);
        transform-origin: 0 0;
    }
}

@media (min-width: 640px) {
    section {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    #hero {
        padding: 3rem 0;
    }

    #hero h1 {
        font-size: 3rem;
    }

    #hero .set-1 .subheading {
        font-size: 1.25rem;
    }

    #hero .set-1 .description {
        font-size: 1.125rem;
    }

    #hero .stats > div:nth-child(2) {
        border-left: 1px solid rgb(209 213 219 / 1);
        border-right: 1px solid rgb(209 213 219 / 1);
        padding: 0 2rem;
    }

    #cta .stats > div:nth-child(2) {
        border-left: 1px solid rgb(255 255 255 / 1);
        border-right: 1px solid rgb(255 255 255 / 1);
        padding: 0 2rem;
    }
    #hero .x-cta-btns {
        justify-content: flex-start;
    }
    #cta h2 {
        font-size: 2.5rem;
        line-height: 1.3;
    }
    section#hero h2 {
        font-size: 1.5rem;
    }
    body[data-set='home'] section h2 {
        font-size: 2.5rem;  
    }
    section h2 {
        font-size: 2rem;  
        line-height: 1.2;
    }
    .cp-md {
        padding: 1.5rem;
    }
    .cp-xl {
        padding: 2rem;
    }
    .faq-item {padding: 1.5rem;}
    body[data-set='promotions-engagement'] #hero .x-cta-btns,
    body[data-set='home'] #hero .x-cta-btns {
        justify-content: center;
    }

    body[data-set='technology'] .faq-item p {
        margin-left: 2.25rem;
    }
    .x-container {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }
}

/* @media (min-width: 786px) {
    .x-container {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }
} */

@media (min-width: 1024px) {
    body[data-set='home'] #hero h1 {
        font-size: 4.5rem;
    }
    body[data-set='promotions-engagement'] #hero h1 {
        font-size: 3.75rem;
    }

    #hero .set-1 .subheading {
        font-size: 1.5rem;
    }

    #hero .set-1 .description {
        font-size: 1.25rem;
    }

    #faq .x-container {
        padding: 0;
    }

    section {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }
    #cta h2 {
        font-size: 3rem;
        line-height: 1;
    }
    body[data-set='home'] section h2 {
        font-size: 3rem; /* 5xl */
    }
    section h2 {
        font-size: 2.25rem; /* 4xl */
        line-height: 1;
    }
    section#hero h2 {
        font-size: 1.875rem;
    }
    .cp-md {
        padding: 2rem;
    }
    .cp-xl {
        padding: 2.5rem;
    }
    .faq-item {padding: 2rem;}
    
}

@media (min-width: 1240px) {
    #header #desktop-links {
        display: flex;
    }

    #mobile-menu-btn,
    #mobile-menu {
        display: none;
    }
}
