/**
 * CSS MOBILE - max-width: 768px
 * Orden según estructura HTML del home:
 *   body > header > main.container > .row > .col-12 >
 *     .banner-principal | #servicios | #nuestro-trabajo | #nosotros > #formulario-contacto
 */

@media (max-width: 768px) {
	.srs-extra-wrap {

  padding: 0 20px!important;
}
	.banner-principal.position-relative.text-center.text-white .h-100 {
  height: 100% !important;
}
	.banner-principal.position-relative.text-center.text-white {
  height: 300px !important;
}
.page-id-271 .sh-section .sh-extra-wrap {
  max-width: 1140px;
  margin: 60px auto 0;
  padding: 0 12px;
}
.position-absolute.top-50.start-50.translate-middle {
  margin-top: 7rem;
}
#servicios .col-6.col-md-3 .p-4 {
  padding: 0.1rem !important;
}
	#formulario-contacto .row.justify-content-center.text-center.mb-5 img {
  width: 80% !important;
}
	.row.formulario-web .col-md-12.p-4.titulo-contacto.text-center img {
  width: 30% !important;
}
    /* --------------------------------------------------
       1. BODY (global) — sin margen
       <body class="home ... servilleta-front">
    -------------------------------------------------- */
    body {
        padding-left: 0;
        padding-right: 0;
        overflow-x: hidden;
    }

    /* --------------------------------------------------
       2. HEADER
       <header class="bg-light border-bottom">
         <div class="container-header">
    -------------------------------------------------- */
    .container-header {
        padding-left: 0;
        padding-right: 0;
    }

    /* --------------------------------------------------
       3. MAIN — ancho completo (banner e imágenes full width)
       <main class="container">
         <div class="row">
           <div class="col-12">
    -------------------------------------------------- */
    main.container {
        padding-left: 0;
        padding-right: 0;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        box-sizing: border-box;
    }
    main .row {
        margin-left: auto;
        margin-right: auto;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem 1rem;
        max-width: 100%;
        box-sizing: border-box;
    }
    main > .row > .col-12 {
        grid-column: 1 / -1;
    }
    main .container > div,
    main .titulo-principal {
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Portada: la fila que envuelve todo el contenido va en block (no grid) */
    body.home main .row,
    body.servilleta-front main .row {
        display: block !important;
    }
    body.home main > .row > .col-12,
    body.servilleta-front main > .row > .col-12 {
        width: 100%;
        max-width: 100%;
    }
    body.home main,
    body.servilleta-front main {
        overflow-x: hidden;
        max-width: 100%;
    }
    body.home main .container,
    body.servilleta-front main .container {
        max-width: 100%;
        box-sizing: border-box;
    }

    /* --------------------------------------------------
       4. BANNER HERO — full width (sin padding)
       <section class="banner-principal position-relative ...">
    -------------------------------------------------- */
    section.hero,
    .banner-servilleta,
    .banner-principal,
    .seccion-portafolio-header {
        width: 100vw;
        max-width: 100vw;
        position: relative;
        left: 50%;
        margin-left: -50vw;
        padding-left: 0;
        padding-right: 0;
        box-sizing: border-box;
    }

    /* --------------------------------------------------
       5. #SERVICIOS
       <section id="servicios" class="py-5 color-negro ...">
         <div class="container">
           <div class="row g-4 justify-content-center">
             <div class="col-6 col-md-3"> (x4) .p-4 > círculo, h5, p
    -------------------------------------------------- */
    #servicios .container {
        max-width: 100%;
        box-sizing: border-box;
    }
    .box-portafolio {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }
    #nuestro-trabajo .row.box-portafolio > .col-12.card-box {
        grid-column: auto;
        max-width: none;
        flex: none;
        width: auto;
    }

    body.home #servicios .row.g-4,
    body.home #servicios .row,
    body.home #servicios .container .row,
    body.servilleta-front #servicios .row.g-4,
    body.servilleta-front #servicios .row,
    body.servilleta-front #servicios .container .row {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.75rem 1rem !important;
        flex-direction: unset !important;
        flex-wrap: unset !important;
    }
    body.home #servicios .row > [class*="col-"],
    body.home #servicios .container .row > [class*="col-"],
    body.servilleta-front #servicios .row > [class*="col-"],
    body.servilleta-front #servicios .container .row > [class*="col-"] {
        grid-column: auto !important;
        max-width: none !important;
        flex: none !important;
        width: auto !important;
        min-width: 0 !important;
    }

    body.home #servicios,
    body.servilleta-front #servicios {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
        box-sizing: border-box;
    }
    body.home #servicios .container,
    body.servilleta-front #servicios .container {
        max-width: 100%;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
    body.home #servicios .row > [class*="col-"],
    body.servilleta-front #servicios .row > [class*="col-"] {
        min-width: 0;
        padding: 0.5rem;
        text-align: center;
        box-sizing: border-box;
    }
    body.home #servicios .row > [class*="col-"] h5,
    body.servilleta-front #servicios .row > [class*="col-"] h5 {
        white-space: normal;
        word-wrap: break-word;
        margin-bottom: 0.35rem;
        font-size: 0.9rem;
    }
    body.home #servicios .row > [class*="col-"] p,
    body.servilleta-front #servicios .row > [class*="col-"] p {
        font-size: 0.8rem;
        line-height: 1.45;
        margin-bottom: 0.5rem;
        white-space: normal;
    }
    body.home #servicios p.mb-5,
    body.servilleta-front #servicios p.mb-5 {
        font-size: 0.85rem;
        line-height: 1.5;
        padding-left: 0;
        padding-right: 0;
    }

    /* --------------------------------------------------
       6. #NUESTRO-TRABAJO (Lo más nuevo)
       <section id="nuestro-trabajo" class="py-5 bg-light">
         <div class="container text-center img-tenedor">
           <div class="row g-4 box-portafolio">
             <div class="col-12 col-md-3 card-box"> (x6) .card > img.card-img-top
    -------------------------------------------------- */
    body.home #nuestro-trabajo .row.box-portafolio,
    body.home #nuestro-trabajo .box-portafolio,
    body.servilleta-front #nuestro-trabajo .row.box-portafolio,
    body.servilleta-front #nuestro-trabajo .box-portafolio {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.75rem 0.75rem !important;
        flex-direction: unset !important;
        flex-wrap: unset !important;
    }
    body.home #nuestro-trabajo .row.box-portafolio > [class*="col-"],
    body.home #nuestro-trabajo .box-portafolio > .card-box,
    body.servilleta-front #nuestro-trabajo .row.box-portafolio > [class*="col-"],
    body.servilleta-front #nuestro-trabajo .box-portafolio > .card-box {
        grid-column: auto !important;
        max-width: none !important;
        flex: none !important;
        width: auto !important;
        min-width: 0 !important;
    }

    body.home #nuestro-trabajo .container,
    body.servilleta-front #nuestro-trabajo .container {
        max-width: 100%;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
        box-sizing: border-box;
    }
    body.home #nuestro-trabajo .card-box,
    body.servilleta-front #nuestro-trabajo .card-box {
        min-width: 0;
        overflow: hidden;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    body.home #nuestro-trabajo .card-box .card,
    body.servilleta-front #nuestro-trabajo .card-box .card {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    /* Imágenes del portafolio: tamaño correcto y centradas horizontalmente */
    body.home #nuestro-trabajo .card-box .card img,
    body.home #nuestro-trabajo .card-box img,
    body.servilleta-front #nuestro-trabajo .card-box .card img,
    body.servilleta-front #nuestro-trabajo .card-box img {
        max-width: 100%;
        width: 100%;
        height: auto;
        min-height: 140px;
        object-fit: cover;
        object-position: center;
        display: block;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
    }

    /* --------------------------------------------------
       7. #NOSOTROS
       <div id="nosotros" class="fondo">
         <section class="py-5"> .container > .bg-white.shadow-sm.p-5
    -------------------------------------------------- */
    /* (usa .container y estilos base; sin reglas móvil específicas aquí) */

    /* --------------------------------------------------
       8. #FORMULARIO-CONTACTO (ENCUÉNTRANOS) — visible, ordenado y centrado
       <section id="formulario-contacto" class="py-5">
       Form: .wpcf7-form.init > .row.formulario-web
    -------------------------------------------------- */
    .wpcf7-form.init .row.formulario-web {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
    }
    .row.formulario-web,
    .contact-wrapper,
    .box-content {
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
    body.home #formulario-contacto,
    body.servilleta-front #formulario-contacto {
        text-align: center;
    }
    /* Imágenes de la sección contacto (grafica, isotipo, tenedor): centradas en móvil */
    #formulario-contacto .row img,
    #formulario-contacto img {
        display: block;
        margin-left: auto;
        margin-right: auto;
    }
    body.home #formulario-contacto .container,
    body.servilleta-front #formulario-contacto .container {
        max-width: 100%;
        padding-left: 1rem;
        padding-right: 1rem;
    }
    body.home #formulario-contacto .content-principal-contacto,
    body.servilleta-front #formulario-contacto .content-principal-contacto {
        display: flex !important;
        flex-direction: column !important;
        gap: 1.5rem;
        max-width: 100%;
        align-items: center;
    }
    body.home #formulario-contacto .left-contacto,
    body.home #formulario-contacto .rigth-contacto,
    body.servilleta-front #formulario-contacto .left-contacto,
    body.servilleta-front #formulario-contacto .rigth-contacto {
        max-width: 100%;
        width: 100%;
        min-width: 0;
        overflow-wrap: break-word;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    body.home #formulario-contacto .rigth-contacto input,
    body.home #formulario-contacto .rigth-contacto textarea,
    body.servilleta-front #formulario-contacto .rigth-contacto input,
    body.servilleta-front #formulario-contacto .rigth-contacto textarea {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    body.home #formulario-contacto .rigth-contacto p,
    body.servilleta-front #formulario-contacto .rigth-contacto p {
        text-align: left;
        max-width: 100%;
    }
    body.home .row.formulario-web,
    body.servilleta-front .row.formulario-web {
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
    }

    /* --------------------------------------------------
       9. PÁGINAS INTERIORES (no home)
       Diseño, Publicidad, Área Digital, etc. + portafolios + logos
    -------------------------------------------------- */

    /* Contenedor principal: una columna en interiores */
    body:not(.home):not(.servilleta-front) main .row {
        display: block !important;
    }
    body:not(.home):not(.servilleta-front) main > .row > .col-12 {
        width: 100%;
        max-width: 100%;
    }

    /* Título de página interior (.titulo-container-page) y fila con imagen + texto */
    body:not(.home) .titulo-container-page,
    body:not(.servilleta-front) .titulo-container-page {
        display: block !important;
        width: 100% !important;
        max-width: 100%;
        padding: 1rem;
        box-sizing: border-box;
    }
    body:not(.home) .titulo-container-page .header-row,
    body:not(.servilleta-front) .titulo-container-page .header-row {
        width: 100% !important;
        max-width: 100%;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 1rem;
        margin-left: 0 !important;
        text-align: center;
    }
    body:not(.home) .titulo-container-page .header-row img,
    body:not(.servilleta-front) .titulo-container-page .header-row img,
    body:not(.home) .titulo-container-page img,
    body:not(.servilleta-front) .titulo-container-page img {
        display: block;
        margin-left: auto;
        margin-right: auto;
    }
    body:not(.home) .box-center-txt,
    body:not(.servilleta-front) .box-center-txt {
        width: 100% !important;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding-left: 1rem;
        padding-right: 1rem;
        box-sizing: border-box;
    }
    body:not(.home) .box-center-txt .col-lg-7,
    body:not(.home) .box-center-txt .col-md-6,
    body:not(.servilleta-front) .box-center-txt .col-lg-7,
    body:not(.servilleta-front) .box-center-txt .col-md-6 {
        width: 100% !important;
        max-width: 100%;
    }
    /* Imágenes en secciones interiores: centradas */
    body:not(.home) main section.container img,
    body:not(.servilleta-front) main section.container img {
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

    /* --------------------------------------------------
       9.1 PÁGINA HISTORIA (Nosotros) — solo body.pagina-nosotros-historia
       .box-nosotros, .box-nosotros-2, col-lg-5 + col-lg-7, imagen centrada
    -------------------------------------------------- */
    body.pagina-nosotros-historia .box-nosotros {
        width: 100% !important;
        max-width: 100%;
        padding-left: 1rem;
        padding-right: 1rem;
        box-sizing: border-box;
    }
    body.pagina-nosotros-historia .box-nosotros-2 {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 1rem;
    }
    body.pagina-nosotros-historia .box-nosotros-2 .row {
        display: flex !important;
        flex-direction: column !important;
        width: 100%;
    }
    body.pagina-nosotros-historia .box-nosotros-2 [class*="col-lg-"],
    body.pagina-nosotros-historia .box-nosotros-2 [class*="col-md-"] {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
    }
    body.pagina-nosotros-historia .box-nosotros-2 img {
        display: block !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    body.pagina-nosotros-historia .box-nosotros-2 .d-flex.justify-content-center {
        justify-content: center !important;
    }
    body.pagina-nosotros-historia .box-nosotros-2 .ps-md-4 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* PORTAFOLIO VISUAL - MOBILE (p. ej. Portafolio Área Digital) */

    .seccion-portafolio {
        padding: 40px 0 60px 0;
    }

    .portafolio-contenido {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 1rem;
        padding: 2rem;
        margin: 0.5rem;
        margin-top: -50px;
    }

    .portafolio-contenido.mb-5 {
        padding-top: 2rem;
    }

    .foto-publicidad {
        flex: 1 1 calc(50% - 0.5rem);
        max-width: 100%;
        min-width: 160px;
    }

    .portfolio-item {
        margin-top: 0;
        height: auto;
    }

    .portfolio-item img {
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        border-radius: 2px;
    }

    .portfolio-item:hover {
        transform: translateY(-4px);
    }

    .portfolio-item:hover img {
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    }

    /* Variantes de tamaño se adaptan al contenido */

    /* ================================================
       LOGOS CLIENTES - MOBILE
       
       De grilla variable a 2 columnas (o 3 en landscape)
    ================================================ */

    .logo-box {
        padding: 60px 0;
    }

    .contenido-logos {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        gap: 1.5rem;
        padding: 1.5rem;
        margin: 0;
    }

    .foto-logo {
        flex: 0 1 calc(50% - 0.75rem);
        height: 100px;
        max-width: 150px;
    }

    .foto-logo .portfolio-item img {
        max-height: 60px;
    }

    .foto-logo:hover .portfolio-item img {
        transform: scale(1.08);
    }

    /* En tablets medianos: 3 columnas si hay espacio */
    @media (max-width: 768px) and (min-width: 600px) {
        .contenido-logos {
            gap: 1.75rem;
        }

        .foto-logo {
            flex: 0 1 calc(33.33% - 1rem);
            max-width: 160px;
        }
    }

    /* ================================================
       CASOS ESPECIALES - MOBILE
       
       Reducir padding, mantener max-width
    ================================================ */

    .single-item,
    .contenido-editorial,
    .pieza-especial,
    .catalogo-interior,
    .folleto-completo {
        padding: 1rem;
    }

    .single-item img,
    .contenido-editorial img,
    .pieza-especial img,
    .catalogo-interior img,
    .folleto-completo img {
        max-width: 95%;
        box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
    }

    .single-item:hover img,
    .contenido-editorial:hover img,
    .pieza-especial:hover img,
    .catalogo-interior:hover img,
    .folleto-completo:hover img {
        transform: scale(1.01);
    }

    .w-100.respeto-aspecto,
    .fullwidth-editorial {
        padding: 1rem 0;
    }

    .w-100.respeto-aspecto img,
    .fullwidth-editorial img {
        max-width: 98%;
    }

    /* ================================================
       BANNER SUPERIOR - MOBILE
       
       Reducir altura, ajustar posicionamiento
    ================================================ */

    .circulo-verde {
        display: none;
    }

    .seccion-portafolio-header {
        padding: 40px 0 60px 0;
    }

    /* ================================================
       TIPOGRAFÍA Y ESPACIADO - MOBILE
       
       Reducir espacios sin romper jerarquía visual
    ================================================ */

    .portafolio-contenido > div {
        margin-bottom: 1rem;
    }

    .foto-publicidad .portfolio-item {
        margin-top: 0;
    }

    /* ================================================
       OPTIMIZACIONES DE RENDIMIENTO - MOBILE
       
       Reducir sombras, transiciones suaves
    ================================================ */

    .portfolio-item,
    .foto-logo,
    .portfolio-item img,
    .foto-logo img {
        will-change: transform;
    }

    /* Reducir duración de transiciones en móvil */
    .portfolio-item,
    .portfolio-item img,
    .foto-logo,
    .foto-logo img {
        transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
    }

    /* ================================================
       ORIENTACIÓN LANDSCAPE EN MÓVIL
       
       Aumentar columnas ligeramente en landscape
    ================================================ */

    @media (max-width: 768px) and (orientation: landscape) {
        .portafolio-contenido {
            flex-wrap: wrap;
            gap: 1rem;
            padding: 1.5rem;
            margin: 0.5rem;
        }

        .foto-publicidad {
            flex: 1 1 calc(33.33% - 0.67rem);
        }

        .contenido-logos {
            flex-wrap: wrap;
            gap: 1rem;
        }

        .foto-logo {
            flex: 0 1 calc(50% - 0.5rem);
            height: 80px;
        }

        .foto-logo .portfolio-item img {
            max-height: 50px;
        }

        .portfolio-item {
            aspect-ratio: 16 / 9;
        }
    }

    /* ================================================
       ACCESIBILIDAD - MOBILE
       
       Focus visible optimizado para touch
    ================================================ */

    .portfolio-item:focus-visible,
    .foto-logo:focus-visible {
        outline: 3px solid #00a650;
        outline-offset: 1px;
    }

    /* ================================================
       IMÁGENES RESPONSIVAS
       
       Garantizar que todas las imágenes escalen correctamente
    ================================================ */

    img {
        max-width: 100%;
        height: auto;
        display: block;
    }

    /* Fallback para navegadores sin soporte de grid */
    @supports not (display: grid) {
        .portafolio-contenido {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 1rem;
        }

        .foto-publicidad {
            flex: 1 1 calc(50% - 0.5rem);
            width: auto;
        }

        .contenido-logos {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
        }

        .foto-logo {
            flex: 1 1 calc(50% - 0.5rem);
            min-width: 150px;
        }
    }

    /* ================================================
       PRINT STYLES - MOBILE
       
       Asegurar que se vea bien al imprimir desde móvil
    ================================================ */

    @media print {
        .portfolio-item:hover,
        .foto-logo:hover {
            transform: none !important;
        }

        .portfolio-item img {
            box-shadow: none !important;
        }
    }
}

/* ================================================
   TABLET ESPECÍFICO: 768px - 1024px
   
   Transición elegante entre móvil y desktop
================================================ */

@media (max-width: 1024px) and (min-width: 769px) {
    .portafolio-contenido {
        flex-wrap: wrap;
        gap: 1.75rem;
        padding: 3rem;
    }

    .foto-publicidad {
        flex: 1 1 calc(50% - 0.875rem);
    }

    .contenido-logos {
        gap: 1.75rem;
        padding: 2rem;
    }

    .foto-logo {
        flex: 0 1 calc(33.33% - 1rem);
        height: 110px;
    }

    .foto-logo .portfolio-item img {
        max-height: 70px;
    }
}

/* ================================================
   PEQUEÑOS DISPOSITIVOS: max-width 480px
   
   Optimización extrema para phones muy pequeños
================================================ */

@media (max-width: 480px) {
    .portafolio-contenido {
        flex-wrap: wrap;
        gap: 1rem;
        padding: 1rem;
        margin: 0.5rem;
    }

    .foto-publicidad {
        flex: 1 1 calc(50% - 0.5rem);
    }

    .contenido-logos {
        flex-wrap: wrap;
        gap: 1rem;
        padding: 1rem;
    }

    .foto-logo {
        flex: 1 1 calc(50% - 0.5rem);
        height: 90px;
    }

    .portfolio-item {
        height: auto;
    }

    .portfolio-item img {
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    }

    .foto-logo .portfolio-item img {
        max-height: 50px;
    }

    section.contenido-editorial,
    section.pieza-especial {
        padding: 0.75rem;
    }

    section.contenido-editorial img,
    section.pieza-especial img {
        max-width: 100%;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    }
}
