.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.tvzp-notification-bell__inner div#tutor-notifications-wrapper {
    margin: 0;
}
.tmc-count-wraper {
    position: relative;
    min-height: 40px;
    display: flex;
}
.tmc-count-wraper .tmc-count {
    position: absolute;
    top: 0;
    right: -12px;
    font-size: 10px!important;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: auto;
    line-height: 1;
    width: 16px!important;
    height: 16px!important;
    padding: 0!important;
    font-weight: 400;
    min-width: auto!important;
    background: var(--e-global-color-accent);
    color: #fff;
}
.tvzp-site-header,
.tvzp-hero-showcase,
.tvzp-feature-cards,
.tvzp-learning-process,
.tvzp-course-carousel,
.tvzp-testimonial-showcase,
.tvzp-faq-tabs,
.tvzp-contact-showcase,
.tvzp-footer {
    --tvzp-accent: #b48a58;
    --tvzp-dark: #151515;
    --tvzp-text: #101010;
    --tvzp-muted: #6f6f6f;
    --tvzp-soft: #fbf7f2;
    font-family: inherit;
    color: var(--tvzp-text);
}

.tvzp-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 54px;
    padding: 14px 28px;
    border: 1px solid transparent;
    clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%);
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.tvzp-button:hover,
.tvzp-button:focus {
    transform: translateY(-1px);
}

.tvzp-button--filled {
    background: var(--tvzp-accent);
    border-color: var(--tvzp-accent);
    color: #ffffff;
}

.tvzp-button--outline {
    background: #ffffff;
    border-color: rgba(16, 16, 16, 0.25);
    color: var(--tvzp-text);
}

.tvzp-button__icon,
.tvzp-button svg {
    width: 16px;
    height: 16px;
    font-size: 16px;
    flex: 0 0 auto;
}

.tvzp-section-heading {
    max-width: 760px;
}

.tvzp-section-heading__eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    color: var(--tvzp-accent);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.34em;
    text-transform: uppercase;
}

.tvzp-section-heading__title {
    margin: 0;
    font-size: clamp(34px, 4vw, 58px);
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.tvzp-section-heading__description {
    margin: 18px 0 0;
    color: var(--tvzp-muted);
    font-size: 18px;
    line-height: 1.7;
}

.tvzp-site-header {
    position: relative;
    z-index: 20;
    border-bottom: 1px solid rgba(16, 16, 16, 0.09);
    background: #ffffff;
}

.tvzp-site-header__inner {
    width: min(1240px, calc(100% - 40px));
    min-height: 86px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.tvzp-site-header__logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
}

.tvzp-site-header__logo-mark,
.tvzp-footer__logo-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: #0f1115;
    color: #ffffff;
    font-size: 17px;
    font-weight: 700;
}

.tvzp-site-header__logo-image img,
.tvzp-footer__logo-image img {
    display: block;
    max-height: 36px;
    width: auto;
}

.tvzp-site-header__logo-text,
.tvzp-footer__logo-text {
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.03em;
}

.tvzp-site-header__desktop {
    display: flex;
    align-items: center;
    gap: 28px;
    flex: 1 1 auto;
    justify-content: flex-end;
}

.tvzp-site-header__nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.tvzp-site-header__menu {
    display: flex;
    align-items: center;
    gap: 28px;
}

.tvzp-site-header__menu li {
    position: relative;
}

.tvzp-site-header__nav a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #121212;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
    transition: color 0.2s ease;
}

.tvzp-site-header__nav .menu-item-has-children > a::after {
    content: "";
    width: 7px;
    height: 7px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-1px);
}

.tvzp-site-header__nav .sub-menu {
    position: absolute;
    inset-inline-start: 0;
    top: calc(100% + 16px);
    min-width: 220px;
    padding: 14px 0;
    border: 1px solid rgba(16, 16, 16, 0.08);
    background: #ffffff;
    box-shadow: 0 16px 42px rgba(0, 0, 0, 0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.tvzp-site-header__nav .sub-menu li {
    width: 100%;
}

.tvzp-site-header__nav .sub-menu a {
    display: block;
    padding: 10px 18px;
    font-size: 15px;
}

.tvzp-site-header__nav li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.tvzp-site-header__actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.tvzp-site-header__icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: #111111;
    text-decoration: none;
}

.tvzp-site-header__icon-btn i,
.tvzp-site-header__icon-btn svg,
.tvzp-site-header__toggle i,
.tvzp-site-header__toggle svg,
.tvzp-site-header__close i,
.tvzp-site-header__close svg {
    width: 18px;
    height: 18px;
    font-size: 18px;
}

.tvzp-site-header__button {
    min-height: 50px;
    padding-inline: 24px;
    font-size: 15px;
    white-space: nowrap;
}

.tvzp-mini-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid rgba(15, 52, 39, 0.12);
    border-radius: 8px;
    background: #ffffff;
    color: var(--tvzp-green-900);
    line-height: 1;
    text-decoration: none;
    transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.tvzp-mini-cart:hover,
.tvzp-mini-cart:focus {
    color: var(--tvzp-green-700);
    text-decoration: none;
}

.tvzp-mini-cart__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    color: currentColor;
    font-size: 20px;
    line-height: 1;
    flex-shrink: 0;
    transition: color 0.25s ease, background-color 0.25s ease;
}

.tvzp-mini-cart__icon svg {
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.tvzp-mini-cart__label,
.tvzp-mini-cart__qty,
.tvzp-mini-cart__price {
    color: currentColor;
    transition: color 0.25s ease;
}

.tvzp-mini-cart__label {
    font-size: 14px;
    font-weight: 600;
}

.tvzp-mini-cart__qty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    min-height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--tvzp-green-700);
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
}

.tvzp-mini-cart__price {
    font-size: 14px;
    font-weight: 700;
}

.tvzp-site-header__button--primary {
    background: #0f1115;
    border-color: #0f1115;
    color: #ffffff;
}

.tvzp-site-header__button--secondary {
    background: #ffffff;
    border-color: rgba(16, 16, 16, 0.22);
    color: #111111;
}

.tvzp-site-header__toggle,
.tvzp-site-header__close {
    display: none;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #111111;
    cursor: pointer;
}

.tvzp-site-header__overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 10, 10, 0.42);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

.tvzp-site-header__drawer {
    position: fixed;
    inset-inline-end: 0;
    top: 0;
    bottom: 0;
    width: min(92vw, 360px);
    padding: 26px 24px 32px;
    border-inline-start: 1px solid rgba(16, 16, 16, 0.1);
    background: #ffffff;
    transform: translateX(100%);
    transition: transform 0.3s ease;
    overflow-y: auto;
}

.tvzp-site-header__drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 26px;
}

.tvzp-site-header__nav--mobile .tvzp-site-header__menu {
    display: block;
}

.tvzp-site-header__nav--mobile .tvzp-site-header__menu > li {
    border-top: 1px solid rgba(16, 16, 16, 0.08);
}

.tvzp-site-header__nav--mobile .tvzp-site-header__menu > li:last-child {
    border-bottom: 1px solid rgba(16, 16, 16, 0.08);
}

.tvzp-site-header__nav--mobile a {
    padding: 16px 0;
    width: calc(100% - 28px);
}

.tvzp-site-header__nav--mobile .sub-menu {
    position: static;
    min-width: 0;
    padding: 0 0 10px 18px;
    border: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
}

.tvzp-site-header__nav--mobile .menu-item-has-children {
    position: relative;
}

.tvzp-site-header__submenu-toggle {
    position: absolute;
    inset-inline-end: 0;
    top: 8px;
    width: 28px;
    height: 28px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.tvzp-site-header__submenu-toggle::before,
.tvzp-site-header__submenu-toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    inset-inline-start: 50%;
    width: 12px;
    height: 1.5px;
    background: #111111;
    transform: translate(-50%, -50%);
}

.tvzp-site-header__submenu-toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
    transition: transform 0.2s ease;
}

.tvzp-site-header__nav--mobile .menu-item-has-children.is-open > .sub-menu {
    display: block;
}

.tvzp-site-header__nav--mobile .menu-item-has-children.is-open > .tvzp-site-header__submenu-toggle::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.tvzp-site-header__drawer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.tvzp-site-header__button--full {
    width: 100%;
}

.tvzp-site-header.is-open .tvzp-site-header__overlay {
    opacity: 1;
    visibility: visible;
}

.tvzp-site-header.is-open .tvzp-site-header__drawer {
    transform: translateX(0);
}

.tvzp-site-header.is-mobile-layout .tvzp-site-header__desktop {
    display: none;
}

.tvzp-site-header.is-mobile-layout .tvzp-site-header__toggle,
.tvzp-site-header.is-mobile-layout .tvzp-site-header__close {
    display: inline-flex;
}

.tvzp-site-header:not(.is-mobile-layout) .tvzp-site-header__overlay,
.tvzp-site-header:not(.is-mobile-layout) .tvzp-site-header__drawer,
.tvzp-site-header:not(.is-mobile-layout) .tvzp-site-header__toggle {
    display: none;
}

.tvzp-hero-showcase {
    position: relative;
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
    padding: 40px 0 54px;
}

.tvzp-hero-showcase__slide {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 430px) minmax(0, 1fr);
    gap: 42px;
    min-height: 740px;
    align-items: center;
}

.tvzp-hero-showcase__title {
    margin: 0;
    font-size: clamp(66px, 8vw, 112px);
    line-height: 0.95;
    letter-spacing: -0.06em;
}

.tvzp-hero-showcase__title-primary,
.tvzp-hero-showcase__title-highlight {
    display: block;
}

.tvzp-hero-showcase__title-highlight {
    color: var(--tvzp-hero-accent, var(--tvzp-accent));
}

.tvzp-hero-showcase__description {
    max-width: 380px;
    margin: 28px 0 0;
    font-size: 18px;
    line-height: 1.65;
    color: #242424;
}

.tvzp-hero-showcase__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

.tvzp-hero-showcase__visual {
    position: relative;
    min-height: 700px;
}

.tvzp-hero-showcase__shape {
    position: absolute;
    top: 0;
    inset-inline-end: 0;
    width: 78%;
    height: 76%;
    background: var(--tvzp-hero-accent, var(--tvzp-accent));
    clip-path: polygon(34% 0, 100% 0, 100% 78%, 65% 100%, 0 100%, 0 34%);
}

.tvzp-hero-showcase__main-media {
    position: absolute;
    inset-inline-end: 0;
    top: 38px;
    width: 88%;
    height: 76%;
}

.tvzp-hero-showcase__main-image,
.tvzp-hero-showcase__support-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.tvzp-hero-showcase__support-media {
    position: absolute;
    inset-inline-start: 0;
    bottom: 0;
    width: 44%;
    height: 36%;
}

.tvzp-hero-showcase__support-media::before {
    content: "";
    position: absolute;
    inset: 18% auto auto -12%;
    width: 70%;
    height: 62%;
    background: var(--tvzp-hero-accent, var(--tvzp-accent));
    z-index: -1;
}

.tvzp-hero-showcase__meta {
    position: absolute;
    inset-inline-end: 2%;
    bottom: 14px;
    display: grid;
    gap: 90px;
    justify-items: start;
}

.tvzp-hero-showcase__label {
    position: relative;
    display: inline-block;
    padding-top: 34px;
    color: #404040;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.54em;
    text-transform: uppercase;
    max-width: 170px;
}

.tvzp-hero-showcase__label::before {
    content: "";
    position: absolute;
    top: 0;
    inset-inline-start: 0;
    width: 150px;
    height: 2px;
    background: linear-gradient(90deg, var(--tvzp-hero-accent, var(--tvzp-accent)) 0 40%, rgba(0, 0, 0, 0.08) 40% 100%);
}

.tvzp-hero-showcase__number {
    font-size: 22px;
    font-weight: 600;
    color: #161616;
}

.tvzp-hero-showcase .owl-nav {
    position: absolute;
    inset-inline-end: 8px;
    bottom: 114px;
    display: flex;
    gap: 8px;
}

.tvzp-hero-showcase .owl-nav button,
.tvzp-course-carousel .owl-nav button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 0;
    background: transparent;
    color: #555555;
    cursor: pointer;
}

.tvzp-hero-showcase .owl-dots {
    position: absolute;
    inset-inline-start: 56%;
    bottom: 138px;
    display: flex;
    gap: 12px;
}

.tvzp-hero-showcase .owl-dots button,
.tvzp-course-carousel .owl-dots button,
.tvzp-testimonial-showcase .owl-dots button {
    padding: 0;
    border: 0;
    background: transparent;
}

.tvzp-hero-showcase .owl-dots button span {
    display: block;
    width: 84px;
    height: 2px;
    background: rgba(0, 0, 0, 0.1);
    transition: background-color 0.2s ease;
}

.tvzp-hero-showcase .owl-dots .active span {
    background: var(--tvzp-accent);
}

.tvzp-feature-cards {
    margin: 0 auto;
}

.tvzp-feature-cards__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.tvzp-feature-card {
    min-height: 100%;
    padding: 30px 20px 28px;
    background: linear-gradient(180deg, #fffdfb 0%, var(--tvzp-soft) 100%);
    border: 1px solid rgba(180, 138, 88, 0.08);
    box-shadow: 0 18px 50px rgba(185, 158, 123, 0.09);
}

.tvzp-feature-card__icon {
    display: inline-flex;
    color: var(--tvzp-accent);
}

.tvzp-feature-card__icon svg,
.tvzp-feature-card__icon i {
    width: 22px;
    height: 22px;
    font-size: 22px;
}

.tvzp-feature-card__title {
    margin: 18px 0 18px;
    font-size: 42px;
    line-height: 0.98;
    letter-spacing: -0.05em;
}

.tvzp-feature-card__description {
    margin: 0 0 28px;
    color: #434343;
    font-size: 18px;
    line-height: 1.72;
}

.tvzp-feature-card__button {
    min-height: 52px;
    padding-inline: 24px;
}

.tvzp-learning-process__inner {
    margin: 0 auto;
}

.tvzp-learning-process .tvzp-section-heading__title,
.tvzp-learning-process .tvzp-section-heading__description {
    color: #ffffff;
}

.tvzp-learning-process .tvzp-section-heading__title {
    font-size: clamp(40px, 5vw, 70px);
}

.tvzp-learning-process .tvzp-section-heading__title em,
.tvzp-learning-process .tvzp-section-heading__title strong {
    color: var(--tvzp-accent);
}

.tvzp-learning-process__steps--grid {
    display: flex;
    flex-wrap: wrap;
    --tvzp-lp-gap: 36px;
    gap: var(--tvzp-lp-gap);
}

.tvzp-learning-process__steps--grid .tvzp-learning-process__step {
    flex: 0 0 calc(33.333% - var(--tvzp-lp-gap) * 2 / 3);
    max-width: calc(33.333% - var(--tvzp-lp-gap) * 2 / 3);
}

.tvzp-learning-process__steps--carousel {
    /* Owl Carousel handles flex layout internally */
}

/* Carousel nav arrow base style */
.tvzp-learning-process__steps--carousel .owl-nav button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: rgba(255,255,255,0.12);
    color: #ffffff;
    border: none;
    border-radius: 50%;
    font-size: 22px;
    cursor: pointer;
    transition: background 0.2s ease;
}

.tvzp-learning-process__steps--carousel .owl-nav button:hover {
    background: rgba(255,255,255,0.24);
}

.tvzp-learning-process__steps--carousel .owl-dots {
    text-align: center;
    margin-top: 18px;
}

.tvzp-learning-process__steps--carousel .owl-dots .owl-dot span {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin: 4px;
    background: rgba(255,255,255,0.3);
    border-radius: 50%;
    transition: background 0.25s ease;
}

.tvzp-learning-process__steps--carousel .owl-dots .owl-dot.active span {
    background: var(--tvzp-accent);
}

.tvzp-learning-process__step {
    position: relative;
}

.tvzp-learning-process__step-number {
    display: block;
    margin-bottom: 12px;
    color: transparent;
    font-size: 86px;
    font-weight: 700;
    line-height: 0.9;
    -webkit-text-stroke: 1.6px rgba(180, 138, 88, 0.9);
    position: absolute;
    left: -20px;
    top: 0;
}
.tvzp-learning-process__step-frame {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 248px;
    margin-bottom: 18px;
}

.tvzp-learning-process__step-image {
    position: relative;
    z-index: 1;
    max-width: 250px;
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.tvzp-learning-process__step-title {
    margin: 0 0 10px;
    font-size: 36px;
    line-height: 1.04;
    letter-spacing: -0.04em;
}

.tvzp-learning-process__step-description {
    margin: 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: 18px;
    line-height: 1.6;
}

.tvzp-learning-process__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-top: 54px;
    padding-top: 34px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.tvzp-learning-process__stat {
    text-align: center;
}

.tvzp-learning-process__stat-value {
    display: block;
    font-size: clamp(42px, 4vw, 66px);
    line-height: 1;
    letter-spacing: -0.05em;
}

.tvzp-learning-process__stat-label {
    display: block;
    margin-top: 8px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 18px;
}

.tvzp-learning-process__note {
    margin: 54px 0 0;
    text-align: center;
    color: rgba(255, 255, 255, 0.68);
    font-size: 18px;
}

.tvzp-learning-process__cta {
    margin: 24px auto 0;
}

.tvzp-course-carousel {
    padding: 94px 0 96px;
    background: #f5f5f3;
}

.tvzp-course-carousel__top {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto 38px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px;
}

.tvzp-course-carousel__track {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}

.tvzp-course-card {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.tvzp-course-card__media {
    position: relative;
    padding: 14px;
}

.tvzp-course-card__image {
    width: 100%;
    height: 206px;
    object-fit: cover;
    display: block;
}

.tvzp-course-card__media-actions {
    position: absolute;
    top: 28px;
    inset-inline-start: 28px;
    display: flex;
    gap: 10px;
}

.tvzp-course-card__round-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #111111;
}

.tvzp-course-card__mini-icon,
.tvzp-course-card__round-icon svg {
    width: 14px;
    height: 14px;
    font-size: 14px;
}

.tvzp-course-card__badge {
    position: absolute;
    top: 28px;
    inset-inline-end: 28px;
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.tvzp-course-card__body {
    padding: 4px 18px 0;
}

.tvzp-course-card__meta-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 14px;
}

.tvzp-course-card__provider {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.tvzp-course-card__provider-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 20px;
    padding: 0 6px;
    background: #1b82f1;
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    border-radius: 3px;
}

.tvzp-course-card__provider-name {
    color: #555555;
}

.tvzp-course-card__rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #727272;
    white-space: nowrap;
}

.tvzp-course-card__rating-star {
    color: #ffb400;
}

.tvzp-course-card__title {
    margin: 14px 0 16px;
    font-size: 34px;
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.tvzp-course-card__meta-list {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    color: #777777;
    font-size: 15px;
}

.tvzp-course-card__meta-list span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.tvzp-course-card__meta-icon,
.tvzp-course-card__meta-list svg {
    width: 14px;
    height: 14px;
    font-size: 14px;
}
article.tvzp-feature-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: space-between;
}
.tvzp-course-card__category {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.tvzp-course-card__category strong {
    display: block;
    color: #145ad4;
    font-size: 19px;
    line-height: 1.3;
}

.tvzp-course-card__category span {
    display: block;
    margin-top: 4px;
    color: #707070;
    font-size: 14px;
}

.tvzp-course-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 18px 20px;
}

.tvzp-course-card__price {
    font-size: 34px;
    line-height: 1;
    letter-spacing: -0.04em;
}

.tvzp-course-card__button {
    min-height: 48px;
    padding-inline: 24px;
}

.tvzp-course-carousel .owl-nav {
    width: min(1240px, calc(100% - 40px));
    margin: 12px auto 0;
    display: flex;
    justify-content: space-between;
}

.tvzp-course-carousel .owl-dots {
    width: min(1240px, calc(100% - 40px));
    margin: 22px auto 0;
    display: flex;
    justify-content: center;
    gap: 12px;
}
.tvzp-course-carousel .owl-dots button span,
.tvzp-testimonial-showcase .owl-dots button span {
    display: block;
    width: 78px;
    height: 2px;
    background: rgba(0, 0, 0, 0.12);
}

.tvzp-course-carousel .owl-dots .active span,
.tvzp-testimonial-showcase .owl-dots .active span {
    background: var(--tvzp-accent);
}

.tvzp-testimonial-showcase {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}

.tvzp-testimonial-showcase__heading {
    margin: 0 auto;
    text-align: center;
}

.tvzp-testimonial-showcase__heading .tvzp-section-heading {
    margin-inline: auto;
}

.tvzp-testimonial-showcase__carousel {
    margin-top: 0;
}

.tvzp-testimonial-card {
    display: flex;
    background: #ffffff;
    overflow: hidden;
    min-height: 400px;
    position: relative;
    flex-flow: column;
}

.tvzp-testimonial-card__quote-panel {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    padding: 40px;
    background: #202020;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 60%;
    flex: 1;
}

.tvzp-testimonial-card__image-panel {
    position: absolute;
    top: 0;
    right: 0;
    width: 40%;
    height: 100%;
    min-height: 300px;
}
.tvzp-testimonial-card__stars {
    display: flex;
    gap: 4px;
    color: rgba(255, 255, 255, 0.3);
}

.tvzp-testimonial-card__stars .is-active {
    color: #ffb400;
}

.tvzp-testimonial-card__quote-mark {
    position: absolute;
    top: 34px;
    inset-inline-end: 34px;
    color: var(--tvzp-accent);
    font-size: 120px;
    line-height: 0.6;
}

.tvzp-testimonial-card__content {
    margin: 42px 0 44px;
    font-size: 21px;
    line-height: 1.65;
}

.tvzp-testimonial-card__author strong {
    display: block;
    color: var(--tvzp-accent);
    font-size: 20px;
}

.tvzp-testimonial-card__author span {
    display: block;
    margin-top: 8px;
    color: rgba(255, 255, 255, 0.8);
}

.tvzp-testimonial-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.tvzp-testimonial-showcase__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 26px;
}

/* ── clip-path mirror for the prev button (arrow points left) ── */
.tvzp-testimonial-showcase__prev {
    cursor: pointer;
}

.tvzp-testimonial-showcase__next {
    cursor: pointer;
}

/* Testimonial uses a custom progress bar — hide the native owl-dots and owl-nav */
.tvzp-testimonial-showcase .owl-dots,
.tvzp-testimonial-showcase .owl-nav {
    display: none !important;
}

.tvzp-faq-tabs__filters {
    margin: 34px auto 28px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

.tvzp-faq-tabs__filter {
    min-height: 44px;
    padding: 10px 22px;
    border: 0;
    border-radius: 999px;
    background: #ffffff;
    color: #2a2a2a;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.tvzp-faq-tabs__filter.is-active {
    background: var(--tvzp-accent);
    color: #ffffff;
}

.tvzp-faq-tabs__items {
    margin: 0 auto;
    display: grid;
    gap: 16px;
}

.tvzp-faq-item {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

.tvzp-faq-item[hidden] {
    display: none;
}

.tvzp-faq-item__question {
    width: 100%;
    padding: 24px 28px;
    border: 0;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    color: #222222;
    font-size: 19px;
    font-weight: 600;
    text-align: start;
    cursor: pointer;
}

.tvzp-faq-item__toggle {
    position: relative;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

.tvzp-faq-item__toggle::before {
    font-family: 'TechvizoFlaticon' !important;
    content: "\f10b";
    position: absolute;
    width: 30px;
    height: 100%;
    transition: transform 0.2s ease;
    d: f;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: rotateX(180deg);
}

.tvzp-faq-item .tvzp-faq-item__answer {
    transform: translateY(0px);
    transition: all .3s ease-in-out;

}
.tvzp-faq-item.is-open .tvzp-faq-item__answer {
    transform: translateY(0px);

}
/*.tvzp-faq-item__toggle::before {
    transform: translate(-50%, -50%) rotate(90deg);
}*/

.tvzp-faq-item.is-open .tvzp-faq-item__toggle::before {
    transform: none;
}

.tvzp-faq-item__answer {
    display: none;
    padding: 0 28px 24px;
}

.tvzp-faq-item.is-open .tvzp-faq-item__answer {
    display: block;
}

.tvzp-faq-item__answer p {
    margin: 0;
    color: #666666;
    font-size: 17px;
    line-height: 1.8;
}

.tvzp-contact-showcase {
    display: grid;
    grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
    min-height: 620px;
}

.tvzp-contact-showcase__content {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 32px;
    background: #ffffff;
}

.tvzp-contact-showcase__visual {
    position: relative;
    min-height: 620px;
    overflow: hidden;
}

.tvzp-contact-showcase__background-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.tvzp-contact-showcase__form-card {
    position: absolute;
    inset-inline-start: 50%;
    top: 50%;
    width: min(460px, calc(100% - 40px));
    padding: 32px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.12);
    transform: translate(-50%, -50%);
}

.tvzp-contact-showcase__placeholder-form,
.tvzp-contact-showcase__form-card form,
.tvzp-contact-showcase__form-card .wpcf7-form,
.tvzp-contact-showcase__form-card .elementor-form {
    display: grid;
    gap: 18px;
}

.tvzp-contact-showcase__field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.tvzp-contact-showcase__placeholder-form label,
.tvzp-contact-showcase__form-card label {
    display: grid;
    gap: 8px;
    color: #1f1f1f;
    font-size: 14px;
    font-weight: 600;
}

.tvzp-contact-showcase__placeholder-form input,
.tvzp-contact-showcase__placeholder-form textarea,
.tvzp-contact-showcase__form-card input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.tvzp-contact-showcase__form-card textarea,
.tvzp-contact-showcase__form-card select {
    width: 100%;
    min-height: 48px;
    padding: 14px 16px;
    border: 1px solid rgba(16, 16, 16, 0.12);
    background: #ffffff;
    color: #151515;
    font-size: 15px;
    box-sizing: border-box;
}

.tvzp-contact-showcase__placeholder-form textarea,
.tvzp-contact-showcase__form-card textarea {
    min-height: 112px;
    resize: vertical;
}

.tvzp-contact-showcase__form-card .wpcf7-submit,
.tvzp-contact-showcase__form-card .elementor-button,
.tvzp-contact-showcase__form-card button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 14px 28px;
    border: 1px solid var(--tvzp-accent);
    background: var(--tvzp-accent);
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 0 100%);
}

.tvzp-footer {
    padding: 70px 0 32px;
    background: #191919;
    color: #ffffff;
}

.tvzp-footer__top,
.tvzp-footer__bottom {
    width: min(1240px, calc(100% - 40px));
    margin: 0 auto;
}

.tvzp-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.9fr);
    gap: 50px;
}

.tvzp-footer__logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #ffffff;
    text-decoration: none;
}

.tvzp-footer__branch {
    display: block;
    margin-top: 28px;
    color: var(--tvzp-accent);
    font-size: 18px;
}

.tvzp-footer__address,
.tvzp-footer__contact {
    display: block;
    max-width: 360px;
    margin-top: 16px;
    color: rgba(255, 255, 255, 0.8);
    font-size: 17px;
    line-height: 1.75;
    text-decoration: none;
}

.tvzp-footer__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
}

.tvzp-footer__link-heading {
    display: block;
    margin-bottom: 18px;
    color: var(--tvzp-accent);
    font-size: 18px;
}

.tvzp-footer__link-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 14px;
}

.tvzp-footer__link-list a {
    color: rgba(255, 255, 255, 0.82);
    font-size: 17px;
    text-decoration: none;
}

.tvzp-footer__bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 24px;
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.tvzp-footer__copyright,
.tvzp-footer__legal a {
    color: rgba(255, 255, 255, 0.78);
    font-size: 16px;
}

.tvzp-footer__legal {
    display: flex;
    gap: 28px;
}

.tvzp-footer__legal a {
    text-decoration: none;
}

.tvzp-footer__socials {
    display: flex;
    gap: 10px;
}

.tvzp-footer__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: var(--tvzp-accent);
    color: #ffffff;
    text-decoration: none;
}

.tvzp-footer__social-icon,
.tvzp-footer__social-link svg {
    width: 16px;
    height: 16px;
    font-size: 16px;
}

body.rtl .tvzp-site-header__inner,
html[dir="rtl"] .tvzp-site-header__inner,
body.rtl .tvzp-course-carousel__top,
html[dir="rtl"] .tvzp-course-carousel__top,
body.rtl .tvzp-footer__top,
html[dir="rtl"] .tvzp-footer__top,
body.rtl .tvzp-footer__bottom,
html[dir="rtl"] .tvzp-footer__bottom {
    direction: rtl;
}

body.rtl .tvzp-site-header__nav--mobile .sub-menu,
html[dir="rtl"] .tvzp-site-header__nav--mobile .sub-menu {
    padding: 0 18px 10px 0;
}

body.rtl .tvzp-learning-process__step-frame::before,
html[dir="rtl"] .tvzp-learning-process__step-frame::before {
    transform: translateX(50%);
    inset-inline-start: auto;
    inset-inline-end: 50%;
}

body.rtl .tvzp-contact-showcase__form-card,
html[dir="rtl"] .tvzp-contact-showcase__form-card {
    transform: translate(50%, -50%);
    inset-inline-start: auto;
    inset-inline-end: 50%;
}
span.border-shape {
    border-left: 1px solid #e6e6e6;
    position: absolute;
    height: 100%;
    top: 0;
    right: 0;
    width: calc(77% - 1px);
}

@media (max-width: 767px) {
    .tvzp-hero-showcase__slide {
        grid-template-columns: 1fr;
    }

    .tvzp-testimonial-card {
        flex-direction: column;
        min-height: 0;
    }

    .tvzp-testimonial-card__quote-panel {
        padding: 32px 24px 28px;
    }

    .tvzp-hero-showcase__visual {
        min-height: 560px;
    }

    .tvzp-contact-showcase {
        grid-template-columns: 1fr;
    }

    .tvzp-contact-showcase__content {
        justify-content: flex-start;
    }
   .tvzp-testimonial-card__quote-panel{
    width:100%;
   }
   .tvzp-testimonial-card__image-panel img {
    position: absolute;
    top: 0;
    left: 0;
    }
    .tvzp-testimonial-card__image-panel {
        position: relative;
        top: auto;
        right: auto;
        width: 100%;
        height: 220px;
        min-height: 220px;
        order: -1;
        padding-top:80%;
    }
}
.tutor-meta-value, .tutor-meta a, .tutor-meta>* {
    color: #212327;
}
@media (max-width: 1024px) {
    .tvzp-feature-cards__grid,
    .tvzp-learning-process__stats,
    .tvzp-footer__top {
        grid-template-columns: 1fr;
    }

    .tvzp-learning-process__steps--grid .tvzp-learning-process__step {
        flex: 0 0 calc(50% - var(--tvzp-lp-gap, 36px) / 2);
        max-width: calc(50% - var(--tvzp-lp-gap, 36px) / 2);
    }

    .tvzp-course-carousel__top,
    .tvzp-footer__bottom {
        grid-template-columns: 1fr;
    }

    .tvzp-course-carousel__top {
        display: grid;
    }

    .tvzp-footer__links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .tvzp-site-header__inner,
    .tvzp-hero-showcase,
    .tvzp-feature-cards,
    .tvzp-learning-process__inner,
    .tvzp-testimonial-showcase,
    .tvzp-course-carousel__top,
    .tvzp-course-carousel__track,
    .tvzp-course-carousel .owl-nav,
    .tvzp-course-carousel .owl-dots,
    .tvzp-faq-tabs__heading,
    .tvzp-faq-tabs__filters,
    .tvzp-faq-tabs__items,
    .tvzp-footer__top,
    .tvzp-footer__bottom {
        width: calc(100% - 24px);
    }

    .tvzp-hero-showcase {
        padding-top: 24px;
    }

    .tvzp-hero-showcase__slide {
        gap: 24px;
        min-height: 0;
    }

    .tvzp-hero-showcase__visual {
        min-height: 420px;
    }

    .tvzp-hero-showcase__shape {
        width: 100%;
        height: 86%;
    }

    .tvzp-hero-showcase__main-media {
        width: 100%;
        height: 78%;
    }

    .tvzp-hero-showcase__support-media {
        width: 40%;
        height: 28%;
    }

    .tvzp-hero-showcase .owl-dots,
    .tvzp-hero-showcase .owl-nav {
        position: static;
        margin-top: 16px;
    }

    .tvzp-feature-card__title,
    .tvzp-course-card__title,
    .tvzp-learning-process__step-title {
        font-size: 28px;
    }

    .tvzp-contact-showcase__field-grid,
    .tvzp-footer__links {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .tvzp-button,
    .tvzp-site-header__button,
    .tvzp-course-card__button {
        width: 100%;
    }

    .tvzp-learning-process__steps--grid .tvzp-learning-process__step {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .tvzp-site-header__inner {
        min-height: 74px;
    }

    .tvzp-site-header__logo-text,
    .tvzp-footer__logo-text {
        font-size: 24px;
    }

    .tvzp-hero-showcase__title {
        font-size: 56px;
    }

    .tvzp-hero-showcase__description,
    .tvzp-feature-card__description,
    .tvzp-learning-process__step-description,
    .tvzp-faq-item__answer p,
    .tvzp-footer__address,
    .tvzp-footer__contact {
        font-size: 16px;
    }

    .tvzp-hero-showcase__buttons,
    .tvzp-footer__bottom,
    .tvzp-course-card__footer {
        display: grid;
    }

    .tvzp-testimonial-card__quote-panel {
        padding: 32px 24px 28px;
    }

    .tvzp-testimonial-card__content {
        font-size: 18px;
    }

    .tvzp-faq-item__question {
        padding: 20px;
        font-size: 17px;
    }

    .tvzp-faq-item__answer {
        padding: 0 20px 20px;
    }

    .tvzp-contact-showcase__content {
        padding: 42px 20px;
    }

    .tvzp-contact-showcase__visual {
        min-height: 560px;
    }

    .tvzp-contact-showcase__form-card {
        padding: 22px;
    }
}

/* ═══════════════════════════════════════════════════════════════
 *  HIGHLIGHTED TITLE TEXT
 *  Works for any widget that wraps a word in <em> inside the title
 * ═══════════════════════════════════════════════════════════════ */
.tvzp-section-heading__title span {
    color: var(--tvzp-accent);
    font-style: normal;
}
.tvzp-testimonial-card__image-panel img {
    height: 100%;
}
/* ═══════════════════════════════════════════════════════════════
 *  GLOBAL CAROUSEL PROGRESS BAR
 *  Rendered by any widget that needs a progress bar above its carousel.
 *  JS drives the fill width and wires the arrow buttons.
 * ═══════════════════════════════════════════════════════════════ */
.tvzp-carousel-progress {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 28px;
    margin-bottom: 28px;
}

.tvzp-carousel-progress__bar {
    flex: 1 1 auto;
    min-width: 0;
    height: 2px;
    background: transparent;
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--tvzp-progress-bullet-gap, 0);
    overflow: visible;
}

.tvzp-carousel-progress__fill {
    position: absolute;
    left: 0;
    top: 0;
    width: 0%;
    height: 100%;
    background: var(--tvzp-accent);
    transition: width 0.45s ease;
}

.tvzp-carousel-progress__fill[hidden] {
    display: none;
}

.tvzp-carousel-progress__bullet {
    flex: 1 1 0;
    min-width: 8px;
    height: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(0, 0, 0, 0.12);
    cursor: pointer;
    transition: background-color 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.tvzp-carousel-progress__bullet:hover,
.tvzp-carousel-progress__bullet:focus {
    background: rgba(0, 0, 0, 0.22);
    outline: none;
}

.tvzp-carousel-progress__bullet.is-active {
    background: var(--tvzp-accent);
}

.tvzp-carousel-progress--bar .tvzp-carousel-progress__bar {
    background: rgba(0, 0, 0, 0.12);
    display: block;
    overflow: hidden;
}

.tvzp-carousel-progress--bar .tvzp-carousel-progress__fill {
    display: block;
}

.tvzp-carousel-progress__arrows {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}

.tvzp-carousel-progress__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #555555;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: color 0.2s ease;
}

.tvzp-carousel-progress__arrow:hover,
.tvzp-carousel-progress__arrow:focus {
    color: var(--tvzp-accent);
    outline: none;
}

.tvzp-carousel-progress__arrow.is-disabled,
.tvzp-carousel-progress__arrow:disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
}

/* ─── Testimonial-specific progress bar spacing ─────────────── */
.tvzp-testimonial-showcase .tvzp-carousel-progress {
    margin-top: 28px;
    margin-bottom: 28px;
    width:100%;
    margin-left: auto;
    margin-right: 0;
}
/* ═══════════════════════════════════════════════════════════════
 *  HERO CAROUSEL WIDGET  (tvzp_hero_carousel)
 *  pixel-perfect match to the design reference:
 *   – full-bleed image with gold accent polygon top-right
 *   – progress bar + ‹ › arrows below the image
 *   – wide-tracked uppercase slide title
 *   – zero-padded counter bottom-right
 * ═══════════════════════════════════════════════════════════════ */

/* ── CSS custom properties (inherit site palette) ─────────────── */
.tvzp-hero-carousel {
    --tvzp-accent: #b48a58;
    --tvzp-text: #1a1a1a;
    font-family: inherit;
    color: var(--tvzp-text);
    max-width: 100%;
    overflow: hidden;
}

/* ── Hide owl-generated nav/dots — we use our own controls ─────── */
.tvzp-hero-carousel .owl-dots,
.tvzp-hero-carousel .owl-nav {
    display: none !important;
}

/* Remove owl default margin so the track sits flush */
.tvzp-hero-carousel .owl-stage-outer {
    overflow: hidden;
    max-width: 100%;
}

.tvzp-hero-carousel .owl-stage {
    display: flex;
}

.tvzp-hero-carousel .owl-item {
    flex: 0 0 auto;
    min-width: 0;
}

.tvzp-hero-carousel__track:not(.owl-loaded) {
    display: block;
    overflow: hidden;
}

.tvzp-hero-carousel__track:not(.owl-loaded) .tvzp-hero-carousel__slide:not(:first-child) {
    display: none;
}

.tvzp-hero-carousel__slide {
    width: 100%;
    max-width: 100%;
}

/* ── Image wrap (the stacked-layer container) ─────────────────── */
.tvzp-hero-carousel__image-wrap {
    position: relative;
    height: 520px;          /* overrideable via Elementor slider */
    overflow: hidden;
    background: #ffffff;
}

/* ── Accent polygon — sits behind the photo ───────────────────── */
/*
 * The gold shape occupies the top-right corner.
 * clip-path creates the diagonal left edge that matches the design.
 *   polygon( left-bottom  top-left  top-right  right-bottom )
 *           ← slant starts here
 */
.tvzp-hero-carousel__accent {
    position: absolute;
    top: 0;
    right: 0;
    width: 62%;
    height: 100%;
    background: var(--tvzp-accent);
    clip-path: polygon(30% 0, 100% 0, 100% 70%, 77% 100%, 0 100%, 0 30%);
    z-index: 0;
}

/* ── Slide image — floats left over the accent ────────────────── */
.tvzp-hero-carousel__img {
    position: absolute;
    left: 0;          /* small downward offset reveals accent at top-right */
    width: 87%;             /* leaves ~13 % right edge visible as accent */
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    z-index: 1;
}

/* ── Footer — white panel below the image ─────────────────────── */
.tvzp-hero-carousel__footer {
    padding: 20px 0 0;
    background: #ffffff;
    margin-left: auto;
}

/* ── Progress row: bar (flex-grow) + arrows (flex-shrink) ─────── */
.tvzp-hero-carousel__progress-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

/*
 * The bar & fill re-use the GLOBAL classes
 * (.tvzp-carousel-progress__bar / __fill) already defined above —
 * no extra rules needed here; they inherit automatically.
 */

/* Arrow wrapper inside progress row */
.tvzp-hero-carousel__arrows {
    display: flex;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
}

/* ── Meta row: title (left) + counter (right) ─────────────────── */
.tvzp-hero-carousel__meta {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-direction: column;
}

.tvzp-hero-carousel__title-wrap {
    flex: 1 1 auto;
    min-width: 0;
}

/*
 * Only the active slide's <h3> is visible at a time.
 * JS removes/sets the `hidden` attribute on change.
 */
.tvzp-hero-carousel__title[hidden] {
    display: none;
}

.tvzp-hero-carousel__title {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    line-height: 1.35;
    color: var(--tvzp-text);
}

/* ── Zero-padded slide counter ────────────────────────────────── */
.tvzp-hero-carousel__counter {
    flex-shrink: 0;
    font-size: 18px;
    font-weight: 500;
    color: var(--tvzp-text);
    line-height: 1;
    white-space: nowrap;
    padding-bottom: 2px;
}

/* ── Responsive tweaks ────────────────────────────────────────── */
@media (max-width: 820px) {
    .tvzp-hero-carousel__image-wrap {
        height: 420px;
    }

    .tvzp-hero-carousel__img {
        top: 0px;
        width: 90%;
        height: 88%;
        margin-bottom: 0 !important;
        margin-top: auto;
    }

    .tvzp-hero-carousel__accent {
        width: 58%;
        height: 65%;
    }
}

@media (max-width: 480px) {
    .tvzp-hero-carousel__image-wrap {
        height: 320px;
    }

    .tvzp-hero-carousel__img {
        width: 92%;
        height: 86%;
    }

    .tvzp-hero-carousel__title {
        font-size: 16px;
        letter-spacing: 0.2em;
    }
}

/*TITLE*/
.tvzp-act {
    --tvzp-act-underline-duration: 700ms;
    --tvzp-act-underline-easing: ease;
    position: relative;
    display: block;
}

.tvzp-act .act-title {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    line-height: 1.05;
}

.tvzp-act .act-eyebrow {
    display: block;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 4px;
    text-transform: uppercase;
}

.tvzp-act .act-highlight-wrap {
    position: relative;
    display: inline-block;
}

.tvzp-act .act-highlight-word {
    position: relative;
}

.tvzp-act .act-underline {
    position: absolute;
    display: block;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 5px;
    background-color: #e8a0a0;
    border-radius: 2px;
    transition: width var(--tvzp-act-underline-duration) var(--tvzp-act-underline-easing);
    z-index: -1;
}

.tvzp-act .act-underline.is-drawn {
    width: 100%;
}

.tvzp-act .act-divider {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.tvzp-act .act-divider-line {
    display: block;
    width: 50px;
    height: 1px;
    background-color: #cc0000;
}

.tvzp-act .act-divider-symbol {
    display: block;
    font-size: 14px;
    color: #cc0000;
    line-height: 1;
}

.tvzp-act .act-deco-left,
.tvzp-act .act-deco-right {
    position: absolute;
    display: block;
    line-height: 1;
    pointer-events: none;
    user-select: none;
}

.tvzp-act.js-enabled .act-anim-item {
    opacity: 0;
}

.tvzp-act.js-enabled .act-anim-item.is-animated {
    opacity: 1;
    animation-duration: var(--tvzp-act-duration, 700ms);
    animation-delay: var(--tvzp-act-delay, 0ms);
    animation-fill-mode: both;
    animation-timing-function: var(--tvzp-act-easing, ease);
}

.tvzp-act.js-enabled .tvzp-act-anim--none.is-animated {
    animation: none;
}

.tvzp-act.js-enabled .tvzp-act-anim--fade.is-animated { animation-name: tvzpActFade; }
.tvzp-act.js-enabled .tvzp-act-anim--fade-up.is-animated { animation-name: tvzpActFadeUp; }
.tvzp-act.js-enabled .tvzp-act-anim--fade-down.is-animated { animation-name: tvzpActFadeDown; }
.tvzp-act.js-enabled .tvzp-act-anim--fade-left.is-animated { animation-name: tvzpActFadeLeft; }
.tvzp-act.js-enabled .tvzp-act-anim--fade-right.is-animated { animation-name: tvzpActFadeRight; }
.tvzp-act.js-enabled .tvzp-act-anim--slide-up.is-animated { animation-name: tvzpActSlideUp; }
.tvzp-act.js-enabled .tvzp-act-anim--slide-down.is-animated { animation-name: tvzpActSlideDown; }
.tvzp-act.js-enabled .tvzp-act-anim--zoom-in.is-animated { animation-name: tvzpActZoomIn; }
.tvzp-act.js-enabled .tvzp-act-anim--zoom-out.is-animated { animation-name: tvzpActZoomOut; }
.tvzp-act.js-enabled .tvzp-act-anim--flip-x.is-animated { animation-name: tvzpActFlipX; }
.tvzp-act.js-enabled .tvzp-act-anim--flip-y.is-animated { animation-name: tvzpActFlipY; }

@keyframes tvzpSpin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes tvzpAbZoomPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(var(--tvzp-ab-zoom-scale)); }
}

@keyframes tvzpAbBounce {
    0%, 100% { transform: translateY(0); }
    20% { transform: translateY(-12px); }
    40% { transform: translateY(-18px); }
    60% { transform: translateY(-6px); }
    80% { transform: translateY(-4px); }
}

@keyframes tvzpAbFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(calc(var(--tvzp-ab-float-distance) * -1)); }
}

@keyframes tvzpAbShake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-6px); }
    20%, 40%, 60%, 80% { transform: translateX(6px); }
}

@keyframes tvzpAbHeartbeat {
    0% { transform: scale(1); }
    14% { transform: scale(1.12); }
    28% { transform: scale(1); }
    42% { transform: scale(1.12); }
    70% { transform: scale(1); }
}

@keyframes tvzpAbGlow {
    0%, 100% { box-shadow: 0 0 8px 2px rgba(204, 0, 0, 0.3); }
    50% { box-shadow: 0 0 28px 12px rgba(204, 0, 0, 0.65); }
}

@keyframes tvzpAbTada {
    0% { transform: scaleX(1); }
    10%, 20% { transform: scale3d(.9, .9, .9) rotate(-3deg); }
    30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); }
    40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); }
    100% { transform: scaleX(1); }
}

@keyframes tvzpAbSwing {
    20% { transform: rotate(12deg); }
    40% { transform: rotate(-10deg); }
    60% { transform: rotate(5deg); }
    80% { transform: rotate(-5deg); }
    100% { transform: rotate(0deg); }
}

@keyframes tvzpAbRubber {
    0% { transform: scale3d(1, 1, 1); }
    30% { transform: scale3d(1.25, .75, 1); }
    40% { transform: scale3d(.75, 1.25, 1); }
    50% { transform: scale3d(1.15, .85, 1); }
    65% { transform: scale3d(.95, 1.05, 1); }
    75% { transform: scale3d(1.05, .95, 1); }
    100% { transform: scale3d(1, 1, 1); }
}

@keyframes tvzpAbJello {
    0%, 100% { transform: skewX(0) skewY(0); }
    11.1% { transform: skewX(-12.5deg) skewY(-12.5deg); }
    22.2% { transform: skewX(6.25deg) skewY(6.25deg); }
    33.3% { transform: skewX(-3.125deg) skewY(-3.125deg); }
    44.4% { transform: skewX(1.5625deg) skewY(1.5625deg); }
    55.5% { transform: skewX(-.78125deg) skewY(-.78125deg); }
    66.6% { transform: skewX(.390625deg) skewY(.390625deg); }
    77.7% { transform: skewX(-.1953125deg) skewY(-.1953125deg); }
}

@keyframes tvzpActFade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes tvzpActFadeUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes tvzpActFadeDown {
    from { opacity: 0; transform: translateY(-40px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes tvzpActFadeLeft {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes tvzpActFadeRight {
    from { opacity: 0; transform: translateX(-40px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes tvzpActSlideUp {
    from { opacity: 0; transform: translateY(60px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes tvzpActSlideDown {
    from { opacity: 0; transform: translateY(-60px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes tvzpActZoomIn {
    from { opacity: 0; transform: scale(0.75); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes tvzpActZoomOut {
    from { opacity: 0; transform: scale(1.2); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes tvzpActFlipX {
    from { opacity: 0; transform: rotateX(90deg); }
    to { opacity: 1; transform: rotateX(0deg); }
}

@keyframes tvzpActFlipY {
    from { opacity: 0; transform: rotateY(90deg); }
    to { opacity: 1; transform: rotateY(0deg); }
}


/* ==========================================================================
   PORTED FROM JK BOTANICALS WIDGET PACK
   All jkbp- prefixes renamed to tvzp- for unified namespace.
   Widgets: Hero, Logo, Search Popup, Slide Panel, Menu, Video Gallery,
            Animated Button, Promise, Card Grid, Applications List,
            Carousel Cards, Industries Carousel, Icon Box, Product Highlight,
            Trust Badge, Responsive Icon List.
   ========================================================================== */

:root {
    --tvzp-container: 1220px;
    --tvzp-green-900: #101010;
    --tvzp-green-800: #12664d;
    --tvzp-green-700: #18936c;
    --tvzp-green-100: #e7f6ef;
    --tvzp-surface: #ffffff;
    --tvzp-surface-soft: #f7faf8;
    --tvzp-border: rgba(16, 61, 47, 0.08);
    --tvzp-shadow: 0 18px 40px rgba(12, 46, 35, 0.08);
    --tvzp-radius-lg: 22px;
    --tvzp-radius-md: 16px;
    --tvzp-radius-sm: 12px;
}

body.tvzp-slide-panel-open {
    overflow: hidden;
}

.tvzp-section-heading {
    max-width: var(--tvzp-container);
    margin: 0 auto 34px;
}

.tvzp-section-heading__eyebrow {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--tvzp-green-700);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.tvzp-section-heading__title {
    margin: 0;
    color: var(--tvzp-green-900);
    font-size: clamp(30px, 2.4vw, 42px);
    font-weight: 700;
    line-height: 1.12;
}

.tvzp-section-heading__description {
    margin: 12px auto 0;
    color: rgba(15, 52, 39, 0.72);
    font-size: 15px;
    line-height: 1.7;
}

.tvzp-button,
.tvzp-card-grid__button,
.tvzp-carousel__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 24px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 15px;
    line-height: 1;
    text-decoration: none;
    transition: all 0.25s ease;
}

[data-tvzp-animate] {
    opacity: 0;
    will-change: opacity, transform, filter;
    transition-property: opacity, transform, filter!important;
    transition-duration: 700ms;
    transition-timing-function: ease;
}

[data-tvzp-animate].is-visible {
    opacity: 1;
    transform: none;
    filter: none;
}

[data-tvzp-animate="fade-up"] {
    transform: translate3d(0, 28px, 0);
}

[data-tvzp-animate="fade-down"] {
    transform: translate3d(0, -28px, 0);
}

[data-tvzp-animate="fade-left"] {
    transform: translate3d(-28px, 0, 0);
}

[data-tvzp-animate="fade-right"] {
    transform: translate3d(28px, 0, 0);
}

[data-tvzp-animate="zoom-in"] {
    transform: scale(0.9);
}

[data-tvzp-animate="zoom-out"] {
    transform: scale(1.08);
}

[data-tvzp-animate="blur-in"] {
    filter: blur(10px);
}

.tvzp-hero .animated,
.tvzp-carousel .animated {
    animation-duration: 0.6s;
    animation-fill-mode: both;
}

@keyframes tvzpFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes tvzpFadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

.tvzp-hero .fadeIn,
.tvzp-carousel .fadeIn {
    animation-name: tvzpFadeIn;
}

.tvzp-hero .fadeOut,
.tvzp-carousel .fadeOut {
    animation-name: tvzpFadeOut;
}

.tvzp-hero {
    position: relative;
    min-height: 680px;
    overflow: hidden;
    border-radius: 0;
    background: #0b261d;
}

.tvzp-hero__slides {
    position: relative;
    min-height: inherit;
}

.tvzp-hero__slides.owl-carousel,
.tvzp-carousel__track.owl-carousel {
    display: block;
}

.tvzp-hero__slides.owl-carousel .owl-stage-outer,
.tvzp-hero__slides.owl-carousel .owl-stage,
.tvzp-hero__slides.owl-carousel .owl-item,
.tvzp-hero__slides.owl-carousel .tvzp-hero__slide {
    min-height: inherit;
}

.tvzp-hero__slides.owl-carousel .owl-stage-outer {
    overflow: hidden;
    transform: translateZ(0);
}

.tvzp-hero__slides.owl-carousel .owl-stage {
    display: block;
    transform: translate3d(0, 0, 0);
    will-change: transform;
}

.tvzp-hero__slides.owl-carousel .owl-item {
    overflow: hidden;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
}

.tvzp-hero__slide {
    position: absolute;
    inset: 0;
    display: flex;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.45s ease, visibility 0.45s ease;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.tvzp-hero__slides.owl-carousel .tvzp-hero__slide {
    position: relative;
    min-height: inherit;
    visibility: visible;
    opacity: 1;
    transition: none;
}

.tvzp-hero__slide.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}

.tvzp-hero__media {
    position: absolute;
    inset: 0;
}

.tvzp-hero__bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
}

.tvzp-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(9, 23, 34, 0.58) 0%, rgba(9, 23, 34, 0.14) 62%, rgba(9, 23, 34, 0.12) 100%);
}

.tvzp-hero__inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    width: min(100%, var(--tvzp-container));
    min-height: inherit;
    margin: 0 auto;
    padding: 90px 50px 80px;
}

.tvzp-hero__content {
    position: relative;
    max-width: 520px;
    color: #fff;
}


.tvzp-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    padding: 10px 14px;
    margin-bottom: 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(12px);
    color: #a8f6c4;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.tvzp-hero__title {
    margin: 0 0 14px;
    color: #fff;
    font-size: clamp(38px, 4vw, 58px);
    line-height: 1.02;
    letter-spacing: -0.03em;
}

.tvzp-hero__description {
    max-width: 46ch;
    color: rgba(255, 255, 255, 0.84);
    font-size: 16px;
    line-height: 1.75;
}

.tvzp-hero__description p {
    margin: 0;
}

.tvzp-hero__actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 26px;
}

.tvzp-button--primary {
    color: var(--tvzp-green-900);
    background: #dff6e6;
}

.tvzp-button--primary:hover {
    color: #fff;
    background: var(--tvzp-green-700);
}

.tvzp-button--secondary {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.4);
    background: rgba(255, 255, 255, 0.08);
}

.tvzp-button--secondary:hover {
    color: var(--tvzp-green-900);
    background: #fff;
    border-color: #fff;
}

.tvzp-hero__arrow {
    position: absolute;
    top: 50%;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    cursor: pointer;
    transform: translateY(-50%);
    transition: all 0.25s ease;
}

.tvzp-hero__arrow:hover {
    background: rgba(255, 255, 255, 0.3);
}

.tvzp-hero__arrow--prev {
    left: 28px;
}

.tvzp-hero__arrow--next {
    right: 28px;
}

.tvzp-hero__dots {
    position: absolute;
    left: 50%;
    bottom: 28px;
    z-index: 4;
    display: flex;
    gap: 10px;
    transform: translateX(-50%);
}

.tvzp-carousel__arrow-icon,
.tvzp-search-popup__trigger-icon,
.tvzp-search-popup__submit-icon,
.tvzp-search-popup__close-icon,
.tvzp-slide-panel__trigger-icon,
.tvzp-slide-panel__close-icon,
.tvzp-video-trigger__icon,
.tvzp-video-card__readmore-icon,
.tvzp-video-modal__close-icon,
.tvzp-button__icon,
.tvzp-card-grid__button-icon,
.tvzp-carousel__button-icon,
.tvzp-product-highlight__button-icon,
.tvzp-app-accordion__button-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.tvzp-carousel__arrow-icon svg,
.tvzp-search-popup__trigger-icon svg,
.tvzp-search-popup__submit-icon svg,
.tvzp-search-popup__close-icon svg,
.tvzp-slide-panel__trigger-icon svg,
.tvzp-slide-panel__close-icon svg,
.tvzp-video-trigger__icon svg,
.tvzp-video-card__readmore-icon svg,
.tvzp-video-modal__close-icon svg,
.tvzp-button__icon svg,
.tvzp-card-grid__button-icon svg,
.tvzp-carousel__button-icon svg,
.tvzp-product-highlight__button-icon svg,
.tvzp-app-accordion__button-icon svg {
    width: 1em;
    height: 1em;
}

.tvzp-logo {
    display: flex;
    width: 100%;
}

.tvzp-logo__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    transition: transform 0.25s ease, opacity 0.25s ease, background 0.25s ease;
}

.tvzp-logo__media {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.25s ease, opacity 0.25s ease, background-color 0.25s ease;
}

.tvzp-logo__image {
    display: block;
    max-width: 100%;
    width: auto;
    height: auto;
}

.tvzp-logo__content {
    display: inline-flex;
    flex-direction: column;
}

.tvzp-logo__title,
.tvzp-logo__tagline {
    display: block;
    margin: 0;
    line-height: 1.2;
}

.tvzp-search-popup__overlay,
.tvzp-slide-panel__overlay {
    position: fixed;
    inset: 0;
    z-index: 99990;
}

.tvzp-search-popup__overlay {
    background-color: rgba(7, 18, 14, 0.56);
}

.tvzp-slide-panel__overlay {
    background-color: rgba(8, 16, 14, 0.52);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.32s ease, visibility 0s linear 0.32s;
}

.tvzp-portal-root,
.tvzp-portal-document,
.tvzp-portal-mount {
    position: static !important;
    inset: auto !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    transform: none !important;
    filter: none !important;
    perspective: none !important;
    opacity: 1 !important;
    z-index: auto !important;
    pointer-events: none !important;
}

.tvzp-portal-root > .tvzp-video-modal,
.tvzp-portal-mount > .tvzp-search-popup__overlay,
.tvzp-portal-mount > .tvzp-search-popup__panel,
.tvzp-portal-mount > .tvzp-slide-panel__overlay,
.tvzp-portal-mount > .tvzp-slide-panel__panel,
.tvzp-portal-mount > .tvzp-video-modal {
    pointer-events: auto;
}

.tvzp-search-popup__trigger,
.tvzp-slide-panel__trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
    transition: all 0.25s ease;
}

.tvzp-search-popup__trigger-form {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
}

.tvzp-search-popup--form .tvzp-search-popup__trigger {
    min-width: 220px;
}

.tvzp-search-popup__panel {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 99991;
    transform: translate(-50%, -48%) scale(0.98);
    width: min(100% - 32px, 640px);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.tvzp-search-popup.is-open .tvzp-search-popup__panel {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, -50%) scale(1);
}

/* Portal variant: panel is moved to .tvzp-portal-mount inside <body>,
   so the widget's is-open class can't reach it via CSS descendant selector.
   The JS adds is-open to both $widget AND $portal ($portalMount), so we
   target the portal mount directly. */
.tvzp-portal-mount.is-open > .tvzp-search-popup__panel {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, -50%) scale(1);
}

.tvzp-search-popup__panel-inner {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 28px 80px rgba(8, 16, 14, 0.18);
}

.tvzp-search-popup__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.tvzp-search-popup__title {
    font-size: 26px;
    font-weight: 700;
    line-height: 1.1;
}

.tvzp-search-popup__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-width: 40px;
    border: 1px solid rgba(15, 52, 39, 0.12);
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
    transition: all 0.25s ease;
}

.tvzp-search-popup__form {
    display: flex;
    align-items: stretch;
    gap: 12px;
    padding: 10px;
}

.tvzp-search-popup__input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    background: transparent;
    outline: none;
}

.tvzp-search-popup__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 120px;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.25s ease;
}

.tvzp-search-popup__status {
    display: none;
    align-items: center;
    gap: 10px;
    min-height: 20px;
    color: rgba(15, 52, 39, 0.72);
    font-size: 13px;
}

.tvzp-search-popup__status[data-state="loading"],
.tvzp-search-popup__status[data-state="error"] {
    display: inline-flex;
}

.tvzp-search-popup__loader {
    display: none;
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: tvzpSpin 0.7s linear infinite;
}

.tvzp-search-popup__status[data-state="loading"] .tvzp-search-popup__loader {
    display: inline-flex;
}

.tvzp-search-popup__results {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tvzp-search-popup__result-link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    border: 1px solid rgba(15, 52, 39, 0.08);
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.25s ease;
}

.tvzp-search-popup__result-thumb {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    border-radius: 12px;
    overflow: hidden;
}

.tvzp-search-popup__result-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tvzp-search-popup__result-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.tvzp-search-popup__result-title {
    color: #0f3427;
    font-size: 15px;
    font-weight: 700;
}

.tvzp-search-popup__result-meta {
    color: rgba(15, 52, 39, 0.62);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.tvzp-search-popup__result-empty {
    display: block;
    padding: 12px 0;
    color: rgba(15, 52, 39, 0.62);
}

.tvzp-slide-panel__panel {
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 99991;
    width: min(100vw, 420px);
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    background: #ffffff;
    box-shadow: 0 0 0 1px rgba(15, 52, 39, 0.04), 0 20px 70px rgba(8, 16, 14, 0.18);
    will-change: transform, opacity;
    transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease, visibility 0s linear 0.42s;
}

.tvzp-slide-panel__panel--right {
    right: 0;
    transform: translateX(100%);
}

.tvzp-slide-panel__panel--left {
    left: 0;
    transform: translateX(-100%);
}

.tvzp-slide-panel.is-open .tvzp-slide-panel__panel {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease, visibility 0s linear 0s;
}

.tvzp-slide-panel.is-open .tvzp-slide-panel__overlay {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.32s ease, visibility 0s linear 0s;
}

.tvzp-slide-panel__close {
    position: sticky;
    top: 16px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 16px 16px 0 auto;
    background: transparent;
    cursor: pointer;
    transition: all 0.25s ease;
}

.tvzp-slide-panel__body {
    min-height: calc(100vh - 72px);
}

.tvzp-slide-panel__empty {
    color: rgba(15, 52, 39, 0.68);
    font-size: 14px;
    line-height: 1.7;
}

.tvzp-responsive-icon-list__items {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 12px;
}

.tvzp-responsive-icon-list[data-desktop-layout="inline"] .tvzp-responsive-icon-list__items {
    flex-direction: row;
    flex-wrap: wrap;
}

.tvzp-responsive-icon-list__item {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: auto;
    max-width: 100%;
    border: 1px solid rgba(15, 52, 39, 0.08);
    text-decoration: none;
    transition: all 0.25s ease;
}

.tvzp-responsive-icon-list__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.tvzp-responsive-icon-list__icon svg {
    width: 1em;
    height: 1em;
}

.tvzp-responsive-icon-list__text {
    line-height: 1.5;
}

.tvzp-video-widget {
    width: 100%;
}

.tvzp-video-widget--single {
    display: flex;
}

.tvzp-video-widget__single-inner {
    display: inline-flex;
    flex-direction: column;
    gap: 10px;
}

.tvzp-video-widget__single-note {
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tvzp-video-widget__single-trigger,
.tvzp-video-card__readmore,
.tvzp-video-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    line-height: 1;
}

.tvzp-video-widget__single-trigger {
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
    transition: all 0.25s ease;
}

.tvzp-video-widget__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.tvzp-video-widget__track {
    --tvzp-carousel-gap: 20px;
}

.tvzp-video-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(15, 52, 39, 0.1);
}

.tvzp-video-card__media {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #dfe6e2;
    overflow: hidden;
}

.tvzp-video-card__media-inner {
    position: relative;
    width: 100%;
    height: 100%;
}

.tvzp-video-card__thumb-image,
.tvzp-video-player__frame, 
.tvzp-video-player__media {
    width: 100%;
    height: 100%!important;
    object-fit: cover;
    display: block;
    border: 0;
    object-position: center;
}

.tvzp-video-card__thumb-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #eef4ef 0%, #d4e0d9 100%);
}

.tvzp-video-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 16, 14, 0.12) 0%, rgba(8, 16, 14, 0.55) 100%);
}

.tvzp-video-card__play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    transform: translate(-50%, -50%);
    border: 0;
    border-radius: 999px;
    background: #ffffff;
    color: #0f3427;
    cursor: pointer;
    transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
}

.tvzp-video-card__play:hover {
    transform: translate(-50%, -50%) scale(1.04);
}

.tvzp-video-card__content,
.tvzp-video-card__overlay-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.tvzp-video-card__content {
    padding: 18px;
}

.tvzp-video-card__overlay-content {
    position: absolute;
    right: 0;
    left: 0;
    z-index: 2;
    padding: 18px;
}

.tvzp-video-card__overlay-content--top {
    top: 0;
}

.tvzp-video-card__overlay-content--bottom {
    bottom: 0;
}

.tvzp-video-card__overlay-content .tvzp-video-card__title,
.tvzp-video-card__overlay-content .tvzp-video-card__description,
.tvzp-video-card__overlay-content .tvzp-video-card__readmore {
    color: #ffffff;
}

.tvzp-video-card__overlay-content .tvzp-video-card__readmore svg {
    fill: currentColor;
}

.tvzp-video-card__title {
    margin: 0;
    font-size: 20px;
    line-height: 1.2;
}

.tvzp-video-card__description {
    margin: 0;
    line-height: 1.6;
}

.tvzp-video-card__readmore {
    gap: 8px;
    text-decoration: none;
    transition: color 0.25s ease;
}

.tvzp-video-card.is-playing .tvzp-video-card__media {
    background: #000;
}

.tvzp-video-player,
.tvzp-video-player--inline {
    width: 100%;
    height: 100%;
    background: #000;
}

.tvzp-video-modal {
    position: fixed;
    inset: 0;
    z-index: 100020;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.32s ease, visibility 0s linear 0.32s;
}

.tvzp-video-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(5, 10, 8, 0.78);
    opacity: 0;
    transition: opacity 0.32s ease;
}

.tvzp-video-modal__dialog {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(92vw, 1080px);
    opacity: 0;
    transform: translate(-50%, -46%) scale(0.94);
    will-change: transform, opacity;
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.28s ease;
}

.tvzp-video-modal__content {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 20px;
    overflow: hidden;
    background: #000;
}

.tvzp-video-modal.is-open {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.32s ease, visibility 0s linear 0s;
}

.tvzp-video-modal.is-open .tvzp-video-modal__overlay {
    opacity: 1;
}

.tvzp-video-modal.is-open .tvzp-video-modal__dialog {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.tvzp-video-modal__close {
    position: absolute;
    top: -54px;
    right: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: #ffffff;
    color: #0f3427;
    cursor: pointer;
}

body.tvzp-video-modal-open {
    overflow: hidden;
}

@media (max-width: 1024px) {
    .tvzp-responsive-icon-list[data-tablet-layout="block"] .tvzp-responsive-icon-list__items {
        flex-direction: column;
        flex-wrap: nowrap;
    }

    .tvzp-responsive-icon-list[data-tablet-layout="inline"] .tvzp-responsive-icon-list__items {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .tvzp-video-widget__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tvzp-video-modal__dialog {
        width: min(92vw, 760px);
    }
}

@media (max-width: 767px) {
    .tvzp-responsive-icon-list[data-mobile-layout="block"] .tvzp-responsive-icon-list__items {
        flex-direction: column;
        flex-wrap: nowrap;
    }

    .tvzp-responsive-icon-list[data-mobile-layout="inline"] .tvzp-responsive-icon-list__items {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .tvzp-video-widget__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .tvzp-video-widget__single-trigger {
        width: 100%;
    }

    .tvzp-video-modal__close {
        top: -48px;
    }
}

.ab-wrap {
    display: block;
}

.tvzp-animated-button {
    --tvzp-ab-zoom-scale: 1.06;
    --tvzp-ab-float-distance: 6px;
    --tvzp-ab-hover-scale: 1.05;
    --tvzp-ab-hover-translate: 4px;
    --tvzp-ab-flex-direction: row;
    display: inline-flex;
    flex-direction: var(--tvzp-ab-flex-direction);
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
}

.tvzp-animated-button.ab-btn--full {
    display: flex;
    width: 100%;
}

.tvzp-animated-button.ab-btn--size-xs {
    padding: 10px 22px;
    font-size: 11px;
}

.tvzp-animated-button.ab-btn--size-sm {
    padding: 13px 28px;
    font-size: 13px;
}

.tvzp-animated-button.ab-btn--size-md {
    padding: 18px 40px;
    font-size: 15px;
}

.tvzp-animated-button.ab-btn--size-lg {
    padding: 22px 52px;
    font-size: 18px;
}

.tvzp-animated-button.ab-btn--size-xl {
    padding: 26px 64px;
    font-size: 22px;
}

.tvzp-animated-button[data-pause-hover="yes"]:hover {
    animation-play-state: paused !important;
}

.tvzp-animated-button .ab-text-wrap {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
}

.tvzp-animated-button .ab-text {
    display: block;
}

.tvzp-animated-button .ab-sub {
    display: block;
    margin-top: 4px;
    opacity: 0.82;
}

.tvzp-animated-button .ab-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.tvzp-animated-button .ab-icon svg {
    width: 1em;
    height: 1em;
}

.tvzp-animated-button.ab-anim-zoom-pulse {
    animation: tvzpAbZoomPulse 2s ease-in-out infinite;
}

.tvzp-animated-button.ab-anim-bounce {
    animation: tvzpAbBounce 1.5s ease infinite;
}

.tvzp-animated-button.ab-anim-float {
    animation: tvzpAbFloat 2s ease-in-out infinite;
}

.tvzp-animated-button.ab-anim-shake {
    animation: tvzpAbShake 1.2s ease infinite;
}

.tvzp-animated-button.ab-anim-heartbeat {
    animation: tvzpAbHeartbeat 1.5s ease infinite;
}

.tvzp-animated-button.ab-anim-glow {
    animation: tvzpAbGlow 2s ease-in-out infinite;
}

.tvzp-animated-button.ab-anim-tada {
    animation: tvzpAbTada 1.5s ease infinite;
}

.tvzp-animated-button.ab-anim-swing {
    transform-origin: top center;
    animation: tvzpAbSwing 1.5s ease-in-out infinite;
}

.tvzp-animated-button.ab-anim-rubber {
    animation: tvzpAbRubber 1.2s ease infinite;
}

.tvzp-animated-button.ab-anim-jello {
    animation: tvzpAbJello 2s ease-in-out infinite;
}

.tvzp-animated-button.ab-hover-scale-up:hover {
    transform: scale(var(--tvzp-ab-hover-scale));
}

.tvzp-animated-button.ab-hover-scale-down:hover {
    transform: scale(var(--tvzp-ab-hover-scale));
}

.tvzp-animated-button.ab-hover-move-up:hover {
    transform: translateY(calc(var(--tvzp-ab-hover-translate) * -1));
}

.tvzp-animated-button.ab-hover-move-down:hover {
    transform: translateY(var(--tvzp-ab-hover-translate));
}

.tvzp-animated-button.ab-hover-move-right:hover {
    transform: translateX(var(--tvzp-ab-hover-translate));
}

.tvzp-animated-button.ab-hover-move-left:hover {
    transform: translateX(calc(var(--tvzp-ab-hover-translate) * -1));
}

.tvzp-animated-button.ab-hover-skew:hover {
    transform: skewX(-8deg);
}

.tvzp-animated-button.ab-hover-rotate-cw:hover {
    transform: rotate(6deg);
}

.tvzp-animated-button.ab-hover-rotate-ccw:hover {
    transform: rotate(-6deg);
}

.tvzp-act {
    --tvzp-act-underline-duration: 700ms;
    --tvzp-act-underline-easing: ease;
    position: relative;
    display: block;
}

.tvzp-act .act-title {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    line-height: 1.05;
}

.tvzp-act .act-eyebrow {
    display: block;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 4px;
    text-transform: uppercase;
}

.tvzp-act .act-highlight-wrap {
    position: relative;
    display: inline-block;
}

.tvzp-act .act-highlight-word {
    position: relative;
}

.tvzp-act .act-underline {
    position: absolute;
    display: block;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 5px;
    background-color: #e8a0a0;
    border-radius: 2px;
    transition: width var(--tvzp-act-underline-duration) var(--tvzp-act-underline-easing);
    z-index: -1;
}

.tvzp-act .act-underline.is-drawn {
    width: 100%;
}

.tvzp-act .act-divider {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.tvzp-act .act-divider-line {
    display: block;
    width: 50px;
    height: 1px;
    background-color: #cc0000;
}

.tvzp-act .act-divider-symbol {
    display: block;
    font-size: 14px;
    color: #cc0000;
    line-height: 1;
}

.tvzp-act .act-deco-left,
.tvzp-act .act-deco-right {
    position: absolute;
    display: block;
    line-height: 1;
    pointer-events: none;
    user-select: none;
}

.tvzp-act.js-enabled .act-anim-item {
    opacity: 0;
}

.tvzp-act.js-enabled .act-anim-item.is-animated {
    opacity: 1;
    animation-duration: var(--tvzp-act-duration, 700ms);
    animation-delay: var(--tvzp-act-delay, 0ms);
    animation-fill-mode: both;
    animation-timing-function: var(--tvzp-act-easing, ease);
}

.tvzp-act.js-enabled .tvzp-act-anim--none.is-animated {
    animation: none;
}

.tvzp-act.js-enabled .tvzp-act-anim--fade.is-animated { animation-name: tvzpActFade; }
.tvzp-act.js-enabled .tvzp-act-anim--fade-up.is-animated { animation-name: tvzpActFadeUp; }
.tvzp-act.js-enabled .tvzp-act-anim--fade-down.is-animated { animation-name: tvzpActFadeDown; }
.tvzp-act.js-enabled .tvzp-act-anim--fade-left.is-animated { animation-name: tvzpActFadeLeft; }
.tvzp-act.js-enabled .tvzp-act-anim--fade-right.is-animated { animation-name: tvzpActFadeRight; }
.tvzp-act.js-enabled .tvzp-act-anim--slide-up.is-animated { animation-name: tvzpActSlideUp; }
.tvzp-act.js-enabled .tvzp-act-anim--slide-down.is-animated { animation-name: tvzpActSlideDown; }
.tvzp-act.js-enabled .tvzp-act-anim--zoom-in.is-animated { animation-name: tvzpActZoomIn; }
.tvzp-act.js-enabled .tvzp-act-anim--zoom-out.is-animated { animation-name: tvzpActZoomOut; }
.tvzp-act.js-enabled .tvzp-act-anim--flip-x.is-animated { animation-name: tvzpActFlipX; }
.tvzp-act.js-enabled .tvzp-act-anim--flip-y.is-animated { animation-name: tvzpActFlipY; }

@keyframes tvzpSpin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes tvzpAbZoomPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(var(--tvzp-ab-zoom-scale)); }
}

@keyframes tvzpAbBounce {
    0%, 100% { transform: translateY(0); }
    20% { transform: translateY(-12px); }
    40% { transform: translateY(-18px); }
    60% { transform: translateY(-6px); }
    80% { transform: translateY(-4px); }
}

@keyframes tvzpAbFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(calc(var(--tvzp-ab-float-distance) * -1)); }
}

@keyframes tvzpAbShake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-6px); }
    20%, 40%, 60%, 80% { transform: translateX(6px); }
}

@keyframes tvzpAbHeartbeat {
    0% { transform: scale(1); }
    14% { transform: scale(1.12); }
    28% { transform: scale(1); }
    42% { transform: scale(1.12); }
    70% { transform: scale(1); }
}

@keyframes tvzpAbGlow {
    0%, 100% { box-shadow: 0 0 8px 2px rgba(204, 0, 0, 0.3); }
    50% { box-shadow: 0 0 28px 12px rgba(204, 0, 0, 0.65); }
}

@keyframes tvzpAbTada {
    0% { transform: scaleX(1); }
    10%, 20% { transform: scale3d(.9, .9, .9) rotate(-3deg); }
    30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); }
    40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); }
    100% { transform: scaleX(1); }
}

@keyframes tvzpAbSwing {
    20% { transform: rotate(12deg); }
    40% { transform: rotate(-10deg); }
    60% { transform: rotate(5deg); }
    80% { transform: rotate(-5deg); }
    100% { transform: rotate(0deg); }
}

@keyframes tvzpAbRubber {
    0% { transform: scale3d(1, 1, 1); }
    30% { transform: scale3d(1.25, .75, 1); }
    40% { transform: scale3d(.75, 1.25, 1); }
    50% { transform: scale3d(1.15, .85, 1); }
    65% { transform: scale3d(.95, 1.05, 1); }
    75% { transform: scale3d(1.05, .95, 1); }
    100% { transform: scale3d(1, 1, 1); }
}

@keyframes tvzpAbJello {
    0%, 100% { transform: skewX(0) skewY(0); }
    11.1% { transform: skewX(-12.5deg) skewY(-12.5deg); }
    22.2% { transform: skewX(6.25deg) skewY(6.25deg); }
    33.3% { transform: skewX(-3.125deg) skewY(-3.125deg); }
    44.4% { transform: skewX(1.5625deg) skewY(1.5625deg); }
    55.5% { transform: skewX(-.78125deg) skewY(-.78125deg); }
    66.6% { transform: skewX(.390625deg) skewY(.390625deg); }
    77.7% { transform: skewX(-.1953125deg) skewY(-.1953125deg); }
}

@keyframes tvzpActFade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes tvzpActFadeUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes tvzpActFadeDown {
    from { opacity: 0; transform: translateY(-40px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes tvzpActFadeLeft {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes tvzpActFadeRight {
    from { opacity: 0; transform: translateX(-40px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes tvzpActSlideUp {
    from { opacity: 0; transform: translateY(60px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes tvzpActSlideDown {
    from { opacity: 0; transform: translateY(-60px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes tvzpActZoomIn {
    from { opacity: 0; transform: scale(0.75); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes tvzpActZoomOut {
    from { opacity: 0; transform: scale(1.2); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes tvzpActFlipX {
    from { opacity: 0; transform: rotateX(90deg); }
    to { opacity: 1; transform: rotateX(0deg); }
}

@keyframes tvzpActFlipY {
    from { opacity: 0; transform: rotateY(90deg); }
    to { opacity: 1; transform: rotateY(0deg); }
}

@media (max-width: 767px) {
    .tvzp-search-popup__form {
        flex-direction: column;
    }

    .tvzp-search-popup__submit {
        width: 100%;
    }

    .tvzp-search-popup__result-link {
        padding: 12px;
    }

    .tvzp-slide-panel__panel {
        width: min(100vw, 100%);
    }
}

.tvzp-hero__dot {
    width: 12px;
    height: 12px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: all 0.25s ease;
}

.tvzp-hero__dot.is-active {
    width: 34px;
    background: #fff;
}

.tvzp-promise,
.tvzp-card-grid,
.tvzp-app-list,
.tvzp-trust {
    width: min(100%, var(--tvzp-container));
    margin: 0 auto;
}

.tvzp-promise__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 36px;
    align-items: center;
    padding: 30px;
    border-radius: var(--tvzp-radius-lg);
    background: var(--tvzp-surface);
    box-shadow: var(--tvzp-shadow);
}

.tvzp-promise__image img {
    display: block;
    width: 100%;
    height: 420px;
    object-fit: cover;
    border-radius: 18px;
}

.tvzp-promise__title {
    margin: 0 0 14px;
    color: var(--tvzp-green-900);
    font-size: clamp(28px, 2.1vw, 36px);
    line-height: 1.2;
}

.tvzp-promise__description {
    color: rgba(15, 52, 39, 0.74);
    font-size: 15px;
    line-height: 1.8;
}

.tvzp-promise__description p {
    margin: 0;
}

.tvzp-promise__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 26px;
}

.tvzp-promise__stat {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 20px;
    border: 1px solid rgba(16, 61, 47, 0.08);
    border-radius: 16px;
    background: var(--tvzp-surface-soft);
}

.tvzp-promise__stat-number {
    color: var(--tvzp-green-800);
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
}

.tvzp-promise__stat-label {
    color: rgba(15, 52, 39, 0.7);
    font-size: 13px;
    line-height: 1.5;
}

.tvzp-card-grid__items {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.tvzp-card-grid__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 18px;
    border: 1px solid var(--tvzp-border);
    border-radius: 18px;
    background: var(--tvzp-surface);
    box-shadow: var(--tvzp-shadow);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.tvzp-card-grid__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 40px rgba(12, 46, 35, 0.12);
}

.tvzp-card-grid__image {
    position: relative;
    margin-bottom: 16px;
    overflow: hidden;
}

.tvzp-card-grid__image img {
    display: block;
    width: 100%;
    height: 160px;
    object-fit: cover;
    border-radius: 14px;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.tvzp-card-grid__content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.tvzp-card-grid__image-meta {
    position: absolute;
    left: 16px;
    bottom: auto;
    z-index: 2;
    top: 12px;
}

.tvzp-card-grid__meta {
    display: inline-flex;
    align-items: center;
    margin-bottom: 8px;
    color: var(--tvzp-green-700);
    background: transparent;
    padding: 0;
    border-radius: 0;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: color 0.25s ease, background-color 0.25s ease;
}

.tvzp-card-grid__date {
    display: inline-flex;
    align-items: center;
    margin-bottom: 10px;
    color: rgba(15, 52, 39, 0.55);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.03em;
    transition: color 0.25s ease;
}

.tvzp-card-grid__title {
    margin: 0;
    color: var(--tvzp-green-900);
    font-size: 18px;
    line-height: 1.3;
    transition: color 0.25s ease;
}

.tvzp-card-grid__description {
    margin: 10px 0 0;
    color: rgba(15, 52, 39, 0.72);
    font-size: 14px;
    line-height: 1.7;
    transition: color 0.25s ease;
}

.tvzp-card-grid__button {
    margin-top: 16px;
    color: #fff;
    background: var(--tvzp-green-700);
    transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.tvzp-card-grid--category .tvzp-card-grid__card {
    padding: 14px;
    text-align: center;
}

.tvzp-card-grid--category .tvzp-card-grid__image img {
    height: 90px;
}

.tvzp-card-grid--category .tvzp-card-grid__meta,
.tvzp-card-grid--category .tvzp-card-grid__description,
.tvzp-card-grid--category .tvzp-card-grid__button {
    display: none;
}

.tvzp-card-grid--category .tvzp-card-grid__title {
    font-size: 14px;
    margin-top: 2px;
}

.tvzp-card-grid--blog .tvzp-card-grid__card {
    overflow: hidden;
    padding: 0;
    border-radius: 18px;
}

.tvzp-card-grid--blog .tvzp-card-grid__image img {
    height: 190px;
    border-radius: 0;
}

.tvzp-card-grid--blog .tvzp-card-grid__image {
    margin-bottom: 0;
}

.tvzp-card-grid--blog .tvzp-card-grid__image::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 72px;
    background: linear-gradient(180deg, rgba(9, 26, 20, 0) 0%, rgba(9, 26, 20, 0.45) 100%);
    pointer-events: none;
}

.tvzp-card-grid--blog .tvzp-card-grid__content {
    padding: 16px 18px 18px;
}

.tvzp-card-grid--blog .tvzp-card-grid__meta {
    margin-bottom: 0;
    padding: 7px 14px;
    border-radius: 999px;
    background: #17815e;
    color: #fff;
    letter-spacing: 0.05em;
}

.tvzp-card-grid--blog .tvzp-card-grid__date {
    margin-bottom: 9px;
}

.tvzp-card-grid--blog .tvzp-card-grid__title {
    font-size: 18px;
    line-height: 1.34;
}

.tvzp-card-grid--blog .tvzp-card-grid__description {
    margin-top: 9px;
    font-size: 13px;
    line-height: 1.75;
}

.tvzp-card-grid--blog .tvzp-card-grid__button {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-top: 14px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--tvzp-green-800);
    font-size: 13px;
    font-weight: 700;
}

.tvzp-card-grid--blog .tvzp-card-grid__button::after {
    content: "\2192";
    margin-left: 8px;
    line-height: 1;
}

.tvzp-app-list__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.tvzp-app-list__item {
    border-radius: 16px;
    border: 1px solid var(--tvzp-border);
    background: var(--tvzp-surface);
    box-shadow: 0 10px 22px rgba(12, 46, 35, 0.05);
}

.tvzp-app-list__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    color: var(--tvzp-green-900);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}

.tvzp-app-list__icon {
    color: var(--tvzp-green-700);
    font-size: 20px;
    font-weight: 700;
}

.tvzp-carousel {
    position: relative;
    padding: 0;
    --tvzp-carousel-gap: 20px;
    --tvzp-carousel-center-padding: 0px;
}

.tvzp-carousel--highlight {
    padding: 34px 36px 40px;
    border-radius: 24px;
    background: #17815e;
}

.tvzp-carousel--highlight .tvzp-section-heading__eyebrow,
.tvzp-carousel--highlight .tvzp-section-heading__title,
.tvzp-carousel--highlight .tvzp-section-heading__description {
    color: #fff;
}

.tvzp-carousel__viewport {
    box-sizing: border-box;
    overflow: hidden;
    padding-right: 0;
    padding-left: 0;
}

.tvzp-carousel__track {
    display: flex;
    gap: var(--tvzp-carousel-gap);
    transition: transform 0.4s ease;
    will-change: transform;
}

.tvzp-carousel__track.owl-carousel {
    gap: 0;
    transition: none;
}

.tvzp-carousel__track.owl-carousel .owl-stage-outer {
    overflow: hidden;
}

.tvzp-carousel__track.owl-carousel .owl-stage {
    display: block;
}

.tvzp-carousel__track.owl-carousel .owl-item {
    height: auto;
    display: flex;
    box-sizing: border-box;
}

.tvzp-carousel__track.owl-carousel .owl-item > .tvzp-carousel__item {
    width: 100%;
    height: 100%;
}

.tvzp-carousel__item {
    flex: 0 0 auto;
    width: 100%;
}

.tvzp-carousel__card {
    height: 100%;
    overflow: hidden;
    border-radius: 18px;
    border: 1px solid var(--tvzp-border);
    background: #fff;
    box-shadow: var(--tvzp-shadow);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.tvzp-carousel__card:hover {
    transform: translateY(-4px);
}

.tvzp-carousel__image {
    max-width: 100%;
    overflow: hidden;
}

.tvzp-carousel__image img {
    display: block;
    width: 100%;
    height: 210px;
    object-fit: cover;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.tvzp-carousel__content {
    padding: 18px;
}

.tvzp-carousel__eyebrow {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--tvzp-green-700);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: color 0.25s ease;
}

.tvzp-carousel__title {
    margin: 0;
    color: var(--tvzp-green-900);
    font-size: 19px;
    line-height: 1.28;
    transition: color 0.25s ease;
}

.tvzp-carousel__description {
    margin: 10px 0 0;
    color: rgba(15, 52, 39, 0.72);
    font-size: 14px;
    line-height: 1.7;
    transition: color 0.25s ease;
}

.tvzp-carousel__button {
    margin-top: 16px;
    color: #fff;
    background: var(--tvzp-green-700);
    transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.tvzp-carousel__nav {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
}

.tvzp-carousel__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: var(--tvzp-green-100);
    color: var(--tvzp-green-900);
    cursor: pointer;
}

.tvzp-carousel__dots {
    display: flex;
    justify-content: center;
    gap: 0;
    margin-top: 18px;
}

.tvzp-carousel__dot {
    width: 56px;
    height: 3px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(15, 52, 39, 0.2);
    cursor: pointer;
    transition: all 0.2s ease;
}

.tvzp-carousel__dot.is-active {
    width: 56px;
    background: var(--tvzp-green-900);
}

.tvzp-iconbox {
    --tvzp-carousel-gap: 24px;
}

.tvzp-iconbox__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.tvzp-iconbox__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: 100%;
    padding: 26px 24px;
    border: 1px solid var(--tvzp-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(8, 33, 25, 0.06);
    transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.tvzp-iconbox__card:hover {
    transform: translateY(-4px);
}

.tvzp-iconbox__icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    margin-bottom: 18px;
    border-radius: 18px;
    background: var(--tvzp-green-100);
    color: var(--tvzp-green-800);
    transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.tvzp-iconbox__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    line-height: 1;
    color: inherit;
    transition: color 0.25s ease;
}

.tvzp-iconbox__icon i,
.tvzp-iconbox__icon svg,
.tvzp-iconbox__button-icon i,
.tvzp-iconbox__button-icon svg {
    display: block;
}

.tvzp-iconbox__icon svg,
.tvzp-iconbox__button-icon svg {
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.tvzp-iconbox__content {
    width: 100%;
}

.tvzp-iconbox__subtitle {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--tvzp-green-700);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: color 0.25s ease;
}

.tvzp-iconbox__title {
    margin: 0;
    color: var(--tvzp-green-900);
    font-size: 22px;
    line-height: 1.3;
    transition: color 0.25s ease;
}

.tvzp-iconbox__description {
    margin: 12px 0 0;
    color: rgba(15, 52, 39, 0.72);
    font-size: 14px;
    line-height: 1.75;
    transition: color 0.25s ease;
}

.tvzp-iconbox__button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin-top: 18px;
    padding: 11px 18px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--tvzp-green-700);
    color: #fff;
    text-decoration: none;
    transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.tvzp-iconbox__button-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: inherit;
    transition: color 0.25s ease;
}

.tvzp-iconbox--layout-carousel .tvzp-carousel__track.owl-carousel .owl-item > .tvzp-carousel__item,
.tvzp-iconbox--layout-carousel .tvzp-carousel__item {
    height: 100%;
}

.tvzp-iconbox--layout-carousel .tvzp-iconbox__card {
    height: 100%;
}

.tvzp-trust {
    padding: 34px 24px;
    text-align: center;
}

.tvzp-trust__row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 20px;
}

.tvzp-trust__left,
.tvzp-trust__right {
    color: var(--tvzp-green-900);
    font-size: clamp(30px, 2.6vw, 52px);
    font-weight: 700;
    line-height: 1.06;
}

.tvzp-trust__center img {
    width: 120px;
    max-width: 100%;
    height: auto;
}

.tvzp-trust__description {
    max-width: 740px;
    margin: 16px auto 0;
    color: rgba(15, 52, 39, 0.72);
    font-size: 15px;
    line-height: 1.7;
}

.tvzp-menu {
    position: relative;
    width: 100%;
    --tvzp-menu-gap: 28px;
    --tvzp-menu-drawer-width: 380px;
}

.tvzp-menu__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 50px;
}

.tvzp-menu__desktop {
    flex: 1 1 auto;
}

.tvzp-menu__desktop .tvzp-menu__list,
.tvzp-menu__mobile-nav .tvzp-menu__list,
.tvzp-menu__desktop .sub-menu,
.tvzp-menu__mobile-nav .sub-menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.tvzp-menu__desktop .tvzp-menu__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--tvzp-menu-gap);
}

.tvzp-menu__desktop .tvzp-menu__list > li {
    position: relative;
}

.tvzp-menu__desktop .tvzp-menu__list > li > a,
.tvzp-menu__mobile-nav .tvzp-menu__list > li > a {
    text-decoration: none;
    border: 1px solid transparent;
    background: transparent;
    transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.tvzp-menu__desktop .tvzp-menu__list > li > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    color: var(--tvzp-green-900);
    font-size: 15px;
    font-weight: 600;
}

.tvzp-menu__desktop .menu-item-has-children > a::after {
    content: "\25BE";
    margin-left: 8px;
    font-size: 11px;
}

.tvzp-menu__desktop .sub-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    z-index: 30;
    min-width: 220px;
    padding: 12px 0;
    border: 1px solid rgba(15, 52, 39, 0.08);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 18px 32px rgba(8, 33, 25, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

.tvzp-menu__desktop .menu-item-has-children:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.tvzp-menu__desktop .sub-menu a {
    display: block;
    padding: 9px 18px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--tvzp-green-900);
    font-size: 14px;
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.tvzp-menu__toggle,
.tvzp-menu__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    background: var(--tvzp-green-100);
    color: var(--tvzp-green-900);
    cursor: pointer;
    transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.tvzp-menu__toggle:hover,
.tvzp-menu__close:hover {
    transform: translateY(-1px);
}

.tvzp-menu__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
}

.tvzp-menu__icon i {
    display: block;
}

.tvzp-menu__icon svg {
    display: block;
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.tvzp-menu__overlay {
    position: fixed;
    inset: 0;
    z-index: 99997;
    border: 0;
    background: rgba(11, 25, 20, 0.48);
    opacity: 0;
    visibility: hidden;
    cursor: pointer;
    transition: opacity 0.28s ease, visibility 0.28s ease;
}

.tvzp-menu__drawer {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 99998;
    width: min(100%, var(--tvzp-menu-drawer-width));
    height: 100vh;
    height: 100dvh;
    max-height: 100dvh;
    background: #fff;
    transform: translate3d(100%, 0, 0);
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.tvzp-menu--drawer-left .tvzp-menu__drawer {
    right: auto;
    left: 0;
    transform: translate3d(-100%, 0, 0);
}

.tvzp-menu__drawer-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    padding: 26px 24px;
}

.tvzp-menu__drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}

.tvzp-menu__mobile-logo,
.tvzp-menu__mobile-logo-link {
    display: inline-flex;
    align-items: center;
}

.tvzp-menu__mobile-logo img {
    display: block;
    width: 140px;
    max-width: 100%;
    height: auto;
}



.tvzp-menu__mobile-nav .tvzp-menu__list {
    display: flex;
    flex-direction: column;
}

.tvzp-menu__mobile-nav .tvzp-menu__mobile-item-row {
    display: flex;
    align-items: stretch;
    gap: 0px;
}

.tvzp-menu__mobile-nav .tvzp-menu__mobile-item-row > a,
.tvzp-menu__mobile-nav .tvzp-menu__list > li > a {
    display: block;
    flex: 1 1 auto;
    padding: 12px 0;
    border-bottom: 1px solid rgba(15, 52, 39, 0.08);
    color: var(--tvzp-green-900);
    font-size: 18px;
    font-weight: 600;
}

.tvzp-menu__submenu-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 42px;
    min-height: 42px;
    align-self: stretch;
    padding: 0;
    border: 0;
    border-bottom: 1px solid rgba(15, 52, 39, 0.08);
    background: transparent;
    color: var(--tvzp-green-900);
    cursor: pointer;
    height: auto;
}

.tvzp-menu__submenu-toggle-icon {
    display: inline-flex;
    width: 10px;
    height: 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform 0.2s ease;
}

.tvzp-menu__mobile-nav .menu-item-has-children.is-submenu-open > .tvzp-menu__mobile-item-row .tvzp-menu__submenu-toggle-icon {
    transform: rotate(-135deg) translateY(1px);
}

.tvzp-menu__mobile-nav .sub-menu {
    padding-top: 8px;
    padding-left: 18px;
}

.tvzp-menu__mobile-nav .sub-menu[hidden] {
    display: none !important;
}

.tvzp-menu__mobile-nav .sub-menu > li > .tvzp-menu__mobile-item-row > a,
.tvzp-menu__mobile-nav .sub-menu a {
    display: block;
    padding: 8px 0;
    border: 1px solid transparent;
    background: transparent;
    color: rgba(15, 52, 39, 0.72);
    font-size: 14px;
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.tvzp-menu__mobile-nav .sub-menu .tvzp-menu__submenu-toggle {
    width: 34px;
    border-bottom-color: transparent;
}

.tvzp-menu--submenu-slide .tvzp-menu__drawer-inner {
    position: relative;
    overflow: hidden;
}

.tvzp-menu--submenu-slide .mobile-nav-body {
    min-height: 0;
    overflow-y: auto;
}

.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .tvzp-menu__mobile-item-row {
    align-items: center;
}

.tvzp-menu--submenu-slide .tvzp-menu__submenu-toggle-icon {
    transform: rotate(-45deg);
}

.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .menu-item-has-children.is-submenu-open > .tvzp-menu__mobile-item-row .tvzp-menu__submenu-toggle-icon,
.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .tvzp-megamenu__item--mega.is-submenu-open > .tvzp-menu__mobile-item-row .tvzp-menu__submenu-toggle-icon {
    transform: rotate(-45deg);
}

.tvzp-menu.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .sub-menu,
.tvzp-menu.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .tvzp-megamenu__panel {
    position: absolute !important;
    inset: 0;
    z-index: 20;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100%;
    margin: 0;
    padding: 0 28px 28px;
    overflow-y: auto !important;
    list-style: none;
    background: #ffffff;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: hidden !important;
    transform: translate3d(100%, 0, 0) !important;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.28s ease !important;
    pointer-events: none;
}

.tvzp-menu--drawer-left.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .sub-menu,
.tvzp-menu--drawer-left.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .tvzp-megamenu__panel {
    transform: translate3d(-100%, 0, 0) !important;
}

.tvzp-menu.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .sub-menu[hidden],
.tvzp-menu.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .tvzp-megamenu__panel[hidden] {
    display: block !important;
    visibility: hidden !important;
}

.tvzp-menu.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .is-submenu-open > .sub-menu,
.tvzp-menu.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .is-submenu-open > .tvzp-megamenu__panel {
    visibility: visible !important;
    transform: translate3d(0, 0, 0) !important;
    pointer-events: auto;
}
.tvzp-menu--submenu-slide-panel .sub-menu {
    position: absolute!important;
    width: 100% !important;
    max-width: 100% !important;
    top: 0!important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    height: 100%;
    z-index: 99;
    background: #fff;
    right: -100%;
    transition: all .3s ease-in-out!important;
    opacity:0;
    visibility:hidden;
    z-index: 9999;
}
.tvzp-menu__submenu-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 74px;
    padding: 0px;
    border-bottom: 1px solid rgba(15, 52, 39, 0.1);
    background: #ffffff;
}

.tvzp-menu--submenu-slide-panel .sub-menu[aria-hidden="false"] {
    right: 0;
    opacity:1;
    visibility:visible;
}
.tvzp-menu__drawer-inner {
    position: relative;
}

.tvzp-menu__submenu-back,
.tvzp-menu__submenu-panel-close {
    border: 0;
    background: transparent;
    color: var(--tvzp-green-900);
    cursor: pointer;
}

.tvzp-menu__submenu-back {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 12px;
    padding: 0;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
}

.tvzp-menu__submenu-back-icon {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(15, 52, 39, 0.12);
    border-radius: 50%;
    background: #ffffff;
}

.tvzp-menu__submenu-back-icon::before {
    content: "";
    width: 9px;
    height: 9px;
    border-left: 1.8px solid currentColor;
    border-bottom: 1.8px solid currentColor;
    transform: rotate(45deg) translate(2px, -1px);
}

.tvzp-menu__submenu-panel-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tvzp-menu__submenu-panel-close {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid rgba(15, 52, 39, 0.12);
    border-radius: 50%;
}

.tvzp-menu__submenu-panel-close::before,
.tvzp-menu__submenu-panel-close::after {
    content: "";
    position: absolute;
    width: 14px;
    height: 1.8px;
    border-radius: 999px;
    background: currentColor;
}

.tvzp-menu__submenu-panel-close::before {
    transform: rotate(45deg);
}

.tvzp-menu__submenu-panel-close::after {
    transform: rotate(-45deg);
}

.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .sub-menu > li > .tvzp-menu__mobile-item-row > a,
.tvzp-menu--submenu-slide .tvzp-menu__mobile-nav .sub-menu a {
    padding: 13px 0;
    border-bottom-color: rgba(15, 52, 39, 0.08);
    color: rgba(15, 52, 39, 0.76);
    font-size: 16px;
}

.tvzp-menu__template {
    margin-top: 28px;
}

.tvzp-menu__template:empty {
    display: none;
}

.tvzp-menu__placeholder {
    color: rgba(15, 52, 39, 0.6);
    font-size: 14px;
}

.tvzp-menu__toggle,
.tvzp-menu__overlay,
.tvzp-menu__drawer {
    display: none;
}

.tvzp-menu.is-mobile .tvzp-menu__desktop {
    display: none;
}

.tvzp-menu.is-mobile .tvzp-menu__toggle,
.tvzp-menu.is-mobile .tvzp-menu__overlay,
.tvzp-menu.is-mobile .tvzp-menu__drawer {
    display: inline-flex;
}

.tvzp-menu.is-mobile .tvzp-menu__overlay {
    display: block;
}

.tvzp-menu.is-mobile .tvzp-menu__drawer {
    display: block;
}

.tvzp-menu.is-open .tvzp-menu__overlay {
    opacity: 1;
    visibility: visible;
}

.tvzp-menu.is-open .tvzp-menu__drawer {
    transform: translate3d(0, 0, 0);
}

body.tvzp-menu-open {
    overflow: hidden;
}

@media (max-width: 1024px) {
    .tvzp-hero__inner {
        padding: 80px 36px 72px;
    }

    .tvzp-promise__inner,
    .tvzp-trust__row {
        grid-template-columns: 1fr;
    }

    .tvzp-card-grid__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tvzp-iconbox__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .tvzp-hero {
        min-height: 560px;
    }

    .tvzp-hero__inner {
        width: 100%;
        padding: 64px 22px 80px;
    }

    .tvzp-iconbox__grid {
        grid-template-columns: 1fr;
    }

    .tvzp-hero__content::after {
        right: -16px;
        bottom: -18px;
        width: 58px;
        height: 58px;
        border-right-width: 8px;
        border-bottom-width: 8px;
    }

    .tvzp-hero__arrow {
        display: none;
    }

    .tvzp-promise__inner {
        padding: 18px;
    }

    .tvzp-promise__stats,
    .tvzp-card-grid__items,
    .tvzp-app-list__grid {
        grid-template-columns: 1fr;
    }

    .tvzp-carousel--highlight {
        padding: 24px 18px 32px;
    }

    .tvzp-trust {
        padding: 20px 12px;
    }
}

.tvzp-app-accordion__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.tvzp-app-accordion__item {
    border-bottom: 1px solid rgba(16, 61, 47, 0.14);
}

.tvzp-app-accordion__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    width: 100%;
    padding: 18px 0;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.tvzp-app-accordion__title {
    color: var(--tvzp-green-900);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
}

.tvzp-app-accordion__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    color: var(--tvzp-green-700);
    font-size: 22px;
    font-weight: 500;
    line-height: 1;
    transition: transform 0.2s ease;
}

.tvzp-app-accordion__item.is-active .tvzp-app-accordion__icon {
    transform: rotate(45deg);
}

.tvzp-app-accordion__body {
    display: block;
}

.tvzp-app-accordion__body-inner {
    padding: 0 0 18px;
}

.tvzp-app-accordion__content {
    color: rgba(15, 52, 39, 0.74);
    font-size: 14px;
    line-height: 1.8;
}

.tvzp-app-accordion__content p {
    margin: 0;
}

.tvzp-app-accordion__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    padding: 10px 18px;
    border-radius: 999px;
    background: var(--tvzp-green-700);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.tvzp-card-grid--layout-carousel .tvzp-carousel__viewport {
    overflow: hidden;
}

.tvzp-card-grid--layout-carousel .tvzp-carousel__track:not(.owl-carousel) {
    display: flex;
    gap: var(--tvzp-carousel-gap, 20px);
    transition: transform 0.4s ease;
}

.tvzp-card-grid--layout-carousel .tvzp-carousel__item {
    flex: 0 0 auto;
}

.tvzp-card-grid--layout-carousel .tvzp-carousel__nav {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 22px;
}

.tvzp-card-grid--layout-carousel .tvzp-carousel__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: var(--tvzp-green-100);
    color: var(--tvzp-green-900);
    cursor: pointer;
}

.tvzp-card-grid--layout-carousel .tvzp-carousel__dots {
    display: flex;
    justify-content: center;
    gap: 0;
    margin-top: 18px;
}

.tvzp-card-grid--layout-carousel .tvzp-carousel__dot {
    width: 56px;
    height: 3px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(15, 52, 39, 0.22);
}

.tvzp-card-grid--layout-carousel .tvzp-carousel__dot.is-active {
    width: 56px;
    background: var(--tvzp-green-900);
}

.tvzp-industries .tvzp-carousel__track {
    align-items: flex-end;
    justify-content: center;
    --tvzp-carousel-gap: 18px;
    padding-top: 28px;
}

.tvzp-industries .tvzp-carousel__track.owl-carousel .owl-stage-outer {
    overflow: visible;
}

.tvzp-industries .tvzp-carousel__track.owl-carousel .owl-item {
    align-items: flex-end;
}

.tvzp-industries .tvzp-carousel__viewport {
    max-width: 1160px;
    margin: 0 auto;
    padding-top: 6px;
}

.tvzp-industries .tvzp-carousel__item {
    display: flex;
    align-items: flex-end;
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.tvzp-industries__card {
    width: 100%;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: var(--tvzp-shadow);
    transform-origin: center;
    transition: transform 0.35s ease, box-shadow 0.35s ease, opacity 0.35s ease;
}

.tvzp-industries__link {
    position: relative;
    display: block;
    color: inherit;
    text-decoration: none;
}

.tvzp-industries__image {
    position: relative;
}

.tvzp-industries__image img {
    display: block;
    width: 100%;
    height: 290px;
    object-fit: cover;
}

.tvzp-industries__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(12, 35, 27, 0.04) 0%, rgba(12, 35, 27, 0.72) 100%);
}

.tvzp-industries__content {
    position: absolute;
    right: 16px;
    bottom: 16px;
    left: 16px;
    z-index: 2;
    text-align: center;
}

.tvzp-industries__subtitle {
    display: block;
    margin-bottom: 6px;
    color: rgba(255, 255, 255, 0.74);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tvzp-industries__title {
    margin: 0;
    color: #fff;
    font-size: 22px;
    line-height: 1.18;
}

@media (min-width: 768px) {
    .tvzp-industries {
        --tvzp-industries-focus-scale: 1.06;
        --tvzp-industries-near-scale: 0.92;
        --tvzp-industries-far-scale: 0.82;
    }

    .tvzp-industries .tvzp-carousel__item.is-focus {
        z-index: 3;
    }

    .tvzp-industries .owl-item.is-focus .tvzp-industries__card,
    .tvzp-industries .tvzp-carousel__item.is-focus .tvzp-industries__card {
        transform: scale(var(--tvzp-industries-focus-scale));
        box-shadow: 0 26px 48px rgba(8, 33, 25, 0.18);
    }

    .tvzp-industries .owl-item.is-near,
    .tvzp-industries .tvzp-carousel__item.is-near {
        z-index: 2;
    }

    .tvzp-industries .owl-item.is-near .tvzp-industries__card,
    .tvzp-industries .tvzp-carousel__item.is-near .tvzp-industries__card {
        transform: scale(var(--tvzp-industries-near-scale));
        opacity: 0.96;
    }

    .tvzp-industries .owl-item.is-far,
    .tvzp-industries .tvzp-carousel__item.is-far {
        z-index: 1;
    }

    .tvzp-industries .owl-item.is-far .tvzp-industries__card,
    .tvzp-industries .tvzp-carousel__item.is-far .tvzp-industries__card {
        transform: scale(var(--tvzp-industries-far-scale));
        opacity: 0.88;
    }
}

.tvzp-product-highlight {
    --tvzp-product-highlight-image-width: 160px;
    padding: 36px 30px 40px;
    border-radius: 0;
    background: #17815e;
}

.tvzp-product-highlight .tvzp-section-heading {
    text-align: center;
}

.tvzp-product-highlight .tvzp-section-heading__eyebrow,
.tvzp-product-highlight .tvzp-section-heading__title,
.tvzp-product-highlight .tvzp-section-heading__description {
    color: #fff;
}

.tvzp-product-highlight .tvzp-carousel__track {
    --tvzp-carousel-gap: 18px;
}

.tvzp-product-highlight__card {
    display: grid;
    grid-template-columns: minmax(0, var(--tvzp-product-highlight-image-width)) minmax(0, 1fr);
    gap: 0;
    min-height: 160px;
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(8, 33, 25, 0.12);
}

.tvzp-product-highlight__image {
    max-width: 100%;
}

.tvzp-product-highlight__image img {
    display: block;
    width: 100%;
    height: 160px;
    object-fit: cover;
}

.tvzp-product-highlight__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 18px 20px;
}

.tvzp-product-highlight__badge {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--tvzp-green-700);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.tvzp-product-highlight__title {
    margin: 0;
    color: var(--tvzp-green-900);
    font-size: 20px;
    line-height: 1.2;
}

.tvzp-product-highlight__description {
    margin: 10px 0 0;
    color: rgba(15, 52, 39, 0.72);
    font-size: 14px;
    line-height: 1.7;
}

.tvzp-product-highlight__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin-top: 14px;
    padding: 10px 16px;
    border-radius: 999px;
    background: var(--tvzp-green-700);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.tvzp-product-highlight .tvzp-carousel__dots {
    display: flex;
    justify-content: center;
    gap: 0;
    margin-top: 18px;
}

.tvzp-product-highlight .tvzp-carousel__dot {
    width: 56px;
    height: 3px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgba(255, 255, 255, 0.45);
}

.tvzp-product-highlight .tvzp-carousel__dot.is-active {
    width: 56px;
    background: #fff;
}

@media (max-width: 991px) {
    .tvzp-app-accordion__grid {
        grid-template-columns: 1fr;
    }

    .tvzp-product-highlight {
        padding: 28px 18px 32px;
    }

    .tvzp-product-highlight__card {
        grid-template-columns: 1fr;
    }

    .tvzp-product-highlight__image img {
        height: 200px;
    }
}

.mobile-nav-body {
    flex: 0 1 auto;
    min-height: 0;
}
/* ==========================================================================
   CUT-CORNER BUTTON — tvzp-ccbtn-*
   Used by Feature Cards Widget (tvzp_feature_cards)
   All Elementor style-tab selectors target these classes.
   ========================================================================== */

/* ── Button wrapper row ─────────────────────────────────────────────────── */
.tvzp-feature-card__button-wrap {
    display         : flex;
    justify-content : flex-start;
    margin-top      : 28px;
}

/* ── Proxy: outer element for box-shadow (clip-path blocks shadow) ───────── */
.tvzp-ccbtn-proxy {
    display    : inline-block;
    transition : transform var(--tvzp-dur, .35s) ease,
                 opacity  var(--tvzp-dur, .35s) ease;
}

/* ── Shell: carries the chamfered clip-path & outer background ──────────── */
.tvzp-ccbtn-shell {
    --tvzp-cut  : 14px;   /* corner cut depth      */
    --tvzp-bw   : 1.5px;  /* border width (outline) */
    --tvzp-dur  : .35s;   /* transition duration    */

    display         : inline-flex;
    align-items     : center;
    position        : relative;
    overflow        : hidden;     /* clips ripple */
    cursor          : pointer;
    text-decoration : none;
    border          : none;
    outline         : none;
    background      : transparent;
    padding         : 0;
    -webkit-user-select : none;
    user-select         : none;

    /* Chamfer: top-left + bottom-right corners cut */
    clip-path: polygon(
        var(--tvzp-cut) 0%,
        100% 0%,
        100% calc(100% - var(--tvzp-cut)),
        calc(100% - var(--tvzp-cut)) 100%,
        0% 100%,
        0% var(--tvzp-cut)
    );

    transition :
        background-color var(--tvzp-dur) ease,
        background-image var(--tvzp-dur) ease,
        transform        var(--tvzp-dur) ease;
}

/* ── Fill: inner content layer ─────────────────────────────────────────── */
.tvzp-ccbtn-fill {
    display     : inline-flex;
    align-items : center;
    white-space : nowrap;
    position    : relative;
    z-index     : 1;
    gap         : 9px;
    padding     : 11px 34px 11px 22px;
    transition  :
        background-color var(--tvzp-dur) ease,
        background-image var(--tvzp-dur) ease,
        color            var(--tvzp-dur) ease;
}

/* ── FLAT layout ─────────────────────────────────────────────────────────── */
.tvzp-ccbtn-shell.tvzp-ccbtn--flat {
    background-color : #b48a58;
}
.tvzp-ccbtn-shell.tvzp-ccbtn--flat .tvzp-ccbtn-fill {
    background-color : transparent;
    clip-path        : none;
    color            : #ffffff;
}
.tvzp-ccbtn-shell.tvzp-ccbtn--flat:hover {
    background-color : #8a6530;
}

/* ── BORDER (outlined) layout ────────────────────────────────────────────── */
.tvzp-ccbtn-shell.tvzp-ccbtn--border {
    background-color : #101010; /* outer shell = border colour */
}
.tvzp-ccbtn-shell.tvzp-ccbtn--border .tvzp-ccbtn-fill {
    /* inset margin = border thickness on all four sides */
    margin           : var(--tvzp-bw);
    background-color : #ffffff;
    color            : #101010;

    /* inner clip-path matches outer shape minus border gap */
    clip-path: polygon(
        calc(var(--tvzp-cut) - var(--tvzp-bw)) 0%,
        100% 0%,
        100% calc(100% - var(--tvzp-cut) + var(--tvzp-bw)),
        calc(100% - var(--tvzp-cut) + var(--tvzp-bw)) 100%,
        0% 100%,
        0% calc(var(--tvzp-cut) - var(--tvzp-bw))
    );
}
.tvzp-ccbtn-shell.tvzp-ccbtn--border:hover .tvzp-ccbtn-fill {
    background-color : #101010;
    color            : #ffffff;
}

/* ── Icon ────────────────────────────────────────────────────────────────── */
.tvzp-ccbtn-icon {
    display     : inline-flex;
    align-items : center;
    line-height : 1;
    flex-shrink : 0;
    transition  : transform var(--tvzp-dur) ease,
                  color     var(--tvzp-dur) ease;
}
.tvzp-ccbtn-icon i,
.tvzp-ccbtn-icon svg {
    display    : block;
    transition : color var(--tvzp-dur) ease,
                 fill  var(--tvzp-dur) ease;
}

/* ── Ripple ──────────────────────────────────────────────────────────────── */
.tvzp-ccbtn-ripple {
    position       : absolute;
    width          : 0;
    height         : 0;
    background     : rgba(255, 255, 255, 0.28);
    border-radius  : 50%;
    transform      : translate(-50%, -50%);
    animation      : tvzpCcRipple .65s linear forwards;
    pointer-events : none;
    z-index        : 2;
}

@keyframes tvzpCcRipple {
    to {
        width   : 340px;
        height  : 340px;
        opacity : 0;
    }
}

/* ── Sweep fill pseudo overlay (flat only) ───────────────────────────────── */
.tvzp-ccbtn-shell.tvzp-ccbtn--flat::before {
    content          : '';
    position         : absolute;
    inset            : 0;
    background       : rgba(255, 255, 255, 0.13);
    transform        : scaleX(0);
    transform-origin : left center;
    transition       : transform var(--tvzp-dur) ease;
    z-index          : 0;
}

/* ==========================================================================
   HOVER ANIMATION PRESETS
   Applied to .tvzp-anim-* wrapper, combined with .tvzp-int-* intensity
   ========================================================================== */

/* lift */
.tvzp-anim-lift                  .tvzp-ccbtn-proxy:hover { transform: translateY(-3px); }
.tvzp-anim-lift.tvzp-int-subtle  .tvzp-ccbtn-proxy:hover { transform: translateY(-1px); }
.tvzp-anim-lift.tvzp-int-strong  .tvzp-ccbtn-proxy:hover { transform: translateY(-6px); }

/* sink */
.tvzp-anim-sink                  .tvzp-ccbtn-proxy:hover { transform: translateY(2px); }
.tvzp-anim-sink.tvzp-int-subtle  .tvzp-ccbtn-proxy:hover { transform: translateY(1px); }
.tvzp-anim-sink.tvzp-int-strong  .tvzp-ccbtn-proxy:hover { transform: translateY(4px); }

/* pulse scale */
.tvzp-anim-pulse                 .tvzp-ccbtn-shell:hover { transform: scale(1.04); }
.tvzp-anim-pulse.tvzp-int-subtle .tvzp-ccbtn-shell:hover { transform: scale(1.015); }
.tvzp-anim-pulse.tvzp-int-strong .tvzp-ccbtn-shell:hover { transform: scale(1.09); }

/* wobble */
@keyframes tvzpCcWobble {
    0%   { transform: rotate(0);    }
    15%  { transform: rotate(-3deg); }
    30%  { transform: rotate(3deg);  }
    45%  { transform: rotate(-2deg); }
    60%  { transform: rotate(2deg);  }
    75%  { transform: rotate(-1deg); }
    100% { transform: rotate(0);    }
}
@keyframes tvzpCcWobbleStrong {
    0%   { transform: rotate(0);    }
    15%  { transform: rotate(-6deg); }
    30%  { transform: rotate(6deg);  }
    45%  { transform: rotate(-4deg); }
    60%  { transform: rotate(4deg);  }
    75%  { transform: rotate(-2deg); }
    100% { transform: rotate(0);    }
}
.tvzp-anim-wobble                .tvzp-ccbtn-shell:hover { animation: tvzpCcWobble       .6s ease forwards; }
.tvzp-anim-wobble.tvzp-int-strong .tvzp-ccbtn-shell:hover { animation: tvzpCcWobbleStrong .6s ease forwards; }

/* glow (drop-shadow on proxy so clip-path doesn't block it) */
.tvzp-anim-glow                  .tvzp-ccbtn-proxy:hover { filter: drop-shadow(0 0  8px rgba(180, 138, 88, .60)); }
.tvzp-anim-glow.tvzp-int-subtle  .tvzp-ccbtn-proxy:hover { filter: drop-shadow(0 0  4px rgba(180, 138, 88, .40)); }
.tvzp-anim-glow.tvzp-int-strong  .tvzp-ccbtn-proxy:hover { filter: drop-shadow(0 0 18px rgba(180, 138, 88, .85)); }

/* sweep – reveal ::before overlay */
.tvzp-anim-sweep .tvzp-ccbtn-shell.tvzp-ccbtn--flat:hover::before { transform: scaleX(1); }

/*contact for 7 */

/* ==============================
   Contact Form 7 – Base Styling
   ============================== */

.wpcf7 {
    max-width: 100%;
}

/* Labels */
.wpcf7 form label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    color: #333;
}

/* Inputs */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 textarea,
.wpcf7 select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
    background: #fff;
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Focus */
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
    border-color: #0073aa;
    outline: none;
    box-shadow: 0 0 0 1px rgba(0,115,170,0.2);
}

/* Textarea */
.wpcf7 textarea {
    min-height: 120px;
    resize: vertical;
}

/* Submit Button */
.wpcf7 input[type="submit"],
.wpcf7 button {
    display: inline-block;
    background: #0073aa;
    color: #fff;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
    transition: background 0.2s ease;
}

/* Hover */
.wpcf7 input[type="submit"]:hover,
.wpcf7 button:hover {
    background: #005177;
}

/* Disabled */
.wpcf7 input[type="submit"]:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Checkbox / Radio */
.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
    margin-right: 6px;
}

/* Validation Errors */
.wpcf7-not-valid {
    border-color: #dc3232 !important;
}

.wpcf7-not-valid-tip {
    color: #dc3232;
    font-size: 12px;
    margin-top: 4px;
}

/* Response Output */
.wpcf7-response-output {
    margin-top: 15px;
    padding: 10px 12px;
    border-radius: 4px;
    font-size: 14px;
}

/* Success */
.wpcf7 form.sent .wpcf7-response-output {
    border: 1px solid #46b450;
    background: #ecf7ed;
    color: #2e7d32;
}

/* Error */
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output {
    border: 1px solid #dc3232;
    background: #fbeaea;
    color: #a00;
}

/* Spinner */
.wpcf7-spinner {
    margin-left: 10px;
    vertical-align: middle;
}

/* Spacing */
.wpcf7 p {
    margin-bottom: 16px;
}
/* ═══════════════════════════════════════════════════════════════════════════
 *  ANIMATED HEADING WIDGET  (tvzp_animated_heading)
 *  Widget class: .tvzp-animated-heading
 *  Animation system: .tvzp-act  (keyframes already defined above)
 *  Controls map 1:1 to the selectors used in register_controls().
 * ═══════════════════════════════════════════════════════════════════════════ */

/* ── Wrapper ─────────────────────────────────────────────────────────────── */
.tvzp-animated-heading {
    --tvzp-act-underline-duration : 700ms;
    --tvzp-act-underline-easing   : ease;

    position    : relative;   /* anchors .act-deco-left / .act-deco-right */
    display     : block;
    max-width   : 760px;      /* overrideable via Elementor slider  */
    margin      : 0 auto;
}

/* Centred alignment convenience — mirrors what Elementor injects */
.tvzp-animated-heading[style*="text-align: center"] .tvzp-animated-heading__divider {
    justify-content : center;
}

/* ── Eyebrow ─────────────────────────────────────────────────────────────── */
.tvzp-animated-heading__eyebrow {
    display         : inline-block;
    margin-bottom   : 14px;
    color           : var(--tvzp-accent, #b48a58);
    font-size       : 14px;
    font-weight     : 600;
    letter-spacing  : 5px;
    text-transform  : uppercase;
    line-height     : 1.4;
}

/* ── Title ───────────────────────────────────────────────────────────────── */
.tvzp-animated-heading__title {
    margin       : 0;
    font-size    : clamp(34px, 4vw, 58px);
    line-height  : 1.02;
    letter-spacing: -0.03em;
    font-weight  : 700;
}

/* ── Highlight word & underline ──────────────────────────────────────────── */
/*
 * .act-highlight-wrap — inline-block container that holds the word + underline
 * .act-highlight-word — the coloured/styled word itself
 * .act-underline      — draws from 0 → 100% width on .is-drawn
 *
 * All three classes are already defined in the .tvzp-act block above; these
 * rules extend/override defaults specifically for the heading widget context.
 */
.tvzp-animated-heading .act-highlight-wrap {
    display  : inline-block;
    position : relative;
}

.tvzp-animated-heading .act-highlight-word {
    position : relative;
    color    : var(--tvzp-accent, #b48a58);
    z-index  : 1;
}

.tvzp-animated-heading .act-underline {
    position         : absolute;
    bottom           : -2px;
    left             : 0;
    width            : 0;
    height           : 5px;
    background-color : var(--tvzp-accent, #b48a58);
    border-radius    : 3px;
    opacity          : 0.55;
    z-index          : 0;
    transition       : width var(--tvzp-act-underline-duration, 700ms)
                             var(--tvzp-act-underline-easing, ease);
}

.tvzp-animated-heading .act-underline.is-drawn {
    width : 100%;
}

/* ── Description ─────────────────────────────────────────────────────────── */
.tvzp-animated-heading__description {
    margin-top  : 18px;
    color       : #6f6f6f;
    font-size   : 18px;
    line-height : 1.7;
}

/* ── Divider ─────────────────────────────────────────────────────────────── */
.tvzp-animated-heading__divider {
    display         : inline-flex;
    align-items     : center;
    gap             : 12px;
    margin          : 14px 0;
}

/* line and symbol inherit from the existing .act-divider-line / .act-divider-symbol
   rules defined in the .tvzp-act block; no duplicate needed. */

/* ── Decorative symbols (absolute, positioned via Elementor controls) ─────── */
.tvzp-animated-heading .act-deco-left,
.tvzp-animated-heading .act-deco-right {
    position       : absolute;
    display        : block;
    line-height    : 1;
    pointer-events : none;
    user-select    : none;
}

/* ── Per-element entrance animation items ────────────────────────────────── */
/*
 * When .js-enabled is set on the wrapper, each child that carries
 * .act-anim-item starts at opacity:0. The inline JS runner (or a global
 * tvzp-act.js) adds .is-animated once the trigger fires, which applies
 * the named @keyframes already defined in the .tvzp-act block above.
 */
.tvzp-animated-heading.js-enabled .act-anim-item {
    opacity : 0;
}

.tvzp-animated-heading.js-enabled .act-anim-item.is-animated {
    opacity               : 1;
    animation-fill-mode   : both;
    animation-duration    : var(--tvzp-act-duration,  700ms);
    animation-delay       : var(--tvzp-act-delay,     0ms);
    animation-timing-function: var(--tvzp-act-easing, ease);
}

/* Map each animation class to its named @keyframe (already defined above) */
.tvzp-animated-heading.js-enabled .tvzp-act-anim--fade.is-animated       { animation-name: tvzpActFade;      }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--fade-up.is-animated    { animation-name: tvzpActFadeUp;    }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--fade-down.is-animated  { animation-name: tvzpActFadeDown;  }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--fade-left.is-animated  { animation-name: tvzpActFadeLeft;  }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--fade-right.is-animated { animation-name: tvzpActFadeRight; }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--slide-up.is-animated   { animation-name: tvzpActSlideUp;   }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--slide-down.is-animated { animation-name: tvzpActSlideDown; }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--zoom-in.is-animated    { animation-name: tvzpActZoomIn;    }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--zoom-out.is-animated   { animation-name: tvzpActZoomOut;   }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--flip-x.is-animated     { animation-name: tvzpActFlipX;     }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--flip-y.is-animated     { animation-name: tvzpActFlipY;     }
.tvzp-animated-heading.js-enabled .tvzp-act-anim--none.is-animated       { animation: none; opacity: 1; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 820px) {
    .tvzp-animated-heading {
        max-width: calc(100% - 24px);
    }

    .tvzp-animated-heading__title {
        font-size: clamp(28px, 5vw, 42px);
    }

    .tvzp-animated-heading__description {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .tvzp-animated-heading__eyebrow {
        font-size    : 12px;
        letter-spacing: 3px;
    }

    .tvzp-animated-heading__title {
        font-size: clamp(24px, 7vw, 36px);
    }
}
/* ==========================================================================
   TVZP COURSE CARDS WIDGET — tvzp-cc-*
   Pixel-matched to design: card carousel with thumbnail, badge, meta,
   category block, price, and cut-corner button.
   ========================================================================== */

/* ── Section wrapper ────────────────────────────────────────────────────── */
.tvzp-cc-section {
    width  : 100%;
    padding: 0;
}

/* ── Grid layout ────────────────────────────────────────────────────────── */
.tvzp-cc-grid {
    display               : grid;
    grid-template-columns : repeat(3, minmax(0, 1fr));
    gap                   : 24px;
}

/* ── Card ────────────────────────────────────────────────────────────────── */
.tvzp-cc-card {
    display        : flex;
    flex-direction : column;
    background     : #ffffff;
    border         : 1px solid rgba(0, 0, 0, 0.08);
    overflow       : hidden;
    transition     : box-shadow .3s ease, transform .3s ease, border-color .3s ease;
}

.tvzp-cc-card:hover {
    box-shadow : 0 16px 42px rgba(0, 0, 0, 0.12);
    transform  : translateY(-4px);
}

/* ── Media / thumbnail area ─────────────────────────────────────────────── */
.tvzp-cc-card__media {
    position : relative;
    padding  : 14px;
    flex-shrink: 0;
}

.tvzp-cc-card__image {
    display    : block;
    width      : 100%;
    height     : 206px;
    object-fit : cover;
}

/* ── Wishlist / Share round buttons ─────────────────────────────────────── */
.tvzp-cc-card__media-actions {
    position           : absolute;
    top                : 28px;
    inset-inline-start : 28px;
    display            : flex;
    gap                : 8px;
    z-index            : 2;
}

.tvzp-cc-card__round-btn {
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    width           : 34px;
    height          : 34px;
    border-radius   : 999px;
    background      : rgba(255, 255, 255, 0.92);
    color           : #111111;
    border          : none;
    cursor          : pointer;
    padding         : 0;
    transition      : background .2s ease, color .2s ease;
}

.tvzp-cc-card__round-btn:hover {
    background : #ffffff;
}

.tvzp-cc-card__round-btn svg {
    width      : 14px;
    height     : 14px;
    flex-shrink: 0;
    pointer-events: none;
}

/* ── Badge ───────────────────────────────────────────────────────────────── */
.tvzp-cc-card__badge {
    position       : absolute;
    top            : 28px;
    inset-inline-end: 28px;
    display        : inline-flex;
    align-items    : center;
    gap            : 5px;
    padding        : 5px 12px;
    border-radius  : 999px;
    font-size      : 12px;
    font-weight    : 700;
    line-height    : 1;
    z-index        : 2;
}

.tvzp-cc-card__badge--free {
    background-color : #e8f5e9;
    color            : #1b5e20;
}

.tvzp-cc-card__badge--paid {
    background-color : #8B44F7;
    color            : #ffffff;
}

.tvzp-cc-card__badge--custom {
    background-color : #17a589;
    color            : #ffffff;
}

/* ── Card body ───────────────────────────────────────────────────────────── */
.tvzp-cc-card__body {
    padding : 4px 18px 0;
    flex    : 1;
}

/* ── Provider + Rating row ───────────────────────────────────────────────── */
.tvzp-cc-card__meta-head {
    display         : flex;
    align-items     : center;
    justify-content : space-between;
    gap             : 12px;
    font-size       : 14px;
    min-height      : 38px;
}

.tvzp-cc-card__provider {
    display     : inline-flex;
    align-items : center;
    gap         : 8px;
    min-width   : 0;
    overflow    : hidden;
}

.tvzp-cc-card__provider-badge {
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    min-width       : 28px;
    height          : 20px;
    padding         : 0 5px;
    background      : #1b82f1;
    color           : #ffffff;
    font-size       : 10px;
    font-weight     : 700;
    border-radius   : 3px;
    flex-shrink     : 0;
}

.tvzp-cc-card__provider-name {
    color         : #555555;
    white-space   : nowrap;
    overflow      : hidden;
    text-overflow : ellipsis;
}

.tvzp-cc-card__rating {
    display     : inline-flex;
    align-items : center;
    gap         : 3px;
    color       : #727272;
    white-space : nowrap;
    flex-shrink : 0;
}

.tvzp-cc-card__rating-star {
    color : #ffb400;
}

/* ── Title ───────────────────────────────────────────────────────────────── */
.tvzp-cc-card__title {
    margin          : 14px 0 16px;
    font-size       : 22px;
    line-height     : 1.22;
    letter-spacing  : -0.02em;
    transition      : color .25s ease;
}

.tvzp-cc-card__title a {
    color           : #111111;
    text-decoration : none;
}

.tvzp-cc-card:hover .tvzp-cc-card__title a {
    color : var(--tvzp-accent, #b48a58);
}

/* ── Meta list (level / lessons / duration) ──────────────────────────────── */
.tvzp-cc-card__meta-list {
    list-style  : none;
    margin      : 0;
    padding     : 0;
    display     : flex;
    flex-wrap   : wrap;
    gap         : 14px;
    color       : #777777;
    font-size   : 14px;
    line-height : 1;
}

.tvzp-cc-card__meta-list li {
    display     : inline-flex;
    align-items : center;
    gap         : 5px;
}

.tvzp-cc-card__meta-list svg {
    flex-shrink : 0;
}

/* ── Category block ──────────────────────────────────────────────────────── */
.tvzp-cc-card__category {
    margin-top  : 16px;
    padding-top : 14px;
    border-top  : 1px solid rgba(0, 0, 0, 0.08);
}

.tvzp-cc-card__category-inner {
    border-left  : 3px solid #145ad4;
    padding-left : 10px;
}

.tvzp-cc-card__category-name {
    display      : block;
    color        : #145ad4;
    font-size    : 16px;
    font-weight  : 700;
    line-height  : 1.3;
}

.tvzp-cc-card__category-sub {
    display    : block;
    margin-top : 3px;
    color      : #707070;
    font-size  : 13px;
}

/* ── Footer ──────────────────────────────────────────────────────────────── */
.tvzp-cc-card__footer {
    display         : flex;
    align-items     : center;
    justify-content : space-between;
    gap             : 12px;
    padding         : 22px 18px 20px;
    margin-top      : auto;
}

/* ── Price ───────────────────────────────────────────────────────────────── */
.tvzp-cc-card__price {
    font-size      : 26px;
    font-weight    : 700;
    line-height    : 1;
    letter-spacing : -0.03em;
    color          : #111111;
}

.tvzp-cc-card__price * {
    font-size   : inherit;
    font-weight : inherit;
    color       : inherit;
}

/* ── Carousel wrapper ────────────────────────────────────────────────────── */
.tvzp-cc-carousel {
    position : relative;
    width    : 100%;
}

.tvzp-cc-track {
    width : 100%;
}

/* ── Progress bar + arrows row ───────────────────────────────────────────── */
.tvzp-cc-progress {
    display         : flex;
    align-items     : center;
    gap             : 12px;
    margin-top      : 22px;
    flex-wrap       : nowrap;
    width           : 100%;
}

.tvzp-cc-progress__bar-wrap {
    flex      : 1 1 auto;
    min-width : 0;
}

.tvzp-cc-progress__bar-track {
    position         : relative;
    height           : 4px;
    width            : 100%;
    background-color : rgba(0, 0, 0, 0.12);
    border-radius    : 2px;
    overflow         : hidden;
}

/*
 * The fill element carries BOTH classes:
 *   .tvzp-carousel-progress__fill  — shared positioning (position:absolute etc.)
 *   .tvzp-cc-progress__bar-fill    — widget-specific colour + border-radius
 * We re-declare the core positioning here so the rule is self-contained even
 * when the shared .tvzp-carousel-progress__fill rule loads in a different order.
 */
.tvzp-cc-progress__bar-fill {
    position      : absolute;
    left          : 0;
    top           : 0;
    height        : 100%;
    width         : 0%;
    border-radius : 2px;
    background-color : #b48a58;   /* fallback; overridden by Elementor inline style */
    transition    : width 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Arrow buttons ───────────────────────────────────────────────────────── */
.tvzp-cc-arrow {
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    width           : 34px;
    height          : 34px;
    border          : 1px solid rgba(0, 0, 0, 0.14);
    border-radius   : 50%;
    background      : #ffffff;
    color           : #555555;
    cursor          : pointer;
    padding         : 0;
    flex-shrink     : 0;
    transition      : background .2s ease, color .2s ease, border-color .2s ease;
}

.tvzp-cc-arrow:hover {
    background   : #f5f5f3;
    color        : #111111;
    border-color : rgba(0, 0, 0, 0.24);
}

.tvzp-cc-arrow svg {
    pointer-events : none;
}

/* ── Owl carousel integration ────────────────────────────────────────────── */
.tvzp-cc-track.owl-carousel .owl-nav,
.tvzp-cc-track.owl-carousel .owl-dots {
    display : none;   /* navigation is handled by our custom .tvzp-cc-progress row */
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .tvzp-cc-grid {
        grid-template-columns : repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .tvzp-cc-grid {
        grid-template-columns : 1fr;
    }

    .tvzp-cc-card__title {
        font-size : 18px;
    }

    .tvzp-cc-card__footer {
        flex-wrap : wrap;
        gap       : 10px;
    }
}
/* ================================================================
   TESTIMONIAL SHOWCASE — Cut-Corner Buttons
   Replaces the previous arrow/chevron clip-path with the same
   diagonal cut-corner shape used by the WMI button widget.
   CSS variable --tvzp-btn-cut is set per-widget via Elementor
   selectors (defaults to 16px).
   ================================================================ */

/* ── Next button: cut top-left + bottom-right ── */
.tvzp-testimonial-showcase__next.tvzp-button {
    --tvzp-btn-cut: 16px;
    clip-path: polygon(
        var(--tvzp-btn-cut) 0%,
        100% 0%,
        100% calc(100% - var(--tvzp-btn-cut)),
        calc(100% - var(--tvzp-btn-cut)) 100%,
        0% 100%,
        0% var(--tvzp-btn-cut)
    );
    transition:
        background-color 0.25s ease,
        border-color     0.25s ease,
        color            0.25s ease,
        transform        0.25s ease,
        opacity          0.25s ease,
        box-shadow       0.25s ease;
}

/* ── Prev button: mirror — cut top-right + bottom-left ── */
.tvzp-testimonial-showcase__prev.tvzp-button {
    --tvzp-btn-cut: 16px;
    transition:
        background-color 0.25s ease,
        border-color     0.25s ease,
        color            0.25s ease,
        transform        0.25s ease,
        opacity          0.25s ease,
        box-shadow       0.25s ease;
}

/* Keep cursor: pointer (was on the old rules too) */
.tvzp-testimonial-showcase__prev.tvzp-button, 
.tvzp-testimonial-showcase__next.tvzp-button {
    cursor: pointer;
    border-radius: 0;
}
.course-type img {
    max-width: 30px !important;
    width: 100%;
}
.course-type {
    display: flex;
    flex: 1;
    align-items: center;
    gap: 5px;
}
/* Icon colour inside buttons inherits button colour */
.tvzp-testimonial-showcase__prev .tvzp-button__icon i,
.tvzp-testimonial-showcase__prev .tvzp-button__icon svg,
.tvzp-testimonial-showcase__next .tvzp-button__icon i,
.tvzp-testimonial-showcase__next .tvzp-button__icon svg {
    transition: color 0.25s ease, fill 0.25s ease;
}

/* ================================================================
   COURSE CARDS WIDGET — WooCommerce price HTML compatibility.
   WC wraps prices in <span class="woocommerce-Price-amount amount"><bdi>…</bdi></span>.
   Ensure font-size / color cascade correctly and sale prices look good.
   ================================================================ */
.tvzp-cc-card__price .woocommerce-Price-amount {
    font-size  : inherit;
    font-weight: inherit;
    color      : inherit;
}
.tvzp-cc-card__price del {
    opacity       : 0.6;
    margin-right  : 4px;
    font-weight   : 400;
}
.tvzp-cc-card__price ins {
    text-decoration: none;
}
.tvzp-cc-price-free {
    font-weight: 700;
}
.tvzp-cc-carousel .owl-carousel .owl-stage {
    display: flex;
    margin: auto;
}
.tvzp-cc-carousel .course-item-wrap {
    flex: 1 0 auto;
    height: 100%;
}
.wmi-ccbtn-shell.wmi-flat .wmi-ccbtn-fill {
    margin: auto;
}
.wmi-ccbtn-outer {
    flex-direction: column;
    width: auto!important;
}

/* ================================================================
 * Course Cards — Side Arrows (.tvzp-cc-arrow--prev / --next)
 * Positioned absolutely inside .tvzp-cc-carousel (position:relative)
 * All colors/sizes/offsets overridable via Elementor style controls.
 * ================================================================ */
.tvzp-cc-carousel {
    position: relative;
}
.tvzp-cc-arrow {
    position        : absolute;
    top             : 50%;
    transform       : translateY(-50%);
    z-index         : 10;
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    width           : 38px;
    height          : 38px;
    cursor          : pointer;
    background-color: #ffffff;
    border          : 1px solid rgba(0,0,0,0.12);
    border-radius   : 50%;
    color           : #555555;
    font-size       : 16px;
    line-height     : 1;
    transition      : background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.tvzp-cc-arrow:hover {
    background-color: #f5f5f3;
    color           : #111111;
}
.tvzp-cc-arrow--prev {
    left : -18px;
    right: auto;
}
.tvzp-cc-arrow--next {
    right: -18px;
    left : auto;
}
.tvzp-cc-arrow svg,
.tvzp-cc-arrow i {
    pointer-events: none;
    display       : block;
}

/* ================================================================
 * FAQ Tabs — base display helpers not handled by Elementor controls
 * ================================================================ */
.tvzp-faq-tabs__filters {
    display    : flex;
    flex-wrap  : wrap;
    align-items: center;
    gap        : 8px;
    list-style : none;
    margin     : 0;
    padding    : 0;
}
.tvzp-faq-tabs__filter {
    cursor     : pointer;
    background : transparent;
    border     : none;
    outline    : none;
    display    : inline-flex;
    align-items: center;
}
.tvzp-faq-tabs__items {
    display       : flex;
    flex-direction: column;
}
.tvzp-faq-item {
    overflow: hidden;
}
.tvzp-faq-item__question {
    width          : 100%;
    display        : flex;
    align-items    : center;
    justify-content: space-between;
    background     : transparent;
    border         : none;
    outline        : none;
    cursor         : pointer;
    text-align     : left;
}
.tvzp-faq-item__toggle {
    display        : inline-flex;
    align-items    : center;
    justify-content: center;
    flex-shrink    : 0;
    transition     : transform 0.25s ease, color 0.25s ease, background-color 0.25s ease;
}
/* Rotate toggle when open */
.tvzp-faq-item__answer {
    overflow  : hidden;
    max-height: 0;
    transition: max-height 0.35s ease, padding 0.35s ease;
}
.tvzp-faq-item.is-open .tvzp-faq-item__answer {
    max-height: 1000px;
}
.tvzp-hero-carousel__progress-row {
    position: relative;
}

.tvzp-ccl.ccl-wrap {
    position: relative;
    box-sizing: border-box;
}

/* ── Widget Title ────────────────────────────────────────────────── */
.tvzp-ccl .ccl-title {
    margin-top: 0;
    line-height: 1.3;
    /* colour / typo / spacing overridden by Elementor controls */
}

/* ── List container ──────────────────────────────────────────────── */
.tvzp-ccl .ccl-list {
    list-style: none;         /* we use a custom ::before bullet */
    margin:  0;
    padding: 0;
    display: flex;
    flex-direction: column;
    /* gap is controlled by the responsive slider */
}

/* ── Individual item ─────────────────────────────────────────────── */
.tvzp-ccl .ccl-item {
    display:     flex;
    align-items: center;      /* default; overridden by bullet_vertical_align */
    box-sizing:  border-box;
    line-height: 1.5;
    margin-bottom:0px!important;
    /* gap (bullet ↔ text), padding, color, bg — all via Elementor selectors */
}

/* ── Bullet ──────────────────────────────────────────────────────── */
.tvzp-ccl .ccl-item::before {
    content:     "•";        /* overridden by bullet_char control */
    flex-shrink: 0;
    line-height: 1;
    /* font-size, color — via Elementor selectors */
}

/* ── Link reset ──────────────────────────────────────────────────── */
.tvzp-ccl .ccl-item a {
    display:         block;
    text-decoration: none!important;
    color: inherit;
    width: 100%;
    padding: 0!important;
    text-decoration: none;
}
.tvzp-ccl .ccl-item a:hover {
    text-decoration: underline;
}

/* ── No-results message ──────────────────────────────────────────── */
.tvzp-ccl .ccl-no-results {
    margin: 0;
    color:  #888;
    font-style: italic;
}

#tutor-notifications-wrapper .tutor-iconic-btn.btn-offcanvas-open {
    margin: auto;
}
.tmc-trigger {
    position: relative;
}