/*
 * Nishchit — the blog in Nishchit's own look (nishchit-site public_html/assets/css/site.css): one teal accent, three
 * text colours, five type steps, the 4…96 spacing scale, two radii and a pill. Loaded after base/site.css and
 * homecraft.css; the Customizer variables (--c-*) carry the colours, the tokens below the rest.
 * Bangla rules (design skill, bangla.md): line-height 1.75 on body, 1.38 on headings, letter-spacing 0 everywhere,
 * no uppercase, no justify, 15 px floor for small text.
 */
:root {
    --ns-accent-deep: #0b5a54;   /* 7.2:1 on --ns-wash */
    --ns-wash: #e7f3f1;
    --ns-mint: #f2f9f6;          /* section ground: --c-muted 8.0:1, --ns-faint 4.82:1 on it */
    --ns-line: #dfe6e4;          /* decorative hairline */
    --ns-line-strong: #82918d;   /* 3.29:1 — the edge of anything a person operates */
    --ns-faint: #63716f;         /* 5.09:1 on white — never below 15 px */
    --ns-warn: #854d0e; --ns-warn-wash: #fef3c7;
    --ns-danger: #9f1239; --ns-good: #166534;
    /* type: five steps (15 · 18 · 22 · 30 · 40/44), Bangla first in every stack */
    --ns-t-small: 15px; --ns-t-lead: 22px;
    --ns-font: "Hind Siliguri", "Noto Sans Bengali", "Kohinoor Bangla", "Nirmala UI", var(--f-body);
    --ns-r: 8px; --ns-r-lg: 16px; --ns-r-pill: 999px;
    --shadow-card: none;
    --fs-small: 15px;
}
@media (max-width: 767px) { :root { --ns-t-lead: 20px; } }

/* ---- type ------------------------------------------------------------------------------------ */
body.ns { font-family: var(--ns-font); line-height: 1.75; letter-spacing: 0; hyphens: none; }
.ns h1, .ns h2, .ns h3, .ns h4, .ns h5, .ns h6 { font-family: var(--ns-font); line-height: 1.38; letter-spacing: 0; }
.ns p { text-wrap: pretty; }
.ns .entry-content { line-height: 1.8; }
.ns .entry-content p, .ns .entry-content li { text-align: start; }
.ns :focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; }
.ns .sr-only { position: absolute !important; }

/* ---- buttons (site.css .btn) ------------------------------------------------------------------ */
.ns-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
    min-height: 48px; padding: 0 var(--s5); border: 1px solid transparent; border-radius: var(--ns-r);
    font: inherit; font-size: var(--ns-t-small); font-weight: 600; line-height: 1.3; text-align: center; text-decoration: none;
    cursor: pointer; transition: background-color .15s ease, border-color .15s ease;
}
.ns-btn-primary { background: var(--c-accent); color: var(--c-on-accent); }
.ns-btn-primary:hover { background: var(--ns-accent-deep); color: var(--c-on-accent); }
.ns-btn-primary:active { background: var(--ns-accent-deep); }
.ns-btn-ghost { border-color: var(--c-accent); background: #fff; color: var(--c-text); }
.ns-btn-ghost:hover { background: var(--ns-wash); color: var(--c-text); }
.ns-btn:disabled, .ns-btn[aria-busy="true"] { opacity: .65; cursor: progress; }
.ns-arr { font-weight: 700; transition: transform .15s ease; }
.ns-btn:hover .ns-arr { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { .ns-btn, .ns-arr { transition: none; } .ns-btn:hover .ns-arr { transform: none; } }

/* ---- header (site.css .nav) ------------------------------------------------------------------- */
.ns-header { border-bottom: 1px solid var(--ns-line); }
.ns-header-inner { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--s4); min-height: 64px; }
.ns-brand { display: inline-flex; align-items: center; margin-right: auto; padding: var(--s2) 0; }
.ns-logo { display: block; width: 128px; height: 32px; }
.ns-header-tools { display: flex; align-items: center; gap: var(--s1); }
.ns-nav { display: none; order: 10; width: 100%; padding: 0 0 var(--s4); }
.ns-nav:target, .ns-nav.is-open { display: block; }
.ns-nav-links { list-style: none; margin: 0 0 var(--s4); padding: 0; }
.ns-nav-links li { border-top: 1px solid var(--ns-line); }
.ns-nav-links a { display: block; padding: var(--s3) 0; color: var(--c-text); font-size: 18px; font-weight: 500; text-decoration: none; }
.ns-nav-links a:hover, .ns-nav-links a[aria-current="page"], .ns-nav-links a.is-section { color: var(--c-accent); }
.ns-nav-links a.is-section { font-weight: 600; }
.ns-header-cta { width: 100%; }
@media (min-width: 1024px) {
    .ns-header-inner { flex-wrap: nowrap; min-height: var(--h-header); gap: var(--s6); }
    .ns-brand { margin-right: 0; }
    .ns .nav-toggle { display: none; }
    .ns-nav { display: flex; order: 2; flex: 1; align-items: center; gap: var(--s6); width: auto; padding: 0; }
    .ns-nav-links { display: flex; flex: 1; justify-content: center; gap: var(--s5); margin: 0; }
    .ns-nav-links li { border-top: 0; }
    .ns-nav-links a { position: relative; padding: var(--s2) 0; color: var(--c-muted); font-size: var(--ns-t-small); }
    .ns-nav-links a[aria-current="page"]::after, .ns-nav-links a.is-section::after {
        content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px; background: var(--c-accent);
    }
    .ns-header-cta { width: auto; flex: none; }
    .ns-header-tools { order: 3; }
}
.ns .header-search { padding: var(--s4) 0; }

/* ---- search form ------------------------------------------------------------------------------ */
.ns-search { display: flex; gap: var(--s2); max-width: 640px; }
.ns-search .search-input {
    flex: 1; min-width: 0; min-height: 48px; padding: 0 var(--s4); border: 1px solid var(--ns-line-strong); border-radius: var(--ns-r);
    background: #fff; color: var(--c-text); font: inherit; font-size: 17px;
}
.ns-search .search-input::placeholder { color: var(--ns-faint); }
.ns-search .search-input:focus { outline: 2px solid var(--c-accent); outline-offset: -1px; border-color: var(--c-accent); }
.ns-search .ns-btn { flex: none; }

/* ---- shared pieces ---------------------------------------------------------------------------- */
.ns-kicker {
    display: inline-block; margin: 0 0 var(--s3); padding: var(--s1) var(--s4); border-radius: var(--ns-r-pill);
    background: var(--ns-wash); color: var(--ns-accent-deep); font-size: var(--ns-t-small); font-weight: 600; line-height: 1.5;
}
.ns-tag { position: relative; z-index: 1; display: inline-block; color: var(--ns-accent-deep); font-size: var(--ns-t-small); font-weight: 600; text-decoration: none; }
.ns-tag:hover { color: var(--c-accent); text-decoration: underline; }
.ns-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--s4); margin: 0; color: var(--ns-faint); font-size: var(--ns-t-small); }
.ns-chip {
    display: inline-flex; align-items: center; gap: var(--s2); min-height: 44px; padding: 0 var(--s4); border: 1px solid var(--ns-line-strong);
    border-radius: var(--ns-r-pill); background: #fff; color: var(--c-text); font-size: var(--ns-t-small); font-weight: 600; text-decoration: none;
}
.ns-chip:hover { border-color: var(--c-accent); color: var(--c-accent); }
.ns-chip-count { color: var(--ns-faint); font-weight: 400; }
.ns-section { margin-block: var(--s8); }
.ns-section-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--s2) var(--s4); margin-bottom: var(--s5); }
.ns-section-head .ns-section-title { margin: 0; }
.ns-section-title { margin: 0 0 var(--s5); font-size: var(--fs-h2-m); }
@media (min-width: 768px) { .ns-section-title { font-size: var(--fs-h2); } }
.ns-section-link { color: var(--c-accent); font-size: var(--ns-t-small); font-weight: 600; text-decoration: none; }
.ns-section-link:hover { text-decoration: underline; }

/* ---- home ------------------------------------------------------------------------------------- */
.ns-intro { padding: var(--s7) 0; background: var(--ns-mint); border-bottom: 1px solid var(--ns-line); }
.ns-intro-title { max-width: 24ch; margin: 0 0 var(--s3); font-size: var(--fs-h1-m); }
.ns-intro-sub { max-width: 52ch; margin: 0 0 var(--s5); color: var(--c-muted); font-size: var(--ns-t-lead); }
@media (min-width: 768px) { .ns-intro { padding: var(--s8) 0; } .ns-intro-title { font-size: var(--fs-h1); } }

.ns-tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .ns-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ns-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ns-tile a {
    display: flex; flex-direction: column; gap: var(--s2); height: 100%; padding: var(--s5); border: 1px solid var(--ns-line);
    border-radius: var(--ns-r-lg); background: #fff; color: var(--c-text); text-decoration: none; transition: border-color .15s ease;
}
.ns-tile a:hover { border-color: var(--c-accent); }
.ns-tile-name { color: var(--c-heading); font-size: var(--ns-t-lead); font-weight: 700; line-height: 1.38; }
.ns-tile-text { color: var(--c-muted); font-size: var(--ns-t-small); line-height: 1.6; }
.ns-tile-count { margin-top: auto; padding-top: var(--s2); color: var(--ns-accent-deep); font-size: var(--ns-t-small); font-weight: 600; }

.ns-pillars { list-style: none; margin: 0; padding: 0; counter-reset: pillar; border-top: 1px solid var(--ns-line); }
.ns-pillars li { counter-increment: pillar; border-bottom: 1px solid var(--ns-line); }
.ns-pillars a { display: grid; grid-template-columns: 2.2em minmax(0, 1fr); gap: 0 var(--s3); padding: var(--s4) 0; color: var(--c-text); text-decoration: none; }
.ns-pillars a::before { content: counter(pillar, bengali) "."; grid-row: span 2; color: var(--c-accent); font-size: var(--ns-t-lead); font-weight: 700; line-height: 1.38; }
.ns-pillar-title { color: var(--c-heading); font-size: 18px; font-weight: 600; line-height: 1.5; }
.ns-pillars a:hover .ns-pillar-title { color: var(--c-accent); }
.ns-pillar-cat { color: var(--ns-faint); font-size: var(--ns-t-small); }

/* ---- cards ------------------------------------------------------------------------------------ */
.ns-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s5); }
@media (min-width: 640px) { .ns-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ns-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ns-cards > .ad-feed { grid-column: 1 / -1; }
.ns-card { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ns-line); border-radius: var(--ns-r-lg); background: #fff; transition: border-color .15s ease; }
.ns-card:hover { border-color: var(--c-accent); }
.ns-card-media { aspect-ratio: var(--ratio-card); overflow: hidden; background: var(--ns-mint); }
.ns-card-media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.ns-card-body { display: flex; flex: 1; flex-direction: column; gap: var(--s2); padding: var(--s4) var(--s5) var(--s5); }
.ns-card-title { margin: 0; font-size: 20px; line-height: 1.45; }
@media (min-width: 768px) { .ns-card-title { font-size: var(--ns-t-lead); } }
.ns-card-title a { color: var(--c-heading); text-decoration: none; }
.ns-card-title a::after { content: ""; position: absolute; inset: 0; } /* the whole card opens the guide */
.ns-card-title a:hover { color: var(--c-accent); }
.ns-card-excerpt { margin: 0; color: var(--c-muted); font-size: var(--ns-t-small); line-height: 1.65; }
.ns-card .ns-meta { margin-top: auto; padding-top: var(--s2); }
@media (prefers-reduced-motion: reduce) { .ns-card, .ns-tile a { transition: none; } }

/* ---- archive pages ---------------------------------------------------------------------------- */
.ns-list-page { padding-bottom: var(--s7); }
.ns-archive-head { margin: var(--s5) 0 var(--s6); }
.ns-archive-title { margin: 0 0 var(--s3); font-size: var(--fs-h1-m); }
@media (min-width: 768px) { .ns-archive-title { font-size: var(--fs-h1); } }
.ns-archive-lead { max-width: 60ch; margin: 0 0 var(--s3); color: var(--c-muted); font-size: var(--ns-t-lead); line-height: 1.6; }
.ns-archive-meta { margin: 0 0 var(--s4); color: var(--ns-faint); font-size: var(--ns-t-small); }
.ns-archive-head .ns-search { margin-top: var(--s4); }
.ns-archive-intro, .ns-archive-outro { max-width: var(--w-content); }
.ns-subtopics ul, .ns-subtopics-list { display: flex; flex-wrap: wrap; gap: var(--s2); list-style: none; margin: 0 0 var(--s6); padding: 0; }
.ns-faq-item { border-bottom: 1px solid var(--ns-line); }
.ns-faq-item summary { padding: var(--s4) 0; color: var(--c-heading); font-size: 18px; font-weight: 600; cursor: pointer; }
.ns-faq-answer { padding-bottom: var(--s4); color: var(--c-text); }
.ns-author-head { display: flex; flex-wrap: wrap; gap: var(--s5); align-items: flex-start; margin: var(--s5) 0 var(--s6); }
.ns-author-photo { width: 112px; height: 112px; border-radius: 50%; object-fit: cover; flex: none; }
.ns-author-links { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); margin: 0; font-size: var(--ns-t-small); }
.ns-author-about { max-width: var(--w-content); }
.ns-facts { padding-left: 1.2em; }
.ns-fact-sub { display: block; color: var(--ns-faint); font-size: var(--ns-t-small); }
.ns .result .result-title a { text-decoration: none; }

/* ---- pagination ------------------------------------------------------------------------------- */
.ns-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--s3); margin: var(--s7) 0 0; }
.ns-pagination .page-numbers { display: flex; gap: var(--s2); list-style: none; margin: 0; padding: 0; }
.ns-pagination .page-numbers a, .ns-pagination .page-current, .ns-page-step {
    display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 var(--s3);
    border: 1px solid var(--ns-line-strong); border-radius: var(--ns-r); color: var(--c-text); font-size: var(--ns-t-small); text-decoration: none;
}
.ns-pagination .page-current { border-color: var(--c-accent); background: var(--c-accent); color: var(--c-on-accent); font-weight: 600; }
.ns-pagination a:hover { border-color: var(--c-accent); color: var(--c-accent); }

/* ---- breadcrumbs ------------------------------------------------------------------------------ */
.ns-breadcrumbs ol { margin: var(--s5) 0 var(--s4); font-size: var(--ns-t-small); }

/* ---- single post ------------------------------------------------------------------------------ */
.ns-single { padding-bottom: var(--s7); }
.ns-entry .ns-tag { margin: var(--s2) 0 var(--s3); }
.ns-entry .entry-title { margin: 0 0 var(--s4); font-size: var(--fs-post-title-m); line-height: 1.38; letter-spacing: 0; }
@media (min-width: 768px) { .ns-entry .entry-title { font-size: var(--fs-post-title); } }
.ns-post-meta { margin: 0 0 var(--s5); }
.ns-meta-author { display: inline-flex; align-items: center; gap: var(--s2); }
.ns-meta-author img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.ns-meta-author a { color: var(--c-heading); font-weight: 600; }
.ns-answer { margin: 0 0 var(--s5); padding: var(--s4) var(--s5); border-radius: var(--ns-r); background: var(--ns-mint); color: var(--c-text); font-size: 18px; line-height: 1.75; }
.ns-answer strong { color: var(--ns-accent-deep); }
.ns-entry .featured-image img { border-radius: var(--ns-r-lg); }
.ns .entry-content a { color: var(--c-link); text-decoration: underline; text-underline-offset: .2em; }
.ns .entry-content a:hover { color: var(--c-link-hover); }
.ns .entry-content table { font-size: var(--ns-t-small); }
.ns .entry-content th, .ns .entry-content td { border-color: var(--ns-line); }
.ns .entry-content blockquote { background: var(--ns-mint); }
.ns .toc, .hc-toc-inline .toc { border: 1px solid var(--ns-line); border-radius: var(--ns-r-lg); background: #fff; }
.ns .toc-title { font-weight: 700; }

/* the long-guide layout (homecraft's design; homecraft.css itself is not loaded — theme.json "parent_styles": false).
   homecraft.js moves the table of contents into the dock once the boxes above it have scrolled past; the dock is
   sticky until the article ends. On phones the TOC folds into the article instead. */
.hc-single { max-width: calc(var(--w-content) + var(--w-sidebar) + var(--s7) + 2 * var(--gutter)); }
@media (min-width: 1024px) {
    .hc-single { display: grid; grid-template-columns: minmax(0, 1fr) var(--w-sidebar); gap: var(--s7); align-items: start; }
    .hc-toc-inline { display: none; }
}
.hc-entry { max-width: none; }
.hc-toc-inline .toc { margin: 0 0 var(--s5); }
.hc-sidebar { display: flex; flex-direction: column; gap: var(--s5); margin-top: var(--s7); }
.hc-toc-range { margin-top: calc(var(--s5) * -1); }
.hc-toc-sentinel { display: block; height: 0; }
@media (min-width: 1024px) {
    .hc-single > .hc-sidebar { align-self: stretch; margin-top: var(--s5); }
    .hc-toc-range { flex: 1 1 0; }
    .hc-sidebar:has(> .sidebar-sticky .ad-slot)::after { content: ""; flex: 1 1 0; }
    .hc-toc-dock { position: sticky; top: calc(var(--h-header) + var(--s4)); z-index: 2; }
    .hc-toc-dock .hc-toc-widget { max-height: calc(100vh - var(--h-header) - var(--s6)); overflow-y: auto; scrollbar-width: thin; }
}
.hc-sidebar .ad-sidebar { margin: 0; }
.hc-widget { padding: var(--s5); border: 1px solid var(--ns-line); border-radius: var(--ns-r-lg); background: #fff; }
.hc-widget-title { margin: 0 0 var(--s3); font-size: 18px; }
.hc-toc-list { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.hc-toc-list li { counter-increment: toc; }
.hc-toc-list a {
    display: flex; gap: var(--s2); padding: var(--s2) var(--s3); border-radius: var(--ns-r);
    color: var(--c-text); font-size: var(--ns-t-small); line-height: 1.5; text-decoration: none;
}
.hc-toc-list a::before { content: counter(toc, bengali) "."; min-width: 1.4em; color: var(--ns-faint); }
.hc-toc-list a:hover { color: var(--c-accent); }
.hc-toc-list li.is-active a { background: var(--ns-wash); color: var(--ns-accent-deep); font-weight: 600; }
.hc-toc-list li.is-active a::before { color: var(--ns-accent-deep); }
.hc-toc-placeholder { display: block; }

.ns-author-box { display: flex; gap: var(--s4); align-items: flex-start; margin: var(--s7) 0 0; padding: var(--s5); border: 1px solid var(--ns-line); border-radius: var(--ns-r-lg); background: #fff; }
.ns-author-box .author-box-photo { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; flex: none; }
.ns-author-box .author-box-title { margin: 0 0 var(--s1); font-size: var(--ns-t-lead); }
.ns-author-box .author-box-role { margin: 0 0 var(--s2); color: var(--ns-faint); font-size: var(--ns-t-small); }
.ns-author-box .author-box-bio { margin: 0 0 var(--s3); color: var(--c-muted); font-size: var(--ns-t-small); line-height: 1.65; }
.ns-author-box .author-box-links { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); margin: 0; font-size: var(--ns-t-small); }
.ns-related { margin-top: var(--s8); }
.ns-related > h2 { margin-bottom: var(--s5); }
/* the related cards sit in the article column (~760 px): two across, never three narrow ones */
@media (min-width: 1024px) { .ns-related .ns-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---- calls to action -------------------------------------------------------------------------- */
.ns-cta {
    display: grid; gap: var(--s4); margin: var(--s6) 0; padding: var(--s5); border: 1px solid var(--ns-line);
    border-radius: var(--ns-r-lg); background: var(--ns-mint); color: var(--c-text);
}
.ns-cta-copy > * { margin: 0; }
.ns-cta-copy > * + * { margin-top: var(--s2); }
.ns-cta-kicker {
    display: inline-block; padding: var(--s1) var(--s3); border-radius: var(--ns-r-pill); background: var(--ns-wash);
    color: var(--ns-accent-deep); font-size: var(--ns-t-small); font-weight: 600; line-height: 1.5;
}
.ns-cta-title { color: var(--c-heading); font-size: var(--ns-t-lead); font-weight: 700; line-height: 1.38; text-wrap: balance; }
.ns-cta-text { color: var(--c-muted); font-size: 17px; line-height: 1.7; }
.ns-cta-points { list-style: none; padding: 0; }
.ns-cta-points li { position: relative; margin: 0 0 var(--s2); padding-left: 28px; font-size: 17px; line-height: 1.6; }
.ns-cta-points li::before {
    content: ""; position: absolute; left: 4px; top: .45em; width: 12px; height: 7px;
    border-left: 2.5px solid var(--c-accent); border-bottom: 2.5px solid var(--c-accent); transform: rotate(-45deg);
}
.ns-cta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s5); }
.ns-cta-actions .ns-btn { text-decoration: none; }
.ns .entry-content .ns-cta a.ns-btn, .ns .entry-content .ns-cta a.ns-btn:hover { color: var(--c-on-accent); text-decoration: none; }
.ns-cta-second { color: var(--ns-accent-deep); font-size: var(--ns-t-small); font-weight: 600; }
.ns-cta-second:hover { color: var(--c-accent); }
@media (max-width: 639px) { .ns-cta-actions .ns-btn { width: 100%; } }
@media (min-width: 768px) {
    .ns-cta { padding: var(--s6); }
    .ns-cta-at-end, .ns-cta-at-home, .ns-cta-at-category { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--s6); }
    .ns-cta-at-end .ns-cta-actions, .ns-cta-at-home .ns-cta-actions, .ns-cta-at-category .ns-cta-actions { flex-direction: column; align-items: stretch; }
    .ns-cta-at-end .ns-cta-second, .ns-cta-at-home .ns-cta-second, .ns-cta-at-category .ns-cta-second { text-align: center; }
}
/* the sidebar card: same box, tighter, the button across */
.ns-cta-at-sidebar { margin: 0; padding: var(--s5); gap: var(--s3); }
.ns-cta-at-sidebar .ns-cta-title { font-size: 18px; }
.ns-cta-at-sidebar .ns-btn { width: 100%; }

/* ---- the meeting popup (nishchit-site meeting-popup.php) -------------------------------------- */
.mb-modal { position: fixed; inset: 0; z-index: 70; display: none; align-items: center; justify-content: center; padding: var(--s4); background: rgba(10, 20, 16, .55); }
.mb-modal.is-open { display: flex; }
.mb-card { width: 100%; max-width: 440px; max-height: calc(100vh - 2 * var(--s4)); overflow-y: auto; border-radius: var(--ns-r-lg); background: #fff; box-shadow: 0 24px 64px rgba(0, 0, 0, .28); }
@media (prefers-reduced-motion: no-preference) { .mb-card { animation: mbUp .18s ease; } }
@keyframes mbUp { from { transform: translateY(14px); opacity: .5; } to { transform: none; opacity: 1; } }
.mb-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s3); padding: var(--s5) var(--s5) 0; }
.mb-title { margin: 0; color: var(--c-heading); font-size: var(--ns-t-lead); font-weight: 700; line-height: 1.38; }
.mb-sub { margin: var(--s1) 0 0; color: var(--c-muted); font-size: var(--ns-t-small); line-height: 1.6; }
.mb-x { flex: none; width: 44px; height: 44px; margin: -8px -8px 0 0; border: 0; border-radius: var(--ns-r); background: transparent; color: var(--ns-faint); font-size: 28px; line-height: 1; cursor: pointer; }
.mb-x:hover { background: var(--ns-mint); color: var(--c-text); }
.mb-body { display: grid; gap: var(--s3); padding: var(--s4) var(--s5) var(--s5); }
.mb-field label { display: block; margin: 0 0 var(--s1); font-size: var(--ns-t-small); font-weight: 600; }
.mb-field input, .mb-field select {
    width: 100%; min-height: 48px; padding: 0 var(--s3); border: 1px solid var(--ns-line-strong); border-radius: var(--ns-r);
    background: #fff; color: var(--c-text); font: inherit; font-size: 17px;
}
.mb-field input:focus, .mb-field select:focus { outline: 2px solid var(--c-accent); outline-offset: -1px; border-color: var(--c-accent); }
.mb-field select:disabled { background: var(--ns-mint); color: var(--ns-faint); }
.mb-hint { margin: var(--s1) 0 0; color: var(--c-muted); font-size: var(--ns-t-small); line-height: 1.55; }
.mb-err { display: none; margin: 0; color: var(--ns-danger); font-size: var(--ns-t-small); font-weight: 600; }
.mb-err.is-on { display: block; }
.mb-note { margin: 0; padding: var(--s3); border: 1px solid var(--ns-warn); border-radius: var(--ns-r); background: var(--ns-warn-wash); color: var(--c-text); font-size: var(--ns-t-small); line-height: 1.6; }
.mb-sure { display: flex; align-items: flex-start; gap: var(--s2); font-size: var(--ns-t-small); font-weight: 600; line-height: 1.5; cursor: pointer; }
.mb-sure input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--c-accent); }
.mb-submit { width: 100%; }
.mb-ok { display: none; padding: var(--s6) var(--s5); text-align: center; }
.mb-ok.is-on { display: block; }
.mb-ok .mb-title { color: var(--ns-good); margin-bottom: var(--s2); }
.mb-ok p:last-child { margin: 0; color: var(--c-muted); line-height: 1.7; }

/* ---- footer (site.css .foot) ------------------------------------------------------------------ */
.ns-footer { margin-top: var(--s8); padding: var(--s8) 0 var(--s6); border-top: 1px solid var(--ns-line); background: var(--c-footer-bg); color: var(--c-footer-text); }
.ns-footer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s6); }
.ns-footer-about { grid-column: 1 / -1; }
@media (min-width: 1024px) { .ns-footer-grid { grid-template-columns: minmax(0, 1.4fr) repeat(4, minmax(0, 1fr)); } .ns-footer-about { grid-column: auto; } }
.ns-footer-about p { max-width: 32ch; margin: var(--s3) 0; font-size: var(--ns-t-small); line-height: 1.65; }
.ns-footer .ns-brand { padding: 0; }
.ns-foot-title { margin: 0 0 var(--s3); color: var(--c-heading); font-size: var(--ns-t-small); font-weight: 700; }
.ns-footer ul { list-style: none; margin: 0; padding: 0; }
.ns-footer li { margin: 0 0 var(--s2); }
.ns-footer a { color: var(--c-footer-text); font-size: var(--ns-t-small); text-decoration: none; }
.ns-footer a:hover { color: var(--c-heading); text-decoration: underline; }
.ns-contact a { display: inline-block; padding: var(--s1) 0; color: var(--c-heading); font-weight: 600; }
.ns-footer-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s2) var(--s4); margin-top: var(--s7); padding-top: var(--s5); border-top: 1px solid var(--ns-line); color: var(--ns-faint); font-size: var(--ns-t-small); }
.ns-footer-base p { margin: 0; }
.ns-legal { margin: var(--s3) 0 0; color: var(--c-muted); font-size: var(--ns-t-small); line-height: 1.6; }
