
/* Archivo: public/assets/css/public-mobile.css
   InfoDirectorio v0.8.117
   Ajustes mobile-first para directorio público, sectores y ficha pública. */
:root{
    --infodir-public-primary:#075e62;
    --infodir-public-primary-2:#009b9d;
    --infodir-public-accent:#b8d833;
    --infodir-public-line:#dbe7ef;
    --infodir-public-soft:#f4faf9;
}

.public-body,
body{
    -webkit-text-size-adjust:100%;
}

.public-brand-logo{
    max-width: min(180px, 42vw);
    height: auto;
}

.sector-nav-shell{
    overflow: hidden;
}
.sector-nav-scroll{
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.sector-nav-public .sector-chip{
    touch-action: manipulation;
}

.public-filter-mobile-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.65rem;
}
.public-filter-mobile-head .btn{
    min-height:44px;
    font-weight:800;
}
.public-filter-toggle{
    flex:1 1 auto;
}
.public-filter-reset-mobile{
    flex:0 0 auto;
}
.public-map-head-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.35rem;
    justify-content:flex-end;
    align-items:center;
}
.public-map-toggle{
    font-weight:800;
}
.public-map-body{
    transition: opacity .18s ease-in-out;
}
.public-map-body.is-collapsed-mobile{
    display:none !important;
}

/* Tarjetas táctiles para fichas públicas */
.quick-card,
.contact-btn,
.icon-link,
.sector-chip{
    touch-action: manipulation;
}

@media (max-width: 767.98px){
    html, body{
        overflow-x:hidden;
    }
    .public-header,
    .public-topbar{
        padding-top:.85rem !important;
        padding-bottom:.85rem !important;
        margin-bottom:1rem !important;
    }
    .public-header .container-fluid,
    main.container-fluid{
        padding-left:.85rem !important;
        padding-right:.85rem !important;
    }
    .public-title,
    h1.display-5{
        font-size:1.72rem !important;
        line-height:1.05 !important;
        letter-spacing:-.04em;
    }
    .public-subtitle,
    .desc{
        font-size:.98rem !important;
        line-height:1.48 !important;
    }
    .public-count{
        width:100%;
        padding:.75rem .85rem;
        border-radius:16px;
        background:rgba(255,255,255,.72);
        border:1px solid rgba(219,231,239,.85);
    }
    .sector-nav-shell{
        margin-top:1rem !important;
        padding:.78rem !important;
        border-radius:18px !important;
    }
    .sector-nav-head{
        margin-bottom:.65rem !important;
    }
    .sector-nav-head-title span{
        font-size:.95rem;
    }
    .sector-nav-hint{
        font-size:.76rem;
    }
    .sector-nav-public{
        gap:.55rem !important;
        padding:.15rem .2rem .55rem .1rem !important;
        overflow-x:auto !important;
        overflow-y:visible !important;
    }
    .sector-nav-public .sector-chip{
        width:48px !important;
        height:48px !important;
        min-width:48px !important;
        min-height:48px !important;
        border-radius:17px !important;
    }
    .sector-nav-public .sector-count{
        min-width:19px !important;
        height:19px !important;
        font-size:.64rem !important;
    }

    .public-filter-card{
        position:sticky;
        top:.4rem;
        z-index:30;
        border-radius:20px !important;
        box-shadow:0 18px 38px rgba(15,23,42,.10) !important;
    }
    .public-filter-body.is-collapsed-mobile{
        display:none !important;
    }
    .public-filter-body.is-open{
        display:block !important;
        padding-top:.85rem;
    }
    .public-filter-body .form-control,
    .public-filter-body .form-select{
        min-height:46px;
        border-radius:14px;
        font-size:1rem;
    }
    .public-filter-body label{
        margin-bottom:.35rem;
    }

    .public-directory-map-card{
        border-radius:20px !important;
        overflow:hidden;
    }
    .public-directory-map-header{
        padding:1rem !important;
    }
    .public-map-head-actions{
        justify-content:flex-start;
        width:100%;
    }
    .public-directory-map,
    .public-map,
    iframe.public-map{
        min-height:320px !important;
        height:320px !important;
        border-radius:0 !important;
    }

    /* Convertimos la tabla pública en tarjetas reales en móvil */
    #directorioPublicoTable,
    #directorioPublicoTable tbody,
    #directorioPublicoTable tr,
    #directorioPublicoTable td{
        display:block !important;
        width:100% !important;
    }
    #directorioPublicoTable thead{
        display:none !important;
    }
    .table-responsive{
        overflow:visible !important;
    }
    #directorioPublicoTable{
        border-collapse:separate !important;
        border-spacing:0 1rem !important;
    }
    #directorioPublicoTable tbody tr{
        border:1px solid var(--infodir-public-line) !important;
        border-radius:22px !important;
        background:#fff !important;
        box-shadow:0 12px 30px rgba(15,23,42,.07) !important;
        padding:1rem !important;
        margin-bottom:1rem !important;
    }
    #directorioPublicoTable tbody td{
        border:0 !important;
        padding:.35rem 0 !important;
        font-size:.98rem;
    }
    #directorioPublicoTable tbody td:nth-child(1){
        font-size:1.15rem !important;
        font-weight:900 !important;
        color:#10203a !important;
        padding-bottom:.55rem !important;
    }
    #directorioPublicoTable tbody td:nth-child(2)::before{
        content:'Localidad: ';
        font-weight:800;
        color:#64748b;
    }
    #directorioPublicoTable tbody td:nth-child(3)::before{
        content:'Sector: ';
        font-weight:800;
        color:#64748b;
    }
    #directorioPublicoTable tbody td:nth-child(4){
        padding-top:.8rem !important;
    }
    #directorioPublicoTable tbody td:nth-child(5) .btn{
        width:100%;
        min-height:46px;
        border-radius:999px;
        font-weight:900;
        margin-top:.35rem;
    }
    #directorioPublicoTable .contact-icons{
        display:grid !important;
        grid-template-columns:repeat(5, 44px);
        gap:.48rem !important;
        align-items:center;
    }
    #directorioPublicoTable .icon-link,
    .contact-icons .icon-link{
        width:44px !important;
        height:44px !important;
        min-width:44px !important;
        min-height:44px !important;
        border-radius:15px !important;
        font-size:1.08rem !important;
    }
    .dataTables_info,
    .dataTables_length{
        font-size:.9rem;
    }
    .pagination .page-link{
        min-width:42px;
        min-height:42px;
        display:flex;
        align-items:center;
        justify-content:center;
        border-radius:12px !important;
        margin:0 .12rem;
    }

    /* Sector.php */
    .sector-hero{
        border-radius:20px !important;
    }
    .sector-empresa-card{
        width:100% !important;
    }
    .empresa-card{
        border-radius:22px !important;
        box-shadow:0 12px 28px rgba(15,23,42,.07) !important;
    }
    .empresa-photo{
        height:170px !important;
    }
    .empresa-name{
        font-size:1.14rem !important;
    }
    .empresa-desc{
        font-size:.96rem !important;
    }

    /* Ficha pública */
    .public-breadcrumb{
        overflow-x:auto;
        white-space:nowrap;
        padding-bottom:.25rem;
        -webkit-overflow-scrolling:touch;
    }
    .hero-card,
    .section-card{
        border-radius:22px !important;
        margin-bottom:1rem !important;
    }
    .hero-content{
        padding:1.15rem !important;
    }
    .hero-photo{
        min-height:220px !important;
        height:240px !important;
    }
    .contact-strip{
        display:grid !important;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:.55rem !important;
    }
    .contact-strip .contact-btn{
        width:100%;
        min-height:46px;
        display:flex;
        align-items:center;
        justify-content:center;
        border-radius:15px !important;
        font-weight:900;
        padding:.65rem .5rem !important;
    }
    .social-strip{
        gap:.55rem !important;
    }
    .social-btn{
        width:42px !important;
        height:42px !important;
        min-width:42px !important;
    }
    .quick-grid{
        display:grid !important;
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
        gap:.7rem !important;
    }
    .quick-card{
        flex-direction:column !important;
        align-items:center !important;
        text-align:center !important;
        padding:.9rem .65rem !important;
        border-radius:18px !important;
        min-height:132px;
    }
    .quick-icon{
        width:48px !important;
        height:48px !important;
        flex-basis:48px !important;
        border-radius:16px !important;
    }
    .quick-title{
        font-size:.95rem;
    }
    .quick-hint{
        font-size:.78rem !important;
    }
    .detail-card{
        border-radius:18px !important;
    }
    .gallery-grid{
        grid-template-columns:1fr !important;
    }
    .contact-form-grid{
        grid-template-columns:1fr !important;
    }
}

@media (max-width: 380px){
    .quick-grid,
    .contact-strip{
        grid-template-columns:1fr !important;
    }
    #directorioPublicoTable .contact-icons{
        grid-template-columns:repeat(4, 44px);
    }
}


/* v0.8.116: ficha pública a ancho completo, igual que directorio.php y sector.php. */
.ficha-publica-main{
    width:100% !important;
    max-width:none !important;
}
.ficha-publica-main .hero-card,
.ficha-publica-main .section-card,
.ficha-publica-main .soft-note{
    max-width:none !important;
}
@media (min-width: 1200px){
    .ficha-publica-main .hero-content{
        padding:2.7rem;
    }
}


/* v0.8.117: barra inferior de acciones rápidas en ficha pública móvil. */
.mobile-company-actionbar{
    display:none;
}
@media (max-width: 767.98px){
    body{
        padding-bottom:82px;
    }
    .mobile-company-actionbar{
        position:fixed;
        left:10px;
        right:10px;
        bottom:10px;
        z-index:1040;
        display:grid;
        grid-template-columns:repeat(4,minmax(0,1fr));
        gap:6px;
        padding:7px;
        border-radius:24px;
        background:rgba(255,255,255,.94);
        border:1px solid rgba(219,231,239,.95);
        box-shadow:0 18px 48px rgba(15,23,42,.24);
        backdrop-filter:blur(12px);
        -webkit-backdrop-filter:blur(12px);
    }
    .mobile-company-actionbar__item{
        min-width:0;
        min-height:54px;
        border:0;
        border-radius:18px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:3px;
        text-decoration:none;
        font-weight:900;
        font-size:.73rem;
        line-height:1;
        color:#10203a;
        background:#f8fafc;
        touch-action:manipulation;
    }
    .mobile-company-actionbar__item i{
        font-size:1.12rem;
        line-height:1;
    }
    .mobile-company-actionbar__item.is-phone{background:#eef4ff;color:#1d4ed8;}
    .mobile-company-actionbar__item.is-wa{background:#dcfce7;color:#047857;}
    .mobile-company-actionbar__item.is-map{background:#fff7ed;color:#c2410c;}
    .mobile-company-actionbar__item.is-web{background:#eff6ff;color:#075985;}
    .mobile-company-actionbar__item.is-share{background:#f3f4f6;color:#334155;}
    .mobile-company-actionbar__item:active{
        transform:scale(.98);
    }
    .ficha-publica-main{
        padding-bottom:1.5rem !important;
    }
}
