/* === g-list — greenfield canonical, slot-contract form === */
/* v3.18.40 / BE-B0 — general-purpose list section. Marker glyph is CSS-driven
   via .ssla-g-list--marker-{value} wrapper class; PHP stays glyph-agnostic. */

/* ── Slot defaults (fallbacks; presets override via Hub) ── */
.ssla-g-list {
  --g-list-bg:                  transparent;
  --g-list-fg:                  var(--shell-h,  #1d1d1b);
  --g-list-eyebrow:             var(--shell-h,  #1d1d1b);
  --g-list-line:                rgba(0, 0, 0, 0.08);
  --g-list-marker-accent:       var(--shell-h,  #1d1d1b);

  --g-list-heading-family:      var(--shell-hf, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif);
  --g-list-heading-size:        clamp(28px, 4vw, 44px);
  --g-list-heading-weight:      700;
  --g-list-text-family:         var(--shell-bf, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif);
  --g-list-text-size:           17px;
  --g-list-text-line-height:    1.55;
  --g-list-detail-size:         15px;
  --g-list-detail-color:        rgba(29, 29, 27, 0.72);
  --g-list-marker-size:         15px;
  --g-list-marker-gap:          16px;
  --g-list-eyebrow-size:        13px;
  --g-list-eyebrow-letter:      0.16em;
  --g-list-section-padding:     80px;
  --g-list-content-max-width:   1200px;
}

/* ── Base layout ── */
.ssla-g-list {
  width: 100%;
  position: relative;
  overflow: hidden;
  background: var(--g-list-bg);
  color:      var(--g-list-fg);
}
.ssla-g-list-inner {
  text-align: var(--ssla-text-align, left);
  max-width: var(--g-list-content-max-width);
  margin: 0 auto;
  padding: var(--g-list-section-padding) 48px;
  position: relative;
  z-index: 1;
}

/* ── Fullbleed ── */
.alignfull .ssla-g-list-inner {
  max-width: 100%;
  padding-left: 48px;
  padding-right: 48px;
}

/* ── Header ── */
.ssla-g-list-header { text-align: center; margin: 0 auto 56px; max-width: 720px; }
.ssla-g-list-eyebrow {
  color:           var(--g-list-eyebrow);
  font-size:       var(--g-list-eyebrow-size);
  letter-spacing:  var(--g-list-eyebrow-letter);
  font-weight:     800;
  text-transform:  uppercase;
  margin:          0 0 20px;
}
.ssla-g-list-heading {
  font-family: var(--g-list-heading-family);
  font-size:   var(--g-list-heading-size);
  font-weight: var(--g-list-heading-weight);
  line-height: 1.15;
  margin:      0;
}

/* ── Items (stacked, default) ── */
.ssla-g-list-items {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 800px;
}
.ssla-g-list-item {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0 var(--g-list-marker-gap);
  padding: 14px 0;
}
.ssla-g-list-item + .ssla-g-list-item {
  border-top: 1px solid var(--g-list-line);
}
.ssla-g-list-marker {
  font-family: var(--g-list-text-family);
  font-size:   var(--g-list-marker-size);
  font-weight: 700;
  line-height: var(--g-list-text-line-height);
  color: var(--g-list-marker-accent);
  min-width: 22px;
  text-align: center;
  user-select: none;
}
.ssla-g-list-body { min-width: 0; }
.ssla-g-list-text {
  font-family: var(--g-list-text-family);
  font-size:   var(--g-list-text-size);
  line-height: var(--g-list-text-line-height);
  margin: 0;
}
.ssla-g-list-detail {
  font-family: var(--g-list-text-family);
  font-size:   var(--g-list-detail-size);
  line-height: var(--g-list-text-line-height);
  color: var(--g-list-detail-color);
  margin: 6px 0 0;
}

/* ── Marker glyphs (CSS-driven per wrapper class) ── */
.ssla-g-list--marker-bullet .ssla-g-list-marker::before {
  content: "\2022"; /* • */
  font-size: 1.4em;
  line-height: 1;
  position: relative;
  top: 0.05em;
}
.ssla-g-list--marker-number .ssla-g-list-item {
  counter-increment: ssla-g-list-counter;
}
.ssla-g-list--marker-number .ssla-g-list-items {
  counter-reset: ssla-g-list-counter;
}
.ssla-g-list--marker-number .ssla-g-list-marker::before {
  content: counter(ssla-g-list-counter) ".";
}
.ssla-g-list--marker-check .ssla-g-list-marker::before {
  content: "\2713"; /* ✓ */
  font-size: 1.05em;
  font-weight: 700;
}
.ssla-g-list--marker-none .ssla-g-list-item {
  grid-template-columns: 1fr;
}
.ssla-g-list--marker-none .ssla-g-list-marker {
  display: none;
}

/* ── Layout: two-column ── */
.ssla-g-list--layout-two-col .ssla-g-list-items {
  max-width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 48px;
}
.ssla-g-list--layout-two-col .ssla-g-list-item + .ssla-g-list-item {
  border-top: 1px solid var(--g-list-line);
}
/* Reset top-border for the row 1 item in the right column */
.ssla-g-list--layout-two-col .ssla-g-list-item:nth-child(2) {
  border-top: none;
}

/* ── Layout: three-column ── */
.ssla-g-list--layout-three-col .ssla-g-list-items {
  max-width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
}
.ssla-g-list--layout-three-col .ssla-g-list-item {
  padding: 0;
  border: none !important;
}

/* ── Tone variants ── */
.ssla-g-list--tone-light {
  --g-list-bg:            #ffffff;
  --g-list-fg:            #1d1d1b;
  --g-list-eyebrow:       #1d1d1b;
  --g-list-line:          rgba(0, 0, 0, 0.08);
  --g-list-marker-accent: #1d1d1b;
  --g-list-detail-color:  rgba(29, 29, 27, 0.72);
}
.ssla-g-list--tone-dark {
  --g-list-bg:            #1a1a1a;
  --g-list-fg:            #ffffff;
  --g-list-eyebrow:       rgba(255, 255, 255, 0.85);
  --g-list-line:          rgba(255, 255, 255, 0.10);
  --g-list-marker-accent: #ffffff;
  --g-list-detail-color:  rgba(255, 255, 255, 0.70);
}
.ssla-g-list--tone-accent {
  --g-list-bg:            var(--preset-accent-bg, #f5f3ef);
  --g-list-fg:            var(--preset-accent-fg, #1d1d1b);
  --g-list-eyebrow:       var(--preset-accent-fg, #1d1d1b);
  --g-list-line:          var(--preset-accent-line, rgba(0, 0, 0, 0.10));
  --g-list-marker-accent: var(--preset-accent-h,  #1d1d1b);
  --g-list-detail-color:  var(--preset-accent-detail, rgba(29, 29, 27, 0.72));
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .ssla-g-list-inner { padding: 48px 24px; }
  .ssla-g-list--layout-two-col .ssla-g-list-items,
  .ssla-g-list--layout-three-col .ssla-g-list-items {
    grid-template-columns: 1fr;
  }
  .ssla-g-list--layout-two-col .ssla-g-list-item:nth-child(2) {
    border-top: 1px solid var(--g-list-line);
  }
}
