@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=Space+Grotesk:wght@400;500;600;700&display=swap');

/* ===========================================================================
   HookPhish — Cobalt × Azure design system (plain CSS, theme-switchable)
   Dark "Cobalt" is default; <html data-theme="light"> flips to "Azure".
   Tokens are RGB channels so rgb(var(--x) / a) gives both alpha + theming.
=========================================================================== */
:root {
  --background: 10 15 28;        /* #0a0f1c */
  --surface: 16 26 46;          /* #101a2e */
  --surface-2: 21 33 57;        /* #152139 */
  --border: 34 54 90;           /* #22365a */
  --foreground: 234 240 251;    /* #eaf0fb */
  --muted: 147 163 198;         /* #93a3c6 */
  --muted-2: 107 122 156;       /* #6b7a9c */
  --primary: 61 123 255;        /* #3d7bff */
  --primary-press: 47 108 240;  /* #2f6cf0 */
  --on-primary: 255 255 255;
  --accent: 52 214 200;         /* #34d6c8 */
  --ring: 91 155 242;           /* #5b9bf2 */
  --maxw: 1200px;
}
[data-theme="light"] {
  --background: 247 249 252;
  --surface: 255 255 255;
  --surface-2: 238 243 251;
  --border: 219 229 242;
  --foreground: 13 22 38;
  --muted: 84 98 125;
  --muted-2: 134 147 171;
  --primary: 31 107 255;
  --primary-press: 21 89 224;
  --accent: 10 158 144;
  --ring: 31 107 255;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  background: rgb(var(--background));
  color: rgb(var(--foreground));
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
  font-family: 'Space Grotesk', 'Plus Jakarta Sans', system-ui, sans-serif;
  font-weight: 700; line-height: 1.12; letter-spacing: -0.02em; margin: 0;
}
p { margin: 0; }
a { color: rgb(var(--primary)); text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
:focus-visible { outline: 2px solid rgb(var(--ring)); outline-offset: 2px; border-radius: 6px; }
::selection { background: rgb(var(--primary) / .3); color: #fff; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.eyebrow, .section-label {
  font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: rgb(var(--accent)); display: inline-flex; align-items: center; gap: 8px;
}
.section-label::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: rgb(var(--accent)); }
.muted { color: rgb(var(--muted)); }
.gradient-text { color: rgb(var(--primary)); }
.center { text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* ---------- Buttons ---------- */
.btn-primary, .btn-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 24px; border-radius: 999px; font-weight: 600; font-size: 15px;
  cursor: pointer; transition: background .15s, border-color .15s, color .15s; border: 1px solid transparent;
}
.btn-primary { background: rgb(var(--primary)); color: rgb(var(--on-primary)); }
.btn-primary:hover { background: rgb(var(--primary-press)); }
.btn-secondary { background: transparent; border-color: rgb(var(--border)); color: rgb(var(--foreground)); }
.btn-secondary:hover { background: rgb(var(--surface-2)); }
.btn-lg { padding: 15px 30px; border-radius: 14px; font-size: 16px; }
.btn-sm { padding: 9px 18px; font-size: 14px; }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  background: rgb(var(--background) / .8); backdrop-filter: blur(12px);
  border-bottom: 1px solid rgb(var(--foreground) / .06);
}
.site-header .bar { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; gap: 24px; position: relative; }
.site-brand img { height: 32px; width: auto; }
.site-brand .txt { font-family: 'Space Grotesk'; font-weight: 700; font-size: 18px; color: rgb(var(--foreground)); }
.primary-nav { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.primary-nav > li { list-style: none; }
.menu-item-has-children > a, .nav-trigger {
  display: inline-flex; align-items: center; gap: 5px; font-size: 14px; padding: 8px 12px; border-radius: 9px;
  color: rgb(var(--foreground) / .72); background: none; border: 0; cursor: pointer; font-family: inherit; transition: .15s;
}
.menu-item-has-children:hover > a, .nav-trigger:hover, .nav-open .nav-trigger { color: rgb(var(--foreground)); background: rgb(var(--foreground) / .05); }
.nav-trigger .chev { width: 15px; height: 15px; transition: transform .2s; }
.nav-open .nav-trigger .chev { transform: rotate(180deg); }
.header-cta { display: flex; align-items: center; gap: 12px; }

/* Mega-menu — centered under the nav */
.nav-item { position: static; }
.mega {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  padding-top: 8px; z-index: 60; display: none;
}
.nav-item.is-open .mega, .mega:hover { display: block; }
.mega-card {
  background: rgb(var(--surface)); border: 1px solid rgb(var(--foreground) / .1);
  border-radius: 18px; box-shadow: 0 24px 60px -24px rgb(0 0 0 / .7); padding: 12px; display: flex; gap: 12px;
}
.mega-label { font-size: 11px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: rgb(var(--muted-2)); padding: 6px 12px 8px; }
.mega-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; width: 480px; }
.mega-grid.cols-1 { grid-template-columns: 1fr; width: 240px; }
.mega-link { display: flex; align-items: flex-start; gap: 12px; padding: 10px; border-radius: 12px; transition: background .15s; }
.mega-link:hover { background: rgb(var(--foreground) / .05); }
.mega-ico { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: rgb(var(--primary) / .1); color: rgb(var(--primary)); }
.mega-ico svg { width: 18px; height: 18px; }
.mega-txt { min-width: 0; }
.mega-link b { display: block; font-size: 14px; font-weight: 600; color: rgb(var(--foreground)); }
.mega-link i { display: block; font-style: normal; font-size: 12px; color: rgb(var(--muted)); margin-top: 2px; }
.mega-link:hover b { color: rgb(var(--primary)); }
.mega-viewall { display: inline-flex; gap: 6px; margin: 6px 12px 4px; padding-top: 12px; border-top: 1px solid rgb(var(--foreground) / .1); font-size: 14px; font-weight: 600; color: rgb(var(--primary)); }
.mega-promo { width: 230px; flex: 0 0 auto; border-radius: 12px; padding: 20px; display: flex; flex-direction: column; justify-content: center;
  background: linear-gradient(160deg, rgb(var(--primary) / .15), rgb(var(--primary) / .04)); border: 1px solid rgb(var(--primary) / .2); }
.mega-promo h4 { font-size: 18px; color: rgb(var(--foreground)); }
.mega-promo p { font-size: 14px; color: rgb(var(--muted)); margin: 6px 0 18px; }

/* simple dropdown (icon + label list) */
.simple-menu { background: rgb(var(--surface)); border: 1px solid rgb(var(--foreground) / .1); border-radius: 16px; box-shadow: 0 24px 60px -24px rgb(0 0 0 / .7); padding: 8px; width: 240px; }
.simple-menu a { display: flex; align-items: center; gap: 10px; font-size: 14px; color: rgb(var(--foreground) / .8); padding: 10px 12px; border-radius: 9px; }
.simple-menu a:hover { background: rgb(var(--foreground) / .05); color: rgb(var(--foreground)); }
.simple-menu svg { width: 16px; height: 16px; color: rgb(var(--muted)); }

/* mobile */
.nav-toggle { display: none; background: none; border: 0; color: rgb(var(--foreground)); cursor: pointer; padding: 4px; }
.nav-toggle .i-close { display: none; }
body.mobile-open .nav-toggle .i-open { display: none; }
body.mobile-open .nav-toggle .i-close { display: inline-flex; }
.nav-toggle svg { width: 26px; height: 26px; }
.mobile-nav { display: none; }
@media (max-width: 1023px) {
  .primary-nav, .header-cta .btn-primary { display: none; }
  .nav-toggle { display: inline-flex; }
  .mobile-nav.open { display: block; position: fixed; inset: 0; z-index: 40; background: rgb(var(--background)); overflow-y: auto; padding: 80px 24px 40px; }
  .mobile-nav .m-group { margin-bottom: 22px; }
  .mobile-nav .m-group > strong { display: block; color: rgb(var(--foreground)); font-weight: 600; margin-bottom: 8px; }
  .mobile-nav .m-group a { display: block; padding: 10px 0 10px 12px; border-left: 1px solid rgb(var(--foreground) / .1); color: rgb(var(--foreground) / .7); font-size: 15px; }
}

/* ---------- Generic section ---------- */
.section { padding: 72px 0; }
.section.tight { padding: 48px 0; }
.section.bordered { border-top: 1px solid rgb(var(--foreground) / .06); }
.section.band { background: rgb(var(--surface) / .5); border-top: 1px solid rgb(var(--border) / .7); border-bottom: 1px solid rgb(var(--border) / .7); }
.section-head { text-align: center; max-width: 760px; margin: 0 auto 48px; }
.section-head h2 { font-size: clamp(28px, 4vw, 44px); }
.section-head p { color: rgb(var(--muted)); margin-top: 14px; }

/* ---------- Hero ---------- */
.hero { position: relative; padding: 150px 0 40px; overflow: hidden; text-align: center; }
.hero .eyebrow { justify-content: center; }
.hero h1 { font-size: clamp(34px, 6vw, 68px); max-width: 16ch; margin: 18px auto 0; color: rgb(var(--foreground)); }
.hero .lede { font-size: clamp(16px, 2vw, 20px); color: rgb(var(--foreground) / .85); max-width: 56ch; margin: 22px auto 0; }
.hero .cta-row { display: flex; gap: 16px; justify-content: center; margin-top: 32px; flex-wrap: wrap; }
.hero-glow { position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(900px 480px at 50% 0%, rgb(var(--primary) / .28), transparent 60%); }

/* Globe */
.globe-wrap { position: relative; max-width: 1100px; margin: 8px auto 0; height: 380px; }
@media (min-width: 768px){ .globe-wrap { height: 460px; } }
.globe { position: absolute; left: 50%; top: 12%; transform: translateX(-50%);
  width: 880px; max-width: 94vw; aspect-ratio: 1; border-radius: 50%; overflow: hidden; pointer-events: none;
  background: radial-gradient(circle at 50% 16%, #bcd2ff 0%, #3d7bff 12%, #2f6cf0 28%, #1e4bb8 48%, #122a66 66%, #0a1530 82%);
  box-shadow: 0 -12px 90px 6px rgb(61 123 255 / .45), inset 0 6px 44px rgb(188 210 255 / .55); }
.globe::after { content: ''; position: absolute; inset: 0; opacity: .4;
  background-image: radial-gradient(rgb(255 255 255 / .45) .5px, transparent .6px); background-size: 13px 13px; }
.globe-halo { position: absolute; left: 50%; top: 2%; transform: translateX(-50%); width: 130%; max-width: 1200px; aspect-ratio: 1;
  border-radius: 50%; filter: blur(60px); opacity: .7; pointer-events: none;
  background: radial-gradient(circle at 50% 35%, rgb(61 123 255 / .55), rgb(36 72 168 / .25) 45%, transparent 70%); }
.avatar { position: absolute; transform: translate(-50%, -50%); z-index: 2; }
.avatar .pic { border-radius: 50%; overflow: hidden; border: 1px solid rgb(255 255 255 / .4); box-shadow: 0 6px 18px rgb(0 0 0 / .35); animation: float 3s ease-in-out infinite; }
.avatar .pic img { width: 100%; height: 100%; object-fit: cover; }
/* WordPress gives author/comment avatars class="avatar"; keep the decorative globe .avatar styles off them. */
img.avatar { position: static; transform: none; z-index: auto; border-radius: 50%; }

@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.float { animation: float 3s ease-in-out infinite; }
.float.d1 { animation-delay: .5s; } .float.d2 { animation-delay: 1s; }

/* ---------- Solution hero visual ---------- */
.sol-hero { display: grid; gap: 40px; align-items: center; }
@media (min-width: 900px){ .sol-hero { grid-template-columns: 1fr 1fr; } }
.visual { position: relative; width: 100%; max-width: 440px; margin: 0 auto; aspect-ratio: 5/6; }
.visual .glow { position: absolute; inset: -32px; border-radius: 50%; filter: blur(60px);
  background: linear-gradient(120deg, rgb(var(--primary) / .4), transparent); }
.visual .photo { position: absolute; right: 0; top: 8px; width: 64%; height: 94%; border-radius: 18px; overflow: hidden; }
.visual .photo img { width: 100%; height: 100%; object-fit: cover; }
.visual .toggles { position: absolute; top: 8px; left: 0; width: 62%; display: flex; flex-direction: column; gap: 10px; }
.toggle-chip { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 14px;
  background: rgb(var(--foreground) / .1); backdrop-filter: blur(8px); border: 1px solid rgb(var(--foreground) / .15); box-shadow: 0 8px 24px rgb(0 0 0 / .25); }
.toggle-chip span.lbl { font-size: 14px; font-weight: 500; }
.switch { position: relative; width: 36px; height: 20px; border-radius: 999px; background: rgb(var(--foreground) / .2); flex: 0 0 auto; }
.switch.on { background: rgb(var(--primary)); }
.switch::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: left .2s; }
.switch.on::after { left: 18px; }
.glass-tile { position: absolute; border-radius: 22px; background: rgb(var(--foreground) / .06); backdrop-filter: blur(8px);
  border: 1px solid rgb(var(--foreground) / .15); box-shadow: 0 12px 30px rgb(0 0 0 / .25); pointer-events: none; }
.sparkle { position: absolute; color: rgb(var(--foreground) / .45); pointer-events: none; }

/* white stat card */
.stat-card { background: #fff; border-radius: 18px; padding: 16px; box-shadow: 0 24px 60px -20px rgb(0 0 0 / .6); }
.stat-card.compact { padding: 12px; }
.stat-card .top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 8px; }
.stat-card .top b { color: #1f2937; font-weight: 700; font-size: 14px; }
.stat-card.compact .top b { font-size: 11px; }
.stat-card .dots { color: #d1d5db; }
.stat-card .row { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; }
.stat-card .val { display: flex; align-items: center; gap: 4px; color: #059669; }
.stat-card .val .num { font-family: 'Space Grotesk'; font-weight: 800; font-size: 30px; line-height: 1; }
.stat-card.compact .val .num { font-size: 20px; }
.stat-card .sub { color: #9ca3af; font-size: 12px; margin-top: 8px; }
.stat-card.compact .sub { font-size: 10px; margin-top: 4px; }
.donut { width: 64px; height: 64px; border-radius: 50%; position: relative; flex: 0 0 auto;
  background: conic-gradient(#3b6ef6 0% 88%, #e3e9f8 88% 100%); }
.donut::after { content: ''; position: absolute; inset: 7px; border-radius: 50%; background: #fff; }
.donut.sm { width: 40px; height: 40px; }
.donut.sm::after { inset: 4px; }

/* ---------- App-frame mockups (feature rows) ---------- */
.appframe { position: relative; width: 100%; border-radius: 18px; overflow: hidden; border: 1px solid rgb(var(--foreground) / .1); background: rgb(var(--surface)); box-shadow: 0 24px 60px -20px rgb(0 0 0 / .6); }
.appframe .topbar { display: flex; gap: 6px; padding: 12px 16px; border-bottom: 1px solid rgb(var(--foreground) / .05); background: rgb(var(--foreground) / .02); }
.appframe .topbar i { width: 12px; height: 12px; border-radius: 50%; background: rgb(var(--foreground) / .15); }
.appframe .body { padding: 20px; }
.appframe h4 { font-size: 16px; font-weight: 600; color: rgb(var(--foreground)); }
.appframe .meta { color: rgb(var(--foreground) / .5); font-size: 12px; margin-top: 4px; }
.appframe .tabs { display: flex; gap: 14px; font-size: 12px; margin: 16px 0; }
.appframe .tabs span { color: rgb(var(--foreground) / .5); padding-bottom: 4px; }
.appframe .tabs span.on { color: rgb(var(--foreground)); border-bottom: 2px solid rgb(var(--primary)); }
.app-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: 10px; background: rgb(var(--foreground) / .03); border: 1px solid rgb(var(--foreground) / .05); margin-bottom: 8px; }
.app-row .lbl { font-size: 14px; color: rgb(var(--foreground) / .8); }
.mockup { position: relative; }
.float-stat { position: absolute; top: -20px; right: 12px; width: 160px; z-index: 3; }

.feature-row { display: grid; gap: 40px; align-items: center; padding: 52px 0; }
@media (min-width: 900px){ .feature-row { grid-template-columns: 1fr 1fr; } .feature-row.reverse .text { order: 2; } }
.feature-row h3 { font-size: clamp(26px, 3.4vw, 38px); color: rgb(var(--foreground)); margin: 16px 0 18px; }
.feature-row p { color: rgb(var(--foreground) / .75); font-size: 18px; margin-bottom: 24px; }
.divide > .feature-row + .feature-row { border-top: 1px solid rgb(var(--foreground) / .1); }

/* ---------- Stats band ---------- */
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; text-align: center; }
.stats-grid .n { font-family: 'Space Grotesk'; font-weight: 700; font-size: clamp(40px, 6vw, 60px); color: rgb(var(--primary)); }
.stats-grid .l { color: rgb(var(--muted)); margin-top: 6px; }
@media (max-width: 640px){ .stats-grid { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- Cards / grids ---------- */
.card { background: rgb(var(--surface)); border: 1px solid rgb(var(--border) / .7); border-radius: 16px; padding: 24px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
@media (max-width: 860px){ .grid-3 { grid-template-columns: 1fr; } .grid-2 { grid-template-columns: 1fr; } }

/* trusted strip */
.trusted { display: flex; flex-wrap: wrap; gap: 16px 40px; align-items: center; justify-content: center; color: rgb(var(--muted) / .8); }
.trusted .co { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 20px; opacity: .7; }

/* testimonials */
.scroller { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
.scroller > * { scroll-snap-align: start; flex: 0 0 320px; }
.t-card { background: rgb(var(--surface)); border: 1px solid rgb(var(--border) / .7); border-radius: 18px; padding: 26px; display: flex; flex-direction: column; }
.t-card .qt { color: rgb(var(--primary)); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 12px; }
.t-card blockquote { margin: 0 0 22px; color: rgb(var(--foreground) / .8); flex: 1; }
.t-card .who { display: flex; align-items: center; gap: 12px; }
.t-card .who .av { width: 40px; height: 40px; border-radius: 50%; background: rgb(var(--primary) / .35); }
.scroll-hint { text-align: center; color: rgb(var(--muted)); font-size: 14px; margin-bottom: 24px; display: flex; gap: 8px; justify-content: center; align-items: center; }

/* ---------- Footer ---------- */
.site-footer { border-top: 1px solid rgb(var(--foreground) / .06); padding: 64px 0 32px; }
.footer-grid { display: flex; flex-wrap: wrap; gap: 48px; justify-content: space-between; margin-bottom: 56px; }
.site-footer h4 { color: rgb(var(--foreground)); font-size: 15px; margin-bottom: 16px; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.site-footer ul a { color: rgb(var(--foreground) / .6); font-size: 14px; }
.site-footer ul a:hover { color: rgb(var(--foreground)); }
.site-footer address { color: rgb(var(--foreground) / .6); font-size: 14px; font-style: normal; line-height: 1.6; }
.newsletter { display: flex; gap: 8px; margin: 16px 0; max-width: 380px; }
.newsletter input { flex: 1; min-width: 0; padding: 12px 16px; border-radius: 999px; background: rgb(var(--surface)); border: 1px solid rgb(var(--border)); color: rgb(var(--foreground)); }
.newsletter input::placeholder { color: rgb(var(--muted-2)); }
.socials { display: flex; gap: 12px; margin-top: 8px; }
.socials a { width: 40px; height: 40px; border-radius: 50%; background: rgb(var(--surface-2)); display: grid; place-items: center; color: rgb(var(--muted)); }
.socials a:hover { color: rgb(var(--foreground)); }
.footer-base { text-align: center; color: rgb(var(--foreground) / .4); font-size: 13px; padding-top: 24px; }

/* ---------- Page hero (inner pages) ---------- */
.page-hero { position: relative; padding: 130px 0 48px; overflow: hidden; }
.breadcrumbs { font-size: 14px; color: rgb(var(--muted)); display: flex; gap: 8px; flex-wrap: wrap; }
.breadcrumbs a { color: rgb(var(--muted)); }
.breadcrumbs .sep { color: rgb(var(--foreground) / .3); }
.page-hero h1 { font-size: clamp(34px, 5vw, 56px); color: rgb(var(--foreground)); margin: 24px 0 0; }
.page-hero .lede { font-size: 19px; color: rgb(var(--foreground) / .8); max-width: 60ch; margin-top: 18px; }

/* ---------- Prose (posts, glossary, legal) ---------- */
.prose { max-width: 720px; color: rgb(var(--foreground) / .8); font-size: 17px; }
.prose > * + * { margin-top: 18px; }
.prose h2 { color: rgb(var(--foreground)); font-size: 26px; margin-top: 36px; scroll-margin-top: 110px; }
.prose h3 { color: rgb(var(--foreground)); font-size: 20px; margin-top: 26px; }
.prose a { text-decoration: underline; }
.prose ul, .prose ol { padding-left: 22px; }
.prose li { margin-bottom: 8px; }
.prose strong { color: rgb(var(--foreground)); }
.prose img { border-radius: 14px; }
.prose blockquote { border-left: 3px solid rgb(var(--primary)); padding-left: 18px; color: rgb(var(--foreground) / .85); }

/* ---------- Blog ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { padding: 8px 18px; border-radius: 999px; border: 1px solid rgb(var(--foreground) / .15); color: rgb(var(--foreground) / .75); font-size: 14px; font-weight: 500; }
.chip.active { background: rgb(var(--foreground)); color: rgb(var(--background)); border-color: transparent; }
.post-card .thumb { aspect-ratio: 16/9; border-radius: 14px; overflow: hidden; margin-bottom: 16px; background: linear-gradient(135deg, rgb(var(--primary) / .4), rgb(var(--accent) / .3)); }
.post-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-card .cat { color: rgb(var(--primary)); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.post-card h3 { font-size: 19px; color: rgb(var(--foreground)); margin: 6px 0 8px; }
.post-card .excerpt { color: rgb(var(--foreground) / .7); font-size: 14px; }
.post-meta { display: flex; gap: 18px; color: rgb(var(--foreground) / .5); font-size: 14px; align-items: center; }
.post-meta span { display: inline-flex; align-items: center; gap: 6px; }
.post-meta svg { width: 16px; height: 16px; flex: 0 0 auto; }
.featured-post { display: grid; gap: 0; border: 1px solid rgb(var(--foreground) / .1); border-radius: 18px; overflow: hidden; }
@media (min-width: 900px){ .featured-post { grid-template-columns: 1fr 1fr; align-items: stretch; } }
.featured-post .cover { min-height: 220px; background: linear-gradient(135deg, rgb(var(--primary) / .4), rgb(var(--accent) / .3)); }
.featured-post .cover img { width: 100%; height: 100%; object-fit: cover; }
.featured-post .body { padding: 36px; }

/* single post layout + TOC */
.post-layout { display: grid; gap: 48px; }
@media (min-width: 1024px){ .post-layout { grid-template-columns: minmax(0,1fr) 240px; column-gap: 64px; } }
.toc-wrap { display: flex; flex-direction: column; gap: 22px; }
.toc { font-size: 14px; }
@media (min-width: 1024px){ .toc-wrap { order: 2; position: sticky; top: 110px; align-self: start; } }
/* Below the 2-column breakpoint: keep the org card, drop the TOC list (no clunky list above the body). */
@media (max-width: 1023px){ .toc-wrap .toc { display: none; } .post-layout { gap: 24px; } }
/* No headings -> no TOC sidebar: collapse to a single centered reading column. */
.post-layout.no-toc { grid-template-columns: minmax(0, 720px); justify-content: center; }
.toc strong { display: flex; align-items: center; gap: 8px; color: rgb(var(--foreground)); margin-bottom: 14px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; }
.toc strong svg { width: 15px; height: 15px; flex: 0 0 auto; color: rgb(var(--primary)); }
.toc ul { list-style: none; margin: 0; padding: 0; border-left: 1px solid rgb(var(--foreground) / .1); }
.toc a { display: block; padding: 7px 0 7px 16px; margin-left: -1px; border-left: 2px solid transparent; color: rgb(var(--foreground) / .55); }
.toc a.active { color: rgb(var(--foreground)); border-left-color: rgb(var(--primary)); font-weight: 500; }
.share { display: flex; align-items: center; gap: 12px; }
.share a { width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgb(var(--foreground) / .1); display: grid; place-items: center; color: rgb(var(--muted)); }
.share a:hover { color: rgb(var(--foreground)); border-color: rgb(var(--foreground) / .3); }
.share a svg { width: 18px; height: 18px; }
.back-link svg { width: 16px; height: 16px; flex: 0 0 auto; }

/* ---------- Forms ---------- */
.field { width: 100%; padding: 12px 16px; border-radius: 12px; background: rgb(var(--surface)); border: 1px solid rgb(var(--border)); color: rgb(var(--foreground)); font: inherit; }
.field:focus { outline: none; border-color: rgb(var(--primary)); }
label { font-size: 14px; color: rgb(var(--foreground) / .8); display: block; margin-bottom: 6px; }

/* ---------- WP bits ---------- */
.alignleft { float: left; margin: 0 24px 16px 0; } .alignright { float: right; margin: 0 0 16px 24px; }
.aligncenter { margin-left: auto; margin-right: auto; }
.wp-caption-text, figcaption { color: rgb(var(--muted)); font-size: 13px; margin-top: 8px; text-align: center; }
.pagination { display: flex; gap: 8px; justify-content: center; margin-top: 48px; flex-wrap: wrap; }
.pagination .page-numbers { padding: 8px 14px; border-radius: 10px; border: 1px solid rgb(var(--border)); color: rgb(var(--foreground) / .8); }
.pagination .current { background: rgb(var(--primary)); color: rgb(var(--on-primary)); border-color: transparent; }
.comment-list { list-style: none; padding: 0; }
.comment-list .comment { border: 1px solid rgb(var(--border)); border-radius: 14px; padding: 18px; margin-bottom: 16px; }

body { padding-top: 0; }
.has-fixed-header { padding-top: 0; }

/* ---------- Section blocks (page builder) ---------- */
.feat-ico{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:12px;background:rgb(var(--primary)/.14);color:rgb(var(--primary));margin-bottom:16px}
.feat-ico svg{width:22px;height:22px}
.feature-card h3{font-family:'Space Grotesk',sans-serif;font-size:19px;margin:0 0 8px;color:rgb(var(--foreground))}
.feature-card p{color:rgb(var(--foreground)/.7);font-size:15px;line-height:1.6;margin:0}
.shot{border-radius:20px;overflow:hidden;border:1px solid rgb(var(--border)/.7);background:rgb(var(--surface));min-height:320px;position:relative}
.shot img{display:block;width:100%;height:100%;min-height:320px;object-fit:cover}
.shot-gradient{background:radial-gradient(120% 120% at 70% 20%,rgba(61,123,255,.5),rgba(10,21,48,.92));min-height:360px}
.checks{list-style:none;margin:18px 0 24px;padding:0;display:grid;gap:12px}
.checks-2{grid-template-columns:1fr 1fr;gap:14px 28px}
.checks li{display:flex;gap:10px;align-items:flex-start;color:rgb(var(--foreground)/.82);font-size:16px}
.checks li svg{width:20px;height:20px;color:rgb(var(--accent));flex:0 0 auto;margin-top:2px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.step{display:flex;gap:16px}
.step-n{flex:0 0 auto;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-family:'Space Grotesk',sans-serif;font-weight:700;background:rgb(var(--primary)/.16);color:rgb(var(--primary))}
.step h3{font-size:18px;margin:4px 0 8px}
.step p{color:rgb(var(--foreground)/.7);font-size:15px;line-height:1.6;margin:0}
@media(max-width:860px){.steps{grid-template-columns:1fr}.checks-2{grid-template-columns:1fr}}
.faq-list{display:grid;gap:12px}
.faq-item{background:rgb(var(--surface));border:1px solid rgb(var(--border)/.7);border-radius:14px;padding:2px 20px}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-weight:600;font-size:17px;color:rgb(var(--foreground))}
.faq-item summary::-webkit-details-marker{display:none}
.faq-chev{display:inline-flex;transition:transform .2s}.faq-chev svg{width:18px;height:18px}
.faq-item[open] .faq-chev{transform:rotate(180deg)}
.faq-a{padding:0 0 18px;color:rgb(var(--foreground)/.72);line-height:1.7}.faq-a p{margin:0}
.cta-band{text-align:center;background:radial-gradient(120% 140% at 50% 0,rgba(61,123,255,.16),rgb(var(--surface)/.6));border:1px solid rgb(var(--border)/.7);border-radius:24px;padding:56px 32px}
.cta-band h2{font-size:clamp(28px,4vw,42px);margin:0 0 14px}
.cta-band p{color:rgb(var(--muted));font-size:18px;max-width:520px;margin:0 auto 28px}
.feature-card.is-link{text-decoration:none;display:flex;flex-direction:column;transition:border-color .2s,transform .2s,background .2s}
.feature-card.is-link:hover{border-color:rgb(var(--primary)/.55);transform:translateY(-2px);background:rgb(var(--surface))}
.feat-arrow{display:inline-flex;margin-top:auto;padding-top:14px;color:rgb(var(--primary))}.feat-arrow svg{width:18px;height:18px}
.avatar .pic{display:grid;place-items:center;color:#fff}
.avatar .pic svg{width:46%;height:46%}
/* threat icons floating bare (no badge background) */
.avatar .pic{background:none;border:0;box-shadow:none;border-radius:0;overflow:visible}
.avatar .pic svg{width:84%;height:84%;filter:drop-shadow(0 2px 6px rgb(0 0 0 / .5))}
/* ---- "world" hero: starfield + connector lines + planet depth ---- */
.starfield{position:absolute;inset:0;z-index:0;pointer-events:none}
.star{position:absolute;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;border-radius:50%;background:#eaf2ff;opacity:.5;box-shadow:0 0 7px 1px rgb(150 185 255 / .85);animation:twinkle 3.6s ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:.2;transform:scale(.6)}50%{opacity:.95;transform:scale(1.1)}}
.globe-links{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}
.globe-links line{stroke:rgb(var(--primary)/.45);stroke-width:1.2;stroke-dasharray:1.5 2.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.globe-links circle{fill:rgb(var(--accent))}
.globe{z-index:1;box-shadow:0 -10px 120px 12px rgb(61 123 255 / .5), inset 0 10px 55px rgb(188 210 255 / .65), inset 0 -42px 95px rgb(8 16 40 / .78)}
.avatar{z-index:3}
/* clearer connector lines + globe meridian grid */
.globe-links line{stroke:rgb(var(--primary)/.6);stroke-width:1.4;stroke-dasharray:2 3}
.globe-links circle{fill:rgb(var(--accent));filter:drop-shadow(0 0 3px rgb(var(--accent)/.9))}
.globe-grid{position:absolute;inset:0;width:100%;height:100%}
.globe-grid ellipse,.globe-grid line{fill:none;stroke:rgb(220 232 255 / .15);stroke-width:1;vector-effect:non-scaling-stroke}
.globe-grid .lon ellipse:first-child{stroke:rgb(220 232 255 / .22)}
/* headline on the globe */
.globe-caption{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);z-index:3;width:100%;padding:0 24px;text-align:center;pointer-events:none}
.globe-caption p{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:clamp(22px,3.2vw,36px);line-height:1.12;letter-spacing:-.01em;color:#fff;max-width:13ch;margin:0 auto;text-shadow:0 2px 22px rgb(8 16 40 / .55),0 1px 4px rgb(8 16 40 / .6)}
/* globe caption: lower, smaller, single line */
.globe-caption{top:60%}
.globe-caption p{font-size:clamp(16px,2.2vw,25px);max-width:none;white-space:nowrap}
/* two-tier globe caption: lead word on top, rest under */
.globe-caption{top:58%}
.gc-lead{display:block;font-size:1.5em;line-height:1.02;white-space:nowrap}
.gc-rest{display:block;font-size:.78em;font-weight:600;white-space:nowrap;margin-top:3px;color:rgb(226 236 255 / .95)}
/* ============================================================
   "Ransomware / Breach Alert" cards (blog index + related)
   ============================================================ */
.alert-card { position: relative; display: flex; flex-direction: column; min-height: 300px;
  padding: 22px 24px; border-radius: 18px; overflow: hidden; text-decoration: none; color: #e8eefc;
  background: linear-gradient(158deg, #102347 0%, #0a1733 55%, #070f24 100%);
  border: 1px solid rgba(120, 160, 255, .20);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.alert-card:hover { transform: translateY(-3px); border-color: rgba(120, 160, 255, .45); box-shadow: 0 20px 44px rgba(6, 14, 33, .5); }
.alert-card::before { content: ""; position: absolute; top: -45%; right: -25%; width: 65%; height: 85%;
  background: radial-gradient(circle, rgba(31, 107, 255, .28), transparent 68%); pointer-events: none; }
.alert-card-top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.alert-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .05em; color: #fff; padding-bottom: 9px; border-bottom: 2px solid rgba(255, 255, 255, .18); }
.alert-badge svg { width: 18px; height: 18px; color: #f6c945; flex: 0 0 auto; }
.alert-card-brand { height: 18px; width: auto; opacity: .85; }
.alert-card-title { position: relative; z-index: 1; flex: 1; display: flex; align-items: center; justify-content: center;
  text-align: center; margin: 16px 0; font-family: 'Space Grotesk', sans-serif; font-size: 21px; font-weight: 700; line-height: 1.32; color: #fff; }
.alert-card-bottom { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.alert-card-facts { display: flex; flex-direction: column; gap: 5px; font-size: 13px; min-width: 0; }
.alert-card-facts > div { display: flex; gap: 8px; }
.alert-card-facts .k { color: rgba(170, 192, 235, .65); min-width: 60px; flex: 0 0 auto; }
.alert-card-facts .v { color: #e8eefc; font-weight: 600; word-break: break-word; }
.alert-card-logo { width: 46px; height: 46px; flex: 0 0 auto; border-radius: 10px; object-fit: cover;
  background: #fff; border: 1px solid rgba(255, 255, 255, .14); }
.alert-card-logo.is-fallback { object-fit: contain; padding: 9px; background: rgba(255, 255, 255, .07); }
/* Featured variant — horizontal */
.alert-card--featured { flex-direction: row; min-height: 0; gap: 0; padding: 0; align-items: stretch; }
.alert-card--featured .alert-card-main { flex: 1; display: flex; flex-direction: column; padding: 30px 34px; min-width: 0; }
.alert-card--featured .alert-card-title { text-align: left; justify-content: flex-start; align-items: flex-start; flex: 1; font-size: clamp(24px, 2.6vw, 34px); margin: 22px 0; }
.alert-card-cta { display: inline-flex; align-items: center; gap: 8px; color: #6ea8ff; font-weight: 700; font-size: 14px; }
.alert-card-cta svg { width: 16px; height: 16px; }
.alert-card--featured .alert-card-side { flex: 0 0 288px; display: flex; flex-direction: column; justify-content: center; gap: 20px; padding: 30px 34px; border-left: 1px solid rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .025); }
.alert-card-logo--lg { width: 72px; height: 72px; border-radius: 14px; }
@media (max-width: 760px) {
  .alert-card--featured { flex-direction: column; }
  .alert-card--featured .alert-card-side { flex: none; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .1); }
}

/* theme-aware logo swap (white on dark, dark on light) */
.logo-on-light { display: none; }
[data-theme="light"] .logo-on-dark { display: none; }
[data-theme="light"] .logo-on-light { display: block; }

/* ============================================================
   Incident / news article polish (single post)
   ============================================================ */

/* Category rendered as a badge in the hero */
.post-cat { display: inline-flex; align-items: center; gap: 7px; margin-top: 20px; padding: 6px 12px 6px 10px;
  border-radius: 999px; background: rgb(var(--primary) / .1); color: rgb(var(--primary));
  font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.post-cat svg { width: 14px; height: 14px; }

/* Visible tag chips at the foot of the article */
.post-tags { max-width: 720px; margin-top: 36px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
.post-tags-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgb(var(--foreground) / .5); }
.post-tags .chip { font-size: 13px; padding: 6px 14px; }
.post-tags .chip:hover { border-color: rgb(var(--primary) / .5); color: rgb(var(--primary)); }

/* Collapsible "Leave a comment" — closed by default */
.comments-toggle { max-width: 720px; margin-top: 40px; border: 1px solid rgb(var(--foreground) / .1); border-radius: 14px; background: rgb(var(--surface)); }
.comments-toggle > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 16px 20px; font-weight: 600; font-size: 16px; color: rgb(var(--foreground)); }
.comments-toggle > summary::-webkit-details-marker { display: none; }
.comments-toggle > summary svg { width: 18px; height: 18px; flex: 0 0 auto; }
.comments-toggle > summary .chev { margin-left: auto; display: inline-flex; transition: transform .2s ease; color: rgb(var(--foreground) / .55); }
.comments-toggle[open] > summary { border-bottom: 1px solid rgb(var(--foreground) / .08); }
.comments-toggle[open] > summary .chev { transform: rotate(180deg); }
.comments-toggle-body { padding: 10px 20px 22px; }
.comments-toggle .comment-reply-title { display: none; }

/* Target-organization card (logo.dev logo) — sits at the top of the TOC sidebar */
.org-card { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px;
  border: 1px solid rgb(var(--foreground) / .1); border-radius: 14px; background: rgb(var(--surface)); }
.org-card .org-logo { width: 48px; height: 48px; flex: 0 0 auto; border-radius: 11px; object-fit: cover; object-position: center;
  background: #fff; border: 1px solid rgb(var(--foreground) / .08); overflow: hidden; }
.org-card .org-logo.is-fallback { object-fit: contain; padding: 11px; background: rgb(var(--surface-2)); }
.org-card-meta { display: flex; flex-direction: column; gap: 3px; min-width: 0; max-width: 100%; }
.org-card-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgb(var(--primary)); }
.org-card .org-name { font-size: 15px; font-weight: 700; color: rgb(var(--foreground)); line-height: 1.25; }
.org-card .org-domain { display: inline-flex; align-items: flex-start; gap: 6px; font-size: 12.5px; color: rgb(var(--foreground) / .6); word-break: break-word; }
.org-card .org-domain svg { width: 13px; height: 13px; flex: 0 0 auto; margin-top: 2px; }
.org-card .org-sector { font-size: 12.5px; color: rgb(var(--foreground) / .5); }

/* Tighten the byline -> body gap when there's no cover image */
.post-single .section.no-cover { padding-top: 20px; }
/* `.section` shorthand zeroes the horizontal padding `.wrap` would give; restore it so
   the post body isn't edge-to-edge on mobile (the hero `.wrap` already has it).
   Also cap the single-post width so the body column lines up with the hero + leaves room for the TOC. */
.post-single .wrap.section { padding-left: 24px; padding-right: 24px; max-width: 1080px; }

/* Body links */
.prose a { color: rgb(var(--primary)); text-decoration: underline; text-underline-offset: 3px;
  text-decoration-thickness: 1px; text-decoration-color: rgb(var(--primary) / .35); transition: text-decoration-color .15s; }
.prose a:hover { text-decoration-color: rgb(var(--primary)); }

/* Custom list markers (unordered) */
.prose ul { list-style: none; padding-left: 0; }
.prose ul > li { position: relative; padding-left: 26px; }
.prose ul > li::before { content: ""; position: absolute; left: 7px; top: .6em;
  width: 6px; height: 6px; border-radius: 50%; background: rgb(var(--primary)); }

/* Section heading inside the body (e.g. "Incident Report") */
.prose h3 { display: flex; align-items: center; gap: 10px; }
.prose h3::before { content: ""; flex: 0 0 auto; width: 4px; height: 18px; border-radius: 2px; background: rgb(var(--accent)); }

/* Incident data table — override the generator's hardcoded inline styles and theme it */
.prose table { width: 100% !important; border-collapse: separate !important; border-spacing: 0 !important;
  border: 1px solid rgb(var(--foreground) / .12) !important; border-radius: 14px; overflow: hidden;
  margin: 10px 0; font-size: 15px; background: rgb(var(--surface)); }
.prose thead { display: none; } /* "Attribute / Information" header is redundant for a label->value sheet */
.prose thead tr { background: rgb(var(--surface-2)) !important; }
.prose th { text-align: left !important; padding: 12px 16px !important; border: 0 !important;
  border-bottom: 1px solid rgb(var(--foreground) / .1) !important; font-size: 12px !important; font-weight: 700;
  text-transform: uppercase; letter-spacing: .05em; color: rgb(var(--foreground) / .6); }
.prose td { padding: 13px 16px !important; border: 0 !important;
  border-bottom: 1px solid rgb(var(--foreground) / .07) !important; color: rgb(var(--foreground) / .8);
  vertical-align: top; word-break: break-word; }
.prose tbody tr:last-child td { border-bottom: 0 !important; }
.prose td:first-child, .prose td:first-child strong { font-weight: 600; color: rgb(var(--foreground)); }
.prose td:first-child { width: 38%; white-space: nowrap; }
.prose tbody tr:hover td { background: rgb(var(--foreground) / .025); }
@media (max-width: 560px) {
  .prose td:first-child { white-space: normal; width: 42%; }
  .prose th, .prose td { padding: 10px 12px !important; }
}
/* WP custom logo: the_custom_logo() renders .custom-logo outside .site-brand */ .custom-logo-link{display:inline-flex;align-items:center;line-height:0} .custom-logo-link img,img.custom-logo{height:36px;width:auto;max-width:220px}