/* =========================================================
   RADHA RANI IT SOLUTIONS — PORTFOLIO PAGE
   File: assets/css/portfolio.css
   Professional navy / pink theme, responsive and animated
========================================================= */
:root {
    --rr-p-navy:#17345f;
    --rr-p-deep:#0b1b35;
    --rr-p-blue:#2d61b5;
    --rr-p-pink:#ed2382;
    --rr-p-pink-dark:#d51470;
    --rr-p-text:#304663;
    --rr-p-muted:#687b95;
    --rr-p-border:#e0e8f4;
    --rr-p-soft:#f6f8fd;
    --rr-p-gold:#f8bd4d;
}
.rr-portfolio { overflow:clip;color:var(--rr-p-text);background:#fff;font-family:"Inter","Segoe UI",Arial,sans-serif;line-height:1.7; }
.rr-portfolio *, .rr-portfolio *::before, .rr-portfolio *::after { box-sizing:border-box; }
.rr-portfolio a { text-decoration:none; }
.rr-portfolio .container { width:min(1200px,calc(100% - 48px));margin-inline:auto; }
.rr-portfolio .section-space { padding:88px 0; }
.rr-portfolio h2 { margin:12px 0 18px;color:var(--rr-p-navy);font-size:clamp(2rem,3.2vw,3rem);font-weight:850;line-height:1.15;letter-spacing:-.045em; }
.rr-portfolio p { color:var(--rr-p-muted); }
.rr-portfolio .section-kicker { display:inline-flex;align-items:center;gap:8px;color:var(--rr-p-pink-dark);font-size:.75rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase; }
.rr-portfolio .reveal { opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease; }
.rr-portfolio .reveal.is-visible { opacity:1;transform:translateY(0); }

/* HERO */
.portfolio-hero { position:relative;isolation:isolate;min-height:590px;padding:76px 0 75px;overflow:hidden;background:radial-gradient(ellipse at 80% 15%,rgba(103,130,226,.19),transparent 32%),radial-gradient(ellipse at 4% 95%,rgba(237,35,130,.10),transparent 29%),linear-gradient(125deg,#f8faff,#edf3ff 58%,#f8f8ff); }
.portfolio-hero-grid { position:absolute;z-index:-1;inset:0;opacity:.28;background-image:linear-gradient(rgba(66,100,158,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(66,100,158,.10) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(to bottom,#000,transparent 95%); }
.portfolio-hero-glow { position:absolute;z-index:-1;border-radius:50%;filter:blur(5px);pointer-events:none; }
.portfolio-hero-glow-one { width:300px;height:300px;right:-90px;top:15px;background:rgba(237,35,130,.08); }
.portfolio-hero-glow-two { width:260px;height:260px;left:-160px;bottom:-110px;background:rgba(45,97,181,.12); }
.portfolio-hero-layout { display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(32px,5vw,70px); }
.portfolio-hero .eyebrow { display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;color:var(--rr-p-pink-dark);font-size:.76rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase; }
.portfolio-hero .eyebrow i { display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#ffe5f1; }
.portfolio-hero-copy h1 { max-width:700px;margin:0 0 21px;color:var(--rr-p-navy);font-size:clamp(2.7rem,4.8vw,4.5rem);font-weight:900;line-height:1.05;letter-spacing:-.06em; }
.portfolio-hero-copy h1 span { color:var(--rr-p-pink); }
.portfolio-hero-copy > p { max-width:660px;margin:0;color:#4f6481;font-size:1.06rem;line-height:1.9; }
.portfolio-hero .banner-actions { display:flex;flex-wrap:wrap;gap:12px;margin-top:27px; }
.portfolio-btn { display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:12px 19px;border:1px solid transparent;border-radius:11px;font-size:.9rem;font-weight:800;transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.portfolio-btn-primary { color:#fff;background:linear-gradient(110deg,#e50068,#f21b83);box-shadow:0 12px 26px rgba(229,0,104,.17); }
.portfolio-btn-primary:hover { color:#fff;transform:translateY(-2px);box-shadow:0 16px 30px rgba(229,0,104,.24); }
.portfolio-btn-outline { color:var(--rr-p-navy);border-color:#cdd9ec;background:rgba(255,255,255,.8); }
.portfolio-btn-outline:hover { color:var(--rr-p-navy);background:#fff;transform:translateY(-2px); }
.portfolio-hero-trust { display:flex;flex-wrap:wrap;gap:9px 17px;margin-top:25px; }
.portfolio-hero-trust span { color:#526984;font-size:.8rem;font-weight:700; }
.portfolio-hero-trust i { margin-right:5px;color:#18a36a; }
.portfolio-hero-bottom-note { position:absolute;left:50%;bottom:17px;display:flex;align-items:center;gap:9px;transform:translateX(-50%);color:#61758f;font-size:.73rem;font-weight:750;letter-spacing:.04em;white-space:nowrap; }
.pulse-dot { width:8px;height:8px;border-radius:50%;background:#18b879;box-shadow:0 0 0 5px rgba(24,184,121,.12); }

/* CSS-animated portfolio artwork */
.portfolio-hero-art { position:relative;display:grid;place-items:center;min-height:440px;isolation:isolate; }
.portfolio-art-orbit { position:absolute;width:88%;height:58%;border:1px solid rgba(45,97,181,.23);border-radius:50%;transform:rotate(-25deg); }
.portfolio-art-orbit-one { animation:rrPortfolioOrbit 28s linear infinite; }
.portfolio-art-orbit-two { width:74%;height:82%;border-color:rgba(237,35,130,.23);transform:rotate(35deg);animation:rrPortfolioOrbit 35s linear infinite reverse; }
.portfolio-art-cloud { position:absolute;z-index:3;top:1%;left:40%;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--rr-p-navy);font-size:.7rem;font-weight:850;animation:rrPortfolioFloat 4.5s ease-in-out infinite; }
.portfolio-art-cloud i { color:#53b9f4;font-size:3.4rem;filter:drop-shadow(0 8px 16px rgba(45,97,181,.2)); }
.portfolio-art-panel { position:relative;z-index:2;width:min(100%,420px);padding:18px;border:1px solid rgba(133,175,230,.55);border-radius:22px;background:linear-gradient(145deg,#142f57,#0b1b35);box-shadow:0 28px 65px rgba(13,29,57,.25);transform:perspective(900px) rotateY(-4deg); }
.portfolio-art-panel-heading { display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 3px 14px;color:#d8e7fb;font-size:.64rem;font-weight:850;letter-spacing:.1em; }
.portfolio-art-live { display:inline-flex;align-items:center;gap:6px;color:#9df1cc;font-size:.6rem;letter-spacing:.04em; }
.portfolio-art-live i { width:7px;height:7px;border-radius:50%;background:#32d99a;box-shadow:0 0 10px #32d99a; }
.portfolio-art-row { display:flex;align-items:center;gap:11px;margin-top:9px;padding:12px;border:1px solid rgba(158,194,243,.15);border-radius:13px;background:rgba(4,17,38,.58); }
.portfolio-art-icon { display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;color:#fff;background:#2d61b5;font-size:1rem; }
.portfolio-art-pink { background:#e91e82; }.portfolio-art-gold { color:#17345f;background:#f8bd4d; }
.portfolio-art-row strong,.portfolio-art-row small { display:block; }
.portfolio-art-row strong { color:#fff;font-size:.82rem;line-height:1.4; }
.portfolio-art-row small { margin-top:2px;color:#b6c9e4;font-size:.72rem; }
.portfolio-art-check { margin-left:auto;color:#35d69a;font-size:1rem; }
.portfolio-art-float { position:absolute;z-index:4;display:flex;align-items:center;gap:9px;padding:11px 13px;border:1px solid rgba(255,255,255,.85);border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 14px 32px rgba(23,52,95,.14);animation:rrPortfolioFloat 5s ease-in-out infinite; }
.portfolio-art-float > i { display:grid;place-items:center;width:37px;height:37px;border-radius:11px;color:#fff;background:#2d61b5; }
.portfolio-art-float strong,.portfolio-art-float small { display:block; }
.portfolio-art-float strong { color:var(--rr-p-navy);font-size:.76rem; }
.portfolio-art-float small { color:var(--rr-p-muted);font-size:.67rem; }
.portfolio-art-float-left { left:-10px;top:30%; }
.portfolio-art-float-right { right:-5px;bottom:13%;animation-delay:-2s; }
.portfolio-art-float-right > i { color:#17345f;background:#f8bd4d; }
@keyframes rrPortfolioFloat { 0%,100%{translate:0 0}50%{translate:0 -7px} }
@keyframes rrPortfolioOrbit { from{rotate:0deg}to{rotate:360deg} }

/* Intro */
.portfolio-intro { background:#fff; }
.portfolio-intro-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(35px,7vw,100px); }
.portfolio-intro h2 { max-width:600px;margin-bottom:0; }
.portfolio-intro-grid > div:last-child p { margin:0 0 14px;line-height:1.9; }
.portfolio-intro .intro-note { display:flex;align-items:flex-start;gap:9px;color:var(--rr-p-navy);font-size:.9rem;font-weight:700; }
.portfolio-intro .intro-note i { margin-top:5px;color:#18a36a; }

/* Projects & filters */
.portfolio-projects { background:#f6f8fd; }
.portfolio-projects .section-heading { display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px; }
.portfolio-projects .section-heading h2 { margin-bottom:9px; }
.portfolio-projects .section-heading p { margin:0; }
.portfolio-projects .text-link { display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--rr-p-pink-dark);font-size:.86rem;font-weight:850; }
.portfolio-projects .text-link:hover { color:var(--rr-p-navy); }
.portfolio-filters { display:flex;flex-wrap:wrap;gap:9px;margin:0 0 25px; }
.portfolio-filters .filter-btn { min-height:39px;padding:9px 15px;border:1px solid #dce5f2;border-radius:999px;color:#536984;background:#fff;font:inherit;font-size:.82rem;font-weight:750;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease; }
.portfolio-filters .filter-btn:hover { border-color:#e9a5c7;color:var(--rr-p-pink-dark); }
.portfolio-filters .filter-btn.active { border-color:var(--rr-p-navy);color:#fff;background:var(--rr-p-navy);box-shadow:0 6px 16px rgba(23,52,95,.15); }
.portfolio-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch; }
.project-card { min-width:0;overflow:hidden;border:1px solid #e0e7f2;border-radius:18px;background:#fff;box-shadow:0 6px 20px rgba(23,52,95,.035);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.project-card:hover { transform:translateY(-5px);border-color:#f0bad4;box-shadow:0 18px 40px rgba(23,52,95,.10); }
.project-card.is-filtered-out { display:none!important; }
.project-image { position:relative;display:flex;align-items:center;justify-content:center;min-height:210px;overflow:hidden;background:linear-gradient(135deg,#e8f0ff,#fbeaf3); }
.project-image::after { position:absolute;inset:0;content:"";background:linear-gradient(to top,rgba(11,27,53,.18),transparent 52%);pointer-events:none; }
.project-image img { display:block;width:100%;height:220px;object-fit:cover;transition:transform .45s ease; }
.project-card:hover .project-image img { transform:scale(1.045); }
.project-type { position:absolute;z-index:1;left:13px;bottom:13px;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(255,255,255,.75);border-radius:999px;color:var(--rr-p-navy);background:rgba(255,255,255,.94);font-size:.7rem;font-weight:850; }
.project-content { padding:22px; }
.project-title-row { display:flex;align-items:flex-start;justify-content:space-between;gap:12px; }
.project-title-row h3 { margin:0;color:var(--rr-p-navy);font-size:1.04rem;font-weight:850;line-height:1.4; }
.project-number { flex:0 0 auto;color:#d8e2f0;font-size:1.2rem;font-weight:900;line-height:1.2; }
.project-content > p { margin:12px 0 17px;font-size:.87rem;line-height:1.8; }
.tags { display:flex;flex-wrap:wrap;gap:7px; }
.tags span { padding:5px 9px;border:1px solid #e0e8f3;border-radius:7px;color:#536984;background:#f8faff;font-size:.69rem;font-weight:750; }
.portfolio-disclaimer { display:flex;align-items:flex-start;gap:9px;margin:24px 0 0;color:#72839a;font-size:.78rem;line-height:1.7; }
.portfolio-disclaimer i { margin-top:4px;color:var(--rr-p-blue); }

/* Capabilities */
.portfolio-capabilities { background:#fff; }
.portfolio-capabilities .section-heading.centered { max-width:760px;margin:0 auto 35px;text-align:center; }
.portfolio-capabilities .section-heading p { margin:0; }
.capability-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px; }
.capability-card { padding:23px;border:1px solid #e2e9f4;border-radius:17px;background:#fff;transition:transform .25s ease,box-shadow .25s ease; }
.capability-card:hover { transform:translateY(-4px);box-shadow:0 15px 34px rgba(23,52,95,.08); }
.capability-icon { display:grid;place-items:center;width:47px;height:47px;border-radius:13px;color:var(--rr-p-pink);background:#fff0f7;font-size:1.1rem; }
.capability-card h3 { margin:16px 0 7px;color:var(--rr-p-navy);font-size:.98rem;font-weight:850;line-height:1.4; }
.capability-card p { margin:0;font-size:.84rem;line-height:1.75; }

/* Stats */
.portfolio-stats { padding:42px 0;background:linear-gradient(115deg,#0d1d39,#173d70); }
.stats-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px; }
.stat-box { display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:13px;padding:14px 18px;border-right:1px solid rgba(255,255,255,.15); }
.stat-box:last-child { border-right:0; }
.stat-icon { grid-row:span 2;display:grid;place-items:center;width:45px;height:45px;border-radius:13px;color:#ff91c1;background:rgba(255,255,255,.1); }
.stat-box h2 { margin:0;color:#fff;font-size:2rem;font-weight:900;line-height:1.1; }
.stat-box h2 span { color:#ff80b8; }
.stat-box p { margin:4px 0 0;color:#d0dced;font-size:.78rem;font-weight:650;line-height:1.4; }

/* CTA */
.portfolio-cta { background:#f6f8fd; }
.cta-panel { position:relative;isolation:isolate;overflow:hidden;padding:clamp(30px,5vw,58px);border-radius:24px;background:linear-gradient(115deg,#0d1d39,#173d70);box-shadow:0 22px 55px rgba(13,29,57,.16); }
.cta-decoration { position:absolute;z-index:-1;border:1px solid rgba(255,255,255,.12);border-radius:50%;pointer-events:none; }
.cta-decoration-one { width:370px;height:370px;right:-90px;top:-190px; }
.cta-decoration-two { width:260px;height:260px;right:80px;bottom:-205px;border-color:rgba(237,35,130,.25); }
.cta-content { max-width:780px; }
.cta-content .section-kicker { color:#ff9bc8; }
.cta-content h2 { margin:12px 0;color:#fff;font-size:clamp(2rem,3.5vw,3.1rem); }
.cta-content p { max-width:680px;margin:0;color:#d0dced;line-height:1.8; }
.cta-actions { display:flex;flex-wrap:wrap;align-items:center;gap:13px;margin-top:24px; }
.portfolio-btn-light { color:var(--rr-p-navy);background:#fff;box-shadow:0 10px 25px rgba(0,0,0,.12); }
.portfolio-btn-light:hover { color:var(--rr-p-navy);background:#f5f7fc;transform:translateY(-2px); }
.cta-whatsapp { display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:11px 16px;border:1px solid rgba(255,255,255,.25);border-radius:11px;color:#fff;background:rgba(255,255,255,.08);font-size:.87rem;font-weight:800; }
.cta-whatsapp:hover { color:#fff;background:rgba(255,255,255,.15); }

/* Floating WhatsApp + back-to-top */
.portfolio-whatsapp { position:fixed;z-index:998;right:22px;bottom:25px;display:grid;place-items:center;width:48px;height:48px;border:3px solid #fff;border-radius:50%;color:#fff;background:#18b86b;box-shadow:0 8px 24px rgba(24,184,107,.27);font-size:1.55rem;transition:transform .2s ease,box-shadow .2s ease; }
.portfolio-whatsapp:hover { color:#fff;transform:translateY(-3px) scale(1.04);box-shadow:0 12px 28px rgba(24,184,107,.35); }
.portfolio-back-top { position:fixed;z-index:997;right:25px;bottom:85px;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:13px;color:#fff;background:var(--rr-p-navy);box-shadow:0 8px 22px rgba(13,29,57,.2);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(9px);transition:opacity .25s ease,transform .25s ease,background .25s ease,visibility .25s ease; }
.portfolio-back-top.is-visible { opacity:1;visibility:visible;transform:translateY(0); }
.portfolio-back-top:hover { background:var(--rr-p-pink); }

/* Responsive */
@media(max-width:1100px) {
    .portfolio-hero-layout { gap:27px; }
    .portfolio-hero-copy h1 { font-size:clamp(2.55rem,4.5vw,3.8rem); }
    .portfolio-hero-art { min-height:410px; }
    .portfolio-art-float-left { left:-5px; }
    .portfolio-art-float-right { right:-3px; }
    .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .capability-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .stat-box { padding-inline:10px; }
}
@media(max-width:800px) {
    .rr-portfolio .container { width:min(100% - 36px,680px); }
    .rr-portfolio .section-space { padding:70px 0; }
    .portfolio-hero { min-height:0;padding:60px 0 65px; }
    .portfolio-hero-layout,.portfolio-intro-grid { grid-template-columns:1fr;gap:32px; }
    .portfolio-hero-copy h1 { max-width:650px;font-size:clamp(2.7rem,7.6vw,4rem); }
    .portfolio-hero-art { width:min(100%,590px);margin:0 auto;min-height:400px; }
    .portfolio-projects .section-heading { align-items:flex-start;flex-direction:column;gap:12px; }
    .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .stat-box:nth-child(2) { border-right:0; }
    .stat-box:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:20px; }
    .stat-box:nth-child(n+3) { padding-top:20px; }
}
@media(max-width:560px) {
    .rr-portfolio .container { width:calc(100% - 30px); }
    .rr-portfolio .section-space { padding:55px 0; }
    .portfolio-hero { padding:44px 0 58px; }
    .portfolio-hero .eyebrow { font-size:.65rem;letter-spacing:.08em;margin-bottom:17px; }
    .portfolio-hero-copy h1 { font-size:clamp(2.35rem,10.5vw,3.1rem);line-height:1.07; }
    .portfolio-hero-copy > p { font-size:.96rem;line-height:1.8; }
    .portfolio-hero .banner-actions { align-items:stretch;flex-direction:column; }
    .portfolio-btn { width:100%; }
    .portfolio-hero-trust { display:grid;grid-template-columns:1fr;gap:7px; }
    .portfolio-hero-art { min-height:340px; }
    .portfolio-art-panel { width:calc(100% - 24px);padding:12px;border-radius:17px; }
    .portfolio-art-row { gap:8px;padding:9px; }
    .portfolio-art-icon { flex-basis:35px;width:35px;height:35px;font-size:.85rem; }
    .portfolio-art-row strong { font-size:.72rem; }
    .portfolio-art-row small { font-size:.63rem; }
    .portfolio-art-cloud { left:39%;font-size:.6rem; }
    .portfolio-art-cloud i { font-size:2.6rem; }
    .portfolio-art-float { gap:6px;padding:8px 9px; }
    .portfolio-art-float > i { width:30px;height:30px;font-size:.83rem; }
    .portfolio-art-float strong { font-size:.65rem; }
    .portfolio-art-float small { font-size:.58rem; }
    .portfolio-art-float-left { left:-3px;top:27%; }
    .portfolio-art-float-right { right:-2px;bottom:8%; }
    .portfolio-hero-bottom-note { bottom:17px;font-size:.61rem; }
    .portfolio-grid,.capability-grid { grid-template-columns:1fr; }
    .portfolio-filters { gap:7px; }
    .portfolio-filters .filter-btn { padding:8px 12px;font-size:.76rem; }
    .project-image img { height:205px; }
    .project-content { padding:19px; }
    .stats-grid { gap:0 8px; }
    .stat-box { grid-template-columns:1fr;text-align:center;justify-items:center;gap:7px;padding:14px 5px!important; }
    .stat-icon { grid-row:auto;width:38px;height:38px; }
    .stat-box h2 { font-size:1.75rem; }
    .stat-box p { font-size:.68rem; }
    .stat-box:nth-child(odd) { border-right:1px solid rgba(255,255,255,.15); }
    .stat-box:nth-child(even) { border-right:0; }
    .cta-panel { padding:27px 21px;border-radius:18px; }
    .cta-content h2 { font-size:2rem; }
    .cta-actions { align-items:stretch;flex-direction:column; }
    .portfolio-whatsapp { right:15px;bottom:17px;width:44px;height:44px;font-size:1.4rem; }
    .portfolio-back-top { right:17px;bottom:72px;width:39px;height:39px; }
}
@media(prefers-reduced-motion:reduce) {
    .rr-portfolio *, .rr-portfolio *::before, .rr-portfolio *::after { animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important; }
    .rr-portfolio .reveal { opacity:1;transform:none; }
}
