/* Site footer: CTA band, 4-column grid, bottom bar. Scoped to .ns-footer. */
.ns-footer { --gold: #e8bd55; position: relative; overflow: hidden; background: #1b1410; color: #d9d0c7; margin-top: 4rem; }
.ns-footer__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .14; }
.ns-footer__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(27,20,16,.96), rgba(27,20,16,.9) 50%, rgba(20,14,10,.98)); }
.ns-footer__wrap { position: relative; max-width: 80rem; margin: 0 auto; padding: 0 1.25rem 1.5rem; }
.ns-footer a { color: inherit; text-decoration: none; transition: color .2s var(--ease, ease), transform .2s var(--ease, ease); }
.ns-footer ul { list-style: none; margin: 0; padding: 0; }
.ns-footer a:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* CTA band */
.ns-footer__cta { display: flex; flex-direction: column; gap: 1.25rem; margin-top: -2rem; padding: 1.75rem 1.5rem; border-radius: 1.25rem; background: linear-gradient(120deg, #3a2819, #2a1d13); border: 1px solid rgba(232,189,85,.3); box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.ns-footer__eyebrow { margin: 0 0 .25rem; color: var(--gold); letter-spacing: .18em; text-transform: uppercase; font-size: .72rem; font-weight: 600; }
.ns-footer__cta-title { margin: 0; color: #fff; font-family: 'Playfair Display', serif; font-size: 1.35rem; line-height: 1.3; }
.ns-footer__cta-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.ns-btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: .8rem 1.4rem; border-radius: 999px; font-size: .9rem; font-weight: 600; cursor: pointer; border: 1px solid transparent; transition: transform .2s ease, background .2s ease, color .2s ease; }
.ns-btn:hover { transform: translateY(-2px); }
.ns-btn--gold { background: var(--gold); color: #1b1410; }
.ns-btn--gold:hover { background: #f1cb73; }
.ns-btn--ghost { border-color: rgba(255,255,255,.35); color: #fff; }
.ns-btn--ghost:hover { border-color: var(--gold); color: var(--gold); }
.ns-footer .ns-btn--gold, .ns-footer .ns-btn--gold:hover { color: #1b1410; }

/* Grid */
.ns-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.25rem 1.5rem; padding: 3rem 0 2.25rem; }
.ns-footer__brand { grid-column: 1 / -1; }
.ns-footer__logo { width: 7rem; margin-bottom: 1rem; }
.ns-footer__about { margin: 0 0 1rem; max-width: 22rem; line-height: 1.7; font-size: .92rem; }
.ns-footer__tags { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1.25rem; }
.ns-footer__tags li { padding: .3rem .7rem; border: 1px solid rgba(232,189,85,.35); border-radius: 999px; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: #fff; }
.ns-footer__social { display: flex; gap: .6rem; }
.ns-footer__social a { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); font-size: .9rem; }
.ns-footer__social a:hover { background: var(--gold); border-color: var(--gold); color: #1b1410; transform: translateY(-3px); }

.ns-footer__col:last-child { grid-column: 1 / -1; }
.ns-footer__head { margin: 0 0 1.1rem; padding-bottom: .7rem; position: relative; color: #fff; font-family: 'DM Sans', sans-serif; font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ns-footer__head::after { content: ""; position: absolute; left: 0; bottom: 0; width: 1.75rem; height: 3px; border-radius: 2px; background: var(--gold); }
.ns-footer__col li + li { margin-top: .7rem; }
.ns-footer__col li > a { display: inline-block; font-size: .92rem; line-height: 1.4; }
.ns-footer__col li > a:hover { color: var(--gold); transform: translateX(4px); }
.ns-footer__col small { display: block; margin-top: .1rem; font-size: .75rem; opacity: .6; }

.ns-footer__contact li { display: flex; gap: .85rem; align-items: flex-start; font-size: .92rem; line-height: 1.55; }
.ns-footer__contact i { flex: none; width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; background: rgba(232,189,85,.14); color: var(--gold); font-size: .8rem; }
.ns-footer__contact a:hover { color: var(--gold); }
.ns-footer__contact address { margin: 0; font-style: normal; }

/* Bottom bar */
.ns-footer__bottom { display: flex; flex-direction: column; align-items: center; gap: .9rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .78rem; text-align: center; }
.ns-footer__bottom p { margin: 0; }
.ns-footer__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.25rem; }
.ns-footer__legal a:hover { color: var(--gold); }
.ns-footer__copy, .ns-footer__credit { color: #a89d92; }
.ns-footer__credit span, .ns-footer__credit strong { color: var(--gold); }

@media (min-width: 768px) {
  .ns-footer__wrap { padding: 0 2.5rem 1.5rem; }
  .ns-footer__cta { flex-direction: row; align-items: center; justify-content: space-between; padding: 2rem 2.5rem; }
  .ns-footer__cta-title { font-size: 1.7rem; }
  .ns-footer__grid { grid-template-columns: 1.3fr .8fr 1.2fr 1.3fr; gap: 3rem; }
  .ns-footer__brand, .ns-footer__col:last-child { grid-column: auto; }
  .ns-footer__bottom { display: grid; grid-template-columns: 1fr auto 1fr; text-align: left; }
  .ns-footer__credit { text-align: right; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .ns-footer__grid { grid-template-columns: 1fr 1fr; }
  .ns-footer__brand { grid-column: 1 / -1; }
  .ns-footer__bottom { grid-template-columns: 1fr; text-align: center; }
  .ns-footer__credit { text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .ns-footer a, .ns-btn { transition: none; } }

/* Lift above the global typography locks (they use !important + :not(#_) specificity). */
html body .ns-footer .ns-footer__head:not(#_):not(#_) { color: #fff !important; font-family: 'DM Sans', sans-serif !important; font-size: .8rem !important; font-weight: 700 !important; letter-spacing: .14em !important; line-height: 1.3 !important; text-transform: uppercase; }
html body .ns-footer .ns-footer__cta-title:not(#_):not(#_) { color: #fff !important; font-family: 'Playfair Display', serif !important; font-size: 1.35rem !important; line-height: 1.3 !important; letter-spacing: 0 !important; }
html body .ns-footer .ns-footer__tags li:not(#_):not(#_) { font-size: .66rem !important; letter-spacing: .08em; line-height: 1.2 !important; white-space: nowrap; }
html body .ns-footer :is(.ns-footer__col, .ns-footer__bottom, .ns-footer__about) :is(a, li, p, address):not(#_):not(#_) { font-size: .92rem !important; line-height: 1.5 !important; }
html body .ns-footer .ns-footer__bottom :is(a, p):not(#_):not(#_) { font-size: .78rem !important; }
html body .ns-footer .ns-footer__col small:not(#_):not(#_) { font-size: .75rem !important; }
html body .ns-footer .ns-footer__eyebrow:not(#_):not(#_) { font-size: .72rem !important; }
@media (min-width: 768px) { html body .ns-footer .ns-footer__cta-title:not(#_):not(#_) { font-size: 1.7rem !important; } }
/* Keep text clear of the floating contact buttons on phones. */
@media (max-width: 767px) { .ns-footer__col { padding-right: 2.5rem; } }

/* Spacing fixes: beat the `.ns-footer ul { margin: 0 }` reset. */
.ns-footer .ns-footer__tags { margin-bottom: 1.5rem; }
.ns-footer .ns-footer__tags li + li { margin-top: 0; }
@media (min-width: 1024px) { .ns-footer__grid { grid-template-columns: 1.1fr .75fr 1.2fr 1.3fr; gap: 3rem 2.5rem; } }

/* CTA band was clipped by overflow:hidden; give it real space instead of a negative margin. */
.ns-footer { margin-top: 0; }
.ns-footer__wrap { padding-top: 3rem; }
.ns-footer__cta { margin-top: 0; }
