/* New Identity Core components (inherits theme tokens, with fallbacks) */
:root {
	--ni-gold: var(--wp--preset--color--gold, #C9A449);
	--ni-gold-light: var(--wp--preset--color--gold-light, #E3C77A);
	--ni-black: var(--wp--preset--color--black, #0A0A0A);
	--ni-surface: var(--wp--preset--color--surface, #141414);
	--ni-surface-2: var(--wp--preset--color--surface-2, #1E1E1E);
	--ni-line: var(--wp--preset--color--line, #2C2C2C);
	--ni-muted: var(--wp--preset--color--muted, #B4B4B4);
	--ni-heading: var(--wp--preset--font-family--heading, Oswald, 'Arial Narrow', sans-serif);
	--ni-ease: cubic-bezier(.2,.7,.2,1);
}

.ni-eyebrow { font-size: .78rem; letter-spacing: .28em; text-transform: uppercase; color: var(--ni-gold); font-weight: 600; display: flex; align-items: center; gap: .75rem; margin: 0 0 .6rem; }
.ni-eyebrow::before { content: ""; width: 32px; height: 1px; background: var(--ni-gold); }
.ni-small { font-size: .875rem; color: var(--ni-muted); }
.ni-empty { color: var(--ni-muted); text-align: center; padding: 2rem 0; }
.ni-wide { max-width: var(--wp--style--global--wide-size, 1240px) !important; margin-left: auto !important; margin-right: auto !important; }
.ni-section h2 { margin-top: 0; margin-bottom: 1.6rem; }

/* Buttons */
.ni-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; background: var(--ni-gold); color: var(--ni-black) !important; font-family: var(--wp--preset--font-family--body, inherit); text-transform: uppercase; letter-spacing: .1em; font-weight: 600; font-size: .88rem; padding: .85rem 1.5rem; border: 1px solid var(--ni-gold); border-radius: 4px; text-decoration: none !important; cursor: pointer; transition: background .25s, color .25s, transform .25s var(--ni-ease); }
.ni-btn:hover { background: var(--ni-gold-light); transform: translateY(-2px); }
.ni-btn-ghost { background: transparent; color: var(--ni-gold) !important; }
.ni-btn-ghost:hover { background: var(--ni-gold); color: var(--ni-black) !important; }
.ni-btn[disabled], .ni-btn.is-busy { opacity: .6; pointer-events: none; }
.ni-btn.is-busy span::after { content: "…"; }

/* Placeholder image */
.ni-ph { aspect-ratio: 4/5; display: grid; place-items: center; background: repeating-linear-gradient(135deg, #151515 0 12px, #191919 12px 24px); border: 1px solid var(--ni-line); }
.ni-ph span { font-family: var(--ni-heading); color: var(--ni-gold); letter-spacing: .2em; text-transform: uppercase; font-size: .85rem; opacity: .7; }

/* Studio cards */
.ni-studio-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); gap: 1.25rem; }
.ni-studio-card { background: var(--ni-surface); border: 1px solid var(--ni-line); border-radius: 4px; overflow: hidden; display: flex; flex-direction: column; transition: border-color .3s, transform .3s var(--ni-ease); }
.ni-studio-card:hover { border-color: var(--ni-gold); transform: translateY(-3px); }
.ni-studio-media { position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; }
.ni-studio-media img, .ni-studio-media .ni-ph { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto; transition: transform .6s var(--ni-ease); }
.ni-studio-card:hover .ni-studio-media img { transform: scale(1.05); }
.ni-studio-media .ni-open { position: absolute; left: .75rem; top: .75rem; }
.ni-studio-body { padding: 1.25rem 1.3rem 1.4rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.ni-studio-name { font-size: 1.2rem; margin: 0; }
.ni-studio-name a { color: #fff; text-decoration: none; }
.ni-studio-name a:hover { color: var(--ni-gold); }
.ni-studio-addr, .ni-studio-phone { margin: 0; color: var(--ni-muted); font-size: .92rem; }
.ni-studio-phone a { color: #fff; text-decoration: none; }
.ni-studio-actions { margin-top: auto; padding-top: 1rem; display: flex; gap: .5rem; flex-wrap: wrap; }
.ni-studio-actions .ni-btn { flex: 1; padding: .7rem .9rem; font-size: .82rem; }

.ni-open { display: inline-flex; align-items: center; gap: .4rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; padding: .3rem .6rem; border-radius: 99px; background: rgba(10,10,10,.8); color: #fff; font-family: var(--wp--preset--font-family--body); font-weight: 600; vertical-align: middle; }
.ni-open:empty { display: none; }
.ni-open::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #777; }
.ni-open.is-open::before { background: #3ddc84; box-shadow: 0 0 0 3px rgba(61,220,132,.2); }
.ni-open.is-closed::before { background: #e5534b; }

.ni-footer-studios { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1.2rem; font-size: .95rem; }
.ni-footer-studios li span { display: block; font-size: .85rem; }
.ni-footer-studios li span a { color: var(--ni-muted) !important; }

/* Studio hero */
.ni-hero-studio { position: relative; min-height: min(78vh, 720px); display: flex; align-items: flex-end; background: var(--ni-surface) var(--ni-hero, none) center/cover no-repeat; margin-bottom: 0 !important; }
.ni-hero-studio::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,.25) 0%, rgba(10,10,10,.55) 45%, rgba(10,10,10,.96) 100%); }
.ni-hero-inner { position: relative; width: 100%; max-width: 1240px; margin: 0 auto; padding: 6rem clamp(1rem, 4vw, 2rem) 3.5rem; }
.ni-hero-inner h1 { font-size: clamp(2.2rem, 6vw, 4.4rem); margin: 0 0 .75rem; line-height: 1.02; }
.ni-hero-sub { max-width: 640px; font-size: 1.15rem; color: #e6e6e6; }
.ni-hero-meta { list-style: none; padding: 0; margin: 1.2rem 0 1.6rem; display: flex; flex-wrap: wrap; gap: .6rem 1.6rem; font-size: .95rem; }
.ni-hero-meta a { color: #fff; text-decoration: none; border-bottom: 1px solid var(--ni-gold); }
.ni-hero-actions { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; }

/* Breadcrumbs */
.ni-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 0 0 1rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ni-muted); }
.ni-breadcrumbs li + li::before { content: "/"; margin-right: .4rem; color: var(--ni-gold); }
.ni-breadcrumbs a { color: var(--ni-muted); text-decoration: none; }
.ni-breadcrumbs a:hover { color: var(--ni-gold); }

/* Gallery & portfolio */
.ni-gallery, .ni-work-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(46%, 240px), 1fr)); gap: .6rem; }
.ni-gallery-item { display: block; overflow: hidden; aspect-ratio: 1; background: var(--ni-surface); position: relative; }
.ni-gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ni-ease), filter .4s; }
.ni-gallery-item:hover img { transform: scale(1.06); filter: brightness(.8); }
.ni-gallery-item::after { content: "+"; position: absolute; inset: auto .6rem .4rem auto; color: var(--ni-gold); font-size: 1.6rem; opacity: 0; transition: opacity .3s; }
.ni-gallery-item:hover::after { opacity: 1; }
.ni-work { margin: 0; }
.ni-work figcaption { font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; padding: .4rem 0 0; }
.ni-work figcaption a { color: var(--ni-muted); text-decoration: none; }
.ni-work figcaption a:hover { color: var(--ni-gold); }
.ni-load-more-wrap { text-align: center; margin-top: 2rem; }
[hidden] { display: none !important; }

/* Filters */
.ni-filters { display: flex; flex-wrap: wrap; gap: .75rem 1rem; justify-content: space-between; align-items: center; margin-bottom: 1.6rem; }
.ni-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ni-chips button { background: transparent; border: 1px solid var(--ni-line); color: #ddd; padding: .5rem 1rem; border-radius: 99px; font: 600 .8rem/1 var(--wp--preset--font-family--body); text-transform: uppercase; letter-spacing: .1em; cursor: pointer; transition: all .2s; }
.ni-chips button:hover { border-color: var(--ni-gold); color: var(--ni-gold); }
.ni-chips button.is-active { background: var(--ni-gold); color: var(--ni-black); border-color: var(--ni-gold); }
.ni-style-select select { background: var(--ni-surface); color: #fff; border: 1px solid var(--ni-line); padding: .55rem 2rem .55rem .9rem; border-radius: 4px; }

/* Artist cards */
.ni-artist-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(46%, 230px), 1fr)); gap: 1.1rem; }
.ni-artist-grid.is-carousel { grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .75rem; scrollbar-color: var(--ni-gold) var(--ni-surface); }
.ni-artist-grid.is-carousel > * { scroll-snap-align: start; }
.ni-artist-card { background: var(--ni-surface); border: 1px solid var(--ni-line); border-radius: 4px; overflow: hidden; transition: border-color .3s, transform .3s var(--ni-ease); }
.ni-artist-card:hover { border-color: var(--ni-gold); transform: translateY(-3px); }
.ni-artist-link { display: block; color: inherit; text-decoration: none; height: 100%; }
.ni-artist-media { aspect-ratio: 4/5; overflow: hidden; }
.ni-artist-media img, .ni-artist-media .ni-ph { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.35); transition: transform .6s var(--ni-ease), filter .4s; }
.ni-artist-card:hover .ni-artist-media img { transform: scale(1.05); filter: none; }
.ni-artist-body { padding: 1rem 1.1rem 1.2rem; }
.ni-artist-role { margin: 0; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ni-gold); }
.ni-artist-name { margin: .2rem 0 .25rem; font-size: 1.1rem; color: #fff; }
.ni-artist-studio, .ni-artist-styles { margin: 0; font-size: .85rem; color: var(--ni-muted); }
.ni-artist-cta { display: inline-block; margin-top: .7rem; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ni-gold); }

/* Artist profile */
.ni-artist-hero { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 5vw, 4rem); padding: var(--wp--preset--spacing--60, 4rem) 0 var(--wp--preset--spacing--50, 3rem); max-width: 1240px; margin: 0 auto; align-items: start; }
.ni-artist-photo { position: sticky; top: 100px; }
.ni-artist-photo img, .ni-artist-photo .ni-ph { width: 100%; aspect-ratio: 4/5; object-fit: cover; border: 1px solid var(--ni-gold); padding: 6px; }
.ni-artist-intro h1 { margin: 0 0 .5rem; font-size: clamp(2rem, 5vw, 3.6rem); }
.ni-artist-at { color: var(--ni-muted); margin: 0 0 .5rem; }
.ni-artist-spec { font-size: 1.1rem; color: #fff; }
.ni-tags { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; }
.ni-tags li { border: 1px solid var(--ni-gold); color: var(--ni-gold); padding: .3rem .75rem; border-radius: 99px; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.ni-artist-bio { color: #ddd; margin: 1rem 0 1.5rem; }
.ni-books { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ni-muted); }
.ni-books-open { color: #3ddc84; }
@media (max-width: 781px) { .ni-artist-hero { grid-template-columns: 1fr; } .ni-artist-photo { position: static; max-width: 420px; } }

/* Services */
.ni-service-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 1px; background: var(--ni-line); border: 1px solid var(--ni-line); }
.ni-service { background: var(--ni-black); padding: 1.6rem 1.4rem; }
.ni-service h3 { font-size: 1.05rem; margin: 0 0 .5rem; color: var(--ni-gold); }
.ni-service p { margin: 0; color: var(--ni-muted); font-size: .95rem; }

/* Studio info */
.ni-studio-info { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 3rem; }
.ni-studio-info .ni-map { grid-column: 1 / -1; }
.ni-nap { display: grid; grid-template-columns: max-content 1fr; gap: .6rem 1.2rem; margin: 0 0 1.2rem; }
.ni-nap dt { color: var(--ni-gold); text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; padding-top: .2rem; }
.ni-nap dd { margin: 0; }
.ni-hours-table { width: 100%; border-collapse: collapse; }
.ni-hours-table th, .ni-hours-table td { text-align: left; padding: .55rem 0; border-bottom: 1px solid var(--ni-line); font-weight: 400; }
.ni-hours-table td { text-align: right; color: var(--ni-muted); }
.ni-hours-table tr.is-today th, .ni-hours-table tr.is-today td { color: var(--ni-gold); font-weight: 600; }
.ni-map { aspect-ratio: 21/8; min-height: 280px; background: var(--ni-surface) repeating-linear-gradient(45deg, transparent 0 20px, rgba(201,164,73,.04) 20px 40px); border: 1px solid var(--ni-line); display: grid; place-items: center; }
.ni-map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(1) invert(.9) contrast(.9); }
.ni-map-load { background: transparent; border: 1px solid var(--ni-gold); color: var(--ni-gold); padding: 1rem 1.6rem; cursor: pointer; display: grid; gap: .2rem; font: 600 .9rem var(--wp--preset--font-family--body, inherit); text-transform: uppercase; letter-spacing: .1em; }
.ni-map-load small { font: .72rem var(--wp--preset--font-family--body); color: var(--ni-muted); text-transform: none; letter-spacing: 0; }
.ni-socials { display: flex; gap: .5rem; flex-wrap: wrap; }
.ni-social { border: 1px solid var(--ni-line); padding: .45rem .9rem; border-radius: 99px; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: #fff !important; text-decoration: none; }
.ni-social:hover { border-color: var(--ni-gold); color: var(--ni-gold) !important; }
@media (max-width: 781px) { .ni-studio-info { grid-template-columns: 1fr; } .ni-map { aspect-ratio: 4/3; } }

/* Reviews */
.ni-review-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1.1rem; }
.ni-review { margin: 0; background: var(--ni-surface); border: 1px solid var(--ni-line); padding: 1.5rem; border-radius: 4px; display: flex; flex-direction: column; gap: .8rem; }
.ni-stars { color: var(--ni-gold); letter-spacing: .15em; }
.ni-review blockquote { margin: 0; font-size: 1.02rem; color: #e8e8e8; border: 0; padding: 0; }
.ni-review figcaption { font-size: .85rem; color: var(--ni-muted); margin-top: auto; }

/* Voucher band */
.ni-voucher-band { background: radial-gradient(ellipse at center, rgba(201,164,73,.18), transparent 65%), var(--ni-surface); border-top: 1px solid var(--ni-line); border-bottom: 1px solid var(--ni-line); text-align: center; margin-top: var(--wp--preset--spacing--50, 3rem) !important; }
.ni-voucher-inner { max-width: 640px; margin: 0 auto; padding: 0 1rem; }
.ni-voucher-inner .ni-eyebrow { justify-content: center; }
.ni-voucher-inner .ni-eyebrow::after { content: ""; width: 32px; height: 1px; background: var(--ni-gold); }
.ni-voucher-inner p { color: var(--ni-muted); }

/* Latest posts */
.ni-post-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 1.2rem; }
.ni-post-mini a { display: block; background: var(--ni-surface); border: 1px solid var(--ni-line); color: inherit; text-decoration: none; border-radius: 4px; overflow: hidden; height: 100%; transition: border-color .3s; }
.ni-post-mini a:hover { border-color: var(--ni-gold); }
.ni-post-mini img, .ni-post-mini .ni-ph { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.ni-post-mini div { padding: 1.1rem 1.2rem 1.3rem; }
.ni-post-mini time { color: var(--ni-gold); font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; }
.ni-post-mini h3 { font-size: 1.05rem; margin: .35rem 0; color: #fff; }
.ni-post-mini p { margin: 0; color: var(--ni-muted); font-size: .92rem; }

/* Forms */
.ni-form { background: var(--ni-surface); border: 1px solid var(--ni-line); border-top: 2px solid var(--ni-gold); padding: clamp(1.25rem, 4vw, 2.25rem); border-radius: 4px; display: grid; gap: 1.1rem; }
.ni-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.1rem; }
.ni-span-2 { grid-column: 1 / -1; }
@media (max-width: 640px) { .ni-grid-2 { grid-template-columns: 1fr; } }
.ni-field { display: grid; gap: .4rem; }
.ni-field label { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: #ddd; font-weight: 600; }
.ni-hint { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--ni-muted); }
.ni-form input[type=text], .ni-form input[type=email], .ni-form input[type=tel], .ni-form input[type=number], .ni-form input[type=date], .ni-form select, .ni-form textarea {
	width: 100%; background: var(--ni-black); color: #fff; border: 1px solid var(--ni-line); border-radius: 4px; padding: .8rem .9rem; font: inherit; font-size: 1rem; transition: border-color .2s, box-shadow .2s; color-scheme: dark;
}
.ni-form input:focus, .ni-form select:focus, .ni-form textarea:focus { outline: none; border-color: var(--ni-gold); box-shadow: 0 0 0 3px rgba(201,164,73,.18); }
.ni-form input[type=file] { color: var(--ni-muted); font-size: .9rem; padding: .7rem; border: 1px dashed var(--ni-line); border-radius: 4px; background: var(--ni-black); width: 100%; }
.ni-form input[type=file]::file-selector-button { background: var(--ni-gold); color: var(--ni-black); border: 0; padding: .5rem .9rem; margin-right: .8rem; font-weight: 700; cursor: pointer; border-radius: 3px; }
.req { color: var(--ni-gold); }
.ni-check { display: flex; gap: .7rem; align-items: flex-start; font-size: .92rem; color: #ddd; cursor: pointer; }
.ni-check input { width: 18px; height: 18px; margin-top: .15rem; accent-color: var(--ni-gold); flex: none; }
.ni-consents { display: grid; gap: .7rem; }
.is-invalid input, .is-invalid select, .is-invalid textarea, input.is-invalid { border-color: #e5534b !important; }
.ni-check.is-invalid, .ni-yn.is-invalid, .ni-studio-pick.is-invalid { color: #ff8d86; }
.ni-form-msg { padding: .9rem 1rem; border-left: 3px solid var(--ni-gold); background: rgba(201,164,73,.08); font-size: .95rem; }
.ni-form-msg.is-error { border-color: #e5534b; background: rgba(229,83,75,.1); }
.ni-submit { width: 100%; padding: 1rem; font-size: 1rem; }
.ni-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ni-file-preview { display: flex; flex-wrap: wrap; gap: .5rem; }
.ni-file-chip { display: flex; align-items: center; gap: .5rem; background: var(--ni-black); border: 1px solid var(--ni-line); padding: .3rem .6rem .3rem .3rem; font-size: .8rem; max-width: 100%; }
.ni-file-chip img { width: 38px; height: 38px; object-fit: cover; }
.ni-file-chip.is-too-big { border-color: #e5534b; }
.ni-success, .ni-success-static, .ni-voucher-thanks { text-align: center; padding: 2.5rem 1.5rem; background: var(--ni-surface); border: 1px solid var(--ni-gold); border-radius: 4px; }
.ni-success-icon { width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 50%; border: 2px solid var(--ni-gold); color: var(--ni-gold); display: grid; place-items: center; font-size: 1.8rem; }
.ni-voucher-thanks .ni-btn { margin: .3rem; }

/* Voucher picker */
.ni-step { display: flex; align-items: center; gap: .75rem; margin-top: .5rem; }
.ni-step h3 { margin: 0; font-size: 1rem; }
.ni-step-n { width: 30px; height: 30px; border-radius: 50%; background: var(--ni-gold); color: var(--ni-black); display: grid; place-items: center; font-weight: 700; font-family: var(--ni-heading); }
.ni-studio-pick, .ni-amounts { display: grid; gap: .6rem; }
.ni-studio-pick { grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr)); }
.ni-amounts { grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); }
.ni-pick { position: relative; cursor: pointer; }
.ni-pick input { position: absolute; opacity: 0; inset: 0; }
.ni-pick > span { display: grid; gap: .15rem; border: 1px solid var(--ni-line); background: var(--ni-black); padding: .9rem 1rem; border-radius: 4px; text-align: center; transition: all .2s; }
.ni-pick small { color: var(--ni-muted); font-size: .78rem; }
.ni-amount > span { font-family: var(--ni-heading); font-size: 1.05rem; }
.ni-pick:hover > span { border-color: var(--ni-gold); }
.ni-pick input:checked + span { border-color: var(--ni-gold); background: rgba(201,164,73,.12); box-shadow: inset 0 0 0 1px var(--ni-gold); color: var(--ni-gold-light); }
.ni-pick input:focus-visible + span { outline: 2px solid var(--ni-gold); outline-offset: 2px; }
.ni-voucher-summary { font-family: var(--ni-heading); text-transform: uppercase; color: var(--ni-gold); text-align: center; font-size: .95rem; }
.ni-voucher-summary:empty { display: none; }
.ni-secure { text-align: center; }

/* Consent form */
.ni-consent fieldset { border: 1px solid var(--ni-line); padding: 1.2rem; border-radius: 4px; margin: 0; }
.ni-consent legend { font-family: var(--ni-heading); text-transform: uppercase; letter-spacing: 0; font-size: .95rem; color: var(--ni-gold); padding: 0 .5rem; }
.ni-medical { display: grid; gap: 0; margin-bottom: 1rem; }
.ni-yn { display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; align-items: center; padding: .65rem 0; border-bottom: 1px solid var(--ni-line); font-size: .95rem; }
.ni-yn label { display: flex; gap: .35rem; align-items: center; cursor: pointer; }
.ni-yn input { accent-color: var(--ni-gold); width: 18px; height: 18px; }
.ni-consent .ni-check { margin-bottom: .7rem; }
.ni-sig { position: relative; border: 1px solid var(--ni-line); border-radius: 4px; overflow: hidden; background: #fff; touch-action: none; }
.ni-sig canvas { display: block; width: 100%; height: 180px; cursor: crosshair; }
.ni-sig-clear { position: absolute; right: .5rem; top: .5rem; background: #eee; border: 0; padding: .3rem .7rem; font-size: .75rem; cursor: pointer; border-radius: 3px; color: #111; }

/* Lightbox */
.ni-lightbox { position: fixed; inset: 0; z-index: 9999; background: rgba(5,5,5,.96); display: none; align-items: center; justify-content: center; padding: 3rem 4rem; }
.ni-lightbox.is-open { display: flex; }
.ni-lightbox figure { margin: 0; max-width: 100%; max-height: 100%; display: grid; gap: .8rem; justify-items: center; }
.ni-lightbox img { max-width: 100%; max-height: calc(100vh - 9rem); object-fit: contain; }
.ni-lightbox figcaption { color: #ddd; font-size: .9rem; text-align: center; }
.ni-lightbox figcaption a { color: var(--ni-gold); }
.ni-lightbox button { position: absolute; background: none; border: 0; color: #fff; font-size: 2.6rem; cursor: pointer; width: 3rem; height: 3rem; line-height: 1; }
.ni-lightbox button:hover { color: var(--ni-gold); }
.ni-lb-close { top: .75rem; right: .75rem; }
.ni-lb-prev { left: .5rem; top: 50%; transform: translateY(-50%); }
.ni-lb-next { right: .5rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) { .ni-lightbox { padding: 3.5rem .5rem; } .ni-lb-prev, .ni-lb-next { top: auto; bottom: .5rem; transform: none; } }

/* ===================== Carousels (v1.1) ===================== */
.ni-carousel { position: relative; --ni-gap: 0px; }
.ni-car-track { display: flex; gap: var(--ni-gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -webkit-overflow-scrolling: touch; outline: none; }
.ni-car-track::-webkit-scrollbar { display: none; }
.ni-car-slide { flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always; position: relative; min-width: 0; }
.ni-car-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ni-car-btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(201,164,73,.7); background: rgba(10,10,10,.55); color: var(--ni-gold); display: grid; place-items: center; cursor: pointer; transition: background .2s, color .2s, opacity .2s; padding: 0; }
.ni-car-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ni-car-btn:hover, .ni-car-btn:focus-visible { background: var(--ni-gold); color: var(--ni-black); }
.ni-car-btn[disabled] { opacity: .35; pointer-events: none; }
.ni-car-prev { left: 12px; } .ni-car-next { right: 12px; }
.ni-car-dots { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 3; display: flex; justify-content: center; gap: 8px; pointer-events: none; }
.ni-car-dots button { pointer-events: auto; width: 9px; height: 9px; padding: 0; border-radius: 99px; border: 1px solid var(--ni-gold); background: transparent; cursor: pointer; transition: width .3s, background .3s; }
.ni-car-dots button[aria-selected="true"] { width: 26px; background: var(--ni-gold); }
@media (hover: none) { .ni-car-media .ni-car-btn, .ni-car-hero .ni-car-btn { display: none; } }

/* Image panel carousels (Who We Are, services) */
.ni-car-media { aspect-ratio: var(--ni-ratio, 4/5); overflow: hidden; border-radius: 4px; border: 1px solid var(--ni-line); background: var(--ni-surface); }
.ni-car-media .ni-car-track, .ni-car-media .ni-car-slide { height: 100%; }
.ni-car-pair { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.ni-car-pair > .ni-car-media:nth-child(2) { margin-top: 2.5rem; }
@media (max-width: 600px) { .ni-car-pair > .ni-car-media:nth-child(2) { margin-top: 1.5rem; } }

/* Hero background carousel (home + studios) */
.ni-car-hero { position: relative; min-height: min(88vh, 820px); overflow: hidden; background: var(--ni-surface); margin-top: 0 !important; margin-bottom: 0 !important; }
.ni-car-hero-studio { min-height: min(74vh, 680px); }
.ni-car-hero .ni-car-track { position: absolute; inset: 0; height: 100%; }
.ni-car-hero .ni-car-slide { height: 100%; }
.ni-car-hero .ni-car-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,10,10,.82) 0%, rgba(10,10,10,.55) 45%, rgba(10,10,10,.15) 100%), linear-gradient(0deg, rgba(10,10,10,.75) 0%, transparent 45%); pointer-events: none; }
.ni-hero-fallback { position: absolute; inset: 0; background: radial-gradient(ellipse 60% 70% at 85% 30%, rgba(201,164,73,.22), transparent 60%), repeating-linear-gradient(135deg, #0d0d0d 0 2px, #0a0a0a 2px 14px); }
.ni-hero-content { position: relative; z-index: 2; min-height: inherit; display: flex; align-items: flex-end; pointer-events: none; }
.ni-hero-content-inner { width: 100%; max-width: 1240px; margin: 0 auto; padding: clamp(5rem, 14vh, 9rem) clamp(1rem, 4vw, 2rem) clamp(3.5rem, 8vh, 5rem); }
.ni-hero-content a, .ni-hero-content button { pointer-events: auto; }
.ni-hero-content h1 { font-size: clamp(2.2rem, 5.6vw, 4.6rem); line-height: 1.04; margin: 0 0 1rem; max-width: 14ch; }
.ni-car-hero-studio .ni-hero-content h1 { max-width: none; }
.ni-hero-content .ni-hero-line, .ni-hero-content .ni-hero-sub { max-width: 620px; color: #e6e6e6; font-size: clamp(1rem, 1.6vw, 1.15rem); margin: 0 0 1.6rem; }
.ni-hero-content .ni-breadcrumbs ol { margin-bottom: .9rem; }
.ni-hero-content .ni-socials { margin-top: 1.2rem; }
.ni-car-hero .ni-car-dots { bottom: 18px; }
.ni-car-hero .ni-car-btn { top: auto; bottom: 18px; transform: none; }
.ni-car-hero .ni-car-prev { left: auto; right: 74px; }
.ni-car-hero .ni-car-next { right: clamp(1rem, 4vw, 2rem); }
@media (max-width: 781px) {
	.ni-car-hero { min-height: 82svh; }
	.ni-car-hero-studio { min-height: 76svh; }
	.ni-car-hero .ni-car-slide::after { background: linear-gradient(0deg, rgba(10,10,10,.92) 0%, rgba(10,10,10,.6) 50%, rgba(10,10,10,.25) 100%); }
	.ni-hero-content-inner { padding-bottom: 3.25rem; }
	.ni-car-hero .ni-car-dots { bottom: 16px; }
	.ni-car-hero .ni-car-btn { display: none; }
}

/* Card carousels (home services, studios) */
.ni-car-cards { --ni-gap: 1.1rem; --ni-per: 3; }
.ni-car-cards .ni-car-slide { flex-basis: calc((100% - (var(--ni-per) - 1) * var(--ni-gap)) / var(--ni-per)); }
.ni-car-cards .ni-car-dots { position: static; margin-top: 1.25rem; }
.ni-car-cards .ni-car-btn { top: 38%; }
.ni-car-cards .ni-car-prev { left: -14px; } .ni-car-cards .ni-car-next { right: -14px; }
.ni-car-cards.is-static .ni-car-btn, .ni-car-cards.is-static .ni-car-dots { display: none; }
@media (max-width: 1024px) { .ni-car-cards { --ni-per: 2; } }
@media (max-width: 640px) {
	.ni-car-cards { --ni-per: 1; }
	.ni-car-cards .ni-car-slide { flex-basis: 84%; }
	.ni-car-cards .ni-car-btn { display: none; }
}
.ni-car-studios .ni-car-slide > .ni-studio-card { height: 100%; }
.ni-svc-card { display: flex; flex-direction: column; height: 100%; background: var(--ni-surface); border: 1px solid var(--ni-line); border-radius: 4px; overflow: hidden; color: #fff !important; text-decoration: none !important; transition: border-color .3s, transform .3s var(--ni-ease); }
.ni-svc-card:hover { border-color: var(--ni-gold); transform: translateY(-3px); }
.ni-svc-media { display: block; aspect-ratio: 4/5; overflow: hidden; background: var(--ni-surface-2); }
.ni-svc-media img, .ni-svc-media .ni-ph { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ni-ease); }
.ni-svc-card:hover .ni-svc-media img { transform: scale(1.04); }
.ni-svc-body { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.2rem 1.3rem; }
.ni-svc-title { font-family: var(--wp--preset--font-family--heading); text-transform: uppercase; font-size: 1.1rem; font-weight: 700; }
.ni-svc-line { color: var(--ni-muted); font-size: .93rem; line-height: 1.55; }
.ni-svc-cta { color: var(--ni-gold); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; margin-top: .3rem; }

/* Icon bullet list (short service write-up) */
.ni-icon-list { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: .9rem 1.5rem; }
.ni-icon-list li { display: flex; align-items: center; gap: .8rem; font-weight: 500; }
.ni-icon-list .ni-ico { flex: none; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--ni-gold); display: grid; place-items: center; color: var(--ni-gold); }
.ni-icon-list .ni-ico svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* Home hero (portrait photos): on desktop the photo sits on the right and fades into the text side */
@media (min-width: 900px) {
	.ni-car-hero-split .ni-car-slide { background: var(--ni-black); }
	.ni-car-hero-split .ni-car-slide img { position: absolute; top: 0; right: 0; width: 60%; height: 100%; object-position: 50% 30%; }
	.ni-car-hero-split .ni-car-slide::after { background: linear-gradient(90deg, #0a0a0a 0%, #0a0a0a 40%, rgba(10,10,10,.6) 52%, rgba(10,10,10,.08) 72%, rgba(10,10,10,.2) 100%), linear-gradient(0deg, rgba(10,10,10,.65) 0%, transparent 30%); }
	.ni-car-hero-split .ni-hero-content h1 { max-width: 11ch; }
	.ni-car-hero-split .ni-hero-content .ni-hero-line { max-width: 480px; }
}
.ni-risk-list { margin: .4rem 0 0; padding-left: 1.2rem; color: #ddd; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: .25rem 1.5rem; }
.ni-medical .ni-yn > span { line-height: 1.45; }

/* WhatsApp */
.ni-wa-ico { width: 1.15em; height: 1.15em; flex: none; }
.ni-btn-wa { background: #25D366 !important; border-color: #25D366 !important; color: #0a0a0a !important; }
.ni-btn-wa:hover { background: #1ebe5b !important; }
.ni-wa-float-wrap { position: fixed; right: 18px; bottom: 18px; z-index: 90; display: flex; flex-direction: column; align-items: flex-end; gap: .6rem; }
.ni-wa-float { position: fixed; right: 18px; bottom: 18px; z-index: 90; width: 56px; height: 56px; border-radius: 50%; border: 0; background: #25D366; color: #fff !important; display: grid; place-items: center; box-shadow: 0 8px 24px -6px rgba(0,0,0,.6); cursor: pointer; transition: transform .2s; }
.ni-wa-float-wrap .ni-wa-float { position: static; }
.ni-wa-float:hover { transform: scale(1.06); }
.ni-wa-float .ni-wa-ico { width: 30px; height: 30px; }
.ni-wa-menu { background: #141414; border: 1px solid #2c2c2c; border-radius: 6px; padding: .6rem; min-width: 210px; box-shadow: 0 12px 30px -8px rgba(0,0,0,.7); }
.ni-wa-menu p { margin: .2rem .4rem .5rem; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ni-gold); }
.ni-wa-menu a { display: block; padding: .6rem .7rem; border-radius: 4px; color: #fff !important; text-decoration: none; font-weight: 500; }
.ni-wa-menu a:hover { background: #25D366; color: #0a0a0a !important; }
@media (max-width: 781px) { .ni-wa-float, .ni-wa-float-wrap { bottom: 74px; right: 14px; } .ni-wa-float-wrap .ni-wa-float { bottom: auto; } }
html.has-modal-open .ni-wa-float, html.has-modal-open .ni-wa-float-wrap { display: none; }

/* Video embed (Tattoo Finance) */
.ni-video{max-width:380px;margin:0 auto;border:1px solid var(--ni-gold,#c9a54c);border-radius:14px;overflow:hidden;background:#000;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.ni-video video{display:block;width:100%;height:auto;aspect-ratio:9/16;background:#000}
.ni-video-cap{text-align:center;font-size:.9rem;opacity:.75;margin-top:.75rem}

/* Reviews */
.ni-reviews-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.5rem; }
.ni-reviews-head h2 { margin: 0; }
.ni-review-summary { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.ni-review-score { font-family: var(--ni-heading, inherit); font-size: 2.4rem; line-height: 1; color: #fff; }
.ni-review-summary .ni-stars { color: var(--ni-gold, #C9A449); letter-spacing: .1em; }
.ni-review-count { color: var(--ni-muted, #9a9a9a); font-size: .9rem; }
.ni-review .ni-stars { color: var(--ni-gold, #C9A449); letter-spacing: .12em; }
.ni-review figcaption { display: flex; flex-direction: column; gap: .15rem; }
.ni-review figcaption strong { color: #fff; }
.ni-review-links { margin-top: 1.25rem; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .9rem; }
.ni-review-links span { color: var(--ni-muted, #9a9a9a); }
.ni-review-links a { color: var(--ni-gold, #C9A449); text-decoration: none; }
.ni-review-links a:hover { text-decoration: underline; }

/* Cookie consent */
.ni-consent { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 9999; max-width: 560px; margin: 0 auto; background: #141414; border: 1px solid var(--ni-gold, #C9A449); padding: 1rem 1.1rem; border-radius: 6px; box-shadow: 0 12px 40px rgba(0,0,0,.5); display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.ni-consent[hidden] { display: none; }
.ni-consent p { margin: 0; flex: 1 1 260px; font-size: .9rem; color: #ddd; }
.ni-consent a { color: var(--ni-gold, #C9A449); }
.ni-consent-actions { display: flex; gap: .5rem; }
.ni-consent .ni-btn { padding: .55rem 1rem; font-size: .8rem; }
@media (max-width: 781px) { .ni-consent { bottom: calc(4.2rem + env(safe-area-inset-bottom)); } }
