/* Base */
html, body { height: 100%; }
body.page{
  background: radial-gradient(1200px 600px at 10% 10%, rgba(143,124,255,.14), transparent 60%),
              radial-gradient(900px 500px at 85% 18%, rgba(41,211,194,.14), transparent 55%),
              radial-gradient(1000px 600px at 70% 95%, rgba(246,196,83,.12), transparent 55%),
              linear-gradient(180deg, var(--bg1), var(--bg0));
  color: var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
}

a{ color: var(--text); text-underline-offset: .18em; }
a:hover{ color: var(--text); opacity: .92; }

.muted{ color: var(--muted); }
.soft-hr{ border-color: var(--line); opacity: 1; }

.skip-link{
  position: absolute; left: 12px; top: 12px;
  padding: 10px 12px; background: rgba(15,26,51,.92); border: 1px solid var(--line);
  border-radius: 12px; transform: translateY(-140%); transition: transform .2s ease;
  z-index: 2000;
}
.skip-link:focus{ transform: translateY(0); box-shadow: var(--focus); outline: none; }

.section{ padding: 84px 0; position: relative; }
.section-surface{ background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)); }
.section-contrast{
  background: radial-gradient(900px 500px at 20% 20%, rgba(41,211,194,.12), transparent 60%),
              radial-gradient(900px 500px at 80% 25%, rgba(246,196,83,.10), transparent 60%),
              linear-gradient(180deg, rgba(15,26,51,.55), rgba(7,11,22,.62));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

/* Navbar */
.navbar-glass{
  background: rgba(7,11,22,.55);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(234,240,255,.10);
}
.navbar .nav-link{
  color: rgba(234,240,255,.85);
  border-radius: 14px;
  padding: .55rem .8rem;
}
.navbar .nav-link:hover{ background: rgba(234,240,255,.06); }
.navbar .nav-link.active{ background: rgba(41,211,194,.16); color: var(--text); }
.navbar-toggler{
  border: 1px solid rgba(234,240,255,.12);
  background: rgba(234,240,255,.85);
  border-radius: 12px;
}
.brand{
  display: inline-flex; gap: 10px; align-items: center;
  text-decoration: none;
}
.brand-mark{
  width: 14px; height: 14px; border-radius: 6px;
  background: conic-gradient(from 210deg, var(--primary), var(--iris), var(--accent), var(--primary));
  box-shadow: 0 0 0 4px rgba(41,211,194,.12);
}
.brand-text{ font-weight: 700; letter-spacing: .2px; color: #fff; }

/* Buttons */
.btn-primary{
  background: linear-gradient(135deg, var(--primary), var(--primary2));
  border: 0;
  box-shadow: 0 14px 40px rgba(41,211,194,.18);
}
.btn-primary:hover{ opacity: .96; }
.btn-outline-light{
  border-color: rgba(234,240,255,.22);
  color: rgba(234,240,255,.9);
}
.btn-outline-light:hover{
  background: rgba(234,240,255,.08);
  border-color: rgba(234,240,255,.28);
  color: var(--text);
}

/* Decorative dividers */
.section-divider{
  position: absolute; left: 0; right: 0; bottom: -1px;
  pointer-events: none;
}
.section-divider svg{ width: 100%; height: 98px; display: block; }
.section-divider path{ fill: rgba(7,11,22,.92); }
.section-divider.flip{ top: -1px; bottom: auto; transform: rotate(180deg); }

/* Hero */
.hero{ padding: 88px 0 12px; position: relative; overflow: hidden; }
.hero .kicker, .page-hero .kicker{
  display: inline-block;
  padding: 8px 12px;
  border: 1px solid rgba(234,240,255,.14);
  border-radius: 999px;
  background: rgba(234,240,255,.04);
  color: rgba(234,240,255,.86);
  font-size: .9rem;
}
.hero-blobs .blob{
  position: absolute; filter: blur(40px); opacity: .85;
  border-radius: 999px;
}
.blob-a{ width: 420px; height: 420px; left: -120px; top: -140px; background: rgba(143,124,255,.26); }
.blob-b{ width: 380px; height: 380px; right: -120px; top: -90px; background: rgba(41,211,194,.24); }
.blob-c{ width: 520px; height: 520px; left: 40%; top: 55%; background: rgba(246,196,83,.18); }

.hero-metrics{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}
.metric{
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius2);
  background: rgba(7,11,22,.35);
  padding: 12px 12px;
}
.metric-top{ color: rgba(234,240,255,.65); font-size: .85rem; }
.metric-val{ font-weight: 600; margin-top: 2px; }

/* Hero card */
.hero-card{
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(17,30,59,.72), rgba(11,16,32,.55));
  box-shadow: var(--shadow);
  padding: 16px;
  position: relative;
  overflow: hidden;
}
.hero-card::before{
  content:"";
  position:absolute; inset:-2px;
  background: radial-gradient(600px 280px at 20% 10%, rgba(41,211,194,.16), transparent 55%),
              radial-gradient(520px 260px at 80% 18%, rgba(246,196,83,.12), transparent 55%);
  opacity: .9;
  pointer-events:none;
}
.hc-top{ display:flex; gap:8px; flex-wrap: wrap; position:relative; z-index: 1; }
.hc-badge{
  padding: 8px 10px;
  background: rgba(41,211,194,.16);
  border: 1px solid rgba(41,211,194,.22);
  border-radius: 999px;
  font-weight: 700;
  font-size: .9rem;
}
.hc-chip{
  padding: 8px 10px;
  background: rgba(234,240,255,.04);
  border: 1px solid rgba(234,240,255,.12);
  border-radius: 999px;
  color: rgba(234,240,255,.84);
  font-size: .86rem;
}
.hc-illu{
  position: relative; z-index: 1;
  margin-top: 12px;
  border-radius: 18px;
  border: 1px solid rgba(234,240,255,.10);
  background: rgba(7,11,22,.28);
  overflow: hidden;
}
.hc-illu img{ width:100%; height:auto; display:block; opacity:.95; }
.hc-list{ position:relative; z-index: 1; margin-top: 12px; display:grid; gap:10px; }
.hc-item{ display:flex; gap:10px; align-items:flex-start; }
.hc-dot{
  width: 10px; height: 10px; border-radius: 4px;
  background: linear-gradient(135deg, var(--primary), var(--iris));
  box-shadow: 0 0 0 4px rgba(41,211,194,.12);
  margin-top: 6px;
}
.hc-title{ font-weight: 700; }
.hc-sub{ color: var(--muted); font-size: .95rem; margin-top: 2px; }
.hc-actions{ position:relative; z-index: 1; margin-top: 14px; }

/* Page hero */
.page-hero{
  padding: 68px 0 10px;
  position: relative;
  overflow: hidden;
}
.page-hero::before{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(900px 420px at 20% 10%, rgba(143,124,255,.12), transparent 60%),
              radial-gradient(900px 420px at 80% 10%, rgba(41,211,194,.12), transparent 60%);
  opacity:.9;
  pointer-events:none;
}
.page-hero .container{ position: relative; }

/* Cards */
.card-geo{
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(17,30,59,.58), rgba(7,11,22,.34));
  padding: 18px;
  box-shadow: var(--shadow2);
  position: relative;
  overflow: hidden;
}
.card-geo::after{
  content:"";
  position:absolute; inset:auto -60px -60px auto;
  width: 160px; height: 160px;
  background: radial-gradient(circle at 30% 30%, rgba(41,211,194,.22), transparent 60%);
  filter: blur(14px);
  transform: rotate(18deg);
}
.card-geo-icon{
  width: 42px; height: 42px;
  border-radius: 16px;
  border: 1px solid rgba(234,240,255,.12);
  background: linear-gradient(135deg, rgba(41,211,194,.22), rgba(143,124,255,.18));
  box-shadow: 0 0 0 6px rgba(41,211,194,.10);
}
.card-geo-icon.alt{ background: linear-gradient(135deg, rgba(246,196,83,.22), rgba(41,211,194,.14)); box-shadow: 0 0 0 6px rgba(246,196,83,.10); }
.card-geo-icon.warm{ background: linear-gradient(135deg, rgba(255,107,154,.18), rgba(246,196,83,.18)); box-shadow: 0 0 0 6px rgba(255,107,154,.08); }
.card-geo-icon.mint{ background: linear-gradient(135deg, rgba(41,211,194,.22), rgba(234,240,255,.08)); }
.card-geo-icon.iris{ background: linear-gradient(135deg, rgba(143,124,255,.22), rgba(41,211,194,.12)); }
.card-geo-icon.sun{ background: linear-gradient(135deg, rgba(246,196,83,.20), rgba(143,124,255,.12)); }

/* Pills */
.pill-row{ display:flex; justify-content:flex-end; gap:8px; flex-wrap: wrap; }
.pill{
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(234,240,255,.14);
  background: rgba(234,240,255,.04);
  color: rgba(234,240,255,.86);
  font-size: .9rem;
}

/* Pricing */
.price-card{
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(17,30,59,.70), rgba(7,11,22,.40));
  padding: 18px;
  box-shadow: var(--shadow2);
  position: relative;
  overflow: hidden;
}
.price-card::before{
  content:"";
  position:absolute; inset:-2px;
  background: radial-gradient(600px 260px at 20% 10%, rgba(41,211,194,.14), transparent 60%),
              radial-gradient(520px 240px at 80% 12%, rgba(246,196,83,.10), transparent 60%);
  opacity: .9;
  pointer-events:none;
}
.price-card.highlight{
  border-color: rgba(41,211,194,.28);
  box-shadow: 0 24px 80px rgba(41,211,194,.12);
}
.pc-top{ position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.pc-name{ font-weight: 800; font-size: 1.1rem; }
.pc-tag{
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(41,211,194,.14);
  border: 1px solid rgba(41,211,194,.20);
  color: rgba(234,240,255,.9);
  font-size: .85rem;
}
.pc-price{ position:relative; z-index:1; font-size: 2rem; font-weight: 900; margin-top: 14px; }
.pc-sub{ position:relative; z-index:1; margin-top: 6px; }
.pc-list{ position:relative; z-index:1; margin: 14px 0 0; padding-left: 18px; color: var(--muted); }
.pc-list li{ margin-bottom: 8px; }
.pc-fine{ position:relative; z-index:1; }

/* Note strip */
.note-strip{
  display:flex; gap:12px; align-items:flex-start;
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius2);
  background: rgba(7,11,22,.35);
  padding: 14px 14px;
}
.note-dot{
  width: 12px; height: 12px; border-radius: 5px;
  margin-top: 4px;
  background: linear-gradient(135deg, var(--accent), var(--primary));
  box-shadow: 0 0 0 5px rgba(246,196,83,.10);
}

/* Accordion */
.accordion-clean .accordion-item{
  border: 1px solid rgba(234,240,255,.12);
  background: rgba(7,11,22,.30);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 10px;
}
.accordion-clean .accordion-button{
  background: transparent;
  color: rgba(234,240,255,.92);
  font-weight: 700;
}
.accordion-clean .accordion-button:not(.collapsed){
  background: rgba(41,211,194,.10);
  box-shadow: none;
}
.accordion-clean .accordion-button:focus{ box-shadow: var(--focus); }
.accordion-clean .accordion-body{ background: rgba(7,11,22,.16); }

/* Case cards */
.case-stack{ display:grid; gap:12px; }
.case-card{
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(17,30,59,.58), rgba(7,11,22,.32));
  padding: 16px;
  box-shadow: var(--shadow2);
  position: relative;
  overflow:hidden;
}
.case-card::after{
  content:"";
  position:absolute; left:-60px; bottom:-60px;
  width: 200px; height: 200px;
  background: radial-gradient(circle at 40% 40%, rgba(143,124,255,.18), transparent 60%);
  filter: blur(16px);
}
.case-top{ display:flex; gap:8px; flex-wrap: wrap; position:relative; z-index:1; }
.case-pill{
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(234,240,255,.12);
  background: rgba(234,240,255,.04);
  color: rgba(234,240,255,.86);
  font-size: .85rem;
}
.case-pill.soft{
  border-color: rgba(41,211,194,.18);
  background: rgba(41,211,194,.10);
}

/* Panels */
.panel{
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(17,30,59,.60), rgba(7,11,22,.32));
  box-shadow: var(--shadow2);
  padding: 18px;
  position: relative;
  overflow: hidden;
}
.panel::before{
  content:"";
  position:absolute; inset:auto -60px -60px auto;
  width: 200px; height: 200px;
  background: radial-gradient(circle at 30% 30%, rgba(41,211,194,.16), transparent 62%);
  filter: blur(16px);
  transform: rotate(12deg);
  pointer-events:none;
}

.grid-2{ display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 991px){ .grid-2{ grid-template-columns: 1fr; } }
.mini{
  border: 1px solid rgba(234,240,255,.10);
  border-radius: 16px;
  background: rgba(7,11,22,.26);
  padding: 12px;
}
.mini-title{ font-weight: 800; }
.mini-text{ margin-top: 6px; }

.step-list li{ margin-bottom: 10px; }

.notice{
  display:flex; gap:12px; align-items:flex-start;
  border: 1px dashed rgba(234,240,255,.18);
  border-radius: 16px;
  background: rgba(7,11,22,.26);
  padding: 12px;
}
.notice-icon{
  width: 14px; height: 14px; border-radius: 6px;
  margin-top: 4px;
  background: linear-gradient(135deg, var(--iris), var(--primary));
  box-shadow: 0 0 0 5px rgba(143,124,255,.10);
}
.notice-text{ color: rgba(234,240,255,.84); }

/* Forms */
.form-card{
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(17,30,59,.72), rgba(7,11,22,.36));
  box-shadow: var(--shadow);
  padding: 18px;
}
.form-control, .form-select{
  background: rgba(7,11,22,.40);
  border: 1px solid rgba(234,240,255,.14);
  color: rgba(234,240,255,.92);
  border-radius: 14px;
}
.form-control:focus, .form-select:focus{
  border-color: rgba(41,211,194,.35);
  box-shadow: var(--focus);
  background: rgba(7,11,22,.46);
  color: rgba(234,240,255,.92);
}
.form-label{ color: rgba(234,240,255,.86); font-weight: 600; }
.form-check-input{
  background-color: rgba(7,11,22,.40);
  border-color: rgba(234,240,255,.18);
}
.form-check-input:focus{ box-shadow: var(--focus); }
.form-check-label{ color: rgba(234,240,255,.86); }
.invalid-feedback{ color: rgba(255,107,154,.9); }
.form-status .alert{
  border-radius: 16px;
  border: 1px solid rgba(234,240,255,.12);
  background: rgba(7,11,22,.35);
  color: rgba(234,240,255,.92);
}

/* Contact mini */
.contact-mini{
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius2);
  background: rgba(7,11,22,.26);
  padding: 14px;
}
.contact-mini-row{ display:flex; justify-content:space-between; gap:10px; padding: 8px 0; border-bottom: 1px solid rgba(234,240,255,.08); }
.contact-mini-row:last-child{ border-bottom: 0; }
.cm-label{ color: rgba(234,240,255,.66); }

/* Strip */
.strip{
  display:flex; gap:16px; justify-content:space-between; align-items:center;
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius);
  background: rgba(7,11,22,.30);
  padding: 16px;
}
.strip-title{ font-weight: 900; }
@media (max-width: 767px){
  .strip{ flex-direction: column; align-items: flex-start; }
  .strip-right{ width: 100%; display:flex; gap:10px; flex-wrap: wrap; }
}

/* Footer */
.footer{
  border-top: 1px solid rgba(234,240,255,.10);
  background: rgba(7,11,22,.55);
  padding: 42px 0 22px;
}
.brand-footer .brand-mark{ box-shadow: 0 0 0 5px rgba(41,211,194,.10); }
.footer-title{ font-weight: 800; margin-bottom: 10px; }
.footer-links{ list-style: none; padding-left: 0; margin: 0; display:grid; gap: 8px; }
.footer-links a{ color: rgba(234,240,255,.82); text-decoration: none; }
.footer-links a:hover{ color: rgba(234,240,255,.95); text-decoration: underline; }
.footer-contact a{ color: rgba(234,240,255,.90); }
.social-row{ display:flex; flex-wrap: wrap; gap: 10px; }
.social-btn{
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(234,240,255,.14);
  background: rgba(234,240,255,.04);
  color: rgba(234,240,255,.86);
  text-decoration: none;
  font-size: .92rem;
}
.social-btn:hover{ background: rgba(234,240,255,.08); }

.footer-bottom{
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(234,240,255,.08);
}

/* Thank you */
.thank-card{
  border: 1px solid rgba(234,240,255,.12);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(17,30,59,.70), rgba(7,11,22,.34));
  box-shadow: var(--shadow);
  padding: 28px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.thank-card::before{
  content:"";
  position:absolute; inset:-2px;
  background: radial-gradient(700px 320px at 20% 18%, rgba(41,211,194,.14), transparent 60%),
              radial-gradient(620px 300px at 80% 18%, rgba(246,196,83,.10), transparent 60%);
  opacity: .95;
  pointer-events:none;
}
.thank-card *{ position: relative; z-index: 1; }
.thank-mark{
  width: 62px; height: 62px; margin: 0 auto;
  border-radius: 22px;
  border: 1px solid rgba(234,240,255,.12);
  background: conic-gradient(from 210deg, rgba(41,211,194,.75), rgba(143,124,255,.65), rgba(246,196,83,.65), rgba(41,211,194,.75));
  box-shadow: 0 18px 60px rgba(41,211,194,.14);
}

/* Simple reveal */
.reveal{ opacity: 0; transform: translateY(10px); transition: opacity .55s ease, transform .55s ease; }
.reveal.is-visible{ opacity: 1; transform: translateY(0); }
