/* article-specific rules only — base template in article-base.css */

/* CALLOUTS */
.callout { background: var(--s2); border-left: 3px solid var(--accent); border-radius: 0 var(--r) var(--r) 0; padding: 1.2rem 1.5rem; margin: 2rem 0 }
.callout p { margin: 0; font-size: 0.95rem !important; color: var(--ink) !important; line-height: 1.7 }
.callout-label { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent); font-weight: 500; margin-bottom: 0.5rem }
.callout-dark { background: var(--navy); border-left: 3px solid var(--accent); border-radius: 0 var(--r) var(--r) 0; padding: 1.4rem 1.5rem; margin: 2rem 0 }
.callout-dark .callout-label { color: rgba(232,86,42,0.85) }
.callout-dark p { margin: 0; font-size: 0.95rem !important; color: rgba(255,255,255,0.72) !important; line-height: 1.7 }

/* PULL QUOTE (top/bottom border style) */
.pull-quote { border-top: 2px solid var(--ink); border-bottom: 1px solid var(--border); padding: 1.8rem 0; margin: 2.5rem 0 }
.pull-quote p { font-family: var(--serif); font-size: 1.3rem !important; line-height: 1.4 !important; color: var(--ink) !important; margin: 0 !important; font-style: italic }

/* STACK DIAGRAM */
.stack { background: var(--s2); border-radius: var(--rl); padding: 2rem; margin: 2rem 0 }
.stack-title { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink4); margin-bottom: 1.5rem }
.stack-layers { display: flex; flex-direction: column; gap: 0.5rem }
.stack-layer { border-radius: var(--r); padding: 0.9rem 1.2rem; display: flex; align-items: center; gap: 1rem }
.stack-layer-label { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink4); width: 110px; flex-shrink: 0 }
.stack-layer-content { font-size: 0.88rem; color: var(--ink); font-weight: 500 }
.stack-layer-sub { font-size: 0.78rem; color: var(--ink3); margin-left: auto }
.layer-ui { background: rgba(232,86,42,0.08); border: 1px solid rgba(232,86,42,0.15) }
.layer-bi { background: rgba(20,32,59,0.06); border: 1px solid rgba(20,32,59,0.12) }
.layer-wh { background: rgba(34,197,94,0.06); border: 1px solid rgba(34,197,94,0.12) }
.layer-oltp { background: var(--s3); border: 1px solid var(--border) }
.stack-arrow { text-align: center; font-size: 0.8rem; color: var(--ink4); padding: 0.1rem 0 }

/* STAT ROW (navy box style — overrides base .stat-label for this page) */
.stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 2rem 0 }
.stat-box { background: var(--navy); border-radius: var(--rl); padding: 1.5rem 1.2rem; text-align: center }
.stat-num { font-family: var(--serif); font-size: 1.8rem; color: #fff; line-height: 1; margin-bottom: 0.4rem }
.stat-label { font-size: 0.75rem; color: rgba(255,255,255,0.45); line-height: 1.4 }

/* ACCESS TABLE */
.access-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.5rem 0 }
.access-card { border: 1px solid var(--border); border-radius: var(--rl); padding: 1.3rem }
.access-role { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent); margin-bottom: 0.5rem }
.access-title { font-size: 0.95rem; color: var(--ink); font-weight: 500; margin-bottom: 0.4rem }
.access-desc { font-size: 0.82rem; color: var(--ink3); line-height: 1.55 }

/* DELIVERY MODES */
.delivery-row { display: flex; flex-direction: column; gap: 0.75rem; margin: 1.5rem 0 }
.delivery-item { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem 1.2rem; border: 1px solid var(--border); border-radius: var(--r) }
.delivery-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 0.1rem }
.delivery-label { font-size: 0.88rem; color: var(--ink); font-weight: 500; margin-bottom: 0.2rem }
.delivery-desc { font-size: 0.82rem; color: var(--ink3); line-height: 1.5 }

@media (max-width: 700px) {
  .stat-row, .access-grid { grid-template-columns: 1fr }
  .stack-layer { flex-wrap: wrap }
  .stack-layer-sub { margin-left: 0; margin-top: 0.2rem }
}
