/* =============================================
   FONT: VNF-Futura Regular (SVN-Gilroy-Light)
   ============================================= */
@font-face {
    font-family: 'VNF-Futura';
    src: url('../fonts/SVN-Gilroy-Light.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* =============================================
   GLOBAL FONT APPLICATION
   ============================================= */
body,
.header-main,
.nav > li > a,
.footer-wrapper,
.footer-wrapper p,
.footer-wrapper li,
.footer-wrapper a,
.absolute-footer,
.copyright-footer,
.nt-breadcrumbs,
.button,
input, select, textarea {
    font-family: 'VNF-Futura', sans-serif;
}

/* =============================================
   FOOTER MENU — Larger font-size
   ============================================= */
.footer-wrapper li.bullet-arrow,
.footer-wrapper li.bullet-arrow span,
.footer-wrapper li.bullet-arrow a {
    font-size: 14px !important;
    line-height: 1.8;
    letter-spacing: 0.3px;
}

.footer-wrapper .col-inner p,
.footer-wrapper .col-inner strong {
    font-size: 14px;
}

.absolute-footer,
.copyright-footer {
    font-size: 13px;
    letter-spacing: 0.3px;
}

/* =============================================
   RESPONSIVE — Mobile First
   ============================================= */
.header-main { background-color: transparent !important; }

/* ---- Desktop (min 992px) ---- */
@media (min-width: 992px) {
    .nt-hero-title {
        font-size: 4em;
    }
    .nt-section-title {
        font-size: 2.4em;
    }
}

/* ---- Tablet (max 991px) ---- */
@media (max-width: 991px) {
    .nt-hero-title {
        font-size: 2.8em;
    }
    .nt-section-title {
        font-size: 1.8em;
    }
    .nt-counter-num {
        font-size: 2em;
    }
    .nt-step-num {
        font-size: 2.4em;
    }
}

/* ---- Mobile (max 767px) ---- */
@media (max-width: 767px) {
    .nt-hero-title {
        font-size: 2.2em;
    }
    .nt-section-title {
        font-size: 1.5em;
    }
    .nt-label {
        font-size: 0.65em;
        letter-spacing: 3px;
    }
    .nt-counter-num {
        font-size: 1.8em;
    }
    .nt-quote {
        font-size: 2.5em;
    }
    .nt-price-amount {
        font-size: 1.8em;
    }

    /* Mobile header */
    .header-wrapper .header-main {
        padding: 5px 0;
        background-color: transparent !important;
    }

    /* Mobile section spacing */
    .section .section-content {
        padding-left: 20px;
        padding-right: 20px;
    }

    /* Before/After mobile */
    .nt-before-after {
        height: 250px;
    }

    /* Floating CTA mobile */
    #nt-floating-cta {
        bottom: 15px;
        right: 15px;
    }

    #nt-floating-cta a {
        width: 44px;
        height: 44px;
    }

    /* Contact info stack */
    .nt-contact-info {
        margin-top: 30px;
    }
}

/* ---- Small Mobile (max 480px) ---- */
@media (max-width: 480px) {
    .nt-hero-title {
        font-size: 1.8em;
    }
    .nt-section-title {
        font-size: 1.3em;
    }
}

/* =============================================
   COMPONENT OVERRIDES
   ============================================= */

/* Flatsome banner text_box glassmorphism */
.banner .text-box.nt-glass-box {
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-radius: 12px;
    padding: 22px;
}

/* Image hover zoom */
.nt-zoom-hover .banner-bg,
.nt-zoom-hover img {
    transition: transform 0.6s ease;
}

.nt-zoom-hover:hover .banner-bg,
.nt-zoom-hover:hover img {
    transform: scale(1.04);
}

/* Flatsome image box radius */
.nt-rounded .box-image {
    border-radius: 12px;
    overflow: hidden;
}

/* Section backgrounds */
.nt-bg-light {
    background-color: var(--nt-light);
}

.nt-bg-cream {
    background-color: var(--nt-cream);
}

.nt-bg-dark {
    background-color: var(--nt-dark);
    color: #fff;
}

.nt-bg-olive {
    background-color: var(--nt-olive);
    color: #fff;
}

/* Tab navigation style */
.nt-tabs .nav-tabs {
    border: none;
    gap: 5px;
}

.nt-tabs .nav-tabs > li > a {
    border: 1px solid var(--nt-border);
    border-radius: var(--nt-radius);
    font-size: 0.82em;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 10px 20px;
    color: var(--nt-text);
    transition: all var(--nt-transition);
}

.nt-tabs .nav-tabs > li.active > a,
.nt-tabs .nav-tabs > li > a:hover {
    background: var(--nt-olive);
    border-color: var(--nt-olive);
    color: #fff;
}

/* Before/After slider */
.nt-before-after {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    height: 400px;
    cursor: ew-resize;
}

.nt-ba-label {
    position: absolute;
    top: 15px;
    padding: 5px 14px;
    font-size: 0.72em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    border-radius: 20px;
    z-index: 5;
}

.nt-ba-before {
    left: 15px;
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
}

.nt-ba-after {
    right: 15px;
    background: var(--nt-primary);
    color: #fff;
}

/* Timeline dot */
.nt-timeline-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--nt-primary);
    border: 3px solid var(--nt-light);
    box-shadow: 0 0 0 2px var(--nt-primary);
}

/* Team card hover */
.nt-team-card {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
}

.nt-team-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    padding: 30px 20px 20px;
    transform: translateY(100%);
    transition: transform var(--nt-transition);
}

.nt-team-card:hover .nt-team-overlay {
    transform: translateY(0);
}

/* Partner logos */
.nt-partner-logo {
    filter: grayscale(100%);
    opacity: 0.5;
    transition: all var(--nt-transition);
}

.nt-partner-logo:hover {
    filter: grayscale(0%);
    opacity: 1;
}

/* Breadcrumbs */
.nt-breadcrumbs {
    font-family: 'VNF-Futura', sans-serif;
    font-size: 0.8em;
    color: var(--nt-muted);
}

.nt-breadcrumbs a {
    color: var(--nt-primary);
    text-decoration: none;
}

/* Pulse animation for CTA */
@keyframes nt-pulse {
    0%, 100% { box-shadow: 0 4px 15px rgba(184, 69, 42, 0.4); }
    50% { box-shadow: 0 4px 25px rgba(184, 69, 42, 0.7), 0 0 0 8px rgba(184, 69, 42, 0.12); }
}

.nt-pulse {
    animation: nt-pulse 2s ease-in-out infinite;
}

/* =============================================
   MEGA MENU — Multi-column dropdown
   ============================================= */
@media (min-width: 992px) {
    /* Target the two main parent menus with many children */
    #menu-item-596 > .sub-menu,
    #menu-item-651 > .sub-menu {
        min-width: 680px !important;
        max-width: 780px !important;
        display: none;
        column-count: 3;
        column-gap: 0;
        padding: 12px 8px !important;
    }

    #menu-item-596:hover > .sub-menu,
    #menu-item-651:hover > .sub-menu,
    #menu-item-596.active > .sub-menu,
    #menu-item-651.active > .sub-menu,
    #menu-item-596.current-dropdown > .sub-menu,
    #menu-item-651.current-dropdown > .sub-menu {
        display: block !important;
    }

    #menu-item-596 > .sub-menu > li,
    #menu-item-651 > .sub-menu > li {
        break-inside: avoid;
        -webkit-column-break-inside: avoid;
        display: block;
    }

    #menu-item-596 > .sub-menu > li > a,
    #menu-item-651 > .sub-menu > li > a {
        white-space: nowrap;
        font-size: 13px !important;
        padding: 7px 14px !important;
    }
}

