:root{
            --pub-red:#dc3545;
            --pub-red-dark:#b42333;
            --pub-text:#1f2937;
            --pub-muted:#6b7280;
            --pub-border:#e5e7eb;
            --pub-soft:#f8fafc;
            --pub-bg:#f5f7fb;
            --pub-shadow:0 14px 34px rgba(15,23,42,.08);
        }

        html, body{
            min-height:100%;
        }

        body{
            background:var(--pub-bg);
            color:var(--pub-text);
        }

        a{
            color:inherit;
        }

        .public-shell{
            min-height:100vh;
            display:flex;
            flex-direction:column;
        }

        .public-header{
            position:sticky;
            top:0;
            z-index:1030;
            backdrop-filter: blur(10px);
            background:rgba(255,255,255,.94);
            border-bottom:1px solid rgba(0,0,0,.05);
            box-shadow:0 8px 24px rgba(15,23,42,.04);
        }

        .public-header-top{
            padding:1rem 0 .85rem;
        }

        .public-header-middle{
            padding:0 0 1rem;
        }

        .public-brand{
            display:flex;
            align-items:center;
            gap:.9rem;
            text-decoration:none;
            color:var(--pub-text);
        }

        .public-brand-logo{
            width:46px;
            height:46px;
            border-radius:14px;
            display:flex;
            align-items:center;
            justify-content:center;
            background:linear-gradient(135deg, var(--pub-red) 0%, #ef4444 100%);
            color:#fff;
            font-size:1.2rem;
            box-shadow:0 10px 22px rgba(220,53,69,.24);
            flex:0 0 auto;
        }

        .public-brand-title{
            font-weight:800;
            letter-spacing:-.02em;
            margin:0;
            line-height:1.05;
        }

        .public-brand-subtitle{
            margin:0;
            font-size:.88rem;
            color:var(--pub-muted);
        }

        .public-search-desktop{
            background:#fff;
            border:1px solid var(--pub-border);
            border-radius:1.2rem;
            padding:.55rem;
            box-shadow:var(--pub-shadow);
        }

        .public-search-desktop .form-control,
        .public-search-desktop .form-select,
        .public-search-mobile-form .form-control,
        .public-search-mobile-form .form-select{
            min-height:48px;
            border-radius:.9rem;
        }

        .public-search-label{
            font-size:.76rem;
            font-weight:800;
            color:var(--pub-muted);
            text-transform:uppercase;
            letter-spacing:.08em;
            margin-bottom:.35rem;
            display:block;
        }

        .public-main-nav{
            display:flex;
            flex-wrap:wrap;
            gap:.55rem;
        }

        .public-main-nav .nav-link{
            border-radius:999px;
            padding:.72rem 1rem;
            font-weight:700;
            color:var(--pub-text);
            background:#fff;
            border:1px solid var(--pub-border);
            transition:.2s ease;
            text-decoration:none;
        }

        .public-main-nav .nav-link:hover{
            color:var(--pub-red-dark);
            background:#fff1f2;
            border-color:rgba(220,53,69,.12);
        }

        .public-main-nav .nav-link.is-active{
            background:linear-gradient(135deg, var(--pub-red) 0%, #ef4444 100%);
            color:#fff;
            border-color:transparent;
            box-shadow:0 10px 24px rgba(220,53,69,.2);
        }

        .public-header-actions{
            display:flex;
            justify-content:flex-end;
            flex-wrap:wrap;
            gap:.65rem;
        }

        .public-header-actions .btn{
            border-radius:999px;
            padding:.78rem 1rem;
            font-weight:700;
            box-shadow:var(--pub-shadow);
        }

        .public-mobile-tools{
            display:none;
            gap:.6rem;
            justify-content:flex-end;
        }

        .public-mobile-tools .btn{
            border-radius:999px;
            font-weight:700;
            padding:.72rem 1rem;
        }

        .public-page{
            flex:1 1 auto;
            padding:1.5rem 0 2rem;
        }

        .public-footer{
            padding:2rem 0;
            color:var(--pub-muted);
            font-size:.92rem;
        }

        .public-offcanvas .offcanvas-header{
            border-bottom:1px solid var(--pub-border);
        }

        .public-offcanvas .offcanvas-title{
            font-weight:800;
        }

        .public-mobile-nav{
            display:flex;
            flex-direction:column;
            gap:.55rem;
        }

        .public-mobile-nav a{
            text-decoration:none;
            padding:.9rem 1rem;
            border:1px solid var(--pub-border);
            border-radius:1rem;
            color:var(--pub-text);
            font-weight:700;
            background:#fff;
        }

        .public-mobile-nav a.is-active{
            background:linear-gradient(135deg, var(--pub-red) 0%, #ef4444 100%);
            color:#fff;
            border-color:transparent;
        }

        @media (max-width: 991.98px){
            .public-search-wrap-desktop,
            .public-main-nav-wrap,
            .public-header-actions-wrap{
                display:none !important;
            }

            .public-mobile-tools{
                display:flex;
            }
        }

        @media (min-width: 992px){
            .public-mobile-only{
                display:none !important;
            }
        }

        @media (max-width: 767.98px){
            .public-brand-title{
                font-size:1.05rem;
            }

            .public-brand-subtitle{
                font-size:.8rem;
            }
        }


        .public-profile-dropdown .btn{
            border-radius:999px;
            padding:.75rem 1rem;
            font-weight:700;
            border:1px solid var(--pub-border);
            background:#fff;
            color:var(--pub-text);
            box-shadow:var(--pub-shadow);
        }

        .public-profile-dropdown .dropdown-menu{
            border:1px solid var(--pub-border);
            border-radius:1rem;
            box-shadow:var(--pub-shadow);
            padding:.5rem;
            min-width:240px;
        }

        .public-profile-dropdown .dropdown-item{
            border-radius:.8rem;
            padding:.7rem .85rem;
            font-weight:600;
        }

        .public-profile-dropdown .dropdown-item:hover{
            background:#f8fafc;
        }


        /* Go-live Responsive Polish */
        img{ max-width:100%; height:auto; }
        .company-logo-box,
        .company-profile .company-logo-box{
            background:#fff;
        }
        .company-logo-box img,
        .company-profile .company-logo-box img,
        .home-page .company-logo-box img{
            width:100% !important;
            height:100% !important;
            object-fit:contain !important;
            padding:.35rem;
            background:#fff;
        }
        .company-card img,
        .search-company-logo,
        .category-company-logo{
            width:100% !important;
            max-width:100% !important;
            height:auto !important;
            object-fit:contain !important;
        }
        @media (max-width: 767.98px){
            .public-header-top{ padding:.75rem 0 .65rem; }
            .public-page{ padding:.85rem 0 1.25rem; }
            .public-brand{ gap:.65rem; }
            .public-brand-logo{ width:40px; height:40px; border-radius:12px; }
            .public-mobile-tools{ gap:.4rem; }
            .public-mobile-tools .btn{ padding:.62rem .78rem; font-size:.9rem; }
            .container,
            .container-sm,
            .container-md,
            .container-lg,
            .container-xl,
            .container-xxl{ padding-left:1rem; padding-right:1rem; }
            .card-body.p-4{ padding:1.15rem !important; }
            .p-4{ padding:1.15rem !important; }
            .p-5{ padding:1.35rem !important; }
            .py-4{ padding-top:1rem !important; padding-bottom:1rem !important; }
            .mb-5{ margin-bottom:2rem !important; }
            .gap-4{ gap:1rem !important; }
            .row.g-4{ --bs-gutter-x:1rem; --bs-gutter-y:1rem; }
            .row.g-3{ --bs-gutter-x:.85rem; --bs-gutter-y:.85rem; }
            h1,.display-4,.display-5,.display-6{ line-height:1.12; }
            .btn-lg{ padding:.7rem 1rem; font-size:1rem; }
        }
