/**
 * Neshonio — main stylesheet.
 *
 * Design tokens below are STATIC (hardcoded from Phase 2) for Stage 3.
 * Stage 5 replaces the :root block with a dynamic <style> block printed
 * by Assets\AssetManager from Theme Options — every rule below already
 * references var(--ns-*) tokens so that upgrade requires zero changes
 * to this file, only to how the token values are produced.
 *
 * Package: Neshonio
 */

/* ---------- Design Tokens (Phase 2) ---------- */
:root{
	/* Palette matched to نشونیو.dc.html. The page is a tinted #F4F7FB, not white,
	   so the white cards lift off it — bg/surface/text/accent are also injected
	   from Theme Options (AssetManager), and their defaults there mirror these. */
	--ns-bg:#F4F7FB; --ns-surface:#FFFFFF; --ns-surface-raised:#FFFFFF; --ns-border:rgba(15,27,45,.09);
	--ns-text-primary:#0F1B2D; --ns-text-secondary:#5C6B7E; --ns-text-tertiary:#8494A6;
	--ns-accent:#1E88E5; --ns-accent-hover:#1565C0; --ns-accent-2:#3D9BF0;
	--ns-secondary:#DAA21C; --ns-tertiary:#00B795; --ns-pin:#DC143C;
	/* Tinted accent wash + a second surface step. The homepage design leans on
	   these for icon chips, pills and inset panels. */
	--ns-soft:#E6F1FC; --ns-surface-2:#EAF1F8;
	--ns-success:#00B795; --ns-warning:#DAA21C; --ns-danger:#DC143C;
	--ns-rank-gold:#DAA21C; --ns-rank-silver:#8A8A90; --ns-rank-bronze:#A9673A; --ns-rank-default:#6B6B70;
	--ns-radius-sm:8px; --ns-radius-md:12px; --ns-radius-lg:16px; --ns-radius-xl:24px; --ns-radius-full:999px;
	--ns-shadow-sm:0 6px 18px -10px rgba(15,27,45,.16); --ns-shadow-md:0 14px 34px -16px rgba(15,27,45,.22); --ns-shadow-lg:0 24px 48px -18px rgba(15,27,45,.24);
	--ns-space-2:8px; --ns-space-4:16px; --ns-space-6:24px; --ns-space-8:32px;
	--ns-container-2xl:1300px;
	--ns-font-body:'Vazirmatn', 'YekanBakh', Tahoma, Arial, sans-serif;
	/* Type scale — all overridable from Theme Options → تایپوگرافی.
	   h1 = page/hero title, h2 = section title, h3 = card/widget title,
	   h4 = sub-heading. Sizes and line-heights follow the reference site's
	   measured scale (h1 24/2, h2 22/1.78, h3 16/1.15, body 1.88). */
	--ns-body-size:14px;
	--ns-h1:24px;
	--ns-h2:22px;
	--ns-h3:16px;
	--ns-h4:14px;
	--ns-header-size:14px;
	--ns-footer-size:16px;
}
/* :root[data-theme="dark"], not [data-theme="dark"], on purpose. AssetManager
   injects an inline :root{…} token block AFTER this stylesheet; a bare
   [data-theme="dark"] ties it on specificity and loses on source order, so the
   injected LIGHT values would leak into dark mode. The :root prefix wins. */
:root[data-theme="dark"]{
	--ns-bg:#0C1320; --ns-surface:#141D2C; --ns-surface-raised:#141D2C; --ns-border:rgba(255,255,255,.10);
	--ns-text-primary:#EEF3F9; --ns-text-secondary:#93A4B8; --ns-text-tertiary:#5C6B7E;
	--ns-accent:#3D9BF0; --ns-accent-hover:#5AABF5; --ns-accent-2:#5AABF5;
	--ns-secondary:#E6B53A; --ns-tertiary:#00E1B5; --ns-pin:#F0435F;
	--ns-soft:#13273C; --ns-surface-2:#1D2839;
	--ns-success:#00E1B5; --ns-warning:#E6B53A; --ns-danger:#F0435F;
	--ns-rank-gold:#E6B53A; --ns-rank-silver:#B4B4BA; --ns-rank-bronze:#C08050; --ns-rank-default:#93A4B8;
	--ns-shadow-sm:0 8px 20px -12px rgba(0,0,0,.6); --ns-shadow-md:0 16px 36px -16px rgba(0,0,0,.65); --ns-shadow-lg:0 24px 48px -18px rgba(0,0,0,.7);
}

/* ---------- Self-hosted fonts ---------- */
/* All self-hosted, no external font CDN. Each is a variable font (weight
   100–900) so a single file covers every weight the UI uses. */
@font-face{
	font-family:'Vazirmatn';
	src:url('../fonts/Vazirmatn-VF.woff2') format('woff2-variations'), url('../fonts/Vazirmatn-VF.woff2') format('woff2');
	font-weight:100 900;
	font-style:normal;
	font-display:swap;
}
@font-face{
	font-family:'YekanBakh';
	src:url('../fonts/YekanBakhFaNum-VF.woff2') format('woff2-variations'), url('../fonts/YekanBakhFaNum-VF.woff2') format('woff2');
	font-weight:100 900;
	font-style:normal;
	font-display:swap;
}
@font-face{
	font-family:'IRANYekanX';
	src:url('../fonts/IRANYekanX-VF.woff2') format('woff2-variations'), url('../fonts/IRANYekanX-VF.woff2') format('woff2');
	font-weight:100 900;
	font-style:normal;
	font-display:swap;
}
@font-face{
	font-family:'AzarMehr';
	src:url('../fonts/AzarMehr-VF.woff2') format('woff2-variations'), url('../fonts/AzarMehr-VF.woff2') format('woff2');
	font-weight:100 900;
	font-style:normal;
	font-display:swap;
}
@font-face{
	font-family:'Pinar';
	src:url('../fonts/Pinar-VF.woff2') format('woff2-variations'), url('../fonts/Pinar-VF.woff2') format('woff2');
	font-weight:100 900;
	font-style:normal;
	font-display:swap;
}
@font-face{
	font-family:'Farhang';
	src:url('../fonts/Farhang-VF.woff') format('woff-variations'), url('../fonts/Farhang-VF.woff') format('woff');
	font-weight:100 900;
	font-style:normal;
	font-display:swap;
}

/* ---------- WooCommerce compatibility (basic, non-integrated) ---------- */
/* Scope: typography/color consistency only if WC is activated for an
   unrelated reason. No product/shop template styling is built here. */
.ns-woocommerce-wrap{font-family:var(--ns-font-body);color:var(--ns-text-primary);padding-top:var(--ns-space-6);}
.ns-woocommerce-wrap .button,
.ns-woocommerce-wrap button.button,
.ns-woocommerce-wrap input.button{background:var(--ns-accent);color:#fff;border-radius:var(--ns-radius-sm);border:none;font-family:inherit;padding:10px 18px;}
.ns-woocommerce-wrap .button:hover{background:var(--ns-accent-hover);}
.ns-woocommerce-wrap a{color:var(--ns-accent);}

/* ---------- Homepage ---------- */
/* ---------- Homepage hero ---------- */
/* Namespaced ns-home-hero-* on purpose: .ns-hero belongs to the category page
   and would otherwise leak its border/padding in here. */
.ns-home-hero{max-width:var(--ns-container-2xl);margin:0 auto;padding:56px var(--ns-space-6) 10px;}
/* direction:ltr so the illustration lands LEFT and the copy RIGHT, exactly as
   the design — without it, RTL mirrors them (art right, text left). The copy
   block resets to rtl for its own text. */
.ns-home-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;direction:ltr;}
.ns-home-hero-art{position:relative;display:grid;place-items:center;min-height:300px;}
.ns-home-hero-art-glow{position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,var(--ns-soft),transparent 70%);}
.ns-home-hero-art-img{position:relative;width:280px;height:280px;object-fit:contain;animation:ns-floaty 5s ease-in-out infinite;}
@keyframes ns-floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes ns-fadeup{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.ns-home-hero-copy{text-align:right;direction:rtl;animation:ns-fadeup .6s ease both;}
.ns-home-hero-badge{display:inline-flex;align-items:center;gap:7px;background:var(--ns-soft);color:var(--ns-accent);font-size:12px;font-weight:600;padding:7px 13px;border-radius:20px;margin-bottom:18px;}
.ns-home-hero-copy h1{margin:0;font-size:35px;font-weight:800;line-height:1.67;letter-spacing:-.5px;}
.ns-home-hero-copy h1 span{color:var(--ns-accent);}
.ns-home-hero-copy p{margin:16px 0 0;font-size:16px;color:var(--ns-text-secondary);line-height:1.7;}

/* Search bar: a single raised card holding button + filters + field. */
.ns-home-hero-search{margin-top:34px;background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:18px;box-shadow:var(--ns-shadow-lg);padding:11px;display:flex;gap:9px;align-items:center;flex-wrap:wrap;}
.ns-home-hero-search-btn{color:#fff;border:none;font-family:inherit;font-weight:700;font-size:14px;padding:14px 30px;border-radius:12px;cursor:pointer;background-color:var(--ns-accent);background-image:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0));box-shadow:0 10px 24px -8px rgba(30,136,229,.55);transition:transform .2s ease,box-shadow .2s ease;}
.ns-home-hero-search-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px rgba(30,136,229,.7);}
.ns-home-hero-search-select select{appearance:none;border:1px solid var(--ns-border);border-radius:12px;padding:14px 30px 14px 16px;font-family:inherit;font-size:13px;color:var(--ns-text-secondary);background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B6B70' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat left 12px center;cursor:pointer;}
.ns-home-hero-search-field{flex:1;min-width:200px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;color:var(--ns-text-secondary);}
.ns-home-hero-search-field input{flex:1;border:0;outline:0;background:transparent;font-family:inherit;font-size:13.5px;color:var(--ns-text-primary);padding:14px 0;}

/* Three highlights under the search bar. */
.ns-home-hero-highlights{margin-top:26px;display:flex;justify-content:center;gap:52px;flex-wrap:wrap;}
.ns-home-hero-highlight{display:flex;align-items:center;gap:11px;}
.ns-home-hero-highlight-icon{width:42px;height:42px;border-radius:50%;background:var(--ns-soft);display:grid;place-items:center;color:var(--ns-accent);flex-shrink:0;}
.ns-home-hero-highlight b{display:block;font-weight:700;font-size:15px;}
.ns-home-hero-highlight small{display:block;font-size:12px;color:var(--ns-text-secondary);}

@media(max-width:960px){
	.ns-home-hero-grid{grid-template-columns:1fr;}
	.ns-home-hero-art{min-height:220px;}
	.ns-home-hero-art-img,.ns-home-hero-art-glow{width:210px;height:210px;}
	.ns-home-hero-highlights{gap:24px;}
}
@media(max-width:640px){
	.ns-home-hero-copy h1{font-size:30px;}
	.ns-home-hero-search{padding:9px;}
	.ns-home-hero-search-btn{order:5;width:100%;}
}

/* ---------- Homepage sections (shared shell) ---------- */
.ns-home-section{max-width:var(--ns-container-2xl);margin:0 auto;padding:60px var(--ns-space-6) 0;}
.ns-home-section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;}
.ns-home-section-head h2{margin:0;font-size:24px;font-weight:800;}
.ns-home-section-head p{margin:6px 0 0;font-size:13px;color:var(--ns-text-secondary);}
.ns-home-section-more{font-size:13px;}
.ns-home-section-centered{text-align:center;}
.ns-home-section-centered h2{margin:0 0 8px;font-size:28px;font-weight:800;}
.ns-home-section-centered .ns-home-section-sub{margin:0 0 32px;font-size:14px;color:var(--ns-text-secondary);}

/* Rail arrows for the horizontally scrolling sections. */
.ns-home-rail-nav{display:flex;gap:8px;}
.ns-home-rail-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--ns-border);background:var(--ns-surface-raised);color:var(--ns-text-primary);cursor:pointer;font-size:16px;line-height:1;}
.ns-home-rail-btn:hover{color:var(--ns-accent);border-color:var(--ns-accent);}
.ns-home-rail{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 14px;scrollbar-width:none;}
.ns-home-rail::-webkit-scrollbar{display:none;}
.ns-home-rail>*{scroll-snap-align:start;}

/* ---------- Map panel ---------- */
.ns-home-map{border:1px solid var(--ns-border);border-radius:20px;overflow:hidden;box-shadow:var(--ns-shadow-md);}
.ns-home-map-canvas{height:260px;width:100%;}

/* ---------- Category grid ---------- */
.ns-home-cat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;}
.ns-home-cat-card{display:block;background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:16px;padding:22px 10px;text-align:center;box-shadow:var(--ns-shadow-sm);text-decoration:none;color:var(--ns-text-primary);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.ns-home-cat-card:hover{transform:translateY(-6px);box-shadow:0 22px 40px -18px rgba(30,136,229,.4);border-color:color-mix(in srgb,var(--ns-accent) 50%,var(--ns-border));color:var(--ns-text-primary);}
.ns-home-cat-icon{width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:var(--ns-soft);display:grid;place-items:center;color:var(--ns-accent);}
.ns-home-cat-name{display:block;font-size:13.5px;font-weight:600;}

/* ---------- City cards (rail) ---------- */
.ns-home-city-card{position:relative;flex:0 0 210px;height:150px;border-radius:16px;overflow:hidden;box-shadow:var(--ns-shadow-sm);text-decoration:none;display:block;background:var(--ns-surface-2);transition:transform .28s ease,box-shadow .28s ease;}
.ns-home-city-card:hover{transform:translateY(-6px);box-shadow:0 24px 42px -20px rgba(15,27,45,.5);}
/* City terms carry no image, so a tinted plate + the initial stands in for the
   design's photo slot rather than a broken image. */
.ns-home-city-plate{position:absolute;inset:0;display:grid;place-items:center;font-size:64px;font-weight:800;color:var(--ns-accent);opacity:.16;}
.ns-home-city-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),transparent 55%);}
.ns-home-city-body{position:absolute;bottom:12px;right:14px;z-index:1;color:#fff;}
.ns-home-city-body b{display:block;font-weight:700;font-size:16px;}
.ns-home-city-body small{display:block;font-size:12px;opacity:.85;}

/* ---------- Business cards (rail) ---------- */
.ns-home-biz-card{position:relative;flex:0 0 220px;background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:18px;padding:20px;box-shadow:var(--ns-shadow-sm);text-align:center;text-decoration:none;color:var(--ns-text-primary);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;}
.ns-home-biz-card:hover{transform:translateY(-6px);box-shadow:0 26px 46px -20px rgba(30,136,229,.4);border-color:color-mix(in srgb,var(--ns-accent) 45%,var(--ns-border));color:var(--ns-text-primary);}
.ns-home-biz-verified{position:absolute;top:14px;right:14px;line-height:0;}
.ns-home-biz-logo{width:72px;height:72px;margin:0 auto 14px;border-radius:50%;overflow:hidden;border:1px solid var(--ns-border);display:grid;place-items:center;background:var(--ns-surface-2);color:var(--ns-text-tertiary);font-size:24px;}
.ns-home-biz-logo img{width:100%;height:100%;object-fit:cover;}
.ns-home-biz-name{display:block;font-weight:700;font-size:15px;margin-bottom:8px;}
.ns-home-biz-rating{display:flex;align-items:center;justify-content:center;gap:5px;margin-bottom:12px;color:var(--ns-secondary);font-size:15px;}
.ns-home-biz-rating b{color:var(--ns-text-primary);font-weight:700;font-size:13px;}
.ns-home-biz-meta{display:block;font-size:12.5px;color:var(--ns-text-secondary);border-top:1px solid var(--ns-border);padding-top:12px;}

/* ---------- Why / feature cards ---------- */
.ns-home-why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ns-home-why-card{background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:18px;padding:32px 24px;box-shadow:var(--ns-shadow-sm);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;}
.ns-home-why-card:hover{transform:translateY(-6px);box-shadow:0 26px 46px -20px rgba(30,136,229,.4);border-color:color-mix(in srgb,var(--ns-accent) 45%,var(--ns-border));}
.ns-home-why-icon{width:56px;height:56px;margin:0 auto 16px;border-radius:16px;background:var(--ns-soft);display:grid;place-items:center;color:var(--ns-accent);}
.ns-home-why-card h3{margin:0 0 8px;font-size:17px;font-weight:700;}
.ns-home-why-card p{margin:0;font-size:13.5px;color:var(--ns-text-secondary);line-height:1.8;}

/* ---------- Stats band ---------- */
.ns-home-stats-band{background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:20px;box-shadow:var(--ns-shadow-sm);display:grid;grid-template-columns:repeat(4,1fr);}
.ns-home-stat{padding:30px;text-align:center;border-left:1px solid var(--ns-border);}
.ns-home-stat:last-child{border-left:0;}
.ns-home-stat b{display:block;font-size:28px;font-weight:800;color:var(--ns-accent);}
.ns-home-stat small{display:block;font-size:13px;color:var(--ns-text-secondary);margin-top:4px;}

/* ---------- Testimonials ---------- */
.ns-home-quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ns-home-quote{margin:0;background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:18px;padding:28px 24px;box-shadow:var(--ns-shadow-sm);text-align:right;transition:transform .28s ease,box-shadow .28s ease;}
.ns-home-quote:hover{transform:translateY(-5px);box-shadow:0 24px 44px -20px rgba(15,27,45,.32);}
.ns-home-quote-rating{display:flex;align-items:center;gap:5px;margin-bottom:12px;color:var(--ns-secondary);font-size:15px;}
.ns-home-quote-rating b{color:var(--ns-text-primary);font-weight:700;font-size:13px;}
.ns-home-quote blockquote{margin:0 0 20px;font-size:14px;line-height:1.9;color:var(--ns-text-primary);}
.ns-home-quote figcaption{display:flex;align-items:center;gap:12px;border-top:1px solid var(--ns-border);padding-top:16px;}
.ns-home-quote-avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0;border:1px solid var(--ns-border);line-height:0;}
.ns-home-quote-avatar img{width:100%;height:100%;object-fit:cover;}
.ns-home-quote figcaption b{display:block;font-weight:700;font-size:14px;}
.ns-home-quote figcaption small{display:block;font-size:12px;color:var(--ns-text-secondary);}

/* ---------- CTA band ---------- */
.ns-home-cta{position:relative;overflow:hidden;border-radius:24px;padding:44px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;box-shadow:0 24px 50px -22px rgba(30,136,229,.6);
	background:radial-gradient(460px 240px at 92% -30%, rgba(255,255,255,.28), transparent 60%),radial-gradient(420px 260px at 6% 130%, rgba(255,255,255,.18), transparent 55%),linear-gradient(120deg,var(--ns-accent),var(--ns-accent-hover));}
.ns-home-cta-copy{color:#fff;}
.ns-home-cta-copy h2{margin:0;font-size:26px;font-weight:800;color:#fff;}
.ns-home-cta-copy p{margin:8px 0 0;font-size:15px;opacity:.92;}
.ns-home-cta-btn{background:#fff;color:var(--ns-accent);border:none;font-weight:700;font-size:15px;padding:15px 26px;border-radius:12px;display:inline-flex;align-items:center;gap:8px;text-decoration:none;transition:transform .2s ease;}
.ns-home-cta-btn:hover{transform:translateY(-2px);color:var(--ns-accent);}

/* ---------- Blog cards (rail) ---------- */
.ns-home-post-card{flex:0 0 300px;background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:18px;overflow:hidden;box-shadow:var(--ns-shadow-sm);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;}
.ns-home-post-card:hover{transform:translateY(-6px);box-shadow:0 26px 48px -20px rgba(30,136,229,.4);border-color:color-mix(in srgb,var(--ns-accent) 45%,var(--ns-border));}
.ns-home-post-thumb{position:relative;display:block;height:170px;background:var(--ns-surface-2);}
.ns-home-post-thumb img{width:100%;height:100%;object-fit:cover;}
.ns-home-post-tag{position:absolute;top:12px;right:12px;background:var(--ns-accent);color:#fff;font-size:11px;font-weight:600;padding:5px 11px;border-radius:20px;}
.ns-home-post-body{padding:20px;text-align:right;}
.ns-home-post-body h3{margin:0 0 10px;font-size:16px;font-weight:700;line-height:1.6;}
.ns-home-post-body h3 a{color:var(--ns-text-primary);text-decoration:none;}
.ns-home-post-body h3 a:hover{color:var(--ns-accent);}
.ns-home-post-body p{margin:0 0 16px;font-size:13px;color:var(--ns-text-secondary);line-height:1.8;}
.ns-home-post-foot{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ns-text-secondary);}
.ns-home-post-foot a{font-weight:600;}

/* ---------- Trust band (نماد اعتماد) ---------- */
/* Homepage-only: printed by front-page.php inside its own .ns-home-section. */
.ns-trust{background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:20px;box-shadow:var(--ns-shadow-sm);padding:28px 32px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.ns-trust-badges{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.ns-trust-badges a,.ns-trust-badges img{display:grid;place-items:center;max-width:96px;max-height:112px;}
.ns-trust-badges img{width:auto;height:auto;object-fit:contain;background:#fff;border:1px solid var(--ns-border);border-radius:12px;padding:8px;}
.ns-trust-copy{flex:1;min-width:240px;text-align:right;}
.ns-trust-copy h3{margin:0 0 6px;font-size:18px;font-weight:800;}
.ns-trust-copy p{margin:0;font-size:13.5px;color:var(--ns-text-secondary);line-height:1.8;}

@media(max-width:960px){
	.ns-home-cat-grid{grid-template-columns:repeat(3,1fr);}
	.ns-home-why-grid,.ns-home-quote-grid{grid-template-columns:repeat(2,1fr);}
	.ns-home-stats-band{grid-template-columns:repeat(2,1fr);}
	.ns-home-stat:nth-child(2){border-left:0;}
}
@media(max-width:640px){
	.ns-home-section{padding-top:44px;}
	.ns-home-cat-grid{grid-template-columns:repeat(2,1fr);}
	.ns-home-why-grid,.ns-home-quote-grid{grid-template-columns:1fr;}
	.ns-home-stats-band{grid-template-columns:1fr;}
	.ns-home-stat{border-left:0;border-bottom:1px solid var(--ns-border);}
	.ns-home-stat:last-child{border-bottom:0;}
	.ns-home-hero-copy h1{font-size:30px;}
}
.ns-home-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;}
.ns-home-category-card{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:22px 14px;background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);text-decoration:none;color:var(--ns-text-primary);transition:box-shadow .2s ease,transform .2s ease;}
.ns-home-category-card:hover{box-shadow:var(--ns-shadow-md);transform:translateY(-2px);}
.ns-home-category-card i{font-size:22px;color:var(--ns-accent);margin-bottom:4px;}
.ns-home-category-card span{font-size:13.5px;font-weight:600;}
.ns-home-category-card small{font-size:11px;color:var(--ns-text-tertiary);}

/* ---------- Base ---------- */
*{box-sizing:border-box;}
/* Two soft radial washes over the tinted base, exactly as the design's page
   wrapper — a faint accent glow top-right and top-left, fixed so they don't
   scroll away. */
body{font-family:var(--ns-font-body);font-size:var(--ns-body-size);line-height:1.88;color:var(--ns-text-primary);margin:0;transition:background .25s ease,color .25s ease;
	background:radial-gradient(1100px 520px at 82% -8%, var(--ns-soft), transparent 60%),radial-gradient(900px 480px at 5% 8%, color-mix(in srgb,var(--ns-accent) 7%,transparent), transparent 55%),var(--ns-bg);
	background-attachment:fixed;}
/* Base heading rules so a bare heading is consistent everywhere. Element
   selectors on purpose — lowest specificity, so the per-component rules below
   (.ns-hero h1 etc.) still win where a component wants something different. */
h1{font-size:var(--ns-h1);font-weight:700;line-height:2;}
h2{font-size:var(--ns-h2);font-weight:700;line-height:1.78;}
h3{font-size:var(--ns-h3);font-weight:700;line-height:1.4;}
h4{font-size:var(--ns-h4);font-weight:700;line-height:1.5;}
a{color:inherit;}
.ns-container{max-width:var(--ns-container-2xl);margin:0 auto;padding:0 var(--ns-space-6);}
img{max-width:100%;display:block;}

.ns-header-banner-ad{width:100%;text-align:center;background:var(--ns-surface);}
.ns-header-banner-ad img{max-width:100%;height:auto;margin:0 auto;}
.ns-footer-banner-ad{width:100%;text-align:center;background:var(--ns-surface);padding:var(--ns-space-4) 0;}
.ns-footer-banner-ad img{max-width:100%;height:auto;margin:0 auto;}

/* ---------- Site Header ---------- */
/* Sticky header, matching the reference's arrangement: a full-width banner ad
   scrolls away above it, then the bar itself stays pinned. A soft shadow does
   the separating instead of a hard border. */
.ns-site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--ns-surface) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--ns-border);font-size:var(--ns-header-size);}
.ns-header-bar{max-width:var(--ns-container-2xl);margin:0 auto;padding:14px var(--ns-space-6);display:flex;align-items:center;justify-content:space-between;gap:20px;}
.ns-site-main{width:100%;}
.ns-site-main--inner{padding-top:var(--ns-space-6);padding-bottom:var(--ns-space-8);}
.ns-header-actions{display:flex;gap:9px;align-items:center;}
/* Buttons per the design: one filled primary, the rest quiet outlines. */
.ns-btn-primary{color:#fff;border:none;font-family:inherit;font-weight:700;font-size:13px;padding:11px 16px;border-radius:11px;cursor:pointer;text-decoration:none;white-space:nowrap;background-color:var(--ns-accent);background-image:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0));box-shadow:0 10px 24px -8px rgba(30,136,229,.55);transition:transform .2s ease,box-shadow .2s ease;}
.ns-btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 28px -8px rgba(30,136,229,.7);color:#fff;}
.ns-btn-ghost{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--ns-border);color:var(--ns-text-primary);font-family:inherit;font-size:13px;padding:11px 16px;border-radius:11px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:border-color .2s,color .2s;}
.ns-btn-ghost:hover{border-color:var(--ns-accent);color:var(--ns-accent);}
.ns-btn-icon{padding:11px 13px;}
/* Theme switch: the knob sits right in light mode and slides left in dark. */
.ns-theme-switch{position:relative;width:62px;height:32px;border-radius:20px;border:1px solid var(--ns-border);background:var(--ns-surface-2);cursor:pointer;padding:0;flex-shrink:0;}
.ns-theme-switch-knob{position:absolute;top:2px;right:2px;width:24px;height:24px;border-radius:50%;background:var(--ns-accent);color:#fff;font-size:11px;box-shadow:var(--ns-shadow-sm);display:grid;place-items:center;transition:transform .3s cubic-bezier(.4,1.3,.6,1);}
:root[data-theme="dark"] .ns-theme-switch-knob{transform:translateX(-30px);}

/* Logo group — mark + two-line lockup, on the right in RTL (per the design). */
.ns-logo{display:flex;align-items:center;gap:9px;text-decoration:none;}
.ns-logo-mark{width:38px;height:38px;display:grid;place-items:center;flex-shrink:0;}
.ns-logo-mark img,.ns-logo-mark svg{width:100%;height:100%;object-fit:contain;}
.ns-logo-text{line-height:1.15;text-align:left;}
.ns-logo-text b{display:block;font-weight:800;font-size:15px;color:var(--ns-text-primary);}
.ns-logo-text small{display:block;font-size:11px;color:var(--ns-text-secondary);}

/* Centered nav — four quiet links, exactly the design's row. */
.ns-header-nav{display:flex;align-items:center;gap:22px;font-size:13.5px;font-weight:500;}
.ns-nav-link{display:inline-flex;align-items:center;gap:5px;color:var(--ns-text-secondary);text-decoration:none;transition:color .15s ease;}
.ns-nav-link:hover{color:var(--ns-accent);}
.ns-nav-caret{font-size:8px;opacity:.8;}

/* "دسته‌بندی مشاغل" opens the category mega-menu on hover; at rest it is just
   the design's link + caret. */
.ns-nav-cats{position:relative;display:inline-flex;}
.ns-mega-menu{position:absolute;top:100%;right:0;margin-top:12px;background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);box-shadow:var(--ns-shadow-lg);padding:8px;min-width:230px;z-index:60;display:none;flex-direction:column;}
.ns-nav-cats:hover .ns-mega-menu,.ns-nav-cats:focus-within .ns-mega-menu{display:flex;}
.ns-mega-menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--ns-radius-sm);color:var(--ns-text-primary);text-decoration:none;font-size:13.5px;}
.ns-mega-menu-item:hover{background:var(--ns-surface-2);}
.ns-mega-menu-item i{color:var(--ns-accent);font-size:15px;width:20px;text-align:center;}

/* ---------- City Selector ---------- */
.ns-city-pill{display:flex;align-items:center;gap:6px;background:var(--ns-surface);border:1px solid var(--ns-border);border-radius:var(--ns-radius-full);padding:8px 16px;font-family:inherit;font-size:12.5px;color:var(--ns-text-primary);cursor:pointer;}
.ns-city-pill i{color:var(--ns-accent);}
.ns-city-pill:hover{border-color:var(--ns-accent);}
.ns-city-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;}
.ns-city-modal[hidden]{display:none;}
.ns-city-list{max-height:50vh;overflow-y:auto;}

/* ---------- Tag Marquee ---------- */
.ns-tag-marquee{overflow:hidden;border-bottom:1px solid var(--ns-border);background:var(--ns-surface);padding:10px 0;}
.ns-tag-marquee-track{display:flex;gap:10px;width:max-content;animation:ns-marquee 40s linear infinite;}
.ns-tag-marquee:hover .ns-tag-marquee-track{animation-play-state:paused;}
.ns-marquee-tag{flex-shrink:0;font-size:11px;padding:5px 12px;border-radius:var(--ns-radius-full);background:var(--ns-surface-raised);border:1px solid var(--ns-border);color:var(--ns-text-secondary);text-decoration:none;white-space:nowrap;}
.ns-marquee-tag:hover{color:var(--ns-accent);border-color:var(--ns-accent);}
@keyframes ns-marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- Site Footer ---------- */
/* Footer per نشونیو.dc.html: white surface, a top hairline, then the four
   columns, an app-download band and a centered copyright — the two inner bands
   carry the design's hairline separators. */
.ns-site-footer{background:var(--ns-surface);border-top:1px solid var(--ns-border);margin-top:70px;font-size:var(--ns-footer-size);}
/* Four columns: brand + tagline + social, two menu columns, then contact.
   In RTL the first child lands right. */
.ns-footer-inner{max-width:var(--ns-container-2xl);margin:0 auto;padding:48px var(--ns-space-6) 20px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--ns-space-8);text-align:right;}
.ns-footer-brand{display:inline-flex;align-items:center;gap:9px;text-decoration:none;}
.ns-footer-brand-mark{width:36px;height:36px;display:grid;place-items:center;flex-shrink:0;}
.ns-footer-brand-mark img{width:100%;height:100%;object-fit:contain;}
.ns-footer-brand-text b{display:block;font-weight:800;font-size:15px;color:var(--ns-text-primary);line-height:1.2;}
.ns-footer-brand-text small{display:block;font-size:11px;color:var(--ns-text-secondary);}
.ns-footer-tagline{margin:16px 0 0;font-size:13px;color:var(--ns-text-secondary);line-height:1.9;}
.ns-footer-col h4{font-size:var(--ns-h4);color:var(--ns-text-primary);font-weight:700;margin:0 0 16px;line-height:1.5;}
/* Menu-driven columns render a <ul>; strip the list chrome so they match. */
.ns-footer-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.ns-footer-menu li{margin:0;}
.ns-footer-menu a{font-size:13px;color:var(--ns-text-secondary);text-decoration:none;}
.ns-footer-menu a:hover{color:var(--ns-accent);}
.ns-footer-contact{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;font-size:13px;color:var(--ns-text-secondary);}
.ns-footer-contact li{display:flex;align-items:flex-start;gap:8px;line-height:1.8;}
.ns-footer-contact i{color:var(--ns-accent);margin-top:5px;font-size:12px;flex-shrink:0;}
.ns-footer-contact a{color:inherit;text-decoration:none;}
.ns-footer-contact a:hover{color:var(--ns-accent);}
/* Social: bordered squares, per the design. */
.ns-footer-social{display:flex;gap:9px;margin-top:18px;flex-wrap:wrap;}
.ns-footer-social a{width:38px;height:38px;border-radius:10px;border:1px solid var(--ns-border);display:grid;place-items:center;color:var(--ns-text-secondary);font-size:14px;text-decoration:none;transition:color .2s,border-color .2s;}
.ns-footer-social a:hover{color:var(--ns-accent);border-color:var(--ns-accent);}
/* Trust-seal band in the footer — the seals (or placeholder) centred, with the
   design's hairline above, so eNamad/ساماندهی show site-wide. */
.ns-footer-seals{max-width:var(--ns-container-2xl);margin:0 auto;padding:4px var(--ns-space-6) 0;}
.ns-footer-seals-inner{border-top:1px solid var(--ns-border);padding-top:24px;justify-content:center;}

/* App-download band. LTR so the market badges sit left and the caption right,
   exactly as the design. */
.ns-footer-apps{max-width:var(--ns-container-2xl);margin:0 auto;padding:4px var(--ns-space-6) 30px;}
.ns-footer-apps-inner{border-top:1px solid var(--ns-border);padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;direction:ltr;}
.ns-store-badges{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
/* Official market badge images, uniform height (mobit.ir-style) — a light lift
   on hover, no box of our own since each badge carries its own artwork. */
.ns-store-badge{display:inline-flex;align-items:center;text-decoration:none;transition:transform .2s ease,opacity .2s ease;}
.ns-store-badge:hover{transform:translateY(-2px);opacity:.9;}
.ns-store-badge img{height:21px;width:auto;display:block;}
.ns-footer-apps-copy{text-align:right;}
.ns-footer-apps-copy b{display:block;font-size:15px;font-weight:700;}
.ns-footer-apps-copy small{display:block;font-size:12.5px;color:var(--ns-text-secondary);margin-top:4px;}
.ns-footer-copyright{border-top:1px solid var(--ns-border);text-align:center;padding:18px;font-size:12px;color:var(--ns-text-secondary);}

/* Scroll-to-top FAB — bottom-left in RTL, shown by JS past ~80% scroll. */
.ns-scroll-top{position:fixed;bottom:24px;left:24px;z-index:60;width:48px;height:48px;border-radius:50%;border:none;background:var(--ns-accent);color:#fff;cursor:pointer;box-shadow:0 12px 28px -8px rgba(30,136,229,.65);display:grid;place-items:center;transition:transform .3s ease,box-shadow .2s ease;}
.ns-scroll-top[hidden]{display:none;}
.ns-scroll-top:hover{transform:translateY(-3px);box-shadow:0 18px 34px -8px rgba(30,136,229,.8);}

@media(max-width:960px){
	.ns-footer-inner{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
	.ns-footer-inner{grid-template-columns:1fr;gap:var(--ns-space-6);}
	.ns-footer-apps-inner{justify-content:center;text-align:center;}
	.ns-footer-apps-copy{text-align:center;}
}

/* Inline brand marks (Support\BrandIcons) stand in for Font Awesome's brands
   webfont — same optical alignment as the <i> they replaced. */
.ns-brand-icon{display:inline-block;vertical-align:-0.125em;flex-shrink:0;}

/* ---------- Cities index (/cities/) ---------- */
.ns-cities-group{margin-bottom:var(--ns-space-8);}
.ns-cities-province{font-size:var(--ns-h3);font-weight:800;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--ns-border);}
.ns-cities-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;}
.ns-cities-list a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:var(--ns-radius-md);text-decoration:none;color:var(--ns-text-primary);font-size:13.5px;transition:border-color .2s,color .2s;}
.ns-cities-list a:hover{border-color:var(--ns-accent);color:var(--ns-accent);}
.ns-cities-list small{color:var(--ns-text-secondary);font-size:11.5px;}

/* ---------- Category Hero + Stats ---------- */
.ns-hero{padding:var(--ns-space-8) 0 var(--ns-space-4);border-bottom:1px solid var(--ns-border);margin-bottom:var(--ns-space-4);}
.ns-hero h1{font-size:var(--ns-h1);font-weight:700;margin:0 0 8px;}
.ns-hero p{color:var(--ns-text-secondary);font-size:15px;line-height:1.7;max-width:640px;margin:0 0 18px;}
.ns-hero-stats{display:flex;gap:10px;flex-wrap:wrap;}
.ns-stat{background:var(--ns-surface);border:1px solid var(--ns-border);border-radius:var(--ns-radius-full);padding:8px 16px;font-size:13px;color:var(--ns-text-secondary);}
.ns-stat b{color:var(--ns-text-primary);}

/* ---------- Filter chips ---------- */
.ns-filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:var(--ns-space-6);}
.ns-chip{display:flex;align-items:center;gap:6px;background:var(--ns-surface);border:1px solid var(--ns-border);color:var(--ns-text-secondary);font-family:inherit;font-size:12.5px;padding:8px 14px;border-radius:var(--ns-radius-full);cursor:pointer;transition:all .15s ease;}
.ns-chip i{font-size:11px;color:var(--ns-accent);}
.ns-chip:hover{border-color:var(--ns-accent);color:var(--ns-text-primary);}
.ns-chip.is-active{background:var(--ns-accent);border-color:var(--ns-accent);color:#fff;}
.ns-chip.is-active i{color:#fff;}

/* ---------- Layout: content + sidebar ---------- */
.ns-layout{display:grid;grid-template-columns:1fr 300px;gap:var(--ns-space-6);align-items:start;margin-bottom:var(--ns-space-8);}
.ns-side-widgets{display:flex;flex-direction:column;gap:var(--ns-space-4);position:sticky;top:20px;}
.ns-ad-banner{background:var(--ns-surface);border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);overflow:hidden;}
.ns-ad-label{display:flex;justify-content:space-between;font-size:10px;color:var(--ns-text-tertiary);padding:6px 10px;border-bottom:1px solid var(--ns-border);}
.ns-ad-placeholder{padding:30px 14px;text-align:center;font-size:12px;color:var(--ns-text-tertiary);line-height:1.6;}
.ns-ingrid-ad{background:var(--ns-surface);border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);overflow:hidden;}
.ns-ad-728x90{width:100%;max-width:728px;height:90px;margin:0 auto;display:flex;align-items:center;justify-content:center;padding:0 14px;}
.ns-widget{background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);padding:16px;}
.ns-widget h3{display:flex;align-items:center;gap:7px;font-size:var(--ns-h3);font-weight:600;color:var(--ns-text-primary);margin:0 0 14px;}
.ns-widget h3 i{color:var(--ns-accent);font-size:12px;}
.ns-post-row{display:flex;gap:10px;align-items:center;text-decoration:none;margin-bottom:12px;}
.ns-post-row:last-child{margin-bottom:0;}
.ns-post-thumb{width:52px;height:44px;flex-shrink:0;border-radius:var(--ns-radius-sm);background:linear-gradient(135deg,var(--ns-border),var(--ns-surface));object-fit:cover;}
.ns-post-row span{font-size:12px;color:var(--ns-text-primary);line-height:1.5;}
.ns-video-carousel{display:flex;gap:14px;overflow-x:auto;padding-bottom:4px;}
.ns-video-item{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;width:72px;text-decoration:none;}
.ns-video-circle{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--ns-accent),var(--ns-border));border:2px solid var(--ns-accent);object-fit:cover;}
.ns-video-item span{font-size:10.5px;color:var(--ns-text-secondary);text-align:center;line-height:1.4;}

/* ---------- Business Card (row layout) ---------- */
.ns-grid{display:flex;flex-direction:column;gap:14px;}
.ns-card{background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);box-shadow:var(--ns-shadow-sm);transition:box-shadow .2s ease,transform .2s ease;position:relative;display:flex;align-items:flex-start;gap:16px;padding:16px;text-decoration:none;color:inherit;}
.ns-card:hover{box-shadow:var(--ns-shadow-md);transform:translateY(-2px);}
.ns-card.is-sponsored{border-color:var(--ns-warning);}
.ns-card-img{width:150px;height:120px;flex-shrink:0;border-radius:var(--ns-radius-md);background:linear-gradient(135deg,var(--ns-border),var(--ns-surface));position:relative;order:1;overflow:hidden;}
.ns-card-img img{width:100%;height:100%;object-fit:cover;}
.ns-rank{position:absolute;top:-8px;right:-8px;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff;border:2px solid var(--ns-surface-raised);z-index:2;}
.ns-rank.is-r1{background:var(--ns-rank-gold);}
.ns-rank.is-r2{background:var(--ns-rank-silver);}
.ns-rank.is-r3{background:var(--ns-rank-bronze);}
.ns-rank.is-rn{background:var(--ns-rank-default);}
.ns-badges{position:absolute;bottom:-8px;right:-8px;display:flex;flex-direction:column;gap:4px;align-items:flex-end;z-index:2;}
.ns-badge{font-size:10px;padding:3px 8px;border-radius:var(--ns-radius-sm);font-weight:600;white-space:nowrap;}
.ns-badge.is-trending{background:var(--ns-danger);color:#fff;}
.ns-badge.is-featured{background:linear-gradient(135deg,var(--ns-secondary),#c98a12);color:#fff;box-shadow:0 2px 8px -2px color-mix(in srgb,var(--ns-secondary) 70%,transparent);}
.ns-badge.is-sponsored{background:transparent;border:1px solid var(--ns-warning);color:var(--ns-warning);}
.ns-card-body{flex:1;min-width:0;order:2;display:flex;flex-direction:column;}
.ns-card-name{font-size:15px;font-weight:600;margin:0 0 4px;}
.ns-verified-check{color:var(--ns-accent);font-size:14px;margin-right:4px;}
.ns-detail-title .ns-verified-check{font-size:20px;}
.ns-star-icon{color:var(--ns-secondary);font-size:11px;margin-left:4px;}
.ns-card-rating{font-size:12px;color:var(--ns-text-secondary);margin-bottom:8px;}
.ns-card-rating b{color:var(--ns-text-primary);}
.ns-status{font-size:11px;display:inline-flex;align-items:center;gap:4px;}
.ns-status i{font-size:6px;}
.ns-status.is-open{color:var(--ns-success);}
.ns-status.is-closed{color:var(--ns-danger);}
.ns-card-desc{font-size:12.5px;color:var(--ns-text-secondary);line-height:1.6;margin-bottom:10px;}
.ns-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.ns-tag{font-size:11.5px;font-weight:500;background:color-mix(in srgb, var(--ns-accent) 10%, var(--ns-surface));border:1px solid color-mix(in srgb, var(--ns-accent) 25%, var(--ns-border));color:var(--ns-accent);padding:5px 12px;border-radius:var(--ns-radius-full);display:inline-flex;align-items:center;}
.ns-tags-lg .ns-tag{font-size:13px;padding:8px 16px;}
.ns-actions{display:flex;gap:8px;margin-top:auto;padding-top:10px;border-top:1px solid var(--ns-border);flex-wrap:wrap;}
.ns-actions button,.ns-actions a{flex:1;background:var(--ns-surface);border:1px solid var(--ns-border);color:var(--ns-text-primary);font-family:inherit;font-size:11.5px;padding:8px 4px;border-radius:var(--ns-radius-sm);cursor:pointer;transition:background .15s ease;text-decoration:none;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;}
.ns-actions button:hover,.ns-actions a:hover{background:var(--ns-border);}
.ns-actions .is-primary{background:var(--ns-accent);border-color:var(--ns-accent);color:#fff;}
.ns-actions .is-primary:hover{background:var(--ns-accent-hover);}
.ns-actions .ns-reviews-btn{background:transparent;border:1px dashed var(--ns-border);color:var(--ns-text-secondary);}
.ns-actions .ns-reviews-btn:hover{border-color:var(--ns-accent);color:var(--ns-text-primary);background:transparent;}
.ns-actions i{color:var(--ns-accent);}
.ns-actions .is-primary i{color:#fff;}

/* ---------- Reserve button (top 5 only, glassmorphism) ---------- */
.ns-reserve-btn{
	position:absolute;top:8px;left:8px;z-index:3;
	display:flex;align-items:center;gap:6px;
	padding:7px 12px;border-radius:var(--ns-radius-full);
	font-size:11px;font-weight:600;color:#fff;text-decoration:none;
	background:rgba(198,134,46,.35);
	backdrop-filter:blur(10px) saturate(160%);
	-webkit-backdrop-filter:blur(10px) saturate(160%);
	border:1px solid rgba(255,255,255,.35);
	box-shadow:0 4px 16px rgba(0,0,0,.15);
	transition:transform .15s ease,background .15s ease;
}
.ns-reserve-btn:hover{background:rgba(198,134,46,.55);transform:translateY(-1px);}
.ns-reserve-btn i{font-size:11px;}

/* ---------- Contact Modal ---------- */
.ns-contact-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;}
.ns-contact-modal[hidden]{display:none;}
.ns-contact-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);}
.ns-contact-modal-box{position:relative;background:var(--ns-surface-raised);border-radius:var(--ns-radius-xl);box-shadow:var(--ns-shadow-lg);padding:28px;width:90%;max-width:360px;max-height:80vh;overflow-y:auto;}
.ns-contact-modal-box h3{margin:0 0 18px;font-size:16px;font-weight:700;}
.ns-contact-modal-close{position:absolute;top:14px;left:14px;background:var(--ns-surface);border:1px solid var(--ns-border);width:30px;height:30px;border-radius:50%;cursor:pointer;color:var(--ns-text-secondary);}
.ns-contact-group{margin-bottom:16px;}
.ns-contact-group:last-child{margin-bottom:0;}
.ns-contact-group-label{display:block;font-size:11px;color:var(--ns-text-tertiary);font-weight:600;margin-bottom:8px;}
.ns-contact-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--ns-radius-md);background:var(--ns-surface);color:var(--ns-text-primary);text-decoration:none;font-size:13.5px;margin-bottom:6px;transition:background .15s ease;}
.ns-contact-row:hover{background:var(--ns-border);}
.ns-contact-row i{color:var(--ns-accent);width:18px;text-align:center;}

/* ---------- Business Detail page ---------- */
/* ---------- Slideshow + Lightbox ---------- */
.ns-slideshow{display:flex;gap:8px;overflow-x:auto;margin-bottom:var(--ns-space-6);scroll-snap-type:x proximity;padding-bottom:4px;}
.ns-slideshow-thumb{flex-shrink:0;width:180px;height:130px;border-radius:var(--ns-radius-lg);overflow:hidden;border:none;padding:0;cursor:pointer;scroll-snap-align:start;background:var(--ns-surface);}
.ns-slideshow-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease;}
.ns-slideshow-thumb:hover img{transform:scale(1.05);}
.ns-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;}
.ns-lightbox[hidden]{display:none;}
.ns-lightbox-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.9);}
.ns-lightbox-img{position:relative;max-width:88vw;max-height:88vh;border-radius:var(--ns-radius-md);z-index:1;}
.ns-lightbox-close{position:absolute;top:20px;left:20px;z-index:2;background:rgba(255,255,255,.15);color:#fff;border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:16px;}
.ns-lightbox-prev,.ns-lightbox-next{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:rgba(255,255,255,.15);color:#fff;border:none;width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:16px;}
.ns-lightbox-prev{right:20px;}
.ns-lightbox-next{left:20px;}
.ns-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--ns-space-4);margin-bottom:var(--ns-space-4);flex-wrap:wrap;}
.ns-detail-title{font-size:var(--ns-h1);font-weight:700;margin:0 0 6px;}
.ns-detail-rank-line{font-size:13px;color:var(--ns-text-secondary);text-decoration:none;}
.ns-detail-rank-line b{color:var(--ns-accent);}
.ns-detail-section{margin-bottom:var(--ns-space-8);}
.ns-detail-section h2{display:flex;align-items:center;gap:9px;font-size:var(--ns-h2);font-weight:600;margin:0 0 16px;}
.ns-map-container{width:100%;height:340px;border-radius:var(--ns-radius-lg);overflow:hidden;border:1px solid var(--ns-border);}
.ns-category-map-container{width:100%;height:280px;border-radius:var(--ns-radius-lg);overflow:hidden;border:1px solid var(--ns-border);margin-bottom:var(--ns-space-6);}
.mapboxgl-popup-content{font-family:var(--ns-font-body);direction:rtl;border-radius:var(--ns-radius-sm) !important;}
.ns-detail-section h2 i{color:var(--ns-accent);font-size:17px;}
.ns-detail-desc{font-size:14.5px;line-height:1.9;color:var(--ns-text-primary);}
.ns-hours-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.ns-hours-table td{padding:8px 4px;border-bottom:1px solid var(--ns-border);}
.ns-hours-table tr.is-today{font-weight:700;color:var(--ns-accent);}
.ns-faq-item{border-bottom:1px solid var(--ns-border);padding:14px 0;}
.ns-faq-item summary{cursor:pointer;font-weight:600;font-size:14px;}
.ns-faq-item p{color:var(--ns-text-secondary);font-size:13.5px;line-height:1.7;margin:10px 0 0;}

/* ---------- Reviews ---------- */
.ns-review-list{display:flex;flex-direction:column;gap:14px;margin-bottom:24px;}
.ns-review-item{background:var(--ns-surface);border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);padding:16px;}
.ns-review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.ns-review-header strong{font-size:13.5px;}
.ns-review-date{font-size:11.5px;color:var(--ns-text-tertiary);}
.ns-review-stars{margin-bottom:8px;font-size:12px;}
.ns-review-text{font-size:13.5px;line-height:1.7;color:var(--ns-text-primary);margin:0 0 10px;}
.ns-review-votes{display:flex;gap:10px;}
.ns-vote-btn{background:transparent;border:1px solid var(--ns-border);color:var(--ns-text-secondary);font-family:inherit;font-size:12px;padding:5px 12px;border-radius:var(--ns-radius-full);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s ease;}
.ns-vote-btn:hover{border-color:var(--ns-accent);color:var(--ns-accent);}
.ns-review-form-wrap{background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);padding:18px;}
.ns-review-form-wrap h3{font-size:14px;margin:0 0 12px;}
.ns-review-star-input{font-size:22px;color:#F5A623;margin-bottom:12px;cursor:pointer;display:flex;gap:4px;}
#ns-review-form textarea{width:100%;font-family:inherit;border:1px solid var(--ns-border);border-radius:var(--ns-radius-md);padding:10px;font-size:13.5px;resize:vertical;background:var(--ns-surface);color:var(--ns-text-primary);}
.ns-floating-bar{position:fixed;bottom:16px;left:16px;right:16px;background:var(--ns-surface-raised);border:1px solid var(--ns-border);box-shadow:var(--ns-shadow-lg);border-radius:var(--ns-radius-lg);display:flex;gap:8px;padding:10px;z-index:50;}
.ns-floating-bar a{flex:1;text-align:center;padding:10px;border-radius:var(--ns-radius-sm);font-size:13px;text-decoration:none;background:var(--ns-surface);color:var(--ns-text-primary);display:flex;align-items:center;justify-content:center;gap:6px;}
.ns-floating-bar a.is-primary{background:var(--ns-accent);color:#fff;}
@media(min-width:900px){.ns-floating-bar{display:none;}}

/* ---------- Comments (blog only; businesses use the reviews system) ---------- */
.ns-comments h2{font-size:17px;font-weight:700;margin:0 0 var(--ns-space-4);display:flex;align-items:center;gap:8px;}
.ns-comment-list{list-style:none;margin:0 0 var(--ns-space-6);padding:0;}
.ns-comment-list ol.children{list-style:none;margin:0;padding-inline-start:24px;}
.ns-comment-list .comment-body{border:1px solid var(--ns-border);border-radius:var(--ns-radius-md);padding:14px;margin-bottom:10px;background:var(--ns-surface);}
.ns-comment-list .comment-author{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;}
.ns-comment-list .comment-author img{border-radius:var(--ns-radius-full);}
.ns-comment-list .comment-metadata{font-size:11.5px;color:var(--ns-text-tertiary);margin:4px 0 8px;}
.ns-comment-list .comment-content{font-size:13.5px;line-height:1.8;color:var(--ns-text-secondary);}
.ns-comment-list .reply{margin-top:8px;font-size:12.5px;}
.ns-comments .comment-form label{display:block;font-size:12.5px;color:var(--ns-text-secondary);margin-bottom:4px;}
.ns-comments .comment-form input[type="text"],.ns-comments .comment-form input[type="email"],.ns-comments .comment-form input[type="url"],.ns-comments .comment-form textarea{width:100%;max-width:520px;font-family:inherit;font-size:13.5px;padding:9px 10px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-md);background:var(--ns-surface);color:var(--ns-text-primary);margin-bottom:10px;}

/* ---------- Post byline ---------- */
/* Shows the author's WordPress display name. Not a link — Security\Hardening
   404s author archives on purpose. */
.ns-post-byline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--ns-text-secondary);}
.ns-post-byline.is-compact{margin-top:10px;font-size:12px;color:var(--ns-text-tertiary);}
.ns-byline-avatar{border-radius:var(--ns-radius-full);}
.ns-byline-sep{color:var(--ns-text-tertiary);}

/* ---------- Map pin ---------- */
/* Built by assets/js/neshonio-map.js. Styled here so --ns-pin (which differs
   between light and dark) and any Theme Options override actually apply. */
/* Teardrop pin per نشونیو.dc.html. The outer element is mapbox's to transform
   (positioning); the inner one carries the look + the design's bob. */
.ns-map-pin{cursor:pointer;}
.ns-map-pin-inner{position:relative;width:34px;height:44px;color:var(--ns-pin);animation:ns-pinbob 2.4s ease-in-out infinite;transform-origin:center bottom;will-change:transform;filter:drop-shadow(0 6px 6px rgba(15,27,45,.35));}
.ns-map-pin-inner svg{width:100%;height:100%;display:block;}
/* Rank number seated in the pin's white eye. */
.ns-map-pin-rank{position:absolute;top:8px;left:0;right:0;text-align:center;font-size:10px;font-weight:800;color:var(--ns-pin);line-height:11px;}
@keyframes ns-pinbob{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
@media(prefers-reduced-motion:reduce){.ns-map-pin-inner{animation:none;}}

/* ---------- Async form status messages ---------- */
/* Set by JS as a class rather than an inline color, so the palette stays in
   one place and dark mode follows. */
.ns-form-status{font-size:12.5px;margin:8px 0 0;min-height:16px;}
.ns-form-status.is-pending{color:var(--ns-text-tertiary);}
.ns-form-status.is-ok{color:var(--ns-success);}
.ns-form-status.is-error{color:var(--ns-danger);}

/* ---------- Owner subscription panel (single business) ---------- */
/* Only rendered for the listing's owner — see single-business.php. */
.ns-owner-panel{border:1px solid var(--ns-accent);}
.ns-owner-note{font-size:12px;color:var(--ns-text-tertiary);margin:0 0 10px;}
.ns-owner-status{font-size:13.5px;color:var(--ns-text-secondary);margin:0 0 16px;}
.ns-owner-status .is-expired{color:var(--ns-danger);}
.ns-renew-form{display:flex;flex-direction:column;gap:6px;max-width:420px;}
.ns-renew-form label{font-size:12.5px;color:var(--ns-text-secondary);margin-top:6px;}
.ns-renew-form select,.ns-renew-form input{font-family:inherit;font-size:13.5px;padding:9px 10px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-md);background:var(--ns-surface);color:var(--ns-text-primary);}
.ns-renew-btn{margin-top:12px;background:var(--ns-accent);color:#fff;border:0;border-radius:var(--ns-radius-md);padding:11px 18px;font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .15s ease;}
.ns-renew-btn:hover:not(:disabled){background:var(--ns-accent-hover);}
.ns-renew-btn:disabled{opacity:.6;cursor:progress;}

/* ---------- Accessibility ---------- */
/* WordPress core markup assumes the theme provides this — the_posts_pagination()
   emits <h2 class="screen-reader-text">, so without it that heading rendered
   visibly. Standard WP implementation: off-canvas but still read by AT. */
.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal !important;}
.screen-reader-text:focus{background:var(--ns-surface-raised);border-radius:var(--ns-radius-sm);box-shadow:var(--ns-shadow-md);clip-path:none;color:var(--ns-text-primary);display:block;font-size:14px;height:auto;left:8px;line-height:normal;padding:12px 20px;text-decoration:none;top:8px;width:auto;z-index:100000;}

/* ---------- Pagination ---------- */
/* index.php / archive.php / search.php call the_posts_pagination(), and the
   Category page falls back to it inside <noscript>. Core outputs .page-numbers
   with no styling of its own. */
.ns-pagination{margin:var(--ns-space-6) 0;}
.ns-pagination .nav-links{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;}
.ns-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;border:1px solid var(--ns-border);border-radius:var(--ns-radius-sm);background:var(--ns-surface);color:var(--ns-text-secondary);font-size:13.5px;text-decoration:none;transition:background .15s ease,color .15s ease;}
.ns-pagination .page-numbers:hover{background:var(--ns-surface-raised);color:var(--ns-text-primary);}
.ns-pagination .page-numbers.current{background:var(--ns-accent);border-color:var(--ns-accent);color:#fff;}
.ns-pagination .page-numbers.dots{border-color:transparent;background:transparent;}

/* ---------- Generic page / archive / search ---------- */
.ns-page-content{background:var(--ns-surface-raised);border:1px solid var(--ns-border);border-radius:var(--ns-radius-lg);padding:var(--ns-space-6);line-height:1.9;color:var(--ns-text-primary);}
.ns-page-content h2,.ns-page-content h3,.ns-page-content h4{margin:var(--ns-space-6) 0 var(--ns-space-2);line-height:1.5;}
.ns-page-content p{margin:0 0 var(--ns-space-4);color:var(--ns-text-secondary);}
.ns-page-content a{color:var(--ns-accent);}
.ns-page-content img{max-width:100%;height:auto;border-radius:var(--ns-radius-md);}
.ns-page-content ul,.ns-page-content ol{margin:0 0 var(--ns-space-4);padding-inline-start:22px;color:var(--ns-text-secondary);}
.ns-page-content blockquote{margin:0 0 var(--ns-space-4);padding:var(--ns-space-2) var(--ns-space-4);border-inline-start:3px solid var(--ns-accent);background:var(--ns-surface);border-radius:var(--ns-radius-sm);}
.ns-page-content table{width:100%;border-collapse:collapse;}
.ns-page-content th,.ns-page-content td{border:1px solid var(--ns-border);padding:8px 10px;text-align:start;}
.ns-empty{text-align:center;padding:48px 20px;color:var(--ns-text-secondary);}
.ns-empty i{font-size:44px;color:var(--ns-text-tertiary);display:block;margin-bottom:var(--ns-space-4);}
.ns-result-group{margin-bottom:var(--ns-space-8);}
.ns-result-group > h2{font-size:17px;font-weight:700;margin:0 0 var(--ns-space-4);display:flex;align-items:center;gap:8px;}
.ns-result-group > h2 .ns-result-count{font-size:12.5px;font-weight:500;color:var(--ns-text-tertiary);}

/* Header: the centered nav collapses at the design's 640px breakpoint, leaving
   the logo and actions. Below ~460px the ghost login label can hide to keep the
   primary CTA + theme switch on one line. */
@media(max-width:640px){
	.ns-header-nav{display:none;}
}
@media(max-width:460px){
	.ns-header-bar{gap:10px;}
	.ns-btn-primary,.ns-btn-ghost{padding:10px 12px;font-size:12px;}
	.ns-logo-text small{display:none;}
}

@media(max-width:700px){
	.ns-layout{grid-template-columns:1fr;}
	.ns-side-widgets{position:static;}
	.ns-card{flex-direction:column;}
	.ns-card-img{width:100%;order:0;}
	.ns-slideshow-thumb{width:130px;height:100px;}
	.ns-page-content{padding:var(--ns-space-4);}
}
