
:root{
  --brand-1:#0b1220;
  --brand-2:#12387d;
  --brand-3:#1c4ca3;
  --brand-4:#4da3ff;
  --text-main:#0f172a;
  --text-soft:#5b6475;
  --bg-main:#f4f7fb;
  --bg-card:rgba(255,255,255,.9);
  --border-soft:rgba(148,163,184,.18);
  --shadow-soft:0 1rem 2rem rgba(16,24,40,.08);
  --shadow-hover:0 1.25rem 2.5rem rgba(16,24,40,.14);
  --radius-lg:1.25rem;
  --radius-md:1rem;
  --transition:.3s ease;
}

html{scroll-behavior:smooth;}
body{
  background:
    radial-gradient(circle at top right, rgba(77,163,255,.12), transparent 26%),
    radial-gradient(circle at left 20%, rgba(28,76,163,.08), transparent 24%),
    var(--bg-main);
  color:var(--text-main);
  font-family:Arial,sans-serif;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}

.page-progress{
  position:fixed;
  inset:0 auto auto 0;
  width:0;
  height:4px;
  background:linear-gradient(90deg,var(--brand-4),#8fd0ff,var(--brand-3));
  box-shadow:0 0 18px rgba(77,163,255,.55);
  z-index:2000;
}

.navbar-brand{font-weight:700;letter-spacing:.3px;}
.navbar{
  z-index:1030;
  background:rgba(11,18,32,.88) !important;
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:background-color var(--transition), box-shadow var(--transition);
}
.navbar.navbar-scrolled{
  background:rgba(11,18,32,.95) !important;
  box-shadow:0 12px 30px rgba(15,23,42,.18);
}
.navbar .nav-link{
  position:relative;
  color:rgba(255,255,255,.84) !important;
  transition:color .25s ease;
}
.navbar .nav-link:hover,
.navbar .nav-link.active{color:#fff !important;}
.navbar .nav-link::after{
  content:"";
  position:absolute;
  left:.8rem;
  right:.8rem;
  bottom:.3rem;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--brand-4),#fff);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease;
}
.navbar .nav-link:hover::after,
.navbar .nav-link.active::after{transform:scaleX(1);}

.hero,
.hero-mini{
  position:relative;
  overflow:hidden;
  color:#fff;
}
.hero{padding:120px 0 110px;}
.hero-mini{
  background:linear-gradient(135deg,#0b1220,#1c4ca3);
}
.hero::before,.hero-mini::before{
  content:"";
  position:absolute;
  width:520px;
  height:520px;
  top:-220px;
  right:-140px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.18), transparent 70%);
  z-index:0;
}
.hero::after,.hero-mini::after{
  content:"";
  position:absolute;
  width:340px;
  height:340px;
  left:-110px;
  bottom:-120px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(77,163,255,.28), transparent 68%);
  z-index:0;
}
.hero > .container,
.hero-mini > .container{position:relative;z-index:1;}
.hero-panel{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.hero-particles{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}
.hero-particles span{
  position:absolute;
  display:block;
  border-radius:50%;
  background:rgba(255,255,255,.22);
  box-shadow:0 0 14px rgba(255,255,255,.22);
  animation:floatParticle linear infinite;
}
@keyframes floatParticle{
  from{transform:translateY(30px) scale(.85);opacity:0;}
  15%{opacity:1;}
  to{transform:translateY(-120px) scale(1.1);opacity:0;}
}

.card,
.soft-card,
.feature-box,
.stats,
.service-card,
.gallery-card,
.hero-panel{
  border:0;
  border-radius:var(--radius-lg);
}
.soft-card,
.feature-box,
.stats,
.service-card,
.gallery-card,
.hero-panel{
  background:var(--bg-card);
  border:1px solid var(--border-soft);
  box-shadow:var(--shadow-soft) !important;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.soft-card:hover,
.feature-box:hover,
.stats:hover,
.service-card:hover,
.gallery-card:hover,
.hero-panel:hover,
.reveal-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow-hover) !important;
  border-color:rgba(77,163,255,.28);
}

.service-card,
.gallery-card,
.card{overflow:hidden;}
.gallery-img,
.gallery-card img,
.service-card img,
.object-fit-cover{
  width:100%;
  object-fit:cover;
  transition:transform .6s ease, filter .4s ease;
}
.gallery-img{height:260px;border-radius:1rem;display:block;}
.service-card img{height:220px;}
.gallery-card:hover img,
.service-card:hover img,
.reveal-card:hover img,
.gallery-img:hover{
  transform:scale(1.04);
  filter:saturate(1.08) contrast(1.04);
}

.section{padding:80px 0;}
.section-title{font-weight:700;color:var(--text-main);}
.section-kicker{
  color:#0d6efd;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.8rem;
  font-weight:700;
}
.icon-box{
  width:56px;
  height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:1rem;
  background:rgba(13,110,253,.08);
  color:#0d6efd;
  font-weight:700;
  font-size:1.1rem;
  flex-shrink:0;
}
.feature-box{padding:25px;height:100%;}
.stats{
  padding:20px;
  text-align:center;
  height:100%;
}
.stats h3,
.stats-card h3{font-size:2rem;margin-bottom:.25rem;font-weight:700;color:var(--brand-3);}
.photo-slot,
.media-frame{
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:#fafafa;
  overflow:hidden;
}
.photo-slot{border:2px dashed #d4d8e1;height:260px;color:#666;}
.photo-small{height:200px;}
.info-image{
  width:100%;
  height:100%;
  min-height:260px;
  border-radius:var(--radius-lg);
  object-fit:cover;
}
.partner-card img,
.partner-image{width:100%;height:100%;min-height:220px;object-fit:cover;}
.badge-soft{
  background:#e9f1ff;
  color:#1c4ca3;
  border-radius:999px;
  padding:.45rem .85rem;
  font-weight:600;
  display:inline-block;
}
.stat-pill{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  border-radius:999px;
  padding:.45rem .9rem;
  background:rgba(13,110,253,.1);
  color:var(--brand-3);
  font-weight:600;
}

.btn{
  transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
}
.btn:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 24px rgba(15,23,42,.16);
}
.btn-primary,
.btn-outline-light,
.btn-outline-primary,
.btn-warning,
.btn-light{border-radius:999px !important;padding-inline:1.2rem;}

.reveal,
.reveal-card,
.reveal-up{
  opacity:0;
  transform:translateY(42px);
  transition:opacity .8s ease, transform .8s ease;
}
.reveal.is-visible,
.reveal-card.active,
.reveal-up.is-visible{
  opacity:1;
  transform:translateY(0);
}

.form-control,
.form-select{border-radius:1rem;}
.form-status{border-radius:1rem;}

.page-footer,
footer.bg-dark{
  background:linear-gradient(135deg,#0b1220,#101b32) !important;
  border-top:1px solid rgba(255,255,255,.08);
}
footer a{transition:opacity .25s ease, transform .25s ease;}
footer a:hover{opacity:1 !important;transform:translateX(2px);}

.top-button{
  position:fixed;
  right:24px;
  bottom:24px;
  width:52px;
  height:52px;
  border:none;
  border-radius:50%;
  background:linear-gradient(135deg,var(--brand-3),var(--brand-1));
  color:#fff;
  box-shadow:0 18px 34px rgba(11,18,32,.28);
  z-index:1100;
  opacity:0;
  visibility:hidden;
  transform:translateY(16px);
  transition:all .25s ease;
}
.top-button.show{opacity:1;visibility:visible;transform:translateY(0);}
.top-button:hover{transform:translateY(-4px);}

.error-page{min-height:100vh;display:flex;align-items:center;justify-content:center;}
.error-wrap{max-width:760px;}
.error-code{
  font-size:clamp(4rem,12vw,8rem);
  line-height:1;
  font-weight:800;
  background:linear-gradient(135deg,#4da3ff,#1c4ca3,#0b1220);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

@media (max-width:991.98px){
  .hero{padding:90px 0 80px;}
  .section{padding:64px 0;}
  .partner-card img,.partner-image{min-height:200px;}
  .info-image{min-height:220px;}
}
@media (max-width:767.98px){
  .hero{padding:78px 0 68px;}
  .section{padding:56px 0;}
  .stats h3,.stats-card h3{font-size:1.7rem;}
  .partner-card img,.partner-image{min-height:180px;}
  .info-image{min-height:200px;}
  .gallery-img{height:220px;}
  .top-button{right:18px;bottom:18px;width:48px;height:48px;}
}
