/* ==========================================================================
   GeoDirectory Custom Styles (Archive & Single)
   Based on design_system.md
   ========================================================================== */

/* ==========================================================================
   1. Archive / Listing Page
   ========================================================================== */

/* Search bar styling */
.geodir-search-container {
    background: var(--color-neutral-0);
    border-radius: var(--radius-xl);
    padding: var(--space-4);
    box-shadow: var(--shadow-md);
    margin-bottom: var(--space-8);
    border: var(--border-width) solid var(--color-neutral-200);
}

.geodir-search-container input,
.geodir-search-container select {
    font-family: var(--font-sans);
    font-size: var(--text-base);
    border-radius: var(--radius-md) !important;
    border-color: var(--color-neutral-300) !important;
}

/* Listings Grid */
ul.geodir-category-list-view,
.geodir-listings {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)) !important;
    gap: var(--space-8) !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

/* Remove default Bootstrap columns if they interfere */
ul.geodir-category-list-view>li,
.geodir-listings>.geodir-post {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Card Design */
.geodir-post .card {
    height: 100%;
    border: none !important;
    border-radius: var(--radius-xl) !important;
    background: var(--color-neutral-0) !important;
    box-shadow: var(--shadow-sm) !important;
    transition: transform var(--transition-base), box-shadow var(--transition-base) !important;
    overflow: hidden;
}

.geodir-post .card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-xl) !important;
}

/* Card Image Area */
.geodir-post .card-img-top {
    height: 220px;
    background-color: var(--color-neutral-200);
    /* Placeholder color if no image */
    position: relative;
}

.geodir-post .card-img-top img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-base);
}

.geodir-post .card:hover .card-img-top img {
    transform: scale(1.05);
}

/* Author image hide (not needed for this site) */
.geodir-post .rounded-circle.shadow {
    display: none !important;
}

/* Badges (New, Featured) */
.gd-badge {
    background-color: var(--color-primary-500) !important;
    border-color: var(--color-primary-500) !important;
    color: var(--color-neutral-0) !important;
    border-radius: var(--radius-full) !important;
    padding: var(--space-1) var(--space-3) !important;
    font-size: var(--text-xs) !important;
    font-weight: var(--font-bold) !important;
    letter-spacing: var(--tracking-wide);
    box-shadow: var(--shadow-sm);
}

/* Card Body */
.geodir-post .card-body {
    padding: var(--space-6) !important;
}

.geodir-entry-title {
    margin-top: 0 !important;
    margin-bottom: var(--space-2) !important;
}

.geodir-entry-title a {
    font-family: var(--font-serif);
    font-size: var(--text-lg) !important;
    font-weight: var(--font-bold) !important;
    color: var(--color-neutral-900) !important;
    text-decoration: none;
    transition: color var(--transition-base);
}

.geodir-entry-title a:hover {
    color: var(--color-primary-500) !important;
}

.geodir-field-post_content {
    font-size: var(--text-sm) !important;
    color: var(--color-neutral-600) !important;
    line-height: var(--leading-normal) !important;
    margin-bottom: 0 !important;
}

/* Card Footer */
.geodir-post .card-footer {
    background: var(--color-neutral-0) !important;
    border-top: var(--border-width) solid var(--color-neutral-200) !important;
    padding: var(--space-4) var(--space-6) !important;
}

/* Ratings */
.gd-rating-foreground i {
    color: var(--color-primary-400) !important;
}

/* ==========================================================================
   2. Single Page (Place Details)
   ========================================================================== */

/* Top Hero Section of Single Page */
.geodir-single-header-wrapper {
    margin-top: calc(-1 * var(--space-20));
    /* ヘッダー分上げる */
    position: relative;
    z-index: 1;
}

/* Title box inside single page */
.geodir_post_title {
    font-family: var(--font-serif);
    font-size: var(--text-3xl) !important;
    font-weight: var(--font-bold) !important;
    color: var(--color-neutral-900) !important;
    margin-top: var(--space-8);
    margin-bottom: var(--space-4);
}

/* Content Tabs / Sections */
.geodir-tabs {
    background: var(--color-neutral-0);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: var(--space-8);
    margin-top: var(--space-8);
    border: var(--border-width) solid var(--color-neutral-200);
}

.geodir-tabs .nav-tabs {
    border-bottom: var(--border-width) solid var(--color-neutral-200) !important;
    margin-bottom: var(--space-6) !important;
}

.geodir-tabs .nav-link {
    font-family: var(--font-sans);
    font-weight: var(--font-bold);
    color: var(--color-neutral-600) !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    background: transparent !important;
    padding: var(--space-3) var(--space-4) !important;
    transition: all var(--transition-base);
}

.geodir-tabs .nav-link.active,
.geodir-tabs .nav-link:hover {
    color: var(--color-primary-500) !important;
    border-bottom-color: var(--color-primary-500) !important;
}

/* Sidebar Info Widget */
.geodir-company-info {
    background: var(--color-neutral-50);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    border: var(--border-width) solid var(--color-neutral-200);
    margin-bottom: var(--space-6);
}

.geodir-company-info .geodir-i-title {
    font-weight: var(--font-bold);
    color: var(--color-neutral-900);
    margin-right: var(--space-2);
}

.geodir-company-info .geodir-i-val {
    color: var(--color-neutral-700);
}

/* Buttons in GD */
.geodir-btn,
.btn-primary {
    background: var(--color-primary-500) !important;
    color: var(--color-neutral-0) !important;
    border: none !important;
    border-radius: var(--radius-full) !important;
    padding: var(--space-3) var(--space-6) !important;
    font-weight: var(--font-bold) !important;
    transition: all var(--transition-base) !important;
}

.geodir-btn:hover,
.btn-primary:hover {
    background: var(--color-primary-600) !important;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md) !important;
}