/* 
 * Wire Solved Layout Styles
 * Grid system and page structure
 */

/* ========================================
   Base Reset & Box Sizing
   ======================================== */

   * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }
  
  /* ========================================
     Layout Container
     ======================================== */
  
  .container {
    max-width: 700px;
    margin: 0 auto;
    padding: 0 var(--space-sm);
  }
  
  @media (min-width: 768px) {
    .container {
      padding: 0 var(--space-md);
    }
  }
  
  /* ========================================
     Header
     ======================================== */
  
  header {
    text-align: center;
    padding: var(--space-lg) 0;
  }
  
  .logo {
    max-width: 200px;
    height: auto;
    margin-bottom: var(--space-sm);
  }
  
  .tagline {
    font-size: 1.1em;
    color: var(--color-text-secondary);
    margin: 0;
  }
  
  /* ========================================
     Main Content
     ======================================== */
  
  main {
    min-height: 60vh;
  }
  
  /* ========================================
     Footer
     ======================================== */
  
  footer {
    text-align: center;
    padding: var(--space-lg) 0;
    margin-top: var(--space-xl);
    color: var(--color-text-secondary);
  }
  
  footer p {
    margin: 0;
    font-size: var(--font-size-small);
  }
  
  /* ========================================
     Responsive Grid
     ======================================== */
  
  .grid {
    display: grid;
    gap: var(--space-md);
  }
  
  .grid-2-col {
    grid-template-columns: 1fr;
  }
  
  @media (min-width: 768px) {
    .grid-2-col {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  
  /* ========================================
     Responsive Utilities
     ======================================== */
  
  @media (max-width: 600px) {
    :root {
      --font-size-h1: 1.75rem; /* 28px on mobile */
      --font-size-h2: 1.25rem; /* 20px on mobile */
    }
    
    .card {
      padding: var(--space-sm);
    }
  }

/* ========================================
   Learning Article Styles
   ======================================== */

   .learn-article {
    max-width: 750px;
    margin: 0 auto;
    padding: var(--space-xl) var(--space-sm);
  }
  
  .learn-article h1 {
    font-size: 2.25rem;
    line-height: 1.2;
    margin-bottom: var(--space-md);
    color: var(--color-text-primary);
    font-weight: var(--font-weight-bold);
  }
  
  .article-meta {
    color: var(--color-text-secondary);
    font-size: var(--font-size-small);
    margin-bottom: var(--space-xl);
    padding-bottom: var(--space-md);
    border-bottom: 2px solid var(--color-border-light);
  }
  
  .article-content {
    line-height: 1.7;
    color: var(--color-text-primary);
  }
  
  /* Headings in article */
  .article-content h2 {
    font-size: 1.75rem;
    margin-top: var(--space-xl);
    margin-bottom: var(--space-md);
    padding-top: var(--space-md);
    color: var(--color-primary-dark);
    font-weight: var(--font-weight-bold);
    border-top: 1px solid var(--color-border-light);
  }
  
  .article-content h2:first-of-type {
    border-top: none;
    padding-top: 0;
  }
  
  .article-content h3 {
    font-size: 1.35rem;
    margin-top: var(--space-lg);
    margin-bottom: var(--space-sm);
    color: var(--color-text-primary);
    font-weight: var(--font-weight-bold);
  }
  
  .article-content h4 {
    font-size: 1.1rem;
    margin-top: var(--space-md);
    margin-bottom: var(--space-sm);
    color: var(--color-primary-dark);
    font-weight: var(--font-weight-medium);
  }
  
  /* Paragraphs */
  .article-content p {
    margin-bottom: var(--space-md);
    font-size: 1.05rem;
    line-height: 1.7;
  }
  
  /* Lists */
  .article-content ul,
  .article-content ol {
    margin: var(--space-md) 0 var(--space-lg) var(--space-md);
    padding-left: var(--space-md);
  }
  
  .article-content li {
    margin-bottom: var(--space-sm);
    line-height: 1.6;
    font-size: 1.05rem;
  }
  
  .article-content li::marker {
    color: var(--color-primary);
  }
  
  /* Nested lists */
  .article-content ul ul,
  .article-content ol ol {
    margin-top: var(--space-xs);
    margin-bottom: var(--space-xs);
  }
  
  /* Emphasis */
  .article-content strong {
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
  }
  
  .article-content em {
    font-style: italic;
    color: var(--color-text-primary);
  }
  
  /* Code */
  .article-content code {
    background: var(--color-bg-light);
    padding: 3px 8px;
    border-radius: 4px;
    font-family: 'Courier New', 'Consolas', monospace;
    font-size: 0.9em;
    color: var(--color-accent);
    border: 1px solid var(--color-border-light);
  }
  
  .article-content pre {
    background: var(--color-bg-light);
    padding: var(--space-md);
    border-radius: var(--radius-sm);
    overflow-x: auto;
    margin: var(--space-md) 0;
    border: 1px solid var(--color-border);
  }
  
  .article-content pre code {
    background: none;
    padding: 0;
    border: none;
    color: var(--color-text-primary);
  }
  
  /* Blockquotes */
  .article-content blockquote {
    margin: var(--space-lg) 0;
    padding: var(--space-md) var(--space-lg);
    border-left: 4px solid var(--color-primary);
    background: var(--color-bg-light);
    font-style: italic;
    color: var(--color-text-secondary);
  }
  
  .article-content blockquote p {
    margin-bottom: var(--space-sm);
  }
  
  .article-content blockquote p:last-child {
    margin-bottom: 0;
  }
  
  /* Links */
  .article-content a {
    color: var(--color-primary-dark);
    text-decoration: underline;
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-fast);
  }
  
  .article-content a:hover {
    color: var(--color-accent);
  }
  
  /* Horizontal Rule */
  .article-content hr {
    margin: var(--space-xl) 0;
    border: none;
    border-top: 2px solid var(--color-border-light);
  }
  
  /* CTA Box at bottom */
  .cta-box {
    margin-top: var(--space-xl);
    padding: var(--space-xl);
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: white;
    border-radius: var(--radius-lg);
    text-align: center;
    box-shadow: var(--shadow-lg);
  }
  
  .cta-box h3 {
    color: white;
    margin-bottom: var(--space-sm);
    font-size: 1.5rem;
  }
  
  .cta-box p {
    margin-bottom: var(--space-md);
    font-size: 1.05rem;
    opacity: 0.95;
  }
  
  .cta-box .btn {
    background: white;
    color: var(--color-primary-dark);
    padding: var(--space-sm) var(--space-lg);
    font-size: 1.1rem;
    font-weight: var(--font-weight-bold);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  }
  
  .cta-box .btn:hover {
    background: var(--color-bg-light);
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
  }
  
  /* Responsive adjustments */
  @media (max-width: 768px) {
    .learn-article {
      padding: var(--space-lg) var(--space-sm);
    }
  
    .learn-article h1 {
      font-size: 1.75rem;
    }
  
    .article-content h2 {
      font-size: 1.5rem;
    }
  
    .article-content h3 {
      font-size: 1.25rem;
    }
  
    .article-content p,
    .article-content li {
      font-size: 1rem;
    }
  
    .cta-box {
      padding: var(--space-lg);
    }
  
    .cta-box h3 {
      font-size: 1.25rem;
    }
  }
  
  /* Print styles */
  @media print {
    .learn-article {
      max-width: 100%;
    }
  
    .cta-box {
      display: none;
    }
  
    .article-content a {
      color: var(--color-text-primary);
      text-decoration: underline;
    }
  
    .article-content a::after {
      content: " (" attr(href) ")";
      font-size: 0.8em;
      color: var(--color-text-secondary);
    }
  }