/*
 * SWB Portal Companion — Frontend CSS v1.0.1
 * Applied on every portal page for all visitors.
 *
 * NAV HIDING STRATEGY:
 *   .swbpc-logged-in body class is set server-side in PHP so the nav is
 *   hidden from first paint — no flash of content before JS fires.
 *
 * BLOCKSY SELECTORS (Pro v2.x):
 *   Nav:      .ct-header [data-id="menu"] | .ct-header nav
 *   Hamburger:.ct-header [data-id="trigger"] | .ct-toggle-dropdown-desktop
 *   Logo:     .ct-header [data-id="logo"] | .ct-header .site-logo
 */

/* ── Hide nav for logged-in users ─────────────────────────────────────────── */
body.swbpc-logged-in .ct-header nav,
body.swbpc-logged-in .ct-header [data-id="menu"],
body.swbpc-logged-in .ct-header .menu-wrapper,
body.swbpc-logged-in .ct-header ul.menu,
body.swbpc-logged-in .ct-header .main-navigation,
body.swbpc-logged-in .ct-header .nav-links           { display: none !important; }

/* Hide mobile hamburger */
body.swbpc-logged-in .ct-header .ct-toggle-dropdown-desktop,
body.swbpc-logged-in .ct-header [data-id="trigger"],
body.swbpc-logged-in .ct-header .ct-mobile-toggle,
body.swbpc-logged-in .ct-header .navbar-toggle       { display: none !important; }

/* Hide login/register header buttons once inside portal */
body.swbpc-logged-in .ct-header [data-id="button"]   { display: none !important; }

/* Keep logo left-aligned when nav is hidden */
body.swbpc-logged-in .ct-header .ct-header-content   { justify-content: flex-start; }
body.swbpc-logged-in .ct-header .site-logo,
body.swbpc-logged-in .ct-header [data-id="logo"]     { margin-right: auto; }

/* ── Keep nav fully visible for logged-out visitors ──────────────────────── */
body.swbpc-logged-out .ct-header nav,
body.swbpc-logged-out .ct-header [data-id="menu"]    { display: flex !important; }

/* ── Logo link — always clickable ────────────────────────────────────────── */
.ct-header .site-logo a,
.ct-header [data-id="logo"] a { cursor: pointer; text-decoration: none; }

/* ── Blocksy colour overrides ────────────────────────────────────────────── */
.ct-button,
.wp-block-button__link,
button[type="submit"] {
    background-color: var(--swbpc-secondary) !important;
    border-color:     var(--swbpc-secondary) !important;
}
.ct-button:hover,
.wp-block-button__link:hover,
button[type="submit"]:hover { opacity: .88; }

body.swbpc-logged-out .ct-header nav .current-menu-item > a,
body.swbpc-logged-out .ct-header nav a:hover { color: var(--swbpc-secondary) !important; }

/* ── Suppress WordPress admin bar gap ────────────────────────────────────── */
/*
 * When admin bar is hidden for non-admin users, WordPress adds margin-top:32px
 * to both <html> and <body>. We must override BOTH at root level — you cannot
 * nest "html" inside a "body" selector in CSS.
 */
html:has(body.swbpc-logged-in:not(.admin-bar)),
body.swbpc-logged-in:not(.admin-bar)           { margin-top: 0 !important; }
