.eu-banner{background:linear-gradient(135deg,rgba(0,51,153,0.15) 0%,rgba(0,51,153,0.05) 100%);border:1px solid rgba(0,51,153,0.3);border-radius:var(--radius-lg);padding:2rem 2.5rem;display:flex;align-items:center;gap:2.5rem;margin-bottom:3rem;position:relative;overflow:hidden}
.eu-banner::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 10% 50%,rgba(0,51,153,0.08) 0%,transparent 70%);pointer-events:none}
.eu-flag{flex-shrink:0;width:80px;height:54px;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,0.1);box-shadow:0 4px 20px rgba(0,0,0,0.4)}
.eu-flag svg{width:100%;height:100%}
.eu-text{flex:1}
.eu-title{font-size:1.1rem;font-weight:800;letter-spacing:-0.03em;margin-bottom:0.4rem;color:var(--text)}
.eu-subtitle{font-size:0.85rem;color:var(--text2);line-height:1.5}
.eu-badges{display:flex;gap:8px;margin-top:0.75rem;flex-wrap:wrap}
.eu-badge{font-family:var(--mono);font-size:0.65rem;padding:4px 10px;border-radius:20px;border:1px solid rgba(255,255,255,0.12);color:var(--text2);background:rgba(255,255,255,0.04);display:flex;align-items:center;gap:5px}
.eu-badge.highlight{border-color:rgba(0,153,76,0.4);color:#4ade80;background:rgba(0,153,76,0.08)}
.eu-stats{display:flex;flex-direction:column;gap:6px;flex-shrink:0;text-align:right}
.eu-stat-num{font-size:1.75rem;font-weight:800;color:#4ade80;letter-spacing:-0.05em;line-height:1}
.eu-stat-label{font-family:var(--mono);font-size:0.65rem;color:var(--text3);letter-spacing:0.05em}
.stack-section{background:var(--bg)}
.stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:2.5rem}
.stack-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1rem;text-align:center;transition:all var(--transition);display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;overflow:hidden}
.stack-item:hover{border-color:rgba(255,255,255,0.12);transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,0.3)}
.stack-item::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--item-color,rgba(34,197,94,0.4));opacity:0;transition:opacity var(--transition)}
.stack-item:hover::after{opacity:1}
.stack-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--bg3);border:1px solid var(--border);overflow:hidden;flex-shrink:0}
.stack-icon img{width:26px;height:26px;object-fit:contain;filter:brightness(0.9);transition:filter var(--transition)}
.stack-item:hover .stack-icon img{filter:brightness(1.1)}
.stack-name{font-size:0.85rem;font-weight:700;color:var(--text);letter-spacing:-0.01em}
.stack-role{font-family:var(--mono);font-size:0.62rem;color:var(--text3);letter-spacing:0.04em;text-transform:uppercase}
.stack-desc{font-size:0.72rem;color:var(--text2);line-height:1.4}
.stack-tag{font-family:var(--mono);font-size:0.6rem;padding:2px 7px;border-radius:10px;background:rgba(34,197,94,0.08);color:var(--accent);border:1px solid rgba(34,197,94,0.15)}
.cert-row{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:2.5rem;flex-wrap:wrap;padding:1.25rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius)}
.cert-item{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:0.72rem;color:var(--text2)}
.cert-icon{font-size:1rem}
.cert-sep{width:1px;height:20px;background:var(--border)}
@media(max-width:768px){.eu-banner{flex-direction:column;text-align:center;gap:1.5rem}.eu-stats{text-align:center}.eu-badges{justify-content:center}.stack-grid{grid-template-columns:repeat(3,1fr)}.cert-sep{display:none}}
