/* ═════════════════════════════════════════════════════════════════════
   NIJIO — design system
   Loaded last on every customer page. Light, editorial, quiet.
   Type:    Bricolage Grotesque (display) · Figtree (text, interface)
   Colour:  white / #f5f5f7 pages, #1d1d1f ink, one accent violet.
            The brand gradient is reserved for the hero word and the mark.
   ═════════════════════════════════════════════════════════════════════ */
:root{
  --display:'Bricolage Grotesque',ui-sans-serif,system-ui,sans-serif;
  --font:'Figtree',ui-sans-serif,system-ui,-apple-system,sans-serif;
  /* Colours sampled from the Nijio mascot: hair streaks, sparkle outlines, line art */
  --rose:#E2559A;--rose-deep:#B8346F;--rose-tint:#FDE8F1;
  --orchid:#A64FD0;--orchid-deep:#7B2FA8;--orchid-tint:#F3E7FA;
  --sky:#4F95E6;--sky-deep:#2B6BBF;--sky-tint:#E5F0FC;
  --peach:#F2B48F;--peach-tint:#FFF2E9;
  --ink:#22182E;--ink-2:#463A55;--muted:#6F6580;--line:#E3DAEA;--line-2:#EFE8F3;
  --bg:#FFFAF6;--bg-2:#F7F1F4;--bg-3:#ECE3EC;--plum:#2A1640;
  --accent:#A64FD0;--accent-ink:#7B2FA8;--ok:#1f7a3a;--warn:#b35a00;--bad:#c81e3c;
  --grad:linear-gradient(90deg,#E2559A,#A64FD0 50%,#4F95E6);
  --card:#fff;--on-ink:#fff;--ink-fixed:#22182E;
  --r:16px;--r-lg:24px;--r-xl:32px;
  --w:1200px;--gut:clamp(20px,5vw,80px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --spark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 15 12 12 22 9 12Z' fill='none' stroke='%23F2B48F' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
  /* Older layers read these */
  --nx-paper:#FFFAF6;--nx-surface:#fff;--nx-soft:#F7F1F4;--nx-ink:#22182E;--nx-muted:#6F6580;--nx-purple:#A64FD0;--nx-lilac:#F3E7FA;--nx-line:#E3DAEA;--nx-night:#22182E;--nx-accent:#A64FD0;--nx-pink:#E2559A;--nx-cyan:#4F95E6;
  --nj-paper:#FFFAF6;--nj-ink:#22182E;--nj-purple:#A64FD0;--nj-plum:#22182E;--nj-lilac:#F3E7FA;--nj-line:#E3DAEA;--nj-muted:#6F6580;
  --studio-purple:#A64FD0;--studio-paper:#FFFAF6;--studio-muted:#6F6580;--studio-line:#E3DAEA;--studio-ink:#22182E;
  --surface:#fff;--text:#22182E;--border:#E3DAEA;--border-hi:#22182E;--brand:#A64FD0;--brand-hi:#7B2FA8;
  --nijio-brand:#A64FD0;--nijio-brand-dark:#22182E;--nijio-brand-pale:#F7F1F4;--nijio-focus:#A64FD0;
}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
html[data-theme] body,body{background:var(--bg)!important;color:var(--ink);font-family:var(--font)!important;font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:#1d1d1f;color:#fff}
:focus-visible{outline:2px solid var(--accent)!important;outline-offset:3px!important;border-radius:6px}
body :is(h1,h2,h3,h4){font-family:var(--display);color:var(--ink);font-weight:600;letter-spacing:-.025em;line-height:1.08;font-variation-settings:"opsz" 96,"wdth" 100}
body h1{font-size:clamp(38px,5.2vw,68px);letter-spacing:-.035em}
body h2{font-size:clamp(28px,3.6vw,46px);letter-spacing:-.03em}
body h3{font-size:clamp(20px,1.8vw,24px);letter-spacing:-.015em}
body :is(h1,h2) em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent}
body p{color:inherit}
body a{color:var(--accent-ink);text-decoration:none}
body a:hover{text-decoration:underline;text-underline-offset:3px}
body img{max-width:100%;height:auto}
body :is(button,input,select,textarea){font-family:inherit;font-size:inherit}

/* Kicker: small, plain, no ornament */
body .nx-kicker,body .kicker{display:block;font-family:var(--font);font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--muted)!important;margin:0 0 10px}
body .nx-kicker::before,body .nx-kicker::after{content:none!important}

/* ── Buttons ─────────────────────────────────────────────────────────── */
.btn,html[data-theme] :is(.nx-button,.nx-header-book,.btn-main,.btn-submit,.btn-primary,.mobile-package-continue,.contact-button,.voucher-action,.nx-tfp-page .cta,.voucher-form button,.mobile-checkout-next,.nj-button,.login-btn){
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px!important;border:0!important;
  background:var(--ink)!important;color:var(--on-ink)!important;font-family:var(--font);font-size:16px;font-weight:600;letter-spacing:0;text-decoration:none!important;cursor:pointer;
  box-shadow:none!important;transform:none!important;filter:none!important;transition:background-color .2s,opacity .2s,transform .2s var(--ease)}
.btn:hover,html[data-theme] :is(.nx-button,.nx-header-book,.btn-main,.btn-submit,.btn-primary,.mobile-package-continue,.contact-button,.voucher-action,.mobile-checkout-next,.nj-button,.login-btn):not(:disabled):hover{background:#000!important;transform:none!important;filter:none!important;box-shadow:none!important;text-decoration:none!important}
.btn:active{transform:scale(.985)!important}
.btn:disabled,html[data-theme] :is(.btn-main,.btn-submit,.mobile-package-continue,.mobile-checkout-next,.nj-button):disabled{background:var(--bg-3)!important;color:var(--muted)!important;cursor:not-allowed;opacity:1!important}
.btn-secondary,html[data-theme] :is(.nx-button.nx-button-light,.nj-text-link,.change-package-btn,.availability-toggle,.studio-add-session,.cart-add-another,.mobile-checkout-back){
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:999px!important;
  background:transparent!important;color:var(--ink)!important;border:1px solid var(--line)!important;font-weight:600;cursor:pointer;box-shadow:none!important;transition:border-color .2s,background-color .2s}
.btn-secondary:hover,html[data-theme] :is(.nx-button.nx-button-light,.change-package-btn,.availability-toggle,.studio-add-session,.cart-add-another,.mobile-checkout-back):hover{border-color:var(--ink)!important;background:transparent!important;text-decoration:none!important}
.btn-lg{min-height:56px;padding:0 28px;font-size:17px}
.btn-sm{min-height:38px;padding:0 14px;font-size:14px}
.btn-on-dark{background:#fff!important;color:var(--ink-fixed)!important}.btn-on-dark:hover{background:#f5f5f7!important}
.link{color:var(--accent-ink);font-weight:600}
.link::after{content:" ›"}
html[data-theme] .nx-link{color:var(--accent-ink)!important;font-weight:600;background:none!important;padding:0!important;border:0!important;text-decoration:none!important}
html[data-theme] .nx-link:hover{text-decoration:underline!important;color:var(--accent-ink)!important;border-radius:0}

/* ── Forms ───────────────────────────────────────────────────────────── */
html[data-theme] :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=submit]):not([type=button]),textarea,select,.form-input,.fi,.code-input){
  width:100%;min-height:48px;padding:10px 14px;border-radius:12px!important;border:1px solid var(--line)!important;background:var(--card)!important;color:var(--ink)!important;
  font-size:16px!important;line-height:1.4;box-shadow:none!important;transition:border-color .15s,box-shadow .15s!important;appearance:none;-webkit-appearance:none}
html[data-theme] textarea{min-height:120px;resize:vertical}
html[data-theme] select{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236e6e73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important}
html[data-theme] :is(input,textarea,select,.form-input,.fi):focus{border-color:var(--ink)!important;box-shadow:0 0 0 3px rgba(29,29,31,.12)!important;outline:none!important}
html[data-theme] ::placeholder{color:#a1a1a6!important;opacity:1}
html[data-theme] :is(input[type=checkbox],input[type=radio]){width:20px;height:20px;accent-color:var(--ink);flex:none}
html[data-theme] label{font-weight:600;color:var(--ink)}
.field{display:flex;flex-direction:column;gap:6px}
.field>label{font-size:14px;font-weight:600;color:var(--ink)}
.field>small,.hint{font-size:13px;color:var(--muted)}
.field-error,html[data-theme] .nj-error:not([hidden]){margin-top:8px;padding:12px 14px;border-radius:12px!important;background:#fff1f3!important;border:1px solid #f3c2cb!important;color:var(--bad)!important;font-size:14px;font-weight:600;box-shadow:none}
html[data-theme] .nj-error a{color:inherit!important;text-decoration:underline}

/* ── Header ──────────────────────────────────────────────────────────── */
html[data-theme] .nx-header::before,html[data-theme] .nx-header::after{content:none!important}
html[data-theme] .nx-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:28px;min-height:64px;padding:0 var(--gut)!important;
  background:rgba(255,255,255,.82)!important;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line-2)!important;box-shadow:none!important}
.nx-header-spacer{display:none}
html[data-theme] .nx-brand{display:flex;align-items:center;flex:none}
html[data-theme] .nx-brand img{height:26px!important;width:auto!important;filter:brightness(0)!important;opacity:1!important;display:block}
html[data-theme] .nx-desktop-nav{display:flex;gap:26px;margin-left:8px}
html[data-theme] .nx-desktop-nav a{font-size:15px;font-weight:500;color:var(--ink-2)!important;opacity:1;text-decoration:none!important;padding:6px 0}
html[data-theme] .nx-desktop-nav a:hover,html[data-theme] .nx-desktop-nav a[aria-current=page]{color:var(--ink)!important}
html[data-theme] .nx-desktop-nav a::after{content:none!important}
html[data-theme] .nx-header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
html[data-theme] .nx-space-link{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px!important;border:1px solid var(--line)!important;background:transparent!important;color:var(--ink)!important;font-size:14px;font-weight:600;text-decoration:none!important}
html[data-theme] .nx-space-link:hover{border-color:var(--ink)!important}
html[data-theme] .nx-space-link svg{width:16px;height:16px}
html[data-theme] .nx-header-book{min-height:40px;padding:0 16px;font-size:14px}
html[data-theme] .nx-theme-toggle{display:none!important}
html[data-theme] .nx-lang{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;border-radius:999px!important;border:1px solid transparent!important;background:transparent!important;color:var(--muted)!important;font-size:13px;font-weight:600;text-decoration:none!important}
html[data-theme] .nx-lang:hover{color:var(--ink)!important}
html[data-theme] #mob-menu-btn{display:none;width:40px;height:40px;border-radius:999px!important;border:1px solid var(--line)!important;background:transparent!important;color:var(--ink)!important;place-items:center}
html[data-theme] #mob-menu-btn svg{width:20px;height:20px}
html[data-theme] .nx-mobile-menu{position:absolute;left:0;right:0;top:100%;display:flex;flex-direction:column;padding:8px var(--gut) 16px;background:var(--card)!important;border-bottom:1px solid var(--line-2)!important;box-shadow:none!important}
html[data-theme] .nx-mobile-menu.hidden{display:none}
html[data-theme] .nx-mobile-menu a{display:flex;justify-content:space-between;align-items:center;min-height:52px;border-bottom:1px solid var(--line-2)!important;color:var(--ink)!important;font-size:17px;font-weight:500;text-decoration:none!important;background:none!important;border-radius:0!important}
html[data-theme] .nx-mobile-menu a span{color:var(--muted)}
html[data-theme] .nx-mobile-menu a:last-child{border-bottom:0!important}
.skip-link{position:absolute;left:-999px;top:8px;z-index:1000;padding:10px 14px;background:var(--card);border-radius:8px}
.skip-link:focus{left:8px}
/* Phone dock: two clear actions */
html[data-theme] .nx-mobile-shortcuts{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;grid-template-columns:1fr 1.2fr;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.9)!important;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--line-2)!important;box-shadow:none!important}
html[data-theme] .nx-mobile-shortcuts>a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:999px!important;font-size:15px;font-weight:600;text-decoration:none!important}
html[data-theme] .nx-mobile-shortcuts>a:first-child{background:var(--ink)!important;color:var(--on-ink)!important;box-shadow:none!important}
html[data-theme] .nx-mobile-shortcuts>a:last-child{background:transparent!important;color:var(--ink)!important;border:1px solid var(--line)!important}
html[data-theme] .nx-mobile-shortcuts svg{width:18px;height:18px}
@media (max-width:900px){
  html[data-theme] .nx-desktop-nav,html[data-theme] .nx-space-link,html[data-theme] .nx-header-book{display:none!important}
  html[data-theme] #mob-menu-btn{display:grid}
  html[data-theme] .nx-mobile-shortcuts{display:grid}
  html[data-theme] body{padding-bottom:76px}
}
/* Announcement (site setting): one quiet line, never a banner */
html[data-theme] .nx-announcement{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;max-width:var(--w);margin:16px auto 0;padding:14px 18px;border-radius:var(--r);background:var(--bg-2)!important;border:0!important;color:var(--ink)!important;font-size:15px}
html[data-theme] .nx-announcement strong{font-weight:600}
html[data-theme] .nx-announcement a{margin-left:auto;color:var(--accent-ink)!important}

/* ── Footer ──────────────────────────────────────────────────────────── */
html[data-theme] .nx-footer{position:relative;margin-top:0;padding:40px var(--gut) 40px!important;background:var(--bg-2)!important;color:var(--muted)!important;border-top:1px solid var(--line-2)!important;font-size:14px}
html[data-theme] .nx-footer::before{content:none!important}
html[data-theme] .nx-footer-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;max-width:var(--w);margin:0 auto 22px}
html[data-theme] .nx-footer-top img{height:20px;width:auto;filter:brightness(0)!important;opacity:.9}
html[data-theme] .nx-footer-top p{margin:0;font-family:var(--display);font-size:17px;color:var(--ink)!important;background:none!important;-webkit-text-fill-color:initial!important}
html[data-theme] .nx-footer nav{display:flex;flex-wrap:wrap;gap:6px 22px;max-width:var(--w);margin:0 auto;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
html[data-theme] .nx-footer nav a{color:var(--ink-2)!important;text-decoration:none!important}
html[data-theme] .nx-footer nav a:hover{color:var(--ink)!important;text-decoration:underline!important}
html[data-theme] .nx-footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;max-width:var(--w);margin:18px auto 0;font-size:13px}
html[data-theme] .nx-footer-bottom p{margin:0;color:var(--muted)!important}
html[data-theme] .nx-footer-bottom a{color:var(--ink-2)!important;text-decoration:underline;text-underline-offset:2px}

/* ── Page scaffolding used by the rebuilt pages ──────────────────────── */
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--gut)}
.wrap-narrow{max-width:780px;margin:0 auto;padding:0 var(--gut)}
.section{padding:clamp(56px,8vw,120px) 0}
.section-tight{padding:clamp(36px,5vw,72px) 0}
.section-grey{background:var(--bg-2)}
.section-dark{background:#000;color:#f5f5f7}
.section-dark :is(h1,h2,h3){color:#fff}.section-dark p{color:#a1a1a6}
.lede{font-size:clamp(18px,1.6vw,21px);line-height:1.45;color:var(--muted);max-width:60ch}
.eyebrow{display:block;font-size:14px;font-weight:600;color:var(--muted);margin-bottom:12px}
.rule{border:0;border-top:1px solid var(--line);margin:0}
.measure{max-width:62ch}
.muted{color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Reveal (nijio-motion.js adds .is-in). Content is visible without JS. */
html.nn-motion [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease) var(--d,0ms),transform .8s var(--ease) var(--d,0ms)}
html.nn-motion [data-reveal].is-in{opacity:1;transform:none}

/* ── Quiet the older layers on pages that still use them ─────────────── */
html[data-theme] body :is(.contact-card,.voucher-card,.content-card,.price-panel,.form-section,.terms-section,.section-header,.card,.nx-update-widget,.tfp-panel,.studio-gallery-explainer,.vfx-session-card,.photo-card,.portal-card){
  background:var(--card)!important;border:1px solid var(--line)!important;border-radius:var(--r-lg)!important;box-shadow:none!important;color:var(--ink)}
html[data-theme] body :is(.contact-card,.voucher-card,.content-card,.form-section,.terms-section) :is(h2,h3,h4){color:var(--ink)!important}
html[data-theme] body :is(.contact-card,.voucher-card,.content-card,.terms-section) :is(p,li){color:var(--ink-2)!important}
html[data-theme] body .price-panel{background:var(--bg-2)!important;color:var(--ink)!important}
html[data-theme] body .price-panel :is(span,div,p){color:inherit}
html[data-theme] body :is(.text-brand-primary,.text-purple-700,.text-violet-600){color:var(--accent-ink)!important}
html[data-theme] body :is(.text-brand-dark,.text-brand-darkest,.text-slate-800,.text-slate-900){color:var(--ink)!important}
html[data-theme] body :is(.text-slate-500,.text-slate-400,.text-slate-600){color:var(--muted)!important}
html[data-theme] body :is(.bg-brand-pale,.bg-purple-50,.bg-violet-50,.bg-slate-50){background:var(--bg-2)!important;border-color:var(--line-2)!important}
html[data-theme] body :is(.border-purple-100,.border-purple-200,.border-slate-100,.border-slate-200){border-color:var(--line)!important}
html[data-theme] body .rounded-2xl{border-radius:var(--r-lg)!important}
html[data-theme] body .rounded-xl{border-radius:var(--r)!important}
html[data-theme] body .shadow-sm,html[data-theme] body .shadow-lg,html[data-theme] body .shadow{box-shadow:none!important}
html[data-theme] .modal-box{background:var(--card)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:var(--r-xl)!important;box-shadow:0 30px 80px -30px rgba(0,0,0,.35)!important}
html[data-theme] .modal-overlay,html[data-theme] .modal-bg{background:rgba(0,0,0,.45)!important;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
html[data-theme] .nijio-home .modal-box :is(h3,p,label,div[style*="color:"]){color:var(--ink)!important}
html[data-theme] .nijio-home .modal-box p{color:var(--muted)!important}
html[data-theme] .nijio-home .modal-box input{background:var(--card)!important;color:var(--ink)!important;border:1px solid var(--line)!important}
html[data-theme] .nijio-home .modal-box button[onclick]{color:var(--muted)!important;background:var(--bg-2)!important;border:0!important}
html[data-theme] .nijio-home .modal-box div[style*="rgba(168,85,247"]{background:var(--bg-2)!important;border-color:var(--line-2)!important;color:var(--ink-2)!important}

/* Portfolio page */
html[data-theme] .nx-work-heading h1{font-size:clamp(40px,5.6vw,80px)!important}
html[data-theme] .nx-work-heading h1 span{color:var(--muted)!important;background:none!important;-webkit-text-fill-color:initial!important}
html[data-theme] .nx-gallery-tools{position:sticky;top:64px;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 0!important;background:rgba(255,255,255,.9)!important;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:0!important;border-bottom:1px solid var(--line-2)!important;border-radius:0!important;box-shadow:none!important;color:var(--muted)!important}
html[data-theme] .nx-gallery-tools [role=group]{display:inline-flex;padding:3px;border-radius:999px;background:var(--bg-2)}
html[data-theme] .nx-gallery-tools [role=group] button{min-height:34px;padding:0 14px;border:0!important;border-radius:999px!important;background:transparent!important;color:var(--muted)!important;font-size:14px;font-weight:600}
html[data-theme] .nx-gallery-tools [role=group] button[aria-pressed=true]{background:var(--card)!important;color:var(--ink)!important;box-shadow:0 1px 3px rgba(0,0,0,.12)}
html[data-theme] .nx-gallery-tools>a{margin-left:auto;color:var(--accent-ink)!important;background:none!important;padding:0!important;font-weight:600}
html[data-theme] .nx-work-image{border-radius:0!important;overflow:visible;background:transparent!important;box-shadow:none!important;transition:none!important;transform:none!important;border:0!important;padding:0!important}
html[data-theme] .nx-work-image picture{display:block;border-radius:var(--r);overflow:hidden;background:var(--bg-2)}
html[data-theme] .nx-work-image:hover{transform:none!important;box-shadow:none!important}
html[data-theme] .nx-work-image img{transition:transform .9s var(--ease)!important}
html[data-theme] .nx-work-image:hover img{transform:scale(1.03)}
html[data-theme] .nx-work-image:hover .nx-work-caption,html[data-theme] .nx-work-caption{background:transparent!important;color:var(--muted)!important;font-size:14px!important;padding:10px 2px 0!important}
html[data-theme] .nx-work-caption span:last-child{display:none}
html[data-theme] .nx-final{background:var(--bg-2)!important;border:0!important;border-radius:var(--r-xl)!important}
html[data-theme] .nx-final h2{color:var(--ink)!important}
html[data-theme] #lb{background:rgba(0,0,0,.92)!important}
html[data-theme] #lb :is(.lb-btn,#lb-close){background:rgba(255,255,255,.12)!important;border:0!important;color:#fff!important;border-radius:50%!important}
html[data-theme] #lb :is(.lb-btn,#lb-close):hover{background:rgba(255,255,255,.24)!important}

/* Terms, contact, vouchers, TFP, updates */
html[data-theme] .plain-speak{background:var(--bg-2)!important;border:0!important;border-radius:var(--r)!important;color:var(--ink)!important}
html[data-theme] .plain-speak-label{color:var(--muted)!important}
html[data-theme] .contact-page form button[type=submit]{min-height:48px;padding:0 22px;border-radius:999px!important;border:0!important;background:var(--ink)!important;color:var(--on-ink)!important;font-weight:600;box-shadow:none!important}
html[data-theme] .contact-page :is(.support-tabs button,[role=tab]){border-radius:999px!important;border:1px solid var(--line)!important;background:transparent!important;color:var(--ink)!important}
html[data-theme] .contact-page :is(.support-tabs button,[role=tab])[aria-selected=true]{background:var(--ink)!important;color:var(--on-ink)!important;border-color:var(--ink)!important}
html[data-theme] .nx-tfp-page .tfp-hero figure img:not(.nx-tfp-mascot){border-radius:var(--r-lg)!important;box-shadow:none!important}
html[data-theme] .nx-updates-main article{border-radius:var(--r-lg)!important;background:var(--card)!important;border:1px solid var(--line)!important}
html[data-theme] .nx-feed-live{color:var(--muted)}
html[data-theme] .nx-feed-live::before{content:none!important}
html[data-theme] :is(.nx-work-aside,.nx-contact-layout,.nx-voucher-intro) img,html[data-theme] .nx-tfp-mascot,html[data-theme] .nx-choice-heading img{animation:none!important;filter:none!important}

/* Client portal & gallery */
html[data-theme] :is(.client-portal-page,.gallery-page) h1{font-family:var(--display)}
html[data-theme] .gallery-page .photo-card{border-radius:var(--r)!important;overflow:hidden;border:0!important;background:var(--bg-2)!important;transition:none!important;transform:none!important}
html[data-theme] .gallery-page .photo-card:hover{transform:none!important;box-shadow:none!important}
html[data-theme] .gallery-page .photo-card.is-selected{box-shadow:inset 0 0 0 3px var(--ink)!important;outline:3px solid var(--ink);outline-offset:-3px}
html[data-theme] .gallery-page .photo-card.is-vfx{outline:3px solid var(--accent);outline-offset:-3px}
html[data-theme] .gallery-page .sticky-bar{background:rgba(255,255,255,.92)!important;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line)!important;border-radius:var(--r-lg)!important;box-shadow:0 12px 40px -20px rgba(0,0,0,.35)!important}

/* Review / payment standalone pages */
html[data-theme] .standalone-theme-toggle{display:none!important}
html[data-theme] .standalone-brand img{filter:brightness(0)!important;opacity:1!important}
html[data-theme] :is(.review-page,.nj-payment,.studio-login) :is(.card,.login-card,.review-card,.summary-card){background:var(--card)!important;border:1px solid var(--line)!important;border-radius:var(--r-xl)!important;box-shadow:none!important}
html[data-theme] .review-page :is(.brand-name,.card-title,.card-title em){color:var(--ink)!important;background:none!important;-webkit-text-fill-color:initial!important}

@media (prefers-reduced-motion:reduce){html.nn-motion [data-reveal]{opacity:1;transform:none;transition:none}}

/* Standalone pages that ship their own purple styling */
html[data-theme] .review-page :is(h1,h2,h3,.card-title,.brand-tag,.brand-name){font-family:var(--display)!important}
html[data-theme] .review-page :is(body,p,label,input,textarea,button,.card-sub){font-family:var(--font)!important}
html[data-theme] .review-page :is(.kicker,.card-kicker,[class*=kicker]){color:var(--muted)!important;letter-spacing:0!important;text-transform:none!important}
html[data-theme] body.nj-payment{background:var(--bg-2)!important}
html[data-theme] .nj-payment :is(.card,.paper)::before,html[data-theme] .nj-payment [style*="linear-gradient"]{background:none!important}
html[data-theme] .nj-payment :is(.card,.paper){border-top:1px solid var(--line)!important}
html[data-theme] body.studio-login{background:var(--bg-2)!important;font-family:var(--font)!important}
html[data-theme] .studio-login::before,html[data-theme] .studio-login::after,html[data-theme] .studio-login .blob,html[data-theme] .studio-login [class*=glow]{display:none!important}
html[data-theme] .studio-login :is(button[type=submit],.login-btn){background:var(--ink)!important;color:var(--on-ink)!important;border:0!important;border-radius:999px!important;box-shadow:none!important}
html[data-theme] .studio-login :is(h1,h2){font-family:var(--display)!important;font-weight:600!important}
html[data-theme] .terms-page .terms-hero,html[data-theme] .terms-page header[class*=hero]{background:var(--bg-2)!important}
html[data-theme] .terms-page :is(.section-icon,.section-header .icon,.section-header>span:first-child,[class*=icon-box]){background:var(--bg-2)!important;color:var(--ink)!important;border-radius:10px!important}
html[data-theme] .terms-page :is(.lang-switch a,.lang-toggle a,.lang-switch button){border-radius:999px!important;border:1px solid var(--line)!important;background:var(--card)!important;color:var(--ink)!important}
html[data-theme] .terms-page :is(.lang-switch a.active,.lang-switch a[aria-current],.lang-switch .is-active){background:var(--ink)!important;color:var(--on-ink)!important;border-color:var(--ink)!important}
html[data-theme] .terms-page aside a[aria-current],html[data-theme] .terms-page aside a.active{color:var(--ink)!important;font-weight:600}
html[data-theme] .nx-tfp-page :is(.step-icon,.icon,[class*=icon]){background:var(--bg-2)!important;color:var(--ink)!important}
html[data-theme] .nx-tfp-page :is(.eyebrow,.kicker,.tfp-kicker){color:var(--muted)!important;letter-spacing:0!important;text-transform:none!important}
html[data-theme] body :is(.nx-kicker,.eyebrow,.kicker,.tfp-kicker,.section-kicker){color:var(--muted)!important;text-transform:none!important;letter-spacing:0!important}
html[data-theme] body.review-page,html[data-theme] .review-page *{font-family:var(--font)!important}
html[data-theme] .review-page :is(h1,h2,h3,.card-title){font-family:var(--display)!important}
html[data-theme] .review-page .notice{background:var(--bg-2)!important;border:0!important;border-radius:var(--r)!important;color:var(--ink-2)!important}
html[data-theme] .review-page .notice *{color:var(--ink-2)!important}
html[data-theme] .terms-page .hero-bg{background:var(--bg-2)!important;color:var(--ink)!important}
html[data-theme] .terms-page .hero-bg :is(h1,p){color:var(--ink)!important}
html[data-theme] .terms-page .hero-bg p{color:var(--muted)!important}
html[data-theme] .terms-page .lang-tab{border-radius:999px!important;border:1px solid var(--line)!important;background:var(--card)!important;color:var(--ink)!important;font-weight:600}
html[data-theme] .terms-page .lang-tab.active{background:var(--ink)!important;color:var(--on-ink)!important;border-color:var(--ink)!important}
html[data-theme] .terms-page .section-icon{background:var(--bg-2)!important;color:var(--ink)!important;border-radius:10px!important}
html[data-theme] .terms-page .toc-link{border-radius:10px!important;color:var(--ink-2)!important}
html[data-theme] .terms-page .toc-link:hover,html[data-theme] .terms-page .toc-link.active{background:var(--bg-2)!important;color:var(--ink)!important}
html[data-theme] .terms-page .toc-link i{color:var(--muted)!important}
html[data-theme] body.review-page{background:var(--bg-2)!important}
html[data-theme] .review-page .card-eyebrow{color:var(--muted)!important;letter-spacing:0!important;text-transform:none!important;font-weight:600}
html[data-theme] .review-page .card-title em{background:none!important;color:var(--ink)!important;-webkit-text-fill-color:var(--ink)!important}

/* ═══ Quiet the legacy markup: no decorative icons, no purple, no nested boxes ═══ */
/* Icons that only decorate text */
html[data-theme] body :is(h1,h2,h3,h4,label,summary,.contact-button,.cta,.btn,.nx-button,.admin-button,.tier-btn,.filter-btn,.lb-select-btn,.voucher-action) > :is(i.fas,i.far,i.fab,i.fa-solid,i.fa-regular){display:none!important}
html[data-theme] body :is(.client-portal-page,.gallery-page,.terms-page,.nx-tfp-page,.contact-page,.nx-voucher-page) :is(p,li,span,a,div.text-xs,div.text-sm) > i:is(.fas,.far,.fab):first-child{display:none!important}
html[data-theme] body :is(button,a)[aria-label] > i:only-child{display:inline-block!important}
/* Purple fills become ink */
html[data-theme] body :is(.bg-brand-primary,.bg-purple-600,.bg-purple-700,.bg-violet-600,.bg-violet-700,.bg-indigo-600,.from-brand-primary){background:var(--ink)!important;background-image:none!important;color:var(--on-ink)!important;border-color:var(--ink)!important}
html[data-theme] body :is(.text-purple-600,.text-violet-700,.text-indigo-600,.text-brand-mid){color:var(--accent-ink)!important}
html[data-theme] body :is(.bg-gradient-to-r,.bg-gradient-to-br,.bg-gradient-to-b){background-image:none!important}
/* Status chips: plain text, colour only when it means something */
html[data-theme] body :is(.client-portal-page,.gallery-page) :is(.bg-green-100,.bg-emerald-100,.bg-emerald-50,.bg-amber-100,.bg-amber-50,.bg-red-100,.bg-slate-100,.bg-blue-100).rounded-full{background:transparent!important;padding-left:0!important;padding-right:0!important;border:0!important}
html[data-theme] body :is(.text-green-700,.text-emerald-700,.text-green-600,.text-emerald-600){color:var(--ok)!important}

/* Client portal */
html[data-theme] .client-portal-page{background:var(--bg-2)!important}
html[data-theme] .client-portal-page h1 span{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--ink)!important}
html[data-theme] .client-portal-page :is(.rounded-2xl,.rounded-3xl){border-radius:var(--r-lg)!important}
html[data-theme] .client-portal-page :is(.rounded-2xl,.rounded-3xl) :is(.rounded-2xl,.rounded-xl).border{border-color:var(--line-2)!important;background:var(--card)!important}
html[data-theme] .client-portal-page .bg-gradient-to-br,html[data-theme] .client-portal-page [class*="from-"]{background:#1d1d1f!important}
html[data-theme] .client-portal-page h2{font-size:22px!important;font-weight:600!important;letter-spacing:-.02em}
html[data-theme] .client-portal-page :is(.font-black){font-weight:600!important}
html[data-theme] .client-portal-page img[src*="micro.png"],html[data-theme] .client-portal-page img[src*="flash.png"],html[data-theme] .client-portal-page img[src*="spotlight.png"]{filter:none!important}
html[data-theme] .client-portal-page :is(.text-amber-900,.text-amber-800,.text-amber-700){color:var(--ink)!important}
html[data-theme] .client-portal-page .bg-amber-50{background:var(--card)!important}
html[data-theme] .client-portal-page .border-amber-200{border-color:var(--line)!important}

/* Gallery */
html[data-theme] .gallery-page{background:var(--card)!important}
html[data-theme] .gallery-page :is(.filter-btn){min-height:36px;padding:0 14px!important;border-radius:999px!important;border:1px solid var(--line)!important;background:var(--card)!important;color:var(--ink)!important;font-weight:600}
html[data-theme] .gallery-page .filter-btn.active{background:var(--ink)!important;color:var(--on-ink)!important;border-color:var(--ink)!important}
html[data-theme] .gallery-page :is(.tier-btn,.lb-tier-btn){border-radius:999px!important;border:1px solid var(--line)!important;background:#fff!important;color:var(--ink-fixed)!important;font-weight:600;box-shadow:none!important}
html[data-theme] .gallery-page :is(.tier-btn.active-std,.lb-tier-btn.active-std){background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important}
html[data-theme] .gallery-page :is(.tier-btn.active-vfx,.lb-tier-btn.active-vfx){background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
html[data-theme] .gallery-page .sel-badge{background:#fff!important;color:var(--ink-fixed)!important;border:1px solid var(--line)!important;box-shadow:none!important}
html[data-theme] .gallery-page .sel-badge.is-selected{background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important}
html[data-theme] .gallery-page .sel-badge.is-vfx{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
html[data-theme] .gallery-page .photo-card :is(button,.select-btn){border-radius:999px!important;border:1px solid var(--line)!important;background:var(--card)!important;color:var(--ink)!important;font-weight:600}
html[data-theme] .gallery-page .photo-card.is-selected :is(button,.select-btn){background:var(--ink)!important;color:var(--on-ink)!important;border-color:var(--ink)!important}
html[data-theme] .gallery-page :is(.rounded-full)[class*="bg-emerald"],html[data-theme] .gallery-page :is(.rounded-full)[class*="bg-violet"],html[data-theme] .gallery-page :is(.rounded-full)[class*="bg-purple"]{background:transparent!important;color:var(--muted)!important;border:0!important;padding:0!important}
html[data-theme] .gallery-page ul li > i,html[data-theme] .gallery-page ul li > svg{display:none!important}
html[data-theme] .gallery-page :is(.text-emerald-700,.text-violet-700,.text-purple-700){color:var(--ink)!important}

/* Terms: one box per section, not three */
html[data-theme] .terms-page .terms-section{padding:clamp(22px,3vw,32px)!important}
html[data-theme] .terms-page .section-header{background:transparent!important;border:0!important;border-radius:0!important;padding:0 0 14px!important;margin:0 0 14px!important;border-bottom:1px solid var(--line-2)!important}
html[data-theme] .terms-page .section-icon{display:none!important}
html[data-theme] .terms-page .section-header :is(h2,h3){font-size:22px!important}
html[data-theme] .terms-page .toc-link i{display:none!important}
html[data-theme] .terms-page aside :is(a,button).bg-brand-primary,html[data-theme] .terms-page aside a[class*="bg-"]{background:var(--ink)!important;color:var(--on-ink)!important;border-radius:999px!important}
html[data-theme] .terms-page aside .rounded-2xl,html[data-theme] .terms-page aside [class*="bg-purple"],html[data-theme] .terms-page aside [class*="bg-brand"]:not(a){background:var(--bg-2)!important;border:0!important}
html[data-theme] .terms-page aside :is(p,strong){color:var(--ink-2)!important}
html[data-theme] .terms-page strong,html[data-theme] .terms-page .text-brand-primary{color:var(--ink)!important}

/* TFP */
html[data-theme] .nx-tfp-page .principle{padding:0!important;border:0!important;background:transparent!important}
html[data-theme] .nx-tfp-page .principle > i{display:none!important}
html[data-theme] .nx-tfp-page .principle h2{font-size:20px!important;margin-bottom:6px}
html[data-theme] .nx-tfp-page .principle p{color:var(--ink-2)!important}
html[data-theme] .nx-tfp-page section[style*="background"],html[data-theme] .nx-tfp-page .section:last-of-type{background:var(--bg-2)!important}
html[data-theme] .nx-tfp-page .step{border:0!important;border-top:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;padding:12px 0!important;color:var(--ink-2)}
html[data-theme] .nx-tfp-page a.cta[href*="instagram"],html[data-theme] .nx-tfp-page a[href*="instagram"]{background:transparent!important;color:var(--accent-ink)!important;border:0!important;padding:0!important;box-shadow:none!important;min-height:0!important}
html[data-theme] .nx-tfp-page #tfpContactStatus{color:var(--ink)!important}

/* Contact */
html[data-theme] .contact-page .contact-button{min-height:48px!important;padding:0 22px!important;width:auto!important;border-radius:999px!important}
html[data-theme] .contact-page h1 span,html[data-theme] .contact-page h1 em{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--muted)!important}

/* Voucher */
html[data-theme] .nx-voucher-intro p[style*="text-transform:uppercase"]{color:var(--muted)!important;letter-spacing:0!important;text-transform:none!important;font-weight:600!important;font-size:14px!important}
html[data-theme] .nx-voucher-intro img{width:96px!important;height:auto!important}

/* Payment */
html[data-theme] .nj-payment .top{display:none!important}
html[data-theme] .nj-payment :is(.ok,.shield,.inside) > i,html[data-theme] .nj-payment .ok:first-child{background:transparent!important}
html[data-theme] .nj-payment .card{border-radius:var(--r-xl)!important;border:1px solid var(--line)!important;box-shadow:none!important;overflow:hidden}
html[data-theme] .nj-payment .card::before{content:none!important;display:none!important}
html[data-theme] .nj-payment .brand{color:var(--muted)!important;letter-spacing:0!important;text-transform:none!important;font-family:var(--font)!important;font-weight:600!important}
html[data-theme] .nj-payment .error{background:#fff1f3!important;border:1px solid #f3c2cb!important;color:var(--bad)!important;font-family:var(--font)!important}
html[data-theme] .nj-payment :is(.btn,.back){font-family:var(--font)!important}
/* Portal leftovers */
html[data-theme] .client-portal-page a[href^="view_gallery.php"]{background:var(--card)!important;color:var(--ink)!important;border:0!important;box-shadow:none!important;transform:none!important}
html[data-theme] .client-portal-page :is(a,button) > i.fas,html[data-theme] .client-portal-page :is(h2,h3,span,div) > i.fas:first-child{display:none!important}
html[data-theme] .client-portal-page :is(.bg-violet-50,.bg-violet-100){background:var(--bg-2)!important;border-color:transparent!important}
html[data-theme] .client-portal-page :is(.text-violet-700,.text-violet-800,.text-brand-primary){color:var(--ink)!important}
html[data-theme] .client-portal-page .text-violet-800{text-transform:none!important;letter-spacing:0!important}
html[data-theme] .client-portal-page :is(.hover\:bg-brand-pale:hover){background:var(--bg-3)!important}
html[data-theme] .client-portal-page .text-3xl.text-brand-primary{color:var(--ink)!important}
html[data-theme] .gallery-page :is(.text-brand-primary,.text-violet-600) > i:first-child{display:none!important}
html[data-theme] .gallery-page span.w-1\.5.h-1\.5,html[data-theme] .gallery-page span.rounded-full.w-2.h-2{display:none!important}
/* Closed dialogs must never tint the page (their blur rendered even at opacity 0) */
html[data-theme] .modal-wrap:not(.open){visibility:hidden!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html[data-theme] .client-portal-page .bg-violet-600,html[data-theme] .client-portal-page a.bg-white\/20{background:var(--card)!important;color:var(--ink)!important}
/* Phone dock: a full-width bar, not a floating pill */
html[data-theme] .nx-mobile-shortcuts{border-radius:0!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;margin:0!important;border-left:0!important;border-right:0!important;border-bottom:0!important}
html[data-theme] .client-portal-page #galleries a[href*="view_gallery.php"]{background:var(--card)!important;color:var(--ink)!important;box-shadow:none!important;border:0!important}
/* Portal: status as words, rewards as a list, no empty icon slots */
html[data-theme] .client-portal-page :is(.bg-emerald-100,.bg-green-100,.bg-amber-100,.bg-red-100,.bg-slate-100,.bg-blue-100,.bg-violet-50).rounded-full{background:transparent!important;border:0!important;padding:0!important}
html[data-theme] .client-portal-page .space-y-2 > form.rounded-xl{border:0!important;border-top:1px solid var(--line-2)!important;border-radius:0!important;background:transparent!important;padding:12px 0!important;margin:0!important}
html[data-theme] .client-portal-page .space-y-2 > form.rounded-xl > div.w-8{display:none!important}
html[data-theme] .client-portal-page .space-y-2 > form.rounded-xl button{border-radius:999px!important;min-height:36px;padding:0 14px!important;font-size:13px!important;font-weight:600!important}
html[data-theme] .client-portal-page .space-y-2 > form.rounded-xl button.bg-slate-100{background:transparent!important;border:1px solid var(--line)!important;color:var(--muted)!important}
html[data-theme] .client-portal-page .space-y-2 > form.rounded-xl strong{font-size:15px!important;color:var(--ink)!important}
html[data-theme] .client-portal-page .space-y-2 > form.rounded-xl span{font-size:13px!important}
html[data-theme] .client-portal-page :is(.w-12.h-12,.w-11.h-11,.w-10.h-10).rounded-xl:empty,html[data-theme] .client-portal-page .w-11.h-11.rounded-xl{display:none!important}
html[data-theme] .client-portal-page .animate-ping,html[data-theme] .client-portal-page .animate-ping+span{display:none!important}
html[data-theme] .client-portal-page .grid > .rounded-xl.bg-violet-50,html[data-theme] .client-portal-page .grid > div.rounded-xl[class*="bg-"]{background:var(--bg-2)!important;border:0!important}
html[data-theme] .gallery-page .nj-gallery-series{color:var(--muted)!important}
html[data-theme] .gallery-page .nj-gallery-status{color:var(--muted)!important;font-weight:600}
html[data-theme] .gallery-page .nj-gallery-status::before{content:none!important;display:none!important}

/* ═════════════════════ COLOUR STORY (mascot palette) ═════════════════════ */
::selection{background:var(--rose);color:#fff}
html[data-theme] body{background:var(--bg)!important}
/* Primary actions wear the mascot's orchid; hover deepens, press settles */
.btn,html[data-theme] :is(.nx-button,.nx-header-book,.btn-main,.btn-submit,.btn-primary,.mobile-package-continue,.contact-button,.voucher-action,.nx-tfp-page .cta,.voucher-form button,.mobile-checkout-next,.nj-button,.login-btn){background:var(--orchid)!important;color:#fff!important}
.btn:hover,html[data-theme] :is(.nx-button,.nx-header-book,.btn-main,.btn-submit,.btn-primary,.mobile-package-continue,.contact-button,.voucher-action,.mobile-checkout-next,.nj-button,.login-btn):not(:disabled):hover{background:var(--orchid-deep)!important}
.btn-rose{background:var(--rose)!important}.btn-rose:hover{background:var(--rose-deep)!important}
.btn-sky{background:var(--sky)!important}.btn-sky:hover{background:var(--sky-deep)!important}
.btn-on-dark{background:#fff!important;color:var(--ink-fixed)!important}.btn-on-dark:hover{background:var(--peach-tint)!important;color:var(--ink-fixed)!important}
html[data-theme] :is(input,textarea,select,.form-input,.fi):focus{border-color:var(--orchid)!important;box-shadow:0 0 0 3px rgba(166,79,208,.18)!important}
html[data-theme] :is(input[type=checkbox],input[type=radio]){accent-color:var(--orchid)}
:focus-visible{outline-color:var(--orchid)!important}
/* Headline emphasis: a hand-drawn stroke in the hair colours, not a glow */
body :is(h1,h2) em{position:relative;background:none!important;-webkit-text-fill-color:currentColor!important;color:inherit!important;white-space:nowrap}
body :is(h1,h2) em::after{content:"";position:absolute;left:-2%;right:-2%;bottom:.02em;height:.2em;z-index:-1;border-radius:.2em;background:var(--grad);opacity:.9;transform:rotate(-1deg)}
body :is(h1,h2){isolation:isolate}
/* The sparkle ornament from the mascot's hair */
.spark{display:inline-block;width:.62em;height:.62em;background:var(--spark) center/contain no-repeat;vertical-align:.15em;margin-left:.15em}
/* Header: a fine tri-colour edge like the hair streaks */
html[data-theme] .nx-header{background:rgba(255,250,246,.86)!important;border-bottom:0!important;box-shadow:inset 0 -1px 0 var(--line-2)!important}
html[data-theme] .nx-header::after{content:""!important;position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--rose) 0 33.3%,var(--orchid) 33.3% 66.6%,var(--sky) 66.6%)!important;display:block!important}
html[data-theme] .nx-brand img{filter:brightness(0) saturate(100%) invert(10%) sepia(18%) saturate(1600%) hue-rotate(230deg)!important}
html[data-theme] .nx-desktop-nav a[aria-current=page]{color:var(--orchid-deep)!important}
html[data-theme] .nx-space-link{border-color:var(--line)!important}
/* Footer: plum, with the streaks across the top and the mascot waving goodbye */
html[data-theme] .nx-footer{position:relative;background:var(--plum)!important;color:#CDBEDD!important;border-top:0!important;padding-top:56px!important}
html[data-theme] .nx-footer::before{content:""!important;position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--rose) 0 33.3%,var(--orchid) 33.3% 66.6%,var(--sky) 66.6%)!important;display:block!important}
html[data-theme] .nx-footer-top img{filter:brightness(0) invert(1)!important;opacity:1}
html[data-theme] .nx-footer-top p{color:#fff!important}
html[data-theme] .nx-footer nav{border-color:rgba(255,255,255,.14)!important}
html[data-theme] .nx-footer nav a{color:#E7DCF2!important}
html[data-theme] .nx-footer nav a:hover{color:#fff!important}
html[data-theme] .nx-footer-bottom,html[data-theme] .nx-footer-bottom p{color:#B4A4C8!important}
html[data-theme] .nx-footer-bottom a{color:#E7DCF2!important}
/* Phone bar */
html[data-theme] .nx-mobile-shortcuts>a:first-child{background:var(--orchid)!important}
html[data-theme] .nx-mobile-shortcuts{background:rgba(255,250,246,.92)!important}
/* Links */
html[data-theme] .nx-link,.link{color:var(--orchid-deep)!important}

/* ═════ Colour story on content pages: each page opens on one of the three colours ═════ */
html[data-theme] :is(.nx-work-heading,.nx-updates-main>header,.nx-voucher-intro,.tfp-hero,.terms-page .hero-bg){position:relative;border-radius:var(--r-xl)!important;padding:clamp(28px,4vw,48px)!important;margin-top:clamp(16px,2vw,28px)!important}
html[data-theme] .nx-work-heading{background:var(--rose-tint)!important}
html[data-theme] .nx-work-heading h1 span{color:var(--rose-deep)!important}
html[data-theme] .nx-updates-main>header{background:var(--sky-tint)!important}
html[data-theme] .nx-voucher-intro{background:var(--peach-tint)!important}
html[data-theme] .tfp-hero{background:var(--orchid-tint)!important}
html[data-theme] .terms-page .hero-bg{background:var(--orchid-tint)!important;margin:16px var(--gut) 0!important}
html[data-theme] .contact-page h1 span,html[data-theme] .contact-page h1 em{color:var(--orchid-deep)!important}
html[data-theme] .nx-gallery-tools [role=group] button[aria-pressed=true]{color:var(--rose-deep)!important}
html[data-theme] .nx-final{background:var(--orchid)!important;color:#fff!important}
html[data-theme] .nx-final :is(h2,p,.nx-kicker){color:#fff!important}
html[data-theme] .nx-final .nx-button{background:#fff!important;color:var(--orchid-deep)!important}
html[data-theme] .nx-final .nx-link{color:#fff!important}
/* Client portal & gallery heroes */
html[data-theme] .client-portal-page main > :first-child:is(section,div,header).rounded-3xl,html[data-theme] .client-portal-page .portal-hero{background:var(--orchid-tint)!important;border:0!important}
html[data-theme] .client-portal-page h1 span{color:var(--orchid-deep)!important}
html[data-theme] .gallery-page .nj-gallery-opening,html[data-theme] .gallery-page [class*="gallery-opening"]:not([class*="copy"]){background:var(--sky-tint)!important;border:0!important}
html[data-theme] .gallery-page .nj-gallery-series{color:var(--sky-deep)!important}
html[data-theme] .gallery-page .filter-btn.active,html[data-theme] .gallery-page .sel-badge.is-selected,html[data-theme] .gallery-page :is(.tier-btn.active-std,.lb-tier-btn.active-std){background:var(--orchid)!important;border-color:var(--orchid)!important}
html[data-theme] .gallery-page .photo-card.is-selected{outline-color:var(--orchid)!important;box-shadow:inset 0 0 0 3px var(--orchid)!important}
html[data-theme] .gallery-page .photo-card.is-selected :is(button,.select-btn){background:var(--orchid)!important;border-color:var(--orchid)!important}
html[data-theme] .gallery-page :is(.tier-btn.active-vfx,.lb-tier-btn.active-vfx),html[data-theme] .gallery-page .sel-badge.is-vfx{background:var(--sky)!important;border-color:var(--sky)!important}
html[data-theme] .gallery-page .photo-card.is-vfx{outline-color:var(--sky)!important}
html[data-theme] .client-portal-page .space-y-2 > form.rounded-xl button:not(.bg-slate-100){background:var(--orchid)!important}
html[data-theme] .client-portal-page #galleries a[href*="view_gallery.php"]{color:var(--orchid-deep)!important}
html[data-theme] .nx-work-aside img{width:110px!important;height:auto!important}
html[data-theme] .nx-voucher-intro img{width:120px!important}

/* ═════ Updates page: short notes, blog posts, important announcements ═════ */
html[data-theme] .nx-updates-main{max-width:820px;margin:0 auto;padding:0 var(--gut) 80px}
html[data-theme] .nx-updates-main>header{margin-bottom:28px!important}
html[data-theme] .nx-updates-main [data-updates-feed]{display:grid;gap:16px}
html[data-theme] .nx-update-entry{padding:24px 26px!important;border-radius:var(--r-lg)!important;background:var(--card)!important;border:2px solid var(--line-2)!important}
html[data-theme] .nx-update-entry header{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin-bottom:8px}
html[data-theme] .nx-update-entry header strong{font-size:13px;font-weight:700;color:var(--orchid-deep)}
html[data-theme] .nx-update-entry.kind-important header strong{color:var(--rose-deep)}
html[data-theme] .nx-update-entry.kind-delay header strong,html[data-theme] .nx-update-entry.type-blog header strong{color:var(--sky-deep)}
html[data-theme] .nx-update-entry header time{font-size:13px;color:var(--muted)}
html[data-theme] .nx-update-entry h2{font-size:clamp(22px,2.4vw,30px);margin:0 0 10px}
html[data-theme] .nx-update-body p{margin:0 0 12px;font-size:17px;line-height:1.6;color:var(--ink-2)}
html[data-theme] .nx-update-body p:last-child{margin-bottom:0}
html[data-theme] .nx-update-entry.type-blog{border-color:var(--sky-tint)!important}
html[data-theme] .nx-update-entry.type-alert{background:var(--rose-tint)!important;border-color:transparent!important}
html[data-theme] .nx-update-entry.type-alert header strong{color:var(--rose-deep)}
html[data-theme] .nx-update-entry:target{border-color:var(--orchid)!important}
/* Important announcement pop-up */
.nijio-alert{max-width:min(560px,calc(100vw - 32px));width:100%;padding:0;border:0;border-radius:var(--r-xl);background:var(--card);color:var(--ink);box-shadow:0 40px 90px -30px rgba(34,24,46,.5)}
.nijio-alert::backdrop{background:rgba(34,24,46,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.nijio-alert[open]{animation:alert-in .35s var(--ease)}
@keyframes alert-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.nijio-alert-box{padding:clamp(24px,4vw,36px);border-top:6px solid var(--rose);border-radius:var(--r-xl)}
.nijio-alert-tag{margin:0 0 8px!important;font-size:13px;font-weight:700;color:var(--rose-deep)}
.nijio-alert h2{font-size:clamp(24px,3vw,32px);margin:0 0 12px}
.nijio-alert-body{max-height:50vh;overflow:auto}
.nijio-alert-body p{margin:0 0 12px;font-size:17px;line-height:1.55;color:var(--ink-2)}
.nijio-alert-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:20px}
@media (prefers-reduced-motion:reduce){.nijio-alert[open]{animation:none}}

/* ── Gallery, Oct 2026: progress, jump links, picks, edit style, contact ── */
html[data-theme] .gallery-page .nj-gallery-opening{position:relative;overflow:hidden;isolation:isolate}
html[data-theme] .gallery-page .nj-gallery-opening::before,html[data-theme] .gallery-page .nj-gallery-opening::after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
html[data-theme] .gallery-page .nj-gallery-opening::before{width:420px;height:420px;right:-120px;top:-170px;background:var(--orchid-tint)}
html[data-theme] .gallery-page .nj-gallery-opening::after{width:180px;height:180px;left:-70px;bottom:-80px;background:var(--rose-tint)}
html.nn-motion .gallery-page .nj-gallery-opening::before{animation:nj-drift 24s ease-in-out infinite alternate}
html.nn-motion .gallery-page .nj-gallery-opening::after{animation:nj-drift 19s ease-in-out -6s infinite alternate-reverse}
@keyframes nj-drift{to{transform:translate(-30px,24px) scale(1.08)}}
html[data-theme] .gallery-page .nx-gallery-title{color:var(--ink)!important}

/* Where the gallery is: four steps, the current one in colour */
.gallery-page .nj-gallery-progress{margin:0 0 22px;max-width:520px}
html[data-theme] .gallery-page .nj-gallery-progress .nj-gallery-status{display:block;margin:0 0 12px;font:700 clamp(17px,1.6vw,20px)/1.3 var(--display);color:var(--orchid-deep)!important;letter-spacing:-.01em}
.gallery-page .nj-gallery-progress.stage-2 .nj-gallery-status{color:var(--sky-deep)!important}
.gallery-page .nj-gallery-progress.stage-3 .nj-gallery-status{color:var(--rose-deep)!important}
.gallery-page .nj-gallery-status span{display:block;margin-top:4px;font:500 14px/1.4 var(--font);color:var(--muted)}
.gallery-page .nj-gallery-status strong{color:var(--ink);font-weight:700}
.gallery-page .nj-gallery-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;counter-reset:st}
.gallery-page .nj-gallery-steps li{counter-increment:st;position:relative;padding-top:12px;font:600 12.5px/1.25 var(--font);color:var(--muted)}
.gallery-page .nj-gallery-steps li::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:5px;background:rgba(40,20,60,.1)}
.gallery-page .nj-gallery-steps li.is-done::before{background:var(--orchid)}
.gallery-page .nj-gallery-steps li.is-done{color:var(--ink)}
.gallery-page .nj-gallery-steps li.is-current{color:var(--ink);font-weight:700}
.gallery-page .nj-gallery-steps li.is-current::before{background:var(--grad)}
html.nn-motion .gallery-page .nj-gallery-steps li.is-current::before{background:linear-gradient(90deg,var(--rose),var(--orchid),var(--sky),var(--rose));background-size:300% 100%;animation:nj-flow 6s linear infinite}
@keyframes nj-flow{to{background-position:300% 0}}
.gallery-page .nj-gallery-estimate{margin-top:0!important}
.gallery-page .nj-gallery-estimate>p{margin:0 0 18px!important}

/* Section links: real type, real colour */
html[data-theme] body.gallery-page .nx-gallery-jump{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 14px!important;padding:0!important;border:0!important}
html[data-theme] body.gallery-page .nx-gallery-jump a{font:600 15px/1 var(--display)!important;letter-spacing:-.01em;min-height:44px;display:inline-flex;align-items:center;padding:0 18px!important;border-radius:12px!important;text-decoration:none!important;border:0!important;transition:transform .15s,background-color .15s}
html[data-theme] body.gallery-page .nx-gallery-jump a:nth-child(1){background:var(--rose-tint)!important;color:var(--rose-deep)!important}
html[data-theme] body.gallery-page .nx-gallery-jump a:nth-child(2){background:var(--orchid-tint)!important;color:var(--orchid-deep)!important}
html[data-theme] body.gallery-page .nx-gallery-jump a:nth-child(3){background:var(--sky-tint)!important;color:var(--sky-deep)!important}
html[data-theme] body.gallery-page .nx-gallery-jump a:hover{transform:translateY(-1px)}

/* Photo cards: picked = colour ring + filled badge; VFX = sky */
html[data-theme] body.gallery-page #main-content .photo-card{outline:0!important;box-shadow:0 0 0 1px rgba(40,20,60,.08)!important;transition:box-shadow .2s ease!important}
html[data-theme] body.gallery-page #main-content .photo-card.is-selected{box-shadow:0 0 0 3px var(--orchid),0 18px 36px -22px rgba(123,47,168,.55)!important}
html[data-theme] body.gallery-page #main-content .photo-card.is-vfx{box-shadow:0 0 0 3px var(--sky),0 18px 36px -22px rgba(43,107,191,.55)!important}
html[data-theme] body.gallery-page #main-content .photo-card [data-hint]{display:none!important}
html[data-theme] body.gallery-page #main-content .sel-badge{width:44px!important;height:44px!important;border-radius:50%!important;background:rgba(255,255,255,.92)!important;color:var(--ink-fixed)!important;border:0!important;box-shadow:0 4px 14px rgba(0,0,0,.25)!important;font-size:16px;transition:transform .18s cubic-bezier(.3,1.6,.5,1),background-color .15s}
html[data-theme] body.gallery-page #main-content .sel-badge:hover{transform:scale(1.08)}
html[data-theme] body.gallery-page #main-content .sel-badge.is-selected{background:var(--orchid)!important;color:#fff!important}
html[data-theme] body.gallery-page #main-content .photo-card.is-vfx .sel-badge.is-selected,html[data-theme] body.gallery-page #main-content .sel-badge.is-vfx{background:var(--sky)!important;color:#fff!important}
html.nn-motion body.gallery-page #main-content .sel-badge.is-selected{animation:nj-pop .32s cubic-bezier(.3,1.6,.5,1)}
@keyframes nj-pop{0%{transform:scale(.7)}100%{transform:scale(1)}}
html[data-theme] body.gallery-page #main-content .nj-photo-label{font:500 12px/1 var(--font)}
html[data-theme] body.gallery-page #main-content .nj-photo-select{width:100%;min-height:46px;border-radius:12px!important;background:var(--bg-2,#f6f3f8)!important;border:1.5px dashed rgba(166,79,208,.45)!important;color:var(--orchid-deep)!important;font:600 15px/1 var(--display)!important}
html[data-theme] body.gallery-page #main-content .nj-photo-select:hover{background:var(--orchid-tint)!important;border-style:solid!important}
html[data-theme] body.gallery-page #main-content .tier-head{display:flex;justify-content:space-between;align-items:center;font:600 12px/1 var(--font);color:var(--muted)}
html[data-theme] body.gallery-page #main-content .photo-card .tier-head .tier-remove{all:unset;cursor:pointer;font:600 13px/1 var(--font)!important;color:var(--muted)!important;background:none!important;border:0!important;padding:8px 2px!important;min-height:0!important;text-decoration:underline;text-underline-offset:3px}
html[data-theme] body.gallery-page #main-content .photo-card .tier-head .tier-remove:hover{color:var(--rose-deep)!important}
html[data-theme] body.gallery-page #main-content .tier-row{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;padding:0!important;background:none!important;border:0!important}
html[data-theme] body.gallery-page #main-content .tier-btn{display:flex!important;flex-direction:column;align-items:flex-start;gap:3px;min-height:58px!important;padding:10px 12px!important;border-radius:12px!important;background:var(--card)!important;border:1.5px solid rgba(40,20,60,.12)!important;color:var(--ink)!important;text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s}
html[data-theme] body.gallery-page #main-content .tier-btn b{font:700 15px/1.1 var(--display)}
html[data-theme] body.gallery-page #main-content .tier-btn small{font:500 12px/1.2 var(--font);color:var(--muted)}
html[data-theme] body.gallery-page #main-content .tier-btn:hover{border-color:rgba(40,20,60,.3)!important}
html[data-theme] body.gallery-page #main-content .tier-btn.active-std{background:var(--orchid-tint)!important;border-color:var(--orchid)!important;color:var(--orchid-deep)!important}
html[data-theme] body.gallery-page #main-content .tier-btn.active-vfx{background:var(--sky-tint)!important;border-color:var(--sky)!important;color:var(--sky-deep)!important}
html[data-theme] body.gallery-page #main-content .tier-btn:is(.active-std,.active-vfx) small{color:inherit;opacity:.8}
html[data-theme] body.gallery-page #main-content .vfx-note{margin-top:2px;border-radius:12px!important;border:1.5px solid var(--sky)!important;background:var(--card)!important;min-height:76px;font:400 14px/1.45 var(--font)}

/* Lightbox controls */
html[data-theme] body.gallery-page #lightbox .lb-select-btn{font-family:var(--display)!important;font-weight:700!important;background:#fff!important;color:var(--ink-fixed)!important;border:0!important}
html[data-theme] body.gallery-page #lightbox .lb-select-btn.is-selected{background:var(--orchid)!important;color:#fff!important}
html[data-theme] body.gallery-page #lightbox .lb-select-btn.is-vfx{background:var(--sky)!important;color:#fff!important}
html[data-theme] body.gallery-page #lightbox .lb-tier-row{background:rgba(255,255,255,.14)!important;border-radius:999px;padding:4px}
html[data-theme] body.gallery-page #lightbox .lb-tier-btn{font:700 14px/1 var(--display)!important;padding:12px 18px!important;border-radius:999px!important;border:0!important;background:transparent!important;color:rgba(255,255,255,.7)!important}
html[data-theme] body.gallery-page #lightbox .lb-tier-btn.active-std{background:#fff!important;color:var(--orchid-deep)!important}
html[data-theme] body.gallery-page #lightbox .lb-tier-btn.active-vfx{background:var(--sky)!important;color:#fff!important}

/* Contact pop-up */
html[data-theme] .gallery-page .nj-contact-open{all:unset;cursor:pointer;font:600 16px/1 var(--display);color:var(--orchid-deep);padding:12px 4px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--rose)}
.nj-contact{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 30px 80px -20px rgba(40,10,60,.45)}
.nj-contact::backdrop{background:rgba(30,12,44,.45);backdrop-filter:blur(4px)}
.nj-contact form,.nj-contact .nj-contact-done{padding:26px 26px 22px;display:grid;gap:14px}
.nj-contact form[hidden],.nj-contact .nj-contact-done[hidden]{display:none}
.nj-contact header{display:flex;justify-content:space-between;align-items:start;gap:12px}
.nj-contact::before{content:"";display:block;height:6px;background:linear-gradient(90deg,var(--rose) 0 33.3%,var(--orchid) 33.3% 66.6%,var(--sky) 66.6%)}
.nj-contact h2{margin:0;font:700 24px/1.15 var(--display);letter-spacing:-.02em}
.nj-contact-x{all:unset;cursor:pointer;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;font-size:24px;line-height:1;color:var(--muted);background:var(--bg-2,#f4f1f6)}
.nj-contact-sub{margin:-4px 0 0;font:400 14px/1.5 var(--font);color:var(--muted)}
.nj-contact-sub b{color:var(--orchid-deep)}
.nj-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nj-contact label{display:grid;gap:6px;font:600 13px/1 var(--font);color:var(--ink)}
.nj-contact :is(input,select,textarea){font:400 16px/1.4 var(--font);color:var(--ink);background:var(--card);border:1.5px solid rgba(40,20,60,.16);border-radius:12px;padding:11px 13px;width:100%;box-sizing:border-box}
.nj-contact :is(input,select,textarea):focus{outline:0;border-color:var(--orchid);box-shadow:0 0 0 4px var(--orchid-tint)}
.nj-contact textarea{resize:vertical;min-height:120px}
.nj-contact .nj-contact-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.nj-contact-status{margin:0;padding:10px 12px;border-radius:10px;background:var(--rose-tint);color:var(--rose-deep);font:500 14px/1.4 var(--font)}
.nj-contact footer{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:4px}
.nj-contact footer a{font:500 13px/1.3 var(--font);color:var(--muted)}
.nj-contact-done{text-align:center;justify-items:center}
.nj-contact-done p{margin:0;font:400 15px/1.5 var(--font);color:var(--muted)}
.nj-contact-done b{color:var(--ink);font-family:var(--display)}
@media(max-width:560px){.nj-contact-grid{grid-template-columns:1fr}.nj-contact footer{flex-direction:column-reverse;align-items:stretch}.nj-contact footer .nx-button{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){html.nn-motion .gallery-page .nj-gallery-steps li.is-current::before,html.nn-motion .gallery-page .nj-gallery-opening::before,html.nn-motion .gallery-page .nj-gallery-opening::after,html.nn-motion body.gallery-page #main-content .sel-badge.is-selected{animation:none}}

/* Nijio Rainbows keep their rainbow */
html[data-theme] body svg.nj-rainbow,html[data-theme] body svg[viewBox="0 0 48 38"],html[data-theme] body svg[viewBox="0 0 48 44"]{display:inline-block!important;flex:0 0 auto}
.nj-rainbow-title{display:flex;align-items:center;gap:10px}.nj-rainbow-title svg{width:38px;height:30px}
.account-rewards-icon svg{width:36px;height:30px}

/* ── Colour story beyond the homepage: tinted heroes with drifting shapes,
      each section owns one of rose / orchid / sky / peach ─────────────── */
html[data-theme] .client-portal-page #main-content>.nx-account-welcome{background:var(--orchid-tint)!important;border:0!important;position:relative;overflow:hidden;isolation:isolate}
html[data-theme] .client-portal-page .nx-account-welcome::before{content:"";position:absolute;z-index:-1;width:380px;height:380px;right:-90px;top:-170px;border-radius:50%;background:var(--rose-tint)}
html[data-theme] .client-portal-page .nx-account-welcome::after{content:""!important;position:absolute;z-index:-1;width:170px!important;height:170px!important;left:42%!important;right:auto!important;top:auto!important;bottom:-90px;border-radius:50%;background:var(--sky-tint)!important;opacity:1!important;font-size:0!important}
html.nn-motion .client-portal-page .nx-account-welcome::before{animation:nj-drift 24s ease-in-out infinite alternate}
html.nn-motion .client-portal-page .nx-account-welcome::after{animation:nj-drift 18s ease-in-out -5s infinite alternate-reverse}
html[data-theme] .client-portal-page .nx-account-welcome h1 span{background:var(--grad)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-fill-color:transparent;padding-right:.04em}
html[data-theme] .client-portal-page #galleries>h2,html[data-theme] .client-portal-page #bookings h2{font-family:var(--display)!important;letter-spacing:-.02em}
html[data-theme] .client-portal-page #galleries>h2::after{content:"";display:block;width:44px;height:5px;border-radius:5px;background:var(--rose);margin-left:4px}
html[data-theme] .client-portal-page #bookings h2::after{content:"";display:block;width:44px;height:5px;border-radius:5px;background:var(--sky);margin-left:4px}
html[data-theme] .client-portal-page #bookings .rounded-xl{background:var(--sky-tint)!important;border-color:transparent!important}
html[data-theme] .client-portal-page #loyalty{background:var(--peach-tint)!important;border:0!important}
html[data-theme] .client-portal-page #loyalty .grid>div{background:var(--card)!important;border:0!important}
html[data-theme] .client-portal-page #loyalty .grid strong{color:var(--rose-deep)!important}
html[data-theme] .client-portal-page #loyalty h3 svg{width:42px!important;height:34px!important}
html[data-theme] .client-portal-page aside .card a.bg-slate-50,html[data-theme] .client-portal-page .card a.bg-slate-50{background:var(--orchid-tint)!important;color:var(--orchid-deep)!important}
html[data-theme] .client-portal-page .card a.bg-slate-50 i{display:none}
html[data-theme] .client-portal-page .card button[onclick="openProfile()"]{background:var(--orchid-tint)!important;color:var(--orchid-deep)!important}

/* Gallery: section heads carry a colour, package panel gets its tint */
html[data-theme] body.gallery-page .nx-gallery-package{background:var(--orchid-tint)!important;border:0!important}
html[data-theme] body.gallery-page .gallery-guide{background:var(--peach-tint)!important;border:0!important}
html[data-theme] body.gallery-page .gallery-guide>header,html[data-theme] body.gallery-page .gallery-guide>div{background:transparent!important;border-color:rgba(242,180,143,.45)!important}
html[data-theme] body.gallery-page .gallery-guide .nijio-step-number{color:var(--rose-deep)!important;font-family:var(--display)!important}
html[data-theme] body.gallery-page #photo-grid-heading,html[data-theme] body.gallery-page .section-hd-text h2{font-family:var(--display)!important}
html[data-theme] body.gallery-page .nx-editing-studio{background:var(--sky-tint)!important;border:0!important}
html[data-theme] body.gallery-page .nx-delivered{background:var(--grad)!important}

/* ── Conventions page (schedule.php without ?book=1) ───────────────────── */
html[data-theme] body.cv-page{background:var(--bg)}
.cv-main{max-width:1180px;margin:0 auto;padding:clamp(24px,4vw,48px) var(--gut,20px) 96px}
.cv-hero{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:28px;padding:clamp(28px,5vw,64px);border-radius:var(--r-xl);background:var(--rose-tint)}
.cv-blob{position:absolute;z-index:-1;border-radius:50%}
.cv-b1{width:420px;height:420px;right:-120px;top:-180px;background:var(--orchid-tint)}
.cv-b2{width:200px;height:200px;left:30%;bottom:-110px;background:var(--sky-tint)}
.cv-b3{width:90px;height:90px;left:-30px;top:30px;background:var(--peach-tint)}
html.nn-motion .cv-b1{animation:nj-drift 26s ease-in-out infinite alternate}
html.nn-motion .cv-b2{animation:nj-drift 20s ease-in-out -7s infinite alternate-reverse}
html.nn-motion .cv-b3{animation:nj-drift 17s ease-in-out -3s infinite alternate}
.cv-kicker{display:block;margin-bottom:12px;font:600 14px/1 var(--font);color:var(--rose-deep)}
html[data-theme] .cv-hero h1{margin:0;font:700 clamp(44px,7vw,92px)/.95 var(--display);letter-spacing:-.045em;color:var(--ink)}
.cv-hero h1 span{display:block;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding-bottom:.08em}
.cv-hero p{max-width:46ch;margin:18px 0 0;font:400 18px/1.5 var(--font);color:var(--ink-2)}
.cv-hero .cv-from{font-size:16px;color:var(--muted)}.cv-from b{color:var(--rose-deep);font-family:var(--display)}
.cv-polaroid{justify-self:center;margin:0;padding:12px 12px 46px;background:#fff;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.08),0 30px 60px -28px rgba(60,20,80,.5);transform:rotate(3deg);max-width:340px;position:relative}
.cv-polaroid img{display:block;width:100%;height:auto;aspect-ratio:9/7;object-fit:cover}
.cv-polaroid figcaption{position:absolute;left:0;right:0;bottom:12px;text-align:center;font:400 19px/1 'Permanent Marker',var(--display);color:var(--orchid-deep)}
.cv-section-title{margin:clamp(36px,5vw,56px) 0 16px;font:700 clamp(26px,3vw,34px)/1.1 var(--display);letter-spacing:-.02em}
.cv-event-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
html[data-theme] .cv-event{display:flex;align-items:center;gap:16px;padding:14px 16px;border:2px solid var(--line)!important;border-radius:var(--r-lg)!important;background:var(--card)!important;text-align:left;cursor:pointer;color:var(--ink);transition:border-color .15s,transform .15s,background-color .15s}
html[data-theme] .cv-event:hover{border-color:var(--pk)!important;transform:translateY(-2px)}
html[data-theme] .cv-event[aria-current=true]{border-color:var(--pk)!important;background:var(--pk-tint)!important}
.cv-date{flex:none;display:grid;place-items:center;align-content:center;width:62px;height:62px;border-radius:16px;background:var(--pk);color:#fff}
.cv-date b{font:700 24px/1 var(--display)}.cv-date small{font:600 12px/1.2 var(--font);text-transform:uppercase;letter-spacing:.06em}
.cv-event-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.cv-event-copy strong{font:600 18px/1.2 var(--display)}
.cv-event-copy small{font-size:14px;color:var(--muted)}
.cv-event-copy em{font-style:normal;font-size:13px;font-weight:600;color:var(--pk-deep)}
.cv-event .cv-event-copy em{color:var(--pk-deep)}
.cv-schedule{margin-top:28px;padding:clamp(20px,3vw,32px);border-radius:var(--r-xl);background:var(--card);box-shadow:0 0 0 1px var(--line);--pk:var(--orchid);--pk-deep:var(--orchid-deep);--pk-tint:var(--orchid-tint)}
.cv-schedule[data-tone=tone-rose]{--pk:var(--rose);--pk-deep:var(--rose-deep);--pk-tint:var(--rose-tint)}
.cv-schedule[data-tone=tone-sky]{--pk:var(--sky);--pk-deep:var(--sky-deep);--pk-tint:var(--sky-tint)}
.cv-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px}
html[data-theme] .cv-toolbar h2{margin:0;font:700 clamp(24px,3vw,32px)/1.1 var(--display);letter-spacing:-.02em}
.cv-toolbar p{margin:4px 0 0;color:var(--muted)}
.cv-days{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 14px}
html[data-theme] .cv-days button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:120px;padding:10px 14px;border:2px solid var(--line)!important;border-radius:14px!important;background:var(--card)!important;color:var(--ink)!important;cursor:pointer}
.cv-days button strong{font:600 16px/1.2 var(--display)}.cv-days button small{font-size:13px;color:var(--pk-deep)}
html[data-theme] .cv-days button[aria-pressed=true]{background:var(--ink)!important;border-color:var(--ink)!important;color:var(--on-ink)!important}
.cv-days button[aria-pressed=true] small{color:#fff;opacity:.8}
.cv-summary{margin:0 0 10px;font-size:15px;color:var(--ink-2)}
.cv-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 16px;padding:0;list-style:none;font-size:13px;color:var(--muted)}
.cv-legend li{display:inline-flex;align-items:center;gap:7px}.cv-legend li::before{content:"";width:16px;height:16px;border-radius:5px}
.cv-legend .k-free::before{background:var(--pk)}
.cv-legend .k-taken::before{background:repeating-linear-gradient(135deg,#e7e1ea 0 4px,#f4f0f5 4px 8px)}
.cv-legend .k-break::before{background:var(--peach-tint);box-shadow:inset 0 0 0 2px var(--peach)}
.cv-timeline{display:flex;flex-direction:column;gap:6px}
.cv-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:stretch}
.cv-hour{padding-top:14px;font:600 14px/1 var(--display);color:var(--muted);font-variant-numeric:tabular-nums}
.cv-cells{display:flex;gap:4px;min-height:56px}
.cv-gap{min-width:0}
.cv-block{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:6px 10px;border-radius:10px;overflow:hidden;white-space:nowrap;text-decoration:none!important}
.cv-block b{font:600 14px/1.1 var(--display);overflow:hidden;text-overflow:ellipsis}
.cv-block small{font-size:12px;opacity:.85;overflow:hidden;text-overflow:ellipsis}
.cv-block.is-free{background:var(--pk);color:#fff!important;transition:filter .15s,transform .15s}
a.cv-block.is-free:hover{filter:brightness(1.08);transform:translateY(-1px)}
.cv-block.is-taken,.cv-block.is-closed{background:repeating-linear-gradient(135deg,#ece6ef 0 6px,#f6f2f7 6px 12px);color:#8a7f93}
.cv-block.is-blocked{background:#f1edf3;color:#8a7f93}
.cv-block.is-break{background:var(--peach-tint);color:#9a5a33;box-shadow:inset 0 0 0 2px var(--peach)}
.cv-note{padding:22px;border-radius:var(--r);background:var(--bg-2);color:var(--muted)}
.cv-empty{margin-top:32px;padding:32px;border-radius:var(--r-xl);background:var(--sky-tint);text-align:center}
@media(max-width:820px){.cv-hero{grid-template-columns:1fr}.cv-polaroid{max-width:260px;transform:rotate(2deg)}}
@media(max-width:560px){.cv-row{grid-template-columns:40px minmax(0,1fr);gap:6px}.cv-hour{font-size:12px}.cv-block{padding:5px 6px}.cv-block small{display:none}.cv-block b{font-size:12px}.cv-days button{min-width:0;flex:1}.cv-toolbar .nj-button{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){html.nn-motion .cv-blob{animation:none}}
.tone-rose{--pk:var(--rose);--pk-deep:var(--rose-deep);--pk-tint:var(--rose-tint)}
.tone-orchid{--pk:var(--orchid);--pk-deep:var(--orchid-deep);--pk-tint:var(--orchid-tint)}
.tone-sky{--pk:var(--sky);--pk-deep:var(--sky-deep);--pk-tint:var(--sky-tint)}
html[data-theme] body.cv-page .cv-event :is(strong,small){color:var(--ink)!important;opacity:1!important}
html[data-theme] body.cv-page .cv-event small{color:var(--muted)!important}
html[data-theme] body.cv-page .cv-event em{color:var(--pk-deep)!important;opacity:1!important}
html[data-theme] body.cv-page .cv-event .cv-date,html[data-theme] body.cv-page .cv-event .cv-date *{background-color:var(--pk);color:#fff!important;opacity:1!important}
html[data-theme] body.cv-page .cv-event .cv-date *{background:none}
html[data-theme] body.cv-page .cv-event{box-shadow:none!important;outline:0}

/* One content width across the site: the homepage frame (var(--w) incl. gutters) */
html[data-theme] body:is(.gallery-page,.client-portal-page) #main-content,
html[data-theme] body .nx-contact-layout,
html[data-theme] body .cv-main{max-width:var(--w)!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--gut)!important;padding-right:var(--gut)!important;box-sizing:border-box}
html[data-theme] body.gallery-page #sticky-bar>div{max-width:var(--w)!important;padding-left:var(--gut)!important;padding-right:var(--gut)!important;margin-left:auto!important;margin-right:auto!important}

/* ═════════════════════ DARK MODE (html[data-mode=dark], set by theme.js) ═════════════════════
   Same brand colours on a deep plum night. Tokens flip; the rules below cover
   the few places that use fixed colours or the older utility classes. */
html[data-mode=dark]{
  --ink:#F4EEF8;--ink-2:#D9CFE3;--muted:#A99FB8;--line:#3A3047;--line-2:#2C2437;
  --bg:#16101D;--bg-2:#1E1728;--bg-3:#2A2135;--card:#211A2C;--on-ink:#16101D;
  --rose-deep:#F58CBF;--rose-tint:#3A1B2D;--orchid-deep:#D2A5F2;--orchid-tint:#2D1C3E;
  --sky-deep:#93C0F6;--sky-tint:#16273E;--peach-tint:#38251A;
  --ok:#5bd38a;--warn:#f0a35a;--bad:#ff7a93;
  --nx-paper:#16101D;--nx-surface:#211A2C;--nx-soft:#1E1728;--nx-ink:#F4EEF8;--nx-muted:#A99FB8;--nx-lilac:#2D1C3E;--nx-line:#3A3047;--nx-night:#0F0A15;
  color-scheme:dark;
}
html[data-mode=dark],html[data-mode=dark] body{background:var(--bg)!important;color:var(--ink)}
html[data-mode=dark] .nx-header{background:rgba(22,16,29,.86)!important;box-shadow:inset 0 -1px 0 var(--line-2)!important}
html[data-mode=dark] .nx-brand img{filter:brightness(0) invert(1)!important}
html[data-mode=dark] :is(.nx-mobile-menu,.nx-mobile-shortcuts){background:var(--card)!important;color:var(--ink)!important}
html[data-mode=dark] :is(h1,h2,h3,h4,h5,strong,b,label,legend,summary){color:inherit}
html[data-mode=dark] :is(input,select,textarea){background:var(--card)!important;color:var(--ink)!important;border-color:var(--line)!important}
html[data-mode=dark] ::placeholder{color:#7f7590!important}
html[data-mode=dark] .nx-footer{background:#0F0A15!important}
/* Older utility classes still used on the account, gallery and checkout pages */
html[data-mode=dark] :is(.bg-white,.bg-gray-50,.bg-slate-50,.bg-slate-100,.bg-white\/80,.bg-white\/90,.bg-white\/95){background-color:var(--card)!important}
html[data-mode=dark] :is(.bg-purple-50,.bg-violet-50,.bg-brand-pale,.bg-purple-50\/60,.bg-purple-50\/40,.bg-purple-50\/70,.bg-violet-100,.bg-purple-100){background-color:var(--orchid-tint)!important}
html[data-mode=dark] :is(.bg-amber-50,.bg-amber-50\/60,.bg-orange-50,.bg-yellow-50){background-color:var(--peach-tint)!important}
html[data-mode=dark] :is(.bg-emerald-50,.bg-green-50){background-color:#16301f!important}
html[data-mode=dark] :is(.bg-red-50,.bg-rose-50){background-color:#3a1520!important}
html[data-mode=dark] :is(.bg-blue-50,.bg-sky-50,.bg-indigo-50){background-color:var(--sky-tint)!important}
html[data-mode=dark] :is(.from-white){--tw-gradient-from:var(--card)!important}
html[data-mode=dark] :is(.to-violet-50,.to-purple-50){--tw-gradient-to:var(--orchid-tint)!important}
html[data-mode=dark] :is(.text-slate-900,.text-slate-800,.text-slate-700,.text-gray-900,.text-gray-800,.text-gray-700,.text-brand-darkest,.text-brand-dark,.text-purple-950,.text-purple-900){color:var(--ink)!important}
html[data-mode=dark] :is(.text-slate-600,.text-slate-500,.text-slate-400,.text-slate-300,.text-gray-600,.text-gray-500,.text-gray-400,.text-purple-900\/70){color:var(--muted)!important}
html[data-mode=dark] :is(.text-amber-900,.text-amber-800,.text-amber-800\/80,.text-amber-700){color:#f3c69a!important}
html[data-mode=dark] :is(.text-emerald-700,.text-emerald-600,.text-green-700){color:#6fdc9b!important}
html[data-mode=dark] :is(.text-red-700,.text-red-600){color:#ff8fa3!important}
html[data-mode=dark] :is(.text-brand-primary,.text-purple-700,.text-violet-700,.text-violet-800,.text-violet-600,.text-brand-mid){color:var(--orchid-deep)!important}
html[data-mode=dark] :is(.border-slate-100,.border-slate-200,.border-gray-100,.border-gray-200,.border-purple-50,.border-purple-100,.border-purple-200,.border-violet-100,.border-violet-200,.border-amber-200,.border-emerald-200,.border-red-200){border-color:var(--line)!important}
html[data-mode=dark] .divide-slate-100>*+*{border-color:var(--line)!important}
/* Fixed-white pieces keep dark text */
html[data-mode=dark] :is(.polaroid,.cv-polaroid,.deck-thumb){color:var(--ink-fixed)}
html[data-mode=dark] .btn-on-dark{color:var(--ink-fixed)!important}
/* Homepage shapes: same colours, quieter on the dark page */
html[data-mode=dark] .hero-shapes .blob{opacity:1}
html[data-mode=dark] .hero-shapes .blob.b1{background:linear-gradient(140deg,#4A1D3C 0%,#3A1F5C 55%,#1C3357 100%)}
html[data-mode=dark] .hero-shapes .blob.b2{background:#4A1A36}
html[data-mode=dark] .hero-shapes .blob.b3{background:#1B3052}
html[data-mode=dark] .hero-shapes .blob.b4{background:#47291A}
html[data-mode=dark] .hero-shapes .shape{opacity:.8}
html[data-mode=dark] .quick .code form .nx-button{background:#16101D!important;color:#fff!important}
html[data-mode=dark] .path{background:#0F0A15}
html[data-mode=dark] .polaroid{box-shadow:0 2px 4px rgba(0,0,0,.4),0 30px 60px -24px rgba(0,0,0,.8)}
/* Toggle button */
.nx-mode{display:inline-grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;padding:0}
.nx-mode:hover{border-color:var(--orchid);color:var(--orchid-deep)}
.nx-mode svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nx-mode .i-moon{fill:currentColor;stroke:none}
.nx-mode .i-sun{display:none}
html[data-mode=dark] .nx-mode .i-sun{display:block}html[data-mode=dark] .nx-mode .i-moon{display:none}
html[data-mode=dark] body.gallery-page #sticky-bar{background:rgba(22,16,29,.92)!important;border-color:var(--line)!important;box-shadow:0 10px 30px -18px rgba(0,0,0,.8)!important;color:var(--ink)}
html[data-mode=dark] :is(.dg-block.is-taken,.dg-block.is-closed,.cv-block.is-taken,.cv-block.is-closed){background:repeating-linear-gradient(135deg,#2a2234 0 6px,#221b2b 6px 12px)!important;color:#8f84a0!important}
html[data-mode=dark] :is(.dg-block.is-blocked,.cv-block.is-blocked){background:#262030!important;color:#8f84a0!important}
html[data-mode=dark] :is(.dg-legend .k-taken,.cv-legend .k-taken)::before{background:repeating-linear-gradient(135deg,#3a3146 0 4px,#2a2234 4px 8px)}
html[data-mode=dark] :is(.dg-block.is-break,.cv-block.is-break){color:#f3c69a!important}
html[data-mode=dark] .dg-cell.is-nofit{color:#6e6480}
html[data-mode=dark] .nx-gallery-tools{background:rgba(22,16,29,.9)!important;color:var(--ink)}
html[data-theme] body main.nx-portfolio{max-width:var(--w)!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--gut)!important;padding-right:var(--gut)!important;box-sizing:border-box}
/* Camera flash on the polaroids: a soft brand-coloured glow in dark mode, never a white blast */
html[data-mode=dark] .hero-flash{inset:auto!important;left:6%!important;bottom:14%!important;width:140px!important;height:140px!important;background:radial-gradient(circle,rgba(255,255,255,.9) 0,rgba(255,240,250,.35) 30%,rgba(255,255,255,0) 68%)!important;mix-blend-mode:screen;z-index:9!important}
