/* sitemap.css - connected tree matching askenact.com:
   a featured Home node, a connector bus, then one column per top-level
   section with its children hanging beneath. */
.sitemap-section { padding: 56px 0 72px; }
.sitemap-section h1 { margin-bottom: 40px; }

.sitemap-tree { display: grid; justify-items: center; }

/* node card */
.sitemap-node {
  display: flex; align-items: center; justify-content: center; text-align: center;
  width: 100%; min-height: 64px; padding: 14px 16px;
  border: 1px solid var(--line); border-top: 3px solid var(--bright-teal); border-radius: var(--radius);
  background: var(--surface); color: var(--ink);
  font-family: var(--serif); font-weight: 700; line-height: 1.2; text-decoration: none;
  box-shadow: var(--shadow);
  transition: transform .2s var(--ease-out), border-color .2s var(--ease-out), color .2s var(--ease-out), box-shadow .2s var(--ease-out);
}
.sitemap-node:hover, .sitemap-node:focus-visible {
  transform: translateY(-3px); border-top-color: var(--coral); color: var(--coral);
}

/* Home - featured, coral top accent */
.sitemap-node-home { width: min(100%, 380px); min-height: 76px; border-top-color: var(--coral); font-size: 1.5rem; }

/* connector lines (2px teal) */
.sitemap-connector-root { width: 2px; height: 32px; background: rgba(0, 129, 167, .7); }

/* branch columns + horizontal bus */
.sitemap-primary-grid {
  position: relative; display: grid; width: 100%;
  grid-template-columns: repeat(6, 1fr); gap: 30px 16px; padding-top: 30px;
}
.sitemap-primary-grid::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: rgba(0, 129, 167, .7);
}
.sitemap-branch { position: relative; display: grid; gap: 12px; align-content: start; }
.sitemap-branch::before {
  content: ""; position: absolute; top: -30px; left: 50%; width: 2px; height: 30px;
  background: rgba(0, 129, 167, .7); transform: translateX(-50%);
}
.sitemap-child-list { display: grid; gap: 12px; }
.sitemap-node-child { min-height: 56px; font-size: .95rem; }

@media (max-width: 880px) {
  .sitemap-tree { gap: 20px; }
  .sitemap-connector-root { display: none; }
  .sitemap-primary-grid { grid-template-columns: 1fr 1fr; max-width: 560px; padding-top: 0; gap: 16px; }
  .sitemap-primary-grid::before, .sitemap-branch::before { display: none; }
}
@media (max-width: 520px) { .sitemap-primary-grid { grid-template-columns: 1fr; } }
