/* Layout additions for generated pages. Brand, typography, shell and colour
   tokens continue to come from the real Adelphos CSS bundles. */
.program-hero { min-height: 520px; }
.compact-brand-card { box-shadow: none; border-radius: 8px; }
.program-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.program-card { min-height: 190px; padding: 24px; border: 1px solid var(--border, rgba(0,0,0,.08)); border-radius: 8px; background: var(--ad-panel, #fff); }
.program-card h3 { margin: 0 0 12px; color: var(--ad-text-1, #222); font-size: 18px; font-weight: 500; }
.program-card p { margin: 0; color: var(--ad-text-3, #555); font-size: 14px; font-weight: 300; line-height: 1.65; }
.program-card:hover { border-color: rgba(21,96,130,.42); background: rgba(21,96,130,.035); }
.gate-panel { padding: 24px; border: 1px solid var(--border, rgba(0,0,0,.08)); border-radius: 8px; background: var(--ad-panel, #fff); }
.gate-panel h3 { margin: 0 0 12px; color: var(--ad-text-1, #222); font-size: 18px; font-weight: 500; }
.gate-panel p, .gate-panel li { color: var(--ad-text-3, #555); font-size: 14px; font-weight: 300; line-height: 1.6; }
.gate-panel ul { margin: 0 0 18px; padding-left: 20px; }
.responsibility-notice { margin-top: 12px; padding: 18px 20px; border-left: 3px solid var(--ad-teal, #156082); background: var(--ad-panel, #fff); }
.responsibility-notice strong { color: var(--ad-text-1, #222); font-size: 13px; font-weight: 500; }
.responsibility-notice p { margin: 5px 0 0; color: var(--ad-text-3, #555); font-size: 13px; line-height: 1.55; }
.program-index-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.program-index-grid .region-link { min-height: 132px; border: 1px solid var(--border, rgba(0,0,0,.08)); border-radius: 8px; }
.directory-jumps { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.directory-jumps a, .directory-action { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 8px 13px; border: 1px solid var(--border, rgba(0,0,0,.12)); border-radius: 6px; color: var(--ad-text-1, #222); background: var(--ad-panel, #fff); font-size: 13px; font-weight: 500; text-decoration: none; }
.directory-jumps a:hover, .directory-action:hover { border-color: rgba(21,96,130,.58); background: rgba(21,96,130,.06); }
.directory-action--primary { border-color: #156082; color: #fff; background: #156082; }
.directory-action--primary:hover { color: #fff; background: #104e6a; }
.page-directory-section { border-top: 1px solid var(--border, rgba(0,0,0,.08)); }
.page-directory-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.page-directory-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; min-height: 74px; padding: 13px 15px; border: 1px solid var(--border, rgba(0,0,0,.08)); border-radius: 7px; background: var(--ad-panel, #fff); }
.page-directory-row:hover { border-color: rgba(21,96,130,.42); background: rgba(21,96,130,.035); }
.page-directory-row strong { display: block; color: var(--ad-text-1, #222); font-size: 15px; font-weight: 500; line-height: 1.35; }
.page-directory-meta { display: block; margin-bottom: 3px; color: var(--ad-text-3, #666); font-size: 11px; font-weight: 500; letter-spacing: .03em; text-transform: uppercase; }
.page-directory-actions { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; justify-content: flex-end; }
.directory-note { max-width: 220px; color: var(--ad-text-3, #666); font-size: 11px; line-height: 1.35; }
html.dark-mode .program-card, html.dark-mode .gate-panel, html.dark-mode .responsibility-notice { background: #252525; }
html.dark-mode .program-card h3, html.dark-mode .gate-panel h3, html.dark-mode .responsibility-notice strong { color: #e0e0e0; }
html.dark-mode .directory-jumps a, html.dark-mode .directory-action, html.dark-mode .page-directory-row { background: #252525; color: #e0e0e0; }
html.dark-mode .directory-action--primary { background: #156082; color: #fff; }
@media (max-width: 900px) { .program-card-grid, .program-index-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .program-card-grid, .program-index-grid { grid-template-columns: 1fr; } .program-hero { min-height: 0; } .page-directory-row { grid-template-columns: 1fr; } .page-directory-actions { justify-content: flex-start; } }
