/* ===== INTERACTIVE DOUGHNUT PIE CHART ===== */
.interactive-pie { filter: drop-shadow(0 8px 24px rgba(0,0,0,.08)); }
.pie-slice { transition: transform 0.3s cubic-bezier(.16,1,.3,1); cursor: pointer; }
.pie-slice:hover { filter: brightness(1.1); }

/* ===== INSURANCE PROTECTION VISUAL ===== */
.insurance-visual{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.5rem}
.shield-wrap{position:relative;width:200px;height:230px;display:flex;align-items:center;justify-content:center}
.shield{
  width:160px;height:190px;position:relative;
  background:linear-gradient(135deg,#386498,#6a8fb8);
  clip-path:polygon(50% 0%,100% 15%,100% 65%,50% 100%,0% 65%,0% 15%);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 20px 60px rgba(56, 100, 152,.2);
  animation:shieldFloat 4s ease-in-out infinite;
}
@keyframes shieldFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.shield-inner{
  width:130px;height:158px;
  background:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,.05));
  clip-path:polygon(50% 0%,100% 15%,100% 65%,50% 100%,0% 65%,0% 15%);
  display:flex;align-items:center;justify-content:center;
  font-size:2.5rem;
}
.shield-ring{
  position:absolute;inset:-15px;border-radius:50%;
  border:2px dashed rgba(56, 100, 152,.15);
  animation:shieldSpin 15s linear infinite;
}
@keyframes shieldSpin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
.shield-ring::before{
  content:'';position:absolute;top:-4px;left:50%;transform:translateX(-50%);
  width:8px;height:8px;border-radius:50%;background:var(--accent-light);
}

.protection-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
.protection-card{
  background:var(--white);border-radius:14px;padding:16px;
  border:1px solid rgba(0,0,0,.04);text-align:center;
  transition:all .4s cubic-bezier(.16,1,.3,1);
  box-shadow:0 4px 16px rgba(0,0,0,.03);
}
.protection-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.08);border-color:rgba(56, 100, 152,.15)}
.protection-card .pc-icon{font-size:1.6rem;margin-bottom:6px}
.protection-card .pc-type{font-family:'Outfit';font-size:.8rem;font-weight:700;letter-spacing:-.2px;margin-bottom:2px}
.protection-card .pc-cover{font-size:.72rem;color:var(--accent);font-weight:600}

/* ===== RETIREMENT VISUAL ===== */
.retire-visual{display:flex;flex-direction:column;align-items:center;gap:1rem}
.retire-progress-ring{position:relative;width:180px;height:180px}
.retire-progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.retire-progress-ring circle{fill:none;stroke-width:8;stroke-linecap:round}
.rpr-bg{stroke:rgba(0,0,0,.05)}
.rpr-fill{stroke:var(--accent);stroke-dasharray:440;stroke-dashoffset:440;transition:stroke-dashoffset 2s cubic-bezier(.16,1,.3,1)}
.rpr-fill.animated{stroke-dashoffset:123}
.retire-ring-center{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;
}
.retire-ring-center .rrc-pct{font-family:'Outfit';font-size:2.2rem;font-weight:900;color:var(--accent);letter-spacing:-2px}
.retire-ring-center .rrc-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}
.retire-details{display:flex;flex-direction:column;gap:8px;width:100%}
.retire-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 16px;background:var(--bg);border-radius:12px;
}
.retire-row .rr-label{font-size:.82rem;color:var(--text-light)}
.retire-row .rr-value{font-family:'Outfit';font-weight:700;font-size:.9rem;letter-spacing:-.3px}
