/* Neutral base layout; final design follows the supplied reference. */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; line-height: 1.6; color: #202020; background: #fff; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
:focus-visible { outline: 3px solid #1559ac; outline-offset: 4px; }
.nst-container { width: min(1200px, calc(100% - 40px)); margin-inline: auto; }
.nst-section { padding-block: 60px; }
.nst-main { min-height: 50vh; }
.nst-header { border-bottom: 1px solid #ddd; }
.nst-header__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-block: 20px; }
.nst-brand { display: inline-block; font-weight: 700; text-decoration: none; }
.nst-brand__logo, .nst-footer__logo { display: block; width: auto; max-width: 220px; max-height: 90px; object-fit: contain; }
.nst-nav__list, .nst-footer__links { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 20px; }
.nst-nav .sub-menu { list-style: none; padding: 0 0 0 12px; }
.nst-footer { padding-block: 48px; border-top: 1px solid #ddd; }
.nst-footer__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 40px; }
.nst-footer__logo { margin-bottom: 24px; }
.nst-footer__address { font-style: normal; overflow-wrap: anywhere; }
.nst-footer__address span { display: block; }
.nst-service-grid, .nst-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.nst-service-card__link { display: block; text-decoration: none; }
.nst-service-card__link:hover h2 { text-decoration: underline; }
.nst-service-card__image { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.nst-service__intro { margin-bottom: 40px; }
.nst-gallery__item { margin: 0; }
.nst-gallery__item img { display: block; width: 100%; }
.nst-gallery figcaption { font-size: .875rem; margin-top: 8px; }
.nst-rte { overflow-wrap: anywhere; }
.nst-rte > :first-child { margin-top: 0; }
.nst-post { margin-bottom: 40px; }
.nst-skip-link { position: fixed; top: 12px; left: 12px; z-index: 10000; padding: 10px 16px; background: #fff; color: #000; transform: translateY(-200%); }
.nst-skip-link:focus { transform: translateY(0); }
@media (max-width: 900px) { .nst-service-grid, .nst-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .nst-service-grid, .nst-gallery { grid-template-columns: 1fr; } .nst-section { padding-block: 36px; } }
