.spi-btn {
    position: relative;
    overflow: hidden;
    display: inline-block;
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    outline: none;
    transition: transform 0.22s ease, box-shadow 0.15s ease, background-color .2s ease-in, color .2s ease-in;
    height: 33px;
}
.spi-btn:active { transform: scale(0.98); }
.btn-white {
    background: var(--primary-white);
    color: var(--primary-black);
}
.btn-black {
    background: var(--primary-black);
    color: var(--primary-white);
}
.spi-btn .pleca {
    position: absolute;
    bottom: 0;
    left: 0;
    width: calc(100% + 546px);
    height: 4px;
    animation: pleca-slide 23s linear infinite;
    will-change: transform;
    background: repeating-linear-gradient(
        to right,
        #a89cf0 0px,   #a89cf0 52px,
        #6dc99a 52px,  #6dc99a 104px,
        #b8e4de 104px, #b8e4de 130px,
        transparent 130px, transparent 156px,
        #e06848 156px, #e06848 208px,
        transparent 208px, transparent 234px,
        #f2b8ca 234px, #f2b8ca 286px,
        #b8a8e8 286px, #b8a8e8 338px,
        transparent 338px, transparent 364px,
        #e06848 364px, #e06848 416px,
        #b8e4de 416px, #b8e4de 442px,
        #a89cf0 442px, #a89cf0 494px,
        transparent 494px, transparent 520px,
        #6dc99a 520px, #6dc99a 546px
    );
}
@keyframes pleca-slide {
    from { transform: translateX(0); }
    to   { transform: translateX(-546px); }
}

.navbar .dropdown-toggle::after { display: none; }
.navbar .nav-link .nav-chevron {
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 4px;
    transition: transform 0.25s ease;
}
.navbar .nav-link .nav-chevron svg { display: block; }
.navbar .nav-link .nav-chevron .chevron-mobile { display: none; }

.mega-card {
    position: relative;
    display: block;
    width: 265px;
    height: 154px;
    background-color: var(--card-color, var(--color-gray-light));
    overflow: hidden;
}
.mega-card-media {
    position: absolute;
    inset: 0;
    background-image: var(--card-img, none);
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 0.2s ease-in;
}
.mega-card-media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
}
.mega-card-logo {
    position: absolute;
    top: 20px;
    left: 20px;
    height: 24px;
    width: auto;
    transition: filter 0.2s ease-in;
}
.mega-card-title {
    position: absolute;
    top: 20px;
    left: 20px;
    color: var(--primary-black);
    transition: color 0.2s ease-in;
}
.mega-card-arrow {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease-in;
}
.mega-card-desc {
    position: absolute;
    left: 20px;
    bottom: 20px;
    width: 220px;
    color: var(--primary-white);
    opacity: 0;
    transition: opacity 0.2s ease-in;
}
.mega-card::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(to right,
        var(--card-color) 0 115px,
        transparent 115px 133px,
        var(--card-color) 133px 150px,
        transparent 150px 192px,
        var(--card-color) 192px 257px,
        transparent 257px);
    opacity: 0;
    transition: opacity 0.2s ease-in;
}
.mega-card-arrow img { transition: transform 0.2s ease; }

.mega-card-industria .mega-card-media,
.mega-card-industria .mega-card-arrow,
.mega-card-industria .mega-card-desc { opacity: 1; }
.mega-card-industria .mega-card-title { color: var(--primary-white); }
.mega-card-industria::after { display: none; }
.mega-card-industria .mega-card-media { transition: opacity 0.2s ease-in, transform 0.6s ease; }

.mega-card-verde    { --card-color: var(--verde); }
.mega-card-naranja  { --card-color: var(--naranja); }
.mega-card-rosa     { --card-color: var(--rosa); }
.mega-card-turquesa { --card-color: var(--turquesa); }
.mega-card-purpura  { --card-color: var(--purpura); }
.mega-card-pdv       { --card-img: url('../img/menu/soluciones-punto-de-venta.webp'); }
.mega-card-editorial { --card-img: url('../img/menu/soluciones-produccion-editorial.webp'); }
.mega-card-empaque   { --card-img: url('../img/menu/soluciones-empaque.webp'); }
.mega-card-matcom    { --card-img: url('../img/menu/soluciones-material-comercial.webp'); }
.mega-card-atelier   { --card-img: url('../img/menu/soluciones-atelier.webp'); }
.mega-card-retail        { --card-img: url('../img/menu/industrias-retail.webp'); }
.mega-card-farma         { --card-img: url('../img/menu/industrias-farmaceutica.webp'); }
.mega-card-alimentos     { --card-img: url('../img/menu/industrias-alimentos.webp'); }
.mega-card-moda          { --card-img: url('../img/menu/industrias-moda.webp'); }
.mega-card-ind-editorial { --card-img: url('../img/menu/industrias-editorial.webp'); }
.mega-card-financiero    { --card-img: url('../img/menu/industrias-financiero.webp'); }

/* ── Consentimiento de privacidad del formulario de contacto ── */
.spi-form .form-consent {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
}
.spi-form .form-consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin-top: 3px;
    accent-color: var(--primary-black);
    cursor: pointer;
}
.spi-form .form-consent label {
    flex: 1;
    margin: 0;
    cursor: pointer;
}
.spi-form .form-consent label a {
    color: inherit;
    text-decoration: underline;
}
.spi-form .form-consent .info-error { flex-basis: 100%; }
.spi-form .form-consent input[type="checkbox"].error {
    outline: 2px solid var(--color-error);
    outline-offset: 2px;
}
.spi-form .form-consent input[type="checkbox"].error + label { color: var(--color-error); }
.spi-form .error-envio { margin-top: 16px; }
