/* =========================================================
   Blog / Kontakt — styl dopasowany do generatorfakturonline.pl
   ========================================================= */
:root{
  --primary:#1a56db; --primary-dark:#1042b0; --primary-light:#e8effc;
  --primary-glow:rgba(26,86,219,.15);
  --accent:#0d9488;
  --danger:#dc2626; --success:#059669;
  --bg:#f0f2f7; --bg-card:#ffffff; --bg-warm:#fafbff;
  --text:#1e293b; --text-secondary:#64748b; --text-muted:#94a3b8;
  --border:#e2e8f0; --border-strong:#cbd5e1;
  --radius:16px; --radius-sm:10px;
  --shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
  --shadow-lg:0 12px 40px rgba(26,86,219,.14);
  --wrap:1140px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:'DM Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Outfit','DM Sans',sans-serif; line-height:1.2; color:#0f172a; margin:0 0 .5em}
a{color:var(--primary); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%; height:auto; display:block}

.gfo-wrap{max-width:var(--wrap); margin:0 auto; padding:0 20px}

/* ---------- MENU GÓRNE ---------- */
.gfo-topnav{position:sticky; top:0; z-index:1000; background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(12px); border-bottom:1px solid var(--border);
  box-shadow:0 1px 0 rgba(15,23,42,.02)}
.gfo-topnav-inner{max-width:var(--wrap); margin:0 auto; padding:0 20px;
  display:flex; align-items:center; gap:16px; height:62px}
.gfo-brand{display:flex; align-items:center; gap:9px; font-family:'Outfit',sans-serif;
  font-weight:800; font-size:1.12rem; color:#0f172a; text-decoration:none}
.gfo-brand:hover{text-decoration:none}
.gfo-brand svg{width:26px; height:26px; color:var(--primary)}
.gfo-menu{list-style:none; display:flex; align-items:center; gap:4px; margin:0 0 0 auto; padding:0}
.gfo-menu a{display:block; padding:9px 14px; border-radius:9px; color:var(--text-secondary);
  font-weight:600; font-size:.94rem; text-decoration:none; transition:.15s}
.gfo-menu a:hover{background:var(--primary-light); color:var(--primary-dark)}
.gfo-menu a.active{background:var(--primary); color:#fff}
.gfo-burger{display:none; margin-left:auto; width:42px; height:42px; border:1px solid var(--border);
  background:#fff; border-radius:10px; cursor:pointer; padding:11px 10px; flex-direction:column; gap:4px}
.gfo-burger span{display:block; height:2px; background:#0f172a; border-radius:2px; transition:.2s}
@media(max-width:860px){
  .gfo-burger{display:flex}
  .gfo-menu{position:absolute; left:0; right:0; top:62px; flex-direction:column; gap:2px;
    background:#fff; border-bottom:1px solid var(--border); padding:10px 16px 16px;
    box-shadow:var(--shadow); display:none}
  .gfo-topnav.open .gfo-menu{display:flex}
  .gfo-menu a{padding:12px 14px}
}

/* ---------- HERO / NAGŁÓWKI ---------- */
.gfo-page-hero{background:linear-gradient(135deg,#1a56db,#1042b0); color:#fff; padding:44px 0 40px; margin-bottom:28px}
.gfo-page-hero h1{color:#fff; font-size:2.15rem; margin:0}
.gfo-hero-sub{margin:.5rem 0 0; color:#cfe0ff; font-size:1.06rem; max-width:640px}

/* ---------- LAYOUT ---------- */
.gfo-layout{display:grid; grid-template-columns:1fr 320px; gap:28px; align-items:start; padding-bottom:48px}
.gfo-main{min-width:0}
@media(max-width:960px){.gfo-layout{grid-template-columns:1fr}}

/* ---------- KARTY ---------- */
.gfo-card{background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:24px; margin-bottom:22px}
.gfo-card h3{font-size:1.08rem; display:flex; align-items:center; gap:8px}

/* ---------- SIATKA WPISÓW ---------- */
.gfo-blog-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px}
@media(max-width:640px){.gfo-blog-grid{grid-template-columns:1fr}}
.gfo-post-card{background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; transition:.18s}
.gfo-post-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg); border-color:var(--border-strong)}
.gfo-post-thumb{position:relative; display:block; aspect-ratio:16/9; background:var(--primary-light); overflow:hidden}
.gfo-post-thumb img{width:100%; height:100%; object-fit:cover}
.gfo-post-thumb-ph{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#9db8ee}
.gfo-post-thumb-ph svg{width:46px; height:46px}
.gfo-badge-spons{position:absolute; top:10px; left:10px; background:rgba(15,23,42,.82); color:#fff;
  font-size:.72rem; font-weight:600; padding:4px 9px; border-radius:999px}
.gfo-post-body{padding:18px 18px 20px; display:flex; flex-direction:column; gap:8px; flex:1}
.gfo-post-body h2{font-size:1.18rem; margin:0}
.gfo-post-body h2 a{color:#0f172a}
.gfo-post-body h2 a:hover{color:var(--primary); text-decoration:none}
.gfo-post-body p{margin:0; color:var(--text-secondary); font-size:.95rem}
.gfo-post-meta{display:flex; flex-wrap:wrap; gap:14px; color:var(--text-muted); font-size:.82rem; align-items:center}
.gfo-post-meta span{display:inline-flex; align-items:center; gap:5px}
.gfo-readmore{margin-top:auto; font-weight:600; font-size:.9rem; display:inline-flex; align-items:center; gap:4px}
.gfo-ic{width:16px; height:16px; flex:0 0 auto; vertical-align:-3px}

/* ---------- POJEDYNCZY WPIS ---------- */
.gfo-crumbs{padding:18px 0 0; color:var(--text-muted); font-size:.86rem; display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.gfo-crumbs a{color:var(--text-secondary)}
.gfo-post-single{padding:30px}
.gfo-post-title{font-size:2rem; margin-bottom:.35em}
.gfo-post-single .gfo-post-meta{margin-bottom:16px; font-size:.88rem}
.gfo-post-lead{font-size:1.15rem; color:#334155; font-weight:500; margin:0 0 18px}
.gfo-post-cover{margin:0 0 22px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--border)}
.gfo-disclose{display:inline-flex; align-items:center; gap:8px; background:#fffbeb; border:1px solid #fde68a;
  color:#92400e; padding:8px 14px; border-radius:999px; font-size:.86rem; margin-bottom:16px}
.gfo-post-sponsor{margin-top:26px; padding:20px; background:var(--bg-warm); border:1px solid var(--border);
  border-radius:var(--radius); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap}
.gfo-back{margin-top:26px}
.gfo-back a{display:inline-flex; align-items:center; gap:6px; font-weight:600}

/* ---------- POWIĄZANE ---------- */
.gfo-related h2{display:flex; align-items:center; gap:8px; font-size:1.25rem; margin-bottom:18px}
.gfo-rel-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
@media(max-width:760px){.gfo-rel-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.gfo-rel-grid{grid-template-columns:1fr}}
.gfo-rel{display:flex; flex-direction:column; border:1px solid var(--border); border-radius:var(--radius-sm);
  overflow:hidden; background:#fff; transition:.15s}
.gfo-rel:hover{border-color:var(--primary); text-decoration:none; transform:translateY(-2px)}
.gfo-rel .t{aspect-ratio:16/9; background:var(--primary-light); display:block; overflow:hidden}
.gfo-rel .t img{width:100%; height:100%; object-fit:cover}
.gfo-rel .b{padding:12px 14px}
.gfo-rel h4{font-size:.98rem; margin:0 0 4px; color:#0f172a}
.gfo-rel p{margin:0; font-size:.83rem; color:var(--text-secondary)}

/* ---------- SIDEBAR ---------- */
.gfo-sidebar{position:sticky; top:82px; display:flex; flex-direction:column}
.gfo-cta-card{background:linear-gradient(135deg,#1a56db,#1042b0); color:#fff; border:none}
.gfo-cta-card h3{color:#fff}
.gfo-cta-card p{color:#dbe6ff; font-size:.92rem; margin:.4em 0 1em}
.gfo-recent{list-style:none; margin:0; padding:0}
.gfo-recent li{border-top:1px solid var(--border)}
.gfo-recent li:first-child{border-top:none}
.gfo-recent a{display:flex; flex-direction:column; gap:2px; padding:11px 0}
.gfo-recent a:hover{text-decoration:none}
.gfo-recent .t{color:#0f172a; font-weight:600; font-size:.92rem; line-height:1.35}
.gfo-recent a:hover .t{color:var(--primary)}
.gfo-recent .d{color:var(--text-muted); font-size:.78rem}

/* ---------- PAGINACJA ---------- */
.gfo-pager{display:flex; flex-wrap:wrap; gap:6px; margin:28px 0 0; align-items:center}
.gfo-pg{min-width:40px; height:40px; padding:0 12px; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--border); border-radius:10px; background:#fff; color:var(--text-secondary); font-weight:600; font-size:.9rem}
.gfo-pg:hover{border-color:var(--primary); color:var(--primary); text-decoration:none}
.gfo-pg.active{background:var(--primary); border-color:var(--primary); color:#fff}
.gfo-pg-dots{color:var(--text-muted); padding:0 4px}

/* ---------- PRZYCISKI ---------- */
.gfo-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer;
  padding:11px 20px; border-radius:11px; font-weight:600; font-size:.95rem; border:1px solid transparent; transition:.15s}
.gfo-btn:hover{text-decoration:none; transform:translateY(-1px)}
.gfo-btn-primary{background:var(--primary); color:#fff}
.gfo-btn-primary:hover{background:var(--primary-dark); color:#fff}
.gfo-cta-card .gfo-btn-primary{background:#fff; color:var(--primary-dark)}
.gfo-btn-ghost{background:#fff; border-color:var(--border); color:var(--text)}
.gfo-btn-ghost:hover{border-color:var(--primary); color:var(--primary)}
.gfo-btn-lg{padding:14px 26px; font-size:1rem}

/* ---------- TREŚĆ (rich) ---------- */
.rich{color:#334155; line-height:1.75}
.rich h2{font-size:1.5rem; margin:1.4em 0 .5em}
.rich h3{font-size:1.22rem; margin:1.3em 0 .45em}
.rich h4{font-size:1.05rem; margin:1.2em 0 .4em}
.rich p{margin:0 0 1em}
.rich ul,.rich ol{margin:0 0 1em; padding-left:1.4em}
.rich li{margin:.3em 0}
.rich a{color:var(--primary); text-decoration:underline}
.rich blockquote{margin:1.2em 0; padding:12px 20px; border-left:4px solid var(--primary);
  background:var(--bg-warm); border-radius:0 10px 10px 0; color:#475569}
.rich table{width:100%; border-collapse:collapse; margin:1.2em 0; font-size:.94rem}
.rich th,.rich td{border:1px solid var(--border); padding:9px 12px; text-align:left}
.rich th{background:var(--primary-light)}
.gfo-seo-text{margin-top:28px; color:var(--text-secondary); font-size:.95rem}
.gfo-blog-intro{font-size:1.02rem}

/* ---------- FORMULARZE / KONTAKT ---------- */
.gfo-form .gfo-field{margin-bottom:16px}
.gfo-form label{display:block; font-weight:600; margin-bottom:6px; color:#334155; font-size:.92rem}
.gfo-form input,.gfo-form textarea{width:100%; padding:12px 14px; border:1px solid var(--border-strong);
  border-radius:11px; font:inherit; background:#fff; color:var(--text); transition:.15s}
.gfo-form input:focus,.gfo-form textarea:focus{outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-glow)}
.gfo-form textarea{resize:vertical; min-height:140px}
.gfo-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.gfo-consent{margin:4px 0 6px}
.gfo-check{display:flex; align-items:flex-start; gap:10px; font-weight:400; color:var(--text-secondary); font-size:.88rem; line-height:1.5; cursor:pointer}
.gfo-check input{margin-top:3px; width:18px; height:18px; flex:0 0 auto; accent-color:var(--primary)}
.gfo-alert{padding:13px 16px; border-radius:11px; margin-bottom:18px; font-size:.94rem}
.gfo-alert.ok{background:#ecfdf5; border:1px solid #a7f3d0; color:#065f46}
.gfo-alert.err{background:#fef2f2; border:1px solid #fecaca; color:#991b1b}
.gfo-contact-grid{display:grid; grid-template-columns:1fr 320px; gap:28px; align-items:start}
@media(max-width:860px){.gfo-contact-grid{grid-template-columns:1fr}}

/* ---------- STAN PUSTY / BŁĄD ---------- */
.gfo-empty{padding:40px; text-align:center; color:var(--text-muted); background:#fff;
  border:1px dashed var(--border-strong); border-radius:var(--radius)}
.gfo-error{padding:60px 20px; display:flex; justify-content:center}
.gfo-error-card{text-align:center; max-width:520px}
.gfo-error-code{font-family:'Outfit',sans-serif; font-weight:800; font-size:4rem; color:var(--primary); line-height:1}
.gfo-error-actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:18px}

/* ---------- STOPKA ---------- */
.gfo-footer{background:#0f172a; color:#cbd5e1; margin-top:40px; padding:40px 0 34px}
.gfo-footer-inner{max-width:var(--wrap); margin:0 auto; padding:0 20px; text-align:center}
.gfo-footer-menu{display:flex; flex-wrap:wrap; gap:8px 22px; justify-content:center; margin-bottom:18px}
.gfo-footer-menu a{color:#93c5fd; font-size:.92rem}
.gfo-footer-about{color:#94a3b8; font-size:.9rem; line-height:1.5}
.gfo-footer p{margin:.25em 0; font-size:.9rem}
.gfo-footer strong{color:#e2e8f0}
.gfo-footer-author a{color:#93c5fd}
