/* ==========================================================================
   EzBiz landing page (views/site/index.php)
   Loaded after the FlexStart style.css and scoped under .ez-landing, so the
   help / terms / privacy / refund pages that share websiteLayout are untouched.
   ========================================================================== */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");

.ez-landing {
    --lp-red: #e11d2a;
    --lp-red-dark: #be123c;
    --lp-red-soft: #fff1f2;
    --lp-navy: #0f1b4c;
    --lp-ink: #1f2937;
    --lp-muted: #5b6475;
    --lp-line: #e9ecf3;
    --lp-bg-soft: #f6f8fc;
    --lp-card: #ffffff;
    --lp-radius: 18px;
    --lp-shadow: 0 1px 2px rgba(15, 27, 76, 0.04), 0 12px 32px -14px rgba(15, 27, 76, 0.16);
    --lp-shadow-lg: 0 24px 48px -20px rgba(15, 27, 76, 0.28);
    font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    color: var(--lp-ink);
    overflow-x: hidden;
}
.ez-landing h1, .ez-landing h2, .ez-landing h3, .ez-landing h4 { font-family: inherit; color: var(--lp-navy); letter-spacing: -0.02em; }
.ez-landing a { color: var(--lp-red); }
.ez-landing img { max-width: 100%; height: auto; }

/* --- Buttons ------------------------------------------------------------- */
.ez-landing .ez-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 20px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .2s, box-shadow .2s, transform .2s, color .2s, border-color .2s;
}
.ez-landing .ez-btn i { font-size: 1.05em; transition: transform .2s; }
.ez-landing .ez-btn:hover i.bi-arrow-right { transform: translateX(3px); }
.ez-landing .ez-btn--primary,
.ez-landing .navbar .ez-btn--primary,
.ez-landing .navbar .getstarted.ez-btn--primary {
    background: var(--lp-red);
    color: #fff !important;
    box-shadow: 0 10px 22px -10px rgba(225, 29, 42, .75);
}
.ez-landing .ez-btn--primary:hover { background: var(--lp-red-dark); color: #fff !important; transform: translateY(-1px); }
.ez-landing .ez-btn--ghost {
    background: #fff;
    border-color: var(--lp-line);
    color: var(--lp-navy) !important;
}
.ez-landing .ez-btn--ghost:hover { border-color: var(--lp-navy); }
.ez-landing .ez-btn--light {
    background: #fff;
    border-color: #fde2e4;
    color: var(--lp-red) !important;
    box-shadow: var(--lp-shadow);
}
.ez-landing .ez-btn--light:hover { border-color: var(--lp-red); }
.ez-landing .ez-btn--app { background: #111827; border-color: #111827; color: #fff !important; }
.ez-landing .ez-btn--app:hover { background: #000; border-color: #000; }
.ez-landing .ez-btn--app .bi-android2 { color: #3ddc84; font-size: 18px; }
.ez-landing .ez-btn--lg { min-height: 50px; padding: 12px 24px; }
.ez-landing .ez-btn:focus-visible { outline: 3px solid rgba(225, 29, 42, .35); outline-offset: 2px; }

/* --- Header -------------------------------------------------------------- */
.ez-landing .header {
    padding: 14px 0;
    background: rgba(255, 255, 255, .78);
    -webkit-backdrop-filter: saturate(160%) blur(10px);
    backdrop-filter: saturate(160%) blur(10px);
}
.ez-landing .header.header-scrolled { padding: 10px 0; background: rgba(255, 255, 255, .95); box-shadow: 0 6px 24px -12px rgba(15, 27, 76, .25); }
.ez-landing .header .logo img { max-height: 40px; width: auto; }
.ez-landing .navbar a,
.ez-landing .navbar a:focus {
    font-family: inherit;
    font-size: 15px;
    font-weight: 500;
    color: var(--lp-ink);
    padding: 10px 0 10px 26px;
}
.ez-landing .navbar > ul > li > a.nav-link { position: relative; }
.ez-landing .navbar > ul > li > a.nav-link.active,
.ez-landing .navbar > ul > li > a.nav-link:hover { color: var(--lp-red); }
.ez-landing .navbar > ul > li > a.nav-link.active::after {
    content: "";
    position: absolute;
    left: 26px;
    right: 0;
    bottom: 2px;
    height: 2px;
    border-radius: 2px;
    background: var(--lp-red);
}
.ez-landing .navbar .ez-nav-cta { margin-left: 12px; }
.ez-landing .navbar .ez-nav-cta:first-of-type { margin-left: 30px; }
.ez-landing .navbar a.ez-btn,
.ez-landing .navbar a.ez-btn:focus { padding: 9px 18px; margin: 0; border-radius: 10px; font-weight: 600; }
.ez-landing .navbar .ez-nav-user { margin-left: 18px; font-weight: 600; color: var(--lp-navy); white-space: nowrap; }
.ez-landing .mobile-nav-toggle { color: var(--lp-navy); }
.ez-landing .navbar-mobile { background: rgba(15, 27, 76, .6); z-index: 999; }
.ez-landing .navbar-mobile ul { padding: 12px 0; border-radius: 16px; }
.ez-landing .navbar-mobile a,
.ez-landing .navbar-mobile a:focus { padding: 12px 22px; font-size: 16px; }
.ez-landing .navbar-mobile > ul > li > a.nav-link.active::after { display: none; }
.ez-landing .navbar-mobile .ez-nav-cta,
.ez-landing .navbar-mobile .ez-nav-cta:first-of-type { margin: 8px 18px 0; }
.ez-landing .navbar-mobile .ez-nav-cta a { justify-content: center; }
.ez-landing .navbar-mobile .ez-nav-user { display: block; margin: 12px 22px 0; }

/* --- Shared section bits -------------------------------------------------- */
.ez-landing section { padding: 72px 0; overflow: hidden; }
.ez-landing .ez-section-head { max-width: 760px; margin: 0 auto 40px; text-align: center; }
.ez-landing .ez-section-head h2 { margin: 6px 0 0; font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.25rem); font-weight: 800; line-height: 1.2; }
.ez-landing .ez-section-head p { margin: 12px 0 0; color: var(--lp-muted); font-size: 1.05rem; }
.ez-landing .ez-eyebrow {
    display: inline-block;
    margin: 0;
    color: var(--lp-red);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.ez-landing .ez-eyebrow--lg { font-size: 15px; }
.ez-landing .ez-eyebrow--light { color: #fca5a5; }
.ez-landing .ez-eyebrow-pill {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    background: #eef2ff;
    color: #3949ab;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ez-landing .ez-card {
    background: var(--lp-card);
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius);
    box-shadow: var(--lp-shadow);
}
.ez-landing .ez-dot {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    font-size: 18px;
    color: #fff;
}
.ez-landing .ez-dot--green { background: #22c55e; }
.ez-landing .ez-dot--blue { background: #3b82f6; }
.ez-landing .ez-dot--amber { background: #f59e0b; }
.ez-landing .ez-dot--red { background: var(--lp-red); }
.ez-landing .ez-dot--violet { background: #8b5cf6; }
.ez-landing .ez-hero__points li .ez-dot { border-radius: 50%; }
.ez-landing .ez-tint--red { background: #ffe4e6; color: var(--lp-red); }
.ez-landing .ez-tint--blue { background: #dbeafe; color: #2563eb; }
.ez-landing .ez-tint--green { background: #dcfce7; color: #16a34a; }
.ez-landing .ez-tint--amber { background: #ffedd5; color: #ea580c; }

/* small "icon + title + caption" lists */
.ez-landing .ez-hero__points,
.ez-landing .ez-mini-points {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 28px;
    margin: 32px 0 0;
    padding: 0;
    list-style: none;
}
.ez-landing .ez-hero__points li,
.ez-landing .ez-mini-points li { display: flex; align-items: center; gap: 10px; }
.ez-landing .ez-hero__points strong,
.ez-landing .ez-mini-points strong,
.ez-landing .ez-chip strong { display: block; color: var(--lp-navy); font-size: 14px; font-weight: 700; }
.ez-landing .ez-hero__points small,
.ez-landing .ez-mini-points small,
.ez-landing .ez-chip small { display: block; color: var(--lp-muted); font-size: 12.5px; }

/* --- Hero ---------------------------------------------------------------- */
.ez-landing .hero.ez-hero {
    height: auto;
    min-height: 0;
    padding: 130px 0 80px;
}
.ez-landing .ez-hero__title {
    margin: 18px 0 16px;
    font-size: clamp(2.1rem, 1.2rem + 3vw, 3.4rem);
    font-weight: 800;
    line-height: 1.08;
}
.ez-landing .ez-hero__title span { color: var(--lp-red); }
.ez-landing .ez-hero__lead { max-width: 520px; margin: 0 0 28px; color: var(--lp-muted); font-size: 1.08rem; line-height: 1.65; }
.ez-landing .ez-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.ez-landing .hero .btn-get-started { margin: 0; padding: 12px 24px; font-family: inherit; border-radius: 10px; letter-spacing: 0; }
.ez-landing .hero .btn-get-started span { font-family: inherit; font-size: 15px; letter-spacing: 0; }
.ez-landing .ez-hero__media { position: relative; max-width: 560px; margin: 0 auto; }
.ez-landing .ez-hero__media img {
    display: block;
    width: 100%;
    box-shadow: var(--lp-shadow-lg);
}

/* --- Trust numbers ------------------------------------------------------- */
.ez-landing .ez-trust { padding-top: 56px; }
.ez-landing .ez-stat {
    height: 100%;
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius);
    background: #fff;
    box-shadow: var(--lp-shadow);
    text-align: center;
    overflow: hidden;
    transition: transform .2s, box-shadow .2s;
}
.ez-landing .ez-stat:hover { transform: translateY(-3px); box-shadow: var(--lp-shadow-lg); }
.ez-landing .ez-stat__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.ez-landing .ez-stat strong { display: block; margin-top: 10px; color: var(--lp-navy); font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2rem); font-weight: 800; line-height: 1.1; }
.ez-landing .ez-stat > span:not(.ez-stat__icon) { display: block; margin: 4px 0 16px; color: var(--lp-muted); font-size: 14px; font-weight: 500; }
.ez-landing .ez-stat img { display: block; max-width: none; }

.ez-landing .about .content { padding: 0; background: transparent; }
.ez-landing .about .content h3 { margin: 0 0 8px; color: var(--lp-red); font-weight: 800; }
.ez-landing .about .content h2 { margin: 0 0 18px; font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.25rem); font-weight: 800; line-height: 1.2; }
.ez-landing .about .content p { margin: 0 0 24px; color: var(--lp-muted); font-size: 1rem; line-height: 1.7; }
.ez-landing #more { display: none; }
.ez-landing .about .btn-read-more { padding: 11px 22px; border-radius: 10px; font-family: inherit; letter-spacing: 0; color: #fff; }
.ez-landing .about .btn-read-more span { font-family: inherit; font-size: 15px; letter-spacing: 0; }
.ez-landing .about .btn-read-more i { margin-left: 0; }
.ez-landing .ez-mini-points .ez-dot { width: 36px; height: 36px; font-size: 16px; border-radius: 50%; }
.ez-landing .ez-about__media { position: relative; }
.ez-landing .ez-about__media > img { display: block; width: 100%; }
.ez-landing .ez-chip {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: 14px;
    box-shadow: var(--lp-shadow-lg);
}
.ez-landing .ez-chip .ez-dot { width: 36px; height: 36px; font-size: 16px; }

/* --- Values -------------------------------------------------------------- */
.ez-landing .values .ez-value { height: 100%; padding: 14px 14px 22px; text-align: center; transition: transform .2s, box-shadow .2s; }
.ez-landing .values .ez-value:hover { transform: translateY(-4px); box-shadow: var(--lp-shadow-lg); }
.ez-landing .values .ez-value img { display: block; width: 100%; border-radius: 12px; margin: 0 0 18px; padding: 0; transition: none; transform: none; }
.ez-landing .values .ez-value h3 { margin: 0 0 8px; font-size: 18px; font-weight: 700; }
.ez-landing .values .ez-value p { margin: 0 8px; color: var(--lp-muted); font-size: 14.5px; line-height: 1.6; }

.ez-landing .ez-feature-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ez-landing .ez-feature-list li {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid transparent;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 27, 76, .04);
    transition: border-color .2s, box-shadow .2s;
}
.ez-landing .ez-feature-list li:hover,
.ez-landing .ez-feature-list li.is-active { border-color: #fecdd3; box-shadow: var(--lp-shadow); }
.ez-landing .ez-feature-list li.is-active { background: var(--lp-red-soft); }
.ez-landing .ez-feature-list li.is-active strong { color: var(--lp-red); }
.ez-landing .ez-feature-list strong { display: block; color: var(--lp-navy); font-size: 15.5px; font-weight: 700; }
.ez-landing .ez-feature-list small { display: block; color: var(--lp-muted); font-size: 13.5px; }
.ez-landing .ez-subhead { margin: 56px 0 20px; font-size: 1.25rem; font-weight: 800; text-align: center; }
.ez-landing .features .feature-box {
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--lp-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: none;
    cursor: pointer;
}
.ez-landing .features .feature-box h3 { margin: 0; font-size: 15px; font-weight: 600; color: var(--lp-navy); }
.ez-landing .features .feature-box i {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    margin: 0;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #dcfce7;
    color: #16a34a;
    font-size: 20px;
    line-height: 1;
}
.ez-landing .features .feature-box:hover i { background: #16a34a; color: #fff; }
.ez-landing .features .feature-box .btn {
    flex: 0 0 auto;
    padding: 4px 12px;
    border-color: #fecdd3;
    border-radius: 999px;
    color: var(--lp-red);
    font-size: 12.5px;
    font-weight: 600;
}
.ez-landing .features .feature-box:hover .btn { background: var(--lp-red); border-color: var(--lp-red); color: #fff; }
.ez-landing .features .accordion-body { margin-top: 6px; border-radius: 12px; background: #fff !important; border: 1px dashed var(--lp-line); color: var(--lp-muted); font-size: 14px; }

/* --- Steps --------------------------------------------------------------- */
.ez-landing .ez-steps__row { display: grid; grid-template-columns: 1fr; align-items: center; }
.ez-landing .ez-step { height: 100%; }
.ez-landing .ez-step img { display: block; width: 100%; object-fit: cover; border-radius: 12px; margin-bottom: 16px; }
.ez-landing .ez-step__no {
    top: 8px;
    left: 8px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    font-weight: 800;
}
.ez-landing .ez-step h3 { font-weight: 700; }
.ez-landing .ez-step p { color: var(--lp-muted); font-size: 14.5px; }
.ez-landing .ez-steps__arrow { color: var(--lp-red); font-size: 26px; text-align: center; }

.ez-landing .pricing .row { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; }
.ez-landing .pricing .row > div { width: auto; padding: 0; display: flex; }
.ez-landing .pricing .box {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 24px 20px;
    border-width: 1px 1px 1px 1px;
    border-style: solid;
    border-top-width: 5px;
    border-radius: var(--lp-radius);
    background: #fff;
    box-shadow: var(--lp-shadow);
    text-align: center;
    transition: transform .2s, box-shadow .2s;
}
.ez-landing .pricing .box:hover { transform: translateY(-4px); box-shadow: var(--lp-shadow-lg); }
.ez-landing .pricing .box h3 { font-size: 20px; font-weight: 800; }
.ez-landing .pricing .box img { width: 100%; max-width: 220px; margin: 0 auto 12px; }
.ez-landing .pricing ul { min-height: 0; margin: 0 0 20px; padding: 0; list-style: none; text-align: left; font-size: 14.5px; color: var(--lp-ink); }
.ez-landing .pricing ul li { display: flex; align-items: flex-start; gap: 8px; padding: 5px 0; line-height: 1.5; }
.ez-landing .pricing ul li i { margin-top: 1px; color: #16a34a; font-size: 18px; line-height: 1; }
.ez-landing .pricing .btn-buy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin-top: auto;
    padding: 10px 24px;
    border-radius: 10px;
    font-family: inherit;
    font-weight: 600;
    text-decoration: none;
}
.ez-landing .pricing .box > *:first-child { margin-top: 0; }

/* --- Testimonials -------------------------------------------------------- */
.ez-landing .ez-testimonials { position: relative; display: flex; align-items: center; gap: 12px; }
.ez-landing .testimonials-slider { flex: 1 1 auto; min-width: 0; padding: 8px 6px 48px; overflow: hidden; }
.ez-landing .ez-quote { height: 100%; }
.ez-landing .swiper-slide { height: auto; }
.ez-landing .ez-quote__mark { line-height: 1; margin-bottom: 6px; }
.ez-landing .ez-quote p { line-height: 1.65; }
.ez-landing .ez-quote__who { align-items: center; gap: 12px; }
.ez-landing .ez-quote__who strong { display: block; color: var(--lp-navy); font-size: 15px; }
.ez-landing .ez-quote__who small { display: block; color: var(--lp-muted); font-size: 13px; }
.ez-landing .ez-avatar-lg {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: linear-gradient(135deg, #fecdd3, #e0e7ff);
    color: var(--lp-navy);
    font-weight: 800;
}
.ez-landing .ez-stars { color: #f59e0b; letter-spacing: 1px; }
.ez-landing .testimonials .swiper-pagination { bottom: 8px; }
.ez-landing .testimonials .swiper-pagination-bullet { width: 9px; height: 9px; background: #cbd5e1; opacity: 1; border: 0; }
.ez-landing .testimonials .swiper-pagination-bullet-active { background: var(--lp-red); }
.ez-landing .ez-slider-btn {
    flex: 0 0 auto;
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--lp-line);
    border-radius: 50%;
    background: #fff;
    color: var(--lp-navy);
    box-shadow: var(--lp-shadow);
}
.ez-landing .ez-slider-btn:hover { color: var(--lp-red); border-color: #fecdd3; }

/* --- Contact ------------------------------------------------------------- */
.ez-landing .contact .info-box { height: 100%; padding: 26px; background: #fff; }
.ez-landing .contact .info-box i { color: var(--lp-red); font-size: 32px; line-height: 1; }
.ez-landing .contact .info-box h3 { margin: 14px 0 8px; font-size: 18px; font-weight: 700; color: var(--lp-navy); }
.ez-landing .contact .info-box p { margin: 0; color: var(--lp-muted); font-size: 14.5px; line-height: 1.6; }
.ez-landing .contact .php-email-form { height: 100%; padding: 28px; background: #fff; }
.ez-landing .contact .php-email-form input,
.ez-landing .contact .php-email-form textarea {
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid #dfe3ec;
    border-radius: 10px;
    font-size: 16px;
    box-shadow: none;
}
.ez-landing .contact .php-email-form input:focus,
.ez-landing .contact .php-email-form textarea:focus { border-color: var(--lp-red); box-shadow: 0 0 0 3px rgba(225, 29, 42, .15); }
.ez-landing .contact .php-email-form button[type=submit] { padding: 12px 32px; border: 0; }
.ez-landing .contact .php-email-form button[type=submit]:hover { background: var(--lp-red-dark); }

.ez-landing .ez-cta__inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    color: #fff;
}
.ez-landing .ez-cta__text { flex: 1 1 auto; padding-bottom: 40px; }
.ez-landing .ez-cta h2 { margin: 8px 0 10px; color: #fff; font-size: clamp(1.5rem, 1rem + 1.6vw, 2.1rem); font-weight: 800; line-height: 1.2; }
.ez-landing .ez-cta p { margin: 0 0 24px; font-size: 1.02rem; }
.ez-landing .ez-cta__img { display: none; flex: 0 0 auto; align-self: flex-end; margin-bottom: 40px; }

/* --- Footer -------------------------------------------------------------- */
.ez-landing .footer.ez-footer { padding: 0; font-size: 14.5px; }
.ez-landing .footer .footer-top { padding: 56px 0 24px; background: transparent; border: 0; }
.ez-landing .footer .footer-top .footer-info .logo img { max-height: 44px; margin-bottom: 14px; }
.ez-landing .footer .footer-top .footer-info p { color: var(--lp-muted); font-family: inherit; font-size: 14.5px; }
.ez-landing .footer .footer-top h4 { margin: 0 0 14px; padding: 0; color: var(--lp-navy); font-weight: 700; }
.ez-landing .footer .footer-top .footer-links ul li { padding: 5px 0; }
.ez-landing .footer .footer-top .footer-links ul a { color: var(--lp-muted); }
.ez-landing .footer .footer-top .footer-links ul a:hover { color: var(--lp-red); }
.ez-landing .footer .footer-top .footer-links ul i { display: none; }
.ez-landing .footer .footer-top .social-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
}
.ez-landing .ez-footer-contact { margin: 0; padding: 0; list-style: none; color: var(--lp-muted); }
.ez-landing .ez-footer-contact li { display: flex; margin-bottom: 12px; }
.ez-landing .ez-footer-contact i {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 14px;
}
.ez-landing .ez-footer-offices { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--lp-line); }
.ez-landing .ez-footer-offices p { margin: 0; color: var(--lp-muted); font-size: 13.5px; line-height: 1.7; }
.ez-landing .ez-footer-offices h4 { font-size: 14px !important; }
.ez-landing .ez-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
    color: var(--lp-muted);
    font-size: 13.5px;
}
.ez-landing .footer .copyright,
.ez-landing .footer .credits { padding: 0; text-align: left; color: var(--lp-muted); }
.ez-landing .back-to-top { right: 18px; bottom: 18px; width: 44px; height: 44px; border-radius: 50%; box-shadow: var(--lp-shadow-lg); }

/* --- Breakpoints (mobile first) ----------------------------------------- */
@media (min-width: 576px) {
    .ez-landing .ez-cta__inner { padding: 48px 40px 0; }
}
@media (min-width: 768px) {
    .ez-landing .pricing .row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ez-landing .ez-steps__row { grid-template-columns: 1fr 1fr 1fr; }
    .ez-landing .ez-cta__img { display: block; }
}
@media (min-width: 992px) {
    .ez-landing .pricing .row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ez-landing .ez-slider-btn { display: inline-flex; }
}
@media (min-width: 1200px) {
    .ez-landing .pricing .row { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .ez-landing .pricing .box { padding: 22px 16px; }
}
@media (max-width: 575.98px) {
    .ez-landing section { padding: 56px 0; }
    .ez-landing .hero.ez-hero { padding: 108px 0 56px; }
    .ez-landing .ez-hero__actions .ez-btn { flex: 1 1 100%; }
    .ez-landing .ez-hero__points { gap: 14px; }
    .ez-landing .ez-hero__points li { flex: 1 1 100%; }
    .ez-landing .ez-mini-points li { flex: 1 1 100%; }
    .ez-landing .ez-stat { padding: 18px 12px 0; }
    .ez-landing .ez-stat img { width: calc(100% + 24px); margin: 0 -12px; }
    .ez-landing .ez-cta__text .ez-btn { width: 100%; }
    .ez-landing .ez-footer-bottom { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    .ez-landing *, .ez-landing *::before, .ez-landing *::after { transition: none !important; animation: none !important; }
}

/* the blurred header would trap FlexStart's fixed mobile menu inside it */
.ez-landing .header:has(.navbar-mobile) { -webkit-backdrop-filter: none; backdrop-filter: none; background: transparent; }
.ez-landing .hero.ez-hero { text-align: left; }
.ez-landing .navbar-mobile .ez-nav-cta a.ez-btn { display: flex; }
.ez-landing .contact .php-email-form button[type=submit] { background: var(--lp-red); border-radius: 10px; }

/* ==========================================================================
   v2: closer match to the high-resolution mockup
   ========================================================================== */
.ez-landing { --lp-page: #f5f8fd; background: var(--lp-page); --sec-y: 44px; --head-gap: 32px; }
body:has(.ez-landing) { background: #f5f8fd !important; }
.ez-landing section,
.ez-landing .about.ez-about,
.ez-landing .ez-features,
.ez-landing .pricing { background: transparent; }

/* hero: photo bleeds to the right edge and fades into the page on the left */
.ez-landing .hero.ez-hero { background: linear-gradient(180deg, #fff 0%, var(--lp-page) 100%); }
.ez-landing .ez-hero__media img { border-radius: 20px; }
.ez-landing .ez-hero__points li { flex: 1 1 140px; }
.ez-landing .ez-hero__points .ez-dot { width: 44px; height: 44px; }

/* stats: white cards, photo inset at the bottom */
.ez-landing .ez-stat { padding: 22px 14px 14px; }
.ez-landing .ez-stat img { width: 100%; margin: 0; border-radius: 12px; aspect-ratio: 843 / 321; object-fit: cover; }
.ez-landing .ez-stat__icon { width: 56px; height: 56px; font-size: 24px; }

/* about: frameless photo, the floating chips are part of the picture */
.ez-landing .ez-about__media > img { border-radius: 0; box-shadow: none; }

/* values */
.ez-landing .values .ez-value img { aspect-ratio: 3 / 2; object-fit: cover; }

/* features: list sits on one white panel, device shot is frameless */
.ez-landing .ez-feature-list.ez-card { gap: 6px; padding: 12px; }
.ez-landing .ez-feature-list.ez-card li { box-shadow: none; background: transparent; }
.ez-landing .ez-feature-list.ez-card li.is-active { background: var(--lp-red-soft); }
.ez-landing .ez-feature-list .ez-dot { width: 46px; height: 46px; font-size: 20px; }

/* steps: number badge beside the photo, text under the photo */
.ez-landing .ez-step { grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; align-items: center; }
.ez-landing .ez-step__no { position: static; grid-row: 1; width: 46px; height: 46px; border: 0; font-size: 15px; box-shadow: none; }
.ez-landing .ez-step img { grid-column: 2; grid-row: 1; margin: 0; aspect-ratio: 2 / 1; }
.ez-landing .ez-step h3 { grid-column: 2; margin-top: 16px; }
.ez-landing .ez-step p { grid-column: 2; }

/* testimonials: three equal cards with photo avatars */
.ez-landing .testimonials .swiper-slide { opacity: 1; }
.ez-landing .ez-quote {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 16px;
    row-gap: 8px;
    align-items: start;
    padding: 22px 20px;
}
.ez-landing .ez-quote__who { display: contents; }
.ez-landing .ez-quote__mark {
    grid-column: 1;
    grid-row: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: 0;
    border-radius: 50%;
    background: #eef2ff;
    color: var(--lp-navy);
    font-size: 22px;
}
.ez-landing .ez-quote p { grid-column: 2; grid-row: 1; margin: 0; color: var(--lp-muted); font-size: 14.5px; }
.ez-landing .ez-quote__who > .ez-avatar-lg { grid-column: 1; grid-row: 2; width: 84px; height: 84px; object-fit: cover; background: #eef0f4; }
.ez-landing .ez-quote__who > div { grid-column: 2; grid-row: 2; align-self: center; }
.ez-landing .ez-stars { font-size: 16px; margin-bottom: 4px; }

/* CTA: full-width navy band, photo bleeds off the right edge */
.ez-landing .ez-cta {
    position: relative;
    padding: 0;
    overflow: hidden;
    background:
        radial-gradient(500px 300px at 70% 30%, rgba(255, 255, 255, .08), transparent 70%),
        linear-gradient(110deg, #101a5c 0%, #17257a 55%, #1d3a8f 100%);
}
.ez-landing .ez-cta__inner { position: static; padding: 56px 0; border-radius: 0; background: none; overflow: visible; }
.ez-landing .ez-cta__text { position: relative; z-index: 1; padding: 0; }
.ez-landing .ez-cta__img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 42%;
    height: 100%;
    max-width: none;
    margin: 0;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: 70% center;
    border-radius: 0;
    box-shadow: none;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 35%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 35%);
}

/* footer */
.ez-landing .footer.ez-footer { background: #fff; border-top: 0; }
.ez-landing .footer .footer-top h4 { text-transform: none; font-size: 16px; }
.ez-landing .footer .footer-top .social-links a { width: 36px; height: 36px; margin-right: 6px; background: transparent; color: var(--lp-navy); font-size: 21px; }
.ez-landing .footer .footer-top .social-links a:hover { background: transparent; color: var(--lp-red); }
.ez-landing .ez-footer-card { font-size: 13.5px; }   /* plain column like Support (no box, user 2026-10-14) */
.ez-landing .ez-footer-contact i { background: #eef2ff; color: var(--lp-navy); }
.ez-landing .ez-footer-app { min-height: 42px; margin-top: 6px; padding: 8px 16px; font-size: 13.5px; }
.ez-landing .ez-footer-bottom { position: relative; border-top: 0; padding: 18px 12px; box-shadow: 0 0 0 100vmax #eaf0fb; clip-path: inset(0 -100vmax); background: #eaf0fb; }
.ez-landing .ez-footer-bottom strong,
.ez-landing .footer .credits a { color: var(--lp-navy); font-weight: 600; }
.ez-landing .back-to-top { background: #fff; border: 1px solid var(--lp-line); }
.ez-landing .back-to-top i { color: var(--lp-navy); }
.ez-landing .back-to-top:hover { background: var(--lp-red); }
.ez-landing .back-to-top:hover i { color: #fff; }

@media (min-width: 992px) {
    /* header floats over the hero photo until the page scrolls */
    .ez-landing .header:not(.header-scrolled) { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
    .ez-landing .hero.ez-hero { padding: 150px 0 72px; background: linear-gradient(90deg, #fff 0%, #fff 40%, var(--lp-page) 100%); }
    .ez-landing .hero.ez-hero .col-lg-6:first-child { position: relative; }
    .ez-landing .ez-hero__media {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        max-width: none;
        margin: 0;
    }
    .ez-landing .ez-hero__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 0;
        box-shadow: none;
        -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%);
        mask-image: linear-gradient(90deg, transparent 0%, #000 14%);
    }
    .ez-landing .ez-hero__points { flex-wrap: nowrap; }
    .ez-landing .ez-hero__points li { flex: 0 1 auto; }
    .ez-landing .ez-mini-points { gap: 18px 22px; }
    .ez-landing .ez-feature-list.ez-card li { padding: 16px 18px; }
    .ez-landing .ez-cta__inner { padding: 64px 0; }
    .ez-landing .ez-cta__text { max-width: 58%; }
}
@media (min-width: 1200px) {
    /* about photo and device shot run to the right edge of the window */
    .ez-landing .ez-about__media,
    .ez-landing .ez-features__media { margin-right: calc((1140px - 100vw) / 2 - 12px); }
    .ez-landing .ez-features__img { border-radius: 18px 0 0 18px; }
}
@media (min-width: 1400px) {
    .ez-landing .ez-about__media,
    .ez-landing .ez-features__media { margin-right: calc((1320px - 100vw) / 2 - 12px); }
}

/* v2 tuning */
.ez-landing .testimonials .swiper-slide,
.ez-landing .testimonials .swiper-slide-next { transform: none; padding: 0 10px; }
.ez-landing .ez-hero__points small { white-space: nowrap; }
.ez-landing .ez-mini-points li { flex: 0 0 auto; }
.ez-landing .ez-footer-contact li { gap: 10px; }
@media (min-width: 992px) {
    .ez-landing .ez-hero__points { gap: 18px 24px; }
    .ez-landing .ez-mini-points { flex-wrap: wrap; }
    .ez-landing .ez-cta__img { width: 46%; object-position: center top; }
}
@media (min-width: 992px) {
    .ez-landing .ez-hero__lead { max-width: 470px; }
}
@media (min-width: 992px) {
    .ez-landing .ez-hero__media { width: 60%; }
    .ez-landing .ez-hero__media img { object-position: 30% center; }
}
@media (max-width: 991.98px) {
    .ez-landing .footer .footer-contact { flex: 0 0 100%; max-width: 100%; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
    .ez-landing .ez-cta__text { max-width: 56%; }
}

/* hero v3: on wide screens the supplied banner sits behind the hero text;
   below 1400px it is too wide for that, so a cropped copy (woman and
   devices) is shown beside the text on desktop and under it on phones */
.ez-landing .ez-hero__title { max-width: 10.5em; }
@media (min-width: 992px) and (max-width: 1399.98px) {
    .ez-landing .ez-hero__media { width: 58%; }
    .ez-landing .ez-hero__media img { object-position: 30% center; }
}
@media (min-width: 1400px) {
    .ez-landing .hero.ez-hero {
        min-height: calc(100vw / 2.865);
        background-image: url("../img/landing/hero-banner-1400.jpg");
        background-image: image-set(url("../img/landing/hero-banner-1400.webp") type("image/webp"), url("../img/landing/hero-banner-1400.jpg") type("image/jpeg"));
        background-repeat: no-repeat;
        background-size: cover;
        background-position: 80% center;
    }
}
@media (min-width: 1600px) {
    .ez-landing .hero.ez-hero {
        background-image: url("../img/landing/hero-banner-2000.jpg");
        background-image: image-set(url("../img/landing/hero-banner-2000.webp") type("image/webp"), url("../img/landing/hero-banner-2000.jpg") type("image/jpeg"));
    }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
    .ez-landing .ez-hero__media { width: 50%; }
    .ez-landing .ez-hero__points { gap: 14px 18px; }
}

/* about v3: the team photo melts into a section tinted like the photo,
   with the photo's own pink and blue waves faded in behind the text */
.ez-landing .about.ez-about {
    position: relative;
}
.ez-landing .about.ez-about::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: min(700px, 70%);
    height: 100%;
    background: url("../img/landing/about-waves.jpg") left bottom / cover no-repeat;
    background-image: image-set(url("../img/landing/about-waves.webp") type("image/webp"), url("../img/landing/about-waves.jpg") type("image/jpeg"));
    opacity: .28;
    pointer-events: none;
}
.ez-landing .about.ez-about > .container { position: relative; }
.ez-landing .ez-about__media picture img {
    display: block;
    width: 100%;
    height: auto;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 86%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 10%, #000 88%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image: linear-gradient(90deg, transparent 0%, #000 20%, #000 86%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 10%, #000 88%, transparent 100%);
    mask-composite: intersect;
    mix-blend-mode: multiply;
}
.ez-landing .ez-chip { z-index: 2; padding: 10px 14px; border: 1px solid rgba(255, 255, 255, .7); background: rgba(255, 255, 255, .92); }
.ez-landing .ez-chip--top { left: 10%; top: 6%; }
.ez-landing .ez-chip--bottom { right: 4%; bottom: 6%; }
@media (max-width: 575.98px) {
    .ez-landing .ez-chip { padding: 8px 10px; gap: 8px; }
    .ez-landing .ez-chip .ez-dot { width: 30px; height: 30px; font-size: 14px; }
    .ez-landing .ez-chip strong { font-size: 12.5px; }
    .ez-landing .ez-chip small { font-size: 11px; }
    .ez-landing .ez-chip--top { left: 4%; top: 2%; }
    .ez-landing .ez-chip--bottom { right: 2%; bottom: 2%; }
}
@media (min-width: 1200px) {
    .ez-landing .ez-about__media picture img {
        -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%), linear-gradient(180deg, transparent 0%, #000 10%, #000 88%, transparent 100%);
        mask-image: linear-gradient(90deg, transparent 0%, #000 22%), linear-gradient(180deg, transparent 0%, #000 10%, #000 88%, transparent 100%);
    }
}

/* about v4: no band edge (section uses the page colour), the photo's whites
   take on the page colour, and tighter spacing between sections */
.ez-landing .about.ez-about { background: var(--lp-page); isolation: isolate; padding: 24px 0; }
.ez-landing .about.ez-about > .container { z-index: auto; }
.ez-landing .about.ez-about::before {
    -webkit-mask-image: linear-gradient(90deg, #000 30%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 25%, #000 75%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image: linear-gradient(90deg, #000 30%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 25%, #000 75%, transparent 100%);
    mask-composite: intersect;
}
@media (min-width: 992px) {
    .ez-landing section { padding: 48px 0; }
    .ez-landing .about.ez-about { padding: 8px 0; }
    .ez-landing .ez-trust { padding-bottom: 24px; }
    .ez-landing .values { padding-top: 32px; }
}

/* features v2: the device shot melts into the page like the Who We Are photo */
.ez-landing .features.ez-features { position: relative; background: var(--lp-page); isolation: isolate; }
.ez-landing .features.ez-features::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: min(700px, 70%);
    height: min(720px, 60%);
    background: url("../img/landing/features-waves.jpg") left center / cover no-repeat;
    background-image: image-set(url("../img/landing/features-waves.webp") type("image/webp"), url("../img/landing/features-waves.jpg") type("image/jpeg"));
    opacity: .28;
    -webkit-mask-image: linear-gradient(90deg, #000 30%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 25%, #000 75%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image: linear-gradient(90deg, #000 30%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 25%, #000 75%, transparent 100%);
    mask-composite: intersect;
    pointer-events: none;
}
.ez-landing .features.ez-features > .container { position: relative; }
.ez-landing .ez-features__img,
.ez-landing .ez-features__media .ez-features__img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
    box-shadow: none;
    mix-blend-mode: multiply;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 88%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 88%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
    mask-composite: intersect;
}
@media (min-width: 1200px) {
    .ez-landing .ez-features__media .ez-features__img {
        -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 18%), linear-gradient(180deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
        mask-image: linear-gradient(90deg, transparent 0%, #000 18%), linear-gradient(180deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
    }
}

/* steps v3: white cards, glowing number circle over the top edge,
   tinted photo, dashed curved arrows between cards */
.ez-landing .ez-steps__row { gap: 56px 18px; padding-top: 34px; }
.ez-landing .ez-step {
    --step: #2563eb;
    --step-glow: rgba(37, 99, 235, .22);
    display: block;
    position: relative;
    padding: 50px 14px 22px;
    border: 1px solid var(--lp-line);
    border-radius: 22px;
    background: #fff;
    text-align: center;
    overflow: visible;
}
.ez-landing .ez-step--red { --step: #e11d48; --step-glow: rgba(225, 29, 72, .22); }
.ez-landing .ez-step--green { --step: #10b981; --step-glow: rgba(16, 185, 129, .22); }
.ez-landing .ez-step .ez-step__no {
    position: absolute;
    top: -34px;
    left: 50%;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    border: 4px solid #fff;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--step) 70%, #fff) 0%, var(--step) 70%);
    background-color: var(--step);
    color: #fff;
    font-size: 30px;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 0 0 8px var(--step-glow), 0 12px 26px -8px var(--step);
}
.ez-landing .ez-step__media { overflow: hidden; border-radius: 16px; background: color-mix(in srgb, var(--step) 10%, #fff); }
.ez-landing .ez-step__media img { display: block; width: 100%; height: auto; aspect-ratio: 600 / 418; object-fit: cover; margin: 0; border-radius: 0; }
.ez-landing .ez-step h3 { margin: 18px 0 6px; font-size: 18px; }
.ez-landing .ez-step p { margin: 0 6px; }
.ez-landing .ez-steps__arrow { display: none; width: 72px; height: auto; align-self: start; margin-top: -26px; }
.ez-landing .ez-steps__arrow--blue { color: #4f46e5; }
.ez-landing .ez-steps__arrow--red { color: #f43f5e; }
@media (min-width: 768px) and (max-width: 991.98px) {
    .ez-landing .ez-steps__row { column-gap: 14px; }
    .ez-landing .ez-step { padding: 46px 10px 18px; }
    .ez-landing .ez-step .ez-step__no { width: 56px; height: 56px; top: -28px; font-size: 24px; }
}
@media (min-width: 992px) {
    .ez-landing .ez-steps__row { grid-template-columns: 1fr 64px 1fr 64px 1fr; column-gap: 10px; }
    .ez-landing .ez-steps__arrow { display: block; width: 64px; }
}
@media (max-width: 767.98px) {
    .ez-landing .ez-steps__row { max-width: 460px; margin: 0 auto; }
}
@media (min-width: 1200px) {
    .ez-landing .ez-steps__row { grid-template-columns: 1fr 104px 1fr 104px 1fr; }
    .ez-landing .ez-steps__arrow { width: 104px; margin-top: -30px; }
}

/* pricing v2: colour-coded cards with an icon badge over the top edge */
.ez-landing .ez-text-blue { color: #2563eb; }
.ez-landing .ez-pricing__trial { margin-top: 6px !important; font-weight: 600; color: var(--lp-navy) !important; }
.ez-landing .pricing { position: relative; }
.ez-landing .pricing .row { gap: 56px 18px; padding-top: 34px; }
.ez-landing .pricing .box.ez-plan {
    --plan: #16a34a;
    --plan-soft: #e9f9ef;
    position: relative;
    padding: 52px 18px 20px;
    border: 1.5px solid color-mix(in srgb, var(--plan) 45%, #fff);
    border-radius: 22px;
    background:
        radial-gradient(120% 60% at 50% 0%, color-mix(in srgb, var(--plan) 10%, #fff) 0%, #fff 60%);
    box-shadow: 0 18px 40px -24px color-mix(in srgb, var(--plan) 60%, transparent);
    overflow: visible;
}
.ez-landing .pricing .box.ez-plan--basic { --plan: #f97316; --plan-soft: #fff1e3; }
.ez-landing .pricing .box.ez-plan--standard { --plan: #2563eb; --plan-soft: #e6efff; }
.ez-landing .pricing .box.ez-plan--premium { --plan: #e11d48; --plan-soft: #ffe8ec; }
.ez-landing .pricing .box.ez-plan--corporate { --plan: #7c3aed; --plan-soft: #f1e9ff; }
.ez-landing .ez-plan__icon {
    position: absolute;
    top: -36px;
    left: 50%;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border: 4px solid #fff;
    border-radius: 50%;
    background: var(--plan-soft);
    color: var(--plan);
    font-size: 30px;
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--plan) 14%, transparent), 0 12px 24px -10px var(--plan);
}
.ez-landing .pricing .ez-plan h3 { margin: 0; color: var(--plan); font-size: 21px; font-weight: 800; text-transform: uppercase; letter-spacing: .01em; }
.ez-landing .ez-plan__sub { min-height: 2.9em; margin: 6px 0 14px; color: var(--lp-muted); font-size: 14px; line-height: 1.45; }
.ez-landing .ez-plan__price {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 96px;
    margin-bottom: 18px;
    padding: 12px 10px;
    border-radius: 14px;
    background: var(--plan-soft);
    color: var(--plan);
    line-height: 1.2;
}
.ez-landing .ez-plan__label { color: var(--lp-navy); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.ez-landing .ez-plan__amount { font-size: 24px; font-weight: 800; }
.ez-landing .ez-plan__price small { margin-top: 4px; color: var(--lp-ink); font-size: 11.5px; }
.ez-landing .ez-plan__phone { font-size: 17px; font-weight: 800; }
.ez-landing .ez-plan--corporate .ez-plan__price { background: var(--plan); color: #fff; }
.ez-landing .ez-plan--corporate .ez-plan__label { color: #fff; }
.ez-landing .pricing .ez-plan ul { margin-bottom: 20px; }
.ez-landing .pricing .ez-plan ul li { align-items: center; gap: 10px; padding: 5px 0; }
.ez-landing .pricing .ez-plan ul li i {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin: 0;
    border-radius: 50%;
    background: var(--plan-soft);
    color: var(--plan);
    font-size: 16px;
}
.ez-landing .pricing .ez-plan .btn-buy {
    gap: 8px;
    border: 0;
    border-radius: 12px;
    background: var(--plan);
    color: #fff;
    box-shadow: 0 12px 22px -12px var(--plan);
}
.ez-landing .pricing .ez-plan .btn-buy:hover { filter: brightness(.93); color: #fff; }
.ez-landing .pricing .ez-plan .btn-buy i { transition: transform .2s; }
.ez-landing .pricing .ez-plan .btn-buy:hover i { transform: translateX(3px); }
@media (min-width: 768px) and (max-width: 1199.98px) {
    .ez-landing .pricing .row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
    .ez-landing .pricing .row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
    .ez-landing .pricing .row { column-gap: 14px; }
    .ez-landing .pricing .box.ez-plan { padding: 50px 14px 18px; }
    .ez-landing .pricing .ez-plan ul { font-size: 14px; }
    .ez-landing .ez-plan__amount { font-size: 22px; }
}
@media (max-width: 767.98px) {
    .ez-landing .pricing .row { max-width: 400px; margin: 0 auto; }
    .ez-landing .ez-plan__sub { min-height: 0; }
}
/* narrower, centred Buy Now buttons */
.ez-landing .pricing .ez-plan .btn-buy { width: 80%; min-height: 44px; margin-left: auto; margin-right: auto; align-self: center; }

/* pricing waves: the supplied overlay sits behind the cards; multiply keeps
   its whites at the page colour and the top and bottom fade into the page */
.ez-landing .pricing.ez-section { position: relative; background: var(--lp-page); isolation: isolate; }
.ez-landing .pricing.ez-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("../img/landing/pricing-waves-800.png") center / cover no-repeat;
    background-image: image-set(url("../img/landing/pricing-waves-800.webp") type("image/webp"), url("../img/landing/pricing-waves-800.png") type("image/png"));
    mix-blend-mode: multiply;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 10%, #000 85%, transparent 100%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 10%, #000 85%, transparent 100%);
    pointer-events: none;
}
.ez-landing .pricing.ez-section > .container { position: relative; }
@media (min-width: 992px) {
    .ez-landing .pricing.ez-section::before {
        background-image: url("../img/landing/pricing-waves-1600.png");
        background-image: image-set(url("../img/landing/pricing-waves-1600.webp") type("image/webp"), url("../img/landing/pricing-waves-1600.png") type("image/png"));
    }
}
@media (max-width: 767.98px) {
    .ez-landing .pricing.ez-section::before { background-size: 220% auto; background-position: center top; background-repeat: repeat-y; opacity: .8; }
}

/* All features v2: card grid with tinted icon badges over the pricing waves */
.ez-landing .ez-allfeatures { position: relative; isolation: isolate; margin-top: 40px; padding: 8px 0 24px; }
.ez-landing .ez-allfeatures::before {
    position: absolute;
    top: -40px;
    bottom: -48px;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    z-index: -1;
    background: url("../img/landing/pricing-waves-800.png") center / cover no-repeat;
    background-image: image-set(url("../img/landing/pricing-waves-800.webp") type("image/webp"), url("../img/landing/pricing-waves-800.png") type("image/png"));
    mix-blend-mode: multiply;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
    pointer-events: none;
    content: none;
}
@media (min-width: 992px) {
    .ez-landing .ez-allfeatures::before {
        background-image: url("../img/landing/pricing-waves-1600.png");
        background-image: image-set(url("../img/landing/pricing-waves-1600.webp") type("image/webp"), url("../img/landing/pricing-waves-1600.png") type("image/png"));
    }
}
.ez-landing .ez-allfeatures .ez-subhead { margin: 0 0 22px; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem); font-weight: 800; }
.ez-landing .features .feature-box.ez-fcard {
    --fc: #2563eb;
    position: relative;
    height: 100%;
    min-height: 170px;
    gap: 10px;
    padding: 16px 12px 14px;
    border: 1px solid rgba(233, 236, 243, .9);
    border-radius: 18px;
    background:
        radial-gradient(90% 55% at 50% 100%, color-mix(in srgb, var(--fc) 7%, transparent) 0%, transparent 70%),
        #fff;
    box-shadow: 0 10px 28px -18px rgba(15, 27, 76, .25);
    text-align: center;
    transition: transform .2s, box-shadow .2s;
}
.ez-landing .features .feature-box.ez-fcard:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -20px rgba(15, 27, 76, .35); }
.ez-landing .ez-feature-grid > div { display: flex; flex-direction: column; }
.ez-landing .ez-fbadge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--fc) 13%, #fff);
    color: var(--fc);
    font-size: 26px;
    box-shadow: 0 8px 18px -10px var(--fc);
}
.ez-landing .ez-fcard:has(.ez-fbadge--purple) { --fc: #7c3aed; }
.ez-landing .ez-fcard:has(.ez-fbadge--green) { --fc: #10b981; }
.ez-landing .ez-fcard:has(.ez-fbadge--orange) { --fc: #f97316; }
.ez-landing .ez-fcard:has(.ez-fbadge--red) { --fc: #e11d48; }
.ez-landing .ez-fcard:has(.ez-fbadge--violet) { --fc: #8b5cf6; }
.ez-landing .ez-fbadge--purple { --fc: #7c3aed; }
.ez-landing .ez-fbadge--green { --fc: #10b981; }
.ez-landing .ez-fbadge--orange { --fc: #f97316; }
.ez-landing .ez-fbadge--red { --fc: #e11d48; }
.ez-landing .ez-fbadge--violet { --fc: #8b5cf6; }
.ez-landing .features .ez-fcard h3 { align-items: center; margin: 0; font-size: 15px; font-weight: 700; line-height: 1.35; justify-content: center; text-align: center; }
.ez-landing .features .feature-box.ez-fcard .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 6px 18px;
    border: 0;
    border-radius: 999px;
    background: #ffe4e8;
    color: var(--lp-red);
    font-size: 13.5px;
    font-weight: 700;
}
.ez-landing .features .feature-box.ez-fcard:hover .btn { background: var(--lp-red); color: #fff; }
.ez-landing .features .feature-box.ez-fcard:hover .ez-fbadge { background: color-mix(in srgb, var(--fc) 13%, #fff); color: var(--fc); }
@media (max-width: 575.98px) {
    .ez-landing .features .feature-box.ez-fcard { min-height: 150px; padding: 14px 8px 12px; }
    .ez-landing .ez-fbadge { width: 48px; height: 48px; font-size: 22px; }
    .ez-landing .features .ez-fcard h3 { font-size: 13.5px; }
}
@media (min-width: 1200px) {
    .ez-landing .ez-feature-grid { max-width: 1060px; margin-left: auto; margin-right: auto; }
}
.ez-landing .features .feature-box.ez-fcard i { width: auto; height: auto; margin: 0; padding: 0; border-radius: 0; background: none; color: inherit; font-size: inherit; }
.ez-landing .features .feature-box.ez-fcard:hover i { background: none; color: inherit; }
.ez-landing .features .feature-box.ez-fcard .btn i { font-size: 1em; transition: transform .2s; }
.ez-landing .features .feature-box.ez-fcard:hover .btn i { transform: translateX(3px); }
.ez-landing .ez-feature-grid > div > .feature-box { flex: 0 0 auto; min-height: 188px; }
@media (max-width: 575.98px) { .ez-landing .ez-feature-grid > div > .feature-box { min-height: 168px; } }
.ez-landing .features .feature-box.ez-fcard .btn.align-items-end { align-items: center !important; }

/* All features v3: plain background, equal cards, 5 per row on desktop */
.ez-landing .ez-feature-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    max-width: none;
    margin: 0;
    align-items: start;
}
.ez-landing .ez-feature-grid > div { width: auto; max-width: none; margin: 0; padding: 0; }
.ez-landing .ez-feature-grid > div > .feature-box.ez-fcard { height: 196px; min-height: 0; }
.ez-landing .features .ez-fcard h3 { flex: 0 0 auto; min-height: 2.7em; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; padding-top: 0; display: flex; }
.ez-landing .features .feature-box.ez-fcard { justify-content: space-between; }
.ez-landing .features .ez-feature-grid .accordion-body { margin-top: 8px; }
@media (min-width: 768px) { .ez-landing .ez-feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 992px) { .ez-landing .ez-feature-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .ez-landing .ez-feature-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 575.98px) {
    .ez-landing .ez-feature-grid { gap: 10px; }
    .ez-landing .ez-feature-grid > div > .feature-box.ez-fcard { height: 178px; }
}

/* --- Contact v2 (design match) ------------------------------------------ */
.ez-landing .ez-contact { position: relative; background: var(--lp-page); }
.ez-landing .ez-contact .ez-section-head h2 { color: var(--lp-navy); font-size: clamp(1.9rem, 1.3rem + 2vw, 2.75rem); }
.ez-landing .ez-contact .ez-section-head p { max-width: 560px; margin-inline: auto; font-size: 1rem; }

.ez-landing .ez-contact .ez-cinfo {
    --ci: #e11d2a;
    --ci-soft: #fdecee;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    height: 100%;
    border: 1px solid color-mix(in srgb, var(--ci) 14%, #fff);
    border-radius: 18px;
    background: linear-gradient(160deg, var(--ci-soft) 0%, #fff 78%);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
/* soft wave in the top-right corner */
.ez-landing .ez-contact .ez-cinfo::after {
    position: absolute;
    z-index: -1;
    top: -40px;
    right: -60px;
    width: 220px;
    height: 120px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--ci) 9%, transparent);
    transform: rotate(-18deg);
    content: none;
}
.ez-landing .ez-contact .ez-cinfo--pink   { --ci: #e11d2a; --ci-soft: #fdeef0; }
.ez-landing .ez-contact .ez-cinfo--blue   { --ci: #2563eb; --ci-soft: #eaf1fe; }
.ez-landing .ez-contact .ez-cinfo--green  { --ci: #16a34a; --ci-soft: #e9f8ee; }
.ez-landing .ez-contact .ez-cinfo--orange { --ci: #f59e0b; --ci-soft: #fef5e4; }
.ez-landing .ez-contact .ez-cinfo__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--ci) 16%, #fff);
}
.ez-landing .contact .ez-cinfo .ez-cinfo__icon i { color: var(--ci); font-size: 24px; line-height: 1; }
.ez-landing .contact .ez-cinfo h3 { margin: 16px 0 6px; font-size: 18px; font-weight: 800; color: var(--lp-navy); }
.ez-landing .contact .ez-cinfo p { color: #5b6477; font-size: 14.5px; line-height: 1.65; }
.ez-landing .contact .ez-cinfo .ez-cinfo__strong { color: var(--lp-navy); font-size: 16px; font-weight: 600; }

.ez-landing .ez-contact__formcol { position: relative; z-index: 2; }
.ez-landing .contact .ez-contact__formcol .php-email-form {
    padding: 26px 24px;
    border: 1px solid #e8ecf3;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .08);
}
.ez-landing .ez-contact__title { margin: 0; color: var(--lp-navy); font-size: 1.45rem; font-weight: 800; }
.ez-landing .ez-contact__sub { margin: 6px 0 18px; color: var(--lp-muted); font-size: 14px; }
.ez-landing .ez-field { position: relative; }
.ez-landing .ez-field > i {
    position: absolute;
    top: 0;
    left: 14px;
    display: flex;
    align-items: center;
    height: 48px;
    color: #64748b;
    font-size: 17px;
    pointer-events: none;
}
.ez-landing .contact .php-email-form .ez-field .form-control { padding-left: 44px; background: #fff; }
.ez-landing .contact .php-email-form .ez-field--area textarea { min-height: 120px; padding-top: 12px; resize: vertical; }
.ez-landing .ez-field:focus-within > i { color: var(--lp-red); }
.ez-landing .ez-contact__actions { text-align: left; }
.ez-landing .contact .php-email-form .ez-contact__actions button[type=submit] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    padding: 12px 30px;
    border-radius: 12px;
    background: linear-gradient(180deg, #f43341, var(--lp-red));
    box-shadow: 0 10px 22px rgba(225, 29, 42, .28);
    font-weight: 600;
}
.ez-landing .contact .php-email-form .ez-contact__actions button[type=submit] i { font-size: 18px; transition: transform .2s; }
.ez-landing .contact .php-email-form .ez-contact__actions button[type=submit]:hover i { transform: translateX(3px); }

@media (max-width: 575.98px) {
    .ez-landing .ez-contact .ez-cinfo { padding: 20px 18px; }
    .ez-landing .contact .ez-contact__formcol .php-email-form { padding: 22px 16px; }
    .ez-landing .contact .php-email-form .ez-contact__actions button[type=submit] { width: 100%; }
}

/* --- Contact v3: card action buttons, no agent photo ---------------------- */
.ez-landing .ez-contact .ez-cinfo { display: flex; flex-direction: column; align-items: flex-start; padding: 22px 22px 20px; }
.ez-landing .contact .ez-cinfo h3 { margin-top: 14px; }
.ez-landing .ez-contact .ez-cinfo__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    margin-top: auto;
    padding: 8px 18px;
    border: 1.5px solid var(--ci);
    border-radius: 999px;
    background: #fff;
    color: var(--ci);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    transition: background .2s, color .2s;
}
.ez-landing .ez-contact .ez-cinfo p { margin-bottom: 16px; }
.ez-landing .contact .ez-cinfo .ez-cinfo__btn i { color: inherit; font-size: 16px; line-height: 1; transition: transform .2s; }
.ez-landing .ez-contact .ez-cinfo__btn:hover,
.ez-landing .ez-contact .ez-cinfo__btn:focus-visible { background: var(--ci); color: #fff; }
.ez-landing .ez-contact .ez-cinfo__btn:hover i { transform: translateX(3px); }
.ez-landing .ez-contact .ez-cinfo--orange .ez-cinfo__btn { --ci: #ea8a00; }
.ez-landing #ez-contact-form { scroll-margin-top: 90px; }
@media (max-width: 575.98px) {
    .ez-landing .ez-contact .ez-cinfo__btn { min-height: 44px; }
}
@media (min-width: 992px) {
    .ez-landing .contact .php-email-form .ez-field--area textarea { min-height: 200px; }
}

/* --- CTA v2: full-width banner photo ------------------------------------- */
.ez-landing .ez-cta {
    isolation: isolate;
    background-color: #0638b8;
    background-image: url("../img/landing/cta-bg-phone.jpg");
    background-image: image-set(url("../img/landing/cta-bg-phone.webp") type("image/webp"), url("../img/landing/cta-bg-phone.jpg") type("image/jpeg"));
    background-size: cover;
    background-position: left center;
    background-repeat: no-repeat;
}
.ez-landing .ez-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(6, 30, 120, .5) 0%, rgba(6, 30, 120, .2) 40%, transparent 60%);
    pointer-events: none;
}
.ez-landing .ez-cta .container { position: relative; z-index: 2; }
.ez-landing .ez-cta .ez-eyebrow--light { color: #fff; opacity: .9; }
.ez-landing .ez-cta p { color: #e3ebff; }
.ez-landing .ez-cta h2 { text-shadow: 0 2px 12px rgba(0, 20, 90, .25); }
.ez-landing .ez-cta__pic { display: block; }

/* phones: blue band with the person photo under the text */
@media (max-width: 767.98px) {
    .ez-landing .ez-cta::before { background: linear-gradient(180deg, rgba(6, 30, 120, .35), transparent 70%); }
    .ez-landing .ez-cta__inner { display: flex; flex-direction: column; gap: 24px; padding: 40px 0 32px; }
    .ez-landing .ez-cta__text { text-align: center; }
    .ez-landing .ez-cta__pic { width: 100%; }
    .ez-landing .ez-cta__img {
        position: static;
        display: block;
        width: 100%;
        max-width: 460px;
        height: auto;
        aspect-ratio: 640 / 463;
        margin: 0 auto;
        border-radius: 18px;
        box-shadow: 0 18px 36px -18px rgba(0, 10, 60, .6);
    }
}
/* tablet and up: the banner photo is sized to the band's height and pinned
   right, so a short band still shows the whole person, laptop and arrow */
@media (min-width: 768px) {
    .ez-landing .ez-cta::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        z-index: 0;
        aspect-ratio: 2172 / 724;
        background-image: url("../img/landing/cta-bg-1400.jpg");
        background-image: image-set(url("../img/landing/cta-bg-1400.webp") 1x type("image/webp"), url("../img/landing/cta-bg-2172.webp") 2x type("image/webp"), url("../img/landing/cta-bg-1400.jpg") 1x type("image/jpeg"));
        background-size: cover;
        background-position: right center;
        -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 30%);
                mask-image: linear-gradient(90deg, transparent 0%, #000 30%);
        pointer-events: none;
    }
    .ez-landing .ez-cta__pic { display: none; }
    .ez-landing .ez-cta__inner { display: flex; align-items: center; min-height: 0; padding: 48px 0; }
    .ez-landing .ez-cta__text { max-width: 48%; }
}
@media (min-width: 1200px) {
    .ez-landing .ez-cta__inner { padding: 60px 0; }
    .ez-landing .ez-cta__text { max-width: 46%; }
}

/* --- Section rhythm: one spacing scale for every landing section ----------
   --sec-y is the top/bottom padding of every section. Sections whose images
   carry their own empty margins (about, features devices) are trimmed so
   the visible gap between sections stays the same everywhere. */
@media (min-width: 768px) { .ez-landing { --sec-y: 48px; --head-gap: 36px; } }
@media (min-width: 992px) { .ez-landing { --sec-y: 52px; --head-gap: 40px; } }

.ez-landing section.ez-section { padding-top: var(--sec-y); padding-bottom: var(--sec-y); }
.ez-landing section.ez-section .ez-section-head { margin-bottom: var(--head-gap); }
/* next to the hero and CTA bands: extra padding so the text is not tight against the band edge */
.ez-landing section.ez-section.ez-trust { padding-top: calc(var(--sec-y) * 1.6); }
.ez-landing section.ez-section.ez-contact { padding-bottom: calc(var(--sec-y) * 1.6); }
/* the about photo already has blended margin above and below (~36px on wide screens) */
@media (min-width: 992px) {
    .ez-landing section.ez-section.about.ez-about { padding-top: var(--sec-y); padding-bottom: var(--sec-y); }
}
@media (min-width: 1400px) {
    .ez-landing section.ez-section.about.ez-about { padding-top: calc(var(--sec-y) - 28px); padding-bottom: calc(var(--sec-y) - 28px); }
}
.ez-landing section.ez-section.values { padding-top: var(--sec-y); }
/* steps: the number circles sit 34px above the cards */
.ez-landing section.ez-section.ez-steps .ez-section-head { margin-bottom: calc(var(--head-gap) - 20px); }
/* pricing: the trial line sits under the heading, keep the same gap to the cards */
.ez-landing section.ez-section.pricing .ez-section-head { margin-bottom: calc(var(--head-gap) - 20px); }
/* all features: no extra bottom padding, the section padding gives the gap */
.ez-landing .ez-allfeatures { padding-bottom: 0; }
@media (min-width: 992px) {
    /* the devices photo has ~74px of empty space above the screens */
    .ez-landing .ez-features .ez-section-head + .row { margin-top: -74px; }
    /* list sits at the top of the row, one heading-gap below the heading (row gutter is 48px) */
    .ez-landing .ez-features .ez-section-head + .row > .col-lg-5 { align-self: flex-start; padding-top: 26px; }
}
/* testimonials: the slider keeps 40px under the cards for its dots */
.ez-landing section.ez-section.testimonials { padding-bottom: 0; }
.ez-landing section.ez-section.testimonials .testimonials-slider { padding-bottom: 40px; }
.ez-landing section.ez-section.testimonials .swiper-pagination { bottom: 4px; }

/* --- Taller hero: extra room above and below the copy -------------------- */
@media (min-width: 768px) and (max-width: 991.98px) {
    .ez-landing .hero.ez-hero { padding-top: 124px; padding-bottom: 84px; }
}
@media (min-width: 992px) {
    .ez-landing .hero.ez-hero { min-height: 760px; padding-top: 180px; padding-bottom: 116px; }
}
/* 1400-1799px: the banner is zoomed to cover, so a taller hero pushes the
   photo into the copy; grow it less there */
@media (min-width: 1400px) and (max-width: 1799.98px) {
    .ez-landing .hero.ez-hero { min-height: 730px; padding-top: 166px; padding-bottom: 96px; }
}
@media (min-width: 1800px) {
    .ez-landing .hero.ez-hero { min-height: max(770px, calc(100vw / 2.865 + 70px)); }
}

/* --- Hero blends into the page ------------------------------------------
   No line on the hero's bottom edge: the photo's white areas take on the
   page colour (multiply) and the last ~110px fade softly into the next
   section's background. The text column stays above the fade. */
.ez-landing .hero.ez-hero { position: relative; isolation: isolate; }
.ez-landing .hero.ez-hero::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 110px;
    background: linear-gradient(180deg, rgba(245, 248, 253, 0) 0%, var(--lp-page) 100%);
    pointer-events: none;
}
.ez-landing .ez-hero__media img { mix-blend-mode: multiply; }
/* phones and tablets: the photo loses its card frame and melts into the hero */
@media (max-width: 991.98px) {
    .ez-landing .hero.ez-hero { background: linear-gradient(180deg, #fff 0%, var(--lp-page) 70%); }
    .ez-landing .ez-hero__media img {
        border-radius: 0;
        box-shadow: none;
        -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent), linear-gradient(180deg, transparent, #000 12%, #000 78%, transparent);
        -webkit-mask-composite: source-in;
        mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent), linear-gradient(180deg, transparent, #000 12%, #000 78%, transparent);
        mask-composite: intersect;
    }
}
@media (min-width: 992px) {
    /* the side-by-side photo sits under the fade, not above the text column */
    .ez-landing .hero.ez-hero > .container { position: static; }
    .ez-landing .hero.ez-hero .col-lg-6:first-child { z-index: 2; }
    .ez-landing .ez-hero__media { z-index: 0; }
    .ez-landing .hero.ez-hero::after { z-index: 1; height: 120px; }
}
@media (min-width: 1400px) {
    .ez-landing .hero.ez-hero { background-color: var(--lp-page); background-blend-mode: multiply; }
}

/* --- Hero floating cards (user's reference: "Book in minutes" / "You're next!"):
   white cards with a tinted icon tile, title + muted line, sitting on the corners
   and sides of the hero photo. Slide in on load, then bob gently on offset timing.
   2 on phones; static for reduced motion ---------------------------------------- */
.ez-landing .ez-hcards { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.ez-landing .ez-hcard {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px 12px 12px;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .16), 0 2px 6px rgba(15, 23, 42, .06);
    color: #111827;
    white-space: nowrap;
    opacity: 0;
    animation: ez-hcard-in .7s cubic-bezier(.2, .8, .2, 1) forwards,
               ez-hcard-bob 6s ease-in-out infinite alternate;
}
.ez-landing .ez-hcard strong { display: block; font-size: 14px; font-weight: 700; line-height: 1.25; }
.ez-landing .ez-hcard small  { display: block; font-size: 12px; color: #6b7280; line-height: 1.3; margin-top: 2px; }
.ez-landing .ez-hcard__icon {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 12px; font-size: 19px;
}
.ez-landing .ez-hcard--green  .ez-hcard__icon { background: #dcfce7; color: #16a34a; }
.ez-landing .ez-hcard--amber  .ez-hcard__icon { background: #fef3c7; color: #d97706; }
.ez-landing .ez-hcard--blue   .ez-hcard__icon { background: #dbeafe; color: #2563eb; }
.ez-landing .ez-hcard--purple .ez-hcard__icon { background: #f3e8ff; color: #9333ea; }
/* upper-left, upper-right, mid-right, lower-left of the photo */
.ez-landing .ez-hcard:nth-child(1) { top: 10%; left: 46%; animation-delay: .2s, .9s; }
.ez-landing .ez-hcard:nth-child(2) { top: 21%; right: 3%; animation-delay: .5s, 2.4s; }
.ez-landing .ez-hcard:nth-child(3) { top: 50%; right: 2%; animation-delay: .8s, 1.6s; }
.ez-landing .ez-hcard:nth-child(4) { bottom: 14%; left: 28%; animation-delay: 1.1s, 3.2s; }
@keyframes ez-hcard-in {
    from { opacity: 0; translate: 0 18px; scale: .94; }
    to   { opacity: 1; translate: 0 0;    scale: 1; }
}
@keyframes ez-hcard-bob {
    from { transform: translateY(-7px); }
    to   { transform: translateY(7px); }
}
@media (max-width: 1199.98px) {
    .ez-landing .ez-hcard { padding: 9px 14px 9px 9px; gap: 10px; border-radius: 14px; }
    .ez-landing .ez-hcard__icon { width: 34px; height: 34px; font-size: 16px; border-radius: 10px; }
    .ez-landing .ez-hcard strong { font-size: 13px; }
    .ez-landing .ez-hcard small { font-size: 11px; }
    .ez-landing .ez-hcard:nth-child(2) { top: 27%; }
}
@media (max-width: 991.98px) {
    .ez-landing .ez-hcard:nth-child(n+3) { display: none; }
    .ez-landing .ez-hcard { padding: 7px 12px 7px 7px; gap: 8px; border-radius: 12px; }
    .ez-landing .ez-hcard__icon { width: 28px; height: 28px; font-size: 14px; border-radius: 8px; }
    .ez-landing .ez-hcard strong { font-size: 12px; }
    .ez-landing .ez-hcard small { font-size: 10.5px; }
    .ez-landing .ez-hcard:nth-child(1) { top: 6%; left: 4%; right: auto; }
    .ez-landing .ez-hcard:nth-child(2) { top: auto; bottom: 6%; right: 4%; }
}
@media (prefers-reduced-motion: reduce) {
    .ez-landing .ez-hcard { animation: none; opacity: 1; }
}
/* >=1400px the banner is the hero background and the cropped photo is hidden,
   so the media box comes back as an empty layer over the banner's right side
   to carry the cards */
@media (min-width: 1400px) {
    .ez-landing .ez-hero__media {
        display: block; position: absolute; top: 0; right: 0; bottom: 0; left: 42%;
        width: auto; max-width: none; margin: 0; z-index: 2; pointer-events: none;
    }
    .ez-landing .ez-hero__media picture, .ez-landing .ez-hero__media img { display: none; }
    .ez-landing .ez-hcard:nth-child(1) { top: 12%; left: 47%; }
    .ez-landing .ez-hcard:nth-child(2) { top: 22%; right: 5%; }
    .ez-landing .ez-hcard:nth-child(3) { top: 54%; right: 3%; }
    .ez-landing .ez-hcard:nth-child(4) { bottom: 14%; left: 30%; }
}
/* >=1400px the banner's dark chair sits behind the last feature point
   ("Grow Faster"); a soft frosted backing keeps the row readable */
@media (min-width: 1400px) {
    .ez-landing .ez-hero__points {
        width: fit-content; max-width: 100%;
        padding: 10px 18px 10px 10px; border-radius: 999px;
        background: rgba(255, 255, 255, .78);
        -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
        box-shadow: 0 6px 20px rgba(15, 23, 42, .06);
    }
}
