*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ══════════════════════════════
   THEME VARIABLES
══════════════════════════════ */
:root {
  /* Brand colors */
  --blue:  #0056b3;
  --blue2: #007bff;
  --blue-light: #e3f2fd;
  --blue-dark: #0d47a1;
  --r: 18px;
}

/* ── SINGLE THEME ── */
:root {
  --bg:        #ffffff;
  --bg2:       #f0f7ff;
  --bg3:       #e3f2fd;
  --surface:   rgba(255,255,255,.98);
  --surface2:  rgba(255,255,255,1);
  --border:    rgba(0,86,179,.15);
  --border2:   rgba(0,86,179,.25);
  --text:      #1a1a2e;
  --text2:     #2d3748;
  --text3:     #4a5568;
  --nav-bg:    rgba(255,255,255,.98);
  --card-shadow: 0 8px 40px rgba(0,86,179,.15);
  --hero-bg:   radial-gradient(ellipse 80% 60% at 65% 40%,rgba(0,86,179,.08) 0%,transparent 70%),
               radial-gradient(ellipse 50% 45% at 15% 80%,rgba(0,123,255,.06) 0%,transparent 65%),#ffffff;
  --hex-stroke: rgba(0,86,179,.06);
  --section-alt: linear-gradient(135deg,rgba(0,86,179,.05),rgba(0,123,255,.05));
  --section-alt2: linear-gradient(180deg,#ffffff 0%,#f0f7ff 100%);
  --footer-bg: #0d47a1;
  --input-bg:  rgba(255,255,255,.98);
  --input-border: rgba(0,86,179,.2);
  --input-focus: rgba(0,86,179,.1);
  --dash-bg:   rgba(255,255,255,.98);
  --cred-bg:   rgba(255,255,255,.99);
  --fc-bg:     rgba(255,255,255,1);
  --about-bg:  linear-gradient(160deg,rgba(0,86,179,.06),#f0f7ff);
  --toggle-bg: rgba(0,86,179,.1);
  --toggle-border: rgba(0,86,179,.2);
  --ghost-border: rgba(0,86,179,.3);
  --ghost-color: #0056b3;
  --accent:    var(--blue2);
}

/* ── TRANSITION ON THEME SWITCH ── */
body, nav, section, footer, .fc-card, .mod, .pc, .tc, .val, .ii-icon,
.cred-card, .cf, .ab-badge, .kpi, .chart-box, .act, .dash-window,
input, textarea, select, .service-card, .product-card {
  transition: background .35s ease, border-color .35s ease,
              color .35s ease, box-shadow .35s ease;
}

html{scroll-behavior:smooth}
body{font-family:'Bricolage Grotesque',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden}
h1,h2,h3,h4{font-family:'Clash Display',sans-serif;color:var(--text)}

/* ══════════════════════════════
   THEME TOGGLE BUTTON
══════════════════════════════ */
.theme-toggle {
  position: relative;
  width: 64px; height: 32px;
  background: var(--toggle-bg);
  border: 2px solid var(--toggle-border);
  border-radius: 999px;
  cursor: pointer;
  flex-shrink: 0;
  transition: all .35s ease;
  box-shadow: 0 2px 12px rgba(0,0,0,.15);
}
.theme-toggle:hover {
  border-color: var(--gold2);
  box-shadow: 0 4px 20px rgba(212,160,23,.3);
  transform: scale(1.05);
}
.theme-toggle-knob {
  position: absolute;
  top: 3px; left: 3px;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold), var(--gold2));
  box-shadow: 0 3px 12px rgba(212,160,23,.6);
  transition: transform .35s cubic-bezier(.34,1.56,.64,1);
  display: flex; align-items: center; justify-content: center;
  font-size: .75rem;
}
[data-theme="light"] .theme-toggle-knob { transform: translateX(32px); }
.theme-toggle-icons {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 7px; pointer-events: none;
}
.theme-toggle-icon {
  width: 16px; height: 16px;
  opacity: 0.6;
  transition: opacity .3s ease;
}
.theme-toggle:hover .theme-toggle-icon { opacity: 1; }

/* ══════════════════════════════
   NAV
══════════════════════════════ */
nav {
  position:fixed;top:0;left:0;width:100%;z-index:999;
  background: linear-gradient(135deg, rgba(0,86,179,.95), rgba(0,123,255,.95));
  backdrop-filter: blur(16px);
  box-shadow: 0 2px 32px rgba(0,86,179,.2);
  transition: background .35s, box-shadow .35s;
}
nav.scrolled {
  background: var(--nav-bg);
  backdrop-filter: blur(16px);
  box-shadow: 0 2px 32px rgba(0,0,0,.15);
}
.nav-inner {
  max-width:1280px;margin:0 auto;padding:0 28px;height:74px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.logo{display:flex;align-items:center;gap:11px;text-decoration:none}
.logo-mark {
  width:42px;height:42px;border-radius:12px;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  border:1px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  font-family:'Clash Display',sans-serif;font-size:.85rem;font-weight:700;color:#fff;
  box-shadow:0 6px 20px rgba(0,86,179,.35), inset 0 2px 4px rgba(255,255,255,.3);
  letter-spacing:.02em;
}
.logo-name{font-family:'Clash Display',sans-serif;font-size:1.2rem;font-weight:700;color:#fff}
.logo-name span{color:#e3f2fd}
.nav-links{display:flex;align-items:center;gap:28px;list-style:none}
.nav-links a {
  text-decoration:none;color:rgba(255,255,255,.9);font-size:.88rem;font-weight:500;
  transition:.2s;position:relative;
}
.nav-links a::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:2px;background:#fff;border-radius:2px;transition:.25s}
.nav-links a:hover,.nav-links a.active{color:#fff}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-actions{display:flex;align-items:center;gap:10px}
.btn-demo {
  border:2px solid #fff;color:#fff;
  padding:8px 18px;border-radius:9px;font-size:.85rem;font-weight:700;text-decoration:none;transition:.2s;
}
.btn-demo:hover{background:#fff;color:#0056b3}
.btn-start {
  background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;
  padding:9px 20px;border-radius:9px;font-size:.85rem;font-weight:700;
  text-decoration:none;box-shadow:0 4px 16px rgba(0,86,179,.4);transition:.2s;
}
.btn-start:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,86,179,.55)}
.ham{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px}
.ham span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:.3s}

/* ══════════════════════════════
   SHARED
══════════════════════════════ */
.wrap{max-width:1280px;margin:0 auto;padding:0 28px}
.chip {
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(0,86,179,.12);border:1px solid rgba(0,86,179,.28);
  color:var(--blue2);font-size:.73rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:6px 16px;border-radius:999px;margin-bottom:16px;
}
.chip-dot{width:7px;height:7px;border-radius:50%;background:var(--blue2);animation:blink 2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.section-title{font-size:clamp(1.9rem,3.8vw,2.75rem);font-weight:700;line-height:1.13;margin-bottom:14px;color:var(--text)}
.section-sub{font-size:1rem;color:var(--text2);line-height:1.8;max-width:560px}
.reveal{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
.reveal.hidden{opacity:0;transform:translateY(28px)}
.reveal.hidden.in{opacity:1;transform:none}

/* ══════════════════════════════
   HERO
══════════════════════════════ */
.hero-pattern {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(0,86,179,.12), rgba(0,123,255,.08));
  background-image: url('data:image/svg+xml,%3Csvg width=\'60\' height=\'52\' viewBox=\'0 0 60 52\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M30 2L58 17L58 35L30 50L2 35L2 17Z\' fill=\'none\' stroke=\'rgba(0,86,179,0.2)\' stroke-width=\'1\'/%3E%3C/svg%3E');
  background-size: 60px 52px;
}
#home {
  min-height:100vh;display:flex;align-items:center;padding:100px 0 60px;
  position:relative;overflow:hidden;background:var(--hero-bg);
}
#home::before {
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg width='60' height='52' viewBox='0 0 60 52' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 2L58 17L58 35L30 50L2 35L2 17Z' fill='none' stroke='HEXCOLOR' stroke-width='1'/%3E%3C/svg%3E");
  background-size:60px 52px;
}
[data-theme="dark"] #home::before {
  background-image:url("data:image/svg+xml,%3Csvg width='60' height='52' viewBox='0 0 60 52' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 2L58 17L58 35L30 50L2 35L2 17Z' fill='none' stroke='rgba(255,255,255,0.028)' stroke-width='1'/%3E%3C/svg%3E");
}
[data-theme="light"] #home::before {
  background-image:url("data:image/svg+xml,%3Csvg width='60' height='52' viewBox='0 0 60 52' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 2L58 17L58 35L30 50L2 35L2 17Z' fill='none' stroke='rgba(0,86,179,0.06)' stroke-width='1'/%3E%3C/svg%3E");
}
#home::after{content:'';position:absolute;top:0;right:0;width:3px;height:100%;background:linear-gradient(to bottom,transparent,var(--blue),transparent);opacity:.55}

.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.hero-eye {
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(0,86,179,.15);border:1px solid rgba(0,86,179,.35);
  color:var(--blue2);font-size:.75rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;padding:7px 16px;border-radius:999px;margin-bottom:24px;
}
[data-theme="dark"] .hero-eye{background:rgba(0,86,179,.18);color:#93c5fd}
.hero-eye::before{content:'';width:8px;height:8px;border-radius:50%;background:#60a5fa;animation:blink 2s infinite}
.hero h1{font-size:clamp(2.5rem,5.2vw,4rem);font-weight:700;line-height:1.05;margin-bottom:20px}
.hero h1 .gold{color:var(--blue2)}
.hero h1 .soft{font-weight:500;color:var(--text2)}
.hero-desc{font-size:1.05rem;line-height:1.82;color:var(--text2);max-width:500px;margin-bottom:34px}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:42px}
.btn-gold {
  background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;
  padding:14px 26px;border-radius:12px;font-weight:700;font-size:.97rem;
  text-decoration:none;box-shadow:0 4px 22px rgba(0,86,179,.45);
  display:flex;align-items:center;gap:8px;transition:.2s;
}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,86,179,.6)}
.btn-ghost {
  border:2px solid var(--ghost-border);color:var(--ghost-color);
  padding:14px 26px;border-radius:12px;font-weight:600;font-size:.97rem;
  text-decoration:none;display:flex;align-items:center;gap:8px;transition:.2s;
}
.btn-ghost:hover{border-color:var(--blue2);color:var(--blue2);background:rgba(0,86,179,.05)}
.hero-stats {
  display:flex;gap:36px;padding-top:30px;
  border-top:1px solid var(--border);flex-wrap:wrap;
}
.hs-num{font-family:'Clash Display',sans-serif;font-size:1.9rem;font-weight:700;color:var(--blue2)}
.hs-lbl{font-size:.78rem;color:var(--text3);margin-top:2px}

/* ══════════════════════════════
   SERVICES CARDS
══════════════════════════════ */
.service-card {
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:32px;
  transition:.28s;position:relative;overflow:hidden;
  box-shadow:var(--card-shadow);
}
.service-card:hover{transform:translateY(-7px);border-color:rgba(0,86,179,.38);box-shadow:0 24px 64px rgba(0,0,0,.22)}
.service-icon {
  width:64px;height:64px;border-radius:16px;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  display:flex;align-items:center;justify-content:center;
  font-size:1.8rem;margin-bottom:20px;
  box-shadow:0 8px 24px rgba(0,86,179,.4), inset 0 2px 4px rgba(255,255,255,.3);
  border:1px solid rgba(255,255,255,.2);
}
.service-card h3{font-size:1.25rem;font-weight:700;margin-bottom:12px;color:var(--text)}
.service-card p{font-size:.9rem;line-height:1.75;color:var(--text2);margin-bottom:16px}
.service-tags{display:flex;flex-wrap:wrap;gap:8px}
.service-tag {
  font-size:.75rem;padding:4px 12px;border-radius:999px;
  background:rgba(0,86,179,.1);border:1px solid rgba(0,86,179,.2);
  color:var(--blue2);
}

/* ══════════════════════════════
   PRODUCT CARDS
══════════════════════════════ */
.product-card {
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);overflow:hidden;
  transition:.28s;position:relative;
  box-shadow:var(--card-shadow);
}
.product-card:hover{transform:translateY(-7px);border-color:rgba(0,86,179,.38);box-shadow:0 24px 64px rgba(0,0,0,.22)}
.product-image {
  width:100%;height:200px;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  display:flex;align-items:center;justify-content:center;
  font-size:4rem;
}
.product-body{padding:24px}
.product-card h3{font-size:1.15rem;font-weight:700;margin-bottom:10px;color:var(--text)}
.product-card p{font-size:.85rem;line-height:1.65;color:var(--text2);margin-bottom:16px}
.product-link {
  color:var(--blue2);font-weight:600;text-decoration:none;
  display:inline-flex;align-items:center;gap:6px;
  transition:.2s;
}
.product-link:hover{gap:10px}

/* ══════════════════════════════
   CONTACT FORM
══════════════════════════════ */
.contact-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:64px;align-items:start}
.contact-info p{font-size:.93rem;color:var(--text2);line-height:1.8;margin-bottom:32px}
.info-list{display:flex;flex-direction:column;gap:16px}
.ii{display:flex;align-items:flex-start;gap:13px}
.ii-icon {
  width:44px;height:44px;border-radius:12px;flex-shrink:0;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  border:1px solid rgba(255,255,255,.2);
  display:flex;align-items:center;justify-content:center;
  color:#fff;
  box-shadow:0 6px 20px rgba(0,86,179,.35), inset 0 2px 4px rgba(255,255,255,.3);
}
.ii-lbl{font-size:.73rem;color:var(--text3);margin-bottom:2px;text-transform:uppercase;letter-spacing:.08em}
.ii-val{font-size:.9rem;color:var(--text);font-weight:500}
.cf {
  background:var(--surface);border:1px solid var(--border);
  border-radius:22px;padding:38px;box-shadow:var(--card-shadow);
}
.cf h3{font-size:1.25rem;margin-bottom:5px;color:var(--text)}
.cf-sub{font-size:.83rem;color:var(--text3);margin-bottom:22px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fg{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
.fg label{font-size:.78rem;color:var(--text2);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.fg input,.fg textarea,.fg select {
  background:var(--input-bg);border:1px solid var(--input-border);
  border-radius:10px;padding:12px 15px;color:var(--text);
  font-family:'Bricolage Grotesque',sans-serif;font-size:.9rem;
  outline:none;transition:.2s;width:100%;
}
.fg input::placeholder,.fg textarea::placeholder{color:var(--text3)}
.fg input:focus,.fg textarea:focus,.fg select:focus {
  border-color:var(--blue2);background:var(--input-focus);
}
.fg textarea{resize:vertical;min-height:100px}
.fg select option{background:var(--bg2);color:var(--text)}
.sub-btn {
  width:100%;padding:14px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  color:#fff;font-family:'Clash Display',sans-serif;font-size:1rem;font-weight:700;
  box-shadow:0 4px 20px rgba(0,86,179,.4);transition:.2s;
}
.sub-btn:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,86,179,.6)}
.form-ok{display:none;text-align:center;padding:28px;color:var(--blue2);font-family:'Clash Display',sans-serif;font-size:1.1rem}

/* ══════════════════════════════
   FOOTER
══════════════════════════════ */
footer{background:var(--footer-bg);padding:68px 0 30px;border-top:1px solid rgba(255,255,255,.06)}
.ft{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:44px;margin-bottom:52px}
.fb p{font-size:.85rem;color:rgba(255,255,255,.4);line-height:1.75;margin-top:14px;max-width:265px}
.fb .logo-name{color:#fff}
.fc-col h5{font-family:'Clash Display',sans-serif;font-size:.9rem;font-weight:700;color:var(--blue2);margin-bottom:16px;letter-spacing:.04em}
.fc-col a{display:block;font-size:.83rem;color:rgba(255,255,255,.42);text-decoration:none;margin-bottom:10px;transition:.2s}
.fc-col a:hover{color:var(--blue2)}
.fb-bottom{border-top:1px solid rgba(255,255,255,.06);padding-top:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.fb-bottom span{font-size:.8rem;color:rgba(255,255,255,.28)}
.socials{display:flex;gap:9px}
.soc{width:35px;height:35px;border-radius:9px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.42);font-size:.8rem;text-decoration:none;transition:.2s}
.soc:hover{background:var(--blue2);color:#fff;border-color:var(--blue2)}

/* ══════════════════════════════
   TOAST
══════════════════════════════ */
.toast {
  position:fixed;bottom:26px;right:26px;z-index:9999;
  background:var(--fc-bg);border:1px solid var(--blue2);
  border-radius:12px;padding:13px 18px;color:var(--blue2);
  font-size:.86rem;font-weight:600;
  display:flex;align-items:center;gap:8px;
  transform:translateY(80px);opacity:0;transition:.35s;
  pointer-events:none;box-shadow:0 8px 32px rgba(0,0,0,.3);
}
.toast.show{transform:none;opacity:1}

/* ══════════════════════════════
   ANIMATIONS
══════════════════════════════ */
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes slideIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@keyframes glow{0%,100%{box-shadow:0 0 20px rgba(0,86,179,.3)}50%{box-shadow:0 0 40px rgba(0,86,179,.6)}}

/* ══════════════════════════════
   RESPONSIVE
══════════════════════════════ */
@media(max-width:1100px){
  .ft{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .hero-grid,.contact-grid{grid-template-columns:1fr}
  .nav-links,.nav-actions{display:none}
  .ham{display:flex}
  .nav-links.open {
    display:flex;flex-direction:column;position:absolute;
    top:74px;left:0;right:0;
    background:var(--nav-bg);backdrop-filter:blur(16px);
    padding:22px 28px 30px;gap:20px;
    box-shadow:0 12px 40px rgba(0,0,0,.2);
  }
}
@media(max-width:620px){
  .frow{grid-template-columns:1fr}
  .ft{grid-template-columns:1fr}
  .hero-stats{flex-wrap:wrap;gap:18px}
}
