/* ═══════════════════════════════════════════════
   ZETLAN — 2025 LIGHT THEME · CompTIA Pages
   Clean, professional blue design system
══════════════════════════════════════════════════ */
*{box-sizing:border-box;}

/* ── Animations ── */
@keyframes slide-up{from{opacity:0;transform:translateY(32px);}to{opacity:1;transform:translateY(0);}}
@keyframes pulse-ring{0%{transform:scale(.9);opacity:.7;}70%{transform:scale(1.3);opacity:0;}100%{opacity:0;}}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@keyframes shimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}
@keyframes scroll-x{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.7;}70%{transform:scale(1.5);opacity:0;}100%{opacity:0;}}
@keyframes wa-bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
@keyframes wa-slide-up{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}

.anim-up{animation:slide-up .6s ease both;}
.anim-up-d1{animation:slide-up .6s .12s ease both;}
.anim-up-d2{animation:slide-up .6s .24s ease both;}
.anim-up-d3{animation:slide-up .6s .36s ease both;}
.float-anim{animation:float 4s ease-in-out infinite;}

/* ── HERO ── */
.page-hero{
  background:var(--hero-bg,linear-gradient(135deg,#fff 0%,#eff6ff 55%,#dbeafe 100%));
  min-height:94vh;display:flex;align-items:center;
  padding:90px 0 60px;position:relative;overflow:hidden;
  border-bottom:1px solid var(--border);
}
.hero-dot-grid{
  position:absolute;inset:0;
  background-image:radial-gradient(var(--dot-color,rgba(37,99,235,.10)) 1px,transparent 1px);
  background-size:32px 32px;pointer-events:none;
  mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black,transparent);
}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(var(--ac-rgb),.07);border:1px solid rgba(var(--ac-rgb),.18);
  border-radius:50px;padding:6px 16px;margin-bottom:22px;
}
.hero-badge .pulse{width:8px;height:8px;border-radius:50%;background:var(--ac);position:relative;}
.hero-badge .pulse::after{content:'';position:absolute;inset:-4px;border-radius:50%;background:var(--ac);animation:pulse-ring 2s infinite;}
.hero-card{background:#fff;border:1px solid rgba(var(--ac-rgb),.15);border-radius:20px;overflow:hidden;box-shadow:0 8px 40px rgba(var(--ac-rgb),.10);}
.hero-card-header{background:linear-gradient(135deg,rgba(var(--ac-rgb),.06),rgba(var(--ac-rgb),.03));padding:12px 18px;display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(var(--ac-rgb),.10);}

/* ── BUTTONS ── */
.btn-ac{
  background:linear-gradient(135deg,var(--ac),var(--ac-dark));color:#fff;
  padding:13px 30px;border-radius:10px;font-weight:800;font-size:.95rem;
  display:inline-flex;align-items:center;gap:8px;transition:all .2s;
  border:none;cursor:pointer;text-decoration:none;line-height:1.2;
  box-shadow:0 4px 16px rgba(var(--ac-rgb),.25);position:relative;overflow:hidden;
}
.btn-ac::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);background-size:200% 100%;animation:shimmer 2.5s infinite;}
.btn-ac:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(var(--ac-rgb),.38);color:#fff;}
.btn-outline-ac{
  background:transparent;color:var(--ac-dark);padding:13px 28px;
  border-radius:10px;font-weight:700;font-size:.95rem;
  display:inline-flex;align-items:center;gap:8px;
  border:1.5px solid rgba(var(--ac-rgb),.3);transition:all .2s;cursor:pointer;text-decoration:none;
}
.btn-outline-ac:hover{background:rgba(var(--ac-rgb),.06);border-color:var(--ac);transform:translateY(-2px);}

/* ── STAT PILLS ── */
.stat-pill{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;text-align:center;transition:all .3s;box-shadow:var(--shadow);}
.stat-pill:hover{border-color:rgba(var(--ac-rgb),.22);transform:translateY(-4px);box-shadow:var(--shadow-lg);}

/* ── FEATURE CARDS (3-up why section) ── */
.feat-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:28px 24px;text-align:center;transition:all .3s;box-shadow:var(--shadow);}
.feat-card:hover{border-color:rgba(var(--ac-rgb),.22);transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.feat-icon{width:56px;height:56px;border-radius:14px;background:rgba(var(--ac-rgb),.08);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:1.6rem;}

/* ── BENTO GRID ── */
.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:160px;gap:12px;}
.bento-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:22px;overflow:hidden;position:relative;transition:all .3s;box-shadow:var(--shadow);}
.bento-card:hover{border-color:rgba(var(--ac-rgb),.22);transform:scale(1.02);box-shadow:var(--shadow-lg);}
.bento-card::before{content:'';position:absolute;inset:0;opacity:0;transition:.3s;background:linear-gradient(135deg,rgba(var(--ac-rgb),.03),transparent);}
.bento-card:hover::before{opacity:1;}
.bento-col2{grid-column:span 2;}.bento-col3{grid-column:span 3;}.bento-row2{grid-row:span 2;}
.b-icon{font-size:2rem;margin-bottom:10px;display:block;}
.b-title{color:var(--text);font-weight:800;font-size:.92rem;margin-bottom:5px;}
.b-desc{color:var(--text2);font-size:.75rem;line-height:1.55;}
.b-number{font-size:3rem;font-weight:900;line-height:1;background:linear-gradient(135deg,var(--ac),var(--ac-light,#60A5FA));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* ── TECH SCROLL ── */
.tech-scroll-outer{overflow:hidden;position:relative;}
.tech-scroll-outer::before,.tech-scroll-outer::after{content:'';position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none;}
.tech-scroll-outer::before{left:0;background:linear-gradient(90deg,var(--bg3),transparent);}
.tech-scroll-outer::after{right:0;background:linear-gradient(-90deg,var(--bg3),transparent);}
.tech-scroll-inner{display:flex;gap:10px;width:max-content;animation:scroll-x 25s linear infinite;}
.tech-scroll-inner:hover{animation-play-state:paused;}
.tech-chip{background:#fff;border:1px solid var(--border);border-radius:8px;padding:9px 16px;font-size:.8rem;font-weight:600;color:var(--text2);white-space:nowrap;transition:all .2s;cursor:default;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.tech-chip:hover{background:rgba(var(--ac-rgb),.06);border-color:rgba(var(--ac-rgb),.22);color:var(--ac-dark);}

/* ── CURRICULUM ── */
.curri-item{background:#fff;border:1px solid var(--border);border-radius:13px;margin-bottom:8px;overflow:hidden;transition:.2s;box-shadow:0 1px 8px rgba(0,0,0,.04);}
.curri-item:hover{border-color:rgba(var(--ac-rgb),.18);}
.curri-btn{width:100%;background:transparent;border:none;padding:16px 20px;display:flex;align-items:center;gap:12px;cursor:pointer;text-align:left;}
.curri-num{width:30px;height:30px;border-radius:7px;background:rgba(var(--ac-rgb),.08);border:1px solid rgba(var(--ac-rgb),.18);color:var(--ac-dark);font-size:.72rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:monospace;}
.curri-title{color:var(--text);font-weight:600;font-size:.88rem;flex:1;}
.curri-arrow{color:var(--text3);transition:transform .3s;font-size:.72rem;}
.curri-btn[aria-expanded="true"] .curri-arrow{transform:rotate(90deg);color:var(--ac);}
.curri-body{border-top:1px solid var(--border);padding:14px 20px 18px 62px;background:var(--bg3);}
.curri-body li{color:var(--text2);font-size:.8rem;padding:4px 0;display:flex;align-items:flex-start;gap:8px;list-style:none;}
.curri-body li::before{content:'›';color:var(--ac);font-weight:700;flex-shrink:0;}

/* ── CAREER ROWS ── */
.career-row{display:flex;align-items:center;gap:16px;padding:16px;background:#fff;border:1px solid var(--border);border-radius:13px;transition:all .3s;margin-bottom:10px;box-shadow:0 1px 8px rgba(0,0,0,.04);}
.career-row:hover{border-color:rgba(var(--ac-rgb),.2);transform:translateX(4px);box-shadow:var(--shadow);}
.career-icon-wrap{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.career-info{flex:1;min-width:0;}
.career-title{color:var(--text);font-weight:700;font-size:.88rem;}
.career-desc{color:var(--text2);font-size:.74rem;margin-top:2px;}
.salary-bar{height:5px;background:rgba(0,0,0,.07);border-radius:3px;margin-top:6px;overflow:hidden;}
.salary-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--ac),var(--ac-light,#60A5FA));}
.salary-text{color:var(--ac-dark);font-weight:800;font-size:.82rem;white-space:nowrap;}

/* ── SECTION LABEL ── */
.sec-label{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2.5px;color:var(--ac);margin-bottom:12px;}
.sec-label::before{content:'';width:20px;height:2px;background:var(--ac);}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* ── WHATSAPP WIDGET ── */
#waWidget{position:fixed;bottom:28px;right:24px;z-index:99999;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
#waFloatBtn::before{content:'';position:absolute;inset:-6px;border-radius:50%;background:rgba(37,211,102,.4);animation:wa-pulse 2s ease-out infinite;}
#waFloatBtn{width:60px;height:60px;border-radius:50%;background:#25d366;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(37,211,102,.55);transition:transform .2s;position:relative;animation:wa-bounce 3s ease-in-out infinite;}
#waFloatBtn:hover{transform:scale(1.1)!important;animation:none;}
#waFloatBtn.open{background:#128c7e;animation:none;}
#waChatBox{display:none;width:300px;border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.15);overflow:hidden;margin-bottom:14px;animation:wa-slide-up .25s ease both;}
#waBadge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:50%;background:#e74c3c;color:#fff;font-size:.65rem;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid #fff;}

/* ── RESPONSIVE ── */
@media(max-width:768px){
  .bento-grid{grid-template-columns:1fr 1fr;grid-auto-rows:140px;}
  .bento-col2,.bento-col3{grid-column:span 2;}
}
