/* SEO niche pages (/seo-for/<slug>/): the /seo-for/alcohol/ layout, recoloured
   per sector. Pages are generated by admin-server/scripts/build-seo-niche-pages.js
   and carry <body data-fx="niche" data-sn="<sector>">; the palette block at the
   bottom is regenerated from industry-pages.config.js THEMES on every build.

   Colour lives in sn-* classes only: styles.css is a precompiled Tailwind
   build, and the site's grey lock (enhancements.css v13/v14, script.js
   injectGreyLock) repaints amber utilities and alc-* classes on every page
   that is not an alcohol page. */

[data-sn] {
  --sn-deep: #0b1640;
  --sn-primary: #2563eb;
  --sn-accent: #38bdf8;
  --sn-accent2: #a5f3fc;
  --sn-base: color-mix(in srgb, var(--sn-deep) 62%, #050506);
  --sn-rich-a: color-mix(in srgb, var(--sn-deep) 88%, #000);
  --sn-rich-b: color-mix(in srgb, var(--sn-primary) 30%, var(--sn-deep));
  --sn-rich-c: color-mix(in srgb, var(--sn-primary) 52%, var(--sn-deep));
  --sn-head: color-mix(in srgb, var(--sn-accent2) 10%, #fff);
  --sn-body: color-mix(in srgb, var(--sn-accent2) 34%, #fff);
  --sn-soft: color-mix(in srgb, var(--sn-body) 80%, transparent);
  --sn-line: color-mix(in srgb, var(--sn-accent) 38%, transparent);
  --sn-line-hi: color-mix(in srgb, var(--sn-accent) 85%, transparent);
  --sn-card-a: color-mix(in srgb, var(--sn-primary) 28%, transparent);
  --sn-card-b: color-mix(in srgb, var(--sn-primary) 14%, transparent);
  --fx-deep: var(--sn-deep);
  --fx-primary: var(--sn-primary);
  --fx-accent: var(--sn-accent);
  --fx-accent-2: var(--sn-accent2);
  --fx-ink: var(--sn-head);
  background: var(--sn-base);
}

/* ---------- sections ---------- */
[data-sn] .sn-rich {
  background-color: var(--sn-rich-a);
  background-image: linear-gradient(160deg, var(--sn-rich-a) 0%, var(--sn-rich-b) 52%, var(--sn-rich-c) 100%);
  color: var(--sn-body);
}
[data-sn] .sn-base { position: relative; overflow: hidden; background-color: var(--sn-base); color: var(--sn-body); }
[data-sn] .sn-base::before {
  content: ""; position: absolute; width: 440px; height: 440px; border-radius: 50%; top: -140px; right: -120px; pointer-events: none;
  background: radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--sn-accent) 24%, transparent), transparent 70%);
  filter: blur(45px); animation: sn-drift 15s ease-in-out infinite alternate;
}
[data-sn] .sn-base > div { position: relative; z-index: 1; }
@keyframes sn-drift { from { transform: translate(0, 0); } to { transform: translate(-50px, 60px); } }

[data-sn] .sn-h { color: var(--sn-head); }
[data-sn] .sn-p { color: var(--sn-body); }
[data-sn] .sn-soft { color: var(--sn-soft); }
[data-sn] .sn-accent { color: var(--sn-accent2); }
[data-sn] a.sn-link { color: var(--sn-accent2); text-decoration: none; }
[data-sn] a.sn-link:hover { text-decoration: underline; }
[data-sn] h2.sn-h::after {
  content: ""; display: block; width: 3rem; height: 3px; margin-top: .9rem; border-radius: 3px;
  background: linear-gradient(90deg, var(--sn-accent), transparent);
}
[data-sn] .text-center > h2.sn-h::after { margin-left: auto; margin-right: auto; background: linear-gradient(90deg, transparent, var(--sn-accent), transparent); }

/* ---------- hero ---------- */
[data-sn] .sn-hero { background-color: var(--sn-deep); }
[data-sn] .sn-hero-photo {
  position: absolute; inset: 0; z-index: -2; background-size: cover; background-position: center;
  animation: sn-kenburns 16s ease-in-out infinite alternate;
}
@keyframes sn-kenburns { from { transform: scale(1); } to { transform: scale(1.12); } }
[data-sn] .sn-hero-veil {
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(135deg, color-mix(in srgb, var(--sn-deep) 90%, transparent), color-mix(in srgb, var(--sn-rich-b) 80%, transparent) 55%, color-mix(in srgb, var(--sn-rich-c) 66%, transparent));
}
[data-sn] .fx-hero .fx-particles { z-index: 0; }
[data-sn] .fx-hero .container { position: relative; z-index: 1; }
[data-sn] .sn-hero h1 { color: #fff; text-shadow: 0 2px 24px rgba(0, 0, 0, .35); }
[data-sn] .sn-hero-in { position: relative; }
[data-sn] .sn-hero-in > * { animation: sn-hero-in .8s cubic-bezier(.16, 1, .3, 1) backwards; }
[data-sn] .sn-hero-in > *:nth-child(1) { animation-delay: .05s; }
[data-sn] .sn-hero-in > *:nth-child(2) { animation-delay: .15s; }
[data-sn] .sn-hero-in > *:nth-child(3) { animation-delay: .25s; }
[data-sn] .sn-hero-in > *:nth-child(4) { animation-delay: .35s; }
@keyframes sn-hero-in { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
[data-sn] .sn-pill {
  color: var(--sn-accent2); border-color: var(--sn-accent);
  box-shadow: 0 10px 30px -12px color-mix(in srgb, var(--sn-accent) 45%, transparent);
  background: color-mix(in srgb, var(--sn-deep) 35%, transparent);
}

/* ---------- buttons ---------- */
[data-sn] a.sn-btn {
  color: var(--sn-deep); border: 1px solid var(--sn-accent);
  background-image: linear-gradient(135deg, var(--sn-accent2), var(--sn-accent) 60%);
  box-shadow: 0 14px 30px -14px color-mix(in srgb, var(--sn-accent) 80%, transparent);
}
[data-sn] a.sn-btn:hover { filter: brightness(1.06); }
[data-sn] a.sn-btn-ghost { color: #fff; border-color: var(--sn-accent); background: transparent; }
[data-sn] a.sn-btn-ghost:hover { background: color-mix(in srgb, var(--sn-accent) 14%, transparent); }
[data-sn] a.sn-btn-light { color: var(--sn-deep); background: #fff; }
[data-sn] a.sn-btn-light:hover { background: var(--sn-accent2); }

/* ---------- marquee ---------- */
[data-sn] .fx-marquee { background: linear-gradient(90deg, var(--sn-rich-a), var(--sn-rich-b), var(--sn-rich-a)); color: var(--sn-accent2); }

/* ---------- photo split (section 2) ---------- */
[data-sn] .sn-photo-split { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 900px) { [data-sn] .sn-photo-split { grid-template-columns: 1fr 1fr; } }
[data-sn] .sn-photo-split img {
  width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 1rem;
  box-shadow: 0 25px 50px -20px rgba(0, 0, 0, .6), 0 0 0 1px color-mix(in srgb, var(--sn-accent) 25%, transparent);
}

/* ---------- cards ---------- */
[data-sn] .sn-card {
  display: block; padding: 1.5rem; border-radius: .75rem; border: 1px solid var(--sn-line);
  background: linear-gradient(135deg, var(--sn-card-a), var(--sn-card-b));
  transition: border-color .3s ease, transform .3s ease;
}
[data-sn] .sn-card h3 { color: var(--sn-head); }
[data-sn] .sn-card p, [data-sn] .sn-card li { color: var(--sn-soft); }
[data-sn] .sn-card:hover { border-color: var(--sn-line-hi); }
[data-sn] a.sn-card:hover h3 { color: var(--sn-accent2); }
[data-sn] .reveal-up.is-visible .sn-card { position: relative; overflow: hidden; isolation: isolate; animation: sn-card-in .7s ease backwards; }
[data-sn] .reveal-up.is-visible .sn-card::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(120deg, transparent 20%, color-mix(in srgb, var(--sn-accent) 16%, transparent) 45%, transparent 70%);
  background-size: 250% 250%; background-position: 120% 0; animation: sn-sweep 1.4s ease-out .1s both;
}
@keyframes sn-card-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes sn-sweep { from { background-position: 120% 0; } to { background-position: -20% 0; } }
[data-sn] .sn-stat { color: var(--sn-accent2); }
[data-sn] .fx-media-frame { box-shadow: 0 30px 60px -28px rgba(0, 0, 0, .8), 0 0 0 1px color-mix(in srgb, var(--sn-accent) 25%, transparent); }

/* ---------- lists, chips, steps, FAQ, note ---------- */
[data-sn] .sn-list { display: grid; gap: .65rem; list-style: none; padding: 0; margin: 0; }
@media (min-width: 640px) { [data-sn] .sn-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
[data-sn] .sn-list li { position: relative; padding-left: 1.6rem; color: var(--sn-body); line-height: 1.6; }
[data-sn] .sn-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--sn-accent); font-weight: 700; }
[data-sn] .sn-chip {
  display: inline-block; margin: .25rem .3rem .25rem 0; padding: .4rem .9rem; border-radius: 9999px; font-size: .9rem;
  color: var(--sn-accent2); border: 1px solid var(--sn-line);
  background: color-mix(in srgb, var(--sn-primary) 32%, transparent);
  transition: transform .25s ease, border-color .25s ease, background .25s ease;
}
[data-sn] .sn-chip:hover { transform: translateY(-2px); border-color: var(--sn-accent); background: color-mix(in srgb, var(--sn-primary) 50%, transparent); }
[data-sn] .sn-step { display: flex; gap: 1.25rem; margin-bottom: 1.75rem; }
[data-sn] .sn-step h3 { color: var(--sn-head); }
[data-sn] .sn-step p { color: var(--sn-soft); }
[data-sn] .sn-step-num {
  flex-shrink: 0; width: 3rem; height: 3rem; border-radius: 9999px; display: flex; align-items: center; justify-content: center;
  font-weight: 800; color: var(--sn-deep); background: linear-gradient(135deg, var(--sn-accent2), var(--sn-accent));
  transition: transform .5s var(--fx-spring, ease), box-shadow .4s ease;
}
[data-sn] .sn-step:hover .sn-step-num { transform: scale(1.12) rotate(-6deg); box-shadow: 0 0 0 6px color-mix(in srgb, var(--sn-accent) 18%, transparent); }
[data-sn] .sn-faq { border: 1px solid var(--sn-line); border-radius: .75rem; overflow: hidden; margin-bottom: 1rem; background: linear-gradient(135deg, var(--sn-card-a), var(--sn-card-b)); }
[data-sn] .sn-faq summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 1.15rem 1.5rem; font-weight: 700; color: var(--sn-head);
}
[data-sn] .sn-faq summary::-webkit-details-marker { display: none; }
[data-sn] .sn-faq summary::after { content: "+"; font-size: 1.6rem; line-height: 1; color: var(--sn-accent); transition: transform .3s ease; flex-shrink: 0; }
[data-sn] .sn-faq[open] { border-color: var(--sn-line-hi); }
[data-sn] .sn-faq[open] summary::after { transform: rotate(45deg); }
[data-sn] .sn-faq-body { padding: 0 1.5rem 1.35rem; color: var(--sn-body); line-height: 1.75; }
[data-sn] .sn-note { border-left: 3px solid var(--sn-accent); padding: .75rem 0 .75rem 1rem; color: var(--sn-soft); font-size: .95rem; }

@media (prefers-reduced-motion: reduce) {
  [data-sn] .sn-hero-photo, [data-sn] .sn-base::before, [data-sn] .sn-hero-in > *, [data-sn] .reveal-up.is-visible .sn-card,
  [data-sn] .reveal-up.is-visible .sn-card::before { animation: none !important; }
}

/* >>> palettes: generated by build-seo-niche-pages.js from industry-pages.config.js THEMES */
[data-sn="automotive"] { --sn-deep: #111418; --sn-primary: #b91c1c; --sn-accent: #f97316; --sn-accent2: #fdba74; }
[data-sn="education"] { --sn-deep: #1e1b4b; --sn-primary: #4338ca; --sn-accent: #f59e0b; --sn-accent2: #fcd34d; }
[data-sn="fashion"] { --sn-deep: #1f0f1c; --sn-primary: #9d174d; --sn-accent: #f472b6; --sn-accent2: #fbcfe8; }
[data-sn="finance"] { --sn-deep: #0b1f3a; --sn-primary: #1d4ed8; --sn-accent: #d4a72c; --sn-accent2: #f5dc8a; }
[data-sn="fitness"] { --sn-deep: #0c1a12; --sn-primary: #15803d; --sn-accent: #84cc16; --sn-accent2: #d9f99d; }
[data-sn="food-beverage"] { --sn-deep: #2a1608; --sn-primary: #c2410c; --sn-accent: #f59e0b; --sn-accent2: #fde68a; }
[data-sn="franchises"] { --sn-deep: #15112b; --sn-primary: #6d28d9; --sn-accent: #a78bfa; --sn-accent2: #ddd6fe; }
[data-sn="government-agency"] { --sn-deep: #0f1b2d; --sn-primary: #1e3a8a; --sn-accent: #60a5fa; --sn-accent2: #bfdbfe; }
[data-sn="healthcare"] { --sn-deep: #042f2e; --sn-primary: #0f766e; --sn-accent: #2dd4bf; --sn-accent2: #99f6e4; }
[data-sn="medical-health"] { --sn-deep: #042f2e; --sn-primary: #0f766e; --sn-accent: #2dd4bf; --sn-accent2: #99f6e4; }
[data-sn="heavy-equipment"] { --sn-deep: #1c1917; --sn-primary: #a16207; --sn-accent: #facc15; --sn-accent2: #fef08a; }
[data-sn="home-repair"] { --sn-deep: #1c1410; --sn-primary: #c2410c; --sn-accent: #fb923c; --sn-accent2: #fed7aa; }
[data-sn="hospitality"] { --sn-deep: #0c2a3a; --sn-primary: #0e7490; --sn-accent: #f59e0b; --sn-accent2: #fde68a; }
[data-sn="tourism-hospitality"] { --sn-deep: #0c2a3a; --sn-primary: #0e7490; --sn-accent: #f59e0b; --sn-accent2: #fde68a; }
[data-sn="industrial"] { --sn-deep: #18181b; --sn-primary: #475569; --sn-accent: #f97316; --sn-accent2: #fdba74; }
[data-sn="industrial-companies"] { --sn-deep: #18181b; --sn-primary: #475569; --sn-accent: #f97316; --sn-accent2: #fdba74; }
[data-sn="insurance"] { --sn-deep: #0b1d3a; --sn-primary: #2563eb; --sn-accent: #22d3ee; --sn-accent2: #a5f3fc; }
[data-sn="legal"] { --sn-deep: #14161c; --sn-primary: #1f2a44; --sn-accent: #c8a15c; --sn-accent2: #e9d7ac; }
[data-sn="local-consumer"] { --sn-deep: #1e1b4b; --sn-primary: #4f46e5; --sn-accent: #f472b6; --sn-accent2: #fbcfe8; }
[data-sn="local-consumer-services"] { --sn-deep: #1e1b4b; --sn-primary: #4f46e5; --sn-accent: #f472b6; --sn-accent2: #fbcfe8; }
[data-sn="logistics"] { --sn-deep: #0a1929; --sn-primary: #0369a1; --sn-accent: #f59e0b; --sn-accent2: #fcd34d; }
[data-sn="logistics-transportation"] { --sn-deep: #0a1929; --sn-primary: #0369a1; --sn-accent: #f59e0b; --sn-accent2: #fcd34d; }
[data-sn="manufacturing"] { --sn-deep: #1a1d23; --sn-primary: #334155; --sn-accent: #38bdf8; --sn-accent2: #bae6fd; }
[data-sn="nonprofits"] { --sn-deep: #132a13; --sn-primary: #15803d; --sn-accent: #fbbf24; --sn-accent2: #fde68a; }
[data-sn="professional-services"] { --sn-deep: #0f172a; --sn-primary: #334155; --sn-accent: #818cf8; --sn-accent2: #c7d2fe; }
[data-sn="real-estate"] { --sn-deep: #10231c; --sn-primary: #047857; --sn-accent: #d4a72c; --sn-accent2: #f5dc8a; }
[data-sn="recreation"] { --sn-deep: #1a0b2e; --sn-primary: #7e22ce; --sn-accent: #22d3ee; --sn-accent2: #a5f3fc; }
[data-sn="recreation-entertainment"] { --sn-deep: #1a0b2e; --sn-primary: #7e22ce; --sn-accent: #22d3ee; --sn-accent2: #a5f3fc; }
[data-sn="retail"] { --sn-deep: #1f0a1e; --sn-primary: #be185d; --sn-accent: #fb7185; --sn-accent2: #fecdd3; }
[data-sn="retail-ecommerce"] { --sn-deep: #1f0a1e; --sn-primary: #be185d; --sn-accent: #fb7185; --sn-accent2: #fecdd3; }
[data-sn="technology"] { --sn-deep: #0b1640; --sn-primary: #2563eb; --sn-accent: #38bdf8; --sn-accent2: #a5f3fc; }
/* <<< palettes */
