/* ==========================================================================
   PUBLIC PAGES STYLING (Home, Discover, etc.)
   Relies on theme.css for variables and base components
   ========================================================================== */

/* Layout specific */
:root {
    --header-height: 80px;
}

        
        /* ------------------ Public common components ------------------ */

        /* Navigation styles */
        .nav-toggle{display:none;background:transparent;border:0;cursor:pointer}
        .hamburger-line{display:block;width:22px;height:2px;background:rgba(255,255,255,0.7);margin:4px 0;border-radius:2px;transition:transform .2s}
        .nav-links{list-style:none;display:flex;gap:18px;align-items:center}
        .nav-links li a{color:var(--text-primary);text-decoration:none;padding:8px 10px;border-radius:8px;transition:background .15s}
        .nav-links li a:hover{background:rgba(255,255,255,0.03)}
        .nav-actions{display:flex;align-items:center;gap:12px}
        .btn-login,.btn-login-mobile{background:transparent;border:1px solid var(--border-strong);color:var(--text-primary);padding:8px 14px;border-radius:10px;text-decoration:none}
        .user-profile{display:flex;gap:10px;align-items:center;color:var(--text-primary);text-decoration:none;padding:6px 12px;border-radius:12px;transition:background .2s}
        .user-profile:hover{background:rgba(255,255,255,0.06)}
        .user-avatar img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid rgba(99,102,241,0.3);transition:border-color .2s}
        .user-profile:hover .user-avatar img{border-color:rgba(99,102,241,0.6)}
        .user-info{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
        .user-name{font-size:0.85rem;font-weight:600;color:var(--text-primary)}
        .user-role{font-size:0.7rem;color:var(--accent-secondary);font-weight:500;text-transform:capitalize}

        /* Mobile responsive nav */
        @media (max-width: 880px){
            .nav-links{position:fixed;top:var(--header-height);right:-100%;width:240px;height:calc(100% - var(--header-height));background:linear-gradient(180deg,rgba(2,6,23,0.98),rgba(2,6,23,0.96));backdrop-filter:blur(10px);flex-direction:column;padding:20px;transition:right .25s}
            .nav-links.show{right:0}
            .nav-toggle{display:block}
            .nav-actions{display:none}
            .mobile-auth{display:block}
            .user-info{display:none}
        }

        /* Header spacing so content doesn't hide behind fixed nav */
        body{padding-top:var(--header-height)}
        /* Footer */
        .footer-content{display:flex;gap:40px;align-items:flex-start;padding:40px 0}
        .footer-brand .logo{font-weight:900;font-size:1.2rem}
        .footer-links h4{color:var(--text-primary);margin-bottom:10px}
        .footer-links ul{list-style:none;padding:0;margin:0}
        .footer-links ul li{margin-bottom:8px}
        .footer-links ul li a{color:var(--text-secondary);text-decoration:none}
        .footer-bottom{border-top:1px solid var(--border-subtle);padding:15px 0;text-align:center;color:var(--text-secondary)}

        @media (max-width:768px){.footer-content{flex-direction:column}}

        /* Remove default list markers across public pages */
        ul, ol { list-style: none; margin: 0; padding: 0; }

        /* Smaller header height on small screens */
        @media (max-width:640px){
            :root { --header-height: 70px; }
        }

        /* Make sure mobile nav overlays content when opened */
        .nav-links { z-index: 60; }

        /* Typography */
        h2{color:var(--text-primary);font-weight:800}
        p{color:var(--text-secondary)}

        /* Form controls */
        input[type="text"],input[type="email"],input[type="password"],textarea,select{background:transparent;border:1px solid var(--border-strong);padding:10px 12px;border-radius:8px;color:var(--text-primary);width:100%;outline:none}
        input:focus,textarea:focus,select:focus{box-shadow:0 8px 24px rgba(67, 56, 202, 0.08);border-color:var(--accent-primary)}
        label.form-label{display:block;margin-bottom:8px;color:var(--text-secondary);font-weight:600}

        /* Buttons */
        .btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;border:1px solid transparent;cursor:pointer}
        .btn-primary{background:var(--accent-primary);color:white;font-weight:700}
        .btn-secondary{background:transparent;border:1px solid var(--border-strong);color:var(--text-primary)}
        .btn-danger{background:var(--semantic-error);color:white}

        /* Cards & lists */
        .card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:16px;padding:20px;color:var(--text-primary)}
        .card h3{margin-bottom:12px}
        .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
        .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
        @media (max-width:900px){.grid-3{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}}

        /* Event card */
        .event-card{display:flex;gap:16px;align-items:flex-start}
        .event-card .thumb{width:160px;height:100px;border-radius:12px;background:#0b1220;flex-shrink:0;object-fit:cover}
        .event-card .meta{flex:1}
        .status-badge{display:inline-block;padding:6px 10px;border-radius:999px;font-weight:700;font-size:0.8rem}
        .status-published{background:rgba(16,185,129,0.12);color:var(--green)}
        .status-draft{background:rgba(255,193,7,0.08);color:#f59e0b}

        /* Utilities */
        .text-muted{color:var(--text-muted)}
        .center{text-align:center}
        .small{font-size:0.85rem}

        /* Accessibility focus ring */
        a:focus,button:focus,input:focus{outline:3px solid rgba(99,102,241,0.15);outline-offset:2px}

        /* Helpers for management pages */
        .table{width:100%;border-collapse:collapse}
        .table th,.table td{padding:12px;border-bottom:1px solid rgba(255,255,255,0.03);text-align:left}

        /* Small screens adjustments */
        @media (max-width:640px){
            .container{padding:0 1rem}
            body{padding-top:70px}
        }


        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 2rem;
        }

        /* --- NAVIGATION --- */
        .glass-nav {
            position: fixed;
            top: 0; width: 100%;
            backdrop-filter: blur(15px);
            border-bottom: 1px solid var(--border-subtle);
            z-index: 1000;
        }

        .nav-content {
            height: 80px;
            display: flex;
            flex-direction: row;
            justify-content: space-between;
            align-items: center;
        }

        .nav-inner { display:flex;align-items:center;justify-content:space-between;width:100%;gap:20px }

        /* mobile-only auth link inside nav menu (hidden on desktop) */
        .mobile-auth{display:none}

        .logo { 
            font-weight: 800; 
            font-size: 1.5rem; 
            display: flex; 
            align-items: center; 
            gap: 10px;
            color: white;
            text-decoration: none;
        }

        .logo-box {
            width: 32px; height: 32px;
            background: var(--primary);
            border-radius: 8px;
            display: grid;
            place-items: center;
            font-size: 1rem;
        }

        .nav-cta { display: flex; align-items: center; gap: 20px; }

        /* --- BUTTONS --- */
        .btn-main {
            background: var(--primary);
            color: white;
            padding: 14px 28px;
            border-radius: 12px;
            border: none;
            font-weight: 700;
            cursor: pointer;
            transition: 0.3s;
            text-decoration: none;
            display: inline-block;
        }

        .btn-main:hover { transform: translateY(-3px); box-shadow: 0 15px 30px rgba(99, 102, 241, 0.4); }

        .btn-text { color: var(--text-muted); text-decoration: none; font-weight: 600; transition: 0.3s; }
        .btn-text:hover { color: white; }

        footer {
            text-align: center;
            color: var(--text-muted);
            border-top: 1px solid var(--border-subtle);
            padding: 20px 0;
            margin-top: 40px;
        }

        /* ============================================================
           B2B LANDING PAGE STYLES (NEW)
           ============================================================ */
        .landing-b2b {
            background-color: var(--bg-main);
            color: var(--text-primary);
            overflow-x: hidden;
        }

        /* --- Hero Section --- */
        .hero-b2b {
            position: relative;
            padding: 120px 0 80px;
            overflow: hidden;
            border-bottom: 1px solid var(--border-subtle);
        }

        .hero-glow {
            position: absolute;
            top: -20%;
            left: 50%;
            transform: translateX(-50%);
            width: 800px;
            height: 500px;
            background: radial-gradient(circle, rgba(79, 70, 229, 0.15) 0%, rgba(0, 0, 0, 0) 70%);
            z-index: 0;
            pointer-events: none;
        }

        .hero-container {
            position: relative;
            z-index: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
        }

        .hero-content {
            max-width: 800px;
            margin-bottom: 60px;
        }

        .badge-b2b {
            display: inline-block;
            padding: 6px 12px;
            background-color: rgba(79, 70, 229, 0.1);
            color: var(--accent-secondary);
            border: 1px solid rgba(79, 70, 229, 0.2);
            border-radius: 999px;
            font-size: 0.8125rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            margin-bottom: 24px;
        }

        .hero-title {
            font-size: 4rem;
            font-weight: 800;
            line-height: 1.1;
            margin-bottom: 24px;
            letter-spacing: -0.03em;
            color: var(--text-primary);
        }

        .gradient-text {
            background: linear-gradient(90deg, #818cf8, #c084fc, #818cf8);
            background-size: 200% auto;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: gradMove 4s linear infinite;
        }
        
        @keyframes gradMove { to { background-position: 200% center; } }

        .hero-subtitle {
            font-size: 1.25rem;
            color: var(--text-secondary);
            line-height: 1.6;
            margin-bottom: 40px;
            max-width: 600px;
            margin-left: auto;
            margin-right: auto;
        }

        .hero-actions {
            display: flex;
            justify-content: center;
            gap: 16px;
        }

        .btn-lg {
            padding: 14px 28px;
            font-size: 1rem;
        }

        /* CSS Dashboard Mockup */
        .hero-dashboard-mockup {
            width: 100%;
            max-width: 1000px;
            background-color: var(--bg-surface);
            border: 1px solid var(--border-strong);
            border-radius: 12px;
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
            overflow: hidden;
            position: relative;
            z-index: 2;
        }

        .mockup-header {
            height: 40px;
            background-color: rgba(0,0,0,0.3);
            border-bottom: 1px solid var(--border-subtle);
            display: flex;
            align-items: center;
            padding: 0 16px;
            gap: 16px;
        }

        .mockup-dots {
            display: flex;
            gap: 6px;
        }

        .mockup-dots span {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background-color: var(--border-strong);
        }

        .mockup-dots span:nth-child(1) { background-color: #ef4444; }
        .mockup-dots span:nth-child(2) { background-color: #f59e0b; }
        .mockup-dots span:nth-child(3) { background-color: #10b981; }

        .mockup-title {
            font-size: 0.75rem;
            color: var(--text-tertiary);
            font-family: monospace;
        }

        .mockup-body {
            height: 400px;
            display: flex;
        }

        .mockup-sidebar {
            width: 64px;
            background-color: rgba(0,0,0,0.2);
            border-right: 1px solid var(--border-subtle);
        }

        .mockup-canvas {
            flex: 1;
            background-image: radial-gradient(var(--border-subtle) 1px, transparent 1px);
            background-size: 20px 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 40px;
        }

        .canvas-grid {
            width: 100%;
            height: 100%;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            grid-template-rows: repeat(3, 1fr);
            gap: 12px;
        }

        .parcel {
            background-color: rgba(79, 70, 229, 0.1);
            border: 2px solid var(--accent-primary);
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.75rem;
            font-weight: 600;
            color: var(--accent-secondary);
        }

        .parcel.p-1 { grid-column: 1 / 3; grid-row: 1 / 3; }
        .parcel.p-2 { grid-column: 3 / 5; grid-row: 1 / 2; }
        .parcel.p-3 { grid-column: 3 / 4; grid-row: 2 / 4; }
        .parcel.p-4 { grid-column: 4 / 5; grid-row: 2 / 3; }

        .parcel.reserved {
            background-color: rgba(245, 158, 11, 0.1);
            border-color: var(--semantic-warning);
            color: var(--semantic-warning);
        }

        .parcel.sold {
            background-color: rgba(16, 185, 129, 0.1);
            border-color: var(--semantic-success);
            color: var(--semantic-success);
        }

        .mockup-panel {
            width: 250px;
            background-color: var(--bg-surface);
            border-left: 1px solid var(--border-subtle);
        }

        /* --- Trusted By --- */
        .trusted-b2b {
            padding: 40px 0;
            border-bottom: 1px solid var(--border-subtle);
            text-align: center;
        }

        .trusted-label {
            font-size: 0.75rem;
            font-weight: 600;
            color: var(--text-tertiary);
            letter-spacing: 0.1em;
            margin-bottom: 24px;
        }

        .trusted-logos {
            display: flex;
            justify-content: center;
            gap: 40px;
            flex-wrap: wrap;
            opacity: 0.5;
        }

        .logo-placeholder {
            font-size: 1.25rem;
            font-weight: 800;
            font-family: monospace;
            color: var(--text-secondary);
        }

        /* --- Bento Grid Features --- */
        .features-b2b {
            padding: 100px 0;
        }

        .section-header {
            text-align: center;
            margin-bottom: 60px;
            max-width: 700px;
            margin-left: auto;
            margin-right: auto;
        }

        .section-title {
            font-size: 2.5rem;
            font-weight: 700;
            margin-bottom: 16px;
            letter-spacing: -0.02em;
            color: var(--text-primary);
        }

        .section-subtitle {
            font-size: 1.125rem;
            color: var(--text-secondary);
            line-height: 1.6;
        }

        .bento-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 24px;
        }

        .bento-card {
            background-color: var(--bg-surface);
            border: 1px solid var(--border-subtle);
            border-radius: 16px;
            padding: 32px;
            transition: transform var(--transition-normal), box-shadow var(--transition-normal);
            box-shadow: var(--shadow-sm);
        }

        .bento-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-lg);
            border-color: var(--border-strong);
        }

        .bento-card.col-span-2 {
            grid-column: span 2;
        }

        .bento-icon {
            width: 48px;
            height: 48px;
            background-color: rgba(79, 70, 229, 0.1);
            border: 1px solid rgba(79, 70, 229, 0.2);
            color: var(--accent-secondary);
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 24px;
        }

        .bento-icon svg {
            width: 24px;
            height: 24px;
        }

        .bento-title {
            font-size: 1.25rem;
            font-weight: 600;
            margin-bottom: 12px;
            color: var(--text-primary);
        }

        .bento-desc {
            font-size: 0.9375rem;
            color: var(--text-secondary);
            line-height: 1.6;
        }

        /* --- Ecosystem --- */
        .ecosystem-b2b {
            padding: 80px 0 100px;
            background-color: rgba(255,255,255,0.02);
            border-top: 1px solid var(--border-subtle);
        }

        .eco-grid-b2b {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 32px;
        }

        .eco-card {
            padding: 32px 0;
            border-top: 2px solid var(--border-strong);
        }

        .eco-title {
            font-size: 1.25rem;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 16px;
        }

        .eco-desc {
            font-size: 0.9375rem;
            color: var(--text-secondary);
            line-height: 1.6;
        }

        /* --- Final CTA --- */
        .cta-b2b {
            padding: 100px 0;
            background: linear-gradient(180deg, var(--bg-main) 0%, rgba(79, 70, 229, 0.1) 100%);
            border-top: 1px solid var(--border-subtle);
        }

        .cta-wrapper {
            max-width: 600px;
            margin: 0 auto;
            text-align: center;
        }

        .cta-wrapper h2 {
            font-size: 3rem;
            font-weight: 800;
            margin-bottom: 16px;
            letter-spacing: -0.03em;
            color: var(--text-primary);
        }

        .cta-wrapper p {
            font-size: 1.125rem;
            color: var(--text-secondary);
            margin-bottom: 40px;
        }

        .cta-actions {
            display: flex;
            justify-content: center;
            gap: 16px;
        }

        /* Responsive Overrides for Landing B2B */
        @media (max-width: 992px) {
            .hero-title { font-size: 3rem; }
            .bento-grid { grid-template-columns: 1fr; }
            .bento-card.col-span-2 { grid-column: span 1; }
            .eco-grid-b2b { grid-template-columns: 1fr; gap: 16px; }
            .mockup-body { height: 250px; }
            .mockup-panel { display: none; }
        }

        @media (max-width: 768px) {
            .hero-title { font-size: 2.5rem; }
            .hero-actions, .cta-actions { flex-direction: column; }
            .cta-wrapper h2 { font-size: 2.5rem; }
            .mockup-sidebar { display: none; }
        }

