:root {
	--primary-green: #50b948;
	--primary-green-dark: #3d9438;
	--primary-green-light: #6ed465;
	--green-50: #f0fdf4;
	--green-100: #dcfce7;
	--green-200: #bbf7d0;
	--green-300: #86efac;
	--primary-red: #dc2626;
	--primary-red-dark: #b91c1c;
	--primary-red-light: #ef4444;
	--red-50: #fef2f2;
	--red-100: #fee2e2;
	--blue-500: #3b82f6;
	--blue-600: #2563eb;
	--gray-50: #f9fafb;
	--gray-100: #f3f4f6;
	--gray-200: #e5e7eb;
	--gray-300: #d1d5db;
	--gray-400: #9ca3af;
	--gray-500: #6b7280;
	--gray-600: #4b5563;
	--gray-700: #374151;
	--gray-800: #1f2937;
	--gray-900: #111827;
	--white: #ffffff;
	--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
	--shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
	--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
	--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
	--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
	--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
	--shadow-green: 0 4px 14px 0 rgba(80, 185, 72, 0.3);
	--shadow-red: 0 4px 14px 0 rgba(220, 38, 38, 0.3);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; color: var(--gray-900); line-height: 1.6; background: var(--white); }
.container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

/* Header */
.header { position: relative; z-index: 1000; background: var(--white); box-shadow: var(--shadow); }
.header-top { background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); padding: 2px 0; }
.header-top .container { display: flex; justify-content: flex-end; gap: 24px; }
.header-top a { display: flex; align-items: center; gap: 6px; color: var(--white); text-decoration: none; font-size: 13px; font-weight: 500; transition: all 0.2s; opacity: 0.9; }
.header-top a:hover { opacity: 1; }
.header-top a svg { width: 16px; height: 16px; }
.header-main { padding: 10px 0; border-bottom: 1px solid var(--gray-100); }
.header-main .container { display: flex; position: relative; align-items: center; justify-content: space-between; }
.logo { display: flex; align-items: center; text-decoration: none; }
.logo img { height: 55px; width: auto; }
.nav { display: flex; align-items: center; gap: 4px; }
.nav-item { position: static; }
.nav-link { display: flex; align-items: center; gap: 6px; padding: 10px 3px; color: var(--gray-700); text-decoration: none; font-weight: 500; font-size: 14px; border-radius: 8px; transition: all 0.2s; }
.nav-link:hover { color: var(--primary-green); background: var(--green-50); }
.nav-link svg { width: 16px; height: 16px; transition: transform 0.2s; }
.nav-item:hover .nav-link svg { transform: rotate(180deg); }

/* Mega Menu */
.mega-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background: var(--white);
    border-radius: 16px;
    box-shadow: var(--shadow-2xl);
    padding: 20px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s ease;
    border: 1px solid var(--gray-100);
    z-index: 100;
    width: max-content;
    max-width: calc(100vw - 48px);
}

.nav-item:hover .mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}
.mega-menu-grid { display: flex; gap: 20px; }
.mega-menu-column { width: 240px; flex-shrink: 0; }
.mega-menu-column h4 { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--gray-400); margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid var(--gray-100); white-space: nowrap; }
.mega-menu-column a { display: flex; align-items: center; gap: 10px; padding: 8px 12px; margin: 0 -12px; color: var(--gray-700); text-decoration: none; font-size: 13px; font-weight: 500; border-radius: 8px; transition: all 0.15s; white-space: nowrap; }
.mega-menu-column a:hover { background: var(--green-50); color: var(--primary-green); }
.mega-menu-column a svg { width: 18px; height: 18px; color: var(--gray-400); flex-shrink: 0; }
.mega-menu-column a:hover svg { color: var(--primary-green); }
.mega-menu-column a + h4 {margin-top: 20px;}
.mega-menu-featured { background: linear-gradient(135deg, var(--green-100) 0%, var(--green-200) 100%); border-radius: 12px; padding: 20px; width: 240px; flex-shrink: 0; }
.mega-menu-featured h4 { color: var(--primary-green-dark); border-bottom-color: var(--green-200); }
.mega-menu-featured p { font-size: 13px; color: var(--gray-600); line-height: 1.6; }
.header-actions { display: flex; align-items: center; gap: 12px; }


/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 24px; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; text-decoration: none; border-radius: 10px; transition: all 0.2s ease; cursor: pointer; border: none; }
.btn-primary { background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); color: var(--white); box-shadow: var(--shadow-green); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(80, 185, 72, 0.4); }
.btn-danger { background: linear-gradient(135deg, var(--primary-red-light) 0%, var(--primary-red) 100%); color: var(--white); box-shadow: var(--shadow-red); }
.btn-danger:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(220, 38, 38, 0.4); }
.btn-outline { background: var(--white); color: var(--gray-700); border: 2px solid var(--gray-200); }
.btn-outline:hover { border-color: var(--primary-green); color: var(--primary-green); background: var(--green-50); }
.btn-white { background: var(--white); color: var(--primary-green-dark); box-shadow: var(--shadow-lg); }
.btn-white:hover { transform: translateY(-2px); box-shadow: var(--shadow-xl); }
.btn-lg { padding: 16px 32px; font-size: 16px; }
.btn-sm { padding: 10px 20px; font-size: 13px; }

/* Mobile Toggle */
.mobile-toggle { display: none; background: none; border: none; padding: 8px; cursor: pointer; }
.mobile-toggle svg { width: 28px; height: 28px; color: var(--gray-700); }

/* Mobile Menu */
.mobile-menu { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--white); z-index: 1001; overflow-y: auto; transform: translateX(100%); transition: transform 0.3s ease; }
.mobile-menu.active { transform: translateX(0); }
.mobile-menu-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; border-bottom: 1px solid var(--gray-200); background: var(--white); position: sticky; top: 0; z-index: 10; }
.mobile-menu-header .logo img { height: 45px; }
.mobile-close { background: var(--gray-100); border: none; width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; }
.mobile-close:hover { background: var(--primary-green); transform: rotate(90deg); }
.mobile-close svg { width: 24px; height: 24px; color: var(--gray-600); transition: color 0.3s ease; }
.mobile-close:hover svg { color: var(--white); }
.mobile-menu-content { padding: 16px 24px 24px; }
.mobile-menu-item { border-bottom: 1px solid var(--gray-100); }
.mobile-menu-link { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; color: var(--gray-700); text-decoration: none; font-weight: 600; font-size: 16px; }
.mobile-menu-link svg { width: 20px; height: 20px; transition: transform 0.3s; }
.mobile-menu-item.active .mobile-menu-link svg { transform: rotate(180deg); }
.mobile-submenu { display: none; padding: 0 0 16px 16px; }
.mobile-menu-item.active .mobile-submenu { display: block; }
.mobile-submenu a { display: block; padding: 10px 0; color: var(--gray-600); text-decoration: none; font-size: 14px; }
.mobile-submenu a:hover { color: var(--primary-green); }
.mobile-menu-cta { padding: 24px; border-top: 1px solid var(--gray-100); margin-top: 24px; }
.mobile-menu-cta .btn { width: 100%; justify-content: center; }

/* Hero */
.hero { padding: 50px 0 30px; background: linear-gradient(180deg, var(--green-50) 0%, var(--green-100) 40%, var(--green-200) 100%); position: relative; overflow: hidden; }
.hero::before { content: ''; position: absolute; top: 20%; right: -10%; width: 600px; height: 600px; background: radial-gradient(circle, rgba(80, 185, 72, 0.1) 0%, transparent 70%); pointer-events: none; }
.hero::after { content: ''; position: absolute; bottom: 10%; left: -10%; width: 500px; height: 500px; background: radial-gradient(circle, rgba(80, 185, 72, 0.08) 0%, transparent 70%); pointer-events: none; }
.hero-badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; background: var(--white); border: 1px solid var(--green-200); border-radius: 50px; color: var(--primary-green-dark); font-size: 13px; font-weight: 600; margin-bottom: 24px; box-shadow: var(--shadow); }
.hero-badge svg { width: 18px; height: 18px; color: var(--primary-green); }
.hero-content { position: relative; z-index: 1; display: grid; grid-template-columns: 3fr 1fr; gap: 40px; align-items: center; }
.hero-text { }
.hero h1 { font-size: 2.5rem; font-weight: 800; color: var(--gray-900); margin-bottom: 20px; line-height: 1.15; letter-spacing: -0.025em; }
.hero h1 span { color: var(--primary-green); }
.hero h2 { font-size: 1.25rem; font-weight: 700; color: var(--gray-800); margin-bottom: 16px; }
.hero-subtitle { font-size: 0.95rem; color: var(--gray-600); margin-bottom: 32px; line-height: 1.7; }
.hero-buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-image { text-align: center; }
.hero-image img { max-width: 100%; height: auto; max-height: 280px; filter: drop-shadow(0 20px 40px rgba(0,0,0,0.1)); }

/* Stats Section */
.stats-section { background: var(--white); padding: 30px 0; border-bottom: 4px solid var(--primary-green); }
.hero-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; max-width: 1000px; margin: 0 auto; }
.hero-stats .stat-item { padding: 0 32px; text-align: center; border-right: 1px solid var(--gray-200); }
.hero-stats .stat-item:last-child { border-right: none; }
.stat-value { font-size: 2.5rem; font-weight: 800; color: var(--primary-green); margin-bottom: 8px; letter-spacing: -0.025em; }
.stat-value span { color: var(--primary-green); }
.stat-item { text-align: center; padding: 0 16px; border-right: 1px solid var(--gray-100); }
.stat-item:last-child { border-right: none; }
.stat-label { color: var(--gray-600); font-size: 14px; font-weight: 500; }

/* Promo Banner */
.promo-banner { background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); padding: 50px 0; }
.promo-content { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.promo-text h3 { color: var(--white); font-size: 1.75rem; font-weight: 800; margin-bottom: 12px; }
.promo-text p { color: rgba(255,255,255,0.9); font-size: 1rem; margin-bottom: 16px; }
.promo-text .highlight { background: var(--white); color: var(--primary-green); padding: 8px 20px; border-radius: 50px; font-weight: 700; display: inline-block; font-size: 14px; }
.promo-features { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.promo-feature { display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.2); border-radius: 12px; padding: 16px 20px; }
.promo-feature-icon { width: 44px; height: 44px; background: var(--white); border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.promo-feature-icon svg { width: 22px; height: 22px; color: var(--primary-green); }
.promo-feature-text { color: var(--white); }
.promo-feature-text strong { display: block; font-size: 14px; font-weight: 700; margin-bottom: 2px; }
.promo-feature-text span { font-size: 12px; opacity: 0.85; }

/* TrustPilot */
.trustpilot-section { background: var(--gray-50); padding: 20px 0; text-align: center; }
.trustpilot-link { display: inline-flex; align-items: center; gap: 12px; color: var(--gray-600); text-decoration: none; font-size: 14px; font-weight: 500; }
.trustpilot-link:hover { color: var(--primary-green); }
.trustpilot-stars { color: #00b67a; font-size: 20px; }

/* Free Check Banner */
.free-check-banner { background: var(--gray-900); padding: 16px 0; text-align: center; }
.free-check-content { display: flex; align-items: center; justify-content: center; gap: 24px; flex-wrap: wrap; }
.free-check-content span { color: var(--white); font-weight: 600; }
.free-check-content .highlight { color: var(--primary-green); }

/* Sections */
.section { padding: 80px 0; }
.section-white { background: var(--white); }
.section-gray { background: var(--gray-50); }
.section-green-light { background: linear-gradient(180deg, var(--green-100) 0%, var(--green-200) 50%, var(--green-100) 100%); }
.section-green { background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); }
.section-red-light { background: linear-gradient(180deg, var(--red-50) 0%, var(--white) 100%); }
.section-header { text-align: center; max-width: 800px; margin: 0 auto 50px; }
.section-header h2 { font-size: 2.25rem; font-weight: 800; color: var(--gray-900); margin-bottom: 16px; letter-spacing: -0.025em; }
.section-header h3 { font-size: 1.125rem; font-weight: 600; color: var(--gray-600); margin-bottom: 24px; }
.section-header p { font-size: 1rem; color: var(--gray-500); line-height: 1.7; }
.section-green .section-header h2 { color: var(--white); }
.section-green .section-header p { color: rgba(255,255,255,0.9); }

/* Feature List */
.feature-list-inline { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; margin-top: 24px; }
.feature-list-inline li { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--gray-700); font-weight: 500; }
.feature-list-inline li svg { width: 18px; height: 18px; color: var(--primary-green); }

/* Info Cards */
.info-cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.info-card { background: var(--white); border-radius: 16px; padding: 32px; border: 1px solid var(--gray-200); transition: all 0.3s ease; box-shadow: var(--shadow); text-align: center; }
.info-card:hover { border-color: var(--primary-green); box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.info-card .icon { width: 64px; height: 64px; margin: 0 auto 20px; }
.info-card .icon img { width: 100%; height: 100%; object-fit: contain; }
.info-card h4 { font-size: 1rem; font-weight: 700; color: var(--gray-900); margin-bottom: 12px; }
.info-card p { color: var(--gray-500); font-size: 14px; line-height: 1.6; }

/* CTA Buttons Grid */
.cta-buttons-center { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; margin-top: 32px; }

/* Scanner Form */
.scanner-section { background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%); padding: 60px 0; border-top: 1px solid var(--green-200); border-bottom: 1px solid var(--green-200); }
.scanner-box { max-width: 800px; margin: 0 auto; text-align: center; }
.scanner-box h3 { font-size: 1.75rem; font-weight: 800; margin-bottom: 12px; color: var(--gray-900); }
.scanner-box > p { color: var(--gray-600); font-size: 15px; margin-bottom: 28px; max-width: 600px; margin-left: auto; margin-right: auto; }
.scanner-form { display: flex; gap: 12px; max-width: 650px; margin: 0 auto; }
.scanner-input { flex: 1; padding: 18px 24px; font-size: 16px; border: 2px solid var(--gray-200); border-radius: 12px; font-family: inherit; transition: all 0.2s; background: var(--white); }
.scanner-input:focus { outline: none; border-color: var(--primary-green); box-shadow: 0 0 0 4px rgba(80, 185, 72, 0.1); }
.scanner-input::placeholder { color: var(--gray-400); }
.scanner-disclaimer { margin-top: 20px; font-size: 13px; color: var(--gray-500); line-height: 1.6; }

/* Tabs */
.tabs-section { padding: 60px 0; }
.tabs-nav { display: flex; justify-content: center; gap: 8px; margin-bottom: 40px; flex-wrap: wrap; }
.tab-btn { padding: 12px 24px; font-size: 14px; font-weight: 600; background: var(--gray-100); border: none; border-radius: 10px; cursor: pointer; transition: all 0.2s; color: var(--gray-600); font-family: inherit; }
.tab-btn:hover { background: var(--gray-200); }
.tab-btn.active { background: var(--primary-green); color: var(--white); }
.tab-content { display: none; }
.tab-content.active { display: block; }
.tab-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tab-card { background: var(--white); border-radius: 16px; padding: 28px; border: 1px solid var(--gray-200); transition: all 0.3s ease; }
.tab-card:hover { border-color: var(--primary-green); box-shadow: var(--shadow-lg); }
.tab-card-header { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.tab-card-header .icon { width: 48px; height: 48px; }
.tab-card-header .icon img { width: 100%; height: 100%; object-fit: contain; }
.tab-card h4 { font-size: 1rem; font-weight: 700; color: var(--gray-900); }
.tab-card-links { display: flex; flex-direction: column; gap: 8px; }
.tab-card-links a { color: var(--gray-600); text-decoration: none; font-size: 14px; transition: color 0.2s; display: flex; align-items: center; gap: 6px; }
.tab-card-links a:hover { color: var(--primary-green); }
.tab-card-links a::before { content: '→'; color: var(--gray-400); }
.tab-card-links a:hover::before { color: var(--primary-green); }

/* Why Different */
.why-different { background: var(--white); padding: 80px 0; }
.why-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.why-item { display: flex; gap: 16px; padding: 20px; background: var(--gray-50); border-radius: 12px; border-left: 4px solid var(--primary-green); }
.why-item .number { width: 32px; height: 32px; background: var(--primary-green); color: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; flex-shrink: 0; }
.why-item p { color: var(--gray-600); font-size: 14px; line-height: 1.7; }
.why-item strong { color: var(--gray-900); }

/* Blacklist Section */
.blacklist-section { background: linear-gradient(135deg, var(--red-50) 0%, var(--white) 100%); padding: 80px 0; }
.blacklist-content { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.blacklist-text h2 { font-size: 2rem; font-weight: 800; color: var(--gray-900); margin-bottom: 24px; }
.blacklist-features { list-style: none; margin-bottom: 32px; }
.blacklist-features li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; font-size: 15px; color: var(--gray-700); }
.blacklist-features li svg { width: 22px; height: 22px; color: var(--primary-green); flex-shrink: 0; margin-top: 2px; }
.blacklist-image { text-align: center; }
.blacklist-image img { max-width: 100%; border-radius: 16px; box-shadow: var(--shadow-xl); }

/* What We Do */
.whatwedo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.whatwedo-card { background: var(--white); border-radius: 16px; padding: 32px 24px; border: 1px solid var(--gray-200); transition: all 0.3s ease; text-align: center; }
.whatwedo-card:hover { border-color: var(--primary-green); box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.whatwedo-card h4 { font-size: 1.125rem; font-weight: 700; color: var(--primary-green); margin-bottom: 16px; }
.whatwedo-card ul { list-style: none; text-align: left; }
.whatwedo-card ul li { display: flex; align-items: flex-start; gap: 8px; padding: 8px 0; font-size: 13px; color: var(--gray-600); line-height: 1.5; }
.whatwedo-card ul li svg { width: 16px; height: 16px; color: var(--primary-green); flex-shrink: 0; margin-top: 3px; }
.whatwedo-card .btn { margin-top: 20px; }

/* Adwords Banner */
.adwords-banner { background: linear-gradient(135deg, var(--primary-red-light) 0%, var(--primary-red) 100%); padding: 60px 0; text-align: center; }
.adwords-banner h3 { color: var(--white); font-size: 1.75rem; font-weight: 800; margin-bottom: 12px; }
.adwords-banner p { color: rgba(255,255,255,0.9); font-size: 1rem; margin-bottom: 24px; }
.adwords-features { display: flex; justify-content: center; flex-wrap: wrap; gap: 24px; margin-bottom: 32px; }
.adwords-features li { display: flex; align-items: center; gap: 8px; color: var(--white); font-size: 14px; font-weight: 500; }
.adwords-features li svg { width: 18px; height: 18px; }

/* Other Stuff Grid */
.other-stuff-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.other-stuff-item { background: var(--white); border-radius: 12px; padding: 24px 16px; border: 1px solid var(--gray-200); text-align: center; text-decoration: none; transition: all 0.3s ease; }
.other-stuff-item:hover { border-color: var(--primary-green); box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.other-stuff-item .icon { width: 48px; height: 48px; background: var(--green-100); border-radius: 12px; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; }
.other-stuff-item .icon svg { width: 24px; height: 24px; color: var(--primary-green); }
.other-stuff-item h5 { font-size: 12px; font-weight: 700; color: var(--primary-green); margin-bottom: 4px; text-transform: uppercase; }
.other-stuff-item p { font-size: 13px; color: var(--gray-600); line-height: 1.4; }

/* Info Boxes */
.info-boxes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.info-box { background: var(--white); border-radius: 16px; padding: 32px; border: 1px solid var(--gray-200); box-shadow: var(--shadow); }
.info-box-header { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.info-box-header .icon { width: 56px; height: 56px; }
.info-box-header .icon img { width: 100%; height: 100%; object-fit: contain; }
.info-box h4 { font-size: 1.125rem; font-weight: 700; color: var(--gray-900); }
.info-box p { color: var(--gray-500); font-size: 14px; line-height: 1.7; margin-bottom: 16px; }
.info-box a { color: var(--primary-green); font-weight: 600; text-decoration: none; font-size: 14px; }
.info-box a:hover { text-decoration: underline; }

/* Compatibility Section */
.compat-section { background: var(--white); padding: 60px 0; }
.compat-title { text-align: center; font-size: 1.125rem; font-weight: 700; color: var(--gray-800); margin-bottom: 40px; }
.cms-badges { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-bottom: 24px; }
.cms-badge { padding: 12px 24px; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 50px; font-size: 14px; font-weight: 600; color: var(--gray-700); transition: all 0.2s; }
.cms-badge:hover { background: var(--green-100); border-color: var(--primary-green); color: var(--primary-green-dark); }
.compat-note { text-align: center; color: var(--gray-500); font-size: 14px; margin-top: 24px; }
.compat-note a { color: var(--primary-green); font-weight: 600; text-decoration: none; }
.compat-note a:hover { text-decoration: underline; }

/* Security Designed Section */
.security-designed { background: var(--gray-50); padding: 80px 0; }
.security-designed-header { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 24px; }
.security-designed-header svg { width: 32px; height: 32px; color: var(--primary-green); }
.security-designed-header h2 { font-size: 2rem; font-weight: 800; color: var(--gray-900); }
.security-designed p { max-width: 1100px; margin: 0 auto; text-align: center; color: var(--gray-600); font-size: 1rem; line-height: 1.8; }

/* CTA Banner */
.cta-banner { background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); padding: 60px 0; text-align: center; }
.cta-banner h2 { color: var(--white); font-size: 2rem; font-weight: 800; margin-bottom: 12px; }
.cta-banner h3 { color: rgba(255,255,255,0.9); font-size: 1.125rem; font-weight: 500; margin-bottom: 24px; }
.cta-banner p { color: rgba(255,255,255,0.9); font-size: 1.125rem; margin-bottom: 24px; }

/* Footer */
.footer { background: var(--gray-900); padding: 60px 0 0; }
.footer-grid { display: grid; grid-template-columns: 2fr repeat(4, 1fr); gap: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--gray-800); }
.footer-brand .logo { margin-bottom: 16px; }
.footer-brand .logo img { filter: brightness(0) invert(1); height: 45px; }
.footer-brand p { color: var(--gray-400); font-size: 13px; line-height: 1.7; }
.footer-column h4 { color: var(--white); font-size: 13px; font-weight: 700; margin-bottom: 16px; text-transform: uppercase; letter-spacing: 0.05em; }
.footer-column a { display: block; color: var(--gray-400); text-decoration: none; font-size: 13px; padding: 6px 0; transition: color 0.2s; }
.footer-column a:hover { color: var(--primary-green); }
.footer-bottom { padding: 20px 0; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.footer-copyright { color: var(--gray-500); font-size: 13px; }
.footer-company { color: var(--gray-500); font-size: 13px; }

/* Body lock */
body.menu-open { overflow: hidden; }

/* Threat Cards */
.threats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.threat-card { background: var(--white); border-radius: 16px; padding: 32px; border: 1px solid var(--red-100); transition: all 0.3s ease; box-shadow: var(--shadow); }
.threat-card:hover { border-color: var(--primary-red); box-shadow: var(--shadow-xl); transform: translateY(-4px); }
.threat-card .icon { width: 56px; height: 56px; background: linear-gradient(135deg, var(--red-50) 0%, var(--red-100) 100%); border-radius: 14px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.threat-card .icon svg { width: 28px; height: 28px; color: var(--primary-red); }
.threat-card h3 { font-size: 1.125rem; font-weight: 700; color: var(--gray-900); margin-bottom: 12px; }
.threat-card p { color: var(--gray-500); font-size: 14px; line-height: 1.7; }

/* Benefit Cards */
.benefits-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.benefit-card { text-align: center; padding: 40px 32px; background: var(--white); border-radius: 20px; border: 1px solid var(--green-200); transition: all 0.3s ease; box-shadow: var(--shadow); }
.benefit-card:hover { border-color: var(--primary-green); box-shadow: var(--shadow-xl); transform: translateY(-4px); }
.benefit-card .icon { width: 80px; height: 80px; background: linear-gradient(135deg, var(--green-100) 0%, var(--green-200) 100%); border-radius: 20px; display: flex; align-items: center; justify-content: center; margin: 0 auto 24px; }
.benefit-card .icon svg { width: 40px; height: 40px; color: var(--primary-green); }
.benefit-card h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 12px; color: var(--gray-900); }
.benefit-card p { color: var(--gray-500); font-size: 15px; line-height: 1.7; }

/* Feature Cards */
.features-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.feature-card { background: var(--white); border-radius: 16px; padding: 32px; border: 1px solid var(--gray-200); transition: all 0.3s ease; box-shadow: var(--shadow); }
.feature-card:hover { border-color: var(--primary-green); box-shadow: var(--shadow-lg); }
.feature-card-header { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 16px; }
.feature-card .icon { width: 48px; height: 48px; background: linear-gradient(135deg, var(--green-100) 0%, var(--green-200) 100%); border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.feature-card .icon svg { width: 24px; height: 24px; color: var(--primary-green); }
.feature-card h3 { font-size: 1.125rem; font-weight: 700; color: var(--gray-900); }
.feature-card > p { color: var(--gray-500); font-size: 14px; line-height: 1.7; margin-bottom: 20px; }
.feature-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.feature-list-item { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--gray-600); font-weight: 500; }
.feature-list-item svg { width: 16px; height: 16px; color: var(--primary-green); flex-shrink: 0; }

/* Attack Vectors */
.attack-vectors-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.attack-vector-item { display: flex; align-items: flex-start; gap: 12px; padding: 20px; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.2); border-radius: 12px; transition: all 0.2s ease; }
.attack-vector-item:hover { background: rgba(255,255,255,0.25); transform: translateY(-2px); }
.attack-vector-item svg { width: 20px; height: 20px; color: var(--white); flex-shrink: 0; margin-top: 2px; }
.attack-vector-item .content strong { display: block; color: var(--white); font-size: 14px; font-weight: 600; margin-bottom: 4px; }
.attack-vector-item .content span { color: rgba(255,255,255,0.8); font-size: 12px; }

/* Process Steps */
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; counter-reset: step; }
.process-step { background: var(--white); border-radius: 16px; padding: 32px 24px; text-align: center; position: relative; border: 1px solid var(--gray-200); transition: all 0.3s ease; box-shadow: var(--shadow); }
.process-step:hover { border-color: var(--primary-green); box-shadow: var(--shadow-lg); }
.process-step::before { counter-increment: step;  position: absolute; top: -16px; left: 50%; transform: translateX(-50%); width: 36px; height: 36px; background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); border-radius: 50%; color: var(--white); font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-green); }
.process-step h4 { font-size: 1.125rem; font-weight: 700; margin: 12px 0; color: var(--gray-900); }
.process-step p { color: var(--gray-500); font-size: 14px; }

/* Plugin Cards */
.plugins-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.plugin-card { background: rgba(255,255,255,0.15); border-radius: 16px; padding: 28px; border: 1px solid rgba(255,255,255,0.2); transition: all 0.3s ease; text-decoration: none; display: block; }
.plugin-card:hover { background: rgba(255,255,255,0.25); transform: translateY(-4px); }
.plugin-card h4 { color: var(--white); font-size: 1rem; font-weight: 700; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }
.plugin-card h4 svg { width: 22px; height: 22px; }
.plugin-card p { color: rgba(255,255,255,0.85); font-size: 14px; line-height: 1.6; }

/* Compatibility Cards */
.compatibility-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
.compatibility-card { background: var(--white); border-radius: 20px; padding: 40px; border: 1px solid var(--gray-200); box-shadow: var(--shadow); }
.compatibility-card h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 24px; color: var(--gray-900); display: flex; align-items: center; gap: 12px; }
.compatibility-card h3 svg { width: 24px; height: 24px; color: var(--primary-green); }
.compat-list { display: flex; flex-wrap: wrap; gap: 12px; }
.compat-item { display: flex; align-items: center; gap: 8px; padding: 10px 16px; background: var(--gray-50); border-radius: 8px; font-size: 14px; font-weight: 500; color: var(--gray-700); border: 1px solid var(--gray-100); transition: all 0.2s; }
.compat-item:hover { background: var(--green-100); border-color: var(--green-300); color: var(--primary-green-dark); }
.compat-item svg { width: 16px; height: 16px; color: var(--primary-green); }

/* FAQ */
.faq-grid { max-width: 800px; margin: 0 auto; }
.faq-item { background: var(--white); border: 1px solid var(--gray-200); border-radius: 12px; margin-bottom: 12px; overflow: hidden; transition: all 0.3s ease; box-shadow: var(--shadow-sm); }
.faq-item:hover { border-color: var(--primary-green); }
.faq-question { padding: 20px 24px; font-weight: 600; color: var(--gray-900); cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-size: 15px; }
.faq-toggle { width: 28px; height: 28px; background: var(--green-100); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.faq-toggle svg { width: 16px; height: 16px; color: var(--primary-green); transition: transform 0.3s; }
.faq-item.active .faq-toggle svg { transform: rotate(45deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.faq-item.active .faq-answer { max-height: 300px; }
.faq-answer-content { padding: 0 24px 20px; color: var(--gray-500); line-height: 1.7; font-size: 14px; }

/* Final CTA */
.final-cta { background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); padding: 100px 0; text-align: center; }
.final-cta h2 { color: var(--white); font-size: 2.75rem; font-weight: 800; margin-bottom: 16px; letter-spacing: -0.025em; }
.final-cta p { color: rgba(255,255,255,0.9); font-size: 1.25rem; margin-bottom: 40px; }
.final-cta-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-bottom: 48px; }
.trust-badges { display: flex; justify-content: center; flex-wrap: wrap; gap: 32px; color: var(--white); font-size: 14px; }
.trust-badge { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.trust-badge svg { width: 20px; height: 20px; }

/* Auth Page Layout */
.auth-page { min-height: 100vh; display: flex; align-items: stretch; }
.auth-form-side { flex: 1; display: flex; align-items: center; justify-content: center; padding: 60px 40px; background: linear-gradient(180deg, var(--green-50) 0%, var(--white) 100%); }
.auth-container { width: 100%; max-width: 480px; }
.auth-card { background: var(--white); border-radius: 20px; padding: 40px; box-shadow: var(--shadow-xl); border: 1px solid var(--gray-100); }
.auth-header { text-align: center; margin-bottom: 32px; }
.auth-header .icon { width: 64px; height: 64px; background: linear-gradient(135deg, var(--green-100) 0%, var(--green-200) 100%); border-radius: 16px; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; }
.auth-header .icon svg { width: 32px; height: 32px; color: var(--primary-green); }
.auth-header h1 { font-size: 1.5rem; font-weight: 800; color: var(--gray-900); margin-bottom: 8px; }
.auth-header p { color: var(--gray-500); font-size: 14px; line-height: 1.6; }

/* Notifications */
.notification { display: none; padding: 16px 20px; border-radius: 12px; margin-bottom: 24px; align-items: flex-start; gap: 14px; }
.notification.show { display: flex; animation: slideDown 0.4s ease; }
.notification-success { background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%); border: 1px solid var(--green-200); }
.notification-error { background: linear-gradient(135deg, var(--red-50) 0%, var(--red-100) 100%); border: 1px solid var(--primary-red-light); }
.notification-icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.notification-success .notification-icon { background: var(--primary-green); }
.notification-error .notification-icon { background: var(--primary-red); }
.notification-icon svg { width: 20px; height: 20px; color: var(--white); }
.notification-content { flex: 1; }
.notification-content h4 { font-size: 14px; font-weight: 700; margin-bottom: 4px; }
.notification-success .notification-content h4 { color: var(--primary-green-dark); }
.notification-error .notification-content h4 { color: var(--primary-red-dark); }
.notification-content p { font-size: 13px; margin: 0; line-height: 1.5; color: var(--gray-600); }
.notification-success .notification-content p { color: var(--gray-600); }
.notification-error .notification-content p { color: var(--gray-600); }
.notification-success a { color: var(--primary-green); text-decoration: none; font-weight: 600; }
.notification-success a:hover { color: var(--primary-green-dark); text-decoration: underline; }
.notification-error a { color: var(--primary-red); text-decoration: none; font-weight: 600; }
.notification-error a:hover { color: var(--primary-red-dark); text-decoration: underline; }
.notification-close { background: none; border: none; padding: 4px; cursor: pointer; color: var(--gray-400); transition: color 0.2s; }
.notification-close:hover { color: var(--gray-600); }
.notification-close svg { width: 18px; height: 18px; }

@keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }

/* Form */
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { margin-bottom: 18px; }
.form-label { display: block; font-size: 13px; font-weight: 600; color: var(--gray-700); margin-bottom: 6px; }
.form-label .required { color: var(--primary-red); }
.form-input-wrapper { position: relative; }
.form-input { width: 100%; padding: 14px 18px; padding-left: 44px; font-size: 14px; font-family: inherit; border: 2px solid var(--gray-200); border-radius: 10px; background: var(--white); transition: all 0.2s; color: var(--gray-900); }
.form-input:focus { outline: none; border-color: var(--primary-green); box-shadow: 0 0 0 4px rgba(80, 185, 72, 0.1); }
.form-input.error { border-color: var(--primary-red); animation: shake 0.3s ease; }
.form-input.error:focus { box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.1); }
.form-input.success { border-color: var(--primary-green); }
.form-input::placeholder { color: var(--gray-400); }
.form-input-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--gray-400); pointer-events: none; }
.form-input-icon svg { width: 18px; height: 18px; }
.form-input:focus + .form-input-icon { color: var(--primary-green); }
.form-input:focus + .form-input-icon, .form-input:not(:placeholder-shown) + .form-input-icon { color: var(--primary-green); }
.form-input.error + .form-input-icon { color: var(--primary-red); }
.form-input.success + .form-input-icon { color: var(--primary-green); }

.password-toggle { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); background: none; border: none; padding: 4px; cursor: pointer; color: var(--gray-400); }
.password-toggle:hover { color: var(--gray-600); }
.password-toggle svg { width: 18px; height: 18px; }

.form-error-text { display: none; color: var(--primary-red); font-size: 12px; margin-top: 6px; font-weight: 500; }
.form-error-text.show { display: flex; align-items: center; gap: 4px; }
.form-error-text svg { width: 14px; height: 14px; flex-shrink: 0; }

/* Password Strength */
.password-strength { margin-top: 8px; }
.password-strength-bar { height: 4px; background: var(--gray-200); border-radius: 2px; overflow: hidden; }
.password-strength-fill { height: 100%; width: 0; transition: all 0.3s; border-radius: 2px; }
.password-strength-fill.weak { width: 33%; background: var(--primary-red); }
.password-strength-fill.medium { width: 66%; background: #f59e0b; }
.password-strength-fill.strong { width: 100%; background: var(--primary-green); }
.password-strength-text { font-size: 11px; margin-top: 4px; font-weight: 500; }
.password-strength-text.weak { color: var(--primary-red); }
.password-strength-text.medium { color: #f59e0b; }
.password-strength-text.strong { color: var(--primary-green); }

/* Captcha */
.form-captcha { display: flex; align-items: center; gap: 12px; }
.captcha-image { background: var(--gray-100); border-radius: 8px; padding: 10px 16px; font-size: 16px; font-weight: 700; letter-spacing: 3px; color: var(--gray-700); white-space: nowrap; }
.captcha-input { flex: 1; padding-left: 18px !important; }

.form-submit { margin-top: 24px; }
.form-submit .btn { width: 100%; padding: 14px 24px; font-size: 15px; }

.form-terms { font-size: 12px; color: var(--gray-500); text-align: center; margin-top: 16px; line-height: 1.6; }
.form-terms a { color: var(--primary-green); text-decoration: none; font-weight: 600; }
.form-terms a:hover { text-decoration: underline; }

/* Auth Footer */
.auth-footer { text-align: center; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--gray-100); }
.auth-footer p { color: var(--gray-500); font-size: 14px; }
.auth-footer a { color: var(--primary-green); text-decoration: none; font-weight: 600; font-size: 14px; transition: color 0.2s; }
.auth-footer a:hover { color: var(--primary-green-dark); text-decoration: underline; }
.auth-footer span { color: var(--gray-400); margin: 0 12px; }

/* Auth Features Side */
.auth-features-side { flex: 1; background: var(--gray-900); padding: 60px 50px; overflow-y: auto; display: flex; flex-direction: column; }
.features-header { margin-bottom: 40px; }
.features-header h2 { color: var(--white); font-size: 2rem; font-weight: 800; margin-bottom: 12px; }
.features-header p { color: var(--gray-400); font-size: 15px; }
.features-list { flex: 1; }
.feature-item { display: flex; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--gray-800); }
.feature-item:last-child { border-bottom: none; }
.feature-item-icon { width: 48px; height: 48px; background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.feature-item-icon svg { width: 24px; height: 24px; color: var(--white); }
.feature-item-content h3 { color: var(--white); font-size: 1rem; font-weight: 700; margin-bottom: 6px; }
.feature-item-content p { color: var(--gray-400); font-size: 13px; line-height: 1.6; }
.features-cta { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--gray-800); }
.features-cta p { color: var(--gray-400); font-size: 14px; margin-bottom: 16px; }
.features-cta a { color: var(--primary-green); text-decoration: none; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; transition: gap 0.2s; }
.features-cta a:hover { gap: 12px; }
.features-cta a svg { width: 18px; height: 18px; }

/* Hero Dark */
.hero-dark { padding: 100px 0 80px; background: linear-gradient(135deg, var(--gray-900) 0%, var(--gray-800) 100%); position: relative; overflow: hidden; text-align: center; }
.hero-dark::before { content: ''; position: absolute; top: -50%; left: 50%; transform: translateX(-50%); width: 100%; height: 200%; background: radial-gradient(ellipse, rgba(80, 185, 72, 0.15) 0%, transparent 50%); pointer-events: none; }
.hero-dark .container { position: relative; z-index: 1; }
.hero-dark .hero-badge { background: rgba(80, 185, 72, 0.15); border: 1px solid rgba(80, 185, 72, 0.3); color: var(--primary-green); }
.hero-dark h1 { font-size: 3.5rem; font-weight: 800; color: var(--white); margin-bottom: 16px; }
.hero-dark h1 span { background: linear-gradient(135deg, var(--primary-green) 0%, #7dd87a 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.hero-dark .hero-subtitle { font-size: 1.25rem; color: var(--gray-400); margin-bottom: 32px; }
.hero-dark p { font-size: 1.125rem; color: var(--gray-300); max-width: 700px; margin: 0 auto 40px; line-height: 1.8; }

/* Stats Row in Hero */
.stats-row { display: flex; justify-content: center; gap: 60px; margin-top: 48px; flex-wrap: wrap; }
.stats-row .stat-item { text-align: center; border: none; padding: 0; }
.stats-row .stat-number { font-size: 2.5rem; font-weight: 800; color: var(--primary-green); margin-bottom: 8px; }
.stats-row .stat-label { font-size: 14px; color: var(--gray-400); font-weight: 500; }

/* Services Grid */
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.service-card { background: var(--white); border-radius: 20px; padding: 40px 32px; border: 1px solid var(--gray-200); transition: all 0.3s ease; display: flex; flex-direction: column; }
.service-card:hover { border-color: var(--primary-green); box-shadow: var(--shadow-xl); transform: translateY(-8px); }
.service-card .icon { width: 72px; height: 72px; background: linear-gradient(135deg, var(--green-100) 0%, var(--green-200) 100%); border-radius: 18px; display: flex; align-items: center; justify-content: center; margin-bottom: 24px; }
.service-card .icon svg { width: 36px; height: 36px; color: var(--primary-green); }
.service-card h3 { font-size: 1.25rem; font-weight: 700; color: var(--gray-900); margin-bottom: 16px; }
.service-card p { color: var(--gray-600); font-size: 15px; line-height: 1.7; margin-bottom: 24px; flex-grow: 1; }
.service-card .btn { align-self: flex-start; }

/* Why Us Cards */
.why-us-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.why-us-card { text-align: center; padding: 48px 32px; }
.why-us-card .icon { width: 100px; height: 100px; background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 28px; box-shadow: 0 12px 40px rgba(80, 185, 72, 0.3); }
.why-us-card .icon svg { width: 48px; height: 48px; color: var(--white); }
.why-us-card h3 { font-size: 1.5rem; font-weight: 800; color: var(--gray-900); margin-bottom: 16px; }
.why-us-card p { color: var(--gray-600); font-size: 15px; line-height: 1.8; }

/* Content Section */
.content-section { padding: 100px 0; background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%); }
.content-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.content-text h2 { font-size: 2.5rem; font-weight: 800; color: var(--gray-900); margin-bottom: 24px; }
.content-text p { color: var(--gray-600); font-size: 1rem; line-height: 1.9; margin-bottom: 20px; }
.content-image img { max-width: 100%; height: auto; border-radius: 20px; box-shadow: var(--shadow-xl); }

/* Info Cards Custom */
.info-cards-section { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 60px; }
.info-card-custom { background: var(--white); border-radius: 16px; padding: 32px; box-shadow: var(--shadow); border-left: 4px solid var(--primary-green); }
.info-card-custom .icon { width: 56px; height: 56px; background: var(--green-100); border-radius: 14px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.info-card-custom .icon svg { width: 28px; height: 28px; color: var(--primary-green); }
.info-card-custom p { color: var(--gray-600); font-size: 14px; line-height: 1.8; margin: 0; }
.info-card-custom strong { color: var(--gray-900); font-size: 15px; }

/* Trial Section */
.trial-section { padding: 80px 0; background: linear-gradient(135deg, var(--gray-900) 0%, var(--gray-800) 100%); text-align: center; }
.trial-section h2 { font-size: 2rem; font-weight: 800; color: var(--white); margin-bottom: 16px; }
.trial-section p { color: var(--gray-400); font-size: 1.125rem; margin-bottom: 32px; }
.trial-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.btn-outline-white { background: transparent; border: 2px solid rgba(255,255,255,0.3); color: var(--white); }
.btn-outline-white:hover { background: rgba(255,255,255,0.1); border-color: var(--white); }

/* CTA Green Section */
.cta-green { padding: 100px 0; background: var(--primary-green); text-align: center; }
.cta-green h2 { font-size: 2.75rem; font-weight: 800; color: var(--white); margin-bottom: 20px; }
.cta-green p { color: rgba(255,255,255,0.9); font-size: 1.125rem; margin-bottom: 40px; max-width: 600px; margin-left: auto; margin-right: auto; line-height: 1.7; }
.cta-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* Responsive */
@media (max-width: 1024px) {
	.nav, .header-actions { display: none; }
	.mobile-toggle { display: block; }
	.mobile-menu { display: block; }
	.hero-content { grid-template-columns: 1fr; text-align: center; }
	.hero-image { display: none; }
	.hero-buttons { justify-content: center; }
	.hero h1 { font-size: 2rem; }
	.hero-stats { grid-template-columns: repeat(2, 1fr); }
	.hero-stats .stat-item { padding: 20px; }
	.hero-stats .stat-item:nth-child(2) { border-right: none; }
	.hero-stats .stat-item:nth-child(1), .hero-stats .stat-item:nth-child(2) { border-bottom: 1px solid var(--gray-200); padding-bottom: 20px; margin-bottom: 20px; }
	.stat-item { border-right: none; }
	.promo-content { grid-template-columns: 1fr; text-align: center; }
	.promo-features { max-width: 400px; margin: 24px auto 0; }
	.info-cards-grid { grid-template-columns: repeat(2, 1fr); }
	.tab-grid { grid-template-columns: 1fr; }
	.why-grid { grid-template-columns: 1fr; }
	.blacklist-content { grid-template-columns: 1fr; }
	.whatwedo-grid { grid-template-columns: repeat(2, 1fr); }
	.other-stuff-grid { grid-template-columns: repeat(3, 1fr); }
	.info-boxes-grid { grid-template-columns: 1fr; }
	.footer-grid { grid-template-columns: repeat(2, 1fr); }
	.mega-menu { display: none; }
	.cms-badges { gap: 8px; }
	.cms-badge { padding: 10px 16px; font-size: 13px; }
	.threats-grid, .benefits-grid, .pricing-grid, .plugins-grid { grid-template-columns: 1fr; }
	.features-grid, .compatibility-grid { grid-template-columns: 1fr; }
	.process-grid, .attack-vectors-grid { grid-template-columns: repeat(2, 1fr); }
	.pricing-card.featured { transform: none; }
	.auth-page { flex-direction: column; }
	.auth-form-side { padding: 40px 24px; }
	.auth-features-side { padding: 40px 24px; }
	.features-header h2 { font-size: 1.5rem; }
	.services-grid { grid-template-columns: repeat(2, 1fr); }
	.why-us-grid { grid-template-columns: repeat(3, 1fr); gap: 32px; }
	.content-grid { grid-template-columns: 1fr; gap: 48px; }
	.info-cards-section { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
	.hero { padding: 30px 0 10px; }
	.hero h1 { font-size: 1.75rem; }
	.stats-section { padding: 20px 0; }
	.hero-stats .stat-item { padding: 16px; }
	.section { padding: 60px 0; }
	.section-header h2 { font-size: 1.75rem; }
	.scanner-section { padding: 40px 0; }
	.scanner-form { flex-direction: column; }
	.scanner-box h3 { font-size: 1.5rem; }
	.tabs-nav { gap: 8px; }
	.tab-btn { padding: 10px 16px; font-size: 12px; }
	.other-stuff-grid { grid-template-columns: repeat(2, 1fr); }
	.footer-grid { grid-template-columns: 1fr; gap: 32px; }
	.footer-bottom { flex-direction: column; text-align: center; }
	.process-grid, .attack-vectors-grid { grid-template-columns: 1fr; }
	.final-cta h2 { font-size: 2rem; }
	.hero-dark { padding: 60px 0 50px; }
	.hero-dark h1 { font-size: 2.25rem; }
	.stats-row { gap: 32px; }
	.stats-row .stat-number { font-size: 2rem; }
	.services-grid { grid-template-columns: 1fr; }
	.why-us-grid { grid-template-columns: 1fr; gap: 40px; }
	.content-section { padding: 60px 0; }
	.content-text h2 { font-size: 1.75rem; }
	.info-cards-section { grid-template-columns: 1fr; }
	.trial-section { padding: 60px 0; }
	.cta-green { padding: 60px 0; }
	.cta-green h2 { font-size: 2rem; }
}
@media (max-width: 600px) {
	.auth-card { padding: 28px 24px; }
	.form-row { grid-template-columns: 1fr; }
	.auth-header h1 { font-size: 1.25rem; }
	.form-captcha { flex-direction: column; align-items: stretch; }
	.captcha-input { padding-left: 44px !important; }
}
@media (max-width: 480px) {
	.auth-card { padding: 32px 24px; }
	.auth-header h1 { font-size: 1.25rem; }
}

#MyLiveChatContainer{bottom:0px;cursor:pointer;display:block;left:auto;position:fixed;right:1%;top:auto;z-index:99999}

.cookiepolicy a { color: var(--primary-green); text-decoration: none; }
.cookiepolicy a:hover { text-decoration: underline; }
.cookiepolicy a.btn { color: var(--white) }



.hero-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

.stats-section { background: var(--white); padding: 30px 0; border-bottom: 4px solid var(--primary-green); }
.hero-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; max-width: 1000px; margin: 0 auto; }
.hero-stats .stat-item { padding: 0 32px; text-align: center; border-right: 1px solid var(--gray-200); }
.hero-stats .stat-item:last-child { border-right: none; }
.stat-value { font-size: 2.5rem; font-weight: 800; color: var(--primary-green); margin-bottom: 8px; letter-spacing: -0.025em; }
.stat-label { color: var(--gray-600); font-size: 14px; font-weight: 500; }

.section-header { text-align: center; max-width: 800px; margin: 0 auto 48px; }
.section-header h2 { font-size: 2rem; font-weight: 800; color: var(--gray-900); margin-bottom: 16px; }
.section-header p { font-size: 1rem; color: var(--gray-500); line-height: 1.7; }

.summary-section { padding: 80px 0; background: var(--white); }
.summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 24px; }
.summary-grid-bottom { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 900px; margin: 0 auto; }
.summary-card { background: var(--gray-50); border-radius: 16px; padding: 24px; border: 1px solid var(--gray-200); transition: all 0.3s; text-align: center; }
.summary-card:hover { border-color: var(--primary-green); box-shadow: var(--shadow-lg); }
.summary-card .icon { width: 48px; height: 48px; background: var(--green-100); border-radius: 12px; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.summary-card .icon svg { width: 24px; height: 24px; color: var(--primary-green); }
.summary-card h4 { font-size: 0.9rem; font-weight: 700; color: var(--gray-900); margin-bottom: 8px; }
.summary-card p { color: var(--gray-600); font-size: 12px; line-height: 1.5; margin: 0; }



.faq-section { padding: 80px 0; background: var(--gray-50); }
.faq-grid { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.faq-item { background: var(--white); border-radius: 12px; border: 1px solid var(--gray-200); overflow: hidden; transition: all 0.3s; }
.faq-item:hover { border-color: var(--primary-green); }
.faq-item.active { border-color: var(--primary-green); box-shadow: var(--shadow); }
.faq-question { padding: 20px 24px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.faq-question h4 { font-size: 14px; font-weight: 700; color: var(--gray-900); margin: 0; }
.faq-question .icon { width: 28px; height: 28px; background: var(--green-100); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.3s; }
.faq-item.active .faq-question .icon { background: var(--primary-green); transform: rotate(180deg); }
.faq-question .icon svg { width: 16px; height: 16px; color: var(--primary-green); }
.faq-item.active .faq-question .icon svg { color: var(--white); }
.faq-answer { padding: 0 24px 20px; display: none; }
.faq-item.active .faq-answer { display: block; }
.faq-answer p { color: var(--gray-600); font-size: 13px; line-height: 1.8; margin: 0; }



.pricing-section { padding: 80px 0; background: var(--white); }
.pricing-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.pricing-card { background: var(--white); border-radius: 20px; border: 2px solid var(--gray-200); padding: 32px; transition: all 0.3s; position: relative; display: flex; flex-direction: column; }
.pricing-card:hover { border-color: var(--primary-green); box-shadow: var(--shadow-xl); }
.pricing-card.featured { border-color: var(--primary-green); box-shadow: var(--shadow-xl); }
.pricing-card.featured::before { content: 'MOST POPULAR'; position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--primary-green); color: var(--white); font-size: 10px; font-weight: 700; padding: 5px 14px; border-radius: 20px; white-space: nowrap; letter-spacing: 0.5px; }
.pricing-card-header { text-align: center; padding-bottom: 20px; border-bottom: 1px solid var(--gray-200); margin-bottom: 20px; }
.pricing-card-header h3 { font-size: 1.25rem; font-weight: 700; color: var(--gray-900); margin-bottom: 4px; }
.pricing-card-header .price { font-size: 2rem; font-weight: 800; color: var(--primary-green); }
.pricing-card-header .price span { font-size: 0.875rem; font-weight: 500; color: var(--gray-500); }
.pricing-card-header .price-yearly { font-size: 12px; color: var(--gray-500); margin-top: 4px; }
.pricing-card-header .best-for { font-size: 11px; color: var(--gray-500); margin-top: 12px; font-style: italic; }
.pricing-features { flex: 1; display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.pricing-feature { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; color: var(--gray-600); }
.pricing-feature svg { width: 14px; height: 14px; color: var(--primary-green); flex-shrink: 0; margin-top: 2px; }
.pricing-extras { padding-top: 16px; border-top: 1px solid var(--gray-100); margin-bottom: 20px; }
.pricing-extras p { font-size: 11px; color: var(--gray-500); margin: 4px 0; }
.pricing-card .btn { width: 100%; }

.final-cta { padding: 100px 0; background: var(--primary-green); text-align: center; }
.final-cta h2 { font-size: 2rem; font-weight: 800; color: var(--white); margin-bottom: 16px; }
.final-cta p { color: rgba(255,255,255,0.9); font-size: 1rem; margin-bottom: 32px; max-width: 600px; margin-left: auto; margin-right: auto; }

@media (max-width: 1024px) {
	.hero-stats { grid-template-columns: repeat(2, 1fr); }
	.hero-stats .stat-item { padding: 20px; }
	.hero-stats .stat-item:nth-child(2) { border-right: none; }
	.hero-stats .stat-item:nth-child(1), .hero-stats .stat-item:nth-child(2) { border-bottom: 1px solid var(--gray-200); }
	.summary-grid { grid-template-columns: repeat(2, 1fr); }
	.summary-grid-bottom { grid-template-columns: repeat(2, 1fr); max-width: 100%; }
	.what-is-list { grid-template-columns: repeat(2, 1fr); }
	.pillars-grid { grid-template-columns: 1fr; }
	.components-grid { grid-template-columns: repeat(2, 1fr); }
	.platforms-grid { grid-template-columns: repeat(2, 1fr); }
	.defense-grid { grid-template-columns: 1fr; }
	.more-grid { grid-template-columns: 1fr; }
	.compliance-list { grid-template-columns: 1fr; }
	.why-list { grid-template-columns: 1fr; }
	.pricing-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
	.hero-prevent { padding: 60px 0 40px; }
	.hero-prevent h1 { font-size: 1.875rem; }
	.stats-section { padding: 20px 0; }
	.summary-section, .what-is-section, .pillars-section, .components-section, .platforms-section, .defense-section, .more-defenses, .compliance-section, .why-section, .faq-section, .pricing-section { padding: 60px 0; }
	.summary-grid, .summary-grid-bottom, .what-is-list, .components-grid, .platforms-grid { grid-template-columns: 1fr; }
	.pricing-grid { grid-template-columns: 1fr; max-width: 400px; margin: 0 auto; }
	.final-cta { padding: 60px 0; }
	.compliance-box, .why-box { padding: 24px; }
}


.faq-section { padding: 100px 0; background: var(--white); }
.faq-grid { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.faq-item { background: var(--gray-50); border-radius: 12px; border: 1px solid var(--gray-200); overflow: hidden; transition: all 0.3s; }
.faq-item:hover { border-color: var(--primary-green); }
.faq-item.active { border-color: var(--primary-green); box-shadow: var(--shadow); }
.faq-question { padding: 20px 24px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.faq-question h4 { font-size: 15px; font-weight: 700; color: var(--gray-900); margin: 0; }
.faq-question .icon { width: 28px; height: 28px; background: var(--green-100); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.3s; }
.faq-item.active .faq-question .icon { background: var(--primary-green); transform: rotate(180deg); }
.faq-question .icon svg { width: 16px; height: 16px; color: var(--primary-green); }
.faq-item.active .faq-question .icon svg { color: var(--white); }
.faq-answer { padding: 0 24px 20px; display: none; }
.faq-item.active .faq-answer { display: block; }
.faq-answer p { color: var(--gray-600); font-size: 14px; line-height: 1.8; margin: 0; }

.pricing-sqli { padding: 80px 0; background: var(--gray-50); }
.pricing-grid-sqli { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.pricing-card-sqli { background: var(--white); border-radius: 20px; border: 2px solid var(--gray-200); padding: 32px; transition: all 0.3s; position: relative; display: flex; flex-direction: column; }
.pricing-card-sqli:hover { border-color: var(--primary-green); box-shadow: var(--shadow-xl); }
.pricing-card-sqli.featured { border-color: var(--primary-green); box-shadow: var(--shadow-xl); }
.pricing-card-sqli.featured::before { content: 'Most Popular'; position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--primary-green); color: var(--white); font-size: 11px; font-weight: 700; padding: 5px 14px; border-radius: 20px; white-space: nowrap; }
.pricing-card-sqli-header { text-align: center; padding-bottom: 20px; border-bottom: 1px solid var(--gray-200); margin-bottom: 20px; }
.pricing-card-sqli-header h3 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); margin-bottom: 6px; }
.pricing-card-sqli-header .price { font-size: 2rem; font-weight: 800; color: var(--primary-green); }
.pricing-card-sqli-header .price span { font-size: 0.875rem; font-weight: 500; color: var(--gray-500); }
.pricing-card-sqli-header .price-yearly { font-size: 13px; color: var(--gray-500); margin-top: 4px; }
.pricing-card-sqli-header .best-for { font-size: 12px; color: var(--gray-500); margin-top: 12px; font-style: italic; }
.pricing-features-sqli { flex: 1; display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
.pricing-feature-sqli { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--gray-600); }
.pricing-feature-sqli svg { width: 16px; height: 16px; color: var(--primary-green); flex-shrink: 0; margin-top: 2px; }
.pricing-extras { padding-top: 16px; border-top: 1px solid var(--gray-100); margin-bottom: 20px; }
.pricing-extras p { font-size: 12px; color: var(--gray-500); margin: 4px 0; }
.pricing-extras strong { color: var(--gray-700); }
.pricing-card-sqli .btn { width: 100%; }
.pricing-onetime { text-align: center; margin-top: 48px; padding: 32px; background: var(--white); border-radius: 16px; border: 1px solid var(--gray-200); }
.pricing-onetime h4 { font-size: 1.125rem; font-weight: 700; color: var(--gray-900); margin-bottom: 8px; }
.pricing-onetime p { color: var(--gray-600); font-size: 14px; margin-bottom: 20px; }

@media (max-width: 1024px) {
	.pricing-grid-sqli { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
	.faq-section, .pricing-sqli { padding: 60px 0; }
	.pricing-grid-sqli { grid-template-columns: 1fr; max-width: 400px; margin: 0 auto; }
}

/* Page Title Section */
.page-title-section { padding: 60px 0 40px; background: linear-gradient(180deg, var(--green-50) 0%, var(--white) 100%); border-bottom: 1px solid var(--gray-200); }
.page-title-section h1 { font-size: 2.25rem; font-weight: 800; color: var(--gray-900); margin-bottom: 16px; text-align: center; }
.page-title-section h1 span { color: var(--primary-green); }
.page-title-section .subtitle { font-size: 1rem; color: var(--gray-600); text-align: center; max-width: 800px; margin: 0 auto; line-height: 1.7; }

/* Article Content */
.article-section { padding: 60px 0; background: var(--white); }
.article-content { margin: 0 auto; }
.article-content h2 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); margin: 40px 0 16px; padding-top: 20px; border-top: 1px solid var(--gray-200); display: flex; align-items: center; gap: 12px; }
.article-content h2:first-of-type { border-top: none; margin-top: 0; padding-top: 0; }
.article-content h2 .icon { width: 40px; height: 40px; background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.article-content h2 .icon svg { width: 20px; height: 20px; color: var(--white); }
.article-content h3 { font-size: 1.25rem; font-weight: 700; color: var(--gray-800); margin: 32px 0 12px; }
.article-content h4 { font-size: 1.1rem; font-weight: 600; color: var(--gray-700); margin: 24px 0 10px; }
.article-content h5 { font-size: 1rem; font-weight: 600; color: var(--gray-700); margin: 20px 0 8px; }
.article-content h6 { font-size: 0.95rem; font-weight: 600; color: var(--gray-700); margin: 16px 0 8px; }
.article-content p { color: var(--gray-600); font-size: 15px; line-height: 1.8; margin-bottom: 16px; }
.article-content p strong { color: var(--gray-800); }
.article-content ol, .article-content ul { margin: 16px 0 24px 24px; }
.article-content ol li, .article-content ul li { color: var(--gray-600); font-size: 15px; line-height: 1.8; margin-bottom: 12px; padding-left: 8px; }
.article-content ol li strong { color: var(--gray-800); }

/* Image Block */
.article-image { text-align: center; margin: 32px 0; padding: 24px; background: var(--gray-50); border-radius: 16px; }
.article-image img { max-width: 100%; height: auto; border-radius: 8px; }

@media (max-width: 1024px) {
	.learn-more-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
	.page-title-section { padding: 40px 0 30px; }
	.page-title-section h1 { font-size: 1.75rem; }
	.article-section { padding: 40px 0; }
	.article-content h2 { font-size: 1.25rem; }
}


/* Learn More Links */
.learn-more-section { background: var(--gray-50); border-radius: 16px; padding: 32px; margin: 40px 0; }
.learn-more-section h3 { font-size: 1.25rem; font-weight: 700; color: var(--gray-900); margin-bottom: 20px; display: flex; align-items: center; gap: 10px; }
.learn-more-section h3 svg { width: 24px; height: 24px; color: var(--primary-green); }
.learn-more-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.learn-more-link { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: var(--white); border-radius: 10px; color: var(--gray-700); text-decoration: none; font-size: 14px; font-weight: 500; transition: all 0.2s; border: 1px solid var(--gray-200); }
.learn-more-link:hover { border-color: var(--primary-green); color: var(--primary-green); background: var(--green-50); }
.learn-more-link svg { width: 18px; height: 18px; color: var(--primary-green); flex-shrink: 0; }




/* Plugin Page Container */
.plugin-page { padding: 60px 0 80px; background: var(--white); }

/* Plugin Header */
.plugin-header { display: flex; gap: 32px; align-items: flex-start; margin-bottom: 40px; padding-bottom: 32px; border-bottom: 1px solid var(--gray-200); }
.plugin-logo { width: 120px; height: 120px; flex-shrink: 0; background: var(--gray-50); border-radius: 20px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--gray-200); overflow: hidden; }
.plugin-logo img { max-width: 80%; max-height: 80%; object-fit: contain; }
.plugin-logo svg { width: 64px; height: 64px; color: var(--primary-green); }
.plugin-info { flex: 1; }
.plugin-info h1 { font-size: 2rem; font-weight: 800; color: var(--gray-900); margin-bottom: 16px; line-height: 1.3; }
.plugin-info > p { color: var(--gray-600); font-size: 15px; line-height: 1.8; margin-bottom: 16px; }
.plugin-meta { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 20px; }
.plugin-meta-item { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--gray-500); }
.plugin-meta-item svg { width: 16px; height: 16px; color: var(--primary-green); }
.plugin-meta-item strong { color: var(--gray-700); font-weight: 600; }

/* Plugin CMS Badge */
.plugin-cms-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; background: var(--green-50); border: 1px solid var(--green-200); border-radius: 6px; font-size: 12px; font-weight: 600; color: var(--primary-green-dark); margin-bottom: 12px; }
.plugin-cms-badge svg { width: 14px; height: 14px; }

/* Plugin Description Section */
.plugin-description { margin-bottom: 40px; }
.plugin-description h2 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); margin-bottom: 16px; }
.plugin-description p { color: var(--gray-600); font-size: 15px; line-height: 1.8; margin-bottom: 16px; }

/* Plugin Features List */
.plugin-features { margin-bottom: 40px; }
.plugin-features h2 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); margin-bottom: 20px; }
.plugin-features-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.plugin-features-list li { display: flex; align-items: flex-start; gap: 12px; padding: 16px; background: var(--gray-50); border-radius: 10px; border: 1px solid var(--gray-200); transition: all 0.3s; }
.plugin-features-list li:hover { border-color: var(--primary-green); background: var(--green-50); }
.plugin-features-list li svg { width: 20px; height: 20px; color: var(--primary-green); flex-shrink: 0; margin-top: 2px; }
.plugin-features-list li span { color: var(--gray-700); font-size: 14px; line-height: 1.6; }

/* Plugin Screenshots */
.plugin-screenshots { margin-bottom: 40px; }
.plugin-screenshots h2 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); margin-bottom: 20px; }
.plugin-screenshots-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.plugin-screenshot { border-radius: 12px; overflow: hidden; border: 1px solid var(--gray-200); transition: all 0.3s; cursor: pointer; }
.plugin-screenshot:hover { border-color: var(--primary-green); box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.plugin-screenshot img { width: 100%; height: auto; display: block; }

/* Plugin Comparison Table */
.plugin-comparison { margin-bottom: 40px; }
.plugin-comparison h2 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); margin-bottom: 20px; }
.plugin-comparison-table { width: 100%; border-collapse: collapse; background: var(--white); border-radius: 16px; overflow: hidden; border: 1px solid var(--gray-200); }
.plugin-comparison-table thead th { background: var(--gray-50); padding: 20px 16px; text-align: left; font-size: 14px; font-weight: 700; color: var(--gray-900); border-bottom: 2px solid var(--gray-200); }
.plugin-comparison-table thead th:first-child { width: 50%; }
.plugin-comparison-table thead th:not(:first-child) { text-align: center; width: 25%; }
.plugin-comparison-table thead th.featured { background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%); color: var(--primary-green-dark); }
.plugin-comparison-table tbody td { padding: 14px 16px; border-bottom: 1px solid var(--gray-100); font-size: 14px; color: var(--gray-600); }
.plugin-comparison-table tbody td:not(:first-child) { text-align: center; }
.plugin-comparison-table tbody td.featured { background: var(--green-50); }
.plugin-comparison-table tbody tr:last-child td { border-bottom: none; }
.plugin-comparison-table tbody tr:hover td { background: var(--gray-50); }
.plugin-comparison-table tbody tr:hover td.featured { background: var(--green-100); }
.plugin-comparison-table .check-yes { color: var(--primary-green); font-weight: 600; }
.plugin-comparison-table .check-no { color: var(--gray-400); }
.plugin-comparison-table .check-limited { color: var(--gray-500); font-size: 12px; }
.plugin-comparison-table .price { font-size: 1.25rem; font-weight: 800; color: var(--primary-green); }
.plugin-comparison-table .price-free { font-size: 1.25rem; font-weight: 800; color: var(--gray-700); }
.plugin-comparison-table .price small { font-size: 12px; font-weight: 500; color: var(--gray-500); display: block; margin-top: 4px; }

/* Plugin Table Header Card */
.plugin-table-header { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.plugin-table-header .version-badge { display: inline-block; padding: 4px 10px; background: var(--gray-200); border-radius: 4px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--gray-600); }
.plugin-table-header .version-badge.paid { background: var(--primary-green); color: var(--white); }
.plugin-table-header .title { font-size: 14px; font-weight: 700; color: var(--gray-900); }

/* Plugin Action Buttons Row */
.plugin-actions { display: flex; gap: 12px; margin-top: 16px; justify-content: center; flex-wrap: wrap; }
.plugin-actions .btn { font-size: 13px; padding: 10px 20px; }

/* Plugin Download Section */
.plugin-download { background: linear-gradient(135deg, var(--gray-50) 0%, var(--green-50) 100%); border-radius: 16px; padding: 32px; border: 1px solid var(--green-200); margin-bottom: 40px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.plugin-download-info h3 { font-size: 1.25rem; font-weight: 700; color: var(--gray-900); margin-bottom: 8px; }
.plugin-download-info p { color: var(--gray-600); font-size: 14px; margin: 0; }
.plugin-download-buttons { display: flex; gap: 12px; flex-wrap: wrap; }

/* Plugin Manual Link */
.plugin-manual { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; background: var(--white); border: 1px solid var(--gray-200); border-radius: 10px; color: var(--gray-700); font-size: 14px; font-weight: 600; transition: all 0.3s; text-decoration: none; margin-bottom: 24px; }
.plugin-manual:hover { border-color: var(--primary-green); color: var(--primary-green); background: var(--green-50); }
.plugin-manual svg { width: 20px; height: 20px; }

/* Plugin Related Extensions */
.plugin-related { margin-top: 60px; padding-top: 40px; border-top: 1px solid var(--gray-200); }
.plugin-related h2 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); margin-bottom: 24px; text-align: center; }
.plugin-related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
.plugin-related-card { background: var(--gray-50); border-radius: 12px; padding: 20px; border: 1px solid var(--gray-200); transition: all 0.3s; text-decoration: none; }
.plugin-related-card:hover { border-color: var(--primary-green); background: var(--white); box-shadow: var(--shadow-lg); }
.plugin-related-card h4 { font-size: 15px; font-weight: 700; color: var(--gray-900); margin-bottom: 8px; }
.plugin-related-card p { font-size: 13px; color: var(--gray-500); margin: 0; line-height: 1.5; }

/* Plugin Page Responsive */
@media (max-width: 768px) {
    .plugin-header { flex-direction: column; align-items: center; text-align: center; }
    .plugin-logo { width: 100px; height: 100px; }
    .plugin-info h1 { font-size: 1.5rem; }
    .plugin-meta { justify-content: center; }
    .plugin-download { flex-direction: column; text-align: center; }
    .plugin-download-buttons { justify-content: center; }
    .plugin-comparison-table { font-size: 12px; }
    .plugin-comparison-table thead th, .plugin-comparison-table tbody td { padding: 10px 8px; }
}



/* ============================================
   SG Common Page Components
   ============================================ */

/* --- Page Hero Section --- */
.sg-hero { padding: 70px 0 50px; background: linear-gradient(180deg, var(--green-50) 0%, var(--green-100) 40%, var(--white) 100%); text-align: center; position: relative; overflow: hidden; }
.sg-hero::before { content: ''; position: absolute; top: 10%; right: -10%; width: 500px; height: 500px; background: radial-gradient(circle, rgba(80, 185, 72, 0.08) 0%, transparent 70%); pointer-events: none; }
.sg-hero h1 { font-size: 2.5rem; font-weight: 800; color: var(--gray-900); margin-bottom: 16px; letter-spacing: -0.025em; line-height: 1.2; }
.sg-hero h1 span { color: var(--primary-green); }
.sg-hero-sub { font-size: 1rem; color: var(--gray-600); max-width: 760px; margin: 0 auto 32px; line-height: 1.7; }

/* --- Hero Tags --- */
.sg-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 700px; margin: 0 auto; }
.sg-tag { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; background: var(--white); border: 1px solid var(--gray-200); border-radius: 50px; font-size: 13px; font-weight: 600; color: var(--gray-700); box-shadow: var(--shadow-sm); transition: all 0.2s; }
.sg-tag:hover { border-color: var(--primary-red); color: var(--primary-red); }
.sg-tag svg { width: 14px; height: 14px; color: var(--primary-red-light); }

/* --- Article Body --- */
.sg-article { max-width: 900px; margin: 0 auto; }
.sg-article p { color: var(--gray-600); font-size: 15px; line-height: 1.9; margin-bottom: 18px; }
.sg-article p strong { color: var(--gray-800); }
.sg-article h2 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); margin: 44px 0 16px; padding-top: 24px; border-top: 1px solid var(--gray-200); display: flex; align-items: center; gap: 12px; }
.sg-article h2:first-of-type { border-top: none; margin-top: 0; padding-top: 0; }
.sg-article h2 .icon { width: 40px; height: 40px; background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sg-article h2 .icon svg { width: 20px; height: 20px; color: var(--white); }

/* --- Stats Row --- */
.sg-stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.sg-stat { text-align: center; padding: 24px 16px; background: var(--white); border-radius: 14px; border: 1px solid var(--red-100); box-shadow: var(--shadow); transition: all 0.3s; }
.sg-stat:hover { border-color: var(--primary-red); transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.sg-stat .num { font-size: 2rem; font-weight: 800; color: var(--primary-red); margin-bottom: 6px; }
.sg-stat p { color: var(--gray-600); font-size: 13px; line-height: 1.4; margin: 0; }

/* --- Warning Box (red) --- */
.sg-warn-box { background: linear-gradient(135deg, var(--red-50) 0%, var(--white) 100%); border: 1px solid var(--red-100); border-left: 4px solid var(--primary-red); border-radius: 14px; padding: 24px 28px; margin: 28px 0; }
.sg-warn-box h4 { font-size: 1rem; font-weight: 700; color: var(--primary-red); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.sg-warn-box h4 svg { width: 20px; height: 20px; }
.sg-warn-box p { color: var(--gray-600); font-size: 14px; line-height: 1.7; margin: 0; }

/* --- Info Box (green) --- */
.sg-info-box { background: linear-gradient(135deg, var(--green-50) 0%, var(--white) 100%); border: 1px solid var(--green-200); border-left: 4px solid var(--primary-green); border-radius: 14px; padding: 24px 28px; margin: 28px 0; }
.sg-info-box h4 { font-size: 1rem; font-weight: 700; color: var(--primary-green-dark); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.sg-info-box h4 svg { width: 20px; height: 20px; color: var(--primary-green); }
.sg-info-box p { color: var(--gray-600); font-size: 14px; line-height: 1.7; margin: 0; }

/* --- SG Common Media Queries --- */
@media (max-width: 1024px) {
    .sg-stats-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .sg-hero { padding: 50px 0 30px; }
    .sg-hero h1 { font-size: 1.75rem; }
}
@media (max-width: 480px) {
    .sg-stats-row { grid-template-columns: 1fr; }
}
/* ============================================================================
   Buy Page (ExtentionService_buy) — Modern checkout/order page styles
   ----------------------------------------------------------------------------
   All selectors are scoped under .buy-page-wrapper to avoid conflicts with
   existing .form-row, .summary-card and other rules already defined above.
   Uses CSS variables defined in :root.
   ============================================================================ */

/* Page Header */
.buy-page-wrapper .page-header {
    padding: 120px 0 40px;
    background: linear-gradient(180deg, var(--green-50) 0%, var(--white) 100%);
    text-align: center;
}
.buy-page-wrapper .page-header h1 {
    font-size: 2.25rem;
    font-weight: 800;
    color: var(--gray-900);
    margin-bottom: 12px;
    line-height: 1.2;
}
.buy-page-wrapper .page-header h1 span {
    background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.buy-page-wrapper .page-header p {
    font-size: 1rem;
    color: var(--gray-500);
    max-width: 600px;
    margin: 0 auto;
}

/* Inline alerts (used for system-message style notices) */
.buy-page-wrapper .alert-inline {
    padding: 14px 18px;
    border-radius: 10px;
    margin: 12px 0;
    font-size: 14px;
    line-height: 1.5;
}
.buy-page-wrapper .alert-inline-warning {
    background: #FEF3C7;
    border: 1px solid #FDE68A;
    color: #92400E;
}
.buy-page-wrapper .alert-inline-success {
    background: var(--green-50);
    border: 1px solid var(--green-200);
    color: var(--primary-green-dark);
}

/* Order Form Section */
.buy-page-wrapper .order-section {
    padding: 60px 0 80px;
    background: var(--white);
}
.buy-page-wrapper .order-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 48px;
    max-width: 1100px;
    margin: 0 auto;
}

/* Form */
.buy-page-wrapper .order-form {
    background: var(--white);
}
.buy-page-wrapper .form-section {
    margin-bottom: 32px;
}
.buy-page-wrapper .form-section-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--gray-900);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1.3;
}
.buy-page-wrapper .form-section-title svg {
    width: 24px;
    height: 24px;
    color: var(--primary-green);
    flex-shrink: 0;
}
.buy-page-wrapper .form-section-title .discount-note {
    font-size: 13px;
    font-weight: 500;
    color: var(--primary-green);
    margin-left: auto;
}

/* Form rows — scoped to override the project's grid .form-row rule */
.buy-page-wrapper .form-row {
    display: block;
    grid-template-columns: none;
    gap: 0;
    margin-bottom: 20px;
}
.buy-page-wrapper .form-row label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-700);
    margin-bottom: 8px;
}
.buy-page-wrapper .form-row label .required {
    color: var(--primary-red);
}
.buy-page-wrapper .form-row input[type="text"],
.buy-page-wrapper .form-row input[type="email"],
.buy-page-wrapper .form-row input[type="url"],
.buy-page-wrapper .form-row select,
.buy-page-wrapper .form-row textarea,
.buy-page-wrapper .form-section > select,
.buy-page-wrapper .form-section > input[type="text"] {
    width: 100%;
    padding: 14px 16px;
    font-size: 15px;
    font-family: inherit;
    border: 2px solid var(--gray-200);
    border-radius: 10px;
    background: var(--white);
    transition: all 0.2s;
    color: var(--gray-900);
    box-sizing: border-box;
}
.buy-page-wrapper .form-row input:focus,
.buy-page-wrapper .form-row select:focus,
.buy-page-wrapper .form-row textarea:focus,
.buy-page-wrapper .form-section > select:focus {
    outline: none;
    border-color: var(--primary-green);
    box-shadow: 0 0 0 4px rgba(80, 185, 72, 0.1);
}
.buy-page-wrapper .form-row textarea {
    min-height: 100px;
    resize: vertical;
}
.buy-page-wrapper .form-row select,
.buy-page-wrapper .form-section > select {
    cursor: pointer;
}
.buy-page-wrapper .form-row .static-value {
    padding: 14px 16px;
    background: var(--gray-50);
    border: 2px solid var(--gray-200);
    border-radius: 10px;
    color: var(--gray-700);
}
.buy-page-wrapper .form-row .link-action {
    display: inline-block;
    margin-top: 8px;
    font-size: 13px;
    color: var(--primary-green);
    text-decoration: none;
}
.buy-page-wrapper .form-row .link-action:hover {
    text-decoration: underline;
}
.buy-page-wrapper .hint-text {
    margin-top: 8px;
    font-size: 13px;
    color: var(--gray-500);
    line-height: 1.5;
}
.buy-page-wrapper .hint-note {
    margin-top: 8px;
    font-size: 13px;
    color: #b94a48;
    line-height: 1.5;
}

/* Extra Details Toggle (#add_comments / #div_comments) */
.buy-page-wrapper .extra-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--primary-green);
    cursor: pointer;
    margin-top: 8px;
}
.buy-page-wrapper .extra-toggle:hover {
    text-decoration: underline;
}
.buy-page-wrapper .extra-toggle svg {
    width: 16px;
    height: 16px;
    transition: transform 0.2s;
}
.buy-page-wrapper .extra-toggle.open svg {
    transform: rotate(180deg);
}
.buy-page-wrapper .extra-content {
    margin-top: 16px;
}
.buy-page-wrapper .extra-content.hide {
    display: none;
}
.buy-page-wrapper .extra-content textarea {
    width: 100%;
    min-height: 120px;
    padding: 14px 16px;
    line-height: 1.6;
    font-size: 15px;
    font-family: inherit;
    border: 2px solid var(--gray-200);
    border-radius: 10px;
    background: var(--white);
    transition: all 0.2s;
    color: var(--gray-900);
    box-sizing: border-box;
    resize: vertical;
}
.buy-page-wrapper .extra-content textarea:focus {
    outline: none;
    border-color: var(--primary-green);
    box-shadow: 0 0 0 4px rgba(80, 185, 72, 0.1);
}

/* Add-on cards (high-priority, backup, SSL, BadBot) — wrap a select */
.buy-page-wrapper .addon-card {
    display: block;
    padding: 16px 20px;
    background: var(--gray-50);
    border: 2px solid var(--gray-200);
    border-radius: 12px;
    margin-bottom: 12px;
    transition: all 0.2s;
}
.buy-page-wrapper .addon-card:hover {
    border-color: var(--primary-green);
}
.buy-page-wrapper .addon-card-header {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}
.buy-page-wrapper .addon-card-icon {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    object-fit: contain;
}
.buy-page-wrapper .addon-card-icon-emoji {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    color: var(--primary-green);
}
.buy-page-wrapper .addon-card-info {
    flex: 1;
}
.buy-page-wrapper .addon-card-info .name {
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-900);
    margin-bottom: 4px;
}
.buy-page-wrapper .addon-card-info .desc {
    font-size: 12px;
    color: var(--gray-500);
    line-height: 1.5;
}
.buy-page-wrapper .addon-card-info .desc a {
    color: var(--primary-green);
    text-decoration: none;
}
.buy-page-wrapper .addon-card-info .desc a:hover {
    text-decoration: underline;
}
.buy-page-wrapper .addon-card select {
    width: 100%;
    padding: 12px 14px;
    font-size: 14px;
    font-family: inherit;
    border: 2px solid var(--gray-200);
    border-radius: 8px;
    background: var(--white);
    color: var(--gray-900);
    cursor: pointer;
    box-sizing: border-box;
}
.buy-page-wrapper .addon-card select:focus {
    outline: none;
    border-color: var(--primary-green);
    box-shadow: 0 0 0 4px rgba(80, 185, 72, 0.1);
}

/* Special offer banner */
.buy-page-wrapper .special-offer {
    background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%);
    border: 2px solid var(--green-200);
    border-radius: 12px;
    padding: 16px 20px;
    margin-top: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.buy-page-wrapper .special-offer svg {
    width: 24px;
    height: 24px;
    color: var(--primary-green);
    flex-shrink: 0;
}
.buy-page-wrapper .special-offer p {
    font-size: 13px;
    color: var(--gray-700);
    margin: 0;
    line-height: 1.5;
}
.buy-page-wrapper .special-offer strong {
    color: var(--primary-green);
}

/* Hosting offer block */
.buy-page-wrapper .hosting-offer {
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.buy-page-wrapper .hosting-offer .hosting-offer-icon {
    font-size: 48px;
    color: var(--primary-green);
    flex-shrink: 0;
}
.buy-page-wrapper .hosting-offer strong {
    display: block;
    font-size: 15px;
    color: var(--gray-900);
    margin-bottom: 4px;
}
.buy-page-wrapper .hosting-offer p {
    font-size: 13px;
    color: var(--gray-600);
    margin: 0;
    line-height: 1.5;
}
.buy-page-wrapper .hosting-offer a {
    color: var(--primary-green);
    text-decoration: none;
}
.buy-page-wrapper .hosting-offer a:hover {
    text-decoration: underline;
}

/* Coupon row */
.buy-page-wrapper .coupon-row {
    display: flex;
    gap: 12px;
}
.buy-page-wrapper .coupon-row input {
    flex: 1;
    padding: 14px 16px;
    font-size: 15px;
    font-family: inherit;
    border: 2px solid var(--gray-200);
    border-radius: 10px;
    background: var(--white);
    transition: all 0.2s;
    color: var(--gray-900);
    box-sizing: border-box;
}
.buy-page-wrapper .coupon-row input:focus {
    outline: none;
    border-color: var(--primary-green);
    box-shadow: 0 0 0 4px rgba(80, 185, 72, 0.1);
}
.buy-page-wrapper .coupon-row .btn {
    white-space: nowrap;
}

/* Radio cards for list_as_radio_buttons mode */
.buy-page-wrapper .radio-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    background: var(--gray-50);
    border: 2px solid var(--gray-200);
    border-radius: 10px;
    margin-bottom: 10px;
    cursor: pointer;
    transition: all 0.2s;
}
.buy-page-wrapper .radio-card:hover {
    border-color: var(--primary-green);
}
.buy-page-wrapper .radio-card input[type="radio"] {
    accent-color: var(--primary-green);
    width: 18px;
    height: 18px;
    margin: 0;
    flex-shrink: 0;
}
.buy-page-wrapper .radio-card span {
    font-size: 14px;
    color: var(--gray-900);
}

/* Payment Methods */
.buy-page-wrapper .payment-methods {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.buy-page-wrapper .payment-method {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    background: var(--gray-50);
    border: 2px solid var(--gray-200);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s;
}
.buy-page-wrapper .payment-method:hover {
    border-color: var(--primary-green);
}
.buy-page-wrapper .payment-method.selected {
    border-color: var(--primary-green);
    background: var(--green-50);
}
.buy-page-wrapper .payment-method input[type="radio"] {
    display: none;
}
.buy-page-wrapper .payment-radio {
    width: 22px;
    height: 22px;
    border: 2px solid var(--gray-300);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-sizing: border-box;
}
.buy-page-wrapper .payment-radio::after {
    content: '';
    width: 12px;
    height: 12px;
    background: var(--primary-green);
    border-radius: 50%;
    opacity: 0;
}
.buy-page-wrapper .payment-method.selected .payment-radio {
    border-color: var(--primary-green);
}
.buy-page-wrapper .payment-method.selected .payment-radio::after {
    opacity: 1;
}
.buy-page-wrapper .payment-info {
    flex: 1;
}
.buy-page-wrapper .payment-info .name {
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-900);
}
.buy-page-wrapper .payment-info .desc {
    font-size: 12px;
    color: var(--gray-500);
}

/* Order Summary Sidebar — Sticky */
.buy-page-wrapper .order-summary {
    position: sticky;
    top: 100px;
    align-self: start;
}
.buy-page-wrapper .summary-card-buy {
    background: var(--white);
    border: 2px solid var(--gray-200);
    border-radius: 20px;
    padding: 28px;
    box-shadow: var(--shadow-lg);
}
.buy-page-wrapper .summary-card-buy .summary-header {
    text-align: center;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--gray-200);
    margin-bottom: 20px;
}
.buy-page-wrapper .summary-card-buy .summary-header h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--gray-900);
    margin-bottom: 4px;
}
.buy-page-wrapper .summary-card-buy .summary-header p {
    font-size: 13px;
    color: var(--gray-500);
    margin: 0;
}
.buy-page-wrapper .summary-items {
    margin-bottom: 20px;
}
.buy-page-wrapper .summary-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--gray-100);
    gap: 12px;
}
.buy-page-wrapper .summary-item:last-child {
    border-bottom: none;
}
.buy-page-wrapper .summary-item .label {
    font-size: 14px;
    color: var(--gray-600);
}
.buy-page-wrapper .summary-item .value {
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-900);
    text-align: right;
}
.buy-page-wrapper .summary-item .value.coupon-discount {
    color: var(--primary-green);
}
.buy-page-wrapper .summary-item-note {
    display: block;
    padding-top: 12px;
}
.buy-page-wrapper .summary-item-note .label {
    font-size: 12px;
    line-height: 1.5;
    color: var(--gray-500);
}

/* ---------------------------------------------------------------------------
   Order Summary — extended rows (Amount + discount breakdown).
   Used by HTML2025_securapp_extention::ExtentionService_buy().
   --------------------------------------------------------------------------- */

/* Amount row — emphasized total price for the selected plan. */
.buy-page-wrapper .summary-item-amount .value b {
    font-size: 1.125rem;
    font-weight: 800;
    color: var(--gray-900);
    letter-spacing: -0.01em;
}
.buy-page-wrapper .summary-period {
    display: inline;
    font-size: 12px;
    font-weight: 400;
    color: var(--gray-500);
}

/* Discount info rows — small caption under the main label. */
.buy-page-wrapper .summary-item-reseller .label small,
.buy-page-wrapper .summary-item-multiyear .label small,
.buy-page-wrapper .summary-item-coupon .label small {
    display: block;
    font-size: 11px;
    font-weight: 400;
    color: var(--gray-500);
    margin-top: 2px;
}

/* Coupon row gets a subtle green accent (the discount is actually applied). */
.buy-page-wrapper .summary-item-coupon {
    background: var(--green-50);
    border-radius: 8px;
    padding-left: 10px;
    padding-right: 10px;
    border-bottom-color: transparent;
}
.buy-page-wrapper .summary-item-coupon .label {
    color: var(--gray-700);
}
.buy-page-wrapper .summary-item-coupon .label b {
    color: var(--primary-green-dark);
}

/* Multi-year row — neutral accent. */
.buy-page-wrapper .summary-item-multiyear {
    background: var(--gray-50);
    border-radius: 8px;
    padding-left: 10px;
    padding-right: 10px;
    border-bottom-color: transparent;
}

/* Reseller row — same neutral accent, distinct from coupon. */
.buy-page-wrapper .summary-item-reseller {
    background: var(--gray-50);
    border-radius: 8px;
    padding-left: 10px;
    padding-right: 10px;
    border-bottom-color: transparent;
}

/* Warning row — surfaces "coupon ignored because multi-year is selected". */
.buy-page-wrapper .summary-item-warning {
    display: block;
    background: var(--red-50);
    border: 1px solid var(--red-100);
    border-left: 3px solid var(--primary-red-light);
    border-radius: 8px;
    padding: 10px 12px;
    margin-top: 4px;
}
.buy-page-wrapper .summary-item-warning .label {
    color: var(--primary-red-dark);
    font-size: 13px;
    line-height: 1.4;
}
.buy-page-wrapper .summary-item-warning .label b {
    color: var(--primary-red-dark);
    font-weight: 700;
}
.buy-page-wrapper .summary-item-warning .label small {
    display: block;
    font-size: 11px;
    font-weight: 400;
    color: var(--gray-600);
    margin-top: 4px;
}

/* ---------------------------------------------------------------------------
   Scanner result panels — shared chrome (Q7=A: same loader & error chrome
   for both spam-scanner and blacklist-scanner). Per-scanner specifics follow.

   Spam scanner:      /templates/security/ver2/js/spam-scanner-2025.js
                      form .scan-url-form on /en/website-spam-scanner
   Blacklist scanner: /templates/security/ver2/js/blacklist-scanner-2025.js
                      form .blacklist-scanner-form on /en/website-blacklist-removal-service
   --------------------------------------------------------------------------- */

.spam-result-wrap,
.blacklist-result-wrap,
.freescan-result-wrap {
    width: 100%;
    max-width: 1100px;
    margin: 32px auto 0;
}

/* Loader: spinner + 2-line status text. */
.spam-result-wrap .spam-loader,
.blacklist-result-wrap .spam-loader,
.freescan-result-wrap .spam-loader {
    display: flex;
    align-items: center;
    gap: 18px;
    background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%);
    border: 1px solid var(--green-200);
    border-radius: 16px;
    padding: 24px 28px;
    box-shadow: var(--shadow);
}
.spam-result-wrap .spam-loader-spinner,
.blacklist-result-wrap .spam-loader-spinner,
.freescan-result-wrap .spam-loader-spinner {
    flex-shrink: 0;
}
.spam-result-wrap .spam-loader-text,
.blacklist-result-wrap .spam-loader-text,
.freescan-result-wrap .spam-loader-text {
    flex: 1;
    min-width: 0;
}
.spam-result-wrap .spam-loader-title,
.blacklist-result-wrap .spam-loader-title,
.freescan-result-wrap .spam-loader-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--gray-900);
    margin-bottom: 4px;
}
.spam-result-wrap .spam-loader-title b,
.blacklist-result-wrap .spam-loader-title b,
.freescan-result-wrap .spam-loader-title b {
    color: var(--primary-green-dark);
}
.spam-result-wrap .spam-loader-sub,
.blacklist-result-wrap .spam-loader-sub,
.freescan-result-wrap .spam-loader-sub {
    font-size: 13px;
    color: var(--gray-600);
    line-height: 1.5;
}

/* Error panel — used for network failures, "daily limit", etc. */
.spam-result-wrap .spam-error,
.blacklist-result-wrap .spam-error,
.freescan-result-wrap .spam-error {
    background: var(--red-50);
    border: 1px solid var(--red-100);
    border-left: 4px solid var(--primary-red-light);
    border-radius: 12px;
    padding: 18px 22px;
}
.spam-result-wrap .spam-error-title,
.blacklist-result-wrap .spam-error-title,
.freescan-result-wrap .spam-error-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--primary-red-dark);
    margin-bottom: 4px;
}
.spam-result-wrap .spam-error-msg,
.blacklist-result-wrap .spam-error-msg,
.freescan-result-wrap .spam-error-msg {
    font-size: 13px;
    color: var(--gray-700);
    line-height: 1.5;
}

/* Report wrapper (returned by GoogleSpamShowResults_2025) inherits the
   shared .mod-box / .report_tbl / .btn classes, so most styles already
   apply. Only minimal scoped tweaks needed: */
.spam-result-wrap .spam-result {
    width: 100%;
}
.spam-result-wrap .spam-result .mod-box {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    padding: 0;
    margin: 0 0 20px;
    box-shadow: var(--shadow-sm);
    width: 100%;
}
.spam-result-wrap .spam-result .mod-box > div {
    padding: 28px;
    border-radius: 16px;
    background: var(--white);
}
/* Plain text links inside the report use the green accent — but skip any <a>
   styled as a button (.btn, .btn-primary, .btn-outline, etc.) so the white
   button text stays readable on the green background. */
.spam-result-wrap .spam-result a:not(.btn) {
    color: var(--primary-green-dark);
    text-decoration: none;
}
.spam-result-wrap .spam-result a:not(.btn):hover {
    text-decoration: underline;
}
.spam-result-wrap .spam-result .btn-outline.spam-scan-another:hover {
    border-color: var(--primary-green);
    color: var(--primary-green);
    background: var(--green-50);
}

/* Hidden state for the scan form once a scan is in progress. */
.scan-url-form.hidden,
.blacklist-scanner-form.hidden,
.freescan-form.hidden {
    display: none !important;
}

/* When a blacklist scan is in progress / showing a report, expand the
   surrounding .scanner-box so the wide report has room to breathe.
   Toggled by blacklist-scanner-2025.js (add on submit, remove on
   "Scan another domain"). Both classes are required — pristine .scanner-box
   on other pages is not affected. */
.scanner-box.scanner-box--expanded {
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 768px) {
    .spam-result-wrap,
    .blacklist-result-wrap { margin-top: 20px; }
    .spam-result-wrap .spam-loader,
    .blacklist-result-wrap .spam-loader {
        flex-direction: column;
        text-align: center;
        padding: 18px;
    }
    .spam-result-wrap .spam-result .mod-box > div,
    .blacklist-result-wrap .blacklist-result .mod-box > div { padding: 18px; }
}

/* ---------------------------------------------------------------------------
   Blacklist scanner — report-specific styles.
   Used by HTML2025_securapp_antivirus::BlacklistShowResults_2025().
   --------------------------------------------------------------------------- */

.blacklist-result-wrap .blacklist-result {
    width: 100%;
}
.blacklist-result-wrap .blacklist-result .mod-box {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    padding: 0;
    margin: 0 0 20px;
    box-shadow: var(--shadow-sm);
    width: 100%;
}
.blacklist-result-wrap .blacklist-result .mod-box > div {
    padding: 28px;
    border-radius: 16px;
    background: var(--white);
}

/* Plain links inside the report — green accent; skip buttons (.btn). */
.blacklist-result-wrap .blacklist-result a:not(.btn) {
    color: var(--primary-green-dark);
    text-decoration: none;
}
.blacklist-result-wrap .blacklist-result a:not(.btn):hover {
    text-decoration: underline;
}

/* Meta strip — date / domain row right under the heading. */
.blacklist-result-wrap .blacklist-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    font-size: 13px;
    color: var(--gray-600);
    margin: 0 0 16px;
    line-height: 1.5;
}
.blacklist-result-wrap .blacklist-meta b {
    color: var(--gray-800);
    font-weight: 600;
}

/* Summary badge — green when clean, red when blacklisted. */
.blacklist-result-wrap .blacklist-summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 22px;
    line-height: 1.4;
}
.blacklist-result-wrap .blacklist-summary--ok {
    background: var(--green-50);
    border: 1px solid var(--green-200);
    color: var(--primary-green-dark);
}
.blacklist-result-wrap .blacklist-summary--bad {
    background: var(--red-50);
    border: 1px solid var(--red-100);
    border-left: 4px solid var(--primary-red-light);
    color: var(--primary-red-dark);
}

/* 2-column grid for Global / SPAM cards (Q5=A). */
.blacklist-result-wrap .blacklist-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 8px;
}

.blacklist-result-wrap .blacklist-card {
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    padding: 18px 20px;
    min-width: 0;
}
.blacklist-result-wrap .blacklist-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--gray-200);
}
.blacklist-result-wrap .blacklist-card-header h4 {
    flex: 1;
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--gray-900);
}
.blacklist-result-wrap .blacklist-card-header svg {
    color: var(--gray-500);
    flex-shrink: 0;
}
.blacklist-result-wrap .blacklist-card-count {
    font-size: 12px;
    font-weight: 600;
    color: var(--gray-500);
    background: var(--white);
    padding: 4px 10px;
    border-radius: 50px;
    border: 1px solid var(--gray-200);
}

.blacklist-result-wrap .blacklist-empty {
    margin: 0;
    color: var(--gray-500);
    font-size: 13px;
    font-style: italic;
}

/* Vendor list (Spamhaus / SORBS / etc.). */
.blacklist-result-wrap .blacklist-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.blacklist-result-wrap .blacklist-list-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--white);
    border: 1px solid transparent;
    font-size: 13px;
    color: var(--gray-700);
    line-height: 1.4;
}
.blacklist-result-wrap .blacklist-list-item--bad {
    background: #fef2f2;
    border-color: var(--red-100);
}
.blacklist-result-wrap .blacklist-list-name {
    flex: 1;
    font-weight: 600;
    color: var(--gray-800);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.blacklist-result-wrap .blacklist-list-item--bad .blacklist-list-name {
    color: var(--primary-red-dark);
}

.blacklist-result-wrap .blacklist-list-badge {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 8px;
    border-radius: 50px;
    flex-shrink: 0;
}
.blacklist-result-wrap .blacklist-list-badge--ok {
    background: var(--green-100);
    color: var(--primary-green-dark);
}
.blacklist-result-wrap .blacklist-list-badge--bad {
    background: var(--primary-red);
    color: var(--white);
}

/* Inline Fix-It button on each blacklisted row (Q6=A). Small size to fit. */
.blacklist-result-wrap .blacklist-fix-it {
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 8px;
    flex-shrink: 0;
}

/* "Scan another domain" — outline button hover. */
.blacklist-result-wrap .blacklist-result .btn-outline.blacklist-scan-another:hover {
    border-color: var(--primary-green);
    color: var(--primary-green);
    background: var(--green-50);
}

@media (max-width: 768px) {
    .blacklist-result-wrap .blacklist-result .mod-box > div { padding: 18px; }
    .blacklist-result-wrap .blacklist-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .blacklist-result-wrap .blacklist-card { padding: 14px 16px; }
    .blacklist-result-wrap .blacklist-list-item {
        flex-wrap: wrap;
    }
    .blacklist-result-wrap .blacklist-fix-it {
        width: 100%;
        margin-top: 6px;
        text-align: center;
    }
}

/* Optional Add-on row — shows the user what extras they've picked,
   without prices (totals are computed on checkout). */
.buy-page-wrapper .summary-item-addon {
    display: block;
    background: var(--green-50);
    border-left: 3px solid var(--primary-green-light);
    border-radius: 8px;
    padding: 8px 12px;
    margin-top: 4px;
    border-bottom-color: transparent;
}
.buy-page-wrapper .summary-item-addon .label {
    color: var(--gray-700);
    font-size: 13px;
    line-height: 1.4;
}
.buy-page-wrapper .summary-item-addon .label b {
    color: var(--primary-green-dark);
    font-weight: 700;
    margin-right: 2px;
}
.buy-page-wrapper .summary-item-addon .label small {
    font-size: 12px;
    font-weight: 400;
    color: var(--gray-600);
}
.buy-page-wrapper .summary-actions .btn {
    width: 100%;
    margin-bottom: 12px;
}
.buy-page-wrapper .summary-secure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 12px;
    color: var(--gray-500);
}
.buy-page-wrapper .summary-secure svg {
    width: 16px;
    height: 16px;
    color: var(--primary-green);
}
.buy-page-wrapper .summary-benefits {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--gray-200);
}
.buy-page-wrapper .summary-benefit {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
}
.buy-page-wrapper .summary-benefit svg {
    width: 18px;
    height: 18px;
    color: var(--primary-green);
    flex-shrink: 0;
}
.buy-page-wrapper .summary-benefit span {
    font-size: 13px;
    color: var(--gray-600);
}

/* Info-card (used for service details / text_top) */
.buy-page-wrapper .info-card {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 16px 20px;
    margin-bottom: 20px;
}
.buy-page-wrapper .info-card-logo {
    height: 48px;
    width: auto;
    flex-shrink: 0;
}
.buy-page-wrapper .info-card-body h3 {
    font-size: 14px;
    font-weight: 700;
    color: var(--gray-900);
    margin: 0 0 4px 0;
}
.buy-page-wrapper .info-card-body p {
    font-size: 13px;
    color: var(--gray-600);
    margin: 0;
    line-height: 1.5;
}
.buy-page-wrapper .info-card-body a {
    color: var(--primary-green);
    text-decoration: none;
    font-size: 13px;
}
.buy-page-wrapper .info-card-body a:hover {
    text-decoration: underline;
}

/* Responsive */
@media (max-width: 1024px) {
    .buy-page-wrapper .order-grid {
        grid-template-columns: 1fr;
    }
    .buy-page-wrapper .order-summary {
        position: static;
    }
}
@media (max-width: 768px) {
    .buy-page-wrapper .page-header {
        padding: 100px 0 30px;
    }
    .buy-page-wrapper .page-header h1 {
        font-size: 1.75rem;
    }
    .buy-page-wrapper .order-section {
        padding: 40px 0;
    }
    .buy-page-wrapper .summary-card-buy {
        padding: 20px;
    }
}
/* End — Buy Page styles */

/* ============================================================================
   Auth, Contact, Send-Access-Details Pages — Shared Form & Page Styles
   ============================================================================ */

/* Animations */
@keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
@keyframes shimmer { 100% { left: 100%; } }

/* Page Header (global — contacts, send-access-details) */
.page-header { background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%); padding: 40px 0; border-bottom: 4px solid var(--primary-green); }
.page-header h1 { font-size: 2.25rem; font-weight: 800; color: var(--gray-900); margin-bottom: 8px; }
.page-header p { color: var(--gray-600); font-size: 1rem; max-width: 600px; }

/* Shared Form Elements */
.form-group { margin-bottom: 20px; }
.form-group.full-width { grid-column: 1 / -1; }
.form-label { display: block; font-size: 14px; font-weight: 600; color: var(--gray-700); margin-bottom: 8px; }
.form-label .required { color: var(--primary-red); }
.form-label-optional { color: var(--gray-400); font-weight: 400; font-size: 12px; }

.form-input, .form-select, .form-textarea {
    width: 100%;
    padding: 14px 16px;
    font-size: 15px;
    font-family: inherit;
    border: 2px solid var(--gray-200);
    border-radius: 10px;
    background: var(--white);
    transition: all 0.2s;
    color: var(--gray-900);
    box-sizing: border-box;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
    outline: none;
    border-color: var(--primary-green);
    box-shadow: 0 0 0 4px rgba(80, 185, 72, 0.1);
}
.form-input.error, .form-select.error, .form-textarea.error {
    border-color: var(--primary-red);
    animation: shake 0.3s ease;
}
.form-input.error:focus, .form-select.error:focus, .form-textarea.error:focus {
    box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.1);
}
.form-input::placeholder, .form-textarea::placeholder { color: var(--gray-400); }
.form-textarea { min-height: 150px; resize: vertical; }
.form-select { cursor: pointer; }

.form-input-wrapper { position: relative; }
.form-input-wrapper .form-input { padding-left: 48px; padding-top: 16px; padding-bottom: 16px; border-radius: 12px; }
.form-input-icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--gray-400); pointer-events: none; }
.form-input-icon svg { width: 20px; height: 20px; }
.form-input:focus + .form-input-icon { color: var(--primary-green); }
.form-input.error + .form-input-icon { color: var(--primary-red); }

.form-error-text { display: none; color: var(--primary-red); font-size: 12px; margin-top: 6px; font-weight: 500; }
.form-error-text.show { display: flex; align-items: center; gap: 5px; }
.form-error-text svg { width: 14px; height: 14px; flex-shrink: 0; }

.password-toggle { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); background: none; border: none; padding: 4px; cursor: pointer; color: var(--gray-400); }
.password-toggle:hover { color: var(--gray-600); }
.password-toggle svg { width: 20px; height: 20px; }

.form-captcha { display: flex; align-items: center; gap: 16px; }
.captcha-image { background: var(--gray-100); border-radius: 8px; padding: 10px 20px; font-size: 20px; font-weight: 700; letter-spacing: 4px; color: var(--gray-700); white-space: nowrap; }
.captcha-input { max-width: 150px; }

.form-file-input {
    width: 100%;
    padding: 14px 16px;
    font-size: 15px;
    font-family: inherit;
    border: 2px dashed var(--gray-300);
    border-radius: 10px;
    background: var(--gray-50);
    cursor: pointer;
    transition: all 0.2s;
}
.form-file-input:hover { border-color: var(--primary-green); background: var(--green-50); }
.form-file-input::file-selector-button {
    padding: 8px 16px;
    margin-right: 16px;
    border: none;
    border-radius: 6px;
    background: var(--primary-green);
    color: var(--white);
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.2s;
}
.form-file-input::file-selector-button:hover { background: var(--primary-green-dark); }

.form-note { background: var(--green-50); border-radius: 10px; padding: 16px; margin-bottom: 24px; }
.form-note p { color: var(--gray-600); font-size: 13px; line-height: 1.6; margin: 0; }
.form-note a { color: var(--primary-green); font-weight: 600; text-decoration: none; }
.form-note a:hover { text-decoration: underline; }

.form-submit { text-align: right; }
.form-submit .btn { min-width: 200px; }

.form-row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; margin-bottom: 20px; }

/* ============================================================================
   Auth Page (Login)
   ============================================================================ */
.auth-page { min-height: calc(100vh - 200px); display: flex; align-items: center; justify-content: center; padding: 60px 24px; background: linear-gradient(180deg, var(--green-50) 0%, var(--white) 100%); }
.auth-container { width: 100%; max-width: 900px; }
.auth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: stretch; }
.auth-card { background: var(--white); border-radius: 20px; padding: 40px; box-shadow: var(--shadow-xl); border: 1px solid var(--gray-100); }
.auth-header { text-align: center; margin-bottom: 32px; }
.auth-header .icon { width: 64px; height: 64px; background: linear-gradient(135deg, var(--green-100) 0%, var(--green-200) 100%); border-radius: 16px; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; }
.auth-header .icon svg { width: 32px; height: 32px; color: var(--primary-green); }
.auth-header h1 { font-size: 1.5rem; font-weight: 800; color: var(--gray-900); margin-bottom: 8px; }
.auth-header p { color: var(--gray-500); font-size: 14px; line-height: 1.6; }
.auth-card .form-submit .btn { width: 100%; padding: 16px 24px; font-size: 16px; }
.auth-footer { text-align: center; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--gray-100); }
.auth-footer a { color: var(--primary-green); text-decoration: none; font-weight: 600; font-size: 14px; transition: color 0.2s; }
.auth-footer a:hover { color: var(--primary-green-dark); text-decoration: underline; }
.auth-footer span { color: var(--gray-400); margin: 0 12px; }

/* QR Code Card */
.qr-card { background: var(--white); border-radius: 20px; padding: 40px; box-shadow: var(--shadow-xl); border: 1px solid var(--gray-100); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.qr-card h3 { font-size: 1.25rem; font-weight: 700; color: var(--gray-900); margin-bottom: 12px; display: flex; align-items: center; gap: 10px; justify-content: center; }
.qr-card h3 svg { width: 24px; height: 24px; color: var(--primary-green); }
.qr-card > p { color: var(--gray-500); font-size: 14px; margin-bottom: 24px; line-height: 1.6; }
.qr-code-wrapper { background: var(--white); border: 2px solid var(--gray-200); border-radius: 16px; padding: 20px; margin-bottom: 20px; }
.qr-link { color: var(--primary-green); text-decoration: none; font-weight: 600; font-size: 14px; display: inline-flex; align-items: center; gap: 6px; }
.qr-link:hover { text-decoration: underline; }
.qr-link svg { width: 16px; height: 16px; }
.qr-divider { display: flex; align-items: center; gap: 16px; margin: 24px 0; width: 100%; }
.qr-divider::before, .qr-divider::after { content: ''; flex: 1; height: 1px; background: var(--gray-200); }
.qr-divider span { color: var(--gray-400); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }
.qr-features { text-align: left; width: 100%; }
.qr-feature { display: flex; align-items: center; gap: 10px; padding: 10px 0; color: var(--gray-600); font-size: 13px; }
.qr-feature svg { width: 18px; height: 18px; color: var(--primary-green); flex-shrink: 0; }

/* ============================================================================
   Contact Page
   ============================================================================ */
.contact-section { padding: 60px 0 80px; }
.contact-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 60px; }
.contact-card { background: var(--white); border-radius: 16px; padding: 32px; border: 1px solid var(--gray-200); box-shadow: var(--shadow); margin-bottom: 24px; }
.contact-card h3 { font-size: 1.25rem; font-weight: 700; color: var(--gray-900); margin-bottom: 16px; display: flex; align-items: center; gap: 10px; }
.contact-card h3 svg { width: 24px; height: 24px; color: var(--primary-green); }
.contact-card p { color: var(--gray-600); font-size: 14px; line-height: 1.7; }
.contact-item { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--gray-100); }
.contact-item:last-child { border-bottom: none; }
.contact-item-icon { width: 44px; height: 44px; background: var(--green-100); border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-item-icon img { width: 24px; height: 24px; }
.contact-item-icon svg { width: 22px; height: 22px; color: var(--primary-green); }
.contact-item-text span { display: block; font-size: 12px; color: var(--gray-400); font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; }
.contact-item-text a { color: var(--gray-900); text-decoration: none; font-weight: 600; font-size: 15px; transition: color 0.2s; }
.contact-item-text a:hover { color: var(--primary-green); }
.contact-item-text strong { color: var(--gray-900); font-weight: 600; font-size: 15px; }
.livechat-btn { display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; background: var(--primary-green); color: var(--white); border-radius: 10px; text-decoration: none; font-weight: 600; font-size: 14px; transition: all 0.2s; margin-top: 8px; }
.livechat-btn:hover { background: var(--primary-green-dark); transform: translateY(-2px); }
.livechat-btn img { width: 20px; height: 20px; filter: brightness(0) invert(1); }
.contact-form-wrapper { background: var(--white); border-radius: 20px; padding: 40px; border: 1px solid var(--gray-200); box-shadow: var(--shadow-lg); }
.contact-form-wrapper h3 { font-size: 1.5rem; font-weight: 700; color: var(--gray-900); margin-bottom: 8px; }
.contact-form-wrapper > p { color: var(--gray-500); font-size: 14px; margin-bottom: 32px; }

/* ============================================================================
   Send Access Details Page
   ============================================================================ */
.form-section-page { padding: 60px 0 80px; }
.form-wrapper { background: var(--white); border-radius: 20px; padding: 40px; border: 1px solid var(--gray-200); box-shadow: var(--shadow-lg); max-width: 900px; margin: 0 auto; }
.form-section-header { margin-bottom: 24px; padding-bottom: 16px; border-bottom: 2px solid var(--gray-100); }
.form-section-header h3 { font-size: 1.125rem; font-weight: 700; color: var(--gray-900); margin-bottom: 6px; display: flex; align-items: center; gap: 10px; }
.form-section-header h3 svg { width: 22px; height: 22px; color: var(--primary-green); }
.form-section-header p { font-size: 14px; color: var(--gray-500); margin: 0; }
.form-section-divider { margin: 40px 0; border-top: 1px solid var(--gray-100); }
.security-banner { background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%); border: 1px solid var(--green-200); border-radius: 16px; padding: 24px 28px; margin-bottom: 32px; display: flex; align-items: flex-start; gap: 16px; }
.security-banner-icon { width: 48px; height: 48px; background: var(--primary-green); border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.security-banner-icon svg { width: 24px; height: 24px; color: var(--white); }
.security-banner-content h3 { font-size: 1rem; font-weight: 700; color: var(--primary-green-dark); margin-bottom: 6px; }
.security-banner-content p { font-size: 14px; color: var(--gray-600); line-height: 1.6; margin: 0; }
.info-box { background: var(--gray-50); border-radius: 10px; padding: 16px; margin-bottom: 20px; border-left: 4px solid var(--primary-green); }
.info-box p { color: var(--gray-600); font-size: 13px; line-height: 1.6; margin: 0; }
.info-box strong { color: var(--gray-900); }
.ftp-instructions { background: var(--gray-50); border-radius: 12px; padding: 20px; margin-bottom: 24px; }
.ftp-instructions h4 { font-size: 14px; font-weight: 600; color: var(--gray-700); margin-bottom: 12px; }
.ftp-instructions ol { margin: 0; padding-left: 20px; }
.ftp-instructions li { font-size: 13px; color: var(--gray-600); margin-bottom: 8px; line-height: 1.5; }
.ftp-instructions img { max-width: 100%; border-radius: 8px; margin-top: 8px; border: 1px solid var(--gray-200); }

/* Responsive */
@media (max-width: 1024px) {
    .contact-grid { grid-template-columns: 1fr; gap: 40px; }
    .contact-info { order: 2; }
    .contact-form-wrapper { order: 1; }
}
@media (max-width: 768px) {
    .page-header { padding: 30px 0; }
    .page-header h1 { font-size: 1.75rem; }
    .auth-grid { grid-template-columns: 1fr; }
    .auth-card, .qr-card { padding: 28px 24px; }
    .auth-header h1 { font-size: 1.25rem; }
    .qr-card { order: 2; }
    .contact-section { padding: 40px 0 60px; }
    .contact-form-wrapper { padding: 24px; }
    .form-row { grid-template-columns: 1fr; }
    .form-row-3 { grid-template-columns: 1fr; }
    .form-section-page { padding: 40px 0 60px; }
    .form-wrapper { padding: 24px; }
    .security-banner { flex-direction: column; text-align: center; }
    .form-captcha { flex-direction: column; align-items: stretch; }
}
/* End — Auth, Contact, Send-Access-Details styles */

/* ============================================================================
   Extension Buy Page (Extention_buy) — Single-product checkout
   All selectors scoped under .ext-buy-wrapper
   ============================================================================ */
.ext-buy-wrapper .page-header {
    padding: 120px 0 40px;
    background: linear-gradient(180deg, var(--green-50) 0%, var(--white) 100%);
    text-align: center;
    border-bottom: none;
}
.ext-buy-wrapper .page-header h1 {
    font-size: 2rem;
    font-weight: 800;
    color: var(--gray-900);
    margin-bottom: 12px;
}
.ext-buy-wrapper .page-header h1 span {
    background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.ext-buy-wrapper .order-section {
    padding: 40px 0 80px;
    background: var(--white);
}
.ext-buy-wrapper .order-container {
    max-width: 480px;
    margin: 0 auto;
}
.ext-buy-wrapper .form-card {
    background: var(--white);
    border: 2px solid var(--gray-200);
    border-radius: 20px;
    padding: 32px;
    box-shadow: var(--shadow-lg);
}
.ext-buy-wrapper .form-card-header {
    text-align: center;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--gray-200);
    margin-bottom: 24px;
}
.ext-buy-wrapper .form-card-header h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--gray-900);
    margin-bottom: 4px;
}
.ext-buy-wrapper .form-card-header .price {
    font-size: 2rem;
    font-weight: 800;
    color: var(--primary-green);
}
.ext-buy-wrapper .form-card-header .price span {
    font-size: 1rem;
    font-weight: 500;
    color: var(--gray-400);
}
.ext-buy-wrapper .form-row {
    display: block;
    grid-template-columns: none;
    gap: 0;
    margin-bottom: 20px;
}
.ext-buy-wrapper .form-row > label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-700);
    margin-bottom: 8px;
}
.ext-buy-wrapper .form-row > label .required {
    color: var(--primary-red);
}
.ext-buy-wrapper .form-row input[type="text"],
.ext-buy-wrapper .form-row input[type="email"],
.ext-buy-wrapper .form-row input[type="url"] {
    width: 100%;
    padding: 14px 16px;
    font-size: 15px;
    font-family: inherit;
    border: 2px solid var(--gray-200);
    border-radius: 10px;
    background: var(--white);
    transition: all 0.2s;
    color: var(--gray-900);
    box-sizing: border-box;
}
.ext-buy-wrapper .form-row input:focus {
    outline: none;
    border-color: var(--primary-green);
    box-shadow: 0 0 0 4px rgba(80, 185, 72, 0.1);
}
.ext-buy-wrapper .form-row input::placeholder {
    color: var(--gray-400);
}
.ext-buy-wrapper .payment-methods {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.ext-buy-wrapper .payment-method {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: var(--gray-50);
    border: 2px solid var(--gray-200);
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.2s;
}
.ext-buy-wrapper .payment-method:hover {
    border-color: var(--primary-green);
}
.ext-buy-wrapper .payment-method.selected {
    border-color: var(--primary-green);
    background: var(--green-50);
}
.ext-buy-wrapper .payment-method input[type="radio"] {
    display: none;
}
.ext-buy-wrapper .payment-radio {
    width: 20px;
    height: 20px;
    border: 2px solid var(--gray-300);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.ext-buy-wrapper .payment-radio::after {
    content: '';
    width: 10px;
    height: 10px;
    background: var(--primary-green);
    border-radius: 50%;
    opacity: 0;
}
.ext-buy-wrapper .payment-method.selected .payment-radio {
    border-color: var(--primary-green);
}
.ext-buy-wrapper .payment-method.selected .payment-radio::after {
    opacity: 1;
}
.ext-buy-wrapper .payment-info .name {
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-900);
}
.ext-buy-wrapper .payment-info .desc {
    font-size: 12px;
    color: var(--gray-500);
}
.ext-buy-wrapper .form-actions {
    margin-top: 24px;
}
.ext-buy-wrapper .form-actions .btn {
    width: 100%;
}
.ext-buy-wrapper .form-secure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 12px;
    color: var(--gray-500);
    margin-top: 12px;
}
.ext-buy-wrapper .form-secure svg {
    width: 16px;
    height: 16px;
    color: var(--primary-green);
}
.ext-buy-wrapper .help-link {
    text-align: center;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--gray-100);
}
.ext-buy-wrapper .help-link a {
    font-size: 14px;
    color: var(--primary-green);
    text-decoration: none;
    font-weight: 500;
}
.ext-buy-wrapper .help-link a:hover {
    text-decoration: underline;
}
@media (max-width: 768px) {
    .ext-buy-wrapper .page-header { padding: 100px 0 30px; }
    .ext-buy-wrapper .page-header h1 { font-size: 1.75rem; }
    .ext-buy-wrapper .form-card { padding: 24px; }
}
/* End — Extension Buy Page styles */

/* Payment Message Page */
.payment-message-content { padding: 20px 0; font-size: 15px; line-height: 1.7; color: var(--gray-600); }
.payment-message-content p { margin-bottom: 12px; }
.payment-message-content a { color: var(--primary-green); font-weight: 600; text-decoration: none; }
.payment-message-content a:hover { text-decoration: underline; }
.payment-message-content:empty { display: none; }

/* Hero Patch (landing pages with gradient bg) */
.hero-patch { padding: 100px 0 60px; background: linear-gradient(180deg, var(--green-50) 0%, var(--green-100) 40%, var(--green-200) 100%); position: relative; overflow: hidden; text-align: center; }
.hero-patch::before { content: ''; position: absolute; top: 20%; right: -10%; width: 600px; height: 600px; background: radial-gradient(circle, rgba(80, 185, 72, 0.15) 0%, transparent 70%); pointer-events: none; }
.hero-patch .container { position: relative; z-index: 1; }
.hero-patch h1 { font-size: 2.75rem; font-weight: 800; color: var(--gray-900); margin-bottom: 16px; line-height: 1.2; }
.hero-patch h1 span { background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.hero-tagline { font-size: 1.125rem; color: var(--gray-700); font-weight: 600; margin-bottom: 16px; }
.hero-patch p.hero-desc { font-size: 1rem; color: var(--gray-600); max-width: 800px; margin: 0 auto 40px; line-height: 1.8; }
/* Scan Form in Hero */
.scan-form-card { max-width: 600px; margin: 40px auto 0; background: var(--white); border: 2px solid var(--gray-200); border-radius: 16px; padding: 28px 32px; box-shadow: var(--shadow-lg); text-align: left; }
.scan-form-card h4 { font-size: 1rem; font-weight: 700; color: var(--gray-900); margin-bottom: 16px; display: flex; align-items: center; gap: 10px; }
.scan-form-card h4 svg { width: 22px; height: 22px; color: var(--primary-green); }
.scan-form-card .scan-row { display: flex; gap: 12px; align-items: center; }
.scan-form-card .scan-row .form-file-input { flex: 1; }
.scan-form-card .scan-note { font-size: 12px; color: var(--gray-500); margin-top: 10px; }
/* Scan Results */
.scan-results-section { padding: 40px 0; background: var(--white); }
.scan-results-card { max-width: 900px; margin: 0 auto; background: var(--white); border: 2px solid var(--gray-200); border-radius: 16px; padding: 32px; box-shadow: var(--shadow-lg); }
@media (max-width: 768px) {
    .hero-patch { padding: 60px 0 40px; }
    .hero-patch h1 { font-size: 2rem; }
    .scan-form-card { padding: 20px; }
    .scan-form-card .scan-row { flex-direction: column; }
}

/* Antivirus content grid (two-column text layout) */
.av-content-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.av-content-block p { color: var(--gray-600); font-size: 15px; line-height: 1.8; margin-bottom: 16px; }
.av-content-block p:last-child { margin-bottom: 0; }
@media (max-width: 768px) { .av-content-grid { grid-template-columns: 1fr; gap: 24px; } }

/* ==========================================================================
   View Antivirus Report page (HTML2025_securapp::AntivirusViewReport)
   - .avp-view-page          : full-page wrapper
   - .avp-view-scanner       : compact top "scan a file" card
   - .avp-view-layout        : two-column grid (main + aside)
   - .avp-view-aside         : sidebar (sticky on desktop)
   - .avp-aside-card         : sidebar card (lighter than .info-box, denser)
   - .avp-aside-card-title   : card title row
   - .avp-aside-link         : download link with arrow on hover
   - .avp-pricing-card       : pricing card (green-tinted CTA card)
   - .avp-pricing-features   : checked feature list
   - .avp-admin-tools        : admin tool chips (only shown to internal users)
   ========================================================================== */

.avp-view-page { padding: 24px 0 48px; background: var(--gray-50); min-height: 60vh; }
.avp-view-page .container { max-width: 1280px; }

/* Top compact "scan a file" card (replaces the large hero scan-form). */
.avp-view-scanner {
    background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%);
    border: 1px solid var(--green-200);
    border-radius: 16px;
    padding: 20px 28px;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}
.avp-view-scanner-text { flex: 1; min-width: 240px; }
.avp-view-scanner-text h3 { font-size: 1.125rem; font-weight: 700; color: var(--gray-900); margin: 0 0 4px; line-height: 1.3; }
.avp-view-scanner-text p { font-size: 13px; color: var(--gray-600); margin: 0; }
.avp-view-scanner-form { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.avp-view-scanner-form .form-file-input {
    padding: 10px 14px;
    font-size: 13px;
    border: 1px dashed var(--gray-300);
    border-radius: 10px;
    background: var(--white);
    color: var(--gray-700);
    cursor: pointer;
    max-width: 260px;
}
.avp-view-scanner-form .form-file-input:hover { border-color: var(--primary-green); }

/* Two-column layout: main report on the left, info sidebar on the right. */
.avp-view-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }

.avp-view-main {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    padding: 28px;
    box-shadow: var(--shadow-sm);
    min-width: 0;            /* prevent grid overflow from long report content */
}
.avp-view-main > h2 {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--gray-900);
    margin: 0 0 16px;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.avp-view-aside { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 24px; }

/* Sidebar info card (lighter than .info-box used on landing pages). */
.avp-aside-card {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    padding: 20px;
    box-shadow: var(--shadow-sm);
}
.avp-aside-card-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--gray-900);
    margin: 0 0 6px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.avp-aside-card-title svg { width: 18px; height: 18px; color: var(--primary-green); flex-shrink: 0; }
.avp-aside-card-title .label-new {
    background: var(--green-100);
    color: var(--primary-green-dark);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 50px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.avp-aside-card p { font-size: 13px; color: var(--gray-600); line-height: 1.6; margin: 0 0 10px; }
.avp-aside-card p:last-child { margin-bottom: 0; }

.avp-aside-section-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--gray-500);
    margin: 14px 0 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--gray-100);
}
.avp-aside-section-title:first-child { margin-top: 0; }

.avp-aside-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    margin: 0 -10px;
    font-size: 13px;
    color: var(--gray-700);
    text-decoration: none;
    border-radius: 8px;
    font-weight: 500;
    transition: all 0.15s;
}
.avp-aside-link:hover { background: var(--green-50); color: var(--primary-green); text-decoration: none; }
.avp-aside-link svg { width: 16px; height: 16px; color: var(--gray-400); flex-shrink: 0; }
.avp-aside-link:hover svg { color: var(--primary-green); }

/* Pricing card — accent CTA card in the sidebar. */
.avp-pricing-card {
    background: linear-gradient(180deg, var(--white) 0%, var(--green-50) 100%);
    border: 1px solid var(--green-200);
    border-radius: 14px;
    padding: 24px 20px;
    box-shadow: var(--shadow);
}
.avp-pricing-card h4 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--gray-900);
    margin: 0 0 6px;
    text-align: center;
}
.avp-pricing-card .avp-price {
    text-align: center;
    margin-bottom: 18px;
}
.avp-pricing-card .avp-price-amount {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--primary-green);
    letter-spacing: -0.02em;
}
.avp-pricing-card .avp-price-period {
    font-size: 12px;
    color: var(--gray-500);
    margin-left: 4px;
}
.avp-pricing-features {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.avp-pricing-features li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    color: var(--gray-700);
    line-height: 1.5;
}
.avp-pricing-features li svg {
    width: 16px;
    height: 16px;
    color: var(--primary-green);
    flex-shrink: 0;
    margin-top: 2px;
}
.avp-pricing-features li .label-premium {
    display: inline-block;
    background: var(--primary-green);
    color: var(--white);
    font-size: 9px;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 4px;
    text-transform: uppercase;
    margin-right: 4px;
}
.avp-pricing-card .btn { width: 100%; }

/* Admin tools row — only rendered for internal users; chip-style pills. */
.avp-admin-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--gray-100);
}
.avp-admin-tools a {
    font-size: 11px;
    font-weight: 600;
    color: var(--gray-600);
    background: var(--gray-100);
    padding: 4px 10px;
    border-radius: 6px;
    text-decoration: none;
    transition: all 0.15s;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.avp-admin-tools a:hover { background: var(--primary-green); color: var(--white); text-decoration: none; }

/* Responsive */
@media (max-width: 1024px) {
    .avp-view-layout { grid-template-columns: 1fr; }
    .avp-view-aside { position: static; }
}
@media (max-width: 768px) {
    .avp-view-page { padding: 16px 0 32px; }
    .avp-view-scanner { flex-direction: column; align-items: stretch; padding: 16px; }
    .avp-view-scanner-form { width: 100%; }
    .avp-view-scanner-form .form-file-input { max-width: 100%; flex: 1; }
    .avp-view-main { padding: 18px; border-radius: 12px; }
    .avp-view-main > h2 { font-size: 1.25rem; }
    .avp-admin-tools { gap: 4px; }
    .avp-admin-tools a { font-size: 10px; padding: 3px 8px; }
}

/* ---------------------------------------------------------------------------
   FreeScan (Sucuri Sitecheck) — new 2025 report styles.
   Used by HTML2025_securapp::FreeScan_2025_AjaxReport(), powered by
   /templates/security/ver2/js/freescan-2025.js on /en/sitecheck.
   Loader and error chrome are shared with spam/blacklist scanners above.
   --------------------------------------------------------------------------- */

.freescan-result-wrap .freescan-result { width: 100%; }
.freescan-result-wrap .freescan-result a:not(.btn) {
    color: var(--primary-green-dark);
    text-decoration: none;
}
.freescan-result-wrap .freescan-result a:not(.btn):hover { text-decoration: underline; }

/* Hero badge — green when clean, red when issues. */
.freescan-result-wrap .freescan-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 26px;
    border-radius: 16px;
    margin-bottom: 20px;
    border: 1px solid var(--gray-200);
    box-shadow: var(--shadow-sm);
}
.freescan-result-wrap .freescan-hero--ok {
    background: linear-gradient(135deg, var(--green-50) 0%, var(--green-100) 100%);
    border-color: var(--green-200);
}
.freescan-result-wrap .freescan-hero--bad {
    background: linear-gradient(135deg, var(--red-50) 0%, #fee2e2 100%);
    border-color: var(--red-100);
    border-left: 4px solid var(--primary-red-light);
}
.freescan-result-wrap .freescan-hero-icon {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
}
.freescan-result-wrap .freescan-hero-text { flex: 1; min-width: 0; }
.freescan-result-wrap .freescan-hero h3 {
    margin: 0 0 4px;
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--gray-900);
    line-height: 1.2;
    letter-spacing: -0.01em;
}
.freescan-result-wrap .freescan-hero--bad h3 { color: var(--primary-red-dark); }
.freescan-result-wrap .freescan-hero p {
    margin: 0 0 8px;
    font-size: 14px;
    color: var(--gray-700);
    line-height: 1.5;
}
.freescan-result-wrap .freescan-hero-meta {
    display: flex;
    gap: 6px 18px;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--gray-600);
}
.freescan-result-wrap .freescan-hero-meta b { color: var(--gray-800); font-weight: 600; }

/* Grid of result cards. */
.freescan-result-wrap .freescan-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    margin-bottom: 8px;
}
.freescan-result-wrap .freescan-card {
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    padding: 22px 24px;
    box-shadow: var(--shadow-sm);
    min-width: 0;
}
.freescan-result-wrap .freescan-card--wide { grid-column: span 2; }
.freescan-result-wrap .freescan-card h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--gray-100);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--gray-900);
}

/* Blacklist lines — green-tinted "ok" rows, red-tinted "bad" rows. */
.freescan-result-wrap .freescan-bl-lines {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.freescan-result-wrap .freescan-bl-lines li {
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 13px;
    line-height: 1.4;
    border: 1px solid transparent;
}
.freescan-result-wrap .freescan-bl-lines__ok {
    background: var(--green-50);
    color: var(--gray-700);
}
.freescan-result-wrap .freescan-bl-lines__bad {
    background: var(--red-50);
    border-color: var(--red-100);
    color: var(--primary-red-dark);
    font-weight: 500;
}

/* Wrapper around raw Sucuri HTML chunks — tame their inline styles. */
.freescan-result-wrap .freescan-sucuri-html {
    font-size: 14px;
    color: var(--gray-700);
    line-height: 1.6;
}
.freescan-result-wrap .freescan-sucuri-html h1,
.freescan-result-wrap .freescan-sucuri-html h2,
.freescan-result-wrap .freescan-sucuri-html h3,
.freescan-result-wrap .freescan-sucuri-html h4 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--gray-900);
    margin: 12px 0 8px;
}
.freescan-result-wrap .freescan-sucuri-html p { margin: 6px 0 10px; }
/* Sucuri HTML may include `<a class="btn btn-primary">Fix My Website</a>` —
   skip them via :not(.btn) so the button keeps its white text on green bg. */
.freescan-result-wrap .freescan-sucuri-html a:not(.btn) { color: var(--primary-green-dark); }
.freescan-result-wrap .freescan-sucuri-html img { max-width: 100%; height: auto; }
.freescan-result-wrap .freescan-sucuri-html table {
    border-collapse: collapse;
    width: 100%;
    margin: 10px 0;
    font-size: 13px;
}
.freescan-result-wrap .freescan-sucuri-html td,
.freescan-result-wrap .freescan-sucuri-html th {
    padding: 8px 10px;
    border: 1px solid var(--gray-200);
    text-align: left;
    vertical-align: top;
}
.freescan-result-wrap .freescan-sucuri-html .scan_blacklisted {
    background: var(--primary-red);
    color: var(--white);
    padding: 2px 8px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* "Scan another domain" outline button hover. */
.freescan-result-wrap .freescan-result .btn-outline.freescan-scan-another:hover {
    border-color: var(--primary-green);
    color: var(--primary-green);
    background: var(--green-50);
}

/* --- Detailed Blacklist Analyze (FreeScan) — 2-column grid Global / SPAM --- */
.freescan-result-wrap .fs-dbl-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.freescan-result-wrap .fs-dbl-col {
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: 12px;
    padding: 16px 18px;
    min-width: 0;
}
.freescan-result-wrap .fs-dbl-col-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--gray-200);
}
.freescan-result-wrap .fs-dbl-col-header h4 {
    flex: 1;
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--gray-900);
}
.freescan-result-wrap .fs-dbl-count {
    font-size: 11px;
    font-weight: 600;
    color: var(--gray-500);
    background: var(--white);
    padding: 3px 9px;
    border-radius: 50px;
    border: 1px solid var(--gray-200);
}
.freescan-result-wrap .fs-dbl-empty {
    margin: 0;
    color: var(--gray-500);
    font-size: 13px;
    font-style: italic;
}
.freescan-result-wrap .fs-dbl-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.freescan-result-wrap .fs-dbl-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--white);
    border: 1px solid transparent;
    font-size: 13px;
    color: var(--gray-700);
    line-height: 1.4;
}
.freescan-result-wrap .fs-dbl-item--bad {
    background: var(--red-50);
    border-color: var(--red-100);
}
.freescan-result-wrap .fs-dbl-name {
    flex: 1;
    font-weight: 600;
    color: var(--gray-800);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.freescan-result-wrap .fs-dbl-item--bad .fs-dbl-name { color: var(--primary-red-dark); }
.freescan-result-wrap .fs-dbl-badge {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 8px;
    border-radius: 50px;
    flex-shrink: 0;
}
.freescan-result-wrap .fs-dbl-badge--ok {
    background: var(--green-100);
    color: var(--primary-green-dark);
}
.freescan-result-wrap .fs-dbl-badge--bad {
    background: var(--primary-red);
    color: var(--white);
}
.freescan-result-wrap .fs-dbl-fix {
    padding: 5px 12px;
    font-size: 11px;
    font-weight: 600;
    border-radius: 6px;
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .freescan-result-wrap .fs-dbl-grid { grid-template-columns: 1fr; gap: 12px; }
    .freescan-result-wrap .fs-dbl-item { flex-wrap: wrap; }
    .freescan-result-wrap .fs-dbl-fix { width: 100%; margin-top: 4px; text-align: center; }
}

@media (max-width: 768px) {
    .freescan-result-wrap .freescan-hero { flex-direction: column; text-align: center; padding: 18px; }
    .freescan-result-wrap .freescan-hero-meta { justify-content: center; }
    .freescan-result-wrap .freescan-grid { grid-template-columns: 1fr; gap: 14px; }
    .freescan-result-wrap .freescan-card,
    .freescan-result-wrap .freescan-card--wide { grid-column: span 1; padding: 16px 18px; }
}

/* =============================================================================
 * NEW_DESIGN form validation (powered by /js/form-validation-2025.js).
 *
 * Painted on any input/select/textarea that fails a [data-validation] /
 * [required] rule on submit. We re-use the red palette already declared at
 * the top of this file (--primary-red / --red-50 / --red-100) so the look
 * matches existing error notification cards.
 *
 * Selectors are intentionally !important on color/border so we override the
 * many inline-style fields scattered through the 2025 templates without
 * having to rewrite each form.
 * ============================================================================= */
form input.is-invalid,
form select.is-invalid,
form textarea.is-invalid {
    border: 1px solid var(--primary-red) !important;
    background-color: var(--red-50) !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
    outline: none !important;
}
form .file-input-wrapper:has(input.is-invalid),
form .controls:has(input.is-invalid),
form .controls:has(select.is-invalid),
form .controls:has(textarea.is-invalid) {
    /* :has() lights up the wrapper box of file/styled fields. Modern browsers
       only — for older ones we still get the inner field highlighted above. */
    border-color: var(--primary-red);
}
.invalid-feedback {
    display: block;
    margin: 6px 2px 0;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 500;
    color: var(--primary-red);
    background: var(--red-50);
    border: 1px solid var(--red-100);
    border-left: 3px solid var(--primary-red);
    border-radius: 6px;
    line-height: 1.4;
}
button.is-submitting,
input.is-submitting {
    opacity: 0.7;
    cursor: wait;
    pointer-events: none;
}
/* Form-level error summary (reserved for future use — e.g. server-side
   errors returned via AJAX). Mirrors invalid-feedback styling but block-level. */
.form-error-summary {
    margin: 0 0 18px;
    padding: 14px 18px;
    background: var(--red-50);
    border: 1px solid var(--red-100);
    border-left: 4px solid var(--primary-red);
    border-radius: 10px;
    color: var(--primary-red-dark);
    font-size: 14px;
    font-weight: 500;
}
.form-error-summary ul { margin: 6px 0 0 18px; padding: 0; }
.form-error-summary li { margin: 2px 0; }

