/* =====================================================================
   Prestatutto — Mobile responsive overrides
   ===================================================================== */
html, body { overflow-x: hidden; }
img, video, iframe, table { max-width: 100%; }
.table-responsive, .dataTables_wrapper { -webkit-overflow-scrolling: touch; }

@media (max-width: 991.98px) {
    .header-nav .nav-publish,
    .header-nav .add-product-btn,
    .header-nav .add-service-btn,
    .header-nav a[href*="add-service"],
    .header-nav a[href*="add-product"] { padding: 6px 10px !important; font-size: 0; }
    .header-nav .nav-publish::before,
    .header-nav .add-product-btn::before,
    .header-nav .add-service-btn::before { font-size: 14px; }
    .header-nav .pt-btn-label, .header-nav .btn-label-text { display: none !important; }
    /* removed: hiding .main-nav broke mobile menu */
    .header .nav-item .nav-link { padding: .5rem .55rem !important; }
    .header .has-arrow.dropdown-toggle::after { display: none; }
    .navbar-header .navbar-brand img,
    .header-left .navbar-brand img { max-height: 36px !important; height: auto; }
}

@media (max-width: 767.98px) {
    .header-nav a[href*="add-service"],
    .header-nav a[href*="add-product"],
    .header-nav .nav-publish {
        width: 36px; height: 36px;
        border-radius: 50% !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center; justify-content: center;
        font-size: 0;
    }
    .header-nav a[href*="add-service"] i,
    .header-nav a[href*="add-product"] i,
    .header-nav .nav-publish i { font-size: 14px; margin: 0; }

    .hero-section h1, .banner-title, .hero-title { font-size: 1.6rem !important; line-height: 1.2; }
    .hero-section h2, .banner-subtitle { font-size: 1.1rem !important; }
    .hero-section, .banner-section, .page-header { padding: 30px 0 !important; }

    .service-widget, .product-widget, .shop-card { margin-bottom: 1rem; }
    .service-widget .service-content, .product-widget .product-content { padding: .75rem !important; }
    .service-widget h3, .service-widget h3 a, .product-widget h3, .product-widget h3 a {
        font-size: 1rem !important; line-height: 1.3;
    }
    .service-content .price, .product-content .price { font-size: 1rem !important; }
    .service-img, .product-img { aspect-ratio: 4/3; object-fit: cover; }

    .section-heading, .sort-section, .filter-section {
        flex-direction: column; align-items: stretch !important; gap: .5rem;
    }
    .section-heading h2 { font-size: 1.3rem !important; }

    .filter-sidebar, .product-filter, .listing-filter {
        position: fixed; top: 0; left: -100%;
        width: 85vw; max-width: 320px; height: 100vh;
        background: #fff; z-index: 9999;
        overflow-y: auto; transition: left .25s ease;
        box-shadow: 0 0 25px rgba(0,0,0,.2); padding: 1rem !important;
    }
    .filter-sidebar.show, .product-filter.show, .listing-filter.show { left: 0; }
    .filter-toggle-mobile {
        display: inline-flex !important; align-items: center; gap: .35rem;
        padding: .5rem .9rem; border-radius: 6px;
        background: #ff5722; color: #fff; border: 0; margin-bottom: .75rem;
    }

    .add-service-form, .add-product-form,
    .service-form-section, .product-form-section { padding: .75rem !important; }
    .add-service-form .form-group, .add-product-form .form-group { margin-bottom: 1rem; }
    .add-service-form .col-md-6, .add-service-form .col-md-4, .add-service-form .col-md-3,
    .add-product-form .col-md-6, .add-product-form .col-md-4, .add-product-form .col-md-3 { margin-bottom: .75rem; }
    .gallery-upload, .image-uploader, .media-uploader { padding: 1rem !important; min-height: 120px; }
    .gallery-upload .upload-text { font-size: .85rem; }

    .shop-preview, .shop-banner, .shop-cover { padding: 20px 12px !important; }
    .shop-preview .shop-info { flex-direction: column; text-align: center; gap: .75rem; }
    .shop-preview .shop-logo { margin: 0 auto; }
    .shop-preview .shop-actions { justify-content: center; flex-wrap: wrap; gap: .4rem; }
    .shop-preview .call-us, .shop-preview .contact-phone { font-size: .95rem; }

    .terms-content, .privacy-content, .about-content { padding: 1rem !important; }

    footer .footer-widget { margin-bottom: 1.5rem; }
    footer .footer-bottom-content { text-align: center; flex-direction: column; gap: .5rem; }

    .btn-report, .report-btn { padding: .35rem .65rem; font-size: .8rem; }

    .dataTables_wrapper > .row > .col-sm-12, .dataTables_wrapper table { overflow-x: auto; }
    table.dataTable { font-size: .85rem; }
    table.dataTable th, table.dataTable td { white-space: nowrap; }

    .hero-btn, .banner-btn { padding: .55rem 1rem !important; font-size: .9rem !important; }
}

@media (max-width: 575.98px) {
    .product-list .col-6, .service-list .col-6, .row-products .col-6 {
        flex: 0 0 100% !important; max-width: 100% !important;
    }
    h1 { font-size: 1.5rem !important; }
    h2 { font-size: 1.25rem !important; }
    h3 { font-size: 1.1rem !important; }

    .search-form, .main-search { flex-direction: column; gap: .5rem; }
    .search-form .form-control, .search-form .btn { width: 100%; }

    .modal-dialog:not(.modal-fullscreen) { margin: 0; max-width: 100%; min-height: 100vh; }
    .modal-content { border-radius: 0; min-height: 100vh; }
}

@media (max-width: 991.98px) {
    .sidebar, #sidebar, .admin-sidebar {
        position: fixed !important; top: 0; left: 0; bottom: 0;
        width: 260px; z-index: 1080;
        transform: translateX(-100%);
        transition: transform .25s ease;
        box-shadow: 0 0 25px rgba(0,0,0,.2);
        overflow-y: auto;
    }
    body.sidebar-open .sidebar, body.mini-sidebar .sidebar,
    .sidebar.show, .sidebar.open { transform: translateX(0); }

    .page-wrapper, .main-content, .content-wrapper {
        margin-left: 0 !important;
        padding-left: 12px !important; padding-right: 12px !important;
    }

    #toggle_btn, #mobile_btn, .sidebar-toggle, .navbar-toggle {
        display: inline-block !important;
        background: transparent; border: 0;
        font-size: 1.4rem; padding: .35rem .55rem;
    }

    body.sidebar-open::after {
        content: ''; position: fixed; inset: 0;
        background: rgba(0,0,0,.45); z-index: 1070;
    }

    .header .top-nav .nav-search, .header .header-search { display: none !important; }

    .card .card-header, .card .card-body { padding: 1rem !important; }
    .card-stat .stat-value { font-size: 1.4rem !important; }
}

@media (max-width: 767.98px) {
    .page-header {
        flex-direction: column; align-items: flex-start !important;
        gap: .5rem; padding: .75rem !important;
    }
    .page-header h3, .page-title { font-size: 1.15rem !important; margin: 0; }
    .breadcrumb { font-size: .8rem; margin: 0; padding: 0; background: transparent; }

    .page-header .float-end, .page-header .float-right, .page-header .add-button {
        width: 100%; display: flex; flex-wrap: wrap; gap: .35rem;
    }
    .page-header .add-button .btn, .page-header .float-end .btn { flex: 1 1 auto; font-size: .85rem; }

    .form-group { margin-bottom: .85rem; }
    label, .form-label { font-size: .85rem; }
    .form-control, .form-select { font-size: .9rem; }

    .table-responsive table { font-size: .82rem; }
    .table th, .table td { padding: .5rem !important; white-space: nowrap; }
    .table .actions { white-space: nowrap; }
    .table .actions .btn { padding: .25rem .45rem; font-size: .75rem; }

    .dataTables_length, .dataTables_filter { float: none !important; text-align: left; }
    .dataTables_filter input { width: 100% !important; margin-left: 0 !important; }
    .dataTables_paginate { float: none !important; text-align: center; padding-top: .5rem; }
    .dataTables_info { float: none !important; text-align: center; }
}

@media (max-width: 991.98px) {
    .mail-accounts-tabs, .mail-folders-tabs,
    .nav-tabs.mail-tabs, .nav-pills.mail-folders {
        flex-wrap: nowrap !important;
        overflow-x: auto; overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap; scrollbar-width: thin;
    }
    .mail-accounts-tabs::-webkit-scrollbar, .mail-folders-tabs::-webkit-scrollbar { height: 4px; }
    .mail-accounts-tabs .nav-item, .mail-folders-tabs .nav-item,
    .nav-tabs.mail-tabs .nav-item, .nav-pills.mail-folders .nav-item { flex: 0 0 auto; }
    .mail-accounts-tabs .nav-link, .mail-folders-tabs .nav-link {
        padding: .4rem .8rem; font-size: .85rem; white-space: nowrap;
    }

    #ptMailModal .modal-dialog, .pt-mail-modal .modal-dialog, .mail-modal .modal-dialog {
        margin: 0; max-width: 100%; min-height: 100vh;
    }
    #ptMailModal .modal-content, .pt-mail-modal .modal-content, .mail-modal .modal-content {
        border-radius: 0; min-height: 100vh;
    }
    #ptMailModal .modal-body iframe { min-height: 60vh; }

    #ptMailList tr.pt-mail-row td, .mail-list tr td {
        padding: .55rem .5rem !important; font-size: .85rem;
    }
    #ptMailList th:nth-child(n+4), #ptMailList td:nth-child(n+4),
    .mail-list th:nth-child(n+4), .mail-list td:nth-child(n+4) { display: none; }

    #ptMailList td.subject-col, .mail-list td.subject-col { white-space: normal; }
}

@media (max-width: 575.98px) {
    .mail-compose .form-group { margin-bottom: .65rem; }
    .mail-compose label { margin-bottom: .15rem; }
    .mail-compose textarea { min-height: 180px; }

    .mail-settings-table thead { display: none; }
    .mail-settings-table, .mail-settings-table tbody, .mail-settings-table tr, .mail-settings-table td {
        display: block; width: 100%;
    }
    .mail-settings-table tr {
        border: 1px solid #e5e7eb; border-radius: 8px;
        margin-bottom: .75rem; padding: .65rem; background: #fff;
    }
    .mail-settings-table td { border: 0 !important; padding: .25rem 0 !important; text-align: left !important; }
    .mail-settings-table td::before {
        content: attr(data-label) ": ";
        font-weight: 600; color: #6b7280; margin-right: .35rem;
    }
}

@media (max-width: 767.98px) {
    .moderation-queue .card { margin-bottom: .75rem; }
    .moderation-queue .card-body { padding: .85rem; }
    .moderation-actions { flex-wrap: wrap; gap: .35rem; }
    .moderation-actions .btn { flex: 1 1 calc(50% - .35rem); font-size: .8rem; }
    .badge { font-size: .7rem; }
}

@media (max-width: 767.98px) {
    .btn:not(.btn-sm):not(.btn-xs), .nav-link, .dropdown-item { min-height: 38px; }
    input[type="text"], input[type="email"], input[type="password"],
    input[type="number"], input[type="tel"], input[type="search"],
    input[type="url"], input[type="date"], input[type="time"],
    select, textarea { font-size: 16px !important; }
}

.modal-backdrop { z-index: 1055 !important; }
.modal { z-index: 1060 !important; }
#ptMailModal.modal { z-index: 99999 !important; }
#ptMailModal + .modal-backdrop,
.modal-backdrop.show.pt-mail-backdrop { z-index: 99998 !important; }

.btn:focus, .form-control:focus, a:focus {
    outline: 2px solid rgba(255, 87, 34, .35);
    outline-offset: 1px;
}


/* =====================================================================
   FIX v2 — menu mobile, theme toggle overlap, hero search stack
   ===================================================================== */

/* Hamburger mobile_btn deve essere visibile e cliccabile sotto 992px */
@media (max-width: 991.98px) {
    .header-nav .navbar-header #mobile_btn,
    .navbar-header #mobile_btn {
        display: inline-block !important;
        padding: .35rem .65rem !important;
        z-index: 100;
    }
    .header-nav .navbar-header #mobile_btn .bar-icon {
        display: inline-block;
        width: 24px;
    }

    /* Quando il menu mobile è aperto (.main-menu-wrapper attiva via JS template),
       NON sovrascriviamo display: il template gestisce visibility con menu-opened */
    .header-nav .main-menu-wrapper .main-nav { display: block !important; }
    .header-nav .main-menu-wrapper .main-nav li { display: block; width: 100%; }
    .header-nav .main-menu-wrapper .main-nav li a {
        padding: .8rem 1rem !important;
        font-size: 1rem;
        border-bottom: 1px solid rgba(0,0,0,.06);
    }
}

/* ---------- Theme/lang toggle overlap fix ---------- */
.pt-theme-toggle, .pt-lang-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 38px; height: 38px;
    padding: 0 !important;
    margin: 0 .15rem;
    border-radius: 50%;
}
.pt-theme-toggle i, .pt-lang-toggle i, .pt-lang-toggle .pt-lang-flag-icon {
    font-size: 16px;
    line-height: 1;
}
/* nascondi l'icona inattiva (sole quando è light mode, luna quando è dark) */
.pt-theme-toggle .feather-sun { display: none; }
[data-theme="dark"] .pt-theme-toggle .feather-moon { display: none; }
[data-theme="dark"] .pt-theme-toggle .feather-sun { display: inline; }

/* Ordina la top-bar evitando sovrapposizioni */
.header-nav .nav-item.pt-theme-toggle-li,
.header-nav .nav-item.pt-lang-toggle-li {
    margin: 0 2px;
}

@media (max-width: 767.98px) {
    .pt-theme-toggle, .pt-lang-toggle { width: 34px; height: 34px; }
    .pt-theme-toggle i, .pt-lang-toggle i, .pt-lang-toggle .pt-lang-flag-icon { font-size: 14px; }
}

/* ---------- Hero search: campi in colonna su mobile ---------- */
@media (max-width: 991.98px) {
    .banner-input-set .row > [class*="col-"] {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        margin-bottom: .65rem;
    }
    .banner-input {
        position: relative;
        width: 100%;
    }
    .banner-input input.global,
    .banner-input input.form-control,
    .banner-input #search-blk,
    .banner-input #user_address {
        width: 100% !important;
        height: 48px !important;
        padding: 10px 14px 10px 42px !important;
        font-size: 16px !important;       /* impedisce zoom iOS */
        border-radius: 8px !important;
        border: 1px solid #e5e7eb !important;
        background: #fff !important;
        box-shadow: 0 1px 2px rgba(0,0,0,.04);
    }
    .banner-input .feather-globe,
    .banner-input .feather-map-pin,
    .banner-input i.feather-globe,
    .banner-input .current-loc-icon {
        position: absolute !important;
        left: 14px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        font-size: 18px;
        color: #6b7280;
    }
    .banner-input .current-loc-icon {
        left: auto !important;
        right: 12px !important;
        background: transparent;
        border: 0;
        padding: 0;
    }
    .banner-btn { width: 100%; margin-top: .35rem; }
    .banner-btn .btn,
    .banner-btn .btn-banner,
    button.btn-banner {
        width: 100%;
        height: 48px;
        font-size: 1rem;
        border-radius: 8px;
    }
    .banner-head h3 { font-size: 1.05rem !important; margin-bottom: .25rem; }
    .banner-head h2 { font-size: 1.8rem !important; line-height: 1.15; margin-bottom: 1rem; }
}

@media (max-width: 575.98px) {
    .banner-head h2 { font-size: 1.5rem !important; }
    /* Lista "popolare" sotto la search */
    .banner-list .row > [class*="col-"] { margin-bottom: .35rem; }
}

/* Riduci sovrapposizioni top-bar su xs */
@media (max-width: 575.98px) {
    .header-nav .nav-item .nav-link { padding: .35rem .35rem !important; }
}
