/* ========================================
   Legal Pages (Privacy Policy, Terms) Styles
   シンプル・クリーン・読みやすさ最優先
   ======================================== */

/* ========================================
   Legal Page Base
   ======================================== */
.legal-page {
    background: var(--color-white);
}

.legal-main {
    padding-top: calc(80px + var(--spacing-xl));
    padding-bottom: var(--spacing-4xl);
    min-height: 70vh;
}

.legal-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 var(--spacing-lg);
}

/* ========================================
   Legal Page Header
   ======================================== */
.legal-header {
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--color-border);
}

.legal-page-title {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-text-main);
    margin-bottom: var(--spacing-sm);
    line-height: 1.3;
}

.legal-updated {
    font-size: 0.875rem;
    color: var(--color-text-sub);
    margin: 0;
}

/* ========================================
   Legal Content
   ======================================== */
.legal-content {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--color-text-main);
}

.legal-intro {
    margin-bottom: 6px;
    padding: var(--spacing-lg);
    background: var(--color-bg-sub);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-primary);
}

.legal-intro p {
    margin-bottom: 4px;
}

.legal-intro p:last-child {
    margin-bottom: 0;
}

/* ========================================
   Legal Sections
   ======================================== */
.legal-section {
    margin-bottom: 6px;
}

.legal-section-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text-main);
    margin-top: 8px;
    margin-bottom: 4px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--color-border);
}

.legal-section-content {
    color: var(--color-text-main);
}

.legal-section-content p {
    margin-bottom: 4px;
    line-height: 1.8;
}

.legal-section-content p:last-child {
    margin-bottom: 0;
}

/* ========================================
   Lists
   ======================================== */
.legal-list,
.legal-ordered-list {
    margin: 4px 0;
    padding-left: var(--spacing-lg);
}

.legal-list li,
.legal-ordered-list li {
    margin-bottom: 4px;
    line-height: 1.8;
    color: var(--color-text-main);
}

.legal-list {
    list-style: none;
}

.legal-list li {
    position: relative;
    padding-left: var(--spacing-md);
}

.legal-list li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--color-primary);
    font-weight: 700;
    font-size: 1.2rem;
}

.legal-ordered-list {
    list-style: decimal;
}

.legal-ordered-list li {
    padding-left: var(--spacing-xs);
}

/* ========================================
   Contact Info
   ======================================== */
.contact-info {
    padding: var(--spacing-lg);
    background: var(--color-bg-sub);
    border-radius: var(--radius-md);
    margin-top: 4px;
}

.contact-info p {
    margin-bottom: 4px;
    line-height: 1.6;
}

.contact-info p:last-child {
    margin-bottom: 0;
}

.contact-info strong {
    font-weight: 600;
    color: var(--color-text-main);
}

.contact-info a {
    color: var(--color-primary);
    text-decoration: underline;
}

.contact-info a:hover {
    color: var(--color-primary-dark);
}

/* ========================================
   Legal Footer Note
   ======================================== */
.legal-footer-note {
    margin-top: var(--spacing-3xl);
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--color-border);
    text-align: right;
}

.legal-footer-note p {
    font-size: 0.9375rem;
    color: var(--color-text-sub);
    margin: 0;
}

/* ========================================
   Header Adjustments for Legal Pages
   ======================================== */
.legal-page .header-logo a {
    text-decoration: none;
    display: flex;
    flex-direction: column;
}

.legal-page .header-logo a:hover .logo-text {
    color: var(--color-primary-dark);
}

/* ========================================
   Responsive Design
   ======================================== */

/* Tablet */
@media (max-width: 992px) {
    .legal-main {
        padding-top: calc(70px + var(--spacing-lg));
    }
    
    .legal-page-title {
        font-size: 1.75rem;
    }
    
    .legal-section-title {
        font-size: 1.25rem;
    }
}

/* Mobile */
@media (max-width: 640px) {
    .legal-main {
        padding-top: calc(70px + var(--spacing-md));
        padding-bottom: var(--spacing-3xl);
    }
    
    .legal-container {
        padding: 0 var(--spacing-md);
    }
    
    .legal-header {
        margin-bottom: var(--spacing-xl);
    }
    
    .legal-page-title {
        font-size: 1.5rem;
    }
    
    .legal-section-title {
        font-size: 1.125rem;
    }
    
    .legal-content {
        font-size: 0.9375rem;
    }
    
    .legal-intro {
        padding: var(--spacing-md);
    }
    
    .contact-info {
        padding: var(--spacing-md);
    }
    
    .legal-list,
    .legal-ordered-list {
        padding-left: var(--spacing-md);
    }
}