/* ==========================================================================
   PT Business Directory — Dark Theme
   Deep charcoal surfaces, high contrast, sleek premium feel.
   Applied via .ptvd-theme-dark wrapper class.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Variables
   -------------------------------------------------------------------------- */

.ptvd-theme-dark,
.ptvd-theme-dark .pt-bd-directory-wrap,
.ptvd-theme-dark .pt-bd-modal,
.ptvd-theme-dark .pt-bd-auth-wrap {
    /* Colors */
    --pt-bd-primary:         #e0e0e0;
    --pt-bd-primary-dk:      #f5f5f5;
    --pt-bd-accent:          #aaaaaa;
    --pt-bd-featured:        #cccccc;
    --pt-bd-success:         #bbbbbb;
    --pt-bd-error:           #dddddd;
    --pt-bd-warning:         #cccccc;

    /* Text */
    --pt-bd-text:            #eeeeee;
    --pt-bd-text-muted:      #888888;
    --pt-bd-text-inverse:    #111111;

    /* Surfaces */
    --pt-bd-bg:              #111111;
    --pt-bd-card-bg:         #1e1e1e;
    --pt-bd-input-bg:        #1e1e1e;
    --pt-bd-overlay-bg:      rgba(0, 0, 0, 0.70);

    /* Borders */
    --pt-bd-border:          #333333;
    --pt-bd-border-focus:    #888888;

    /* Shadows */
    --pt-bd-shadow:          0 2px 8px rgba(0,0,0,0.40);
    --pt-bd-shadow-hover:    0 8px 24px rgba(0,0,0,0.60);
    --pt-bd-shadow-card:     0 1px 4px rgba(0,0,0,0.35);

    /* Radii & transitions */
    --pt-bd-radius:          10px;
    --pt-bd-radius-sm:       6px;
    --pt-bd-transition:      0.18s ease;

    /* Button tokens */
    --pt-bd-btn-primary-bg:      #e0e0e0;
    --pt-bd-btn-primary-text:    #111111;
    --pt-bd-btn-primary-hover:   #cccccc;
    --pt-bd-btn-secondary-bg:    #1e1e1e;
    --pt-bd-btn-secondary-text:  #cccccc;
    --pt-bd-btn-secondary-hover: #333333;
    --pt-bd-btn-outline-border:  #555555;
    --pt-bd-btn-outline-text:    #cccccc;
    --pt-bd-btn-outline-hover:   #1e1e1e;

    /* Badges */
    --pt-bd-badge-featured-bg:   rgba(255,255,255,0.10);
    --pt-bd-badge-featured-text: #cccccc;
    --pt-bd-badge-verified-bg:   rgba(255,255,255,0.08);
    --pt-bd-badge-verified-text: #bbbbbb;
    --pt-bd-badge-claimed-bg:    rgba(255,255,255,0.08);
    --pt-bd-badge-claimed-text:  #aaaaaa;
    --pt-bd-cat-pill-bg:         #1e1e1e;
    --pt-bd-cat-pill-text:       #888888;
    --pt-bd-cat-pill-border:     #333333;

    /* Controls */
    --pt-bd-select-bg:       #1e1e1e;
    --pt-bd-select-text:     #eeeeee;
}

/* --------------------------------------------------------------------------
   Page background (when plugin is the whole page e.g. auth pages)
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-auth-wrap.pt-bd-dark,
.ptvd-theme-dark.pt-bd-auth-wrap.pt-bd-dark {
    background: #111111;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-link-btn {
    color: #111111;
}

.ptvd-theme-dark .pt-bd-link-btn:hover {
    color: #111111;
}

/* --------------------------------------------------------------------------
   Cards
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-card {
    background: var(--pt-bd-card-bg);
    border: 1px solid var(--pt-bd-border);
    box-shadow: var(--pt-bd-shadow-card);
}

.ptvd-theme-dark .pt-bd-card:hover,
.ptvd-theme-dark .pt-bd-card:focus-within {
    box-shadow: var(--pt-bd-shadow-hover);
    border-color: #555555;
    transform: translateY(-1px);
}

.ptvd-theme-dark .pt-bd-card--featured {
    border-color: rgba(255,255,255,0.25);
    box-shadow: 0 0 0 1px rgba(255,255,255,0.10), var(--pt-bd-shadow-card);
}

.ptvd-theme-dark .pt-bd-card--featured:hover {
    box-shadow: 0 0 0 1px rgba(255,255,255,0.20), var(--pt-bd-shadow-hover);
}

/* --------------------------------------------------------------------------
   Controls bar
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-controls {
    background: #1e1e1e;
    border-color: #333333;
}

.ptvd-theme-dark .pt-bd-search-input,
.ptvd-theme-dark .pt-bd-filter-input,
.ptvd-theme-dark .pt-bd-select {
    background: #111111;
    color: #eeeeee;
    border-color: #333333;
}

.ptvd-theme-dark .pt-bd-search-input::placeholder,
.ptvd-theme-dark .pt-bd-filter-input::placeholder {
    color: #555555;
}

.ptvd-theme-dark .pt-bd-search-input:focus,
.ptvd-theme-dark .pt-bd-filter-input:focus,
.ptvd-theme-dark .pt-bd-select:focus {
    border-color: #888888;
    box-shadow: 0 0 0 3px rgba(255,255,255,0.10);
}

.ptvd-theme-dark .pt-bd-select option {
    background: #1e1e1e;
    color: #eeeeee;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-btn-primary {
    background: var(--pt-bd-btn-primary-bg);
    color: var(--pt-bd-btn-primary-text);
    border-color: var(--pt-bd-btn-primary-bg);
}

.ptvd-theme-dark .pt-bd-btn-primary:hover {
    background: var(--pt-bd-btn-primary-hover);
    border-color: var(--pt-bd-btn-primary-hover);
}

.ptvd-theme-dark .pt-bd-btn-secondary {
    background: var(--pt-bd-btn-secondary-bg);
    color: var(--pt-bd-btn-secondary-text);
    border: 1px solid var(--pt-bd-border);
}

.ptvd-theme-dark .pt-bd-btn-secondary:hover {
    background: var(--pt-bd-btn-secondary-hover);
    border-color: #555555;
}

.ptvd-theme-dark .pt-bd-btn-outline {
    background: transparent;
    color: var(--pt-bd-btn-outline-text);
    border: 1px solid var(--pt-bd-btn-outline-border);
}

.ptvd-theme-dark .pt-bd-btn-outline:hover {
    background: var(--pt-bd-btn-outline-hover);
    border-color: #888888;
}

.ptvd-theme-dark .pt-bd-btn-featured {
    background: #e0e0e0;
    color: #111111;
    border-color: #e0e0e0;
}

.ptvd-theme-dark .pt-bd-btn-featured:hover {
    background: #cccccc;
    border-color: #cccccc;
}

/* --------------------------------------------------------------------------
   Badges & pills
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-badge--featured {
    background: var(--pt-bd-badge-featured-bg);
    color: var(--pt-bd-badge-featured-text);
}

.ptvd-theme-dark .pt-bd-badge--verified {
    background: var(--pt-bd-badge-verified-bg);
    color: var(--pt-bd-badge-verified-text);
}

.ptvd-theme-dark .pt-bd-badge--claimed {
    background: var(--pt-bd-badge-claimed-bg);
    color: var(--pt-bd-badge-claimed-text);
}

.ptvd-theme-dark .pt-bd-cat-pill {
    background: var(--pt-bd-cat-pill-bg);
    color: var(--pt-bd-cat-pill-text);
    border: 1px solid var(--pt-bd-cat-pill-border);
}

/* --------------------------------------------------------------------------
   Modals
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-modal-content {
    background: #1e1e1e;
    border: 1px solid #333333;
    box-shadow: 0 24px 80px rgba(0,0,0,0.70);
}

.ptvd-theme-dark .pt-bd-modal-close {
    color: #888888;
}

.ptvd-theme-dark .pt-bd-modal-close:hover {
    color: #eeeeee;
    background: #333333;
}

/* --------------------------------------------------------------------------
   Single listing
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-single-upsell {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.15);
}

.ptvd-theme-dark .pt-bd-single-upsell h3 {
    color: #cccccc;
}

.ptvd-theme-dark .pt-bd-single-claim {
    border-top: 1px solid #333333;
}

.ptvd-theme-dark .pt-bd-single-details dt {
    color: #666666;
}

.ptvd-theme-dark .pt-bd-single-details dd {
    color: #e0e0e0;
}

.ptvd-theme-dark .pt-bd-single-details a {
    color: #aaaaaa;
}

.ptvd-theme-dark .pt-bd-single-details a:hover {
    color: #cccccc;
}

/* --------------------------------------------------------------------------
   Pagination
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-page-btn {
    background: #1e1e1e;
    color: #cccccc;
    border: 1px solid #333333;
}

.ptvd-theme-dark .pt-bd-page-btn:hover {
    background: #333333;
    border-color: #555555;
    color: #eeeeee;
}

.ptvd-theme-dark .pt-bd-page-btn.active {
    background: #e0e0e0;
    color: #111111;
    border-color: #e0e0e0;
}

/* --------------------------------------------------------------------------
   Forms (auth / claim)
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-auth-card,
.ptvd-theme-dark .pt-bd-register-wrap {
    background: #1e1e1e;
    border: 1px solid #333333;
    box-shadow: 0 4px 24px rgba(0,0,0,0.40);
}

.ptvd-theme-dark input[type="text"],
.ptvd-theme-dark input[type="email"],
.ptvd-theme-dark input[type="password"],
.ptvd-theme-dark input[type="search"],
.ptvd-theme-dark input[type="url"],
.ptvd-theme-dark textarea,
.ptvd-theme-dark select.widefat {
    background: #111111;
    color: #eeeeee;
    border-color: #333333;
}

.ptvd-theme-dark input[type="text"]::placeholder,
.ptvd-theme-dark input[type="email"]::placeholder,
.ptvd-theme-dark input[type="password"]::placeholder,
.ptvd-theme-dark textarea::placeholder {
    color: #555555;
}

/* --------------------------------------------------------------------------
   Logo placeholder
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-card-logo--placeholder {
    background: #333333;
    color: #666666;
    border: 1px solid #555555;
}

/* --------------------------------------------------------------------------
   Card meta icons / text
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-card-meta {
    color: #888888;
}

.ptvd-theme-dark .pt-bd-card-meta a {
    color: #aaaaaa;
}

.ptvd-theme-dark .pt-bd-card-title {
    color: #eeeeee;
}

/* --------------------------------------------------------------------------
   Results summary
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-results-summary {
    color: #666666;
}

/* --------------------------------------------------------------------------
   No results
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-no-results {
    color: #888888;
    background: #1e1e1e;
    border: 1px solid #333333;
}

/* --------------------------------------------------------------------------
   Loading spinner
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-spinner {
    border-color: #333333;
    border-top-color: #888888;
}

/* --------------------------------------------------------------------------
   Alert messages
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-alert--success {
    background: rgba(255,255,255,0.06);
    color: #bbbbbb;
    border-color: rgba(255,255,255,0.15);
}

.ptvd-theme-dark .pt-bd-alert--error {
    background: rgba(255,255,255,0.06);
    color: #dddddd;
    border-color: rgba(255,255,255,0.15);
}

/* --------------------------------------------------------------------------
   Map
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-map-controls {
    background: #1e1e1e;
    border-color: #333333;
}

.ptvd-theme-dark .pt-bd-map-search input,
.ptvd-theme-dark .pt-bd-map-filter-group .pt-bd-select {
    background: #111111;
    color: #eeeeee;
    border-color: #333333;
}

.ptvd-theme-dark .pt-bd-map-status {
    background: #111111;
    color: #888888;
    border-color: #333333;
}

.ptvd-theme-dark .pt-bd-map-canvas {
    border-color: #333333;
    background: #111111;
}

.ptvd-theme-dark .pt-bd-map-popup-wrap .leaflet-popup-content-wrapper {
    background: #1e1e1e;
    border-color: #333333;
}

.ptvd-theme-dark .pt-bd-map-popup-title {
    color: #eeeeee;
}

.ptvd-theme-dark .pt-bd-map-popup-loc {
    color: #888888;
}

.ptvd-theme-dark .pt-bd-map-popup-website a {
    color: #aaaaaa;
}

/* --------------------------------------------------------------------------
   Ad blocks (if present)
   -------------------------------------------------------------------------- */

.ptvd-theme-dark .pt-bd-ad-block {
    background: #1e1e1e;
    border-color: #333333;
}
