/* assets/css/home.css — トップページ (index.php) 固有スタイル */

/* Site List */
.site-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--space-md);
}

.site-card-wrapper {
    display: block;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.site-card {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    position: relative;
    background: var(--color-bg-card);
    display: flex;
    flex-direction: row;
    min-height: 150px;
    align-items: stretch;
}

.site-card-wrapper:hover .site-card,
.site-card-wrapper:focus-visible .site-card {
    border-color: var(--color-primary);
    transform: translateY(-3px);
    box-shadow: var(--shadow-lift);
}

.site-card__content {
    flex: 1 1 50%;
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
    z-index: 1;
}

.site-card__visual {
    flex: 1 1 40%;
    background-repeat: no-repeat;
    background-position: top right;
    background-size: cover;
    position: relative;
    clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);
}

.site-card__visual::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--card-visual-fade, rgba(255,255,255,0.9)) 0%, rgba(255,255,255,0) 25%);
    clip-path: inherit;
}

.site-card--rps .site-card__visual        { background-image: url('../rps-hero.jpg'); }
.site-card--koehres .site-card__visual    { background-image: url('../koehres-hero.jpg'); }
.site-card--silverhill .site-card__visual { background-image: url('../silverhill-hero.jpg'); }
.site-card--adblps .site-card__visual     { background-image: url('../adblps-hero.jpg'); }

.site-card--pending .site-card__visual {
    background-image: url('../bg.png');
    background-size: contain;
    background-position: center right;
    opacity: 0.6;
}

.site-title {
    color: var(--color-primary);
    font-weight: 700;
    font-size: 1.25em;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.site-title--pending {
    color: var(--color-text-muted);
}

.site-description {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.95em;
}

@keyframes pulse-orange {
    0%, 100% { opacity: 0.85; }
    50%      { opacity: 1; }
}

.latest-update {
    font-size: 0.82em;
    color: var(--color-highlight);
    font-weight: 500;
    animation: pulse-orange 3s infinite ease-in-out;
    white-space: nowrap;
    letter-spacing: 0.01em;
}

.pending-site {
    opacity: 0.7;
    background: var(--color-surface-tint);
    border-style: dashed;
}

/* Update Log */
.update-log {
    background: var(--color-surface-tint);
    padding: 25px;
    border-radius: var(--radius-md);
    border-left: 5px solid var(--color-primary);
}

.log-item {
    display: flex;
    align-items: baseline;
    gap: 15px;
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    transition: background 0.2s ease;
}

.log-item:hover {
    background: var(--color-primary-wash);
}

.log-item a {
    color: inherit;
    text-decoration: none;
}

/* 長い英字トークン（URL等）による横はみ出し防止 */
.log-item > span:last-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

.log-date {
    font-family: var(--font-heading);
    color: var(--color-primary);
    font-weight: 700;
    min-width: 100px;
}

.more-link {
    color: var(--color-primary);
    font-size: 0.9em;
}

/* About & Profile */
.about-note {
    font-size: 0.9em;
    color: var(--color-text-muted);
}

.geoflora-box {
    background: linear-gradient(135deg, rgba(90,175,220,0.08), rgba(115,172,0,0.08));
    border: 1px solid rgba(90,175,220,0.25);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    margin-bottom: 25px;
}

.geoflora-box h3 {
    font-family: var(--font-heading);
    color: var(--color-primary);
    margin: 0 0 10px;
    font-size: 1.1em;
}

.geoflora-box p {
    margin: 0 0 12px;
    font-size: 0.95em;
}

.geoflora-box .geoflora-cta {
    display: inline-block;
    padding: 8px 24px;
    background: linear-gradient(135deg, #5aafdc, #73ac00);
    color: #fff;
    text-decoration: none;
    border-radius: 30px;
    font-weight: bold;
    font-size: 0.9em;
    transition: opacity 0.3s;
}

.geoflora-box .geoflora-cta:hover {
    opacity: 0.85;
}

.profile-box {
    display: flex;
    align-items: center;
    gap: 25px;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    padding: 25px;
    border-radius: var(--radius-md);
    transition: border-color 0.2s ease;
}

.profile-box:hover {
    border-color: var(--color-border-strong);
}

.profile-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--color-primary);
}

.profile-info h3 {
    margin: 0 0 8px;
    font-size: 1.1em;
    color: var(--color-primary);
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.admin-label {
    font-size: 0.7em;
    color: var(--color-text-muted);
    font-weight: normal;
}

.profile-links {
    font-size: 0.9em;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.profile-links a {
    color: var(--color-link);
    text-decoration: none;
    transition: color 0.2s;
}

.profile-links a:hover {
    color: var(--color-primary);
}

/* 検索バナー・ヒットバッジ */
.search-hit-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.85em;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 20px;
    animation: fadeSlideIn 0.3s ease;
}

.search-hit-badge.has-hits {
    background: var(--badge-hit-bg, #e8f5e9);
    color: var(--badge-hit-text, #2e7d32);
}

.search-hit-badge.no-hits {
    background: var(--badge-miss-bg, #f5f5f5);
    color: var(--color-text-muted);
}

.search-query-banner {
    background: var(--search-banner-bg, linear-gradient(135deg, #e8f5e9, #f1f8e9));
    border: 1px solid var(--search-banner-border, #c8e6c9);
    border-radius: var(--radius-md);
    padding: 14px 20px;
    margin-bottom: var(--space-md);
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.95em;
}

.search-query-banner strong {
    color: var(--color-primary);
}

.search-query-banner .search-icon {
    color: var(--color-primary);
}

.search-query-banner .loading-dots::after {
    content: '';
    animation: dots 1.2s steps(4,end) infinite;
}

@keyframes dots {
    0%  { content: ''; }
    25% { content: '.'; }
    50% { content: '..'; }
    75% { content: '...'; }
}

@keyframes fadeSlideIn {
    from { opacity: 0; transform: translateY(-5px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ダークモード: ライト前提のハードコード面のみ上書き */
@media (prefers-color-scheme: dark-disabled) {
    :root {
        --card-visual-fade: rgba(29, 35, 29, 0.9);
        --badge-hit-bg: rgba(143, 206, 144, 0.16);
        --badge-hit-text: #a5d6a7;
        --badge-miss-bg: rgba(255, 255, 255, 0.06);
        --search-banner-bg: linear-gradient(135deg, rgba(143,206,144,0.10), rgba(143,206,144,0.05));
        --search-banner-border: rgba(143, 206, 144, 0.25);
    }
    .geoflora-box {
        background: linear-gradient(135deg, rgba(90,175,220,0.12), rgba(115,172,0,0.12));
        border-color: rgba(90,175,220,0.3);
    }
}

/* レスポンシブ */
@media (max-width: 768px) {
    .site-title { font-size: 1em; }
    .site-description { font-size: 0.8em; }
    .site-title .fa-seedling { display: none; }
}

@media (max-width: 600px) {
    .pt-v2 .container { padding: 30px 20px; }
    .pt-v2 .site-header { gap: 15px; }
    .pt-v2 .site-header .logo-icon { width: 210px; height: auto; }
    .profile-box { flex-direction: column; text-align: center; }
    .site-title {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }
    .update-log { font-size: 0.85rem; }
}
