/* ══════════════════════════════════════════════════════════════
   RIPO CyberTech — Shared Premium Theme
   Common design tokens, base resets, and reusable UI primitives
   used across the public-facing site. Page-specific layout (grids,
   unique cards, hero-image treatments) stays inline on each page.
══════════════════════════════════════════════════════════════ */

:root{
  --g1:#0050c8; --g2:#6c2bff; --g3:#c026d3; --g4:#e11d48;
  --navy:#001233; --dark:#0d1117; --gray:#4b5563; --muted:#6b7280;
  --light:#f3f6fb; --white:#ffffff;
  --border:rgba(0,18,51,.10); --border2:rgba(0,80,200,.14);
  --sh-xs:0 2px 8px rgba(0,18,51,.06);
  --sh-sm:0 4px 20px rgba(0,18,51,.08),0 1px 4px rgba(0,0,0,.04);
  --sh-md:0 8px 32px rgba(0,18,51,.10),0 2px 8px rgba(0,0,0,.05);
  --sh-lg:0 20px 56px rgba(0,80,200,.14),0 4px 14px rgba(0,0,0,.06);
  --r4:4px; --r8:8px; --r12:12px; --r16:16px; --r20:20px; --r99:99px;
}

/* ── Reset & base ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'DM Sans',sans-serif; font-size:15px; line-height:1.6;
  background:var(--white); color:var(--dark); overflow-x:hidden;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}

/* ── Keyframes ── */
@keyframes gradMove {0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes shimText {0%{background-position:300% center}100%{background-position:-300% center}}
@keyframes floatUp  {0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes ripple   {to{transform:scale(4);opacity:0}}
@keyframes fadeSlideUp {from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* ── Layout ── */
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 18px}
@media(min-width:640px){.wrap{padding:0 28px}}
@media(min-width:1024px){.wrap{padding:0 48px}}

/* ── Typography utilities ── */
.grad-text{
  background:linear-gradient(115deg,var(--g1) 0%,var(--g2) 40%,var(--g3) 70%,var(--g4) 100%);
  background-size:300% auto;animation:shimText 9s linear infinite;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.overline{
  font-family:'DM Sans',sans-serif;
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:var(--g1);margin-bottom:10px;
}
.overline::before{
  content:'';display:block;width:22px;height:2px;
  background:linear-gradient(90deg,var(--g1),var(--g2));
  border-radius:2px;flex-shrink:0;
}
.h-sec{
  font-family:'Barlow',sans-serif;font-weight:800;
  line-height:1.12;letter-spacing:-.01em;color:var(--dark);
  margin-bottom:12px;font-size:26px;
}
@media(min-width:480px){.h-sec{font-size:30px}}
@media(min-width:768px){.h-sec{font-size:36px}}
@media(min-width:1024px){.h-sec{font-size:44px}}
.h-card{font-family:'Barlow',sans-serif;font-weight:700;font-size:17px;line-height:1.25;color:var(--dark);margin-bottom:6px}
@media(min-width:768px){.h-card{font-size:19px}}
.t-body{font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.78;color:var(--gray)}
@media(min-width:768px){.t-body{font-size:16px}}
.text-c{text-align:center}

/* ── Scroll progress bar ── */
#ripo-bar{
  position:fixed;top:0;left:0;height:3px;width:0%;
  background:linear-gradient(90deg,var(--g1),var(--g2),var(--g3),var(--g4));
  background-size:300% auto;animation:gradMove 8s ease infinite;
  z-index:99999;pointer-events:none;
}

/* ── Scroll reveal ── */
.rv{opacity:0;transform:translateY(30px);transition:opacity 1s cubic-bezier(.22,.61,.36,1),transform 1s cubic-bezier(.22,.61,.36,1)}
.rv.on{opacity:1;transform:none}
.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}.rv.d3{transition-delay:.36s}
.rv.d4{transition-delay:.48s}.rv.d5{transition-delay:.60s}.rv.d6{transition-delay:.72s}

/* ── Buttons ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:'DM Sans',sans-serif;font-weight:600;font-size:14px;
  border:none;border-radius:var(--r4);cursor:pointer;position:relative;overflow:hidden;
  transition:transform .4s ease,box-shadow .4s ease;
  text-decoration:none;white-space:nowrap;letter-spacing:.01em;
  -webkit-tap-highlight-color:transparent;
}
.btn::after{
  content:'';position:absolute;top:0;left:-110%;width:70%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.22),transparent);
  transition:left .85s ease;pointer-events:none;
}
.btn:hover::after{left:120%}
.btn:hover{transform:translateY(-3px)}
.btn-fill{
  padding:13px 28px;color:var(--white);
  background:linear-gradient(115deg,var(--g1),var(--g2),var(--g3));
  background-size:200% 200%;animation:gradMove 9s ease infinite;
  box-shadow:0 6px 22px rgba(0,80,200,.28);
}
.btn-fill:hover{box-shadow:0 12px 36px rgba(0,80,200,.42);color:var(--white)}
.btn-ghost{padding:11px 26px;color:var(--g1);border:1.5px solid var(--g1);background:transparent}
.btn-ghost:hover{background:var(--g1);color:var(--white)}
.btn-mob{width:100%;justify-content:center}
@media(min-width:480px){.btn-mob{width:auto}}
.rpl{position:absolute;border-radius:50%;background:rgba(255,255,255,.22);transform:scale(0);animation:ripple .55s ease-out;pointer-events:none}

/* ── Sections ── */
.sec{padding:60px 0}
@media(min-width:768px){.sec{padding:84px 0}}
@media(min-width:1024px){.sec{padding:104px 0}}
.sec-light{background:var(--light)}
.sec-hd{margin-bottom:36px;text-align:center}
@media(min-width:768px){.sec-hd{margin-bottom:52px}}
.divider,.divider-line{height:2px;background:linear-gradient(90deg,transparent,var(--g1),var(--g2),var(--g3),transparent);border:none;margin:0}

/* ── Page hero band (inner pages) ── */
.page-hero{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--light) 0%,#eef2fb 50%,var(--light) 100%);
  padding:72px 0 80px;text-align:center;
  border-bottom:1px solid var(--border);
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 60% 50% at 20% 50%,rgba(0,80,200,.14),transparent),
    radial-gradient(ellipse 50% 60% at 80% 40%,rgba(108,43,255,.12),transparent),
    radial-gradient(ellipse 40% 40% at 55% 80%,rgba(192,38,211,.10),transparent);
  animation:gradMove 12s ease infinite;background-size:200% 200%;
}
.page-hero::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--g1),var(--g2),var(--g3),var(--g4));
  background-size:300% auto;animation:gradMove 8s ease infinite;
}
.hero-label{
  font-family:'DM Sans',sans-serif;
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:var(--g1);
  margin-bottom:14px;position:relative;z-index:1;
}
.hero-label::before,.hero-label::after{
  content:'';width:20px;height:1.5px;
  background:var(--g1);opacity:.4;border-radius:2px;
}
.hero-title{
  font-family:'Barlow',sans-serif;
  font-size:32px;font-weight:900;line-height:1.1;
  letter-spacing:-.01em;color:var(--dark);margin-bottom:14px;
  position:relative;z-index:1;
}
@media(min-width:480px){.hero-title{font-size:38px}}
@media(min-width:768px){.hero-title{font-size:48px}}
@media(min-width:1024px){.hero-title{font-size:56px}}
.hero-sub{
  font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.7;
  color:var(--gray);max-width:560px;margin:0 auto;position:relative;z-index:1;
}
@media(min-width:768px){.hero-sub{font-size:17px}}
.breadcrumb-row{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;
  color:var(--muted);position:relative;z-index:1;margin-top:20px;
}
.breadcrumb-row a{color:var(--gray);transition:color .4s}
.breadcrumb-row a:hover{color:var(--g1)}
.breadcrumb-row .sep{color:var(--border)}
.breadcrumb-row .cur{color:var(--dark)}
.hero-pills{
  display:flex;align-items:center;justify-content:center;
  gap:12px;flex-wrap:wrap;margin-top:28px;position:relative;z-index:1;
}
.hero-pill{
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(0,80,200,.06);border:1px solid rgba(0,80,200,.18);
  border-radius:100px;padding:7px 16px;backdrop-filter:blur(8px);
  font-family:'DM Sans',sans-serif;font-size:12px;font-weight:700;
  color:var(--g1);letter-spacing:.02em;
}
.hero-pill i{font-size:11px;color:var(--g1)}

/* ── "Why choose us" style feature cards (shared across several pages) ── */
/* Desktop column count varies by page card-count — set per page (usually repeat(3,1fr) or repeat(4,1fr)) */
.why-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:560px){.why-grid{grid-template-columns:1fr 1fr;gap:18px}}
.why-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--r12);padding:32px 24px;text-align:center;
  box-shadow:var(--sh-sm);position:relative;overflow:hidden;
  transform:perspective(900px);
  transition:transform .35s cubic-bezier(.22,.61,.36,1),box-shadow .5s ease,border-color .5s ease;
}
.why-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--g1),var(--g2),var(--g3));
  transform:scaleX(0);transform-origin:left;transition:transform .6s ease;
}
.why-card:hover{box-shadow:var(--sh-lg)}
.why-card:hover::before{transform:scaleX(1)}
.why-ico{
  width:56px;height:56px;border-radius:var(--r8);margin:0 auto 18px;
  background:linear-gradient(135deg,#dbeafe,#ede9fe);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;color:var(--g1);
  transition:background .4s,color .4s;
}
.why-card:hover .why-ico{background:linear-gradient(135deg,var(--g1),var(--g2));color:var(--white)}
.why-card h3,.why-card h4{
  font-family:'Barlow',sans-serif;font-size:16px;font-weight:700;
  color:var(--dark);margin-bottom:8px;
}
.why-card p{font-family:'DM Sans',sans-serif;font-size:13.5px;line-height:1.65;color:var(--gray)}

/* ── Floating glass chip (position .fc-1/.fc-2/.fc-3 per page) ── */
.float-chip{
  position:absolute;z-index:3;display:flex;align-items:center;gap:9px;
  padding:10px 16px 10px 12px;border-radius:var(--r99);
  background:rgba(255,255,255,.75);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 14px 34px rgba(0,18,51,.16),0 2px 8px rgba(0,18,51,.06);
  animation:chipFloat 6s ease-in-out infinite;pointer-events:none;
}
.float-chip .fc-ico{
  width:30px;height:30px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--white);
  background:linear-gradient(135deg,var(--g1),var(--g2));
}
.float-chip span{font-family:'DM Sans',sans-serif;font-size:12.5px;font-weight:700;color:var(--dark);white-space:nowrap}
@keyframes chipFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media(max-width:767px){.float-chip{padding:8px 13px 8px 9px}.float-chip .fc-ico{width:26px;height:26px;font-size:11px}.float-chip span{font-size:11px}}

/* ── Swiper shared look ── */
.sw{padding:8px 6px 56px !important}
.swiper-pagination{bottom:10px !important}
.swiper-pagination-bullet{background:var(--g1) !important;opacity:.2 !important;width:7px;height:7px}
.swiper-pagination-bullet-active{opacity:1 !important;width:22px !important;border-radius:4px !important;transition:width .3s}
.view-all-row{display:flex;justify-content:center;margin-top:6px}

/* ── Motion accessibility ── */
@media (prefers-reduced-motion: reduce){
  .rv{transition:none !important}
  .why-card{transition:none !important}
  .float-chip{animation:none !important}
  .grad-text,.trust-num,#ripo-bar,.page-hero::before,.page-hero::after{animation:none !important}
}
