:root{
  --avp-blue:#125BDA;
  --avp-blue-2:#0B3D91;
  --avp-red:#E63946;
  --avp-gold:#F4C430;
  --avp-dark:#0B1220;
  --avp-text:#243145;
  --avp-muted:#6B7280;
  --avp-line:rgba(11,18,32,.08);
  --avp-bg:#F6F8FC;
  --avp-surface:#FFFFFF;
  --avp-border: rgba(11,18,32,.08);
  --avp-shadow-soft:0 18px 50px rgba(2,8,23,.08);
  --avp-shadow-strong:0 22px 65px rgba(2,8,23,.18);
  --avp-shadow-nav:0 10px 30px rgba(2,8,23,.12);
}

html{ scroll-behavior:smooth; }

body.avp-body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--avp-text);
  background:
    radial-gradient(circle at top left, rgba(18,91,218,.08), transparent 28%),
    radial-gradient(circle at top right, rgba(244,196,48,.10), transparent 24%),
    linear-gradient(180deg, #fbfcff 0%, #f6f8fc 100%);
}

/* =========================
   HEADER / NAVBAR
========================= */

.avp-header{
  position: sticky;
  top: 0;
  z-index: 1030;
  background: #fff;
  border-bottom: 1px solid var(--avp-border);
  box-shadow: var(--avp-shadow-nav);
}

.avp-header-dark{
  position: sticky;
  top: 0;
  z-index: 1030;
  backdrop-filter: blur(14px);
  background: rgba(7,18,37,.94);
  border-bottom: 1px solid rgba(255,255,255,.08);
  border-top: 4px solid var(--avp-gold);
  box-shadow: 0 10px 30px rgba(0,0,0,.20);
}

.avp-navbar{
  padding: 10px 0;
  min-height: 72px;
  background: transparent;
  box-shadow: none;
}

.avp-navbar .navbar-brand{
  min-width: 0;
  text-decoration: none;
}

.avp-brand-wrap{
  min-width: 0;
  max-width: 360px;
}

.avp-brand-copy{
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.avp-logo{
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}

.avp-logo--image{
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(255,255,255,.10);
  padding: 6px;
}

.avp-logo-img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.avp-logo-inner{
  color:#fff;
  font-weight:900;
  letter-spacing:.5px;
}

.avp-brand-title{
  color:#fff;
  font-weight:900;
  font-size: .95rem;
  letter-spacing: .2px;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 240px;
}

.avp-brand-subtitle{
  color: rgba(255,255,255,.72);
  font-size: .72rem;
  font-weight:700;
  margin-top: 3px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 240px;
}

.avp-navlinks .nav-link{
  color: rgba(255,255,255,.84);
  font-weight: 800;
  padding: .65rem .90rem !important;
  border-radius: 12px;
  transition: .25s ease;
}

.avp-navlinks .nav-link:hover,
.avp-navlinks .nav-link:focus{
  color: #fff;
  background: rgba(255,255,255,.08);
}

.avp-navlinks .nav-link.active{
  color:#fff;
  background: rgba(18,91,218,.20);
  border: 1px solid rgba(255,255,255,.10);
}

.avp-toggler{
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
  border-radius: 12px;
  padding: .45rem .7rem;
}

.avp-toggler .navbar-toggler-icon{
  filter: invert(1);
}

.avp-lang{
  min-width: 80px;
  border-radius: 12px !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
  font-weight: 800 !important;
}

.avp-lang option{
  color:#0B1220;
}

.avp-lang:focus{
  box-shadow: 0 0 0 .2rem rgba(244,196,48,.22) !important;
  border-color: rgba(244,196,48,.45) !important;
}

.avp-btn{
  border-radius: 999px;
  font-weight: 800;
  padding: .72rem 1rem;
}

.avp-btn-primary{
  background: linear-gradient(135deg, var(--avp-blue), var(--avp-blue-2));
  border: 0;
  color: #fff;
  box-shadow: 0 16px 36px rgba(18,91,218,.25);
}

.avp-btn-primary:hover{
  color:#fff;
  transform: translateY(-1px);
}

.avp-btn-admin{
  color:#0B1220;
  background: linear-gradient(135deg, var(--avp-gold), #FFE082);
  border: 0;
  box-shadow: 0 12px 26px rgba(244,196,48,.20);
}

.avp-btn-admin:hover{
  color:#0B1220;
  transform: translateY(-1px);
}

.avp-main{
  min-height: 60vh;
}

/* =========================
   GENERIC CARDS / HERO
========================= */

.avp-glass-card,
.avp-card,
.avp-hero,
.avp-cta{
  border-radius: 24px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(11,18,32,.06);
  box-shadow: var(--avp-shadow-soft);
}

.avp-card{
  padding: 24px;
  height: 100%;
}

.avp-hero{
  position: relative;
  overflow: hidden;
  padding: 30px;
}

.avp-hero::after{
  content: "";
  position: absolute;
  inset: auto -120px -120px auto;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(18,91,218,.10) 0%, transparent 70%);
  pointer-events: none;
}

.avp-hero-metrics{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap:10px;
  margin-top:14px;
}

.avp-metric{
  border-radius:14px;
  border:1px solid rgba(11,18,32,.08);
  background: rgba(246,248,252,.85);
  padding:12px;
}

.avp-metric-value{
  font-size: 22px;
  font-weight: 950;
  margin-top: 2px;
}

.avp-mini-feature{
  position:relative;
  overflow:hidden;
}

.avp-mini-feature::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:4px;
  background: linear-gradient(90deg, var(--avp-blue), var(--avp-gold));
}

.avp-mini-feature-icon,
.avp-icon-pill,
.avp-contact-icon{
  width: 46px;
  height:46px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(18,91,218,.08);
  color: var(--avp-blue);
  border: 1px solid rgba(18,91,218,.12);
}

.avp-icon-pill{
  width:40px;
  height:40px;
  border-radius:12px;
}

.avp-card-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-weight:800;
  color: var(--avp-blue);
}

.avp-link{
  color: var(--avp-blue);
  text-decoration:none;
  font-weight:800;
}

.avp-link:hover{
  color: var(--avp-red);
}

.avp-pagehead{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap: 1rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}

/* =========================
   SEARCH / FORMS
========================= */

.avp-search{
  position:relative;
}

.avp-search i{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  color: rgba(11,18,32,.45);
}

.avp-search .form-control{
  padding-left:38px;
  border-radius:14px;
  border:1px solid rgba(11,18,32,.12);
  min-width:260px;
}

.avp-form .form-control,
.avp-form textarea,
.avp-form .form-select{
  border-radius: 14px;
  border:1px solid rgba(11,18,32,.12);
  padding: .75rem .9rem;
}

.avp-form .form-control:focus,
.avp-form textarea:focus,
.avp-form .form-select:focus{
  border-color: rgba(18,91,218,.35);
  box-shadow: 0 0 0 .2rem rgba(18,91,218,.12);
}

.avp-tip{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding: 12px;
  border-radius: 14px;
  background: rgba(18,91,218,.07);
  border: 1px solid rgba(18,91,218,.16);
}

.avp-contact-stack{
  display:grid;
  gap: 12px;
}

.avp-contact-item{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding: 14px;
  border-radius: 16px;
  background: rgba(246,248,252,.85);
  border:1px solid rgba(11,18,32,.06);
}

/* =========================
   TYPO / UTILITIES
========================= */

.avp-prose p,
.avp-prose li{
  line-height: 1.75;
}

.avp-clamp-2{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.avp-clamp-3{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.avp-toaststack{
  position: sticky;
  top: 86px;
  z-index: 10;
}

.avp-alert{
  border-radius: 16px;
  border:1px solid rgba(11,18,32,.12);
  background: rgba(255,255,255,.96);
  box-shadow: 0 16px 50px rgba(2,8,23,.08);
}

.avp-reveal{
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .45s ease, transform .45s ease;
}

.avp-reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

.avp-cta{
  padding: 28px;
  border-radius: 22px;
  border:1px solid rgba(11,18,32,.08);
  background: linear-gradient(135deg, rgba(11,61,145,.06), rgba(255,255,255,.92));
  box-shadow: var(--avp-shadow-soft);
}

/* =========================
   FOOTER
========================= */

.avp-footer{
  margin-top:60px;
  background:#071225;
  color:rgba(255,255,255,.84);
  border-top: 4px solid var(--avp-gold);
}

.avp-footer-logo{
  width:56px;
  height:56px;
  border-radius:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  color:#fff;
  background: linear-gradient(135deg, var(--avp-blue), var(--avp-blue-2));
  box-shadow: 0 18px 45px rgba(18,91,218,.22);
  overflow:hidden;
  flex-shrink: 0;
}

.avp-footer-logo--image{
  padding: 6px;
  background: rgba(255,255,255,.98);
}

.avp-footer-logoimg{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.avp-footer-title{
  color:#fff;
  font-weight:950;
  letter-spacing:.2px;
}

.avp-footer-subtitle{
  color: rgba(255,255,255,.64);
  font-size:12px;
}

.avp-footer-head{
  color:#fff;
  font-weight:900;
  margin-bottom:12px;
}

.avp-footer-text{
  color: rgba(255,255,255,.72);
  line-height:1.75;
}

.avp-footer-list{
  margin:0;
  padding:0;
}

.avp-footer-list li{
  margin-bottom:8px;
}

.avp-footer-link{
  color: rgba(255,255,255,.70);
  text-decoration:none;
  font-weight:700;
}

.avp-footer-link:hover{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:3px;
}

.avp-footer-muted{
  color: rgba(255,255,255,.55);
  font-weight:600;
}

.avp-footer-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem .6rem;
  border-radius:999px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.78);
  font-weight:800;
  font-size:12px;
}

.avp-footer-bottom{
  background: rgba(0,0,0,.22);
  border-top:1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.66);
  font-weight:700;
}

.avp-footer-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background: var(--avp-gold);
  display:inline-block;
}

/* =========================
   CHATBOT
========================= */

.avp-chatbot{
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1050;
}

.avp-chatbot-toggle{
  border:0;
  border-radius: 999px;
  padding: 12px 16px 12px 12px;
  background: linear-gradient(135deg, #071225, var(--avp-blue));
  color:#fff;
  box-shadow: 0 22px 44px rgba(2,8,23,.24);
  display:flex;
  align-items:center;
  gap:.75rem;
  font-weight:800;
  transition: transform .2s ease, box-shadow .2s ease;
}

.avp-chatbot-toggle:hover{
  transform: translateY(-2px);
  box-shadow: 0 26px 54px rgba(2,8,23,.28);
}

.avp-chatbot-toggle-icon{
  width:46px;
  height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background: linear-gradient(135deg, var(--avp-gold), #FFE082);
  color:#111827;
  overflow:hidden;
  padding: 6px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.35);
}

.avp-chatbot-toggle-logo{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.avp-chatbot-panel{
  width: min(390px, calc(100vw - 24px));
  max-height: 74vh;
  display:flex;
  flex-direction:column;
  margin-top: 12px;
  border-radius: 26px;
  overflow: hidden;
  background:#fff;
  border:1px solid rgba(11,18,32,.10);
  box-shadow: 0 30px 80px rgba(2,8,23,.24);
}

.avp-chatbot-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding: 18px 18px 16px;
  color:#fff;
  background:
    radial-gradient(circle at top right, rgba(244,196,48,.22), transparent 28%),
    linear-gradient(135deg, #071225, var(--avp-blue));
}

.avp-chatbot-header-brand{
  display:flex;
  align-items:center;
  gap:.85rem;
}

.avp-chatbot-avatar{
  width:52px;
  height:52px;
  border-radius:18px;
  background: rgba(255,255,255,.94);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding: 6px;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  flex-shrink: 0;
}

.avp-chatbot-avatar-logo{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.avp-chatbot-title{
  font-weight:900;
  font-size:1rem;
}

.avp-chatbot-subtitle{
  font-size:.85rem;
  opacity:.86;
  line-height: 1.45;
}

.avp-chatbot-close{
  border:0;
  background: rgba(255,255,255,.10);
  color:#fff;
  opacity:.95;
  width:40px;
  height:40px;
  border-radius: 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.avp-chatbot-close:hover{
  background: rgba(255,255,255,.18);
}

.avp-chatbot-body{
  padding: 16px;
  overflow:auto;
  background:
    linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
}

.avp-chat-message{
  display:flex;
  margin-bottom: 12px;
}

.avp-chat-message-user{
  justify-content:flex-end;
}

.avp-chat-bubble-wrap{
  display:flex;
  gap:10px;
  align-items:flex-end;
  max-width: 92%;
}

.avp-chat-avatar-mini{
  width:34px;
  height:34px;
  border-radius: 12px;
  background: #fff;
  border:1px solid rgba(11,18,32,.08);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:4px;
  flex-shrink: 0;
  box-shadow: 0 10px 20px rgba(2,8,23,.06);
}

.avp-chat-avatar-mini-logo{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.avp-chat-bubble{
  max-width: 100%;
  padding: 12px 14px;
  border-radius: 18px;
  line-height: 1.6;
  box-shadow: 0 8px 24px rgba(2,8,23,.05);
  font-size: .95rem;
}

.avp-chat-message-bot .avp-chat-bubble{
  background:#fff;
  border: 1px solid rgba(11,18,32,.08);
  color: var(--avp-text);
}

.avp-chat-message-user .avp-chat-bubble{
  max-width: 85%;
  background: linear-gradient(135deg, var(--avp-blue), var(--avp-blue-2));
  color:#fff;
}

.avp-chat-suggestions{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-top:.65rem;
}

.avp-suggestion-pill{
  border:1px solid rgba(18,91,218,.14);
  background: rgba(18,91,218,.06);
  color: var(--avp-blue);
  border-radius:999px;
  padding:.5rem .8rem;
  font-weight:700;
  font-size:.83rem;
  transition: .2s ease;
}

.avp-suggestion-pill:hover{
  background: rgba(18,91,218,.11);
  border-color: rgba(18,91,218,.22);
}

.avp-chatbot-form{
  display:flex;
  gap:.65rem;
  padding: 14px;
  border-top:1px solid rgba(11,18,32,.08);
  background:#fff;
}

.avp-chatbot-input-wrap{
  position:relative;
  flex: 1 1 auto;
}

.avp-chat-input-icon{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  color: rgba(11,18,32,.38);
  pointer-events:none;
}

.avp-chat-input{
  height: 50px;
  border-radius: 999px !important;
  padding-left: 40px !important;
  border: 1px solid rgba(11,18,32,.10) !important;
  box-shadow: none !important;
}

.avp-chat-input:focus{
  border-color: rgba(18,91,218,.28) !important;
  box-shadow: 0 0 0 .22rem rgba(18,91,218,.10) !important;
}

.avp-chat-send{
  width:50px;
  height:50px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  padding: 0;
  flex-shrink: 0;
}

.avp-chat-typing{
  display:flex;
  align-items:center;
  gap:5px;
  min-height: 18px;
}

.avp-chat-typing span{
  width:7px;
  height:7px;
  border-radius:999px;
  background: rgba(11,18,32,.38);
  animation: avpTyping 1.1s infinite ease-in-out;
}

.avp-chat-typing span:nth-child(2){ animation-delay: .15s; }
.avp-chat-typing span:nth-child(3){ animation-delay: .30s; }

@keyframes avpTyping{
  0%, 80%, 100%{ transform: scale(.8); opacity:.45; }
  40%{ transform: scale(1); opacity:1; }
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 991px){
  .avp-pagehead{
    align-items:stretch;
  }

  .avp-brand-wrap{
    max-width: 250px;
  }

  .avp-brand-title{
    max-width: 150px;
  }

  .avp-brand-subtitle{
    max-width: 150px;
  }

  .avp-logo{
    width: 46px;
    height: 46px;
  }
}

@media (max-width: 576px){
  .avp-hero{
    padding: 22px;
    border-radius: 24px;
  }

  .avp-search .form-control{
    min-width:180px;
  }

  .avp-hero-metrics{
    grid-template-columns: 1fr;
  }

  .avp-chatbot{
    right: 12px;
    bottom: 12px;
  }

  .avp-chatbot-toggle{
    padding: 10px 12px 10px 10px;
  }

  .avp-chatbot-panel{
    width: min(100vw - 16px, 390px);
  }

  .avp-logo{
    width: 44px;
    height: 44px;
    border-radius: 12px;
  }

  .avp-footer-logo{
    width: 50px;
    height: 50px;
    border-radius: 16px;
  }

  .avp-brand-wrap{
    max-width: 220px;
  }

  .avp-brand-title{
    max-width: 135px;
    font-size: .88rem;
  }

  .avp-brand-subtitle{
    max-width: 135px;
    font-size: .68rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .avp-navbar{
    min-height: 66px;
  }

  .avp-navlinks .nav-link{
    padding: .6rem .8rem !important;
  }
}

.avp-chip{border-radius:999px;padding:.45rem .75rem;font-weight:900;font-size:13px;background:rgba(230,57,70,.08);border:1px solid rgba(230,57,70,.16);}
.avp-badges{display:flex;flex-wrap:wrap;gap:.5rem;}
.avp-badge-soft{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.35rem .6rem;font-weight:800;font-size:12px;background:rgba(18,91,218,.08);border:1px solid rgba(18,91,218,.16);color:var(--avp-blue);}
.avp-badge-open{display:inline-flex;align-items:center;border-radius:999px;padding:.35rem .65rem;font-weight:800;font-size:12px;background:rgba(22,163,74,.10);border:1px solid rgba(22,163,74,.16);color:#15803d;}
.avp-divider{height:1px;background:rgba(11,18,32,.08);}
.avp-h1{font-size:clamp(2rem,4vw,3.5rem);font-weight:900;line-height:1.05;letter-spacing:-.03em;color:var(--avp-dark);}
.avp-h2{font-size:1.6rem;font-weight:900;line-height:1.15;color:var(--avp-dark);}
.avp-h3{font-size:1.1rem;font-weight:900;line-height:1.2;color:var(--avp-dark);}
.avp-lead{font-size:1.05rem;line-height:1.8;color:var(--avp-muted);max-width:58ch;}
.avp-muted{color:var(--avp-muted);}
.avp-card-link{color:inherit;text-decoration:none;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
.avp-card-link:hover{transform:translateY(-4px);box-shadow:var(--avp-shadow-strong);border-color:rgba(18,91,218,.16);}
.avp-btn-ghost{background:#fff;border:1px solid rgba(18,91,218,.16);color:var(--avp-blue);box-shadow:0 10px 24px rgba(2,8,23,.05);}
.avp-btn-ghost:hover{color:var(--avp-red);border-color:rgba(230,57,70,.18);transform:translateY(-1px);}
.avp-hero-brand-card{position:relative;overflow:hidden;}
.avp-hero-brand-card::before{content:"";position:absolute;inset:-20% auto auto -20%;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle, rgba(244,196,48,.20), transparent 70%);pointer-events:none;}
.avp-hero-logo-wrap{width:min(280px,100%);padding:16px;border-radius:28px;background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,248,252,.96));border:1px solid rgba(11,18,32,.06);box-shadow:0 18px 50px rgba(2,8,23,.10);}
.avp-hero-logo{width:100%;height:auto;display:block;object-fit:contain;}
