:root {
    --pyro-negro: #080808;
    --pyro-negro-secundario: #151515;
    --pyro-naranja: #ff5a00;
    --pyro-amarillo: #ffc400;
    --pyro-rojo: #d92323;
    --pyro-blanco: #ffffff;
    --pyro-gris: #f3f3f3;
    --pyro-texto: #222222;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    background-color: var(--pyro-gris);
    color: var(--pyro-texto);
}

a {
    text-decoration: none;
}

.navbar-pyro {
    background-color: rgba(8, 8, 8, 0.98);
    border-bottom: 2px solid var(--pyro-naranja);
    min-height: 75px;
}

.navbar-brand {
    font-size: 1.45rem;
}

.navbar-brand i {
    color: var(--pyro-naranja);
}

.navbar-pyro .nav-link {
    color: rgba(255, 255, 255, 0.82);
    font-weight: 600;
    margin: 0 4px;
    transition: color 0.2s ease;
}

.navbar-pyro .nav-link:hover,
.navbar-pyro .nav-link.active {
    color: var(--pyro-amarillo);
}

.btn-carrito {
    background-color: var(--pyro-naranja);
    color: var(--pyro-blanco);
    font-weight: bold;
    border-radius: 999px;
    padding: 9px 18px;
}

.btn-carrito:hover {
    background-color: var(--pyro-amarillo);
    color: var(--pyro-negro);
}

.hero-pyro {
    position: relative;
    min-height: 650px;
    display: flex;
    align-items: center;
    color: var(--pyro-blanco);
    background:
        radial-gradient(
            circle at 80% 30%,
            rgba(255, 196, 0, 0.32),
            transparent 25%
        ),
        radial-gradient(
            circle at 70% 80%,
            rgba(255, 90, 0, 0.35),
            transparent 30%
        ),
        linear-gradient(
            120deg,
            #050505 20%,
            #181818 55%,
            #401000 100%
        );
    overflow: hidden;
}

.hero-pyro::before,
.hero-pyro::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(5px);
}

.hero-pyro::before {
    width: 350px;
    height: 350px;
    right: -100px;
    top: 40px;
    background-color: rgba(255, 196, 0, 0.1);
    border: 2px solid rgba(255, 196, 0, 0.3);
}

.hero-pyro::after {
    width: 500px;
    height: 500px;
    right: 100px;
    bottom: -320px;
    background-color: rgba(255, 90, 0, 0.13);
    border: 2px solid rgba(255, 90, 0, 0.35);
}

.hero-pyro .overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.3),
            rgba(0, 0, 0, 0.05)
        );
}

.min-vh-75 {
    min-height: 575px;
}

.etiqueta-principal,
.subtitulo {
    display: inline-block;
    color: var(--pyro-naranja);
    font-size: 0.9rem;
    font-weight: bold;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.hero-pyro h1 {
    color: var(--pyro-blanco);
    text-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
}

.hero-pyro .lead {
    max-width: 750px;
    color: rgba(255, 255, 255, 0.86);
    font-size: 1.25rem;
    line-height: 1.7;
}

.btn-pyro {
    border: none;
    color: var(--pyro-blanco);
    background:
        linear-gradient(
            90deg,
            var(--pyro-rojo),
            var(--pyro-naranja)
        );
    font-weight: bold;
    box-shadow: 0 8px 22px rgba(255, 90, 0, 0.25);
}

.btn-pyro:hover {
    color: var(--pyro-negro);
    background:
        linear-gradient(
            90deg,
            var(--pyro-naranja),
            var(--pyro-amarillo)
        );
}

.seccion-clara {
    background-color: var(--pyro-blanco);
}

.seccion-oscura {
    color: var(--pyro-blanco);
    background-color: var(--pyro-negro-secundario);
}

.tarjeta-servicio {
    padding: 32px;
    border-radius: 18px;
    border: 1px solid #e8e8e8;
    background-color: var(--pyro-blanco);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.tarjeta-servicio:hover {
    transform: translateY(-8px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
}

.tarjeta-servicio h3 {
    margin-top: 22px;
    margin-bottom: 15px;
    font-size: 1.35rem;
    font-weight: bold;
}

.tarjeta-servicio p {
    color: #666666;
    line-height: 1.7;
}

.icono-servicio {
    width: 65px;
    height: 65px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: var(--pyro-blanco);
    font-size: 1.65rem;
    background:
        linear-gradient(
            145deg,
            var(--pyro-rojo),
            var(--pyro-naranja)
        );
}

.enlace-pyro {
    color: var(--pyro-naranja);
    font-weight: bold;
}

.enlace-pyro:hover {
    color: var(--pyro-rojo);
}

.paso-compra {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.paso-compra:last-child {
    border-bottom: none;
}

.paso-compra > span {
    min-width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--pyro-negro);
    background-color: var(--pyro-amarillo);
    font-size: 1.2rem;
    font-weight: bold;
}

.paso-compra h4 {
    margin-bottom: 6px;
    font-size: 1.15rem;
    font-weight: bold;
}

.paso-compra p {
    margin: 0;
    color: rgba(255, 255, 255, 0.65);
}

.footer-pyro {
    padding: 50px 0 25px;
    color: rgba(255, 255, 255, 0.75);
    background-color: #050505;
    border-top: 2px solid var(--pyro-naranja);
}

.footer-pyro h5 {
    color: var(--pyro-blanco);
}

.footer-pyro a {
    display: inline-block;
    margin-bottom: 8px;
    color: rgba(255, 255, 255, 0.7);
}

.footer-pyro a:hover {
    color: var(--pyro-amarillo);
}

.footer-pyro hr {
    margin-top: 35px;
    border-color: rgba(255, 255, 255, 0.15);
}

@media (max-width: 991px) {
    .navbar-pyro .navbar-collapse {
        padding-top: 18px;
        padding-bottom: 18px;
    }

    .navbar-pyro .nav-item {
        margin-bottom: 8px;
    }

    .hero-pyro {
        min-height: 600px;
        text-align: center;
    }

    .hero-pyro .lead {
        margin-right: auto;
        margin-left: auto;
    }

    .hero-pyro .d-flex {
        justify-content: center;
    }
}

@media (max-width: 576px) {
    .hero-pyro h1 {
        font-size: 3rem;
    }

    .hero-pyro .lead {
        font-size: 1.05rem;
    }

    .tarjeta-servicio {
        padding: 25px;
    }
}

/* Catálogo público */

.encabezado-catalogo {
    position: relative;
    min-height: 330px;
    display: flex;
    align-items: center;
    overflow: hidden;
    color: var(--pyro-blanco);
    background:
        radial-gradient(
            circle at 82% 35%,
            rgba(255, 196, 0, 0.25),
            transparent 22%
        ),
        radial-gradient(
            circle at 68% 85%,
            rgba(255, 90, 0, 0.28),
            transparent 30%
        ),
        linear-gradient(
            120deg,
            #050505,
            #271005
        );
}

.encabezado-catalogo::before {
    content: "";
    position: absolute;
    width: 360px;
    height: 360px;
    right: -120px;
    top: -100px;
    border-radius: 50%;
    border: 2px solid rgba(255, 196, 0, 0.2);
}

.encabezado-catalogo__contenido {
    position: relative;
    z-index: 1;
    max-width: 750px;
}

.encabezado-catalogo h1 {
    margin: 13px 0 15px;
    font-size: clamp(2.2rem, 5vw, 3.7rem);
    font-weight: 800;
}

.encabezado-catalogo p {
    max-width: 650px;
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 1.1rem;
    line-height: 1.7;
}

.seccion-catalogo {
    min-height: 600px;
    background-color: #f5f5f6;
}

.filtros-catalogo {
    padding: 22px;
    border: 1px solid #e5e5e5;
    border-radius: 17px;
    background-color: #ffffff;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.06);
}

.filtros-catalogo form {
    display: grid;
    grid-template-columns:
        minmax(280px, 1fr)
        minmax(210px, 280px)
        auto
        auto;
    align-items: center;
    gap: 13px;
}

.filtros-catalogo__busqueda {
    position: relative;
}

.filtros-catalogo__busqueda i {
    position: absolute;
    left: 17px;
    top: 50%;
    color: #969696;
    transform: translateY(-50%);
}

.filtros-catalogo input,
.filtros-catalogo select {
    width: 100%;
    min-height: 52px;
    border: 1px solid #dddddd;
    border-radius: 11px;
    outline: none;
    background-color: #fafafa;
    font-size: 0.95rem;
}

.filtros-catalogo input {
    padding: 12px 15px 12px 48px;
}

.filtros-catalogo select {
    padding: 12px 15px;
}

.filtros-catalogo input:focus,
.filtros-catalogo select:focus {
    border-color: var(--pyro-naranja);
    box-shadow: 0 0 0 4px rgba(255, 90, 0, 0.1);
}

.filtros-catalogo .btn {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.resultado-catalogo {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin: 35px 0 22px;
}

.resultado-catalogo span {
    color: #797979;
    font-size: 0.85rem;
}

.resultado-catalogo h2 {
    margin: 5px 0 0;
    font-size: 1.4rem;
    font-weight: 800;
}

.resultado-catalogo p {
    margin: 0;
    color: #777777;
}

.grid-productos-publicos {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 23px;
}

.tarjeta-producto-publico {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e4e4e4;
    border-radius: 17px;
    background-color: #ffffff;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.tarjeta-producto-publico:hover {
    transform: translateY(-7px);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.12);
}

.tarjeta-producto-publico__imagen {
    position: relative;
    height: 265px;
    display: block;
    overflow: hidden;
    background-color: #f4f4f4;
}

.tarjeta-producto-publico__imagen > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.tarjeta-producto-publico:hover
.tarjeta-producto-publico__imagen > img {
    transform: scale(1.05);
}

.producto-sin-imagen {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: #a7a7a7;
    background:
        linear-gradient(
            145deg,
            #f7f7f7,
            #ececec
        );
}

.producto-sin-imagen i {
    font-size: 2.6rem;
}

.producto-sin-imagen span {
    font-size: 0.85rem;
}

.etiqueta-destacado {
    position: absolute;
    left: 14px;
    top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 11px;
    border-radius: 999px;
    color: #382600;
    background-color: var(--pyro-amarillo);
    font-size: 0.72rem;
    font-weight: bold;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16);
}

.etiqueta-agotado {
    position: absolute;
    right: 14px;
    top: 14px;
    padding: 8px 11px;
    border-radius: 999px;
    color: #ffffff;
    background-color: rgba(180, 29, 29, 0.92);
    font-size: 0.72rem;
    font-weight: bold;
}

.tarjeta-producto-publico__contenido {
    display: flex;
    flex-direction: column;
    min-height: 380px;
    padding: 21px;
}

.producto-categoria-publica,
.producto-categoria-detalle {
    color: var(--pyro-naranja);
    font-size: 0.72rem;
    font-weight: bold;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.producto-titulo-publico {
    min-height: 48px;
    margin: 9px 0 5px;
    color: #202020;
    font-size: 1.04rem;
    font-weight: 800;
    line-height: 1.42;
}

.producto-titulo-publico:hover {
    color: var(--pyro-naranja);
}

.producto-sku-publico,
.producto-sku-detalle {
    color: #969696;
    font-size: 0.72rem;
}

.tarjeta-producto-publico__contenido > p {
    min-height: 63px;
    margin: 15px 0;
    color: #707070;
    font-size: 0.86rem;
    line-height: 1.55;
}

.producto-precios-publicos {
    padding-top: 14px;
    border-top: 1px solid #eeeeee;
}

.producto-precios-publicos > div {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}

.producto-precios-publicos span {
    color: #818181;
    font-size: 0.73rem;
}

.producto-precios-publicos strong {
    color: #202020;
    font-size: 1.45rem;
}

.producto-precios-publicos
.precio-mayoreo-publico {
    align-items: center;
    margin-top: 10px;
    padding: 9px 11px;
    border-radius: 9px;
    background-color: #fff6e7;
}

.precio-mayoreo-publico strong {
    color: #c44800;
    font-size: 0.95rem;
}

.producto-inventario-publico {
    margin: 15px 0;
}

.inventario-disponible,
.inventario-agotado {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 0.76rem;
    font-weight: bold;
}

.inventario-disponible {
    color: #16854b;
}

.inventario-agotado {
    color: #bb2929;
}

.btn-ver-producto {
    width: 100%;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-top: auto;
    border: 1px solid var(--pyro-naranja);
    border-radius: 10px;
    color: var(--pyro-naranja);
    font-weight: bold;
}

.btn-ver-producto:hover {
    color: #ffffff;
    background-color: var(--pyro-naranja);
}

.catalogo-vacio {
    max-width: 650px;
    margin: 60px auto;
    padding: 50px 30px;
    border: 1px solid #e5e5e5;
    border-radius: 20px;
    background-color: #ffffff;
    text-align: center;
}

.catalogo-vacio__icono,
.pagina-no-encontrada__icono {
    width: 85px;
    height: 85px;
    display: grid;
    place-items: center;
    margin: 0 auto 22px;
    border-radius: 50%;
    color: var(--pyro-naranja);
    background-color: rgba(255, 90, 0, 0.1);
    font-size: 2rem;
}

.catalogo-vacio h2 {
    font-weight: 800;
}

.catalogo-vacio p {
    margin: 12px 0 25px;
    color: #777777;
}

/* Detalle del producto */

.detalle-producto-publico {
    min-height: 700px;
    padding: 35px 0 70px;
    background-color: #f5f5f6;
}

.migas-producto {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 28px;
    color: #7c7c7c;
    font-size: 0.82rem;
}

.migas-producto a {
    color: #626262;
}

.migas-producto a:hover {
    color: var(--pyro-naranja);
}

.migas-producto i {
    font-size: 0.62rem;
}

.migas-producto span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.detalle-producto-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.08fr)
        minmax(390px, 0.92fr);
    gap: 35px;
    padding: 30px;
    border: 1px solid #e5e5e5;
    border-radius: 22px;
    background-color: #ffffff;
    box-shadow: 0 14px 42px rgba(0, 0, 0, 0.07);
}

.imagen-principal-producto {
    position: relative;
    height: 570px;
    overflow: hidden;
    border-radius: 17px;
    background-color: #f1f1f1;
}

.imagen-principal-producto > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background-color: #ffffff;
}

.producto-sin-imagen--grande {
    min-height: 570px;
}

.miniaturas-producto {
    display: flex;
    gap: 11px;
    margin-top: 14px;
    overflow-x: auto;
    padding-bottom: 5px;
}

.miniatura-producto {
    min-width: 82px;
    width: 82px;
    height: 82px;
    padding: 3px;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 11px;
    background-color: #eeeeee;
}

.miniatura-producto.activa {
    border-color: var(--pyro-naranja);
}

.miniatura-producto img {
    width: 100%;
    height: 100%;
    border-radius: 7px;
    object-fit: cover;
}

.informacion-producto-publico {
    padding: 10px 5px;
}

.informacion-producto-publico h1 {
    margin: 10px 0 7px;
    color: #202020;
    font-size: clamp(1.8rem, 3vw, 2.65rem);
    font-weight: 800;
    line-height: 1.2;
}

.descripcion-corta-detalle {
    margin: 22px 0;
    color: #686868;
    font-size: 1rem;
    line-height: 1.7;
}

.precio-principal-detalle {
    margin: 25px 0 15px;
    padding: 20px 0;
    border-top: 1px solid #ededed;
    border-bottom: 1px solid #ededed;
}

.precio-principal-detalle span,
.precio-principal-detalle strong,
.precio-principal-detalle small {
    display: block;
}

.precio-principal-detalle span {
    color: #747474;
    font-size: 0.82rem;
}

.precio-principal-detalle strong {
    margin: 5px 0;
    color: #161616;
    font-size: 2.7rem;
    font-weight: 800;
}

.precio-principal-detalle small {
    color: #8a8a8a;
}

.precio-mayoreo-detalle {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 18px;
    padding: 16px;
    border: 1px solid #ffe0b9;
    border-radius: 13px;
    background-color: #fff8ef;
}

.precio-mayoreo-detalle > div:first-child {
    min-width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: var(--pyro-naranja);
    background-color: #ffe6ca;
    font-size: 1.2rem;
}

.precio-mayoreo-detalle span,
.precio-mayoreo-detalle strong,
.precio-mayoreo-detalle small {
    display: block;
}

.precio-mayoreo-detalle span {
    color: #815326;
    font-size: 0.78rem;
}

.precio-mayoreo-detalle strong {
    margin: 3px 0;
    color: #bd4100;
    font-size: 1.3rem;
}

.precio-mayoreo-detalle small {
    color: #906b48;
}

.existencia-producto-detalle {
    margin: 18px 0;
}

.existencia-producto-detalle__correcta,
.existencia-producto-detalle__agotada {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 15px;
    border-radius: 12px;
}

.existencia-producto-detalle__correcta {
    color: #17653b;
    background-color: #e8f8ee;
}

.existencia-producto-detalle__agotada {
    color: #922c2c;
    background-color: #ffeaea;
}

.existencia-producto-detalle i {
    font-size: 1.3rem;
}

.existencia-producto-detalle strong,
.existencia-producto-detalle span {
    display: block;
}

.existencia-producto-detalle span {
    margin-top: 3px;
    font-size: 0.8rem;
}

.aviso-compra-producto {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 18px 0;
    padding: 15px;
    border-radius: 12px;
    color: #555555;
    background-color: #f1f3f5;
}

.aviso-compra-producto i {
    margin-top: 3px;
    color: #3780bf;
}

.aviso-compra-producto p {
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.55;
}

.acciones-producto-detalle {
    display: flex;
    gap: 12px;
    margin: 22px 0;
}

.acciones-producto-detalle .btn {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.beneficios-producto {
    display: grid;
    gap: 11px;
    padding-top: 20px;
    border-top: 1px solid #ededed;
}

.beneficios-producto > div {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #616161;
    font-size: 0.84rem;
}

.beneficios-producto i {
    width: 24px;
    color: var(--pyro-naranja);
    text-align: center;
}

.descripcion-producto-completa,
.videos-producto-publico {
    margin-top: 30px;
    padding: 30px;
    border: 1px solid #e5e5e5;
    border-radius: 20px;
    background-color: #ffffff;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.05);
}

.descripcion-producto-completa__titulo {
    margin-bottom: 23px;
    padding-bottom: 18px;
    border-bottom: 1px solid #ededed;
}

.descripcion-producto-completa__titulo span {
    color: var(--pyro-naranja);
    font-size: 0.75rem;
    font-weight: bold;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.descripcion-producto-completa__titulo h2 {
    margin: 7px 0 0;
    font-size: 1.55rem;
    font-weight: 800;
}

.descripcion-producto-completa__texto {
    color: #626262;
    line-height: 1.8;
}

.descripcion-producto-completa__texto p {
    margin: 0;
}

.grid-videos-producto {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.video-producto-tarjeta {
    padding: 20px;
    border: 1px solid #e5e5e5;
    border-radius: 14px;
    background-color: #fafafa;
}

.video-producto-tarjeta h3 {
    margin: 0 0 15px;
    font-size: 1rem;
}

.video-producto-tarjeta video {
    width: 100%;
    max-height: 420px;
    border-radius: 10px;
    background-color: #000000;
}

.pagina-no-encontrada {
    min-height: 680px;
    display: grid;
    place-items: center;
    padding: 60px 0;
    background-color: #f5f5f6;
}

.pagina-no-encontrada__contenido {
    max-width: 680px;
    margin: auto;
    padding: 55px 35px;
    border: 1px solid #e3e3e3;
    border-radius: 22px;
    background-color: #ffffff;
    text-align: center;
    box-shadow: 0 15px 45px rgba(0, 0, 0, 0.07);
}

.pagina-no-encontrada__contenido > span {
    color: var(--pyro-naranja);
    font-size: 0.78rem;
    font-weight: bold;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.pagina-no-encontrada__contenido h1 {
    margin: 10px 0;
    font-weight: 800;
}

.pagina-no-encontrada__contenido p {
    margin: 0 0 25px;
    color: #757575;
    line-height: 1.7;
}

@media (max-width: 1200px) {
    .grid-productos-publicos {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .detalle-producto-grid {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(350px, 0.9fr);
    }

    .imagen-principal-producto {
        height: 500px;
    }
}

@media (max-width: 991px) {
    .filtros-catalogo form {
        grid-template-columns: 1fr 1fr;
    }

    .grid-productos-publicos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .detalle-producto-grid {
        grid-template-columns: 1fr;
    }

    .imagen-principal-producto {
        height: 600px;
    }
}

@media (max-width: 700px) {
    .filtros-catalogo form {
        grid-template-columns: 1fr;
    }

    .resultado-catalogo {
        align-items: flex-start;
        flex-direction: column;
    }

    .grid-productos-publicos {
        grid-template-columns: 1fr;
    }

    .tarjeta-producto-publico__imagen {
        height: 340px;
    }

    .tarjeta-producto-publico__contenido {
        min-height: auto;
    }

    .detalle-producto-grid {
        padding: 17px;
    }

    .imagen-principal-producto {
        height: 400px;
    }

    .grid-videos-producto {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 450px) {
    .encabezado-catalogo {
        min-height: 300px;
    }

    .tarjeta-producto-publico__imagen {
        height: 300px;
    }

    .imagen-principal-producto {
        height: 330px;
    }

    .informacion-producto-publico h1 {
        font-size: 1.7rem;
    }

    .precio-principal-detalle strong {
        font-size: 2.2rem;
    }

    .descripcion-producto-completa,
    .videos-producto-publico {
        padding: 22px 18px;
    }
}

/* Carrito público */

.encabezado-carrito {
    min-height: 290px;
    display: flex;
    align-items: center;
    color: #ffffff;
    background:
        radial-gradient(
            circle at 82% 35%,
            rgba(255, 196, 0, 0.22),
            transparent 23%
        ),
        linear-gradient(
            120deg,
            #080808,
            #321000
        );
}

.encabezado-carrito h1 {
    margin: 12px 0;
    font-size: clamp(2.2rem, 5vw, 3.5rem);
    font-weight: 800;
}

.encabezado-carrito p {
    max-width: 680px;
    margin: 0;
    color: rgba(255, 255, 255, 0.7);
    font-size: 1.05rem;
}

.seccion-carrito {
    min-height: 600px;
    padding: 45px 0 70px;
    background-color: #f4f5f6;
}

.alerta-publica {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 20px;
    padding: 16px 18px;
    border-radius: 12px;
    line-height: 1.5;
}

.alerta-publica--correcta {
    color: #17653a;
    background-color: #e6f8ec;
    border: 1px solid #bce8ca;
}

.alerta-publica--advertencia {
    color: #815700;
    background-color: #fff5d8;
    border: 1px solid #f2d991;
}

.alerta-publica--error {
    color: #922d2d;
    background-color: #ffe7e7;
    border: 1px solid #f3bebe;
}

.carrito-vacio-publico {
    max-width: 700px;
    margin: 35px auto;
    padding: 60px 35px;
    border: 1px solid #e1e1e1;
    border-radius: 22px;
    background-color: #ffffff;
    box-shadow: 0 15px 45px rgba(0, 0, 0, 0.07);
    text-align: center;
}

.carrito-vacio-publico__icono {
    width: 90px;
    height: 90px;
    display: grid;
    place-items: center;
    margin: 0 auto 22px;
    border-radius: 50%;
    color: var(--pyro-naranja);
    background-color: rgba(255, 90, 0, 0.1);
    font-size: 2rem;
}

.carrito-vacio-publico > span {
    color: var(--pyro-naranja);
    font-size: 0.8rem;
    font-weight: bold;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}

.carrito-vacio-publico h2 {
    margin: 10px 0;
    font-weight: 800;
}

.carrito-vacio-publico p {
    max-width: 520px;
    margin: 0 auto 27px;
    color: #747474;
    line-height: 1.7;
}

.carrito-grid-publico {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(310px, 390px);
    align-items: start;
    gap: 25px;
}

.lista-carrito-publico,
.resumen-carrito-publico {
    border: 1px solid #e2e2e2;
    border-radius: 18px;
    background-color: #ffffff;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.06);
}

.carrito-seccion-titulo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 23px 25px;
    border-bottom: 1px solid #e9e9e9;
}

.carrito-seccion-titulo span {
    color: #7b7b7b;
    font-size: 0.78rem;
}

.carrito-seccion-titulo h2 {
    margin: 5px 0 0;
    font-size: 1.25rem;
    font-weight: 800;
}

.boton-vaciar-carrito {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 13px;
    border: 1px solid #ffd0d0;
    border-radius: 9px;
    color: #b02b2b;
    background-color: #fff3f3;
    font-size: 0.82rem;
    font-weight: bold;
}

.boton-vaciar-carrito:hover {
    color: #ffffff;
    background-color: #c73535;
}

.productos-carrito-publico {
    padding: 0 25px;
}

.producto-carrito-publico {
    position: relative;
    display: grid;
    grid-template-columns:
        115px
        minmax(190px, 1fr)
        110px
        125px;
    align-items: center;
    gap: 18px;
    padding: 25px 35px 25px 0;
    border-bottom: 1px solid #ededed;
}

.producto-carrito-publico:last-child {
    border-bottom: none;
}

.producto-carrito-publico__imagen {
    width: 115px;
    height: 115px;
    display: block;
    overflow: hidden;
    border-radius: 13px;
    background-color: #f1f1f1;
}

.producto-carrito-publico__imagen img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.producto-carrito-categoria {
    color: var(--pyro-naranja);
    font-size: 0.7rem;
    font-weight: bold;
    letter-spacing: 0.9px;
    text-transform: uppercase;
}

.producto-carrito-nombre {
    display: block;
    margin: 6px 0;
    color: #252525;
    font-size: 1rem;
    font-weight: 800;
}

.producto-carrito-nombre:hover {
    color: var(--pyro-naranja);
}

.producto-carrito-sku {
    display: block;
    color: #969696;
    font-size: 0.72rem;
}

.producto-carrito-precio {
    margin-top: 12px;
}

.producto-carrito-precio span,
.producto-carrito-precio strong {
    display: block;
}

.producto-carrito-precio span {
    color: #858585;
    font-size: 0.72rem;
    text-transform: capitalize;
}

.producto-carrito-precio strong {
    margin-top: 3px;
    font-size: 1.08rem;
}

.producto-carrito-mayoreo {
    margin: 10px 0 0;
    color: #906121;
    font-size: 0.73rem;
    line-height: 1.45;
}

.producto-carrito-mayoreo i {
    margin-right: 4px;
}

.producto-carrito-publico__cantidad label,
.producto-carrito-publico__cantidad small {
    display: block;
}

.producto-carrito-publico__cantidad label {
    margin-bottom: 7px;
    font-size: 0.78rem;
    font-weight: bold;
}

.producto-carrito-publico__cantidad input {
    width: 100%;
    min-height: 44px;
    padding: 8px 10px;
    border: 1px solid #dcdcdc;
    border-radius: 9px;
    outline: none;
    text-align: center;
}

.producto-carrito-publico__cantidad input:focus {
    border-color: var(--pyro-naranja);
    box-shadow: 0 0 0 3px rgba(255, 90, 0, 0.1);
}

.producto-carrito-publico__cantidad small {
    margin-top: 6px;
    color: #929292;
    font-size: 0.67rem;
    text-align: center;
}

.producto-carrito-publico__subtotal span,
.producto-carrito-publico__subtotal strong {
    display: block;
    text-align: right;
}

.producto-carrito-publico__subtotal span {
    color: #848484;
    font-size: 0.75rem;
}

.producto-carrito-publico__subtotal strong {
    margin-top: 5px;
    color: #202020;
    font-size: 1.2rem;
}

.producto-carrito-eliminar {
    position: absolute;
    right: 0;
    top: 20px;
    width: 31px;
    height: 31px;
    display: grid;
    place-items: center;
    padding: 0;
    border: none;
    border-radius: 50%;
    color: #bd3030;
    background-color: #ffe8e8;
}

.producto-carrito-eliminar:hover {
    color: #ffffff;
    background-color: #c73535;
}

.acciones-lista-carrito {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 22px 25px;
    border-top: 1px solid #e9e9e9;
}

.acciones-lista-carrito .btn {
    min-height: 47px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn-actualizar-carrito {
    color: #ffffff;
    background-color: #222222;
}

.btn-actualizar-carrito:hover {
    color: #ffffff;
    background-color: var(--pyro-naranja);
}

.resumen-carrito-publico {
    position: sticky;
    top: 20px;
    padding: 27px;
}

.resumen-carrito-etiqueta {
    color: var(--pyro-naranja);
    font-size: 0.75rem;
    font-weight: bold;
    letter-spacing: 1.1px;
    text-transform: uppercase;
}

.resumen-carrito-publico h2 {
    margin: 8px 0 25px;
    font-size: 1.5rem;
    font-weight: 800;
}

.resumen-carrito-linea {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 13px 0;
    border-bottom: 1px solid #ededed;
    color: #696969;
    font-size: 0.88rem;
}

.resumen-carrito-linea strong {
    color: #303030;
}

.resumen-carrito-total {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 15px;
    padding: 23px 0;
}

.resumen-carrito-total span {
    color: #555555;
    font-weight: bold;
}

.resumen-carrito-total strong {
    color: #171717;
    font-size: 1.8rem;
}

.resumen-carrito-aviso {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 20px;
    padding: 13px;
    border-radius: 10px;
    color: #565656;
    background-color: #f1f3f5;
}

.resumen-carrito-aviso i {
    margin-top: 3px;
    color: #337bb7;
}

.resumen-carrito-aviso p {
    margin: 0;
    font-size: 0.77rem;
    line-height: 1.5;
}

.resumen-carrito-proceso {
    display: grid;
    gap: 11px;
    margin-top: 23px;
    padding-top: 20px;
    border-top: 1px solid #ededed;
}

.resumen-carrito-proceso > div {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #686868;
    font-size: 0.79rem;
}

.resumen-carrito-proceso i {
    width: 23px;
    color: var(--pyro-naranja);
    text-align: center;
}

.form-agregar-carrito {
    display: flex;
    align-items: flex-end;
    gap: 12px;
}

.control-cantidad-producto label {
    display: block;
    margin-bottom: 7px;
    color: #505050;
    font-size: 0.78rem;
    font-weight: bold;
}

.control-cantidad-producto input {
    width: 95px;
    min-height: 49px;
    padding: 9px;
    border: 1px solid #d9d9d9;
    border-radius: 10px;
    text-align: center;
}

.acciones-tarjeta-producto {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    gap: 9px;
    margin-top: auto;
}

.acciones-tarjeta-producto .btn-ver-producto {
    margin-top: 0;
}

.acciones-tarjeta-producto form {
    margin: 0;
}

.btn-agregar-rapido {
    width: 48px;
    height: 46px;
    display: grid;
    place-items: center;
    padding: 0;
    border: none;
    border-radius: 10px;
    color: #ffffff;
    background-color: var(--pyro-naranja);
    font-size: 1rem;
}

.btn-agregar-rapido:hover {
    color: #161616;
    background-color: var(--pyro-amarillo);
}

@media (max-width: 1100px) {
    .carrito-grid-publico {
        grid-template-columns: 1fr;
    }

    .resumen-carrito-publico {
        position: static;
    }
}

@media (max-width: 800px) {
    .producto-carrito-publico {
        grid-template-columns: 95px 1fr 100px;
    }

    .producto-carrito-publico__imagen {
        width: 95px;
        height: 95px;
    }

    .producto-carrito-publico__subtotal {
        grid-column: 2 / 4;
    }

    .producto-carrito-publico__subtotal span,
    .producto-carrito-publico__subtotal strong {
        text-align: left;
    }
}

@media (max-width: 600px) {
    .carrito-seccion-titulo,
    .acciones-lista-carrito {
        align-items: flex-start;
        flex-direction: column;
    }

    .acciones-lista-carrito .btn {
        width: 100%;
    }

    .productos-carrito-publico {
        padding: 0 18px;
    }

    .producto-carrito-publico {
        grid-template-columns: 82px 1fr;
        padding-right: 0;
    }

    .producto-carrito-publico__imagen {
        width: 82px;
        height: 82px;
    }

    .producto-carrito-publico__cantidad,
    .producto-carrito-publico__subtotal {
        grid-column: 1 / 3;
    }

    .producto-carrito-publico__cantidad {
        max-width: 140px;
    }

    .producto-carrito-eliminar {
        right: 0;
        top: 12px;
    }

    .form-agregar-carrito {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .control-cantidad-producto input {
        width: 100%;
    }

    .acciones-producto-detalle {
        flex-direction: column;
    }

    .acciones-producto-detalle .btn {
        width: 100%;
    }
}

/* Finalización y confirmación de pedidos */

.encabezado-pedido {
    min-height: 300px;
    display: flex;
    align-items: center;
    color: #ffffff;
    background:
        radial-gradient(
            circle at 82% 30%,
            rgba(255, 196, 0, 0.22),
            transparent 24%
        ),
        linear-gradient(
            120deg,
            #080808,
            #371100
        );
}

.encabezado-pedido h1 {
    margin: 12px 0;
    font-size: clamp(2.2rem, 5vw, 3.5rem);
    font-weight: 800;
}

.encabezado-pedido p {
    max-width: 720px;
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 1.05rem;
    line-height: 1.7;
}

.seccion-pedido {
    min-height: 700px;
    padding: 45px 0 75px;
    background-color: #f4f5f6;
}

.pedido-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(320px, 390px);
    align-items: start;
    gap: 25px;
}

.pedido-formulario {
    display: grid;
    gap: 22px;
}

.panel-pedido {
    padding: 26px;
    border: 1px solid #e1e1e1;
    border-radius: 18px;
    background-color: #ffffff;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.05);
}

.panel-pedido__titulo {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 24px;
    padding-bottom: 19px;
    border-bottom: 1px solid #ebebeb;
}

.panel-pedido__titulo > div:first-child {
    min-width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: var(--pyro-naranja);
    background-color: rgba(255, 90, 0, 0.1);
    font-size: 1.25rem;
}

.panel-pedido__titulo h2 {
    margin: 0 0 5px;
    font-size: 1.2rem;
    font-weight: 800;
}

.panel-pedido__titulo p {
    margin: 0;
    color: #7a7a7a;
    font-size: 0.84rem;
    line-height: 1.5;
}

.grid-campos-pedido {
    display: grid;
    gap: 19px;
}

.grid-campos-pedido--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.campo-pedido {
    margin-bottom: 20px;
}

.campo-pedido label {
    display: block;
    margin-bottom: 8px;
    color: #303030;
    font-size: 0.87rem;
    font-weight: bold;
}

.campo-pedido input,
.campo-pedido select,
.campo-pedido textarea {
    width: 100%;
    border: 1px solid #dcdcdc;
    border-radius: 11px;
    outline: none;
    color: #282828;
    background-color: #fafafa;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.94rem;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.campo-pedido input,
.campo-pedido select {
    min-height: 51px;
    padding: 12px 14px;
}

.campo-pedido textarea {
    padding: 14px;
    resize: vertical;
    line-height: 1.6;
}

.campo-pedido input:focus,
.campo-pedido select:focus,
.campo-pedido textarea:focus {
    border-color: var(--pyro-naranja);
    box-shadow: 0 0 0 4px rgba(255, 90, 0, 0.1);
}

.error-pedido {
    display: block;
    margin-top: 7px;
    color: #bd2f2f;
    font-size: 0.79rem;
}

.confirmaciones-pedido {
    display: grid;
    gap: 15px;
}

.confirmaciones-pedido label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    border: 1px solid #e2e2e2;
    border-radius: 12px;
    background-color: #fafafa;
    cursor: pointer;
}

.confirmaciones-pedido input {
    min-width: 19px;
    width: 19px;
    height: 19px;
    margin-top: 2px;
    accent-color: var(--pyro-naranja);
}

.confirmaciones-pedido span {
    color: #555555;
    font-size: 0.86rem;
    line-height: 1.55;
}

.resumen-pedido {
    position: sticky;
    top: 20px;
    padding: 27px;
    border: 1px solid #e1e1e1;
    border-radius: 18px;
    background-color: #ffffff;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.07);
}

.resumen-pedido h2 {
    margin: 8px 0 22px;
    font-size: 1.4rem;
    font-weight: 800;
}

.resumen-productos-pedido {
    display: grid;
    margin-bottom: 15px;
}

.resumen-productos-pedido article {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
    padding: 13px 0;
    border-bottom: 1px solid #ededed;
}

.resumen-productos-pedido article strong,
.resumen-productos-pedido article span {
    display: block;
}

.resumen-productos-pedido article > div:first-child {
    min-width: 0;
}

.resumen-productos-pedido article > div:first-child strong {
    margin-bottom: 5px;
    color: #2d2d2d;
    font-size: 0.85rem;
    line-height: 1.4;
}

.resumen-productos-pedido article span {
    color: #888888;
    font-size: 0.73rem;
    text-transform: capitalize;
}

.resumen-productos-pedido article > strong {
    white-space: nowrap;
    font-size: 0.88rem;
}

/* Confirmación */

.confirmacion-pedido {
    min-height: 750px;
    padding: 60px 0 80px;
    background-color: #f4f5f6;
}

.confirmacion-pedido__encabezado {
    max-width: 780px;
    margin: 0 auto 35px;
    text-align: center;
}

.confirmacion-pedido__icono {
    width: 90px;
    height: 90px;
    display: grid;
    place-items: center;
    margin: 0 auto 22px;
    border-radius: 50%;
    color: #ffffff;
    background:
        linear-gradient(
            145deg,
            #1ba65a,
            #31ca74
        );
    font-size: 2.7rem;
    box-shadow: 0 13px 30px rgba(32, 185, 99, 0.25);
}

.confirmacion-pedido__encabezado > span {
    color: #1b9b55;
    font-size: 0.8rem;
    font-weight: bold;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}

.confirmacion-pedido__encabezado h1 {
    margin: 10px 0;
    font-size: clamp(2rem, 5vw, 3.2rem);
    font-weight: 800;
}

.confirmacion-pedido__encabezado p {
    max-width: 650px;
    margin: 0 auto;
    color: #6e6e6e;
    line-height: 1.7;
}

.folio-confirmacion-pedido {
    display: inline-block;
    margin-top: 25px;
    padding: 15px 25px;
    border: 1px dashed var(--pyro-naranja);
    border-radius: 12px;
    background-color: #fff8ef;
}

.folio-confirmacion-pedido span,
.folio-confirmacion-pedido strong {
    display: block;
}

.folio-confirmacion-pedido span {
    margin-bottom: 5px;
    color: #815630;
    font-size: 0.75rem;
}

.folio-confirmacion-pedido strong {
    color: #c34800;
    font-size: 1.3rem;
    letter-spacing: 1px;
}

.confirmacion-pedido__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(320px, 390px);
    align-items: start;
    gap: 25px;
}

.panel-confirmacion-pedido {
    padding: 27px;
    border: 1px solid #e1e1e1;
    border-radius: 18px;
    background-color: #ffffff;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.06);
}

.panel-confirmacion-pedido__titulo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
    padding-bottom: 18px;
    border-bottom: 1px solid #ededed;
}

.panel-confirmacion-pedido__titulo span {
    display: block;
    margin-bottom: 4px;
    color: #858585;
    font-size: 0.75rem;
}

.panel-confirmacion-pedido__titulo h2 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 800;
}

.panel-confirmacion-pedido__titulo > i {
    color: var(--pyro-naranja);
    font-size: 1.5rem;
}

.lista-confirmacion-productos article {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 15px 0;
    border-bottom: 1px solid #ededed;
}

.lista-confirmacion-productos strong,
.lista-confirmacion-productos span {
    display: block;
}

.lista-confirmacion-productos article > div:first-child strong {
    margin-bottom: 5px;
}

.lista-confirmacion-productos span {
    color: #858585;
    font-size: 0.76rem;
    text-transform: capitalize;
}

.lista-confirmacion-productos article > div:last-child {
    text-align: right;
}

.lista-confirmacion-productos article > div:last-child strong {
    margin-top: 5px;
}

.totales-confirmacion-pedido {
    margin-top: 20px;
}

.totales-confirmacion-pedido > div {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 11px 0;
    color: #646464;
}

.total-confirmacion-final {
    margin-top: 7px;
    padding-top: 18px !important;
    border-top: 2px solid #ededed;
}

.total-confirmacion-final span {
    font-weight: bold;
}

.total-confirmacion-final strong {
    color: #202020;
    font-size: 1.5rem;
}

.pasos-confirmacion-pedido {
    display: grid;
    gap: 14px;
    margin-bottom: 24px;
}

.pasos-confirmacion-pedido > div {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.pasos-confirmacion-pedido > div > span {
    min-width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #ffffff;
    background-color: var(--pyro-naranja);
    font-size: 0.82rem;
    font-weight: bold;
}

.pasos-confirmacion-pedido p {
    margin: 5px 0 0;
    color: #656565;
    font-size: 0.86rem;
    line-height: 1.5;
}

.btn-whatsapp-confirmacion {
    width: 100%;
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 11px;
    color: #ffffff;
    background-color: #20b866;
    font-size: 1rem;
    font-weight: bold;
}

.btn-whatsapp-confirmacion:hover {
    color: #ffffff;
    background-color: #159851;
}

@media (max-width: 1000px) {
    .pedido-grid,
    .confirmacion-pedido__grid {
        grid-template-columns: 1fr;
    }

    .resumen-pedido {
        position: static;
    }
}

@media (max-width: 650px) {
    .grid-campos-pedido--2 {
        grid-template-columns: 1fr;
    }

    .panel-pedido,
    .panel-confirmacion-pedido,
    .resumen-pedido {
        padding: 21px 18px;
    }

    .lista-confirmacion-productos article {
        flex-direction: column;
    }

    .lista-confirmacion-productos article > div:last-child {
        text-align: left;
    }
}

/* Configuración pública de la empresa */

.marca-pyro {
    min-width: 145px;
    display: inline-flex;
    align-items: center;
}

.logo-publico-pyro {
    width: auto;
    max-width: 190px;
    height: 52px;
    display: block;
    object-fit: contain;
}

.logo-texto-publico {
    color: #202020;
    font-size: 1.25rem;
    font-weight: 800;
}

.footer-datos-empresa {
    display: grid;
    grid-template-columns:
        minmax(0, 1.3fr)
        minmax(220px, 0.8fr)
        minmax(180px, 0.6fr);
    gap: 40px;
    padding: 45px 0;
}

.footer-datos-empresa h3,
.footer-datos-empresa h4 {
    margin: 0 0 15px;
}

.footer-datos-empresa p {
    max-width: 540px;
    margin: 0;
    color: rgba(255, 255, 255, 0.65);
    line-height: 1.7;
}

.footer-datos-empresa > div:nth-child(2) {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 11px;
}

.footer-datos-empresa a,
.footer-datos-empresa span {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
}

.footer-datos-empresa a:hover {
    color: var(--pyro-amarillo);
}

.redes-footer-pyro {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.redes-footer-pyro a {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.1);
}

.redes-footer-pyro a:hover {
    color: #161616;
    background-color: var(--pyro-amarillo);
}

.whatsapp-flotante-pyro {
    position: fixed;
    right: 23px;
    bottom: 23px;
    z-index: 9998;
    min-height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 18px;
    border-radius: 999px;
    color: #ffffff;
    background-color: #20b866;
    font-weight: bold;
    box-shadow: 0 12px 30px rgba(12, 126, 65, 0.35);
    transition:
        transform 0.2s ease,
        background-color 0.2s ease;
}

.whatsapp-flotante-pyro i {
    font-size: 1.45rem;
}

.whatsapp-flotante-pyro:hover {
    color: #ffffff;
    background-color: #169b53;
    transform: translateY(-4px);
}

@media (max-width: 800px) {
    .footer-datos-empresa {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

@media (max-width: 500px) {
    .logo-publico-pyro {
        max-width: 145px;
        height: 44px;
    }

    .whatsapp-flotante-pyro {
        right: 16px;
        bottom: 16px;
        width: 58px;
        height: 58px;
        min-height: 58px;
        padding: 0;
        border-radius: 50%;
    }

    .whatsapp-flotante-pyro span {
        display: none;
    }
}

.footer-enlaces-informativos {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.footer-enlaces-informativos h4 {
    margin: 0 0 7px;
}

.footer-enlaces-informativos a {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.84rem;
}

.footer-enlaces-informativos a:hover {
    color: var(--pyro-amarillo);
}