:root {
    --primary-color: #FF6B35;
    --secondary-color: #4ECDC4;
    --blue-bg: #FF6B35;
}

html,
body {
    overflow-x: hidden;
    background-color: #fff;
}

.brand-logo {
    max-width: 220px;
}
.brand-logo img {
    max-width: 44px;
    border-radius: 8px;
}
.brand-name {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 22px;
    letter-spacing: 2px;
    margin-left: 10px;
    color: #1a1a2e;
}
.white-menu .brand-name {
    color: #fff;
}

/* ── Active nav item (desktop + mobile menu) ── */
.nav-item.active .nav-link-item,
.menu-block.active .nav-item.active .nav-link-item {
    color: #FF6B35;
}
.white-menu .nav-item.active .nav-link-item {
    color: #FF6B35;
}

/* ── Global image safety ── */
img {
    max-width: 100%;
    height: auto;
}

/* ── Rounded corners ── */
.zubuz-hero-thumb img,
.zubuz-thumb img,
.zubuz-cta-thumb img,
.zubuz-v3-thumb > img {
    border-radius: 16px;
}
.zubuz-hero-card img,
.zubuz-thumb-card img,
.zubuz-thumb-card2 img,
.zubuz-about-thumb img,
.zubuz-v3-card img {
    border-radius: 12px;
}
.zubuz-brand-item img {
    border-radius: 0;
}

/* ── Hero section ── */
.zubuz-hero-thumb img {
    max-width: 500px;
}
.zubuz-hero-card.card1 img { width: 180px; }
.zubuz-hero-card.card2 img { width: 170px; }
.zubuz-hero-card.card3 img { width: 230px; }
.zubuz-hero-card.card4 img { width: 250px; }

/* ── Section mockups (col-lg-5 ≈ 450px con padding) ── */
.zubuz-thumb img {
    max-width: 420px;
}
.zubuz-thumb-card img {
    max-width: 180px;
}
.zubuz-thumb-card2 img {
    max-width: 250px;
}

/* ── CTA section ── */
.zubuz-cta-section .zubuz-default-btn {
    background-color: #fff;
    color: #FF6B35;
}
.zubuz-cta-section .zubuz-default-btn span {
    color: #FF6B35;
}
.zubuz-cta-section .zubuz-default-btn:hover {
    background-color: var(--secondary-color);
    color: var(--heading-color);
}
.zubuz-cta-section .zubuz-default-btn:hover span {
    color: var(--heading-color);
}
.zubuz-cta-section {
    padding-bottom: 100px;
}
.zubuz-cta-section .row {
    align-items: center;
}
.zubuz-cta-thumb {
    text-align: center;
}
.zubuz-cta-thumb img {
    max-width: 420px;
}

/* ── About page ── */
.zubuz-v3-card,
.zubuz-v3-card2 {
    box-shadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.10);
    width: auto;
    border-radius: 12px;
}
.zubuz-about-thumb img {
    width: 100%;
    object-fit: cover;
}
.zubuz-v3-thumb > img {
    max-width: 420px;
}
.zubuz-v3-card img {
    max-width: 280px;
}

/* ── Icons ── */
.zubuz-iconbox-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ── Brand logos ── */
.zubuz-brand-item img {
    max-width: 176px;
    height: auto;
    max-height: 56px;
    object-fit: contain;
}

/* ── Pricing toggle ── */
.pricing-btn .btn-toggle {
    background-color: #FF6B35 !important;
    background-image: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    position: relative !important;
}
.pricing-btn .btn-toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 5px;
    width: 25px;
    height: 25px;
    background: #fff;
    border-radius: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}
.pricing-btn .btn-toggle:checked::after {
    transform: translateX(-35px) translateY(-50%);
}
.toggle-btn label {
    color: #999;
    transition: color 0.3s;
}
.toggle-btn:has(.btn-toggle:not(:checked)) label:first-child {
    color: #1a1a2e;
    font-weight: 800;
}
.toggle-btn:has(.btn-toggle:checked) label:last-child {
    color: #1a1a2e;
    font-weight: 800;
}
/* Animazione prezzi al toggle (nomi diversi per ri-triggerare) */
@keyframes priceFadeA {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes priceFadeB {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}
[data-pricing-dynamic][data-value-active="monthly"] .dynamic-value {
    animation: priceFadeA 0.35s ease;
}
[data-pricing-dynamic][data-value-active="yearly"] .dynamic-value {
    animation: priceFadeB 0.35s ease;
}

/* ── Error page ── */
.zubuz-errors-thumb img {
    max-width: 500px;
}

/* ── Hero semicircle: replace template lime-green with brand orange ── */
.zubuz-hero-section {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1080 540'%3E%3Cpath d='M0%2C540 A540%2C540 0 0%2C1 1080%2C540 Z' fill='%23FF6B35'/%3E%3C/svg%3E");
    background-size: 55% auto;
    background-position: center bottom;
    background-repeat: no-repeat;
}

/* ── Feature/iconbox cards equal height with row gap ── */
.bg-light .row,
.zubuz-card-row {
    row-gap: 24px;
}
.zubuz-iconbox-wrap,
.zubuz-iconbox-wrap-left {
    height: 100%;
}

/* ── Pricing: badge "Più popolare" ── */
.pricing-badge-popular {
    display: block;
    background-color: #FF6B35;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 20px;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
    width: fit-content;
}

/* ── Pricing: badge risparmio annuale ── */
.pricing-badge-save {
    display: inline-block;
    background-color: #4ECDC4;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
    vertical-align: middle;
    margin-left: 4px;
}

/* ── Pricing: costo setup visibile ── */
.pricing-setup-cost {
    font-size: 13px;
    color: #888;
    margin-top: 6px;
    font-style: italic;
}

/* ── Pricing cards visual hierarchy ── */
.zubuz-pricing-wrap {
    height: 100%;
    display: flex;
    flex-direction: column;
    border: 1px solid #CCCCCC;
    background-color: #fff;
    box-shadow: none;
}
.zubuz-pricing-wrap:hover {
    border: 1px solid #CCCCCC;
    box-shadow: 0px 4px 24px 0px rgba(0, 0, 0, 0.06);
}
.zubuz-pricing-wrap.active {
    background-color: #fff;
    border: 2px solid #FF6B35;
    box-shadow: 0px 4px 40px 0px rgba(255, 107, 53, 0.12);
}
.zubuz-pricing-btn {
    margin-top: auto;
}

/* ── Contact page icon boxes ── */
.zubuz-contact-icon {
    width: 64px;
    height: 64px;
    min-width: 64px;
    border-radius: 16px;
    background-color: #FF6B35;
    display: flex;
    align-items: center;
    justify-content: center;
}
.zubuz-contact-icon i {
    font-size: 24px;
    color: #fff;
}
.zubuz-contact-card-link {
    text-decoration: none;
}

/* ── Pricing table: scroll orizzontale su mobile ── */
.zubuz-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ── Disabilita hover sulle card su dispositivi touch ── */
@media (hover: none), screen and (max-width: 767px) {
    .zubuz-iconbox-wrap:hover,
    .zubuz-iconbox-wrap-left:hover,
    .zubuz-iconbox-wrap-left.iconbox-left-border:hover {
        border: none;
        box-shadow: none;
    }
    .zubuz-pricing-wrap:hover {
        border: 1px solid #CCCCCC;
        box-shadow: none;
    }
    .zubuz-pricing-wrap.active:hover {
        border: 2px solid #FF6B35;
        box-shadow: none;
    }
    .zubuz-iconbox-wrap-left:hover .zubuz-iconbox-number {
        color: inherit;
        background-color: inherit;
    }
    .zubuz-app:hover {
        transform: none;
    }
}

/* ── Pricing sticky CTA (desktop: nascosta) ── */
@media (min-width: 768px) {
    .pricing-sticky-cta { display: none; }
}

/* ── Mobile fixes ── */
@media (max-width: 767px) {
    /* Pricing cards: scorrimento orizzontale con snap */
    .pricing-cards-scroll-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        padding-left: 8px;
        padding-right: 8px;
        padding-bottom: 16px;
        background-color: #fff;
    }
    .pricing-cards-scroll-wrapper .row {
        flex-wrap: nowrap;
    }
    .pricing-cards-scroll-wrapper [class*="col-"] {
        flex: 0 0 85%;
        max-width: 85%;
        scroll-snap-align: center;
        padding: 0 8px;
    }

    /* Pricing sticky CTA */
    .pricing-sticky-cta {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: #fff;
        padding: 12px 16px;
        box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.12);
        z-index: 1000;
        text-align: center;
    }
    .pricing-sticky-cta .zubuz-default-btn {
        width: 100%;
        justify-content: center;
    }
    /* Spazio footer per non coprire contenuto */
    .zubuz-footer-section.main-footer {
        padding-bottom: 80px;
    }


    /* Hero background semicircle più grande su mobile */
    .zubuz-hero-section {
        background-size: 90% auto;
        background-position: center bottom;
    }

    /* Hero mockup: limita larghezza e centra */
    .zubuz-hero-thumb {
        overflow: hidden;
    }
    .zubuz-hero-thumb img {
        max-width: 85%;
        margin: 0 auto;
        display: block;
    }

    /* Hero card images: rimuovi larghezza fissa */
    .zubuz-hero-card.card1 img,
    .zubuz-hero-card.card2 img,
    .zubuz-hero-card.card3 img,
    .zubuz-hero-card.card4 img {
        width: auto;
        max-width: 100%;
    }

    /* CTA section: meno padding su mobile */
    .zubuz-cta-section {
        padding-bottom: 48px;
    }
}
