/* Base */
html, body { height: 100%; }
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  background: radial-gradient(1200px 700px at 20% 10%, rgba(61,242,201,.16), transparent 55%),
              radial-gradient(900px 600px at 80% 20%, rgba(139,124,255,.18), transparent 55%),
              radial-gradient(1000px 700px at 50% 90%, rgba(255,184,112,.12), transparent 60%),
              linear-gradient(180deg, var(--bg), var(--bg2));
  color: var(--text);
  overflow-x: hidden;
}

.bg-app{
  background: radial-gradient(1200px 700px at 20% 10%, rgba(61,242,201,.16), transparent 55%),
              radial-gradient(900px 600px at 80% 20%, rgba(139,124,255,.18), transparent 55%),
              radial-gradient(1000px 700px at 50% 90%, rgba(255,184,112,.12), transparent 60%),
              linear-gradient(180deg, var(--bg), var(--bg2));
}
.text-app{ color: var(--text); }

a{ color: var(--text); text-decoration: none; }
a:hover{ color: var(--text); text-decoration: underline; }

.link-soft{
  color: rgba(234,240,255,.92);
  text-decoration: underline;
  text-decoration-color: rgba(61,242,201,.38);
  text-underline-offset: 2px;
}
.link-soft:hover{ text-decoration-color: rgba(255,184,112,.55); }

.skip-link{
  position:absolute; left:-999px; top:10px;
  background: #000; color:#fff; padding:10px 12px;
  border-radius: 10px; z-index:9999;
}
.skip-link:focus{ left: 10px; }

/* .section-pad{ padding: 84px 0; position: relative; }
.section-alt{
  background: linear-gradient(180deg, rgba(15,23,54,.35), rgba(11,16,38,.25));
  border-top: 1px solid rgba(42,58,122,.35);
  border-bottom: 1px solid rgba(42,58,122,.35);
} */

.section-head{ max-width: var(--maxw); }
.eyebrow{
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .78rem;
  color: rgba(234,240,255,.72);
}
.h1-like{ font-size: clamp(1.8rem, 1.2rem + 1.4vw, 2.5rem); }
.text-muted{ color: var(--muted) !important; }

.nav-glass{
  backdrop-filter: blur(12px);
  background: linear-gradient(180deg, rgba(7,10,18,.76), rgba(7,10,18,.50));
  border-bottom: 1px solid rgba(42,58,122,.35);
}

.brand-sigil{
  width: 14px; height: 14px; border-radius: 5px;
  background: conic-gradient(from 180deg, var(--primary), var(--primary2), var(--accent), var(--primary));
  box-shadow: 0 0 0 2px rgba(234,240,255,.10), 0 18px 40px rgba(61,242,201,.15);
}

.badge-soft{
  background: rgba(234,240,255,.10);
  border: 1px solid rgba(234,240,255,.16);
  color: rgba(234,240,255,.92);
}
.badge-glow{
  background: rgba(61,242,201,.18);
  border: 1px solid rgba(61,242,201,.30);
  color: rgba(234,240,255,.95);
  box-shadow: 0 12px 35px rgba(61,242,201,.14);
}

.btn-primary{
  background: linear-gradient(135deg, rgba(61,242,201,1), rgba(139,124,255,1));
  border: 0;
  box-shadow: 0 14px 36px rgba(61,242,201,.14);
}
.btn-primary:hover{ filter: brightness(1.03); }
.btn-outline-light{
  border-color: rgba(234,240,255,.28);
  color: rgba(234,240,255,.92);
}
.btn-outline-light:hover{
  background: rgba(234,240,255,.10);
  border-color: rgba(234,240,255,.34);
  color: rgba(234,240,255,.98);
}

/* Ambient elements */
/* .orb{
  position: absolute;
  width: 520px; height: 520px;
  border-radius: 999px;
  filter: blur(40px);
  opacity: .55;
  pointer-events: none;
  z-index: -1;
}
.orb--a{
  left: -160px; top: 80px;
  background: radial-gradient(circle at 30% 30%, rgba(61,242,201,.40), transparent 60%),
              radial-gradient(circle at 70% 60%, rgba(255,184,112,.20), transparent 65%);
}
.orb--b{
  right: -160px; top: 220px;
  background: radial-gradient(circle at 30% 30%, rgba(139,124,255,.42), transparent 62%),
              radial-gradient(circle at 70% 60%, rgba(61,242,201,.20), transparent 66%);
} */

.paper-grain{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  opacity: .13;
  background-image:
    radial-gradient(circle at 10% 10%, rgba(255,255,255,.10), transparent 30%),
    radial-gradient(circle at 80% 30%, rgba(255,255,255,.08), transparent 35%),
    radial-gradient(circle at 40% 80%, rgba(255,255,255,.06), transparent 35%);
  mix-blend-mode: overlay;
}

/* HERO */
.hero{ padding-top: 92px; padding-bottom: 40px; }
.hero .lead{ max-width: 60ch; }
.hero-mini__card{
  border-radius: var(--r-xl);
  background: linear-gradient(180deg, rgba(15,23,54,.62), rgba(11,16,38,.50));
  border: 1px solid rgba(42,58,122,.42);
  box-shadow: var(--shadow2);
  padding: 16px;
}
.hero-notes{ opacity: .92; }
.hero-visual{ position: relative; }
.hero-visual__frame{
  border-radius: 34px;
  background: linear-gradient(180deg, rgba(234,240,255,.08), rgba(234,240,255,.02));
  border: 1px solid rgba(42,58,122,.45);
  box-shadow: var(--shadow);
  padding: 16px;
  overflow: hidden;
}
.hero-visual__chips{
  position: absolute;
  left: 16px; bottom: 16px;
  display: flex; flex-wrap: wrap;
  gap: 8px;
}
.hero-visual__hint{
  margin-top: 10px;
  padding-left: 6px;
}
.divider{
  width: 100%;
  height: 110px;
  display: block;
  margin-top: 54px;
  opacity: .85;
}
.divider path{
  fill: rgba(15,23,54,.58);
  stroke: rgba(42,58,122,.45);
  stroke-width: 1;
}

/* Chips */
.chip{
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: .85rem;
  color: rgba(234,240,255,.92);
  background: rgba(7,10,18,.55);
  border: 1px solid rgba(234,240,255,.14);
  backdrop-filter: blur(10px);
}
.chip--sm{ padding: 5px 10px; font-size: .78rem; }

/* Cards */
.feature-card{
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, rgba(15,23,54,.60), rgba(11,16,38,.52));
  border: 1px solid rgba(42,58,122,.42);
  box-shadow: var(--shadow2);
  padding: 18px;
  height: 100%;
}
.page-policy .feature-card{ height: auto; }
.feature-card--wide{ padding: 22px; }

.icon-sq{
  width: 38px; height: 38px;
  border-radius: 14px;
  display: grid; place-items: center;
  color: rgba(234,240,255,.92);
  background: linear-gradient(135deg, rgba(61,242,201,.22), rgba(139,124,255,.18));
  border: 1px solid rgba(234,240,255,.16);
  box-shadow: 0 18px 40px rgba(61,242,201,.10);
}

.note-band{
  border-radius: var(--r-xl);
  border: 1px dashed rgba(234,240,255,.18);
  background: linear-gradient(180deg, rgba(7,10,18,.34), rgba(7,10,18,.18));
  padding: 12px;
}
.note-band__inner{
  border-radius: calc(var(--r-xl) - 10px);
  border: 1px solid rgba(42,58,122,.30);
  background: rgba(15,23,54,.36);
  padding: 14px 16px;
}

/* Steps */
.step-card{
  position: relative;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(15,23,54,.62), rgba(11,16,38,.52));
  border: 1px solid rgba(42,58,122,.42);
  box-shadow: var(--shadow2);
  padding: 18px;
  height: 100%;
  overflow: hidden;
}
.step-card::before{
  content:"";
  position:absolute; inset:-2px;
  background: radial-gradient(500px 220px at 20% 10%, rgba(61,242,201,.18), transparent 60%),
              radial-gradient(500px 220px at 80% 20%, rgba(255,184,112,.12), transparent 62%);
  opacity: .9;
  z-index: 0;
}
.step-card > *{ position: relative; z-index: 1; }
.step-num{
  width: 44px; height: 44px;
  border-radius: 16px;
  display: grid; place-items: center;
  font-weight: 700;
  background: rgba(234,240,255,.08);
  border: 1px solid rgba(234,240,255,.16);
}
.step-tags{ display:flex; flex-wrap:wrap; gap:8px; }

.callout{
  position: relative;
  border-radius: var(--r-xl);
  border: 1px solid rgba(42,58,122,.42);
  background: linear-gradient(135deg, rgba(61,242,201,.12), rgba(139,124,255,.10));
  box-shadow: var(--shadow2);
  overflow: hidden;
}
.callout__shape{
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 15% 30%, rgba(255,184,112,.18), transparent 55%),
    radial-gradient(circle at 85% 30%, rgba(61,242,201,.18), transparent 55%);
  opacity:.85;
}
.callout__content{ position: relative; padding: 16px 18px; }

.glass-panel{
  border-radius: var(--r-lg);
  padding: 14px 16px;
  background: rgba(15,23,54,.38);
  border: 1px solid rgba(42,58,122,.38);
}

/* Pricing */
.price-card{
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(15,23,54,.62), rgba(11,16,38,.52));
  border: 1px solid rgba(42,58,122,.42);
  box-shadow: var(--shadow2);
  padding: 18px;
  height: 100%;
}
.price-card--featured{
  border-color: rgba(61,242,201,.40);
  box-shadow: 0 26px 70px rgba(61,242,201,.14);
}
.price-meta{
  border-radius: 18px;
  padding: 12px 12px;
  background: rgba(7,10,18,.36);
  border: 1px solid rgba(234,240,255,.12);
}
.price-line{
  display:flex; justify-content:space-between; gap:12px;
  font-size: .9rem;
  color: rgba(234,240,255,.86);
  padding: 6px 4px;
  border-bottom: 1px dashed rgba(234,240,255,.12);
}
.price-line:last-child{ border-bottom: none; }

.mini-divider{
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(234,240,255,.20), transparent);
}

.limits{
  border-radius: var(--r-xl);
  border: 1px solid rgba(42,58,122,.38);
  background: rgba(15,23,54,.34);
  padding: 16px;
}
.limits__head{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.limits__item{
  border-radius: 18px;
  padding: 12px 12px;
  background: rgba(7,10,18,.30);
  border: 1px solid rgba(234,240,255,.10);
  display:flex; gap:10px;
}
.dot{
  width: 10px; height: 10px;
  border-radius: 999px;
  margin-top: 5px;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  box-shadow: 0 12px 26px rgba(61,242,201,.12);
}

.cta-strip{
  border-radius: 999px;
  border: 1px solid rgba(42,58,122,.40);
  background: linear-gradient(135deg, rgba(61,242,201,.12), rgba(139,124,255,.10));
  box-shadow: var(--shadow2);
}
.cta-strip__inner{
  padding: 16px 18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 14px;
  flex-wrap: wrap;
}

/* FAQ */
.acc-glass{
  border-radius: 18px !important;
  overflow: hidden;
  border: 1px solid rgba(42,58,122,.42) !important;
  background: rgba(15,23,54,.40) !important;
}
.accordion-button{
  color: rgba(234,240,255,.92) !important;
  background: rgba(15,23,54,.40) !important;
}
.accordion-button:focus{ box-shadow: none !important; }
.accordion-button::after{ filter: invert(1); opacity: .75; }
.accordion-body{ background: rgba(7,10,18,.18); }

/* Cases */
.case-card{
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(15,23,54,.58), rgba(11,16,38,.50));
  border: 1px solid rgba(42,58,122,.42);
  box-shadow: var(--shadow2);
  padding: 18px;
  height: 100%;
}
.case-tag{
  display:inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: .78rem;
  background: rgba(234,240,255,.08);
  border: 1px solid rgba(234,240,255,.14);
  margin-bottom: 10px;
  color: rgba(234,240,255,.90);
}

.testimonial-strip{
  border-radius: var(--r-xl);
  border: 1px solid rgba(42,58,122,.42);
  background: linear-gradient(135deg, rgba(255,184,112,.10), rgba(61,242,201,.10));
  box-shadow: var(--shadow2);
}
.testimonial-strip__inner{
  padding: 16px 18px;
  display:flex; align-items:center; gap: 14px; flex-wrap: wrap;
}
.quote-mark{
  font-size: 34px;
  line-height: 1;
  opacity: .85;
  color: rgba(234,240,255,.82);
}

/* Contact */
.contact-card, .form-card{
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(15,23,54,.62), rgba(11,16,38,.52));
  border: 1px solid rgba(42,58,122,.42);
  box-shadow: var(--shadow2);
  padding: 18px;
}
.contact-card__top{
  display:flex; align-items:flex-start; justify-content:space-between; gap: 12px;
}
.contact-card__bottom{
  border-radius: 22px;
  padding: 12px 12px;
  background: rgba(7,10,18,.30);
  border: 1px solid rgba(234,240,255,.10);
}

.social-link{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(234,240,255,.14);
  background: rgba(7,10,18,.34);
  color: rgba(234,240,255,.92);
  font-size: .88rem;
  text-decoration: none;
}
.social-link:hover{
  text-decoration: none;
  border-color: rgba(61,242,201,.28);
  background: rgba(61,242,201,.10);
}

.form-control, .form-select{
  background: rgba(7,10,18,.40);
  border: 1px solid rgba(234,240,255,.14);
  color: rgba(234,240,255,.92);
  border-radius: 16px;
}
.form-control::placeholder{
  color: #fff;
}
.form-control:focus{
  background: rgba(7,10,18,.44);
  border-color: rgba(61,242,201,.38);
  box-shadow: 0 0 0 .2rem rgba(61,242,201,.14);
  color: rgba(234,240,255,.96);
}
.form-label{ color: rgba(234,240,255,.88); }
.form-check-input{
  background-color: rgba(7,10,18,.50);
  border-color: rgba(234,240,255,.18);
}
.form-check-input:checked{
  background-color: rgba(61,242,201,.90);
  border-color: rgba(61,242,201,.90);
}
.invalid-feedback{ color: rgba(255,184,112,.95); }

.endline{
  border-radius: 999px;
  border: 1px solid rgba(42,58,122,.34);
  background: rgba(15,23,54,.28);
}
.endline__inner{ padding: 12px 14px; }

/* Footer */
.footer-wrap{
  border-top: 1px solid rgba(42,58,122,.35);
  background: linear-gradient(180deg, rgba(7,10,18,.20), rgba(7,10,18,.55));
  padding: 34px 0;
}
.footer-top{
  display:flex;
  justify-content:space-between;
  gap: 26px;
  flex-wrap: wrap;
}
.footer-links{
  display:flex;
  gap: 26px;
  flex-wrap: wrap;
}
.footer-col{ min-width: 190px; }
.footer-h{
  font-weight: 700;
  margin-bottom: 10px;
  color: rgba(234,240,255,.92);
}
.footer-col a{
  display:block;
  color: rgba(184,195,228,.96);
  text-decoration: none;
  padding: 4px 0;
}
.footer-col a:hover{ text-decoration: underline; }
.footer-bottom{
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px dashed rgba(234,240,255,.14);
  display:flex;
  justify-content:space-between;
  gap: 12px;
  flex-wrap: wrap;
}

/* Responsive tweaks */
@media (max-width: 991px){
  .hero{ padding-top: 74px; }
  .divider{ height: 90px; }
}

@media (max-width: 575px){
  .section-pad{ padding: 48px 0; }
  .hero{ padding: 60px 0 50px; }
  .container{ padding: 0 16px !important; }
  
  /* Text sizing */
  .h1-like{ font-size: clamp(1.5rem, 2.5vw, 2rem); }
  .display-5{ font-size: clamp(1.8rem, 3vw, 2.2rem); }
  .h5{ font-size: clamp(1rem, 1.5vw, 1.2rem); }
  
  /* Grid and flexbox adjustments */
  .row{ margin-left: -8px; margin-right: -8px; }
  .col-md-6, .col-lg-3{ padding-left: 8px; padding-right: 8px; }
  
  /* Feature cards stacking */
  .feature-card{ margin-bottom: 12px; }
  
  /* Step cards */
  .step-card{ margin-bottom: 12px; }
  .step-num{ font-size: 2rem; }
  
  /* Button sizing */
  .btn-primary, .btn-outline-light{ padding: .5rem 1rem; font-size: .95rem; }
  
  /* Divider height */
  .divider{ height: 60px; }
  
  /* Prevent overflow */
  html, body{ width: 100%; max-width: 100%; overflow-x: hidden; }
  .bg-app{ width: 100%; }
}
