/* =====================================================================
   Fullmoonstar — industry landing pages (Industrial; 17 pages share it)
   ===================================================================== */

.niche-hero { padding: calc(64px + 14px + 4.5rem) 0 4rem; position: relative; overflow: hidden; background: transparent; }
.niche-hero::before, .niche-hero::after { display: none !important; }
.niche-hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.niche-badge {
    display: inline-flex; align-items: center; gap: .6rem;
    padding: .5rem .95rem;
    border-radius: 9999px;
    box-shadow: var(--sh-recessed);
    font-family: var(--font-mono);
    font-size: .7rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .1em;
    color: var(--ink-muted);
    margin-bottom: 1.5rem;
}
.niche-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--led-green); box-shadow: var(--glow-green); }
.niche-hero h1 { font-size: clamp(2.2rem, 4.4vw, 3.4rem); font-weight: 800; line-height: 1.04; letter-spacing: -0.035em; color: var(--ink); margin-bottom: 1.25rem; text-shadow: 0 1px 1px #fff; }
.niche-hero-sub { font-size: 1.0625rem; line-height: 1.7; color: var(--ink-muted); margin-bottom: 2rem; max-width: 56ch; }
.niche-hero-cta { display: flex; gap: 1rem; flex-wrap: wrap; }
.niche-hero-cta .btn { min-height: 54px; border-radius: var(--r-xl); }
.niche-hero-grid > div:last-child {
    border-radius: var(--r-xl);
    padding: 14px;
    background: repeating-linear-gradient(45deg, rgba(255,255,255,.035) 0 2px, transparent 2px 4px), linear-gradient(160deg, #3b4a5f, #24303f);
    border: 4px solid #1d2733;
    box-shadow: var(--sh-float);
}
.niche-hero-img { width: 100%; border-radius: var(--r-md); display: block; }

/* Problems: bolted modules */
.pain-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.pain-card { padding: 1.75rem 1.5rem !important; text-align: left; position: relative; }
.pain-card::before {
    content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
    background:
        radial-gradient(circle at 14px 14px, rgba(0,0,0,.18) 2px, rgba(255,255,255,.7) 2.6px, transparent 3.4px),
        radial-gradient(circle at calc(100% - 14px) 14px, rgba(0,0,0,.18) 2px, rgba(255,255,255,.7) 2.6px, transparent 3.4px),
        radial-gradient(circle at 14px calc(100% - 14px), rgba(0,0,0,.18) 2px, rgba(255,255,255,.7) 2.6px, transparent 3.4px),
        radial-gradient(circle at calc(100% - 14px) calc(100% - 14px), rgba(0,0,0,.18) 2px, rgba(255,255,255,.7) 2.6px, transparent 3.4px);
}
.pain-icon { width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1.1rem; }
.pain-icon svg, .pain-icon .lucide { width: 24px !important; height: 24px !important; color: var(--accent) !important; stroke-width: 1.75; }
.pain-card:hover .pain-icon svg { transform: rotate(12deg) scale(1.1); transition: transform .2s ease; }
.pain-card h4 { font-size: 1.0625rem; font-weight: 700; margin-bottom: .4rem; }
.pain-card p { font-size: .9375rem; line-height: 1.6; color: var(--ink-muted); }

/* Market numbers: dark console */
.stats-bar { padding: 0 !important; }
.stats-bar-inner {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
    background: linear-gradient(180deg, #30383b, #262c2e);
    border-radius: var(--r-xl);
    padding: .5rem;
    box-shadow: 12px 12px 24px var(--shadow-dark), -12px -12px 24px var(--shadow-light), inset 0 1px 0 rgba(255,255,255,.06);
}
.stat-block { padding: 1.6rem 1.5rem; position: relative; text-align: left; }
.stat-block + .stat-block::before { content: ""; position: absolute; left: 0; top: 22%; bottom: 22%; width: 2px; background: rgba(0,0,0,.35); box-shadow: 1px 0 0 rgba(255,255,255,.06); }
.stat-val { font-family: var(--font-mono); font-size: 2.25rem; font-weight: 700; letter-spacing: -0.02em; color: #fff; line-height: 1; text-shadow: 0 0 12px rgba(255,255,255,.15); }
.stat-lbl { font-family: var(--font-mono); font-size: .66rem; text-transform: uppercase; letter-spacing: .1em; color: var(--on-console-muted); margin-top: .7rem; }

/* Before / after */
.ba-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.ba-card { padding: 1.9rem !important; }
.ba-label { display: flex; align-items: center; gap: .55rem; font-family: var(--font-mono); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; margin-bottom: 1rem; color: var(--ink-muted); }
.ba-label::before { content: ""; width: 8px; height: 8px; border-radius: 50%; }
.ba-before .ba-label::before { background: var(--accent); box-shadow: var(--glow-red); }
.ba-after .ba-label::before { background: var(--led-green); box-shadow: var(--glow-green); }
.ba-card ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.ba-card li { font-size: .9375rem; line-height: 1.5; color: var(--ink-muted); padding: .65rem .8rem .65rem 2.1rem; position: relative; border-radius: var(--r-md); box-shadow: var(--sh-recessed); }
.ba-before li::before { content: ''; position: absolute; left: .85rem; top: 1.15rem; width: 10px; height: 2px; background: var(--accent); }
.ba-after li::before { content: ''; position: absolute; left: .9rem; top: .9rem; width: 6px; height: 11px; border: solid #1f9d55; border-width: 0 2px 2px 0; transform: rotate(45deg); }

/* Solutions */
.solutions-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.solution-card { padding: 1.6rem !important; display: grid; grid-template-columns: 3rem 1fr; column-gap: 1.1rem; position: relative; overflow: visible !important; }
.solution-card::before { display: none !important; }
.solution-num {
    grid-row: span 2;
    width: 44px; height: 44px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--chassis) !important;
    box-shadow: var(--sh-key);
    font-family: var(--font-mono); font-size: .8rem; font-weight: 700; color: var(--accent-ink) !important;
}
.solution-card h4 { font-size: 1.0625rem; font-weight: 700; margin-bottom: .35rem; }
.solution-card p { font-size: .9375rem; line-height: 1.6; color: var(--ink-muted); }

/* Process: nodes on a pipe, moon phases inside */
.process-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; position: relative; }
.process-steps::before { content: ""; position: absolute; top: 30px; left: 36px; right: 12%; height: 12px; border-radius: 9999px; background: var(--recess); box-shadow: inset 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 1px rgba(255,255,255,.6); }
.process-step { position: relative; text-align: left; }
.process-step::after { display: none !important; }
.step-num {
    position: relative;
    width: 72px; height: 72px;
    border-radius: 50%;
    background: var(--chassis) !important;
    box-shadow: var(--sh-float);
    color: transparent !important;
    font-size: 0 !important;
    margin-bottom: 1.4rem;
    display: block !important;
}
.step-num::before { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: #14181a; box-shadow: inset 3px 3px 6px rgba(0,0,0,.6); }
.step-num::after { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: radial-gradient(circle at 36% 32%, #fffdf6, #e2d8bc); }
.process-step:nth-child(1) .step-num::after { opacity: 0; }
.process-step:nth-child(2) .step-num::after { clip-path: inset(0 0 0 70%); }
.process-step:nth-child(3) .step-num::after { clip-path: inset(0 0 0 50%); }
.process-step:nth-child(4) .step-num::after { box-shadow: 0 0 14px rgba(255,253,246,.6); }
.process-step h4 { font-size: 1.0625rem; font-weight: 700; margin-bottom: .35rem; }
.process-step p { font-size: .9375rem; line-height: 1.55; color: var(--ink-muted); }

/* FAQ: recessed drawers */
.faq-grid { max-width: 860px; margin: 0; display: grid; gap: 1rem; }
.faq-item { padding: 1.2rem 1.4rem !important; cursor: pointer; margin: 0 !important; }
.faq-item.open { box-shadow: var(--sh-recessed) !important; }
.faq-q { font-size: 1.0625rem; font-weight: 700; color: var(--ink); display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq-q::after {
    content: '+';
    flex-shrink: 0;
    width: 32px; height: 32px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    box-shadow: var(--sh-key);
    font-family: var(--font-mono); font-size: 1.1rem; font-weight: 500; color: var(--accent-ink);
    transition: transform .25s var(--ease-mech);
}
.faq-item.open .faq-q::after { transform: rotate(45deg); box-shadow: var(--sh-pressed); }
.faq-a { font-size: .9375rem; line-height: 1.7; color: var(--ink-muted); max-height: 0; overflow: hidden; transition: max-height .3s ease, padding .2s ease; padding-top: 0; max-width: 68ch; }
.faq-item.open .faq-a { max-height: 420px; padding-top: .8rem; }

@media (max-width: 900px) {
    .niche-hero-grid { grid-template-columns: 1fr; }
    .pain-grid { grid-template-columns: 1fr 1fr; }
    .solutions-grid, .ba-grid { grid-template-columns: 1fr; }
    .stats-bar-inner { grid-template-columns: 1fr 1fr; }
    .stat-block:nth-child(3)::before { display: none; }
    .process-steps { grid-template-columns: 1fr 1fr; row-gap: 2.25rem; }
    .process-steps::before { display: none; }
}
@media (max-width: 600px) {
    .pain-grid, .process-steps { grid-template-columns: 1fr; }
    .stat-val { font-size: 1.8rem; }
    .niche-hero-cta .btn { width: 100%; }
}
