/* Ordered service sections, confined to administrator previews until publication. */
.ns-service-composed .ns-service-rich > * + * { margin-top: 15px; }
.ns-service-composed .ns-service-rich ul { list-style: none; padding: 0; }
.ns-service-composed .ns-service-rich li { position: relative; padding-left: 22px; margin-top: 10px; }
.ns-service-composed .ns-service-rich li::before { content: '✓'; color: var(--ns-blue); position: absolute; left: 0; }
.ns-service-composed .ns-service-rich h3 { font-size: 24px; line-height: 1.4; margin-top: 25px; }
.ns-service-composed .ns-service-block > .ns-service-rich:not(:empty), .ns-service-composed .ns-service-items { margin-top: 30px; }
.ns-service-composed .ns-service-rich:empty { display: none; }
.ns-service-composed .ns-service-items { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.ns-service-composed .ns-service-block--pricing .ns-service-items, .ns-service-composed .ns-service-block--checklists .ns-service-items { grid-template-columns: repeat(3,minmax(0,1fr)); }
.ns-service-composed .ns-service-item { padding: 0; overflow: hidden; }
.ns-service-composed .ns-service-item:only-child { grid-column: 1 / -1; }
.ns-service-composed .ns-service-item-body { padding: 30px; display: flex; flex-direction: column; gap: 15px; height: 100%; }
.ns-service-composed .ns-service-item-body > .ns-service-rich { flex: 1; }
.ns-service-composed .ns-service-item-image { aspect-ratio: 2 / 1; overflow: hidden; }
.ns-service-composed .ns-service-item-image img { width: 100%; height: 100%; object-fit: cover; }
.ns-service-composed .ns-service-item:has(.ns-service-item-image) .ns-service-item-body { height: auto; }
.ns-service-composed .ns-service-footer { margin-top: 30px; }
.ns-service-composed .ns-service-block > .ns-button { margin-top: 25px; }
.ns-service-composed .ns-service-block--steps .ns-service-footer { grid-column: 2; }
.ns-service-composed .ns-service-block--text { background: var(--ns-tint); border-radius: 32px; padding: 50px; }
.ns-service-composed .ns-benefits-image { border-radius: 32px; overflow: hidden; }
.ns-service-composed .ns-benefits-image img { width: 100%; height: 100%; object-fit: cover; }
.ns-service-composed .ns-benefit-list li { display: flex; gap: 16px; align-items: flex-start; }
.ns-service-composed .ns-benefit-number { flex: 0 0 30px; padding: 3px; border-radius: 8px; text-align: center; color: #fff; background: var(--ns-blue); }
.ns-service-composed .ns-benefit-list h3 { font-size: 16px; line-height: 24px; font-weight: 800; }
.ns-service-composed .ns-hero-picture img { object-fit: cover; }
.ns-service-composed :is(.ns-hero-picture,.ns-gallery-item,.ns-benefits-image,.ns-service-item-image,.ns-service-block-image,.ns-service-card-icon) { position: relative; }
.ns-service-composed .ns-gallery-item:has([data-nitel-figma]) { border-radius: 32px; }
.ns-service-composed .ns-service-extra-gallery { margin-top: 30px; }
.ns-service-composed .ns-service-card-icon { width: 32px; height: 32px; flex: 0 0 32px; margin: 30px 30px 0; overflow: hidden; }
.ns-service-composed .ns-service-item:has(.ns-service-card-icon) { display: flex; flex-direction: column; }
.ns-service-composed .ns-service-item:has(.ns-service-card-icon) .ns-service-item-body { padding-top: 15px; height: auto; flex: 1; }
.ns-service-composed .ns-service-item:has(.ns-service-item-image [data-nitel-figma]) { display: flex; flex-direction: column; }
.ns-service-composed .ns-service-item:has(.ns-service-item-image [data-nitel-figma]) .ns-service-item-body { flex: 1; }
.ns-service-composed .ns-service-documents-layout { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 60px; align-items: start; margin-top: 30px; }
.ns-service-composed .ns-service-block-image { overflow: hidden; border-radius: 32px; }
.ns-service-composed .ns-service-documents-layout .ns-service-items { margin-top: 20px; }
@media(max-width:992px) { .ns-service-composed .ns-service-block--checklists .ns-service-items { grid-template-columns: 1fr; } }
@media(max-width:768px) {
 .ns-service-composed .ns-service-documents-layout { grid-template-columns: 1fr; gap: 25px; }
 .ns-service-composed .ns-service-card-icon { margin: 25px 20px 0; }
 .ns-service-composed .ns-service-items, .ns-service-composed .ns-service-block--pricing .ns-service-items { grid-template-columns: 1fr; }
 .ns-service-composed .ns-service-block--steps .ns-service-footer { grid-column: 1; }
 .ns-service-composed .ns-service-item-body { padding: 25px 20px; }
 .ns-service-composed .ns-service-block--text { padding: 30px 20px; border-radius: 20px; }
}
.ns-service-composed .ns-task-hint { display:block; margin-top:8px; font-size:13px; line-height:1.5; }
.ns-service-composed .ns-file-field { display:grid; gap:10px; margin-top:20px; }
.ns-service-composed .ns-file-field input[type="file"] { width:100%; max-width:100%; font:inherit; padding:12px; background:#fff; border-radius:8px; }
