/**
 * Task #1513893: Visual Polish — Settlement Pages (Index, Detail, State, Category)
 * Date: 2026-05-11
 *
 * Scope:
 * - /settlements (index/directory listing)
 * - /settlements/[slug] (detail pages)
 * - /settlements/[state] (state pages)
 * - /settlements/category/[category] (category pages)
 *
 * Audit Results:
 * ✓ Contrast: All text meets WCAG AA 4.5:1 (design-system.css enforces this)
 * ✓ Settlement cards: Title, description, deadline, payout all readable
 * ✓ SR Score badges: Visible and properly styled
 * ✓ Detail page: Full settlement info rendered, CTAs prominent
 * ✓ Sticky CTA: Mobile "File Now" button visible (60px offset above Crisp)
 * ✓ Centering: Settlement card grids properly aligned
 * ✓ Typography: Fraunces + DM Sans properly applied
 * ✓ Mobile (375px): Cards stack properly, no horizontal scroll
 * ✓ Desktop (1440px): Proper grid layout, max-width container enforced
 * ✓ Images: AI hero images render, category SVGs display correctly
 * ✓ Pagination: Controls styled and functional
 *
 * This patch reinforces existing styles and fixes any edge cases.
 */

/* ═══════════════════════════════════════════════════════════════════════════════
   SETTLEMENT INDEX PAGE (/settlements) — Cards, Grid, Filters
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Card grid — ensure proper spacing and alignment */
.dir-grid,
.settlement-cards-grid,
.settlements-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  gap: 1.5rem !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 768px) {
  .dir-grid,
  .settlement-cards-grid,
  .settlements-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
}

/* Settlement card — proper padding, typography, contrast */
.settlement-card,
.dir-card,
[class*="settlement"][class*="card"] {
  background: #FFFFFF !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 12px !important;
  padding: 1.5rem !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
  text-decoration: none !important;
  transition: box-shadow 0.2s ease, border-color 0.2s ease !important;
  min-height: auto !important;
}

.settlement-card:hover,
.dir-card:hover,
[class*="settlement"][class*="card"]:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
  border-color: #D1D5DB !important;
}

/* Card title — clear hierarchy */
.settlement-card-title,
.dir-card-title,
[class*="settlement"][class*="title"],
.settlement-card h2,
.settlement-card h3 {
  font-family: 'Fraunces', serif !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: #0A0A0A !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* Card description — readable body text */
.settlement-card-description,
.dir-card-description,
[class*="settlement"][class*="description"],
.settlement-card p {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.95rem !important;
  color: #1F2A37 !important;
  margin: 0 !important;
  line-height: 1.6 !important;
}

/* Card meta — payout, deadline, proof status */
.settlement-card-meta,
.dir-card-meta,
.settlement-meta,
.card-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.75rem !important;
  font-size: 0.9rem !important;
  margin-top: auto !important;
  padding-top: 0.75rem !important;
  border-top: 1px solid #F3F4F6 !important;
}

/* Meta items — proper contrast */
.settlement-meta-item,
.meta-item {
  display: inline-block !important;
  padding: 0.25rem 0.75rem !important;
  background: #F9FAFB !important;
  border-radius: 6px !important;
  color: #4B5563 !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
}

/* SR Score badge — prominent and visible */
.sr-score-badge,
[class*="sr-score"],
.settlement-score {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #00875A !important;
  color: #FFFFFF !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  padding: 0.4rem 0.7rem !important;
  border-radius: 8px !important;
  min-width: 45px !important;
}

/* Payout estimate — large and visible */
.settlement-payout,
.card-payout,
[class*="payout-amount"] {
  font-family: 'Fraunces', serif !important;
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  color: #00875A !important;
  margin: 0 !important;
}

/* Deadline label — urgent styling when applicable */
.settlement-deadline,
.card-deadline,
[class*="deadline"] {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.9rem !important;
  color: #374151 !important;
  font-weight: 600 !important;
}

.settlement-deadline--urgent,
[class*="deadline"][class*="urgent"] {
  color: #DC2626 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SETTLEMENT DETAIL PAGE (/settlements/[slug]) — Hero, CTA, Info
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Detail hero section — proper spacing and alignment */
.detail-hero,
.settlement-detail-hero {
  background: #FFFFFF !important;
  padding: 2rem 1.5rem !important;
  text-align: center !important;
}

@media (max-width: 768px) {
  .detail-hero,
  .settlement-detail-hero {
    padding: 1.5rem 1rem !important;
  }
}

/* Detail page main container — max-width enforcement */
body.page-settlement-detail main,
body.page-settlement-detail .detail-main,
.settlement-detail-main {
  max-width: 1000px !important;
  margin: 0 auto !important;
  padding: 0 1.5rem !important;
}

@media (max-width: 768px) {
  body.page-settlement-detail main,
  body.page-settlement-detail .detail-main,
  .settlement-detail-main {
    padding: 0 1rem !important;
  }
}

/* Detail title — clear hierarchy */
.detail-title,
.settlement-detail-title,
.page-settlement-detail h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(28px, 5vw, 48px) !important;
  font-weight: 800 !important;
  color: #0A0A0A !important;
  margin: 0 0 1rem !important;
  line-height: 1.2 !important;
}

/* Filing CTA — prominent and accessible */
.detail-cta-primary,
.settlement-file-button,
[class*="file-now"],
.btn-file-claim {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  background: #00875A !important;
  color: #FFFFFF !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
  padding: 0.75rem 1.5rem !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  border: none !important;
  cursor: pointer !important;
  transition: background 0.2s ease, transform 0.1s ease !important;
  min-height: 48px !important;
  min-width: 180px !important;
  -webkit-tap-highlight-color: transparent !important;
}

.detail-cta-primary:hover,
.settlement-file-button:hover,
[class*="file-now"]:hover,
.btn-file-claim:hover {
  background: #006B4D !important;
  transform: translateY(-2px) !important;
}

.detail-cta-primary:active,
.settlement-file-button:active,
[class*="file-now"]:active,
.btn-file-claim:active {
  background: #005540 !important;
  transform: translateY(0) !important;
}

/* Detail deadline display — visible and clear */
.detail-deadline,
.settlement-deadline-display,
[class*="deadline-display"] {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: #374151 !important;
  margin: 0.75rem 0 !important;
}

/* Urgency badge — when deadline is near */
.deadline-urgent,
[class*="deadline"][class*="urgent"],
.urgency-badge {
  background: #FEF2F2 !important;
  color: #B91C1C !important;
  border: 1px solid #FECACA !important;
  padding: 0.75rem 1rem !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   STATE & CATEGORY PAGES (/settlements/[state] and /settlements/category/[cat])
   ═══════════════════════════════════════════════════════════════════════════════ */

/* State/category hero section */
.sl-hero,
.sc-hero,
.page-hero-section {
  background: #FFFFFF !important;
  padding: 3rem 1.5rem !important;
  text-align: center !important;
}

@media (max-width: 768px) {
  .sl-hero,
  .sc-hero,
  .page-hero-section {
    padding: 2rem 1rem !important;
  }
}

/* Hero headline */
.sl-h1,
.sc-h1,
.hero-title {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(28px, 5vw, 48px) !important;
  font-weight: 800 !important;
  color: #0A0A0A !important;
  margin: 0 0 1rem !important;
  line-height: 1.2 !important;
}

/* Hero subtitle */
.sl-hero-sub,
.sc-hero-sub,
.hero-subtitle {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 1.1rem !important;
  color: #4B5563 !important;
  margin: 0 0 1.5rem !important;
  line-height: 1.6 !important;
}

/* Hero stats grid */
.sl-hero-stats,
.sc-hero-stats,
.hero-stats {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  gap: 1.5rem !important;
  margin: 2rem 0 !important;
  padding: 0 !important;
}

@media (max-width: 768px) {
  .sl-hero-stats,
  .sc-hero-stats,
  .hero-stats {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
}

/* Stat item */
.stat-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.5rem !important;
}

/* Stat number */
.sl-stat-num,
.sc-stat-num,
.stat-number {
  font-family: 'Fraunces', serif !important;
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  color: #00875A !important;
}

/* Stat label */
.sl-stat-label,
.sc-stat-label,
.stat-label {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.9rem !important;
  color: #6B7280 !important;
  font-weight: 500 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   MOBILE-SPECIFIC FIXES (375px)
   ═══════════════════════════════════════════════════════════════════════════════ */

@media (max-width: 480px) {
  /* Ensure cards stack single-column */
  .dir-grid,
  .settlement-cards-grid,
  .settlements-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  /* Reduce card padding on mobile */
  .settlement-card,
  .dir-card {
    padding: 1rem !important;
  }

  /* Smaller fonts on mobile */
  .settlement-card-title,
  .dir-card-title,
  .settlement-card h2,
  .settlement-card h3 {
    font-size: 1rem !important;
  }

  /* Touch targets — minimum 44x44px */
  .settlement-card,
  .detail-cta-primary,
  .settlement-file-button,
  .btn-file-claim,
  a.settlement-card,
  button.settlement-action {
    min-height: 44px !important;
  }

  /* No horizontal scroll */
  body,
  main,
  .settlement-detail-main,
  .detail-main {
    overflow-x: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Sticky CTA visibility — ensure it doesn't overlap content */
  #sr-mobile-sticky-cta {
    bottom: 60px !important; /* Above Crisp widget */
    z-index: 1040 !important;
  }

  /* Hide mobile sticky CTA if Crisp is not loaded */
  #sr-mobile-sticky-cta[data-crisp-ready="false"] {
    bottom: 20px !important; /* More breathing room if Crisp not present */
  }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   DESKTOP-SPECIFIC FIXES (1440px)
   ═══════════════════════════════════════════════════════════════════════════════ */

@media (min-width: 1024px) {
  /* Grid layout — 3 columns on desktop */
  .dir-grid,
  .settlement-cards-grid,
  .settlements-grid {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 2rem !important;
  }

  /* Content max-width container */
  body.page-settlement-detail main,
  body.page-settlement-detail .detail-main,
  .settlement-detail-main {
    max-width: 1200px !important;
  }

  /* Larger fonts on desktop */
  .settlement-card-title,
  .dir-card-title {
    font-size: 1.2rem !important;
  }

  .detail-title,
  .settlement-detail-title {
    font-size: 2.5rem !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   IMAGE FIXES — Hero images and category icons
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Settlement hero image — ensure it displays */
.detail-cat-banner,
.settlement-hero-image,
[class*="hero-image"] {
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
  display: block !important;
  background: #F3F4F6 !important;
}

/* Category icon — proper sizing */
.detail-cat-icon,
.category-icon,
[class*="category-icon"],
.settlement-category-icon {
  width: 40px !important;
  height: 40px !important;
  display: inline-block !important;
  object-fit: contain !important;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   PAGINATION & CONTROLS
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Pagination container */
.pagination,
.settlement-pagination,
[class*="pagina-controls"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  margin: 2rem 0 !important;
  padding: 1rem !important;
  flex-wrap: wrap !important;
}

/* Pagination button/link */
.pagination a,
.pagination button,
.pagination span,
.settlement-pagination a,
.settlement-pagination button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 40px !important;
  min-height: 40px !important;
  padding: 0.5rem 0.75rem !important;
  background: #F9FAFB !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 6px !important;
  color: #374151 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.pagination a:hover,
.pagination button:hover,
.settlement-pagination a:hover {
  background: #00875A !important;
  color: #FFFFFF !important;
  border-color: #00875A !important;
}

/* Active pagination state */
.pagination .active,
.pagination a.active,
.settlement-pagination .active {
  background: #00875A !important;
  color: #FFFFFF !important;
  border-color: #00875A !important;
  font-weight: 700 !important;
}

/* Disabled pagination state */
.pagination .disabled,
.pagination button:disabled,
.settlement-pagination .disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   ACCESSIBILITY & FINAL POLISH
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Focus states — keyboard navigation */
a:focus,
button:focus,
[role="button"]:focus,
.settlement-card:focus,
.settlement-file-button:focus {
  outline: 3px solid #00875A !important;
  outline-offset: 2px !important;
}

/* Ensure no invisible text */
body.page-settlement-detail,
.dir-page,
.settlements-page {
  color: #1F2A37 !important;
  background: #FFFFFF !important;
}

/* Link underlines for readability */
a[class*="settlement"],
.settlement-detail a,
.settlement-link {
  color: #00875A !important;
  text-decoration: underline !important;
}

a[class*="settlement"]:visited,
.settlement-detail a:visited {
  color: #006B4D !important;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   CENTERING & ALIGNMENT FIXES (from Task #1514296)
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Section headings — centered text */
.section-heading,
.page-heading,
.hero-heading {
  text-align: center !important;
  margin: 0 auto !important;
}

/* Section subheadings — centered and max-width */
.section-subheading,
.hero-subtitle,
.page-subtitle {
  margin: 0 auto !important;
  text-align: center !important;
}

/* Center content in max-width containers */
.container,
.content-container,
main {
  margin: 0 auto !important;
}

/* Force flex/grid centering */
.centered,
[class*="center"],
[class*="align-center"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
