﻿/* =========================================================
   Responsive Comparison Table Pattern
   - Foundation-friendly
   - No CSS Grid
   - No gap property
   - Desktop: div-based table layout
   - Mobile: each data row becomes a bordered card
   - Mobile labels come from data-label attributes
   - Alternating rows inside each mobile card
========================================================= */

.cmp-wrap {
  width: 100%;
  max-width: 100%;
}

/* =========================================================
   DESKTOP: Table Layout
========================================================= */

.cmp-table {
  display: table;
  width: 100%;
  border-collapse: collapse;
}

.cmp-row {
  display: table-row;
}

.cmp-cell {
  display: table-cell;
  padding: 0.875rem 1rem;
  vertical-align: top;
  line-height: 1.4;
  border-top: 1px solid #d9d9d9;
  color: #000;
}

/* Optional: designate first column as feature column */
.cmp-col-feature {
  width: 28%;
}

/* Desktop header row styling */
@media screen and (min-width: 641px) {
  .cmp-header .cmp-cell {
    background-color: #041e42;
    color: #ffffff;
    border-top: none;
  }

  .cmp-header .cmp-cell.large-body {
    font-size: 1.1rem;
  }
}

/* Desktop alternating rows */
.cmp-row:nth-child(odd):not(.cmp-header) .cmp-cell {
  background-color: #ffffff;
}

.cmp-row:nth-child(even):not(.cmp-header) .cmp-cell {
  background-color: #efefef;
}

/* Desktop hover */
.cmp-table .cmp-row:not(.cmp-header):hover .cmp-cell {
  background-color: #eef2f6;
}

/* =========================================================
   MOBILE: Convert Rows into Cards
========================================================= */

@media screen and (max-width: 640px) {

  .cmp-table {
    display: block;
    margin-top: 1rem;
  }

  /* Hide desktop header row */
  .cmp-row.cmp-header {
    display: none !important;
  }

  /* Ensure first column spans full width */
  .cmp-col-feature {
    width: 100% !important;
  }

  /* Each data row becomes a card */
  .cmp-row {
    display: block;
    border: 1px solid #d9d9d9;
    border-radius: 8px;
    overflow: hidden;
    margin: 1.75rem 0;
    background: #ffffff !important;
  }

  .cmp-cell {
    display: block;
    width: 100%;
    padding: 0.95rem 1.1rem;
    border-top: 1px solid #e6e6e6;
    box-sizing: border-box;
    background: #ffffff !important;
  }

  /* Card header (first cell in each row) */
  .cmp-row .cmp-cell:first-child {
    border-top: none;
    background-color: #ffffff !important;
    text-align: center;
    font-size: 1.1rem;
    font-weight: 700;
    padding: 1.25rem 1.1rem 1.1rem;
    border-bottom: 1px solid #e6e6e6;
  }

  /* Optional: ensure header link centers cleanly */
  .cmp-row .cmp-cell:first-child a {
    display: inline-block;
    text-align: center;
  }

  /* Value rows: label + value layout */
  .cmp-row .cmp-cell:not(:first-child) {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    line-height: 1.35;
  }

  /* Mobile labels pulled from data-label attribute */
  .cmp-row .cmp-cell:not(:first-child)::before {
    content: attr(data-label);
    font-weight: 600;
    margin-right: 0.75rem;
  }

  /* Alternating rows inside each card */
  .cmp-row .cmp-cell:nth-child(2),
  .cmp-row .cmp-cell:nth-child(4) {
    background-color: #ffffff !important;
  }

  .cmp-row .cmp-cell:nth-child(3),
  .cmp-row .cmp-cell:nth-child(5) {
    background-color: #efefef !important;
  }

  /* Safety: prevent labels on hidden header rows */
  .cmp-row.cmp-header .cmp-cell::before {
    content: none !important;
  }
}

/* =========================================================
   Accessibility Helper
========================================================= */

.show-for-sr {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
}