/* ==========================================================================
   Tech 24 theme, screen.css
   Design direction: dark network frame (deep navy, glowing blue + green
   connection lines) with high-contrast light cards for all reading content.
   All values reference brand tokens in :root.
   ========================================================================== */

/* ---- Brand tokens ---------------------------------------------------- */
:root {
  --thp-primary: #2563eb;        /* electric blue */
  --thp-primary-dark: #1e40af;
  --thp-accent: #22c55e;         /* network green (from reference image) */
  --thp-accent-soft: #4ade80;
  --thp-cyan: #22d3ee;           /* secondary glow */

  --thp-dark: #0a0f1e;           /* deep navy, dark sections */
  --thp-dark-2: #111a30;
  --thp-dark-line: #24304d;

  --thp-bg: #f1f5f9;             /* light page background */
  --thp-card: #ffffff;
  --thp-line: #e2e8f0;

  --thp-text: #0f172a;           /* headings / strong text on light */
  --thp-body: #3f4a5c;           /* body text on light (AA on white) */
  --thp-muted: #64748b;
  --thp-on-dark: #eaf1fb;        /* text on dark */
  --thp-on-dark-muted: #a9b6cf;

  /* category colors */
  --cat-blue: #2563eb;
  --cat-emerald: #059669;
  --cat-orange: #ea580c;
  --cat-pink: #db2777;
  --cat-violet: #7c3aed;
  --cat-red: #dc2626;

  --thp-font-display: 'Space Grotesk', 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --thp-font-body: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --thp-radius: 24px;
  --thp-radius-sm: 14px;
  --thp-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
  --thp-shadow-lg: 0 18px 40px rgba(15, 23, 42, 0.12);
  --thp-shadow-glow: 0 10px 30px rgba(37, 99, 235, 0.35);

  --thp-wrap: 1200px;
  --thp-text-wrap: 850px;
}

/* ---- Reset / base ---------------------------------------------------- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--thp-font-body);
  background: var(--thp-bg);
  color: var(--thp-text);
  font-size: 16px;
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

.thp-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--thp-primary); color: #fff; padding: 10px 16px;
  border-radius: 0 0 var(--thp-radius-sm) 0; z-index: 200;
}
.thp-skip:focus { left: 0; }

/* Visible focus for accessibility */
a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 3px solid var(--thp-cyan);
  outline-offset: 2px;
}

/* ---- Layout helpers -------------------------------------------------- */
.thp-wrap { width: 100%; max-width: var(--thp-wrap); margin: 0 auto; padding: 0 32px; }
.thp-sec { padding: 72px 0; }
.thp-sec-tight { padding: 48px 0; }
.thp-text { max-width: var(--thp-text-wrap); }
.thp-center { text-align: center; margin-left: auto; margin-right: auto; }

/* ---- Typography ------------------------------------------------------ */
.thp-h1 { font-family: var(--thp-font-display); font-weight: 700; font-size: clamp(34px, 5vw, 56px); line-height: 1.04; letter-spacing: -1.5px; }
.thp-h2 { font-family: var(--thp-font-display); font-weight: 700; font-size: clamp(26px, 3.4vw, 38px); line-height: 1.1; letter-spacing: -1px; }
.thp-h3 { font-family: var(--thp-font-display); font-weight: 700; font-size: clamp(20px, 2.4vw, 24px); line-height: 1.2; letter-spacing: -0.4px; }
.thp-lead { font-size: clamp(16px, 1.4vw, 19px); line-height: 1.6; color: var(--thp-body); }
.thp-body { font-size: 16px; line-height: 1.6; color: var(--thp-body); }
.thp-body p + p { margin-top: 14px; }

.thp-kicker {
  display: inline-block; font-family: var(--thp-font-body);
  font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: var(--thp-primary);
}
.thp-grad {
  background: linear-gradient(120deg, var(--thp-cyan), var(--thp-primary) 45%, var(--thp-accent));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: var(--thp-primary);
}

.thp-pill {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
  padding: 7px 16px; border-radius: 9999px;
  background: rgba(37, 99, 235, 0.1); color: var(--thp-primary-dark);
  border: 1px solid rgba(37, 99, 235, 0.2);
}
.thp-pill-dark {
  background: rgba(34, 197, 94, 0.12); color: var(--thp-accent-soft);
  border: 1px solid rgba(34, 197, 94, 0.35);
}
.thp-pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--thp-accent); box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5); animation: thp-pulse 2s ease-in-out infinite; }
@keyframes thp-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5); opacity: 1; } 50% { box-shadow: 0 0 0 7px rgba(34, 197, 94, 0); opacity: .7; } }

/* ---- Buttons --------------------------------------------------------- */
.thp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 30px; border-radius: 9999px; border: none;
  font-family: var(--thp-font-body); font-size: 15px; font-weight: 600;
  background: linear-gradient(135deg, var(--thp-primary), var(--thp-primary-dark));
  color: #fff; box-shadow: var(--thp-shadow-glow);
  transition: transform .25s ease, box-shadow .25s ease;
}
.thp-btn:hover { transform: translateY(-2px); box-shadow: 0 18px 34px rgba(37, 99, 235, 0.42); }
.thp-btn-ghost {
  background: transparent; color: var(--thp-text);
  border: 1.5px solid var(--thp-line); box-shadow: none;
}
.thp-btn-ghost:hover { border-color: var(--thp-primary); color: var(--thp-primary); box-shadow: none; }
.thp-btn-on-dark {
  background: linear-gradient(135deg, var(--thp-accent), #16a34a);
  box-shadow: 0 10px 30px rgba(34, 197, 94, 0.3);
}
.thp-btn-on-dark:hover { box-shadow: 0 18px 34px rgba(34, 197, 94, 0.4); }

/* ==========================================================================
   Dark network frame  (header, hero, footer, dark bands)
   ========================================================================== */
.thp-dark {
  position: relative;
  background: var(--thp-dark);
  color: var(--thp-on-dark);
  overflow: hidden;
}
/* glowing circuit / network motif, kept subtle so text stays readable */
.thp-dark::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    radial-gradient(circle at 15% 20%, rgba(37, 99, 235, 0.28), transparent 42%),
    radial-gradient(circle at 85% 80%, rgba(34, 197, 94, 0.22), transparent 45%),
    linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size: 100% 100%, 100% 100%, 46px 46px, 46px 46px;
}
.thp-dark > * { position: relative; z-index: 1; }
.thp-dark .thp-kicker { color: var(--thp-accent-soft); }
.thp-dark .thp-body, .thp-dark .thp-lead { color: var(--thp-on-dark-muted); }
.thp-dark a { color: var(--thp-cyan); }

/* ---- Header / nav ---------------------------------------------------- */
.thp-nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(10, 15, 30, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--thp-dark-line);
}
.thp-nav-inner { display: flex; align-items: center; justify-content: space-between; height: 72px; }
.thp-logo { display: flex; align-items: center; gap: 12px; }
.thp-logo img { height: 34px; width: auto; }
.thp-nav-links { display: flex; align-items: center; gap: 28px; list-style: none; }
.thp-nav-links a {
  color: var(--thp-on-dark); font-size: 15px; font-weight: 500; letter-spacing: .2px;
  position: relative; padding: 4px 0; transition: color .2s ease;
}
.thp-nav-links a:hover { color: #fff; }
.thp-nav-links a::after {
  content: ""; position: absolute; left: 0; bottom: -2px; height: 2px; width: 0;
  background: linear-gradient(90deg, var(--thp-cyan), var(--thp-accent)); transition: width .25s ease;
}
.thp-nav-links a:hover::after { width: 100%; }
.thp-nav-cta { display: flex; align-items: center; gap: 14px; }
.thp-burger {
  display: none; width: 44px; height: 44px; border: 1px solid var(--thp-dark-line);
  border-radius: 12px; background: transparent; flex-direction: column; gap: 5px;
  align-items: center; justify-content: center;
}
.thp-burger span { display: block; width: 20px; height: 2px; background: var(--thp-on-dark); transition: transform .25s ease, opacity .25s ease; }
.thp-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.thp-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.thp-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---- Hero ------------------------------------------------------------ */
.thp-hero { padding: 84px 0 96px; }
.thp-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 56px; align-items: center; }
.thp-hero h1 { margin: 18px 0 20px; }
.thp-hero .thp-lead { max-width: 520px; }
.thp-hero-form { margin-top: 28px; max-width: 480px; }

/* hero network visual */
.thp-hero-visual {
  position: relative; aspect-ratio: 1 / 1; max-width: 460px; margin-left: auto; width: 100%;
  border-radius: var(--thp-radius); overflow: hidden;
  border: 1px solid var(--thp-dark-line);
  background:
    radial-gradient(circle at 50% 45%, rgba(37,99,235,0.35), transparent 55%),
    radial-gradient(circle at 70% 75%, rgba(34,197,94,0.25), transparent 50%),
    #070b16;
}
.thp-hero-visual .thp-core {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 118px; height: 118px; border-radius: 20px;
  background: linear-gradient(135deg, rgba(37,99,235,0.9), rgba(30,64,175,0.9));
  box-shadow: 0 0 60px rgba(37,99,235,0.7), inset 0 0 30px rgba(255,255,255,0.15);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--thp-font-display); font-weight: 700; font-size: 34px; color: #fff;
  animation: thp-float 6s ease-in-out infinite;
}
@keyframes thp-float { 0%,100% { transform: translate(-50%, -52%); } 50% { transform: translate(-50%, -48%); } }
.thp-hero-visual .thp-node {
  position: absolute; width: 12px; height: 12px; border-radius: 50%;
  background: var(--thp-accent); box-shadow: 0 0 14px var(--thp-accent-soft);
}
.thp-hero-visual .thp-node.n1 { top: 18%; left: 22%; }
.thp-hero-visual .thp-node.n2 { top: 24%; right: 18%; background: var(--thp-cyan); box-shadow: 0 0 14px var(--thp-cyan); }
.thp-hero-visual .thp-node.n3 { bottom: 20%; left: 28%; background: var(--thp-cyan); box-shadow: 0 0 14px var(--thp-cyan); }
.thp-hero-visual .thp-node.n4 { bottom: 24%; right: 22%; }

/* ---- Ghost Portal subscribe form ------------------------------------ */
.thp-form { display: flex; gap: 10px; width: 100%; }
.thp-form input[type="email"] {
  flex: 1 1 auto; min-width: 0; padding: 14px 18px; font-size: 15px;
  border-radius: 9999px; border: 1px solid var(--thp-line);
  background: #fff; color: var(--thp-text);
}
.thp-dark .thp-form input[type="email"] {
  background: rgba(255,255,255,0.06); border-color: var(--thp-dark-line); color: #fff;
}
.thp-dark .thp-form input[type="email"]::placeholder { color: var(--thp-on-dark-muted); }
.thp-form button { flex: 0 0 auto; }
.thp-success, .thp-error { font-size: 13px; margin-top: 10px; display: none; }
.thp-success { color: var(--thp-accent); }
.thp-error { color: #f87171; }
.thp-form-note { font-size: 12px; margin-top: 10px; color: var(--thp-muted); }
.thp-dark .thp-form-note { color: var(--thp-on-dark-muted); }

/* ==========================================================================
   Light content sections & cards
   ========================================================================== */
.thp-sec-light { background: var(--thp-bg); }
.thp-sec-white { background: #fff; }

.thp-headwrap { margin-bottom: 40px; }
.thp-headwrap .thp-h2 { margin-top: 14px; }
.thp-headwrap .thp-lead { margin-top: 14px; }

.thp-section-head {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  margin-bottom: 28px; flex-wrap: wrap;
}
.thp-section-link { font-size: 15px; font-weight: 600; color: var(--thp-primary); display: inline-flex; align-items: center; gap: 6px; }
.thp-section-link:hover { color: var(--thp-primary-dark); }

/* Card grid */
.thp-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.thp-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.thp-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }

.thp-card {
  background: var(--thp-card); border: 1px solid var(--thp-line);
  border-radius: var(--thp-radius); overflow: hidden;
  box-shadow: var(--thp-shadow); display: flex; flex-direction: column;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.thp-card:hover { transform: translateY(-4px); box-shadow: var(--thp-shadow-lg); border-color: #cbd5e1; }
.thp-card-img { width: 100%; height: 180px; object-fit: cover; background: var(--thp-bg); }
.thp-card-body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.thp-card h3, .thp-card h4 { font-family: var(--thp-font-display); }
.thp-card-title { font-size: 19px; font-weight: 700; line-height: 1.25; letter-spacing: -0.3px; color: var(--thp-text); }
.thp-card:hover .thp-card-title { color: var(--thp-primary-dark); }
.thp-card-excerpt { font-size: 15px; line-height: 1.55; color: var(--thp-body); }
.thp-card-foot { margin-top: auto; padding-top: 6px; }

/* meta row */
.thp-meta { display: flex; align-items: center; gap: 8px; font-size: 13px; flex-wrap: wrap; }
.thp-meta-cat { font-weight: 700; text-transform: uppercase; letter-spacing: .5px; font-size: 12px; }
.thp-meta-dot { color: #cbd5e1; }
.thp-meta-time { color: var(--thp-muted); }
.cat-blue { color: var(--cat-blue); } .cat-emerald { color: var(--cat-emerald); }
.cat-orange { color: var(--cat-orange); } .cat-pink { color: var(--cat-pink); }
.cat-violet { color: var(--cat-violet); } .cat-red { color: var(--cat-red); }

/* placeholder card (coming soon) */
.thp-placeholder {
  border: 1.5px dashed var(--thp-line); border-radius: var(--thp-radius);
  padding: 40px 28px; text-align: center; color: var(--thp-muted); background: #fff;
}
.thp-placeholder .thp-h3 { color: var(--thp-text); margin-bottom: 8px; }

/* ---- "What you get" feature boxes ------------------------------------ */
.thp-feature {
  display: flex; align-items: flex-start; gap: 18px;
  background: #fff; border: 1px solid var(--thp-line); border-radius: var(--thp-radius);
  padding: 24px; box-shadow: var(--thp-shadow);
}
.thp-feature-icon {
  flex: 0 0 auto; width: 46px; height: 46px; border-radius: var(--thp-radius-sm);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 20px; font-weight: 700; font-family: var(--thp-font-display);
}
.thp-feature h3 { font-size: 17px; font-weight: 700; color: var(--thp-text); margin-bottom: 4px; }
.thp-feature p { font-size: 15px; line-height: 1.5; color: var(--thp-muted); }

/* ---- Numbers / stats ------------------------------------------------- */
.thp-stat { background: #fff; border: 1px solid var(--thp-line); border-radius: var(--thp-radius); padding: 30px 24px; text-align: center; }
.thp-stat-num { font-family: var(--thp-font-display); font-weight: 700; font-size: clamp(34px, 5vw, 50px); line-height: 1; color: var(--thp-primary); }
.thp-stat-label { margin-top: 10px; font-size: 14px; color: var(--thp-muted); line-height: 1.4; }

/* ---- Marquee ribbon -------------------------------------------------- */
.thp-marquee { overflow: hidden; border-top: 1px solid var(--thp-dark-line); border-bottom: 1px solid var(--thp-dark-line); padding: 20px 0; }
.thp-marquee-track { display: flex; gap: 40px; white-space: nowrap; width: max-content; animation: thp-marquee 32s linear infinite; }
.thp-marquee span { font-family: var(--thp-font-display); font-weight: 700; font-size: 20px; color: var(--thp-on-dark); letter-spacing: .5px; }
.thp-marquee span::before { content: "•"; color: var(--thp-accent); margin-right: 40px; }
@keyframes thp-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---- Interactive category picker (home) ------------------------------ */
.thp-picker { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.thp-chip {
  padding: 10px 18px; border-radius: 9999px; border: 1px solid var(--thp-dark-line);
  background: rgba(255,255,255,0.04); color: var(--thp-on-dark);
  font-size: 14px; font-weight: 600; transition: all .2s ease;
}
.thp-chip[aria-pressed="true"] { background: linear-gradient(135deg, var(--thp-primary), var(--thp-primary-dark)); border-color: transparent; color: #fff; }
.thp-picker-panel {
  background: rgba(255,255,255,0.05); border: 1px solid var(--thp-dark-line);
  border-radius: var(--thp-radius); padding: 28px; min-height: 120px;
}
.thp-picker-panel[hidden] { display: none; }
.thp-picker-panel h3 { color: #fff; margin-bottom: 8px; }
.thp-picker-panel p { color: var(--thp-on-dark-muted); font-size: 15px; line-height: 1.55; }

/* ==========================================================================
   CTA band (partial)
   ========================================================================== */
.thp-cta-band { text-align: center; }
.thp-cta-band .thp-h2 { color: #fff; margin: 16px auto 14px; max-width: 640px; }
.thp-cta-band .thp-lead { max-width: 560px; margin: 0 auto 28px; }
.thp-cta-band .thp-form { max-width: 480px; margin: 0 auto; }

/* ==========================================================================
   Footer
   ========================================================================== */
.thp-footer { padding: 64px 0 40px; }
.thp-footer-top { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: 40px; }
.thp-footer-brand img { height: 34px; margin-bottom: 16px; }
.thp-footer-brand p { font-size: 15px; line-height: 1.55; color: var(--thp-on-dark-muted); max-width: 320px; }
.thp-footer h4 { font-family: var(--thp-font-display); font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--thp-on-dark-muted); margin-bottom: 16px; }
.thp-footer ul { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.thp-footer ul a { color: var(--thp-on-dark); font-size: 15px; }
.thp-footer ul a:hover { color: var(--thp-cyan); }
.thp-footer-bottom {
  margin-top: 44px; padding-top: 24px; border-top: 1px solid var(--thp-dark-line);
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.thp-footer-copy { font-size: 13px; color: var(--thp-on-dark-muted); }
.thp-footer-legal { display: flex; gap: 20px; }
.thp-footer-legal a { font-size: 13px; color: var(--thp-on-dark-muted); }
.thp-footer-legal a:hover { color: var(--thp-cyan); }

/* ==========================================================================
   Archive
   ========================================================================== */
.thp-posts { display: flex; flex-direction: column; gap: 16px; }
.thp-post-row {
  display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr) auto; gap: 24px;
  align-items: center; background: #fff; border: 1px solid var(--thp-line);
  border-radius: var(--thp-radius); padding: 16px; box-shadow: var(--thp-shadow);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.thp-post-row:hover { transform: translateY(-2px); box-shadow: var(--thp-shadow-lg); border-color: #cbd5e1; }
.thp-post-row img { width: 100%; height: 120px; object-fit: cover; border-radius: var(--thp-radius-sm); }
.thp-post-row h3 { font-family: var(--thp-font-display); font-size: 20px; font-weight: 700; line-height: 1.25; letter-spacing: -0.3px; margin: 8px 0; color: var(--thp-text); }
.thp-post-row:hover h3 { color: var(--thp-primary-dark); }
.thp-post-row p { font-size: 15px; line-height: 1.5; color: var(--thp-body); }
.thp-post-arrow { color: var(--thp-primary); font-size: 22px; padding-right: 8px; }

/* ==========================================================================
   Post (post.hbs), web version, clean light background
   ========================================================================== */
.thp-article { background: #fff; }
.thp-article-head { max-width: var(--thp-text-wrap); margin: 0 auto; padding: 56px 30px 0; }
.thp-article-meta { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--thp-muted); margin-bottom: 16px; flex-wrap: wrap; }
.thp-article-title { font-family: var(--thp-font-display); font-weight: 700; font-size: clamp(30px, 4.4vw, 46px); line-height: 1.08; letter-spacing: -1px; color: var(--thp-text); }
.thp-article-excerpt { margin-top: 18px; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.5; color: var(--thp-body); }
.thp-article-image { max-width: var(--thp-text-wrap); margin: 30px auto 0; }
.thp-article-image img { width: 100%; max-height: 460px; object-fit: cover; border-radius: var(--thp-radius); }

/* post body */
.gh-content { max-width: var(--thp-text-wrap); margin: 0 auto; padding: 0 30px 72px; }
.gh-content > * { margin-top: 26px; }
.gh-content > *:first-child { margin-top: 40px; }
.gh-content p { font-size: 18px; line-height: 1.7; color: #29303d; }
.gh-content h2 { font-family: var(--thp-font-display); font-size: 28px; font-weight: 700; letter-spacing: -0.5px; line-height: 1.2; color: var(--thp-text); margin-top: 44px; }
.gh-content h3 { font-family: var(--thp-font-display); font-size: 22px; font-weight: 700; letter-spacing: -0.3px; color: var(--thp-text); margin-top: 36px; }
.gh-content a { color: var(--thp-primary); text-decoration: underline; text-underline-offset: 2px; }
.gh-content ul, .gh-content ol { padding-left: 24px; font-size: 18px; line-height: 1.7; color: #29303d; }
.gh-content li + li { margin-top: 8px; }
.gh-content img { border-radius: var(--thp-radius); }
.gh-content blockquote {
  border-left: 4px solid var(--thp-primary); padding: 6px 0 6px 24px;
  font-family: var(--thp-font-display); font-size: 22px; line-height: 1.4; color: var(--thp-text); font-style: normal;
}
.gh-content hr { border: none; height: 1px; background: var(--thp-line); }
.gh-content figure { margin-top: 30px; }
.gh-content figcaption { text-align: center; font-size: 13px; color: var(--thp-muted); margin-top: 10px; }
/* wide + full Ghost cards break out of the text column */
.gh-content .kg-width-wide { width: min(1040px, 92vw); margin-left: 50%; transform: translateX(-50%); }
.gh-content .kg-width-full { width: 100vw; margin-left: 50%; transform: translateX(-50%); }

.thp-article-nav { max-width: var(--thp-text-wrap); margin: 0 auto; padding: 0 30px 72px; }

/* ==========================================================================
   Page banner (simple)
   ========================================================================== */
.thp-page-hero { padding: 72px 0 64px; text-align: center; }
.thp-page-hero .thp-h1 { max-width: 820px; margin: 16px auto 0; }
.thp-page-hero .thp-lead { max-width: 620px; margin: 18px auto 0; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 980px) {
  .thp-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .thp-hero-visual { margin: 0 auto; max-width: 400px; }
  .thp-footer-top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .thp-footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .thp-nav-links, .thp-nav-cta .thp-btn { display: none; }
  .thp-burger { display: flex; }
  .thp-nav-links.thp-open {
    display: flex; position: absolute; top: 72px; left: 0; right: 0;
    flex-direction: column; gap: 0; padding: 12px 32px 24px;
    background: var(--thp-dark); border-bottom: 1px solid var(--thp-dark-line);
  }
  .thp-nav-links.thp-open li { width: 100%; }
  .thp-nav-links.thp-open a { display: block; padding: 14px 0; border-bottom: 1px solid var(--thp-dark-line); }
  .thp-sec { padding: 52px 0; }
  .thp-grid-3, .thp-grid-2, .thp-grid-4 { grid-template-columns: minmax(0, 1fr); }
  .thp-form { flex-direction: column; }
  .thp-form input[type="email"], .thp-form button { width: 100%; }
  .thp-post-row { grid-template-columns: minmax(0, 1fr); }
  .thp-post-row img { height: 180px; }
  .thp-post-arrow { display: none; }
  .thp-footer-top { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .thp-footer-bottom { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
  .thp-wrap { padding: 0 20px; }
  .thp-hero { padding: 56px 0 64px; }
  .gh-content, .thp-article-head, .thp-article-image { padding-left: 20px; padding-right: 20px; }
  .gh-content p, .gh-content ul, .gh-content ol { font-size: 16px; }
  body { font-size: 15px; }
}

/* ---- Reduced motion -------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  html { scroll-behavior: auto; }
}
