
.ibf-page {
  --ibf-purple:       #7c3aed;
  --ibf-purple-dark:  #6d28d9;
  --ibf-purple-light: #a78bfa;
  --ibf-ink:          #101424;
  --ibf-line:         #e9e8ef;
  --ibf-wa:           #25d366;
  --ibf-wa-dark:      #1ebe5d;
  --ibf-amber:        #f59e0b;
  --ibf-green:        #22c55e;
  --ibf-red:          #ef4444;
  --ibf-blue:         #3b82f6;
  color: var(--ibf-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;
}

/* ── SHARED ── */
.ibf-eyebrow { display:inline-block; margin-bottom:12px; color:var(--ibf-purple); font-size:11px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.ibf-section-title { margin:0; color:var(--ibf-ink); font-size:clamp(28px,2.8vw,42px); font-weight:800; line-height:1.06; letter-spacing:-.04em; }
.ibf-section-text { margin:14px 0 0; color:#6f7584; font-size:14px; line-height:1.75; }
.ibf-prose { color:#454d5e; font-size:14px; line-height:1.8; }
.ibf-prose p { margin:0 0 14px; }
.ibf-prose p:last-child { margin-bottom:0; }
.ibf-prose strong { color:var(--ibf-ink); font-weight:800; }

/* ── BUTTONS ── */
.ibf-btn-primary { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 26px; color:#fff !important; border:0; border-radius:10px; background:linear-gradient(135deg,var(--ibf-purple-dark),var(--ibf-purple) 55%,#9333ea); box-shadow:0 10px 26px rgba(124,58,237,.22); font-size:14px; font-weight:700; text-decoration:none !important; transition:transform .2s,box-shadow .2s; }
.ibf-btn-primary:hover { transform:translateY(-2px); box-shadow:0 14px 32px rgba(124,58,237,.3); }
.ibf-btn-outline { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 26px; color:#1a2030 !important; border:1.5px solid #c4b8f7; border-radius:10px; background:#fff; font-size:14px; font-weight:700; text-decoration:none !important; transition:transform .2s,border-color .2s; }
.ibf-btn-outline:hover { border-color:var(--ibf-purple); transform:translateY(-2px); }
.ibf-wa-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:56px; padding:0 32px; color:#fff !important; border:0; border-radius:12px; background:var(--ibf-wa); box-shadow:0 12px 30px rgba(37,211,102,.28); font-size:15px; font-weight:700; text-decoration:none !important; transition:background .2s,transform .2s; }
.ibf-wa-btn:hover { background:var(--ibf-wa-dark); transform:translateY(-2px); }
.ibf-outline-dark { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:50px; padding:0 24px; color:rgba(255,255,255,.86) !important; border:1.5px solid rgba(255,255,255,.2); border-radius:10px; background:rgba(255,255,255,.06); font-size:13.5px; font-weight:700; text-decoration:none !important; transition:background .2s,border-color .2s,transform .2s; }
.ibf-outline-dark:hover { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.38); transform:translateY(-2px); }
.ibf-text-link { color:var(--ibf-purple); font-weight:700; font-size:12.5px; text-decoration:none; }
.ibf-text-link:hover { color:var(--ibf-purple-dark); text-decoration:underline; }

/* ── HERO ── */
.ibf-hero { position:relative; overflow:hidden; background:#fff; isolation:isolate; }
.ibf-hero-bg { position:absolute; inset:0; z-index:-2; background:url("/wp-content/uploads/2026/09/iptv-buffering-fix-uk.webp") center right/cover no-repeat; }
.ibf-hero::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(255,255,255,1) 0%,rgba(255,255,255,.99) 28%,rgba(255,255,255,.94) 42%,rgba(255,255,255,.54) 56%,rgba(255,255,255,.07) 70%,rgba(255,255,255,0) 82%); pointer-events:none; }
.ibf-hero-title { margin:0; color:var(--ibf-ink); font-size:clamp(42px,4.8vw,64px); font-weight:800; line-height:.98; letter-spacing:-.05em; }
.ibf-hero-title span { display:block; margin-top:8px; font-size:.62em; font-weight:700; line-height:1.06; letter-spacing:-.04em; color:#3a4258; }
.ibf-hero-desc { max-width:560px; margin:20px 0 0; color:#596174; font-size:16.5px; line-height:1.65; }
/* AI Overview target — definition block */
.ibf-answer-box { max-width:580px; margin:22px 0 0; padding:18px 20px; border-left:4px solid var(--ibf-purple); border-radius:0 10px 10px 0; background:linear-gradient(90deg,#faf8ff,#fff); }
.ibf-answer-box p { margin:0; color:#3a3f52; font-size:14px; font-weight:600; line-height:1.65; }
.ibf-trust-div { width:1px; height:18px; background:#d4d6df; }

/* ── QUICK PICKS BAR ── */
.ibf-bar { background:#0f0c1d; }
.ibf-bar-item { display:inline-flex; align-items:center; gap:8px; }
.ibf-bar-label { color:rgba(255,255,255,.5); font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.ibf-bar-val { color:#fff; font-size:12.5px; font-weight:800; }
.ibf-bar-div { width:1px; height:28px; background:rgba(255,255,255,.12); }

/* ── DIAGNOSIS SECTION ── */
.ibf-diag { background:#fff; }
/* AI Overview target — cause table */
.ibf-diag-table { width:100%; border-collapse:separate; border-spacing:0; font-size:12.5px; border:1px solid var(--ibf-line); border-radius:14px; overflow:hidden; box-shadow:0 6px 20px rgba(18,23,38,.05); }
.ibf-diag-table th { padding:11px 14px; background:#f5f3ff; color:#4b5563; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; border-bottom:1px solid var(--ibf-line); }
.ibf-diag-table td { padding:12px 14px; border-bottom:1px solid var(--ibf-line); vertical-align:top; }
.ibf-diag-table tr:last-child td { border-bottom:0; }
.ibf-diag-table tbody tr:nth-child(odd) td { background:#faf9ff; }
.ibf-diag-table tbody tr:nth-child(even) td { background:#fff; }
.ibf-cause-name { font-weight:800; color:var(--ibf-ink); font-size:13px; }
.ibf-cause-name small { display:block; color:var(--ibf-purple); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; margin-top:2px; }
.ibf-freq-bar { height:8px; border-radius:20px; background:#e9e7f0; overflow:hidden; width:100%; min-width:60px; margin-top:6px; }
.ibf-freq-fill { height:100%; border-radius:20px; background:linear-gradient(90deg,var(--ibf-purple-dark),var(--ibf-purple)); }
.ibf-when-badge { display:inline-block; padding:2px 8px; border-radius:20px; font-size:10px; font-weight:800; }
.ibf-when-eve { background:#fff7ed; color:#c2410c; border:1px solid #fed7aa; }
.ibf-when-always { background:#fef2f2; color:#dc2626; border:1px solid #fecaca; }
.ibf-when-random { background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; }
.ibf-fix-ref { color:var(--ibf-purple-dark); font-size:11.5px; font-weight:800; }

/* ── FIX CARDS ── */
.ibf-fix-card { border:1px solid var(--ibf-line); border-radius:18px; background:#fff; box-shadow:0 8px 26px rgba(18,23,38,.05); overflow:hidden; }
.ibf-fix-header { padding:22px 24px 0; }
.ibf-fix-num { display:inline-flex; align-items:center; gap:10px; margin-bottom:12px; }
.ibf-fix-num-badge { width:38px; height:38px; flex:0 0 38px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:linear-gradient(135deg,var(--ibf-purple-dark),var(--ibf-purple)); color:#fff; font-size:15px; font-weight:900; box-shadow:0 6px 16px rgba(124,58,237,.22); }
.ibf-impact { padding:3px 10px; border-radius:20px; font-size:10px; font-weight:800; letter-spacing:.04em; }
.ibf-impact-high { background:linear-gradient(135deg,var(--ibf-purple-dark),#8b5cf6); color:#fff; }
.ibf-impact-med  { background:#f0fdf6; color:#15803d; border:1px solid #bbf7d0; }
.ibf-impact-eve  { background:#fffbeb; color:#b45309; border:1px solid #fde68a; }
.ibf-fix-title { margin:0 0 6px; color:var(--ibf-ink); font-size:19px; font-weight:800; line-height:1.2; letter-spacing:-.03em; }
.ibf-fix-sub { color:#6f7584; font-size:13px; margin-bottom:18px; }
.ibf-fix-divider { width:100%; height:1px; background:var(--ibf-line); margin:0 24px; width:calc(100% - 48px); }
.ibf-fix-body { padding:20px 24px 24px; }
.ibf-prose-fix { color:#454d5e; font-size:14px; line-height:1.78; }
.ibf-prose-fix p { margin:0 0 12px; }
.ibf-prose-fix p:last-child { margin-bottom:0; }
.ibf-prose-fix strong { color:var(--ibf-ink); font-weight:800; }
/* Path steps */
.ibf-path-block { margin:14px 0; padding:14px 16px; border:1px solid #e4e2ef; border-radius:10px; background:#faf8ff; }
.ibf-path-title { font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:var(--ibf-purple); margin-bottom:8px; }
.ibf-path-steps { display:flex; flex-direction:column; gap:5px; }
.ibf-path-step { display:flex; align-items:center; gap:8px; font-size:12.5px; }
.ibf-path-arrow { color:var(--ibf-purple); font-size:10px; }
.ibf-path-val { color:var(--ibf-purple-dark); font-weight:800; white-space:nowrap; }
.ibf-path-note { color:#757b89; font-size:11.5px; }
/* Code inline */
.ibf-code { display:inline-block; padding:2px 8px; border-radius:5px; background:#0f0c1d; color:var(--ibf-purple-light); font-family:monospace; font-size:12.5px; font-weight:800; }
/* Notes */
.ibf-note { display:flex; align-items:flex-start; gap:10px; margin-top:14px; padding:12px 14px; border-left:3px solid var(--ibf-amber); border-radius:0 8px 8px 0; background:#fffbeb; }
.ibf-note-icon { color:var(--ibf-amber); font-size:15px; flex:0 0 18px; margin-top:1px; }
.ibf-note p { margin:0; color:#78350f; font-size:12px; font-weight:600; line-height:1.58; }
.ibf-tip { display:flex; align-items:flex-start; gap:10px; margin-top:14px; padding:12px 14px; border-left:3px solid var(--ibf-purple); border-radius:0 8px 8px 0; background:#faf8ff; }
.ibf-tip-icon { color:var(--ibf-purple); font-size:15px; flex:0 0 18px; margin-top:1px; }
.ibf-tip p { margin:0; color:#3d3560; font-size:12px; font-weight:600; line-height:1.58; }
.ibf-success { display:flex; align-items:flex-start; gap:10px; margin-top:14px; padding:12px 14px; border-left:3px solid var(--ibf-green); border-radius:0 8px 8px 0; background:#f0fdf6; }
.ibf-success-icon { color:var(--ibf-green); font-size:15px; flex:0 0 18px; margin-top:1px; }
.ibf-success p { margin:0; color:#14532d; font-size:12px; font-weight:600; line-height:1.58; }
/* Speed rows */
.ibf-speed-row { display:flex; align-items:center; gap:12px; padding:10px 14px; border:1px solid #e8e7ef; border-radius:9px; background:#fff; margin-bottom:8px; }
.ibf-speed-badge { min-width:52px; padding:3px 8px; border-radius:6px; font-size:10px; font-weight:800; text-align:center; flex:0 0 auto; }
.ibf-speed-ok  { background:#f0fdf6; color:#15803d; border:1px solid #bbf7d0; }
.ibf-speed-low { background:#fef2f2; color:#dc2626; border:1px solid #fecaca; }
.ibf-speed-4k  { background:linear-gradient(135deg,#faf7ff,#f3eeff); color:var(--ibf-purple-dark); border:1px solid rgba(124,58,237,.2); }
.ibf-speed-desc { font-size:13px; font-weight:700; color:var(--ibf-ink); }
.ibf-speed-note { font-size:11.5px; color:#757b89; margin-left:auto; text-align:right; }
/* Device tabs inside fix cards */
.ibf-device-mini-tabs { display:flex; flex-wrap:wrap; gap:5px; margin:12px 0 14px; }
.ibf-device-mini-tab { padding:5px 12px; border-radius:20px; background:#f4f2f8; color:#676d7b; font-size:11.5px; font-weight:700; border:1px solid #e4e2ef; }
.ibf-device-step-block { margin-bottom:12px; }
.ibf-device-step-block h4 { font-size:12px; font-weight:800; color:#374151; margin:0 0 6px; }
.ibf-device-step-block .ibf-path-block { margin:0; }

/* ── DIAGNOSTIC TOOL ── */
.ibf-diag-tool { background:linear-gradient(180deg,#faf9ff,#fff); }
.ibf-symptom-card { display:flex; align-items:flex-start; gap:14px; padding:18px 20px; border:1px solid #e8e7ef; border-radius:12px; background:#fff; box-shadow:0 4px 14px rgba(18,23,38,.04); }
.ibf-symptom-icon { font-size:22px; flex:0 0 32px; }
.ibf-symptom-title { color:var(--ibf-ink); font-size:13.5px; font-weight:800; margin-bottom:4px; }
.ibf-symptom-fix { color:var(--ibf-purple-dark); font-size:12px; font-weight:700; }
.ibf-symptom-cause { color:#6f7584; font-size:12px; line-height:1.5; margin-top:3px; }

/* ── FAQ ── */
.ibf-faq { background:linear-gradient(180deg,#fbfaff,#fff); }
.ibf-faq-accordion .accordion-item { overflow:hidden; border:1px solid #e8e7ef !important; border-radius:11px !important; background:#fff; box-shadow:0 5px 16px rgba(18,23,38,.03); }
.ibf-faq-accordion .accordion-button { min-height:62px; padding:16px 18px; color:#1b1f2d; background:#fff; box-shadow:none !important; font-size:12.5px; font-weight:700; line-height:1.4; }
.ibf-faq-accordion .accordion-button:not(.collapsed) { color:var(--ibf-purple-dark); background:#fbf9ff; }
.ibf-faq-accordion .accordion-button:hover { color:var(--ibf-purple-dark); }
.ibf-faq-accordion .accordion-button::after { width:25px; height:25px; flex:0 0 25px; margin-left:14px; display:flex; align-items:center; justify-content:center; content:"+"; color:#343947; border-radius:50%; background:#f5f4f8; background-image:none !important; font-size:17px; font-weight:500; transform:none !important; }
.ibf-faq-accordion .accordion-button:not(.collapsed)::after { content:"\2212"; color:#fff; background:var(--ibf-purple); }
.ibf-faq-accordion .accordion-body { padding:0 18px 19px; color:#6f7583; background:#fbf9ff; font-size:12.5px; line-height:1.72; }
.ibf-faq-accordion .accordion-body p { margin:0; }
.ibf-faq-accordion .accordion-body p + p { margin-top:8px; }
.ibf-faq-accordion .accordion-body a { display:inline-flex; margin-top:8px; color:var(--ibf-purple); font-size:11.5px; font-weight:700; text-decoration:none; }
.ibf-faq-accordion .accordion-body a:hover { color:#5b21b6; text-decoration:underline; }

/* ── FINAL CTA ── */
.ibf-final { background:linear-gradient(135deg,#0d0b1a,#1a0e35 48%,#0f1324); position:relative; overflow:hidden; isolation:isolate; }
.ibf-final::before { content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse 55% 65% at 78% 50%,rgba(124,58,237,.2),transparent 68%), radial-gradient(ellipse 38% 48% at 18% 60%,rgba(37,211,102,.07),transparent 64%); }
.ibf-final-eyebrow { display:inline-block; margin-bottom:16px; color:var(--ibf-purple-light); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.ibf-final-title { margin:0; color:#fff; font-size:clamp(30px,3.4vw,48px); font-weight:800; line-height:1.04; letter-spacing:-.045em; }
.ibf-final-text { max-width:560px; margin:18px auto 0; color:rgba(255,255,255,.7); font-size:15px; line-height:1.68; }
.ibf-final-note { margin-top:16px; color:rgba(255,255,255,.42); font-size:11.5px; font-weight:600; }

/* ── RESPONSIVE ── */
@media (max-width:991.98px) { .ibf-hero-bg,.ibf-hero::before { display:none; } }
@media (max-width:767.98px) { .ibf-hero-title { font-size:clamp(38px,10vw,54px); } .ibf-fix-title { font-size:17px; } }
@media (max-width:575.98px) {
  .ibf-fix-header,.ibf-fix-body { padding-left:18px; padding-right:18px; }
  .ibf-faq-accordion .accordion-button { min-height:56px; padding:14px 15px; font-size:12px; }
  .ibf-faq-accordion .accordion-body { padding:0 15px 17px; font-size:12px; }
}
@media (prefers-reduced-motion:reduce) { .ibf-page *,.ibf-page *::before,.ibf-page *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; } }

