﻿/* WozApi marketing (light) theme */

:root{
  --bg: #ffffff;
  --bg-soft: #f7f8fb;
  --text: #0f172a;
  --muted: #475569;

  --card: #ffffff;
  --border: rgba(15, 23, 42, .10);

  --accent: #2563eb;
  --accent2: #7c3aed;

  --font-body: "Manrope", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  --font-head: "Space Grotesk", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;

  --radius-xl: 22px;
  --radius-lg: 18px;
  --radius-md: 14px;

  --shadow-lg: 0 16px 44px rgba(2, 6, 23, .08);
  --shadow: 0 14px 34px rgba(2, 6, 23, .07);
  --shadow-sm: 0 10px 22px rgba(2, 6, 23, .05);
}

html, body{ height: 100%; }

body, body.app-body{
  font-family: var(--font-body);
  color: var(--text);
  background:
      radial-gradient(1200px 600px at 10% 0%, rgba(37,99,235,.10), transparent 55%),
      radial-gradient(900px 500px at 90% 10%, rgba(124,58,237,.10), transparent 60%),
      linear-gradient(180deg, #ffffff 0%, #ffffff 30%, #fbfcfe 100%);
}

body.article-page{
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
}

a{ text-decoration: none; }
.text-muted{ color: var(--muted) !important; }
.link-muted{ color: var(--muted); }
.link-muted:hover{ color: var(--text); }

.container{ max-width: 1120px; }

/* Global rhythm */
h1, h2, h3{
  letter-spacing: -.4px;
  font-family: var(--font-head);
}
p{ margin-bottom: .9rem; }

/* Header / nav */
.app-header{
  position: sticky;
  top: 0;
  z-index: 1030;
  backdrop-filter: blur(10px);
}

.app-nav{
  background: rgba(255,255,255,.85);
  border-bottom: 1px solid rgba(15,23,42,.08);
}

.navbar .nav-link{
  color: rgba(15,23,42,.78);
  font-weight: 600;
}
.navbar .nav-link:hover{ color: rgba(15,23,42,.95); }
.primary-nav .nav-item.dropdown .dropdown-toggle::after{
  margin-left: .35rem;
}
.seo-nav{
  position: absolute;
  width: 1px;
  height: 1px;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  overflow: hidden;
  border: 0;
  padding: 0;
  margin: 0;
  pointer-events: none;
}

.nav-user *{ font-size: .95rem; }

/* Mobile account menu (inside navbar collapse) */
@media (max-width: 991.98px){
  .mobile-account-menu{ margin-top: 6px; }
  .mobile-account-menu .nav-item + .nav-item{ margin-top: 4px; }
  .mobile-account-menu .nav-link{
    padding: 10px 12px;
    border-radius: 10px;
    font-weight: 700;
    color: rgba(15,23,42,.86);
  }
  .mobile-account-menu .nav-link:hover{
    background: rgba(15,23,42,.05);
    color: rgba(15,23,42,.98);
  }
  .mobile-account-menu .nav-link.disabled{
    opacity: 1;
    cursor: default;
    color: var(--muted);
    font-weight: 600;
  }
}

/* Account dropdown */
.account-btn{
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.account-btn:hover{
  background: #f8fafc;
  border-color: rgba(15,23,42,.18);
}
.account-btn:focus{
  outline: none;
  box-shadow: 0 0 0 3px rgba(37,99,235,.20);
  border-color: var(--accent);
}
.account-avatar{
  font-size: 18px;
  line-height: 1;
  display: block;
}
.account-label{ font-weight: 700; }

/* Mobile-first: make account button descriptive and pill-shaped; keep circular icon on >= lg */
@media (max-width: 991.98px){
  .account-btn{
    height: auto;
    width: auto;
    padding: 8px 12px;
    border-radius: 999px;
    gap: 8px;
  }
  .account-avatar{ font-size: 16px; }
}
@media (min-width: 992px){
  .account-label{ display: none !important; }
}
.account-menu{
  --bs-dropdown-min-width: 16rem;
  padding-top: .5rem;
  padding-bottom: .5rem;
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: var(--shadow-sm);
}
/* Keep dropdown in viewport on small screens */
@media (max-width: 575.98px){
  .account-dropdown .dropdown-menu{
    inset: auto 8px auto 8px !important; /* left/right gutters */
    transform: none !important;
    max-width: calc(100vw - 16px);
    width: auto;
  }
}
.account-greeting{
  font-weight: 600;
}
.dropdown-item-text{
  font-size: .95rem;
}

.brand-mark{
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  box-shadow: 0 0 0 6px rgba(37,99,235,.10);
}
.brand-text{ font-weight: 800; letter-spacing: .2px; }
.brand-badge{
  background: rgba(15,23,42,.06);
  color: rgba(15,23,42,.85);
  border: 1px solid rgba(15,23,42,.10);
}

/* Main / footer */
.app-main{ min-height: calc(100vh - 140px); }

.app-footer{
  border-top: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.75);
}
.footer-grid{
  display: grid;
  gap: 20px;
}
@media (min-width: 768px){
  .footer-grid{ grid-template-columns: 2fr 1.5fr 1fr; }
}
.footer-logo{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.footer-title{
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: rgba(15,23,42,.55);
  margin-bottom: 10px;
}
.footer-nav{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
}
@media (max-width: 575.98px){
  .footer-nav{ grid-template-columns: 1fr; }
}
.footer-link{
  color: rgba(15,23,42,.78);
  font-weight: 600;
}
.footer-link:hover{
  color: rgba(15,23,42,.98);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.footer-status{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.footer-legal{
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
}
.footer-bottom{
  border-top: 1px solid rgba(15,23,42,.06);
  margin-top: 18px;
  padding-top: 12px;
}

.status-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #22c55e;
  box-shadow: 0 0 0 6px rgba(34,197,94,.12);
}

/* Sections */
.section{
  scroll-margin-top: 90px;
  position: relative;
  /* Prevent the global page gradient from "leaking" between sections.
     */
  background: #fff;
}
.section-soft{
  background: var(--bg-soft);
}

/* Hero */
.hero{
  position: relative;
  padding-top: 40px;
  padding-bottom: 40px;
}

.hero::before{
  content:"";
  position:absolute;
  /* Avoid negative horizontal insets which cause horizontal scrollbars */
  top:-40px;
  left:0;
  right:0;
  height: 340px;
  background:
      radial-gradient(500px 220px at 15% 35%, rgba(37,99,235,.16), transparent 60%),
      radial-gradient(520px 240px at 70% 20%, rgba(124,58,237,.14), transparent 62%);
  filter: blur(10px);
  pointer-events:none;
  z-index: 0;
}
.hero > .container{ position: relative; z-index: 1; }

.hero-title{
  letter-spacing: -0.9px;
  line-height: 1.05;
}
@media (min-width: 992px){
  .hero-title{ font-size: 3.15rem; }
}
.lead{ max-width: 62ch; }

.accent-text{
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-badges{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.badge-soft{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.70);
  color: rgba(15,23,42,.85);
  font-weight: 700;
  font-size: .85rem;
}
.badge-soft-muted{
  background: rgba(15,23,42,.03);
  color: rgba(15,23,42,.70);
}

.eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(15,23,42,.60);
  margin-bottom: 10px;
}

.section-head{
  max-width: 70ch;
}

.hero-card{
  border-radius: var(--radius-xl);
  padding: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.88));
}

.hero-code-label{
  margin-top: 14px;
  margin-bottom: 6px;
  font-weight: 800;
  font-size: .85rem;
  color: rgba(15,23,42,.75);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.hero-demo{
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Hero bullets */
.hero-points{
  list-style:none;
  padding:0;
  margin: 0;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.hero-points li{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  padding: 10px 12px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.78);
}
.hero-points li strong{ white-space: nowrap; }
.hero-points li::before{
  content:"✓";
  width: 26px;
  height: 26px;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex: 0 0 26px;
  background: rgba(37,99,235,.10);
  border: 1px solid rgba(37,99,235,.18);
  color: rgba(37,99,235,.95);
  font-weight: 900;
  margin-top: 1px;
}

/* Mobile: zet de hero-points compacter onder elkaar (titel boven, subtitel eronder) met het icoon links
   Desktop blijft ongewijzigd (inline). */
@media (max-width: 991.98px){
  .hero-points li{
    display: grid;
    grid-template-columns: 26px 1fr; /* icoon | content */
    grid-auto-flow: row;
    column-gap: 10px;
    row-gap: 2px;
    align-items: start;
  }
  .hero-points li::before{
    grid-column: 1;
    grid-row: 1 / span 2; /* icoon bestrijkt beide regels */
    margin-top: 0; /* netjes centreren aan de bovenkant */
  }
  .hero-points li strong{
    grid-column: 2;
    white-space: normal; /* op mobiel mag de titel afbreken */
    display: block;
    margin: 0; /* reset */
  }
  /* Het resterende tekstgedeelte (na <strong>) wordt als anoniem grid-item automatisch onder de titel geplaatst
     in grid-column: 2, dankzij auto-placement. */
}

/* Cards */
.card-saas{
  background: var(--card);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--radius-lg);
  padding: 18px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow .18s ease, border-color .18s ease;
}
.card-saas:hover{
  box-shadow: var(--shadow);
}
.card-saas-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  padding: 6px 6px 10px 6px;
}

.dot{ width:10px; height:10px; border-radius:999px; display:inline-block; }
.dot-red{ background:#ef4444; }
.dot-yellow{ background:#f59e0b; }
.dot-green{ background:#22c55e; }

.pill{
  display:inline-flex;
  align-items:center;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(15,23,42,.04);
  color: rgba(15,23,42,.80);
  font-weight: 700;
  font-size: .82rem;
}
.pill-ghost{
  background: rgba(255,255,255,.70);
  border-color: rgba(15,23,42,.08);
}

.codebox{
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(15,23,42,.03);
  border-radius: var(--radius-md);
  overflow-x: auto;
  overflow-y: hidden;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
}
.codebox:focus,
.codebox:focus-within{
  outline: 2px solid rgba(37,99,235,.35);
  outline-offset: 2px;
}
pre, code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: .9rem;
}
pre{
  padding: 12px;
  margin: 0;
  white-space: pre;
  word-break: normal;
  overflow-wrap: normal;
  color: rgba(15,23,42,.90);
}
pre code{
  display: block;
  white-space: inherit;
  word-break: normal;
  overflow-wrap: normal;
}
.codebox pre{
  display: inline-block;
  min-width: 100%;
}
@media (max-width: 575.98px){
  pre, code{ font-size: .82rem; }
}
.codebox-response{
  height: 240px;
  max-height: 240px;
  overflow-y: auto;
}
@media (min-width: 992px){
  .codebox-response{
    height: 280px;
    max-height: 280px;
  }
}

/* Try-it UI */
.try-row{
  display:flex;
  gap: 10px;
  align-items:center;
}
.try-input{
  flex: 1 1 auto;
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.92);
  border-radius: 12px;
  padding: 10px 12px;
  font-weight: 600;
  color: rgba(15,23,42,.90);
  outline: none;
}
.try-input:focus{
  border-color: rgba(37,99,235,.35);
  box-shadow: 0 0 0 6px rgba(37,99,235,.12);
}
.btn-copy, .btn-clear{
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.90);
  border-radius: 12px;
  padding: 10px 12px;
  font-weight: 800;
  color: rgba(15,23,42,.85);
}
.btn-copy:hover, .btn-clear:hover{
  background: rgba(15,23,42,.03);
  color: rgba(15,23,42,.95);
}

/* Trust / feature / steps (keep clean, low elevation) */
.trust{
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
@media (min-width: 576px){
  .trust{ grid-template-columns: repeat(3, 1fr); }
}
.trust-item{
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.78);
  border-radius: var(--radius-md);
  padding: 12px;
  box-shadow: none;
}
.trust-kpi{ font-weight: 800; margin-bottom: 2px; }
.trust-item-compact{
  padding: 10px;
}
.trust-item-compact .trust-kpi{
  font-size: .9rem;
}

.feature{
  background: rgba(255,255,255,.80);
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 16px;
  padding: 16px;
  box-shadow: none;
  height: 100%;
}
.feature-title{ font-weight: 800; margin-bottom: 6px; }

.steps{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.steps li{
  display:flex;
  gap: 10px;
  padding: 12px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.78);
}
.step-nr{
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(37,99,235,.10);
  border: 1px solid rgba(37,99,235,.20);
  font-weight: 900;
  color: rgba(37,99,235,.95);
}

/* Buttons */
.btn{
  border-radius: 12px;
  min-height: 44px;
  padding: 10px 14px;
  line-height: 1;
}
.btn-lg{
  min-height: 48px;
  padding: 12px 16px;
}

.btn-primary{
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  border: none;
  font-weight: 800;
  box-shadow: 0 12px 26px rgba(37,99,235,.16);
  transform: translateY(0);
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.btn-primary:hover{
  filter: brightness(1.03);
  box-shadow: 0 18px 40px rgba(37,99,235,.22);
}

.btn-outline-secondary{
  border-color: rgba(15,23,42,.18);
  color: rgba(15,23,42,.85);
  font-weight: 700;
}

/* Links that act like secondary CTAs */
.link-muted.fw-semibold{ display:inline-flex; align-items:center; gap: 6px; }
.link-muted.fw-semibold:hover{ text-decoration: underline; text-underline-offset: 3px; }
.btn-outline-secondary:hover{
  background: rgba(15,23,42,.04);
  border-color: rgba(15,23,42,.22);
  color: rgba(15,23,42,.95);
}
.btn-link-muted{
  border: none;
  background: transparent;
  color: var(--muted);
  font-weight: 700;
  padding: 0;
}
.btn-link-muted:hover{
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Pricing */
.pricing-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 992px){
  .pricing-grid{ grid-template-columns: repeat(2, 1fr); }
  .pricing-kicker{ text-align: right; }
}
.pricing-grid-3{
  grid-template-columns: 1fr;
}
@media (min-width: 768px){
  .pricing-grid-3{ grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px){
  .pricing-grid-3{ grid-template-columns: repeat(3, 1fr); }
}

.pricing-kicker{ max-width: 28ch; }

.plan-tag{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 800;
  font-size: .78rem;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(15,23,42,.03);
  color: rgba(15,23,42,.80);
  white-space: nowrap;
}
.plan-tag-free{
  border-color: rgba(34,197,94,.22);
  background: rgba(34,197,94,.08);
}
.plan-tag-payg{
  border-color: rgba(245,158,11,.28);
  background: rgba(245,158,11,.10);
}
.plan-tag-pack{
  border-color: rgba(37,99,235,.22);
  background: rgba(37,99,235,.08);
}
.plan-tag-featured{
  background: linear-gradient(135deg, rgba(37,99,235,.14), rgba(124,58,237,.12));
  border-color: rgba(37,99,235,.25);
}

.price{
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--radius-lg);
  padding: 18px;
  box-shadow: var(--shadow-sm);
  height: 100%;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.price-featured{
  border-radius: var(--radius-xl);
  border-color: rgba(37,99,235,.22);
  background: linear-gradient(180deg, rgba(37,99,235,.06), rgba(124,58,237,.03));
  box-shadow: var(--shadow);
}
.price .btn[disabled]{
  opacity: .6;
  cursor: not-allowed;
}
.price-simple{
  background: rgba(255,255,255,.92);
}

.price-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 10px;
}
.price-name{ font-weight: 900; font-size: 1.05rem; }
.price-value{
  font-weight: 900;
  font-size: 2rem;
  letter-spacing: -0.4px;
  margin-top: 10px;
}
.price-value-sm{
  font-size: 1.25rem;
  font-weight: 800;
  margin-top: 8px;
}
.price-sub{
  font-size: 1rem;
  font-weight: 700;
  color: var(--muted);
  margin-top: 4px;
  margin-left: 0;
}
.price-per-credit{
  margin-top: 6px;
  font-size: .95rem;
  font-weight: 700;
  color: var(--muted);
}
.price-per-credit strong{
  color: var(--text);
  font-weight: 900;
}

.price-meta{
  margin: 12px 0 16px 0;
  padding-top: 12px;
  border-top: 1px solid rgba(15,23,42,.06);
  display:flex;
  flex-direction: column;
  gap: 8px;
}
.price-meta-row{
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.price-meta-row .k{
  color: var(--muted);
  font-weight: 800;
  font-size: .9rem;
}
.price-meta-row .v{ font-weight: 900; }

.pricing-note{ max-width: 80ch; }

.price-list{
  list-style: none;
  padding: 0;
  margin: 12px 0 16px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.price-list li{
  display: flex;
  gap: 8px;
  align-items: flex-start;
  color: rgba(15,23,42,.86);
  font-weight: 600;
}
.price-list li::before{
  content: "✓";
  color: rgba(37,99,235,.95);
  font-weight: 900;
}

/* Contact form */
.contact-card{
  box-shadow: var(--shadow-sm);
}
.contact-card:hover{
  box-shadow: var(--shadow-sm);
}
.hp-field{
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.contact-form .form-control{
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.92);
  border-radius: 12px;
  padding: 10px 12px;
  font-weight: 600;
  color: rgba(15,23,42,.90);
}
.contact-form .form-control:focus{
  border-color: rgba(37,99,235,.35);
  box-shadow: 0 0 0 6px rgba(37,99,235,.12);
}
.contact-form textarea.form-control{
  min-height: 110px;
}

/* Accordion */
.accordion-item{
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--radius-md) !important;
  overflow: hidden;
  margin-bottom: 10px;
}
.accordion-button{ font-weight: 800; }
.accordion-button:not(.collapsed){
  background: rgba(37,99,235,.08);
  color: rgba(15,23,42,.95);
}

/* CTA */
.cta{
  display:flex;
  flex-direction: column;
  gap: 14px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.88);
  border-radius: var(--radius-lg);
  padding: 18px;
  box-shadow: var(--shadow-sm);
}
@media (min-width: 768px){
  .cta{ flex-direction: row; align-items:center; justify-content:space-between; }
}
.cta-title{
  font-weight: 900;
  font-size: 1.15rem;
}

/* Articles index */
.articles-hero{
  position: relative;
}
.articles-hero-grid{
  display: grid;
  gap: 24px;
  align-items: center;
}
@media (min-width: 992px){
  .articles-hero-grid{
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  }
}
.articles-hero-card{
  border-radius: var(--radius-xl);
  border: 1px solid rgba(15, 23, 42, .10);
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
  padding: 18px;
  box-shadow: var(--shadow-sm);
}
.articles-kpis{
  display: grid;
  gap: 12px;
}
@media (min-width: 576px){
  .articles-kpis{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.articles-kpi{
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, .08);
  background: rgba(15, 23, 42, .03);
  padding: 12px;
}
.kpi-label{
  font-size: .7rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(15, 23, 42, .55);
  font-weight: 700;
}
.kpi-value{
  font-weight: 800;
  margin-top: 4px;
}
.articles-hero-note{
  margin-top: 12px;
}
.articles-empty{
  border-radius: var(--radius-lg);
  border: 1px dashed rgba(15, 23, 42, .16);
  padding: 20px;
  background: rgba(255,255,255,.92);
}

.articles-spotlight{
  border-radius: var(--radius-xl);
  border: 1px solid rgba(15, 23, 42, .10);
  background: #fff;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.article-spotlight-link{
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  color: inherit;
  text-decoration: none;
}
@media (max-width: 991px){
  .article-spotlight-link{
    grid-template-columns: 1fr;
  }
}
.article-spotlight-media{
  position: relative;
  min-height: 240px;
  background: #fff;
  border-right: 1px solid rgba(15, 23, 42, .08);
}
@media (max-width: 991px){
  .article-spotlight-media{
    border-right: none;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
  }
}
.article-spotlight-media img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.article-spotlight-body{
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.article-spotlight-meta{
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(15,23,42,.60);
  font-weight: 700;
}
.article-spotlight-title{
  font-weight: 900;
  font-size: 1.5rem;
  line-height: 1.2;
}
.article-spotlight-excerpt{
  color: var(--muted);
  font-size: 1rem;
}
.article-spotlight-cta{
  margin-top: auto;
  font-weight: 800;
  color: var(--accent);
}
.article-spotlight-admin{
  border-top: 1px solid rgba(15, 23, 42, .08);
  padding: 12px 16px;
}

.articles-grid.articles-grid-wide{
  grid-template-columns: 1fr;
}
@media (min-width: 768px){
  .articles-grid.articles-grid-wide{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1200px){
  .articles-grid.articles-grid-wide{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Homepage articles */
.articles-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px){
  .articles-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.article-card{
  background: var(--card);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  height: 100%;
}
.article-card-link{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  color: inherit;
  text-decoration: none;
  height: 100%;
}
.article-card-link:hover{
  color: inherit;
}
.article-card-media{
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
}
.article-card-media img{
  display: block;
  width: 100%;
  height: 160px;
  object-fit: cover;
}
.article-card-meta{
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(15,23,42,.60);
  font-weight: 700;
}
.article-card-title{
  font-weight: 800;
  font-size: 1.1rem;
  line-height: 1.25;
}
.article-card-excerpt{
  color: var(--muted);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.article-card-cta{
  margin-top: auto;
  font-weight: 800;
  color: var(--accent);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.article-card-admin{
  border-top: 1px solid rgba(15,23,42,.08);
  padding: 10px 16px 12px;
}
.article-edit-link{
  font-size: .85rem;
  font-weight: 700;
  color: rgba(15,23,42,.7);
  text-decoration: none;
}
.article-edit-link:hover{
  color: rgba(15,23,42,.95);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.article-card:hover{
  box-shadow: var(--shadow);
  border-color: rgba(15,23,42,.18);
}

@media (prefers-reduced-motion: reduce){
  *{ scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}


/* Polish: hero and FAQ steps */
.hero .container{ max-width: 1200px; }
.hero-punct{ margin-left: 0; margin-right: .35rem; }
.faq-steps{ margin: 0; padding-left: 1.25rem; }
.faq-steps li{ margin: .35rem 0; }

/* Article styling */
.article-post{
  padding: 2.5rem 0 3.5rem;
}

.article-hero{
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: 2.25rem;
  padding: 2.4rem;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(15, 23, 42, .08);
  background:
    radial-gradient(120% 90% at 0% 0%, hsla(var(--article-accent), .14), transparent 55%),
    radial-gradient(110% 80% at 100% 0%, hsla(var(--article-accent-2), .16), transparent 60%),
    #f8f9ff;
  box-shadow: var(--shadow-sm);
}

.article-eyebrow{
  font-size: .8rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: hsl(var(--article-accent));
  font-weight: 700;
  margin-bottom: .6rem;
}

.article-title{
  font-family: var(--font-head);
  font-size: clamp(2rem, 3.2vw, 3rem);
  line-height: 1.1;
  margin-bottom: .8rem;
}

.article-meta{
  font-size: .95rem;
  margin-bottom: 1.25rem;
}

.article-lead{
  font-size: 1.1rem;
  line-height: 1.7;
  color: #1f2a37;
  margin: 0;
}

.article-hero-visual{
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .08);
  box-shadow: var(--shadow-sm);
  display: flex;
  align-items: center;
  justify-content: center;
}

.article-hero-visual img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.article-content{
  max-width: 820px;
  margin: 2.8rem auto 0;
  line-height: 1.85;
  font-size: 1.02rem;
  color: #0f172a;
}

.article-content h2{
  font-family: var(--font-head);
  margin-top: 2.6rem;
  margin-bottom: .9rem;
  font-size: clamp(1.4rem, 2.1vw, 1.7rem);
  position: relative;
  padding-left: .9rem;
}

.article-content h2::before{
  content: "";
  position: absolute;
  left: 0;
  top: .35rem;
  width: .25rem;
  height: 1.4rem;
  border-radius: 999px;
  background: linear-gradient(180deg, hsl(var(--article-accent)), hsl(var(--article-accent-2)));
}

.article-content h3{
  font-family: var(--font-head);
  margin-top: 2rem;
  margin-bottom: .6rem;
  font-size: 1.15rem;
}

.article-content p{
  margin-bottom: 1.05rem;
}

.article-content ul,
.article-content ol{
  margin: .5rem 0 1.4rem 1.2rem;
  padding: 0;
}

.article-content li{
  margin-bottom: .5rem;
}

.article-content a{
  color: hsl(var(--article-accent));
  text-decoration: underline;
  text-underline-offset: 3px;
}

.article-content blockquote{
  border-left: 4px solid hsl(var(--article-accent));
  background: #f8fbff;
  padding: 1rem 1.2rem;
  border-radius: 12px;
  color: #1f2a37;
  margin: 1.6rem 0;
}

.article-tldr{
  border: 1px solid rgba(15, 23, 42, .08);
  background: linear-gradient(120deg, rgba(37, 99, 235, .08), rgba(124, 58, 237, .08));
  border-radius: 16px;
  padding: 1.2rem 1.4rem;
  margin: 1.6rem 0 2rem;
}

.article-tldr strong{
  display: block;
  font-size: 1rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: .75rem;
  color: #1f2a37;
}

.article-figure{
  margin: 2rem 0;
  padding: .75rem;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .08);
  box-shadow: var(--shadow-sm);
}

.article-figure img{
  width: 100%;
  border-radius: 12px;
}

.article-figure figcaption{
  font-size: .85rem;
  color: #64748b;
  margin-top: .6rem;
}

.article-callout{
  border-radius: 16px;
  padding: 1.1rem 1.3rem;
  background: rgba(15, 23, 42, .04);
  border: 1px solid rgba(15, 23, 42, .08);
  margin: 1.6rem 0;
}

.article-sources{
  list-style: none;
  padding: 0;
  margin: 1.2rem 0;
}

.article-sources li{
  padding: .5rem .75rem;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, .08);
  margin-bottom: .6rem;
}

@media (max-width: 991px){
  .article-hero{
    grid-template-columns: 1fr;
  }
  .article-hero-visual{
    min-height: 220px;
  }
  .article-content{
    margin-top: 2.2rem;
  }
}

@media (max-width: 767px){
  body.article-page{
    background: #ffffff;
  }
  .article-post{
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .article-hero{
    padding: 1.6rem;
    gap: 1.5rem;
    background: #f8f9ff;
  }
}

/* Auth pages */
.auth-section{
  min-height: calc(100vh - 220px);
  display: flex;
  align-items: center;
}
.auth-grid{
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
}
@media (min-width: 992px){
  .auth-grid{
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 24px;
  }
}
.auth-card{
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-sm);
  padding: 22px;
}
.auth-form .form-control{
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.92);
  border-radius: 12px;
  padding: 10px 12px;
  font-weight: 600;
  color: rgba(15,23,42,.90);
}
.auth-form .form-control:focus{
  border-color: rgba(37,99,235,.35);
  box-shadow: 0 0 0 6px rgba(37,99,235,.12);
}
.auth-footer{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.auth-side{
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--radius-lg);
  padding: 22px;
  background:
    radial-gradient(110% 80% at 0% 0%, rgba(37,99,235,.12), transparent 65%),
    radial-gradient(90% 70% at 100% 0%, rgba(124,58,237,.10), transparent 70%),
    rgba(255,255,255,.86);
}
.auth-side-kicker{
  font-weight: 800;
  color: rgba(15,23,42,.86);
  margin-bottom: 12px;
}
.auth-points{
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 8px;
  color: rgba(15,23,42,.86);
}

/* Home articles teaser */
.home-articles-teaser{
  border: 1px solid rgba(15, 23, 42, .08);
  background: rgba(255, 255, 255, .92);
  border-radius: var(--radius-xl);
  padding: 1.25rem;
}
@media (min-width: 992px){
  .home-articles-teaser{
    padding: 1.75rem;
  }
}
.home-articles-teaser .home-articles-copy{
  max-width: 420px;
}
.home-articles-teaser .home-article-card{
  flex: 1 1 0;
  min-width: 260px;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(15, 23, 42, .08);
  background: #fff;
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease;
  display: block;
  text-decoration: none;
  color: inherit;
}
.home-articles-teaser .home-article-card:hover,
.home-articles-teaser .home-article-card:focus-visible{
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}
.home-articles-teaser .home-article-card-meta{
  font-size: .75rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(15, 23, 42, .55);
}
.home-articles-teaser .home-article-card-title{
  font-weight: 700;
  margin-top: .6rem;
  margin-bottom: .4rem;
}
.home-articles-teaser .home-article-card-excerpt{
  color: rgba(15, 23, 42, .7);
  margin-bottom: .8rem;
}
.home-articles-teaser .home-article-card-cta{
  font-weight: 600;
  color: var(--accent);
}
