/* ==========================================================================
   Techvizo — main.css
   Design tokens → Base reset → Layout → Components → Sections → Utilities
   ========================================================================== */

/* ── 1. Design Tokens ─────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Exo+2:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400&family=Mulish:wght@300;400;500;600;700&display=swap');

:root {
    --tvz-primary:          #0057ff;
    --tvz-secondary:        #0a1628;
    --tvz-accent:           #00d4ff;
    --tvz-accent-glow:      rgba(0, 212, 255, 0.25);
    --tvz-text:             #3d4f63;
    --tvz-heading-color:    #0a1628;
    --tvz-link:             #0057ff;
    --tvz-link-hover:       #003ecc;
    --tvz-border:           #dce4f0;
    --tvz-bg-light:         #f4f7fc;
    --tvz-white:            #ffffff;
    --tvz-black:            #000000;

    --tvz-heading-font:     'Exo 2', 'Segoe UI', sans-serif;
    --tvz-body-font:        'Mulish', system-ui, sans-serif;
    --tvz-base-font-size:   16px;
    --tvz-container:        1200px;

    --tvz-header-h:         75px;
    --tvz-header-bg:        #080f1e;
    --tvz-header-text:      #ffffff;
    --tvz-footer-bg:        #080f1e;
    --tvz-footer-text:      #7a9bbf;
    --tvz-footer-heading:   #ffffff;
    --tvz-footer-bottom-bg: #040a12;

    --tvz-btn-bg:           #0057ff;
    --tvz-btn-text:         #ffffff;
    --tvz-btn-hover-bg:     #003ecc;
    --tvz-btn-radius:       6px;
    --tvz-card-radius:      10px;
    --tvz-section-pad:      90px;

    --tvz-transition:       0.22s ease;
    --tvz-shadow-sm:        0 2px 12px rgba(0, 20, 80, 0.08);
    --tvz-shadow-md:        0 8px 30px rgba(0, 20, 80, 0.13);
    --tvz-shadow-lg:        0 20px 60px rgba(0, 20, 80, 0.18);
    --tvz-shadow-blue:      0 8px 30px rgba(0, 87, 255, 0.25);
}

/* ── 2. Base Reset ───────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: var(--tvz-base-font-size); scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
    font-family: var(--tvz-body-font);
    font-size:   1rem;
    line-height: 1.6;
    color:       var(--tvz-text);
    background:  var(--tvz-white);
    -webkit-font-smoothing: antialiased;
}
img, video, svg { display: block; max-width: 100%; height: auto; }
a { color: var(--tvz-link); text-decoration: none; transition: color var(--tvz-transition); }
a:hover, a:focus-visible { color: var(--tvz-link-hover); text-decoration: underline; }
h1,h2,h3,h4,h5,h6 {
    font-family: var(--tvz-heading-font);
    color:       var(--tvz-heading-color);
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: -0.01em;
}
dl, ol, ul {
    margin-top: 0;
    margin-bottom: 0!important;
}
ul:not(.tvzp-menu__list , .elementor-icon-list-items) li:not(:last-child) ,
ul:not(.tvzp-menu__list , .elementor-icon-list-items) ol:not(:last-child) {
    margin-bottom: 10px;
}
li::marker {
    color: var(--e-global-color-primary);
}
ul li ul li::marker {
    color: #fff;
}
ul li ul{
    padding-left: 20px;
}
ul {
    padding-left: 12px;
}
button { cursor: pointer; border: none; background: none; font: inherit; }

/* ── 3. Accessibility ─────────────────────────────────────────────────────── */
.screen-reader-text {
    border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
    height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal;
}
.screen-reader-text:focus {
    background: var(--tvz-primary); border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
    clip: auto; clip-path: none; color: var(--tvz-white); display: block;
    font-size: .875rem; font-weight: 700; height: auto; left: 5px; line-height: normal;
    padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000;
}
:focus-visible { outline: 2px solid var(--tvz-accent); outline-offset: 3px; }

/* ── 4. Container & Layout ────────────────────────────────────────────────── */
.tvz-container {
    width: min(100% - 2rem, var(--tvz-container));
    margin-inline: auto;
}
.tvz-section { padding-block: var(--tvz-section-pad); }
.tvz-page-wrap { min-height: 60vh; }
.tvz-builder--header,
.tvz-builder--footer { position: relative; z-index: 999; }
.tvz-builder--header .elementor-section,
.tvz-builder--footer .elementor-section { max-width: 100%; }

/* ── 5. Buttons ──────────────────────────────────────────────────────────── */
.tvz-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             .5rem;
    padding:         .75rem 1.875rem;
    font-size:       .9375rem;
    font-weight:     600;
    letter-spacing:  .04em;
    text-transform:  uppercase;
    transition:      background var(--tvz-transition), color var(--tvz-transition),
                     border-color var(--tvz-transition), transform var(--tvz-transition),
                     box-shadow var(--tvz-transition);
    white-space:     nowrap;
    text-decoration: none;
    cursor:          pointer;
}
.tvz-btn:hover { transform: translateY(-2px); text-decoration: none; }
.tvz-btn--primary  { background: var(--tvz-btn-bg); color: var(--tvz-btn-text); border: 2px solid var(--tvz-btn-bg); box-shadow: var(--tvz-shadow-blue); }
.tvz-btn--primary:hover { background: var(--tvz-btn-hover-bg); border-color: var(--tvz-btn-hover-bg); color: var(--tvz-white); box-shadow: 0 12px 36px rgba(0,87,255,.35); }
.tvz-btn--outline  { background: transparent; color: var(--tvz-primary); border: 2px solid var(--tvz-primary); }
.tvz-btn--outline:hover { background: var(--tvz-primary); color: var(--tvz-white); box-shadow: var(--tvz-shadow-blue); }
.tvz-btn--outline-white { background: transparent; color: var(--tvz-white); border: 2px solid rgba(255,255,255,.6); }
.tvz-btn--outline-white:hover { background: var(--tvz-white); color: var(--tvz-primary); }
.tvz-btn--accent { background: var(--tvz-accent); color: var(--tvz-secondary); border: 2px solid var(--tvz-accent); }
.tvz-btn--accent:hover { background: #00b8e0; border-color: #00b8e0; box-shadow: 0 8px 28px rgba(0,212,255,.35); }
.tvz-btn--ghost { background: transparent; color: var(--tvz-primary); border: none; padding-inline: 0; }
.tvz-btn--ghost:hover { color: var(--tvz-secondary); text-decoration: underline; transform: none; box-shadow: none; }

/* ── 6. Section Title ─────────────────────────────────────────────────────── */
.tvz-section-title { margin-bottom: 3.5rem; }
.tvz-section-title--center { text-align: center; }
.tvz-section-title--right  { text-align: right; }
.tvz-section-title__eyebrow {
    display: inline-block;
    font-family: var(--tvz-heading-font);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--tvz-primary);
    background: rgba(0, 87, 255, .08);
    padding: .3rem .9rem;
    border-radius: 100px;
    margin-bottom: .9rem;
}
.tvz-section-title__heading {
    font-size: clamp(1.75rem, 3vw, 2.625rem);
    margin-bottom: .75rem;
    color: var(--tvz-heading-color);
    font-weight: 800;
}
.tvz-section-title__sub {
    font-size: 1rem;
    color: #668;
    max-width: 60ch;
    margin-inline: auto;
    line-height: 1.7;
}
.tvz-section-title--left .tvz-section-title__sub { margin-inline: 0; }

/* Accent stripe on headings */
.tvz-section-title__heading em {
    font-style: normal;
    color: var(--tvz-primary);
}

/* ── 7. Header ───────────────────────────────────────────────────────────── */
.tvz-header {
    position:   fixed;
    top:        0;
    left:       0;
    right:      0;
    z-index:    1000;
    height:     var(--tvz-header-h);
    background: var(--tvz-header-bg);
    border-bottom: 1px solid rgba(255,255,255,.05);
    transition: background var(--tvz-transition), box-shadow var(--tvz-transition),
                height var(--tvz-transition);
}
.tvz-header--scrolled { box-shadow: 0 4px 32px rgba(0,0,0,.3); height: calc(var(--tvz-header-h) - 10px); background: rgba(8,15,30,.97); backdrop-filter: blur(12px); }
.tvz-header--transparent { background: transparent; border-color: transparent; }
.tvz-header--transparent.tvz-header--scrolled { background: rgba(8,15,30,.97); }
.tvz-header__inner {
    height: 100%;
    display: flex;
    align-items: center;
    gap: 2rem;
}
.tvz-header__logo { flex-shrink: 0; }
.tvz-header__logo img { height: 44px; width: auto; }
.tvz-header__site-name {
    font-family: var(--tvz-heading-font);
    font-size: 1.5rem;
    color: var(--tvz-white);
    font-weight: 800;
    letter-spacing: .02em;
}
.tvz-header__site-name span { color: var(--tvz-accent); }
.tvz-header__actions { display: flex; align-items: center; gap: 1rem; margin-left: auto; }

/* ── Navigation ─────────────────────────────────────────────────────────── */
.tvz-nav { display: flex; flex: 1; justify-content: center; }
.tvz-nav__menu { display: flex; align-items: center; gap: .125rem; }
.tvz-nav__menu .menu-item { position: relative; }
.tvz-nav__link {
    display:      block;
    padding:      .5rem .9rem;
    font-size:    .875rem;
    font-weight:  600;
    font-family:  var(--tvz-heading-font);
    letter-spacing: .03em;
    text-transform: uppercase;
    color:        var(--tvz-header-text);
    border-radius: 5px;
    transition:   color var(--tvz-transition), background var(--tvz-transition);
    white-space:  nowrap;
}
.tvz-nav__link:hover,
.tvz-nav__link:focus-visible,
.tvz-has-dropdown:hover > .tvz-nav__link,
.menu-item.is-active > .tvz-nav__link { color: var(--tvz-accent); text-decoration: none; }

/* Dropdown */
.tvz-dropdown {
    position:   absolute;
    top:        calc(100% + .75rem);
    left:       0;
    min-width:  230px;
    background: #0d1e38;
    border: 1px solid rgba(0, 212, 255, .15);
    border-radius: var(--tvz-card-radius);
    box-shadow: var(--tvz-shadow-md);
    padding:    .5rem 0;
    opacity:    0;
    visibility: hidden;
    transform:  translateY(10px);
    transition: opacity var(--tvz-transition), visibility var(--tvz-transition), transform var(--tvz-transition);
    z-index:    100;
}
.tvz-has-dropdown:hover .tvz-dropdown,
.tvz-has-dropdown:focus-within .tvz-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.tvz-dropdown__link {
    display:     block;
    padding:     .625rem 1.25rem;
    font-size:   .875rem;
    font-weight: 500;
    color:       rgba(255,255,255,.75);
    transition:  color var(--tvz-transition), background var(--tvz-transition);
}
.tvz-dropdown__link:hover { color: var(--tvz-accent); background: rgba(0,212,255,.06); text-decoration: none; }

/* Mobile Hamburger */
.tvz-hamburger { display: none; flex-direction: column; gap: 5px; width: 28px; cursor: pointer; padding: 4px; }
.tvz-hamburger span { display: block; height: 2px; background: var(--tvz-white); border-radius: 2px; transition: all .3s; }

/* Mobile Nav */
.tvz-mobile-nav {
    display:    none;
    position:   fixed;
    top:        var(--tvz-header-h);
    left:       0;
    right:      0;
    bottom:     0;
    background: var(--tvz-header-bg);
    overflow-y: auto;
    padding:    2rem;
    z-index:    999;
    transform:  translateX(100%);
    transition: transform .3s ease;
}
.tvz-mobile-nav.is-open { transform: translateX(0); }
.tvz-mobile-nav .tvz-nav__link { font-size: 1.1rem; display: block; padding: .75rem 0; border-bottom: 1px solid rgba(255,255,255,.07); }

/* ── 8. Top Bar ──────────────────────────────────────────────────────────── */
.tvz-top-bar {
    background: var(--tvz-footer-bottom-bg);
    color: rgba(255,255,255,.65);
    font-size: .8125rem;
    padding-block: .45rem;
    border-bottom: 1px solid rgba(0,212,255,.1);
}
.tvz-top-bar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.tvz-top-bar__contact { display: flex; align-items: center; gap: 1.5rem; }
.tvz-top-bar__contact a { color: rgba(255,255,255,.65); transition: color var(--tvz-transition); }
.tvz-top-bar__contact a:hover { color: var(--tvz-accent); text-decoration: none; }
.tvz-top-bar__social { display: flex; align-items: center; gap: 1rem; }

/* ── 9. Hero Section ─────────────────────────────────────────────────────── */
.tvz-hero {
    position: relative;
    display:  flex;
    align-items: center;
    background-color: var(--tvz-secondary);
    background-size: cover;
    background-position: center;
    overflow: hidden;
    min-height: 90vh;
}
/* Circuit-board grid overlay */
.tvz-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(0, 87, 255, .06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 87, 255, .06) 1px, transparent 1px);
    background-size: 60px 60px;
    pointer-events: none;
}
.tvz-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(8,15,30,.92) 0%, rgba(0,40,120,.65) 100%);
}
.tvz-hero__glow {
    position: absolute;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0,212,255,.15) 0%, transparent 70%);
    top: -100px;
    right: -100px;
    pointer-events: none;
}
.tvz-hero__content {
    position: relative;
    z-index:  2;
    padding-block: 6rem;
    max-width: 780px;
}
.tvz-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--tvz-heading-font);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--tvz-accent);
    margin-bottom: 1.5rem;
}
.tvz-hero__eyebrow::before {
    content: '';
    display: block;
    width: 28px;
    height: 2px;
    background: var(--tvz-accent);
    border-radius: 2px;
}
.tvz-hero__heading {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 900;
    color: var(--tvz-white);
    line-height: 1.08;
    margin-bottom: 1.5rem;
    letter-spacing: -.02em;
}
.tvz-hero__heading em {
    font-style: normal;
    color: var(--tvz-accent);
}
.tvz-hero__sub {
    font-size: clamp(1rem, 2vw, 1.2rem);
    color: rgba(255,255,255,.7);
    max-width: 55ch;
    line-height: 1.7;
    margin-bottom: 2.5rem;
}
.tvz-hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.tvz-hero__stats {
    display: flex;
    gap: 3rem;
    margin-top: 4rem;
    padding-top: 2.5rem;
    border-top: 1px solid rgba(255,255,255,.1);
    flex-wrap: wrap;
}
.tvz-hero__stat-num {
    display: block;
    font-family: var(--tvz-heading-font);
    font-size: 2rem;
    font-weight: 800;
    color: var(--tvz-white);
    line-height: 1;
}
.tvz-hero__stat-label {
    display: block;
    font-size: .8125rem;
    color: rgba(255,255,255,.5);
    margin-top: .25rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}

/* ── 10. Promise / USP Strip ──────────────────────────────────────────────── */
.tvz-promise { background: var(--tvz-bg-light); }
.tvz-promise__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1px;
    background: var(--tvz-border);
    border: 1px solid var(--tvz-border);
    border-radius: var(--tvz-card-radius);
    overflow: hidden;
}
.tvz-promise-item {
    background: var(--tvz-white);
    padding: 2rem 1.75rem;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    transition: background var(--tvz-transition);
}
.tvz-promise-item:hover { background: var(--tvz-bg-light); }
.tvz-promise-item__icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(0,87,255,.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--tvz-primary);
    font-size: 1.25rem;
}
.tvz-promise-item__title { font-size: 1rem; font-weight: 700; color: var(--tvz-heading-color); margin-bottom: .25rem; font-family: var(--tvz-heading-font); }
.tvz-promise-item__desc { font-size: .875rem; color: #7a8a9a; line-height: 1.5; }

/* ── 11. Categories / Solutions ───────────────────────────────────────────── */
.tvz-categories__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.5rem;
}
.tvz-category-card {
    border-radius: var(--tvz-card-radius);
    overflow: hidden;
    position: relative;
    aspect-ratio: 4/3;
    display: flex;
    align-items: flex-end;
    background: var(--tvz-secondary);
    background-size: cover;
    background-position: center;
    transition: transform var(--tvz-transition), box-shadow var(--tvz-transition);
    cursor: pointer;
}
.tvz-category-card:hover { transform: translateY(-4px); box-shadow: var(--tvz-shadow-md); }
.tvz-category-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(8,15,30,.85) 0%, rgba(8,15,30,.1) 60%);
    transition: opacity var(--tvz-transition);
}
.tvz-category-card:hover .tvz-category-card__overlay { opacity: .75; }
.tvz-category-card__body {
    position: relative;
    z-index: 2;
    padding: 1.25rem;
    width: 100%;
}
.tvz-category-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(0,212,255,.2);
    color: var(--tvz-accent);
    font-size: 1rem;
    margin-bottom: .6rem;
}
.tvz-category-card__name { font-family: var(--tvz-heading-font); font-size: 1.05rem; font-weight: 700; color: var(--tvz-white); line-height: 1.3; }
.tvz-category-card__count { font-size: .75rem; color: rgba(255,255,255,.5); margin-top: .25rem; }

/* ── 12. Industries ───────────────────────────────────────────────────────── */
.tvz-industries { background: var(--tvz-bg-light); }
.tvz-industries__scroll-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; padding-bottom: 1rem; }
.tvz-industries__track { display: flex; gap: 1.25rem; padding-inline: 1rem; width: max-content; }
.tvz-industry-card {
    width:              260px;
    height:             300px;
    border-radius:      var(--tvz-card-radius);
    background-size:    cover;
    background-position: center;
    background-color:   var(--tvz-secondary);
    position:           relative;
    scroll-snap-align:  start;
    display:            flex;
    align-items:        flex-end;
    overflow:           hidden;
    transition:         transform var(--tvz-transition);
}
.tvz-industry-card:hover { transform: scale(1.02); }
.tvz-industry-card__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.75) 0%, rgba(0,0,0,.05) 60%);
}
.tvz-industry-card__name {
    position:    relative;
    z-index:     1;
    color:       var(--tvz-white);
    font-family: var(--tvz-heading-font);
    font-size:   1.05rem;
    font-weight: 600;
    padding:     1.25rem;
    line-height: 1.3;
}

/* ── 13. Product Highlight ────────────────────────────────────────────────── */
.tvz-highlight {
    background: linear-gradient(160deg, #08111f 0%, #0d1e38 60%, #091628 100%);
    position: relative;
    overflow: hidden;
}
.tvz-highlight::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(0, 87, 255, .04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 87, 255, .04) 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none;
}
.tvz-highlight .tvz-section-title__heading,
.tvz-highlight .tvz-section-title { color: var(--tvz-white); }
.tvz-highlight .tvz-section-title__eyebrow { background: rgba(0,212,255,.12); color: var(--tvz-accent); }
.tvz-highlight__slider-wrap { margin-top: 2rem; }
.tvz-highlight__slider {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.5rem;
}
.tvz-highlight-card {
    background:    rgba(255,255,255,.04);
    border:        1px solid rgba(0, 212, 255, .1);
    border-radius: var(--tvz-card-radius);
    overflow:      hidden;
    display:       flex;
    flex-direction: column;
    transition:    transform var(--tvz-transition), box-shadow var(--tvz-transition), border-color var(--tvz-transition);
}
.tvz-highlight-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,87,255,.2); border-color: rgba(0,212,255,.3); }
.tvz-highlight-card__img-wrap { aspect-ratio: 4/3; overflow: hidden; }
.tvz-highlight-card__img { width: 100%; height: 100%; object-fit: cover; }
.tvz-highlight-card__body { padding: 1.375rem; flex: 1; display: flex; flex-direction: column; gap: .75rem; }
.tvz-highlight-card__title { font-size: 1.05rem; font-weight: 700; color: var(--tvz-white); }
.tvz-highlight-card__title a { color: inherit; }
.tvz-highlight-card__sub { font-size: .875rem; color: var(--tvz-footer-text); line-height: 1.5; }
.tvz-highlight-card__btn { margin-top: auto; border-color: rgba(0,212,255,.4); color: var(--tvz-accent); }
.tvz-highlight__nav { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 2rem; padding-bottom: 1rem; }
.tvz-highlight__prev,
.tvz-highlight__next { color: var(--tvz-white); width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); display: flex; align-items: center; justify-content: center; transition: background var(--tvz-transition), border-color var(--tvz-transition); }
.tvz-highlight__prev:hover,
.tvz-highlight__next:hover { background: rgba(0,87,255,.3); border-color: var(--tvz-primary); }

/* Slider Dots */
.tvz-slider-dots { display: flex; gap: .5rem; justify-content: center; }
.tvz-slider-dots__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,.2);
    transition: background var(--tvz-transition), transform var(--tvz-transition), width var(--tvz-transition);
}
.tvz-slider-dots__dot.is-active { background: var(--tvz-accent); transform: scale(1.3); width: 20px; border-radius: 4px; }

/* ── 14. Trust Section ────────────────────────────────────────────────────── */
.tvz-trust { text-align: center; }
.tvz-trust__inner { display: flex; flex-direction: column; align-items: center; gap: 2rem; position: relative; }
.tvz-trust__deco { position: absolute; right: 5%; top: 50%; transform: translateY(-50%); opacity: .07; width: 140px; pointer-events: none; }
.tvz-trust__heading {
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    color:     var(--tvz-heading-color);
    max-width: 900px;
    line-height: 1.08;
    font-weight: 900;
    letter-spacing: -.03em;
}
.tvz-trust__head-right { color: var(--tvz-primary); }
.tvz-video-trigger {
    display:     flex;
    align-items: center;
    gap:         1rem;
    color:       var(--tvz-primary);
    font-weight: 600;
    font-family: var(--tvz-heading-font);
    transition:  color var(--tvz-transition), transform var(--tvz-transition);
}
.tvz-video-trigger:hover { color: var(--tvz-secondary); transform: scale(1.05); }
.tvz-video-trigger__icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--tvz-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.25rem;
    box-shadow: var(--tvz-shadow-blue);
    transition: box-shadow var(--tvz-transition);
}
.tvz-video-trigger:hover .tvz-video-trigger__icon { box-shadow: 0 12px 36px rgba(0,87,255,.45); }

/* Modal */
.tvz-modal { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; }
.tvz-modal[hidden] { display: none; }
.tvz-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.9); }
.tvz-modal__inner { position: relative; z-index: 1; width: min(90vw, 960px); }
.tvz-modal__close { position: absolute; top: -3rem; right: 0; color: var(--tvz-white); font-size: 2.5rem; line-height: 1; }
.tvz-modal__video-wrap { position: relative; aspect-ratio: 16/9; background: #000; border-radius: var(--tvz-card-radius); overflow: hidden; }
.tvz-modal__iframe { width: 100%; height: 100%; border: none; }

/* ── 15. Blog Section ─────────────────────────────────────────────────────── */
.tvz-blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.75rem;
}
.tvz-blog-card {
    background:     var(--tvz-white);
    border-radius:  var(--tvz-card-radius);
    border:         1px solid var(--tvz-border);
    overflow:       hidden;
    box-shadow:     var(--tvz-shadow-sm);
    transition:     transform var(--tvz-transition), box-shadow var(--tvz-transition);
    display:        flex;
    flex-direction: column;
}
.tvz-blog-card:hover { transform: translateY(-4px); box-shadow: var(--tvz-shadow-md); }
.tvz-blog-card__img-link { display: block; aspect-ratio: 3/2; overflow: hidden; }
.tvz-blog-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.tvz-blog-card:hover .tvz-blog-card__img { transform: scale(1.04); }
.tvz-blog-card__body { padding: 1.375rem; flex: 1; display: flex; flex-direction: column; gap: .5rem; }
.tvz-blog-card__meta { font-size: .8125rem; color: #8fa0b5; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.tvz-blog-card__cats { display: flex; gap: .4rem; flex-wrap: wrap; }
.tvz-tag { font-size: .72rem; padding: .2rem .7rem; background: rgba(0,87,255,.08); color: var(--tvz-primary); border-radius: 100px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; transition: background var(--tvz-transition), color var(--tvz-transition); }
.tvz-tag:hover { background: var(--tvz-primary); color: var(--tvz-white); text-decoration: none; }
.tvz-blog-card__title { font-size: 1rem; line-height: 1.4; margin-block: .25rem; }
.tvz-blog-card__title a { color: var(--tvz-heading-color); }
.tvz-blog-card__title a:hover { color: var(--tvz-primary); text-decoration: none; }
.tvz-blog-card__more { margin-top: auto; font-size: .875rem; font-weight: 700; color: var(--tvz-primary); font-family: var(--tvz-heading-font); text-transform: uppercase; letter-spacing: .04em; }

/* ── 16. CTA Banner ───────────────────────────────────────────────────────── */
.tvz-cta-banner {
    padding-block: 4.5rem;
    background: linear-gradient(135deg, #0038cc 0%, #0057ff 50%, #0080ff 100%);
    position: relative;
    overflow: hidden;
}
.tvz-cta-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size: 50px 50px;
}
.tvz-cta-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; position: relative; z-index: 1; }
.tvz-cta-banner__heading { font-size: clamp(1.5rem, 3vw, 2.375rem); color: var(--tvz-white); max-width: 600px; font-weight: 800; }
.tvz-cta-banner__sub { font-size: 1rem; color: rgba(255,255,255,.75); margin-top: .5rem; }
.tvz-cta-banner__btn { flex-shrink: 0; }

/* ── 17. Footer ───────────────────────────────────────────────────────────── */
.tvz-footer {
    background: var(--tvz-footer-bg);
    color:      var(--tvz-footer-text);
    padding-top: var(--tvz-section-pad);
    border-top: 1px solid rgba(0,212,255,.1);
}
.tvz-footer__widgets {
    display: grid;
    gap:     2.5rem;
}
.tvz-footer__widgets--cols-2 { grid-template-columns: repeat(2,1fr); }
.tvz-footer__widgets--cols-3 { grid-template-columns: repeat(3,1fr); }
.tvz-footer__widgets--cols-4 { grid-template-columns: repeat(4,1fr); }
.tvz-footer__widgets--cols-5 { grid-template-columns: repeat(5,1fr); }
.tvz-footer a { color: var(--tvz-footer-text); }
.tvz-footer a:hover { color: var(--tvz-white); text-decoration: none; }
.tvz-widget__title { font-family: var(--tvz-heading-font); font-size: .8rem; font-weight: 800; color: var(--tvz-footer-heading); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 1.375rem; }
.tvz-footer__address { font-style: normal; line-height: 1.8; font-size: .9375rem; margin-bottom: .75rem; }
.tvz-footer__social { display: flex; gap: .75rem; margin-top: 1.375rem; }
.tvz-footer__social li a { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 8px; border: 1px solid rgba(255,255,255,.12); transition: background var(--tvz-transition), border-color var(--tvz-transition); color: var(--tvz-white); }
.tvz-footer__social li a:hover { background: var(--tvz-primary); border-color: var(--tvz-primary); }
.tvz-footer__bottom { background: var(--tvz-footer-bottom-bg); padding-block: 1.375rem; margin-top: var(--tvz-section-pad); border-top: 1px solid rgba(255,255,255,.05); }
.tvz-footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.tvz-footer__copyright { font-size: .875rem; color: rgba(255,255,255,.4); }
.tvz-footer__legal-menu { display: flex; gap: 1.5rem; list-style: none; }
.tvz-footer__legal-menu a { font-size: .8125rem; color: rgba(255,255,255,.4); }
.tvz-footer__legal-menu a:hover { color: var(--tvz-white); }
.tvz-widget ul { display: flex; flex-direction: column; gap: .5rem; }
.tvz-widget ul li a { font-size: .9375rem; }

/* ── 18. Posts / Blog Layout ─────────────────────────────────────────────── */
.tvz-blog__layout { display: grid; grid-template-columns: 1fr 300px; gap: 3rem; align-items: start; }
.tvz-posts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 2rem; }
.tvz-post-card { background: var(--tvz-white); border-radius: var(--tvz-card-radius); overflow: hidden; box-shadow: var(--tvz-shadow-sm); border: 1px solid var(--tvz-border); }
.tvz-post-card__img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.tvz-post-card__body { padding: 1.5rem; }
.tvz-post-card__title { font-size: 1.1875rem; margin-block: .5rem; }
.tvz-post-card__title a { color: var(--tvz-heading-color); }
.tvz-post-card__title a:hover { color: var(--tvz-primary); text-decoration: none; }
.tvz-post-card__meta { font-size: .8125rem; color: #8fa0b5; margin-bottom: .5rem; }
.tvz-post-card__excerpt { font-size: .9375rem; color: #667; line-height: 1.6; margin-bottom: 1rem; }

/* ── 19. Single Post ─────────────────────────────────────────────────────── */
.tvz-single__layout { display: grid; grid-template-columns: 1fr 300px; gap: 3rem; }
.tvz-single-post__header { margin-bottom: 2rem; }
.tvz-single-post__title { font-size: clamp(1.8rem, 3.5vw, 3rem); margin-block: 1rem; }
.tvz-single-post__meta { font-size: .875rem; color: #8fa0b5; margin-bottom: 1.5rem; }
.tvz-single-post__featured { width: 100%; border-radius: var(--tvz-card-radius); margin-bottom: 2rem; }
.tvz-single-post__content { max-width: 75ch; }
.tvz-single-post__content p { margin-bottom: 1.25rem; line-height: 1.8; }
.tvz-single-post__content h2,
.tvz-single-post__content h3 { margin-block: 1.75rem .75rem; }
.tvz-single-post__footer { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--tvz-border); }
.tvz-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
.tvz-post-nav__prev,
.tvz-post-nav__next { display: flex; flex-direction: column; gap: .25rem; padding: 1rem 1.25rem; background: var(--tvz-bg-light); border-radius: var(--tvz-card-radius); color: var(--tvz-text); border: 1px solid var(--tvz-border); }
.tvz-post-nav__next { text-align: right; }
.tvz-post-nav__dir { font-size: .8125rem; color: #8fa0b5; }
.tvz-post-nav__title { font-weight: 600; font-size: .9375rem; }

/* ── 20. 404 ─────────────────────────────────────────────────────────────── */
.tvz-404 { min-height: 70vh; display: flex; align-items: center; }
.tvz-404__inner { text-align: center; padding-block: 4rem; }
.tvz-404__code { display: block; font-family: var(--tvz-heading-font); font-size: clamp(6rem, 15vw, 12rem); color: var(--tvz-bg-light); line-height: 1; font-weight: 900; }
.tvz-404__title { font-size: clamp(1.5rem, 3vw, 2.5rem); margin-bottom: 1rem; }
.tvz-404__desc { color: #8fa0b5; margin-bottom: 2rem; }
.tvz-404__search { margin-top: 2rem; max-width: 480px; margin-inline: auto; }

/* ── 21. Breadcrumb ───────────────────────────────────────────────────────── */
.tvz-breadcrumb { font-size: .875rem; color: #8fa0b5; margin-bottom: 1rem; display: inline-block; flex-wrap: wrap; gap: .25rem; align-items: center; }
.tvz-breadcrumb a { color: var(--tvz-primary); }
.tvz-breadcrumb__sep { color: #c0cdd8; }
.tvz-page-banner .tvz-breadcrumb { color: rgba(255,255,255,.65); margin-bottom: .75rem; font-size: .8125rem; }
.tvz-page-banner .tvz-breadcrumb a { color: rgba(255,255,255,.85); }
.tvz-page-banner .tvz-breadcrumb a:hover { color: #fff; }
.tvz-page-banner .tvz-breadcrumb__sep { color: rgba(255,255,255,.35); padding-inline: .15rem; }
.tvz-page-banner .tvz-breadcrumb__current { color: rgba(255,255,255,.5); }

/* ── 22. Pagination ───────────────────────────────────────────────────────── */
.tvz-pagination { display: flex; justify-content: center; gap: .5rem; margin-top: 3rem; flex-wrap: wrap; }
.tvz-pagination a,
.tvz-pagination span { display: flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 .75rem; border-radius: var(--tvz-btn-radius); border: 1px solid var(--tvz-border); font-size: .9375rem; color: var(--tvz-text); }
.tvz-pagination a:hover { border-color: var(--tvz-primary); color: var(--tvz-primary); text-decoration: none; }
.tvz-pagination .current { background: var(--tvz-primary); color: var(--tvz-white); border-color: var(--tvz-primary); }

/* ── 23. Sidebar / Widgets ────────────────────────────────────────────────── */
.tvz-sidebar { display: flex; flex-direction: column; gap: 2rem; }
.tvz-widget { background: var(--tvz-white); border: 1px solid var(--tvz-border); border-radius: var(--tvz-card-radius); padding: 1.5rem; }
.tvz-widget .tvz-widget__title { font-size: 1rem; color: var(--tvz-heading-color); margin-bottom: 1rem; text-transform: none; letter-spacing: 0; }

/* ── 24. Archive Header ───────────────────────────────────────────────────── */
.tvz-archive-header { margin-bottom: 2.5rem; }
.tvz-archive-header__title { font-size: clamp(1.5rem, 3vw, 2.5rem); }
.tvz-archive-header__desc { color: #8fa0b5; margin-top: .5rem; }

/* ── 25. Social Links ─────────────────────────────────────────────────────── */
.tvz-social-links { display: flex; gap: .6rem; list-style: none; flex-wrap: wrap; }
.tvz-top-bar__social .tvz-social-links a { font-size: .75rem; color: rgba(255,255,255,.55); }
.tvz-top-bar__social .tvz-social-links a:hover { color: var(--tvz-accent); text-decoration: none; }

/* ── 26. Entry Content (rich text) ───────────────────────────────────────── */
.entry-content h1 { font-size: 2.25rem; }
.entry-content h2 { font-size: 1.75rem; }
.entry-content h3 { font-size: 1.375rem; }
.entry-content ul, .entry-content ol { padding-left: 1.5rem; list-style: initial; margin-bottom: 1.25rem; }
.entry-content ol { list-style: decimal; }
.entry-content li { margin-bottom: .4rem; line-height: 1.7; }
.entry-content blockquote { border-left: 4px solid var(--tvz-primary); padding: 1rem 1.5rem; background: var(--tvz-bg-light); margin: 1.5rem 0; border-radius: 0 var(--tvz-card-radius) var(--tvz-card-radius) 0; font-style: italic; }
.entry-content figure { margin: 2rem 0; }
.entry-content figcaption { font-size: .875rem; color: #8fa0b5; text-align: center; margin-top: .5rem; }
.entry-content table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
.entry-content th, .entry-content td { padding: .75rem 1rem; border: 1px solid var(--tvz-border); text-align: left; }
.entry-content th { background: var(--tvz-bg-light); font-weight: 600; }
.entry-content code { font-family: 'JetBrains Mono', 'Fira Code', monospace; background: var(--tvz-bg-light); padding: .1em .4em; border-radius: 4px; font-size: .88em; color: var(--tvz-primary); border: 1px solid var(--tvz-border); }
.entry-content pre { background: var(--tvz-secondary); color: var(--tvz-footer-text); padding: 1.5rem; border-radius: var(--tvz-card-radius); overflow-x: auto; margin: 1.5rem 0; border: 1px solid rgba(0,212,255,.1); }

/* ── 27. No Results ───────────────────────────────────────────────────────── */
.tvz-no-results { text-align: center; padding-block: 4rem; }
.tvz-no-results__title { margin-bottom: 1rem; }

/* ── 28. Search Form ─────────────────────────────────────────────────────── */
.search-form { display: flex; gap: .5rem; justify-content: center; }
.search-field { width: 100%; flex: 1; padding: .75rem 1rem; border: 1px solid var(--tvz-border); border-radius: var(--tvz-btn-radius); font-size: 1rem; }
.search-field:focus { outline: none; border-color: var(--tvz-primary); box-shadow: 0 0 0 3px rgba(0,87,255,.12); }
.search-submit { background: var(--tvz-primary); color: var(--tvz-white); padding: .75rem 1.25rem; border-radius: var(--tvz-btn-radius); font-size: .9375rem; font-weight: 600; transition: background var(--tvz-transition); border: none; cursor: pointer; }
.search-submit:hover { background: var(--tvz-btn-hover-bg); }

.search-form label { flex: 1;     margin-bottom: 0;}
/* ── 29. Page Banner ──────────────────────────────────────────────────────── */
.tvz-page-banner {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: var(--tvz-banner-h, 420px);
    background-color: var(--tvz-secondary, #0a1628);
    background-repeat: no-repeat;
    overflow: hidden;
}
.tvz-page-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(0, 87, 255, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 87, 255, .05) 1px, transparent 1px);
    background-size: 50px 50px;
    pointer-events: none;
}
.tvz-page-banner__overlay { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.tvz-page-banner__inner { position: relative; z-index: 2; padding-top: 20px; padding-bottom: 20px; height: stretch; justify-content: center; display: inline-flex; flex-direction: column; }
.tvz-page-banner--align-left  .tvz-page-banner__inner { text-align: left; }
.tvz-page-banner--align-center .tvz-page-banner__inner { text-align: center; }
.tvz-page-banner--align-right  .tvz-page-banner__inner { text-align: right; }
.tvz-page-banner__title { font-size: clamp(1.8rem, 4vw, 3rem); color: #fff; margin: 0 0 .5rem; line-height: 1.15; place-content: center; font-weight: 800; }
.tvz-page-banner__subtitle { font-size: clamp(1rem, 2vw, 1.25rem); color: rgba(255,255,255,.8); margin: 0 0 .75rem; }
.tvz-page-banner__description { font-size: 1rem; color: rgba(255,255,255,.65); max-width: 640px; margin: 0 0 1.25rem; }
.tvz-page-banner--align-center .tvz-page-banner__description { margin-inline: auto; }
.tvz-page-banner__cta { margin-top: 1.25rem; }
.tvz-page-banner__btn { display: inline-flex; }

/* ── 30. Utility Classes ──────────────────────────────────────────────────── */
.u-hidden       { display: none !important; }
.u-sr-only      { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.u-text-center  { text-align: center; }
.u-text-primary { color: var(--tvz-primary); }
.u-bg-light     { background: var(--tvz-bg-light); }
.u-mt-0 { margin-top: 0; }
.u-mb-2 { margin-bottom: 2rem; }

/* ── 31. Page Templates ──────────────────────────────────────────────────── */
.page-template-full-width .tvz-page__article { max-width: 100%; }
.page-template-no-sidebar .tvz-blog__layout,
.page-template-no-sidebar .tvz-single__layout { grid-template-columns: 1fr; }

/* ── 32. WP Admin Bar offset ─────────────────────────────────────────────── */
.admin-bar .tvz-header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .tvz-header { top: 46px; } }

/* ── 33. Elementor overrides ─────────────────────────────────────────────── */
.elementor-page .tvz-header { position: fixed; }
.elementor-section { max-width: 100%; }

/* ── 34. Icon list (elementor section) ───────────────────────────────────── */
.iconlistsection span.elementor-icon-list-icon svg { background: rgba(0,87,255,.1); padding: 10px; border-radius: 10px; }
.iconlistsection .elementor-icon-list-items { position: relative; }
.iconlistsection .elementor-icon-list-item { position: relative; padding-left: 60px; }
.iconlistsection .elementor-icon-list-icon { position: relative; z-index: 2; }
.iconlistsection .elementor-icon-list-item::before { content: ""; position: absolute; left: 20px; top: 40px; bottom: -20px; width: 2px; border-left: 2px dotted var(--tvz-primary); }
.iconlistsection .elementor-icon-list-item:last-child::before { display: none; }

/* ── 35. Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .tvz-footer__widgets--cols-4,
    .tvz-footer__widgets--cols-5 { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 768px) {
    :root { --tvz-section-pad: 60px; }
    .tvz-nav { display: none; }
    .tvz-hamburger { display: flex; }
    .tvz-mobile-nav { display: block; }
    .tvz-blog__layout,
    .tvz-single__layout { grid-template-columns: 1fr; }
    .tvz-footer__widgets--cols-2,
    .tvz-footer__widgets--cols-3,
    .tvz-footer__widgets--cols-4,
    .tvz-footer__widgets--cols-5 { grid-template-columns: 1fr; }
    .tvz-hero__stats { gap: 1.5rem; }
    .tvz-cta-banner__inner { flex-direction: column; text-align: center; }
}

.elementor-widget .elementor-icon-list-icon+.elementor-icon-list-text {
    flex: 1;
}
.wpcf7-spinner {
    position: absolute;
    right: 10px;
    top: 0;
    bottom: 0;
    margin: auto;
}
.tvzp-cf7-wrap select,
.tvzp-cf7-wrap textarea, 
.tvzp-cf7-wrap input:not([type="submit"],[type="radio"],[type="checkbox"]) {
    width: 100%;
    outline: none;
}
.tvzp-cf7-wrap .wpcf7-form-control-wrap {
    display: block;
}
.wpcf7-response-output {
    margin: 15px 0px 0px!important;
    text-align: center;
    font-size: 13px;

}
input[type="submit"]{
    cursor: pointer;
}
.wpcf7-form-control-wrap .wpcf7-not-valid-tip {
    position: absolute;
    top: -10px;
    right: 10px;
    background: #fff;
    padding: 0px 10px;
    border-radius: 100px;
    border: 1px solid red;
    height: 20px;
    font-size: 12px;
}
form.wpcf7-form::before {
    content: "";
    width: 70px;
    height: 70px;
    position: absolute;
    z-index: 99;
    background-color: #fff;
    background-image: url(../images/form-loader.gif);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 50px;
    opacity: 0;
    visibility: hidden;
    margin: auto;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    border-radius: 100px;
    box-shadow: 0px 0px 5px #0000003d;
}
form.wpcf7-form.submitting::before {
    opacity: 1;
    visibility: visible;
}
form.wpcf7-form.submitting :is(input , textarea) {
    opacity: .4!important;
    pointer-events: none;
}
.tvz-page-banner__title .act-highlight-wrap {
    color: var(--e-global-color-primary);
}

.highlight {
    color: var(--e-global-color-primary);
}

b, strong {
    font-weight: 800!important;
}
a.text-primary {
    color: var(--tvc-link-color)!important;
}
body a.text-primary:focus, 
body a.text-primary:hover {
    color: var( --e-global-color-b437c82 )!important;
}
body a {
    color: var(--tvc-link-color);
}
body a:focus, body a:hover {
    color: var(--e-global-color-b437c82);
}

.term-faq ul li ul li::marker {
    color: #000000;
}
.term-faq ul li ul {
    margin-top: 10px;
}