/* Trojan Storage — generic Pages + sample-content layout (page.php).
   Page hero + readable prose + the helper blocks the sample pages use
   (.ts-cards, .cta-band, .size-grid, .directory). Built on components.css. */

.ts-page-main { background: #fff; color: var(--text-body); }

/* ---------- Page hero ---------- */
.page-hero {
  background: var(--slate-50); border-bottom: 1px solid var(--border-subtle);
  padding: 44px 0;
}
.page-hero__title {
  font: 800 38px/1.06 var(--font-display); color: var(--text-strong);
  letter-spacing: -.01em; margin: 0;
}
.page-hero__lead { margin: 12px 0 0; font-size: 17px; color: var(--text-body); max-width: 680px; }

.page-body { padding: 48px 0; }

/* ---------- Prose ---------- */
.ts-prose { max-width: 820px; }
.ts-prose > * { max-width: 100%; }
.ts-prose h2 { font: 800 26px/1.15 var(--font-display); color: var(--text-strong); margin: 36px 0 12px; }
.ts-prose h3 { font: 700 19px/1.2 var(--font-display); color: var(--text-strong); margin: 26px 0 8px; }
.ts-prose p { font-size: 16px; line-height: 1.7; margin: 0 0 16px; }
.ts-prose ul, .ts-prose ol { margin: 0 0 16px; padding-left: 22px; }
.ts-prose li { font-size: 16px; line-height: 1.7; margin: 0 0 6px; }
.ts-prose a:not(.btn) { color: var(--text-link); }
.ts-prose > *:first-child { margin-top: 0; }

/* full-width helpers may break out of the prose column */
.ts-prose .ts-cards,
.ts-prose .cta-band,
.ts-prose .size-grid,
.ts-prose .directory { max-width: none; }

/* ---------- Card grids (type index, resources, features) ---------- */
.ts-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 8px 0 24px; }
.ts-cards--2 { grid-template-columns: repeat(2, 1fr); }
.ts-card {
  display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: inherit;
  background: var(--surface-card); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 22px;
  transition: box-shadow var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);
}
a.ts-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.ts-card__ic {
  width: 46px; height: 46px; border-radius: var(--radius-sm); background: var(--red-50); color: var(--brand);
  display: flex; align-items: center; justify-content: center; margin-bottom: 4px;
}
.ts-card__ic svg { width: 24px; height: 24px; }
.ts-card h3 { margin: 0; font: 700 18px/1.2 var(--font-display); color: var(--text-strong); }
.ts-card p { margin: 0; font-size: 14px; color: var(--text-muted); line-height: 1.55; }
.ts-card__more { margin-top: auto; color: var(--brand); font-weight: 700; font-size: 14px; }

/* ---------- CTA band ---------- */
.cta-band {
  margin: 32px 0 8px; padding: 28px; text-align: center;
  background: var(--slate-900); border-radius: var(--radius-lg);
}
.cta-band h2 { color: #fff; margin: 0 0 6px; font: 800 24px/1.15 var(--font-display); }
.cta-band p { color: var(--slate-300); margin: 0 0 16px; font-size: 15px; }
.cta-band .cta-band__btns { display: inline-flex; gap: 10px; flex-wrap: wrap; justify-content: center; }

/* ---------- Size guide ---------- */
.size-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 12px 0 24px; }
.size-card {
  background: var(--surface-card); border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 18px;
}
.size-card__size { font: 800 22px/1 var(--font-display); color: var(--brand); margin-bottom: 4px; }
.size-card__sqft { font-size: 12.5px; color: var(--text-muted); margin-bottom: 10px; }
.size-card__fits { font-size: 13.5px; color: var(--text-body); line-height: 1.5; }

/* ---------- Directory (Find Storage) ---------- */
.directory__group { margin: 0 0 28px; }
.directory__group h2 { font: 800 20px/1.1 var(--font-display); color: var(--text-strong); margin: 0 0 14px; }
.directory__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.directory__empty { color: var(--text-muted); }
.dir-card {
  border: 1px solid var(--border-subtle); border-radius: var(--radius-md); overflow: hidden;
  background: #fff; box-shadow: var(--shadow-sm); display: flex; flex-direction: column;
}
.dir-card__photo { height: 130px; background-size: cover; background-position: center; }
.dir-card__body { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.dir-card__name { color: var(--text-strong); font: 700 15.5px/1.2 var(--font-display); }
.dir-card__loc { font-size: 12.5px; color: var(--text-muted); }
.dir-card__cta { margin-top: 2px; }
.dir-card__cta .btn { width: 100%; }

/* =================================================================== */
@media (max-width: 860px) {
  .page-hero { padding: 28px 0; }
  .page-hero__title { font-size: 28px; }
  .page-body { padding: 28px 0; }
  .ts-cards, .ts-cards--2 { grid-template-columns: 1fr; }
  .size-grid { grid-template-columns: 1fr 1fr; }
  .directory__grid { grid-template-columns: 1fr 1fr; }
}
