/* Blog article shared styles — DARK theme (matches main.css site-wide dark palette).
   Articles previously forced a light theme via `body:has(.article-hero)`; that has been removed.
   All article components now inherit --c-bg / --c-text / --c-surface-card from main.css and
   we only override per-element styles where hardcoded light colours used to live. */

/* ============================================================
   Article hero & body
   ============================================================ */
.article-hero{padding:64px 0 24px;background:transparent;color:var(--c-text)}
.article-hero h1{font-family:var(--ff-display);font-weight:400;font-variation-settings:"opsz" 144;font-size:clamp(32px,4.2vw,48px);line-height:1.1;margin:8px 0 16px;max-width:880px;color:#fff;letter-spacing:-0.025em}
.article-hero__lead{font-size:18px;line-height:1.6;color:var(--c-text-muted);max-width:760px;margin:0 0 18px}

.article-wrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:48px;align-items:start;max-width:1180px;margin:0 auto;padding:0 24px}
@media (max-width:980px){.article-wrap{grid-template-columns:1fr;gap:24px}}

.article-body{min-width:0;font-size:17px;line-height:1.72;color:var(--c-text)}
.article-body h2{font-size:30px;line-height:1.25;margin:48px 0 16px;color:#fff;scroll-margin-top:24px;font-weight:800}
.article-body h3{font-size:21px;line-height:1.3;margin:32px 0 12px;color:#fff;scroll-margin-top:24px;font-weight:800}
.article-body p{margin:0 0 18px;color:var(--c-text)}
.article-body ul,.article-body ol{margin:0 0 18px;padding-left:24px}
.article-body li{margin-bottom:8px;color:var(--c-text)}
.article-body strong{color:#fff}
.article-body em{color:var(--c-text)}
.article-body table{margin:24px 0;display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse}
.article-body table th{background:var(--c-surface-card-2);color:#fff;text-align:left;padding:10px 14px;border-bottom:1px solid var(--c-border-strong)}
.article-body table td{color:var(--c-text);padding:10px 14px;border-bottom:1px solid var(--c-border)}
.article-body table tr{background:var(--c-surface-card)}
.article-body code{overflow-wrap:anywhere;word-break:break-word;background:rgba(255,255,255,0.08);color:#FFD37A;padding:2px 6px;border-radius:4px;font-size:0.92em}
.article-body pre{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--c-surface-card-2);color:var(--c-text);padding:16px 18px;border-radius:10px;border:1px solid var(--c-border)}
.article-body pre code{overflow-wrap:normal;word-break:normal;white-space:pre;background:transparent;color:inherit;padding:0}
.article-body a:not(.btn){color:#61dafb;text-decoration:underline;text-underline-offset:3px}
.article-body a:not(.btn):hover{color:#9be7ff}

/* ============================================================
   Breadcrumbs (dark theme — readable on --c-bg)
   ============================================================ */
.breadcrumbs,.breadcrumbs a,.breadcrumbs ol li{color:var(--c-text-muted)}
.breadcrumbs [aria-current="page"]{color:#fff}
.breadcrumbs a:hover{color:#61dafb}
.breadcrumbs li+li::before{color:rgba(255,255,255,0.3)}

/* ============================================================
   Sticky CTA — keep yellow (brand) for max contrast on dark
   ============================================================ */
.sticky-cta{background:var(--c-brand);color:#0B1020}

/* ============================================================
   Article meta — date + author + reading time row
   ============================================================ */
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin:24px 0 18px;font-size:14px;color:var(--c-text-muted)}
.article-meta strong{color:#fff}
.article-meta__sep{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,0.3);display:inline-block}
.article-meta time{color:var(--c-text);font-weight:600}

/* ============================================================
   Author block
   ============================================================ */
.author-card{display:flex;align-items:center;gap:14px;padding:18px;background:var(--c-surface-card);border-radius:14px;margin:24px 0 36px;border:1px solid var(--c-border);color:var(--c-text)}
.author-card__avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0;border:3px solid var(--c-surface-card-2);box-shadow:0 4px 12px rgba(0,0,0,0.4)}
.author-card__info{display:flex;flex-direction:column;gap:2px;min-width:0}
.author-card__name{font-weight:800;color:#fff;font-size:15px}
.author-card__role{font-size:13px;color:var(--c-text-muted)}

/* ============================================================
   Table of contents
   ============================================================ */
.article-toc{background:var(--c-surface-card);border:1px solid var(--c-border);border-radius:14px;padding:22px 24px;margin:0 0 32px;color:var(--c-text)}
.article-toc__title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-text-muted);margin:0 0 14px}
.article-toc__title::before{content:"";width:18px;height:2px;background:#61dafb}
.article-toc ol{margin:0;padding-left:22px;counter-reset:toc-c}
.article-toc li{margin:6px 0;list-style:none;counter-increment:toc-c;position:relative}
.article-toc li::before{content:counter(toc-c,decimal-leading-zero);position:absolute;left:-28px;font-size:12px;font-weight:800;color:rgba(255,255,255,0.35);top:3px}
.article-toc a{color:var(--c-text);text-decoration:none;font-weight:600;font-size:15px;line-height:1.5}
.article-toc a:hover{color:#61dafb}

/* ============================================================
   Sticky aside
   ============================================================ */
.article-aside{position:sticky;top:24px;display:flex;flex-direction:column;gap:18px}
@media (max-width:980px){.article-aside{position:static}}
.aside-card{background:var(--c-surface-card);border:1px solid var(--c-border);border-radius:14px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,0.25);color:var(--c-text)}
.aside-card__title{font-size:13px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--c-text-muted);margin:0 0 10px}
.aside-card h3{margin:0 0 6px;font-size:18px;color:#fff}
.aside-card p{margin:0 0 14px;font-size:14px;color:var(--c-text-muted);line-height:1.55}
.aside-card a{color:#61dafb}
.aside-card a.btn{color:#0B1020}

/* ============================================================
   In-article CTA — dark gradient with brand-yellow accent
   ============================================================ */
.article-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#131A33 0%,#2b1055 100%);color:#fff;padding:24px 28px;border-radius:18px;margin:32px 0;box-shadow:0 14px 40px rgba(0,0,0,0.45);border:1px solid var(--c-border-strong)}
.article-cta,.article-cta p,.article-cta strong,.article-cta em{color:#fff}
.article-cta__copy{flex:1;min-width:240px}
.article-cta__title{font-size:20px;font-weight:800;margin:0 0 4px;color:#fff}
.article-cta__sub{font-size:14px;color:rgba(255,255,255,0.82);margin:0}
.article-cta .btn{white-space:nowrap;line-height:1;align-self:center}
.article-cta .btn::before,.article-cta .btn::after{flex-shrink:0}

/* Buttons inside articles — keep main.css gradient text */
.article-body .btn,
.article-body .btn--primary,
.article-aside .btn,
.article-aside .btn--primary,
.contact-form .btn,
.contact-form .btn--primary{color:#0B1020}

/* ============================================================
   In-article figure
   ============================================================ */
.article-figure{margin:32px 0}
.article-figure img{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,0.5)}
.article-figure figcaption{margin-top:10px;font-size:13px;color:var(--c-text-muted);text-align:center;font-style:italic}

/* ============================================================
   Callout / key takeaway
   ============================================================ */
.callout{background:linear-gradient(135deg,rgba(97,218,251,0.10) 0%,rgba(255,126,95,0.10) 100%);border-left:4px solid #61dafb;padding:18px 22px;border-radius:0 12px 12px 0;margin:24px 0;color:var(--c-text)}
.callout p{margin:0;color:var(--c-text)}
.callout__label{display:inline-block;font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:#61dafb;margin-bottom:6px}

/* ============================================================
   Prev / next navigation with thumbnail previews
   ============================================================ */
.prev-next{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:48px 0 24px}
@media (max-width:680px){.prev-next{grid-template-columns:1fr}}
.prev-next a{display:grid;grid-template-columns:112px 1fr;gap:16px;padding:14px;border:1px solid var(--c-border);border-radius:14px;text-decoration:none;color:var(--c-text);background:var(--c-surface-card);transition:all .15s;align-items:center}
.prev-next a:hover{border-color:#61dafb;transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,0.5)}
.prev-next__thumb{width:112px;height:84px;border-radius:10px;overflow:hidden;background:#06091A;flex-shrink:0}
.prev-next__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.prev-next__copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.prev-next__label{font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--c-text-muted)}
.prev-next__title{font-size:15px;font-weight:800;color:#fff;line-height:1.35}
.prev-next a.next{grid-template-columns:1fr 112px}
.prev-next a.next .prev-next__thumb{order:2}
.prev-next a.next .prev-next__copy{order:1;text-align:right;align-items:flex-end}
@media (max-width:480px){.prev-next a,.prev-next a.next{grid-template-columns:88px 1fr}.prev-next__thumb{width:88px;height:66px}.prev-next a.next .prev-next__thumb{order:2}}

/* ============================================================
   Article tags
   ============================================================ */
.article-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.article-tags span{display:inline-block;padding:5px 12px;border-radius:999px;background:rgba(97,218,251,0.14);color:#61dafb;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:0.6px}

/* ============================================================
   Contact form — dark
   ============================================================ */
.contact-section{background:linear-gradient(135deg,var(--c-surface-card) 0%,var(--c-surface-card-2) 100%);border-radius:24px;padding:48px;margin:56px 0 24px;border:1px solid var(--c-border);color:var(--c-text)}
@media (max-width:680px){.contact-section{padding:28px 22px}}
.contact-section__title{font-size:28px;line-height:1.2;margin:0 0 8px;color:#fff;font-weight:800}
.contact-section__lead{font-size:16px;color:var(--c-text-muted);margin:0 0 28px;line-height:1.6}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-form .field-full{grid-column:1/-1}
@media (max-width:680px){.contact-form{grid-template-columns:1fr}.contact-form .field-full{grid-column:auto}}
.contact-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--c-text-muted)}
.contact-form input,.contact-form textarea,.contact-form select{padding:13px 16px;border:2px solid var(--c-border-strong);border-radius:10px;font-size:15px;font-family:inherit;background:rgba(255,255,255,0.04);outline:none;transition:border-color .15s,box-shadow .15s;color:#fff}
.contact-form textarea{resize:vertical;min-height:120px;line-height:1.55}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:#61dafb;box-shadow:0 0 0 4px rgba(97,218,251,0.18);background:rgba(255,255,255,0.06)}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(255,255,255,0.35);opacity:1}
.contact-form select option{color:#fff;background:#131A33}
.contact-form__actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px;justify-content:space-between;margin-top:8px}
.contact-form__consent{font-size:12px;color:var(--c-text-muted);line-height:1.5;max-width:380px}
.contact-form__consent a{color:#61dafb}

/* Autofill — force dark autofill colours so Chrome's blue overlay doesn't break the dark theme */
.contact-form input:-webkit-autofill,
.contact-form textarea:-webkit-autofill,
.contact-form select:-webkit-autofill{
  -webkit-text-fill-color:#fff;
  -webkit-box-shadow:0 0 0 1000px #131A33 inset;
  caret-color:#fff;
  transition:background-color 9999s ease-in-out 0s;
}

/* Focus-visible ring inside the form */
.contact-form input:focus-visible,
.contact-form textarea:focus-visible,
.contact-form select:focus-visible{
  outline:none;
  border-color:#61dafb;
  box-shadow:0 0 0 4px rgba(97,218,251,0.22);
}
