/* ============================================================
   SMASH public-page v2 skin — Trading Desk (US) / Industrial (CA)
   Activated by the presence of the .pv2page marker rendered by
   templates/includes/v2_public_nav.html. Pages without the marker
   (dashboards, feed wall, auth flows) are completely unaffected.
   Palette keys off the marker's .ca class (brand_country_code).
   ============================================================ */

:root:has(.pv2page) {
  --bg: #08090C;
  --bg-rgb: 8, 9, 12;
  --panel: rgba(255, 255, 255, .028);
  --panel-solid: #0E1014;
  --hair: rgba(232, 216, 160, .16);
  --hair2: rgba(255, 255, 255, .08);
  --text: #EDEAE2;
  --muted: #A7ACB4;
  --dim: #787E88;
  --gold: #D8BC7A;
  --gold-soft: #E8D8A0;
  --up: #7FB69B;
  --accent: #C0392E;
  --grid: rgba(216, 188, 122, .022);
  --foil: linear-gradient(105deg, #F0DCA4 0%, #C4A25E 38%, #E9D69A 55%, #A8874C 100%);
}
:root:has(.pv2page.ca) {
  --bg: #170A09;
  --bg-rgb: 23, 10, 9;
  --panel: rgba(255, 214, 204, .042);
  --panel-solid: #1E100E;
  --hair: rgba(232, 196, 160, .32);
  --hair2: rgba(255, 222, 212, .10);
  --text: #F7ECE7;
  --muted: #C7AFA8;
  --dim: #9C837C;
  --accent: #D6412F;
  --grid: rgba(209, 65, 51, .05);
}

/* ---- page ground ---- */
body:has(.pv2page) {
  background: var(--bg);
  color: var(--text);
  font-family: 'Archivo', 'Segoe UI', Arial, sans-serif;
  background-image: linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 72px 72px;
  overflow-x: hidden;
}
body:has(.pv2page) .container-fluid.main-content { padding: 0; max-width: 100%; }
body:has(.pv2page) h1,
body:has(.pv2page) h2,
body:has(.pv2page) h3,
body:has(.pv2page) h4,
body:has(.pv2page) h5,
body:has(.pv2page) h6 { font-family: 'Archivo', 'Segoe UI', Arial, sans-serif; letter-spacing: -.01em; color: var(--text); }
body:has(.pv2page.ca) h1,
body:has(.pv2page.ca) h2 { font-family: 'Anton', 'Impact', 'Arial Black', sans-serif; font-weight: 400; letter-spacing: .01em; }
body:has(.pv2page) a { color: var(--gold-soft); }
body:has(.pv2page) a:hover { color: var(--gold); }
body:has(.pv2page) p, body:has(.pv2page) li { color: var(--muted); }
body:has(.pv2page) strong { color: var(--text); }

/* bootstrap utility overrides (bootstrap uses !important on these) */
body:has(.pv2page) .text-muted { color: var(--muted) !important; }
body:has(.pv2page) .text-primary { color: var(--gold) !important; }
body:has(.pv2page) .text-success { color: var(--up) !important; }
body:has(.pv2page) .text-warning { color: var(--gold-soft) !important; }
body:has(.pv2page) .bg-light { background: transparent !important; box-shadow: inset 0 1px 0 var(--hair2), inset 0 -1px 0 var(--hair2); }
body:has(.pv2page) .border-bottom { border-color: var(--hair2) !important; }
body:has(.pv2page) .shadow-sm, body:has(.pv2page) .shadow { box-shadow: none !important; }

/* ---- cards & panels ---- */
body:has(.pv2page) .card {
  background: var(--panel);
  border: 1px solid var(--hair2);
  border-radius: 3px;
  color: var(--muted);
  backdrop-filter: blur(6px);
}
body:has(.pv2page) .card .card-body { color: var(--muted); }
body:has(.pv2page) .card h3, body:has(.pv2page) .card h5, body:has(.pv2page) .card .h5, body:has(.pv2page) .card .h6 { color: var(--text); }
body:has(.pv2page) .card-header {
  background: rgba(var(--bg-rgb), .65);
  border-bottom: 1px solid var(--hair);
  color: var(--gold-soft) !important;
  font-family: 'IBM Plex Mono', monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}
body:has(.pv2page) .card-header h2,
body:has(.pv2page) .card-header h3 { color: var(--gold-soft); font-family: 'IBM Plex Mono', monospace; font-size: .85rem; letter-spacing: .18em; }

/* ---- buttons ---- */
body:has(.pv2page) .btn-warning {
  background: var(--foil);
  border: 1px solid var(--hair);
  color: #141208;
  font-family: 'IBM Plex Mono', monospace;
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
  border-radius: 2px;
  transition: transform .3s, box-shadow .3s;
}
body:has(.pv2page) .btn-warning:hover { color: #141208; transform: translateY(-2px); box-shadow: 0 12px 34px rgba(216, 188, 122, .22); background: var(--foil); }
body:has(.pv2page) .btn-outline-light,
body:has(.pv2page) .btn-outline-dark,
body:has(.pv2page) .btn-outline-primary {
  border: 1px solid var(--hair);
  color: var(--text);
  background: rgba(var(--bg-rgb), .4);
  font-family: 'IBM Plex Mono', monospace;
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  border-radius: 2px;
}
body:has(.pv2page) .btn-outline-light:hover,
body:has(.pv2page) .btn-outline-dark:hover,
body:has(.pv2page) .btn-outline-primary:hover { border-color: var(--gold); color: var(--gold-soft); background: rgba(216, 188, 122, .08); }
body:has(.pv2page) .badge.bg-success { background: rgba(127, 182, 155, .16) !important; color: var(--up); border: 1px solid rgba(127, 182, 155, .35); }
body:has(.pv2page) .badge.bg-primary, body:has(.pv2page) .badge.bg-danger { background: rgba(216, 188, 122, .12) !important; color: var(--gold-soft); border: 1px solid var(--hair); }
/* colored icon circles (about page and friends) onto the brand palette */
body:has(.pv2page) .rounded-circle.bg-primary { background: var(--foil) !important; color: #141208 !important; }
body:has(.pv2page) .rounded-circle.bg-success { background: rgba(127, 182, 155, .18) !important; color: var(--up) !important; }
body:has(.pv2page) .rounded-circle.bg-warning { background: rgba(216, 188, 122, .18) !important; color: var(--gold-soft) !important; }

/* ---- heroes (about / faq / contact / blog) ---- */
body:has(.pv2page) .hero-section,
body:has(.pv2page) .blog-hero {
  background: linear-gradient(180deg, rgba(var(--bg-rgb), .35), rgba(var(--bg-rgb), 0)), var(--bg);
  border-bottom: 1px solid var(--hair);
  color: var(--text);
}
body:has(.pv2page) .blog-hero::before { display: none; }
body:has(.pv2page) .hero-section h1,
body:has(.pv2page) .blog-hero h1 { color: var(--text); }
body:has(.pv2page) .hero-section .lead,
body:has(.pv2page) .blog-hero .lead { color: var(--muted); }

/* ---- location pages: retarget the view-provided theme hooks ---- */
:root:has(.pv2page) {
  --loc-primary: #D8BC7A;
  --loc-primary-dark: #B79658;
  --loc-accent: #E8D8A0;
  --loc-hero-gradient: linear-gradient(160deg, rgba(var(--bg-rgb), .92) 0%, rgba(var(--bg-rgb), .98) 100%);
}
body:has(.pv2page) .loc-hero-main,
body:has(.pv2page) .loc-detail-hero {
  background: var(--bg);
  border-bottom: 1px solid var(--hair);
}
body:has(.pv2page) .loc-country { border-bottom-color: var(--hair2); }
body:has(.pv2page) .loc-country h2 { color: var(--text); }
body:has(.pv2page) .loc-card { background: var(--panel); border: 1px solid var(--hair2); border-radius: 3px; }
body:has(.pv2page) .loc-card:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .4); border-color: var(--hair); }
body:has(.pv2page) .loc-card .card-header { background: rgba(var(--bg-rgb), .65); border-bottom: 1px solid var(--hair); }
body:has(.pv2page) .loc-card .card-body a { color: var(--muted); border-bottom-color: var(--hair2); }
body:has(.pv2page) .loc-card .card-body a:hover { color: var(--gold-soft); }
body:has(.pv2page) .loc-card .card-body a i { color: var(--gold); }
body:has(.pv2page) .loc-cta,
body:has(.pv2page) .loc-detail-cta { background: var(--panel-solid); border: 1px solid var(--hair); border-radius: 3px; }
body:has(.pv2page) .loc-stats .stat-num { color: var(--gold-soft); }
body:has(.pv2page) .loc-content-card,
body:has(.pv2page) .loc-sidebar-card { background: var(--panel-solid); border: 1px solid var(--hair2); border-radius: 3px; box-shadow: none; }
body:has(.pv2page) .loc-content-card h2 { color: var(--text); }
body:has(.pv2page) .loc-content-card p { color: var(--muted); }
body:has(.pv2page) .loc-sidebar-card .card-body li { border-bottom-color: var(--hair2); color: var(--muted); }
body:has(.pv2page) .loc-neighborhoods .hood-item { color: var(--muted); }
body:has(.pv2page) .loc-detail-hero .breadcrumb-item a { color: var(--dim); }
body:has(.pv2page) .loc-detail-hero .breadcrumb-item.active { color: var(--muted); }

/* ---- legal pages ---- */
body:has(.pv2page) .legal-container { background: var(--panel-solid); border: 1px solid var(--hair2); border-radius: 3px; box-shadow: none; }
body:has(.pv2page) .legal-header { border-bottom: 1px solid var(--hair); }
body:has(.pv2page) .legal-header h1 { color: var(--text); }
body:has(.pv2page) .legal-header p { color: var(--dim); }
body:has(.pv2page) .legal-content { color: var(--muted); }
body:has(.pv2page) .legal-content h2 { color: var(--gold-soft); }
body:has(.pv2page) .contact-box { background: var(--panel); border-left: 3px solid var(--gold); }
body:has(.pv2page) .contact-box h3 { color: var(--text); }
body:has(.pv2page) .contact-box a { color: var(--gold-soft); }

/* ---- blog ---- */
body:has(.pv2page) .blog-breadcrumb a { color: var(--gold-soft); }
body:has(.pv2page) .blog-breadcrumb li, body:has(.pv2page) .blog-breadcrumb span { color: var(--dim); }
body:has(.pv2page) .blog-hero input[type="text"],
body:has(.pv2page) .blog-hero input[type="search"] {
  background: rgba(var(--bg-rgb), .6); border: 1px solid var(--hair2); border-radius: 2px;
  color: var(--text); padding: .45rem .8rem;
}
body:has(.pv2page) .blog-hero button[type="submit"] {
  background: var(--foil); border: 1px solid var(--hair); border-radius: 2px; color: #141208; padding: .45rem .9rem;
}
body:has(.pv2page) .blog-toc { background: var(--panel); border: 1px solid var(--hair2); border-radius: 3px; }
body:has(.pv2page) .blog-toc h6 { color: var(--gold-soft); }
body:has(.pv2page) .blog-toc ul li a { color: var(--muted); }
body:has(.pv2page) .blog-toc ul li a:hover { color: var(--gold-soft); }
body:has(.pv2page) .blog-brand-box { background: var(--panel-solid); border: 1px solid var(--hair2); }
body:has(.pv2page) .blog-card .text-dark,
body:has(.pv2page) .related-posts .text-dark { color: var(--text) !important; }
body:has(.pv2page) .blog-card .text-dark:hover,
body:has(.pv2page) .related-posts .text-dark:hover { color: var(--gold-soft) !important; }
body:has(.pv2page) .reading-time-badge { color: var(--muted) !important; }
body:has(.pv2page) .blog-content,
body:has(.pv2page) .blog-content p,
body:has(.pv2page) .blog-content li { color: var(--muted); }
body:has(.pv2page) .blog-content h2, body:has(.pv2page) .blog-content h3 { color: var(--text); }
body:has(.pv2page) .blog-content a { color: var(--gold-soft); }
body:has(.pv2page) .blog-content a:hover { color: var(--gold); }
body:has(.pv2page) .blog-content blockquote {
  background: var(--panel); border-left: 3px solid var(--gold); color: var(--muted);
}
body:has(.pv2page) .blog-content table { color: var(--muted); }
body:has(.pv2page) .blog-content th,
body:has(.pv2page) .blog-content td { border-color: var(--hair2); }
body:has(.pv2page) .blog-prev-next a {
  background: var(--panel-solid); border-color: var(--hair2); color: var(--text);
}
body:has(.pv2page) .blog-prev-next a:hover {
  background: rgba(216, 188, 122, .08); border-color: var(--gold); color: var(--gold-soft);
}
body:has(.pv2page) .blog-prev-next .nav-label { color: var(--muted); }
body:has(.pv2page) .pagination .page-link {
  background: var(--panel-solid); border-color: var(--hair2); color: var(--muted);
}
body:has(.pv2page) .pagination a.page-link:hover,
body:has(.pv2page) .pagination a.page-link:focus {
  background: rgba(216, 188, 122, .08); border-color: var(--gold); color: var(--gold-soft); box-shadow: none;
}
body:has(.pv2page) .pagination .page-item.active .page-link {
  background: var(--foil); border-color: var(--gold); color: #141208;
}
body:has(.pv2page) .pagination .page-item.disabled .page-link {
  background: var(--panel); border-color: var(--hair2); color: var(--muted);
}
body:has(.pv2page) .repost-attribution { background: var(--panel); border-left: 3px solid var(--gold); color: var(--muted); }

/* ---- forms (contact) ---- */
body:has(.pv2page) .form-control,
body:has(.pv2page) .form-select,
body:has(.pv2page) textarea.form-control {
  background: rgba(var(--bg-rgb), .6);
  border: 1px solid var(--hair2);
  border-radius: 2px;
  color: var(--text);
}
body:has(.pv2page) .form-control:focus,
body:has(.pv2page) .form-select:focus { background: rgba(var(--bg-rgb), .8); border-color: var(--gold); box-shadow: 0 0 0 .2rem rgba(216, 188, 122, .15); color: var(--text); }
body:has(.pv2page) .form-control::placeholder { color: var(--dim); }
body:has(.pv2page) .form-label { color: var(--muted); font-family: 'IBM Plex Mono', monospace; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; }

/* ---- the shared anon nav band ---- */
.pv2nav {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 18px 48px; border-bottom: 1px solid var(--hair2);
  background: rgba(var(--bg-rgb), .5); backdrop-filter: blur(6px);
  position: relative; z-index: 5;
}
.pv2nav .pv2brand { display: flex; align-items: center; gap: 14px; color: var(--text); text-decoration: none; }
.pv2nav .pv2brand:hover { color: var(--gold-soft); }
.pv2nav .pv2brand img { height: 36px; width: auto; filter: saturate(.85); }
.pv2nav .pv2brand span { font-size: 14px; letter-spacing: .32em; font-weight: 600; }
.pv2nav .pv2links { display: flex; align-items: center; font-family: 'IBM Plex Mono', monospace; font-size: 10.5px; letter-spacing: .2em; }
.pv2nav .pv2links a { padding: 12px 16px; color: var(--muted); text-decoration: none; }
.pv2nav .pv2links a:hover { color: var(--gold-soft); }
.pv2nav .pv2links a.pv2reg { margin-left: 14px; padding: 12px 22px; background: var(--foil); color: #141208; font-weight: 600; border-radius: 1px; }
.pv2nav .pv2links a.pv2reg:hover { color: #141208; filter: brightness(1.06); }
@media (max-width: 1100px) { .pv2nav .pv2links a:not(.pv2reg):not(.pv2login) { display: none; } .pv2nav { padding: 12px 20px; } }
@media (max-width: 480px) { .pv2nav .pv2links a.pv2login { display: none; } .pv2nav .pv2brand span { letter-spacing: .18em; font-size: 12.5px; } }

/* ---- base footer reskin (markup untouched — colors only) ---- */
body:has(.pv2page) footer.footer,
body:has(.pv2page) .footer-main { background: var(--bg); color: var(--muted); border-top: 1px solid var(--hair2); }
body:has(.pv2page) footer.footer h2,
body:has(.pv2page) footer.footer h3,
body:has(.pv2page) footer.footer .h5 {
  color: var(--gold-soft); font-family: 'IBM Plex Mono', monospace;
  font-size: .8rem; letter-spacing: .22em; text-transform: uppercase;
}
body:has(.pv2page) footer.footer p { color: var(--dim); }
body:has(.pv2page) footer.footer a { color: var(--muted); text-decoration: none; }
body:has(.pv2page) footer.footer a:hover { color: var(--gold-soft); }
body:has(.pv2page) footer.footer i { color: var(--gold); }
body:has(.pv2page) .footer-bottom { background: var(--bg); border-top: 1px solid var(--hair2); color: var(--dim); }

/* ---- accordions (FAQ) ---- */
body:has(.pv2page) .accordion-item {
  background: var(--panel); border: 1px solid var(--hair2) !important; border-radius: 3px; overflow: hidden;
}
body:has(.pv2page) .accordion-button {
  background: rgba(var(--bg-rgb), .5); color: var(--text); box-shadow: none;
}
body:has(.pv2page) .accordion-button:not(.collapsed) { background: rgba(var(--bg-rgb), .75); color: var(--gold-soft); box-shadow: inset 0 -1px 0 var(--hair); }
body:has(.pv2page) .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(216, 188, 122, .15); border-color: var(--gold); }
body:has(.pv2page) .accordion-button::after { filter: invert(1) sepia(1) saturate(3) hue-rotate(5deg) brightness(1.1); }
body:has(.pv2page) .accordion-body { background: transparent; color: var(--muted); }
body:has(.pv2page) .text-info { color: var(--gold) !important; }

/* ---- alerts ---- */
body:has(.pv2page) .alert-info, body:has(.pv2page) .alert {
  background: var(--panel); border: 1px solid var(--hair2); color: var(--muted); border-radius: 3px;
}
body:has(.pv2page) .alert a { color: var(--gold-soft); }

/* ---- modals (gallery lightbox) ---- */
body:has(.pv2page) .modal-content { background: var(--panel-solid); border: 1px solid var(--hair2); color: var(--text); }
body:has(.pv2page) .modal-header, body:has(.pv2page) .modal-footer { border-color: var(--hair2); }
body:has(.pv2page) .btn-close { filter: invert(1) grayscale(1); }

/* ---- ticker hairline to match ---- */
body:has(.pv2page) .commodity-ticker { border-bottom: 1px solid var(--hair); position: relative; z-index: 2; }

/* ---- auth pages: login split panel ---- */
body:has(.pv2page) .login-wrapper { box-shadow: none; border: 1px solid var(--hair2); border-radius: 3px; }
body:has(.pv2page) .login-form-side { background: var(--panel-solid); }
body:has(.pv2page) .login-form-side h4 { color: var(--gold-soft); }
body:has(.pv2page) .login-form-side .btn-primary {
  background: var(--foil); border: 1px solid var(--hair); color: #141208;
  font-family: 'IBM Plex Mono', monospace; font-size: .8rem; letter-spacing: .18em;
  text-transform: uppercase; font-weight: 600; border-radius: 2px;
}
body:has(.pv2page) .login-form-side .btn-primary:hover { filter: brightness(1.06); color: #141208; }
body:has(.pv2page) .login-form-side .btn-outline-primary { color: var(--gold-soft); border-color: var(--hair); }
body:has(.pv2page) .btn-secondary { background: rgba(var(--bg-rgb), .5); border: 1px solid var(--hair2); color: var(--muted); border-radius: 2px; }
body:has(.pv2page) .list-group-item { background: var(--panel); border-color: var(--hair2); color: var(--muted); }
body:has(.pv2page) .list-group-item:hover { background: rgba(216, 188, 122, .08); color: var(--gold-soft); }

/* ---- auth pages: registration wizard ---- */
body:has(.pv2page) .card-header.bg-primary { background: var(--foil) !important; color: #141208 !important; border-bottom: 1px solid var(--hair); }
body:has(.pv2page) .card-header.bg-primary h4, body:has(.pv2page) .card-header.bg-primary p { color: #141208; font-family: 'Archivo', sans-serif; letter-spacing: 0; text-transform: none; }
body:has(.pv2page) .step-wizard::before { background: var(--hair2); }
body:has(.pv2page) .step-circle { background: var(--panel-solid); border-color: var(--hair2); color: var(--muted); }
body:has(.pv2page) .step-item.active .step-circle { background: var(--gold); border-color: var(--gold); color: #141208; }
body:has(.pv2page) .step-item.completed .step-circle { background: rgba(127, 182, 155, .25); border-color: var(--up); color: var(--up); }
body:has(.pv2page) .step-label { color: var(--dim); }
body:has(.pv2page) .step-item.active .step-label { color: var(--gold-soft); }
body:has(.pv2page) .role-card { background: var(--panel); border-color: var(--hair2); color: var(--muted); }
body:has(.pv2page) .role-card:hover { border-color: var(--gold); }
body:has(.pv2page) .role-card.selected { border-color: var(--gold); background: rgba(216, 188, 122, .08); }
body:has(.pv2page) .role-title { color: var(--text); }
body:has(.pv2page) .password-requirements { background: var(--panel); border: 1px solid var(--hair2); color: var(--muted); }

/* ---- reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  body:has(.pv2page) .btn-warning { transition: none; }
}
