.seo-web-public-section { min-height: 50vh; }

.seo-web-search-card {
    background: #fff;
    border-radius: 1.25rem;
    box-shadow: 0 8px 40px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--genz-border, #e2e8f0);
    max-width: 720px;
    margin: 0 auto;
}

.seo-web-progress {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.seo-web-progress-card {
    background: #fff;
    border-radius: 1rem;
    padding: 2rem;
    max-width: 420px;
    width: 100%;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,.2);
}
.seo-web-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid #e2e8f0;
    border-top-color: #10b981;
    border-radius: 50%;
    animation: seoWebSpin .8s linear infinite;
    margin: 0 auto 1rem;
}
@keyframes seoWebSpin { to { transform: rotate(360deg); } }

.seo-web-score-ring {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 6px solid #e2e8f0;
    flex-shrink: 0;
}
.seo-web-grade-excellent { border-color: #10b981; background: rgba(16,185,129,.08); }
.seo-web-grade-good { border-color: #3b82f6; background: rgba(59,130,246,.08); }
.seo-web-grade-fair { border-color: #f59e0b; background: rgba(245,158,11,.08); }
.seo-web-grade-poor { border-color: #ef4444; background: rgba(239,68,68,.08); }

.seo-web-score-inner { text-align: center; line-height: 1.2; }
.seo-web-score-num { display: block; font-size: 2.25rem; font-weight: 800; }
.seo-web-score-label { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; opacity: .7; }

.seo-web-cat-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: .75rem;
    padding: .85rem;
}
.seo-web-cat-bar {
    height: 6px;
    background: #e2e8f0;
    border-radius: 999px;
    overflow: hidden;
}
.seo-web-cat-fill { height: 100%; border-radius: 999px; transition: width .5s ease; }

.seo-sev-critical { background: #fef2f2; color: #dc2626; }
.seo-sev-warning { background: #fffbeb; color: #d97706; }
.seo-sev-info { background: #eff6ff; color: #2563eb; }

.seo-check-pass { color: #10b981; font-weight: 600; }
.seo-check-warn { color: #f59e0b; font-weight: 600; }
.seo-check-fail { color: #ef4444; font-weight: 600; }
.seo-check-info { color: #64748b; }

.seo-web-checks-table td { vertical-align: middle; }

.seo-web-url-hints .alert { margin-bottom: 0.35rem; }

.seo-serp-mock { max-width: 600px; font-family: Arial, sans-serif; }
.seo-serp-url { line-height: 1.3; }
.seo-serp-title { font-size: 1.15rem; line-height: 1.35; margin: 2px 0 4px; cursor: pointer; }
.seo-serp-title:hover { text-decoration: underline; }
.seo-serp-desc { line-height: 1.5; }

.seo-fix-code {
    background: #0f172a;
    color: #e2e8f0;
    border-radius: 0.5rem;
    padding: 0.85rem 1rem;
    font-size: 0.78rem;
    overflow-x: auto;
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
}

.seo-fix-code-wrap { margin-top: 0.5rem; }

.seo-issue-item .accordion-button { font-size: 0.9rem; padding: 0.85rem 1rem; }
.seo-issue-item .accordion-button:not(.collapsed) { background: #f8fafc; }

.bg-success-subtle { background: rgba(16,185,129,.12); }
.bg-danger-subtle { background: rgba(239,68,68,.1); }

.seo-psi-gauge { background: #f1f5f9; }
.seo-psi-good { background: rgba(16,185,129,.15); color: #047857; }
.seo-psi-ok { background: rgba(245,158,11,.15); color: #b45309; }
.seo-psi-bad { background: rgba(239,68,68,.12); color: #b91c1c; }

.genz-tint-emerald {
    background: linear-gradient(180deg, rgba(16,185,129,.06) 0%, transparent 100%);
}

.cta-seo-service.cta-custom-dev {
    background: linear-gradient(125deg, #064e3b 0%, #047857 42%, #0f766e 100%);
    box-shadow: 0 18px 40px rgba(6, 78, 59, .22);
}
.cta-seo-service .cta-custom-dev-glow {
    background: radial-gradient(circle at 20% 50%, rgba(52, 211, 153, .35), transparent 55%);
}
.cta-seo-service .cta-custom-dev-icon-wrap { background: rgba(255, 255, 255, .14); color: #a7f3d0; }
