/* Shared in-place service details. */
html.zt-program-open { overflow: hidden; scrollbar-gutter: stable; }
.zt-program-dialog { padding: 0; border: 1px solid #DED6C7; border-radius: 16px; width: calc(100% - 32px); max-width: 1160px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); color: #142235; background: #F7F4ED; box-shadow: 0 24px 80px #0006; }
.zt-program-dialog[open] { display: flex; flex-direction: column; animation: zt-program-enter .22s ease-out both; }
.zt-program-dialog::backdrop { background: rgb(10 20 35 / 75%); animation: zt-program-backdrop .22s ease-out both; }
.zt-program-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex: 0 0 auto; padding: 16px 24px; color: #fff; background: #142235; }
.zt-program-dialog-header h2 { margin: 0; font-size: 1.25rem; }
.zt-program-dialog-header button { min-height: 48px; padding: 8px 16px; flex-shrink: 0; border: 1px solid #E6B869; border-radius: 8px; color: #142235; background: #E6B869; font: inherit; font-weight: 700; cursor: pointer; }
.zt-program-dialog-header button:focus-visible { outline: 3px solid #E6B869; outline-offset: 3px; box-shadow: none; }
.zt-program-dialog-body { overflow: auto; overscroll-behavior: contain; min-height: 0; padding: 28px; }
.zt-program-dialog-body .zt-service-section { padding: 0; }
.zt-program-dialog-body .zt-service-container { width: 100%; max-width: none; margin: 0; padding-inline: 0; }
.zt-program-dialog-body :where(h2,h3,p,ul) { margin-block: 0 18px; }
.zt-program-dialog-body h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
.zt-program-dialog-body h3 { font-size: 1.375rem; }
.zt-program-dialog-body .zt-program-card > * { margin-block: 0; }
.zt-program-dialog-body .zt-coaching-learning { margin-top: 36px; }
.zt-program-dialog.is-closing { animation: zt-program-leave .18s ease-in both; }
.zt-program-dialog.is-closing::backdrop { animation: zt-program-backdrop .18s ease-in reverse both; }
@keyframes zt-program-enter { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes zt-program-leave { to { opacity: 0; transform: translateY(12px); } }
@keyframes zt-program-backdrop { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 699px) { .zt-program-dialog-header { padding: 12px 16px; } .zt-program-dialog-body { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .zt-program-dialog[open], .zt-program-dialog::backdrop, .zt-program-dialog.is-closing, .zt-program-dialog.is-closing::backdrop { animation: none; } }
