.ns-dynamic-grid { width: min(1240px,calc(100% - 40px)); margin-inline: auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.ns-dynamic-card { color: #111; background: #fff; border-top: 3px solid #a87931; box-shadow: 0 12px 35px rgba(0,0,0,.08); }
.ns-dynamic-card__image { display: block; aspect-ratio: 16/10; overflow: hidden; }
.ns-dynamic-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.ns-dynamic-card:hover img { transform: scale(1.03); }
.ns-dynamic-card__body { padding: 28px; }
.ns-dynamic-card__body h3 { margin: 10px 0 14px; font-family: Georgia,serif; font-size: 1.85rem; font-weight: 400; line-height: 1.08; }
.ns-dynamic-card__body p { color: #5e5851; }
.ns-card-link { display: flex; justify-content: space-between; margin-top: 24px; padding-top: 15px; border-top: 1px solid rgba(0,0,0,.16); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ns-empty { width: min(900px,calc(100% - 40px)); margin: 30px auto; padding: 40px; border: 1px dashed currentColor; text-align: center; opacity: .7; }
.ns-testimonial-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.ns-testimonial { margin: 0; padding: 34px; color: #f5f1e9; background: #191919; border-top: 2px solid #d8b36b; }
.ns-testimonial blockquote { margin: 0 0 28px; font-family: Georgia,serif; font-size: 1.45rem; }
.ns-testimonial figcaption span { display: block; color: #b9b4ab; font-size: .8rem; }
.ns-faq-list { max-width: 900px; margin-inline: auto; border-top: 1px solid rgba(0,0,0,.16); }
.ns-faq-item { border-bottom: 1px solid rgba(0,0,0,.16); }
.ns-faq-question { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 24px 0; border: 0; background: transparent; color: inherit; text-align: left; font-family: Georgia,serif; font-size: 1.4rem; cursor: pointer; }
.ns-faq-answer { display: none; padding: 0 55px 24px 0; }
.ns-faq-item.open .ns-faq-answer { display: block; }
.ns-faq-item.open .ns-faq-question span { transform: rotate(45deg); }
.ns-founder { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(35px,7vw,100px); align-items: center; }
.ns-founder > img, .ns-founder-placeholder { width: 100%; min-height: 520px; object-fit: cover; }
.ns-founder-placeholder { display: grid; place-items: center; align-content: center; color: #d8b36b; background: #171717; font-family: Georgia,serif; font-size: 8rem; }
.ns-founder-placeholder span { display: block; font: 12px sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.ns-founder blockquote { margin: 0 0 24px; font-family: Georgia,serif; font-size: clamp(2rem,4vw,4rem); line-height: 1.12; }
.ns-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.ns-project-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.ns-project-form .field { display:flex; flex-direction:column; gap:8px; }
.ns-project-form .field.full, .ns-project-form .checkbox, .ns-project-form .form-status { grid-column:1/-1; }
.ns-project-form label { font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.ns-project-form input, .ns-project-form select, .ns-project-form textarea { width:100%; padding:14px 0; border:0; border-bottom:1px solid #aaa29a; border-radius:0; background:transparent; color:inherit; }
.ns-project-form textarea { min-height:140px; resize:vertical; }
.ns-project-form .checkbox { display:flex; align-items:flex-start; gap:10px; color:#5e5851; font-size:.86rem; }
.ns-project-form .checkbox input { width:auto; margin-top:5px; }
.ns-client-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; background:rgba(0,0,0,.12); }
.ns-client-grid > * { min-height:130px; padding:24px; display:grid; place-items:center; background:#fff; }
.ns-client-grid img { max-width:150px; max-height:70px; object-fit:contain; filter:grayscale(1); opacity:.72; transition:.25s; }
.ns-client-grid a:hover img { filter:none; opacity:1; }
.ns-map { width:100%; aspect-ratio:16/7; min-height:360px; }
.ns-map iframe { width:100%; height:100%; border:0; }
.ns-popup { position:fixed; z-index:10001; left:50%; top:50%; width:min(520px,calc(100% - 30px)); padding:44px; transform:translate(-50%,-50%); color:#f5f1e9; background:#111; border-top:4px solid #d8b36b; box-shadow:0 30px 100px rgba(0,0,0,.55); }
.ns-popup[hidden]{display:none}.ns-popup h2{margin:8px 0 14px;font-family:Georgia,serif;font-size:2.4rem;font-weight:400;line-height:1.08}.ns-popup p:not(.ns-kicker){color:#b9b4ab}.ns-popup-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border:1px solid rgba(255,255,255,.22);background:transparent;color:#fff;font-size:1.4rem;cursor:pointer}.ns-popup .gold-button{margin-top:15px}
.ns-page-loader{position:fixed;z-index:11000;inset:0;display:grid;place-items:center;color:#d8b36b;background:#090909;transition:opacity .35s,visibility .35s}.ns-page-loader span{font-family:Georgia,serif;font-size:3rem;animation:nsPulse 1.1s ease-in-out infinite}.ns-page-loader.is-hidden{opacity:0;visibility:hidden}@keyframes nsPulse{50%{opacity:.35}}
.form-status.is-visible { display: block; }
.form-status.is-error { border-color: #a84343; color: #762626; background: #f8e8e8; }
.ns-cookie-banner { position: fixed; z-index: 10000; left: 24px; right: 24px; bottom: 24px; max-width: 980px; margin: auto; padding: 20px 22px; display: flex; justify-content: space-between; align-items: center; gap: 30px; color: #111; background: #fff; border-top: 3px solid #a87931; box-shadow: 0 18px 70px rgba(0,0,0,.4); }
.ns-cookie-banner[hidden] { display: none; }
.ns-cookie-banner p { margin: 4px 0 0; font-size: .86rem; }
.ns-cookie-actions { display: flex; gap: 8px; flex: 0 0 auto; }
.ns-cookie-actions button { min-height: 42px; padding: 0 16px; border: 1px solid #a87931; background: transparent; color: #111; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.ns-cookie-actions button:last-child { background: #d8b36b; }
@media (max-width:800px) { .ns-dynamic-grid,.ns-testimonial-grid,.ns-founder,.ns-project-form { grid-template-columns:1fr; } .ns-project-form .field.full,.ns-project-form .checkbox,.ns-project-form .form-status{grid-column:auto}.ns-client-grid{grid-template-columns:repeat(2,1fr)} .ns-cookie-banner { display:block; left:10px; right:10px; bottom:10px; } .ns-cookie-actions { margin-top:14px; flex-wrap:wrap; } }
