/* NeoNetwork cookie consent + policy pages v5 (v5: near-white paper, wordmark doc header; v4: navbar fade band, reveal, emboss, real logo, paper texture) */
.neo-cc {
  --neo-cc-bg: #ffffff; --neo-cc-fg: #1f2328; --neo-cc-muted: #59636e; --neo-cc-line: #d0d7de;
  --neo-cc-accent: #2563eb; --neo-cc-accent-fg: #ffffff;
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 2147483000;
  background: var(--neo-cc-bg); color: var(--neo-cc-fg);
  border-top: 1px solid var(--neo-cc-line); box-shadow: 0 -4px 18px rgba(0,0,0,.15);
  font: 14px/1.55 inherit; font-family: inherit;
  animation: neo-cc-in .25s ease-out;
}
/* banner follows the site theme: html[data-theme] (theme.js) or homepage body.dark-mode;
   device preference is used only on pages without any theme system (e.g. demo.html) */
html[data-theme="dark"] .neo-cc, body.dark-mode .neo-cc {
  --neo-cc-bg: #111a2e; --neo-cc-fg: #e2e8f0; --neo-cc-muted: #94a3b8; --neo-cc-line: rgba(255,255,255,.1);
  --neo-cc-accent: #60a5fa; --neo-cc-accent-fg: #0f172a; box-shadow: 0 -4px 18px rgba(0,0,0,.45);
}
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) body:not(.dark-mode):not(:has(#navbar)) .neo-cc {
    --neo-cc-bg: #1c2128; --neo-cc-fg: #e6edf3; --neo-cc-muted: #9da7b3; --neo-cc-line: #373e47;
    --neo-cc-accent: #4c9be8; --neo-cc-accent-fg: #0d1117;
  }
}
.neo-cc-inner { max-width: 1100px; margin: 0 auto; padding: 14px 16px; display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; }
.neo-cc-text { flex: 1 1 420px; }
.neo-cc-text p { margin: 0 0 4px; }
.neo-cc-en { color: var(--neo-cc-muted); font-size: 12.5px; }
.neo-cc a { color: var(--neo-cc-accent); text-decoration: underline; margin-left: 4px; }
.neo-cc-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.neo-cc-prefs { flex: 1 1 100%; border-top: 1px solid var(--neo-cc-line); padding-top: 10px; }
.neo-cc-prefs[hidden] { display: none; }
.neo-cc-row { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 8px; cursor: pointer; }
.neo-cc-row input { margin-top: 4px; }
.neo-cc-btn {
  font: inherit; font-size: 14px; padding: 8px 14px; border-radius: 6px; cursor: pointer;
  border: 1px solid var(--neo-cc-line); background: transparent; color: var(--neo-cc-fg);
}
.neo-cc-btn:hover { border-color: var(--neo-cc-accent); }
.neo-cc-btn:focus-visible { outline: 2px solid var(--neo-cc-accent); outline-offset: 2px; }
.neo-cc-primary { background: var(--neo-cc-accent); border-color: var(--neo-cc-accent); color: var(--neo-cc-accent-fg); }
.neo-cc-link { border-color: transparent; text-decoration: underline; }
@media (max-width: 600px) {
  .neo-cc-actions { width: 100%; }
  .neo-cc-actions .neo-cc-btn { flex: 1 1 auto; }
}

/* map placeholder (outside the banner) */
.neo-cc-ph {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  width: 100%; min-height: 220px; box-sizing: border-box; padding: 20px; text-align: center;
  border: 1px dashed #8c959f; border-radius: 8px; background: rgba(127,127,127,.08); color: inherit;
}
.neo-cc-ph p { margin: 0; }
.neo-cc-ph small { opacity: .75; }
.neo-cc-ph .neo-cc-btn { background: #2563eb; border: 1px solid #2563eb; color: #fff; }

@keyframes neo-cc-in { from { transform: translateY(100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .neo-cc { animation: none; } }
@media print { .neo-cc { display: none; } }

/* ---- policy pages (security-policy.html / cookie-policy.html):
        homepage chrome from /styles.css + a centred document card ---- */
body.neo-doc {
  --doc-paper: #fffefb; --doc-fg: #334155; --doc-heading: #0f172a; --doc-muted: #64748b;
  --doc-line: #e2e8f0; --doc-soft: #f4f7fc; --doc-accent: #2563eb; --doc-accent-fg: #ffffff; --doc-mark: #fff3bf;
  --doc-border: rgba(15,23,42,.06);
  --doc-shadow: 0 1px 2px rgba(15,23,42,.04), 0 24px 64px -28px rgba(30,64,175,.28);
  --doc-glow-a: rgba(147,197,253,.8); --doc-glow-b: rgba(125,211,252,.55); --doc-glow-c: rgba(59,130,246,.3);
}
html[data-theme="dark"] body.neo-doc, body.neo-doc.dark-mode {
  --doc-paper: #141e35; --doc-fg: #cbd5e1; --doc-heading: #f8fafc; --doc-muted: #94a3b8;
  --doc-line: rgba(255,255,255,.1); --doc-soft: rgba(255,255,255,.04); --doc-accent: #60a5fa; --doc-accent-fg: #0f172a; --doc-mark: #5c4a00;
  --doc-border: rgba(255,255,255,.07);
  --doc-shadow: 0 1px 2px rgba(0,0,0,.3), 0 28px 70px -30px rgba(0,0,0,.7);
  --doc-glow-a: rgba(37,99,235,.5); --doc-glow-b: rgba(14,165,233,.32); --doc-glow-c: rgba(59,130,246,.3);
}
html[data-theme="dark"] { color-scheme: dark; background: #0f172a; }
html[data-theme="light"] { color-scheme: light; }
.neo-doc .nav-dark-btn .icon-moon, .neo-doc .dark-toggle .toggle-moon { display: none; }
.neo-doc.dark-mode .nav-dark-btn .icon-sun, .neo-doc.dark-mode .dark-toggle .toggle-sun { display: none; }
.neo-doc.dark-mode .nav-dark-btn .icon-moon, .neo-doc.dark-mode .dark-toggle .toggle-moon { display: block; }

.neo-doc-wrap { position: relative; isolation: isolate; max-width: 808px; margin: 0 auto; padding: 128px 24px 72px; }
.neo-doc-wrap::before {
  content: ""; position: absolute; z-index: -1; inset: 88px -40px 8px; border-radius: 48px; pointer-events: none;
  background:
    radial-gradient(42% 36% at 12% 14%, var(--doc-glow-a), transparent 70%),
    radial-gradient(40% 40% at 92% 30%, var(--doc-glow-b), transparent 70%),
    radial-gradient(50% 42% at 50% 96%, var(--doc-glow-c), transparent 72%);
  filter: blur(56px);
}
.neo-doc-card {
  background: var(--doc-paper); color: var(--doc-fg); border: 1px solid var(--doc-border); border-radius: 24px;
  box-shadow: var(--doc-shadow); padding: clamp(24px, 6vw, 56px) clamp(20px, 6vw, 60px);
  font-size: 16.5px; line-height: 1.9; overflow-wrap: break-word;
}
.neo-doc-head { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; margin-bottom: 26px; border-bottom: 1px dashed var(--doc-line); }
.neo-doc-head { flex-direction: column; align-items: flex-start; gap: 8px; }
.neo-doc-head p { margin: 0; line-height: 1.45; }
.neo-doc-head .co-th { font-size: .9rem; color: var(--doc-muted); }
.neo-doc-eyebrow { display: inline-block; margin: 0 0 10px; padding: 2px 12px; border-radius: 999px; font-size: .8rem; font-weight: 500; letter-spacing: .02em; color: var(--doc-accent); background: var(--doc-soft); border: 1px solid var(--doc-line); }
.neo-doc-card h1 { font-size: clamp(1.4rem, 3.4vw, 1.85rem); line-height: 1.5; font-weight: 600; color: var(--doc-heading); margin: 0 0 14px; letter-spacing: -.01em; }
.neo-doc-card h2 { font-size: 1.15rem; line-height: 1.55; font-weight: 600; color: var(--doc-heading); margin: 34px 0 8px; }
.neo-doc-card p { margin: 0 0 14px; }
.neo-doc-card b, .neo-doc-card strong { font-weight: 600; color: var(--doc-heading); }
.neo-doc-card a { color: var(--doc-accent); text-underline-offset: 3px; }
.neo-doc-card ol { list-style: none; counter-reset: neo-ol; margin: 18px 0 22px; padding: 0; }
.neo-doc-card ol > li { counter-increment: neo-ol; position: relative; padding: 0 0 0 46px; margin: 0 0 16px; }
.neo-doc-card ol > li::before {
  content: counter(neo-ol); position: absolute; left: 0; top: 3px; width: 30px; height: 30px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center; font: 600 14px/1 'DM Sans', -apple-system, sans-serif;
  color: var(--doc-accent); background: var(--doc-soft); border: 1px solid var(--doc-line);
}
.neo-doc-card ul { margin: 0 0 14px; padding-left: 22px; }
.neo-doc .meta { color: var(--doc-muted); font-size: .92rem; }
.neo-doc .tbl { overflow-x: auto; margin: 8px 0 14px; border: 1px solid var(--doc-line); border-radius: 14px; }
.neo-doc table { width: 100%; border-collapse: collapse; font-size: .9rem; line-height: 1.65; }
.neo-doc th, .neo-doc td { border-bottom: 1px solid var(--doc-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.neo-doc tr:last-child td { border-bottom: 0; }
.neo-doc th { background: var(--doc-soft); color: var(--doc-heading); font-weight: 600; }
.neo-doc code { font-size: .88em; padding: 1px 5px; border-radius: 6px; background: var(--doc-soft); border: 1px solid var(--doc-line); }
.neo-doc .note { background: var(--doc-soft); border-left: 4px solid var(--doc-accent); border-radius: 0 12px 12px 0; padding: 10px 14px; font-size: .92rem; }
.neo-doc .ph { background: var(--doc-mark); padding: 0 3px; }
.neo-doc button.neo-open, .neo-doc .neo-doc-download a {
  display: inline-block; font: inherit; font-size: .95rem; font-weight: 500; line-height: 1.5; padding: 9px 18px; border-radius: 12px; cursor: pointer; text-decoration: none;
  border: 1px solid var(--doc-accent); background: var(--doc-accent); color: var(--doc-accent-fg); transition: transform .2s, box-shadow .2s;
}
.neo-doc .neo-doc-download { margin: 8px 0 22px; }
.neo-doc .neo-doc-download a { background: transparent; color: var(--doc-accent); }
.neo-doc .neo-doc-download a::before { content: "\2193\00a0"; }
.neo-doc button.neo-open:hover, .neo-doc .neo-doc-download a:hover, .neo-doc .neo-doc-download a:focus-visible { background: var(--doc-accent); color: var(--doc-accent-fg); transform: translateY(-1px); box-shadow: 0 6px 18px -6px rgba(37,99,235,.5); }
.neo-doc .nav-dark-btn:focus-visible, .neo-doc button.neo-open:focus-visible { outline: 2px solid var(--doc-accent); outline-offset: 2px; }
.neo-doc .footer { padding-bottom: 48px; }
@media (max-width: 480px) {
  .neo-doc-wrap { padding: 104px 16px 48px; }
  .neo-doc-wrap::before { inset: 80px 0 16px; }
  .neo-doc-card { font-size: 16px; border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) { .neo-doc button.neo-open, .neo-doc .neo-doc-download a { transition: none; } }
@media print {
  .neo-doc .navbar, .neo-doc .mobile-nav, .neo-doc .bg-mesh, .neo-doc .footer, .neo-doc-wrap::before { display: none; }
  .neo-doc-wrap { padding: 0; }
  .neo-doc-card { box-shadow: none; border: 0; padding: 0; background: #fff; color: #000; }
}

/* ---- main site footer links (index.html .footer, also on the policy pages) ---- */
.footer .footer-links { margin-top: 8px; }
.footer .footer-links a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.footer .footer-links a:hover { color: #3b82f6; }
.map-container .neo-cc-ph { min-height: 250px; border-radius: 16px; }

/* ======================================================================
   v4 — policy pages polish (security-policy.html / cookie-policy.html)
   ====================================================================== */
body.neo-doc {
  --doc-paper: #fcfcfb; --doc-ink: #0b1324; --doc-page: #f7faff;
  --doc-grain-op: .05; --doc-grain-blend: multiply;
  --doc-deboss: 0 1px 0 rgba(255,255,255,.7);
  --doc-weave: rgba(30,64,175,.035);
  --doc-raise: 0 1px 2px rgba(15,23,42,.08), 0 4px 12px -4px rgba(30,64,175,.22), inset 0 1px 0 rgba(255,255,255,.6), inset 0 -2px 0 rgba(0,0,0,.15);
  --doc-raise-hover: 0 2px 4px rgba(15,23,42,.1), 0 10px 22px -6px rgba(30,64,175,.32), inset 0 1px 0 rgba(255,255,255,.6), inset 0 -2px 0 rgba(0,0,0,.15);
  --doc-raise-soft: 0 1px 2px rgba(15,23,42,.07), 0 3px 8px -3px rgba(30,64,175,.18), inset 0 1px 0 rgba(255,255,255,.7), inset 0 -2px 0 rgba(15,23,42,.08);
}
html[data-theme="dark"] body.neo-doc, body.neo-doc.dark-mode {
  --doc-paper: #182238; --doc-ink: #f8fafc; --doc-page: #0f172a;
  --doc-grain-op: .12; --doc-grain-blend: soft-light;
  --doc-deboss: 0 1px 1px rgba(0,0,0,.6), 0 -1px 0 rgba(255,255,255,.05);
  --doc-weave: rgba(148,163,184,.035);
  --doc-raise: 0 1px 2px rgba(0,0,0,.45), 0 6px 14px -6px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.18), inset 0 -2px 0 rgba(0,0,0,.35);
  --doc-raise-hover: 0 2px 4px rgba(0,0,0,.5), 0 12px 24px -8px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.2), inset 0 -2px 0 rgba(0,0,0,.35);
  --doc-raise-soft: 0 1px 2px rgba(0,0,0,.4), 0 4px 10px -4px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.08), inset 0 -2px 0 rgba(0,0,0,.3);
}

/* 1a. navbar: stronger backdrop so content does not show through the frame */
.neo-doc .navbar {
  background: rgba(255,255,255,.78); border-color: rgba(255,255,255,.7);
  backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%);
}
.neo-doc .navbar.scrolled { background: rgba(255,255,255,.88); box-shadow: 0 6px 24px -8px rgba(30,64,175,.18), inset 0 1px 0 rgba(255,255,255,.7); }
html[data-theme="dark"] .neo-doc .navbar, .neo-doc.dark-mode .navbar { background: rgba(15,23,42,.84); border-color: rgba(255,255,255,.08); }
html[data-theme="dark"] .neo-doc .navbar.scrolled, .neo-doc.dark-mode .navbar.scrolled { background: rgba(15,23,42,.92); box-shadow: 0 8px 26px -10px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.05); }

/* 1b. fixed fade band under the navbar: text fades out before sliding under the menu */
.neo-doc-fade {
  position: fixed; top: 0; left: 0; right: 0; height: 120px; z-index: 998; pointer-events: none;
  background: linear-gradient(to bottom, #f7faff 0%, #f7faff 55%, rgba(247,250,255,0) 100%);
}
html[data-theme="dark"] .neo-doc-fade, .neo-doc.dark-mode .neo-doc-fade { background: linear-gradient(to bottom, #0f172a 0%, #0f172a 55%, rgba(15,23,42,0) 100%); }
@media (max-width: 480px) { .neo-doc-fade { height: 100px; } }

/* 2. homepage-style entrance animation (hidden only once policy-page.js has run) */
.neo-doc .reveal { opacity: 1; transform: none; }
html.neo-anim .neo-doc .reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
html.neo-anim .neo-doc .reveal.visible { opacity: 1; transform: none; }
html.neo-anim .neo-doc-card > .reveal:nth-child(2) { transition-delay: 80ms; }
html.neo-anim .neo-doc-card > .reveal:nth-child(3) { transition-delay: 160ms; }
html.neo-anim .neo-doc-card > .reveal:nth-child(4) { transition-delay: 240ms; }
html.neo-anim .neo-doc-card > .reveal:nth-child(5) { transition-delay: 320ms; }
html.neo-anim .neo-doc-card ol > li.reveal:nth-child(2) { transition-delay: 80ms; }
html.neo-anim .neo-doc-card ol > li.reveal:nth-child(3) { transition-delay: 160ms; }
html.neo-anim .neo-doc-card ol > li.reveal:nth-child(4) { transition-delay: 240ms; }
html.neo-anim .neo-doc-card ol > li.reveal:nth-child(5) { transition-delay: 320ms; }
html.neo-anim .neo-doc-card ol > li.reveal:nth-child(6) { transition-delay: 400ms; }
@media (prefers-reduced-motion: reduce) {
  html.neo-anim .neo-doc .reveal { opacity: 1; transform: none; transition: none; }
}

/* 3. emboss (raised): nav logo, CTA, theme toggle, doc logo, number circles, buttons */
.neo-doc .nav-dark-btn, .neo-doc .nav-cta,
.neo-doc .neo-doc-download a, .neo-doc .neo-ebook-btn, .neo-doc button.neo-open {
  box-shadow: var(--doc-raise); transition: transform .2s, box-shadow .2s, background-color .2s, color .2s;
}
.neo-doc .nav-logo, .neo-doc-card ol > li::before { box-shadow: var(--doc-raise-soft); transition: transform .2s, box-shadow .2s; }
.neo-doc .nav-brand:hover .nav-logo, .neo-doc .nav-dark-btn:hover, .neo-doc .neo-ebook-btn:hover, .neo-doc .neo-ebook-btn:focus-visible { transform: translateY(-1px); box-shadow: var(--doc-raise-hover); }
.neo-doc .nav-cta:hover { box-shadow: var(--doc-raise-hover) !important; }
.neo-doc .neo-doc-download a:hover, .neo-doc .neo-doc-download a:focus-visible, .neo-doc button.neo-open:hover { box-shadow: var(--doc-raise-hover); }
.neo-doc .nav-dark-btn { background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(234,242,255,.9)); }
html[data-theme="dark"] .neo-doc .nav-dark-btn, .neo-doc.dark-mode .nav-dark-btn { background: linear-gradient(180deg, rgba(51,65,85,.95), rgba(30,41,59,.95)); }
.neo-doc-card ol > li::before { background: linear-gradient(180deg, #ffffff, #e9f1ff); border-color: rgba(37,99,235,.18); }
html[data-theme="dark"] .neo-doc-card ol > li::before, .neo-doc.dark-mode .neo-doc-card ol > li::before { background: linear-gradient(180deg, #2a3a5c, #1c2843); border-color: rgba(255,255,255,.08); }

.neo-doc-actions { margin: 4px 0 20px; }
.neo-doc .neo-ebook-btn {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 12px; text-decoration: none;
  font-size: .93rem; font-weight: 500; line-height: 1.5; color: var(--doc-accent);
  background: linear-gradient(180deg, #ffffff, #eaf2ff); border: 1px solid rgba(37,99,235,.2);
}
html[data-theme="dark"] .neo-doc .neo-ebook-btn, .neo-doc.dark-mode .neo-ebook-btn { background: linear-gradient(180deg, #2a3a5c, #1c2843); border-color: rgba(255,255,255,.1); }
.neo-doc .neo-ebook-btn:focus-visible, .neo-doc .neo-doc-download a:focus-visible { outline: 2px solid var(--doc-accent); outline-offset: 2px; }

/* 3b. deboss (pressed-in): headings + badge chip text */
.neo-doc-card h1, .neo-doc-card h2 { color: var(--doc-ink); text-shadow: var(--doc-deboss); }
.neo-doc-eyebrow { text-shadow: var(--doc-deboss); box-shadow: inset 0 1px 2px rgba(15,23,42,.08); }
html[data-theme="dark"] .neo-doc-eyebrow, .neo-doc.dark-mode .neo-doc-eyebrow { box-shadow: inset 0 1px 2px rgba(0,0,0,.4); }

/* 4. real logo mark in the badge: light ground in both themes (blue mark) */
.neo-doc .nav-logo {
  background: linear-gradient(145deg, #ffffff 0%, #eaf2ff 55%, #cfe0ff 100%);
  border: 1px solid rgba(147,197,253,.7); padding: 0; overflow: hidden;
}
.neo-doc .nav-logo img { display: block; width: 70%; height: auto; }
html[data-theme="dark"] .neo-doc .nav-logo, .neo-doc.dark-mode .nav-logo { border-color: rgba(191,219,254,.55); }

/* 5. heavy cotton paper card + fine-weave page */
.neo-doc-card { position: relative; isolation: isolate; background-color: var(--doc-paper); }
.neo-doc-card::before, .neo-doc-card::after {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  mix-blend-mode: var(--doc-grain-blend); filter: var(--doc-grain-filter);
}
/* (a) fine fibre grain */
.neo-doc-card::before {
  opacity: var(--doc-grain-op);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g' x='0' y='0' width='1' height='1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='1.6 0 0 0 .22 1.6 0 0 0 .22 1.6 0 0 0 .22 0 0 0 0 1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size: 220px 220px;
}
/* (b) large soft mottling (cotton / handmade cloud marks) */
.neo-doc-card::after {
  opacity: var(--doc-mottle-op);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='640'%3E%3Cfilter id='m' x='0' y='0' width='1' height='1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012' numOctaves='3' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='2.2 0 0 0 -.08 2.2 0 0 0 -.08 2.2 0 0 0 -.08 0 0 0 0 1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E");
  background-size: 640px 640px;
}
.neo-doc .bg-mesh {
  background:
    repeating-linear-gradient(0deg, var(--doc-weave) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(90deg, var(--doc-weave) 0 1px, transparent 1px 3px),
    linear-gradient(170deg, #ffffff 0%, #f7faff 20%, #f0f5ff 40%, #f4f8ff 60%, #f7faff 80%, #ffffff 100%);
}
html[data-theme="dark"] .neo-doc .bg-mesh, .neo-doc.dark-mode .bg-mesh {
  background:
    repeating-linear-gradient(0deg, var(--doc-weave) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(90deg, var(--doc-weave) 0 1px, transparent 1px 3px),
    linear-gradient(170deg, #0f172a 0%, #1e293b 30%, #0f172a 60%, #1e293b 80%, #0f172a 100%);
}
@media print {
  .neo-doc-fade, .neo-doc-card::before, .neo-doc-actions { display: none; }
  html.neo-anim .neo-doc .reveal { opacity: 1; transform: none; }
  .neo-doc-card h1, .neo-doc-card h2, .neo-doc-eyebrow { text-shadow: none; }
}

/* 6. v6 document header: wordmark debossed INTO the paper (sunken recess, no raised pill) */
.neo-doc-wordmark {
  display: inline-flex; align-items: center; padding: 10px 16px; border-radius: 14px;
  background: rgba(0,0,0,.035); border: 0;
  box-shadow: inset 0 3px 8px rgba(0,0,0,.18), inset 0 -1px 0 rgba(255,255,255,.9), inset 0 1px 2px rgba(0,0,0,.25);
}
.neo-doc-wordmark img {
  display: block; width: 300px; max-width: 100%; height: auto;
  filter: drop-shadow(0 1px 0 rgba(255,255,255,.7)) drop-shadow(0 -1px 1px rgba(0,0,0,.35));
}
html[data-theme="dark"] .neo-doc-wordmark, .neo-doc.dark-mode .neo-doc-wordmark {
  background: rgba(255,255,255,.08);
  box-shadow: inset 0 3px 8px rgba(0,0,0,.55), inset 0 -1px 0 rgba(255,255,255,.12);
}
html[data-theme="dark"] .neo-doc-wordmark img, .neo-doc.dark-mode .neo-doc-wordmark img {
  filter: drop-shadow(0 1px 0 rgba(255,255,255,.14)) drop-shadow(0 -1px 1px rgba(0,0,0,.7));
}
.neo-doc-head .co-th { font-size: .85rem; }
@media (max-width: 480px) { .neo-doc-wordmark { width: 70%; } .neo-doc-wordmark img { width: 100%; } }
@media print { .neo-doc-wordmark { box-shadow: none; background: none; } .neo-doc-wordmark img { filter: none; } }

/* ======================================================================
   v7 — header EN line, shared button hover, white paper texture, shimmer navbar wordmark
   ====================================================================== */
body.neo-doc {
  --doc-grain-op: .10; --doc-mottle-op: .06; --doc-grain-blend: multiply; --doc-grain-filter: none;
  --doc-crease: rgba(0,0,0,.035); --doc-crease-soft: rgba(0,0,0,.018);
}
html[data-theme="dark"] body.neo-doc, body.neo-doc.dark-mode {
  /* same noise, inverted so specks are light, then screened onto the slate card */
  --doc-grain-op: .15; --doc-mottle-op: .12; --doc-grain-blend: screen; --doc-grain-filter: invert(1);
  --doc-crease: rgba(255,255,255,.05); --doc-crease-soft: rgba(255,255,255,.022);
}

/* 8a. header: English company name above the Thai line */
.neo-doc-head .co-en { font-size: 13px; letter-spacing: .08em; font-weight: 600; color: var(--doc-muted); margin-top: 4px; }
.neo-doc-head .co-en + .co-th { margin-top: -6px; }

/* 8b. paper: white base + faint diagonal fold crease (two hairlines + soft fold shade) */
.neo-doc-card {
  background-color: var(--doc-paper);
  background-image:
    linear-gradient(118deg, transparent calc(38% - .6px), var(--doc-crease) 38%, transparent calc(38% + .6px)),
    linear-gradient(118deg, transparent 38%, var(--doc-crease-soft) 38.4%, transparent 44%),
    linear-gradient(28deg, transparent calc(71% - .5px), var(--doc-crease) 71%, transparent calc(71% + .5px));
}
@media print { .neo-doc-card::after { display: none; } .neo-doc-card { background-image: none; } }

/* 8c. e-book button: same hover as the PDF download button (fill / lift / glow), embossed base kept */
.neo-doc .neo-doc-btn { transition: transform .2s, box-shadow .2s, background-color .2s, color .2s, border-color .2s; }
html body.neo-doc a.neo-doc-btn:hover, html body.neo-doc a.neo-doc-btn:focus-visible {
  background: var(--doc-accent); color: var(--doc-accent-fg); border-color: var(--doc-accent);
  transform: translateY(-1px); box-shadow: var(--doc-raise-hover), 0 6px 18px -6px rgba(37,99,235,.5);
}
@media (prefers-reduced-motion: reduce) { .neo-doc .neo-doc-btn { transition: none; } }

/* 8d. navbar brand: bare wordmark (no well), slow gradient shimmer inside the letters via CSS mask */
.neo-doc .nav-brand-wordmark { gap: 0; line-height: 0; }
.neo-doc .nav-brand-wordmark:focus-visible { outline: 2px solid var(--doc-accent); outline-offset: 4px; border-radius: 8px; }
.neo-doc .nav-wordmark-anim { display: block; width: 186px; height: 31px; }
.neo-doc .nav-wordmark-anim img { display: block; width: 100%; height: 100%; }
@supports ((mask-image: url("x.png")) or (-webkit-mask-image: url("x.png"))) {
  .neo-doc .nav-wordmark-anim {
    -webkit-mask: url(/assets/img/neo-wordmark.png) no-repeat center / contain;
    mask: url(/assets/img/neo-wordmark.png) no-repeat center / contain;
    background: linear-gradient(100deg, #1e40af 0%, #2563eb 30%, #60a5fa 50%, #2563eb 70%, #1e40af 100%);
    background-size: 250% 100%;
    animation: neoShimmer 7s ease-in-out infinite;
  }
  html[data-theme="dark"] .neo-doc .nav-wordmark-anim, .neo-doc.dark-mode .nav-wordmark-anim {
    background-image: linear-gradient(100deg, #60a5fa 0%, #93c5fd 30%, #bfdbfe 50%, #93c5fd 70%, #60a5fa 100%);
  }
  .neo-doc .nav-wordmark-anim img { visibility: hidden; }
}
@keyframes neoShimmer { 0% { background-position: 0% 0; } 50% { background-position: 100% 0; } 100% { background-position: 0% 0; } }
@media (prefers-reduced-motion: reduce) { .neo-doc .nav-wordmark-anim { animation: none; } }
@media (max-width: 768px) { .neo-doc .nav-wordmark-anim { width: 144px; height: 24px; } }
/* 8e. keep the policy navbar at 68px (56px mobile) now that the brand has no well */
.neo-doc .navbar { height: 68px; padding-top: 0; padding-bottom: 0; align-items: center; }
@media (max-width: 768px) { .neo-doc .navbar { height: 56px; } }
