/* Homepage-only creator credit. All colours are local to this component. */
.nx-promo[hidden], .nx-promo [hidden] {display:none!important}
.nx-promo {
  position:relative;z-index:1;margin:12px auto 28px;
  display:flex;flex-direction:column;width:min(600px,calc(100% - 40px));max-width:100%;
  border:1px solid #b99a3c88;border-radius:18px;background:linear-gradient(145deg,#1e1112,#090909);
  color:#f3dfaa;box-shadow:0 14px 44px #0004,0 2px 8px #0002;isolation:isolate;
  font-family:var(--font,sans-serif);
}
.nx-promo.is-expanded {width:min(600px,calc(100% - 40px))}
.nx-promo-header {display:flex;align-items:center;gap:2px;flex:none;min-height:76px;padding:8px}
.nx-promo button {margin:0;border:0;border-radius:10px;background:transparent;color:#f3dfaa;font:inherit;cursor:pointer;box-shadow:none;touch-action:manipulation}
.nx-promo-toggle {display:flex;align-items:center;gap:10px;min-width:0;min-height:52px;flex:1;padding:6px;text-align:left}
.nx-promo-mark {position:relative;display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:11px;background:#d6b451;color:#171004;font-size:15px;font-weight:800;letter-spacing:-1px}
.nx-promo-mark>span {position:absolute;right:-3px;top:-6px;font-size:15px;color:#d6b451;text-shadow:0 0 3px #362915}
.nx-promo-brand {display:flex;flex-direction:column;gap:3px;min-width:0}
.nx-promo-brand strong {font-size:15px;line-height:1.2;letter-spacing:.08em;color:#f6d978}
.nx-promo-brand small {font-size:11px;line-height:1.35;color:#d0c4ad}
.nx-promo-chevron {width:18px;height:18px;flex:none;margin-left:auto;transition:transform .2s ease}
.nx-promo.is-expanded .nx-promo-chevron {transform:rotate(180deg)}
.nx-promo .nx-promo-close {display:grid;place-items:center;flex:none;width:40px;height:44px;padding:10px}
.nx-promo-close svg {display:block;width:19px;height:19px}
.nx-promo-details {min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 22px 22px;border-top:1px solid #d6b45133}
.nx-promo-kicker {display:block;margin:12px 0;color:#d6b451;font-size:10px;line-height:1.5;letter-spacing:.09em;text-transform:uppercase;font-weight:700}
.nx-promo h2 {margin:0 0 14px;color:#ffe396;font-size:29px;line-height:1.14;font-weight:650;letter-spacing:-.035em}
.nx-promo p {margin:0;color:#e1d7c7;font-size:13px;line-height:1.75}
.nx-promo-services {display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:17px 0;padding:0}
.nx-promo-services li {padding:5px 9px;border:1px solid #d6b45155;border-radius:999px;background:#d6b45112;color:#e9d5a0;font-size:11px;line-height:1.5}
.nx-promo-link {display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:12px 16px;border:1px solid #f3d77b;border-radius:11px;background:#dfbd58;color:#171004;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s}
.nx-promo-link span {font-size:20px;line-height:1}
.nx-promo-note {display:block;margin-top:13px;text-align:center;font-size:10px;line-height:1.5;color:#b9ad96}
.nx-promo :is(button,a):focus-visible {outline:3px solid #ffe396;outline-offset:2px}
@media(hover:hover) {.nx-promo button:hover{background:#d6b45120}.nx-promo-link:hover{background:#f3d77b}}
@media(max-width:600px) {
  .nx-promo,.nx-promo.is-expanded {width:calc(100% - 32px);border-radius:15px}
  .nx-promo-header {padding:6px}
  .nx-promo-toggle {gap:8px;padding:4px}
  .nx-promo-mark {width:30px;height:34px;font-size:13px}
  .nx-promo-details {padding:8px 18px 18px}
}
/* CSS also protects navigation if observers are temporarily suspended. */
body:is(.menu-open,.photo-viewer-open,.slideshow-open) .nx-promo {visibility:hidden;pointer-events:none}
@keyframes nx-promo-arrive {from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce) {.nx-promo{animation:none}.nx-promo *{transition:none}}
