/* =========================
   PrimeVox — Clean Luxury Light UI
   ========================= */

:root{
  --brand: #2563eb;
  --brand2: #1d4ed8;
  --accent: #06b6d4;

  --bg: #ffffff;
  --bg2: #f6f8fb;
  --text: #0b1220;
  --muted: #475569;
  --muted2: #64748b;

  --card: #ffffff;
  --border: rgba(15,23,42,.10);
  --border2: rgba(15,23,42,.14);

  --shadow: 0 16px 44px rgba(15,23,42,.10);
  --shadow2: 0 10px 24px rgba(15,23,42,.08);

  --radius: 16px;
  --radiusLg: 22px;
  --max: 1160px;

  --focus: 0 0 0 3px rgba(37,99,235,.18), 0 0 0 1px rgba(37,99,235,.35);
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  color: var(--text);
  background: var(--bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.container{ width: min(100% - 32px, var(--max)); margin-inline:auto; }
:focus-visible{ outline:none; box-shadow: var(--focus); border-radius: 12px; }

/* Header */
.header{
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.header-hero{ background: rgba(255,255,255,.72); }

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding: 14px 0;
}
.brand{ display:flex; align-items:center; gap:10px; font-weight:900; }
.brand img{ height: 34px; width:auto; }

/* Nav */
.nav{ display:flex; align-items:center; gap: 6px; }
.nav a{
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 750;
  color: var(--muted);
  border: 1px solid transparent;
  font-size: 14px;
}
.nav a:hover{ background: rgba(15,23,42,.04); color: var(--text); }
.nav a.active{ background: rgba(37,99,235,.10); border-color: rgba(37,99,235,.16); color: var(--brand2); }

.header-actions{ display:flex; align-items:center; gap:10px; }

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background:#fff;
  color: var(--text);
  font-weight: 850;
  font-size: 14px;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.btn:hover{ transform: translateY(-1px); box-shadow: var(--shadow2); border-color: var(--border2); }
.btn.primary{
  background: linear-gradient(135deg, var(--brand), var(--accent));
  border-color: rgba(37,99,235,.18);
  color:#fff;
  box-shadow: 0 18px 44px rgba(37,99,235,.18);
}
.btn.primary:hover{ filter: brightness(1.03); }
.btn.ghost{ background: transparent; }

/* Mobile menu */
.mobile-toggle{
  display:none;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  cursor:pointer;
}
.mobile-panel{ display:none; padding: 10px 0 16px; }
.mobile-panel .nav{ flex-direction:column; align-items:stretch; gap: 8px; }
.mobile-panel .nav a{ padding: 12px; }

/* Dropdown policies */
.dropdown{ position: relative; display:inline-flex; }
.dropbtn{
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 750;
  color: var(--muted);
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  font-size: 14px;
}
.dropbtn:hover{ background: rgba(15,23,42,.04); color: var(--text); }
.dropdown-menu{
  position:absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 190px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow2);
  padding: 8px;
  display:none;
  z-index: 99;
}
.dropdown-menu a{
  display:block;
  padding: 10px 10px;
  border-radius: 10px;
  color: var(--muted);
  font-weight: 750;
}
.dropdown-menu a:hover{ background: rgba(15,23,42,.04); color: var(--text); }
.dropdown.open .dropdown-menu{ display:block; }

/* Full screen hero */
.hero-full{
  min-height: 100vh;
  position: relative;
  display:grid;
  align-items: center;
  overflow:hidden;
  background: #0b1220; /* fallback if image fails */
}
.hero-full::before{
  content:"";
  position:absolute;
  inset:-20px;
  background-image: var(--hero-img);
  background-size: cover;
  background-position: var(--bgx, 50%) var(--bgy, 50%);
  transform: scale(var(--bgscale, 1.06));
  opacity: .95;
  filter: saturate(1.05) contrast(1.05);
}

.hero-overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,.92) 0%,
    rgba(255,255,255,.84) 40%,
    rgba(255,255,255,.62) 70%,
    rgba(255,255,255,.35) 100%
  );
  pointer-events:none;
}
.hero-full-inner{
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 72px 0 44px;
}

.hero-center{ max-width: 820px; }

.hero-logo{
  width: min(520px, 92vw);
  height: auto;
  display:block;
  margin: 0 0 18px;
  filter: drop-shadow(0 14px 26px rgba(15,23,42,.12));
}

.hero-kicker{
  margin: 0 0 10px;
  font-weight: 900;
  color: var(--muted);
  letter-spacing: .2px;
}

.hero-title{
  margin: 0 0 10px;
  font-size: clamp(34px, 4.2vw, 62px);
  line-height: 1.05;
  letter-spacing: -.02em;
}

.typed{
  display:inline-block;
  border-right: 3px solid rgba(15,23,42,.55);
  padding-right: 6px;
  white-space: nowrap;
}

.hero-sub{
  margin: 10px 0 18px;
  color: var(--muted);
  font-size: 16px;
  max-width: 70ch;
}

.hero-actions{ display:flex; gap: 12px; flex-wrap:wrap; margin-top: 10px; }

.hero-trust{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  margin-top: 14px;
}

.pill{
  display:inline-flex;
  gap: 8px;
  align-items:center;
  padding: 9px 12px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.75);
  color: var(--muted);
  font-weight: 800;
  font-size: 13px;
}

/* Scroll cue */
.scroll-cue{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap: 6px;
  margin-top: 26px;
  color: var(--muted);
  font-weight: 800;
  width: fit-content;
}
.scroll-cue .chev{
  animation: bob 1.2s ease-in-out infinite;
  font-size: 18px;
}
@keyframes bob{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(5px); }
}

/* Sections */
.section{ padding: 56px 0; background: var(--bg); }
.section.alt{ background: var(--bg2); }

.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap: 18px;
  margin-bottom: 18px;
}
.section-head h2{
  margin:0;
  font-size: clamp(22px, 2.4vw, 34px);
  letter-spacing: -.01em;
}
.section-head p{ margin:0; max-width: 72ch; color: var(--muted); }

/* Grid/cards */
.grid{ display:grid; gap: 16px; }
.grid.cols-3{ grid-template-columns: repeat(3, 1fr); }
.grid.cols-2{ grid-template-columns: repeat(2, 1fr); }

.card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: var(--shadow2);
  transition: transform .15s ease, border-color .15s ease;
}
.card:hover{ transform: translateY(-2px); border-color: rgba(37,99,235,.22); }
.card h3{ margin:0 0 8px; font-size: 18px; }
.card p{ margin:0; color: var(--muted); font-size: 14px; }
.card ul{ margin: 10px 0 0; padding-left: 18px; color: var(--muted); font-size: 14px; }
.card li{ margin: 6px 0; }

/* CTA */
.cta{
  margin-top: 22px;
  padding: 22px;
  border-radius: 22px;
  border: 1px solid rgba(37,99,235,.16);
  background:
    radial-gradient(900px 360px at 10% 0%, rgba(37,99,235,.14), transparent 60%),
    linear-gradient(135deg, rgba(6,182,212,.08), rgba(37,99,235,.08));
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap: 12px;
}
.cta h3{ margin:0; font-size: 18px; }
.cta p{ margin: 4px 0 0; color: var(--muted); font-size: 14px; }

/* Footer */
.footer{
  border-top: 1px solid var(--border);
  padding: 26px 0;
  background: var(--bg2);
  color: var(--muted);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 16px;
  align-items:start;
}
.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap: 10px 14px;
  justify-content:flex-end;
}
.footer a:hover{ text-decoration: underline; color: var(--text); }

/* Scroll reveal */
.reveal{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}
.reveal.in{
  opacity: 1;
  transform: translateY(0);
}

/* Responsive */
@media (max-width: 980px){
  .nav{ display:none; }
  .mobile-toggle{ display:inline-flex; align-items:center; justify-content:center; }
  .mobile-panel{ display:block; }
  .mobile-panel[hidden]{ display:none; }

  .footer-grid{ grid-template-columns: 1fr; }
  .footer-links{ justify-content:flex-start; }

  .hero-overlay{
    background: linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.80) 45%, rgba(255,255,255,.62) 100%);
  }

  /* dropdown becomes "accordion-like" in mobile menu */
  .dropdown-menu{ position: static; display:none; margin-top: 8px; }
  .dropdown.open .dropdown-menu{ display:block; }

  .grid.cols-3{ grid-template-columns: 1fr; }
  .grid.cols-2{ grid-template-columns: 1fr; }
}

@media (max-width: 520px){
  .header-actions .btn.ghost{ display:none; }
  .brand img{ height: 30px; }
}
/* =========================
   Contact page upgrades
   ========================= */

.contact-hero{
  background:
    radial-gradient(900px 420px at 15% 0%, rgba(37,99,235,.12), transparent 60%),
    radial-gradient(900px 420px at 85% 10%, rgba(6,182,212,.10), transparent 65%),
    linear-gradient(180deg, #ffffff, #f6f8fb);
  border-bottom: 1px solid var(--border);
  padding: 44px 0 24px;
}

.contact-hero-inner{
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 18px;
  align-items: start;
}

.page-h1{
  margin: 0 0 8px;
  font-size: clamp(30px, 3.2vw, 44px);
  letter-spacing: -.02em;
  line-height: 1.08;
}

.page-sub{
  margin: 0 0 14px;
  color: var(--muted);
  max-width: 70ch;
}

.mini-pills{ display:flex; flex-wrap:wrap; gap: 10px; }

.contact-side{ display:grid; gap: 10px; }
.contact-side-card{
  background:#fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px;
  box-shadow: var(--shadow2);
}

.contact-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.contact-card .card-head{
  margin-bottom: 12px;
}
.contact-card .card-head h2{
  margin:0;
  font-size: 20px;
}
.contact-card .card-head p{
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 14px;
}

/* Better form inputs */
.form-modern .field{ display:grid; gap: 6px; }
.form-modern label{
  font-size: 13px;
  font-weight: 850;
  color: var(--text);
}

.form-modern input,
.form-modern textarea,
.form-modern select{
  width:100%;
  padding: 12px 12px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,.14);
  background: #fff;
  color: var(--text);
  box-shadow: 0 1px 0 rgba(15,23,42,.02);
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.form-modern input::placeholder,
.form-modern textarea::placeholder{
  color: rgba(100,116,139,.9);
}

.form-modern input:focus,
.form-modern textarea:focus,
.form-modern select:focus{
  outline:none;
  border-color: rgba(37,99,235,.45);
  box-shadow: 0 0 0 4px rgba(37,99,235,.12);
}

.form-modern textarea{ min-height: 140px; resize: vertical; }

.field.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.recaptcha-wrap{
  padding: 12px;
  border-radius: 16px;
  border: 1px dashed rgba(15,23,42,.18);
  background: rgba(255,255,255,.7);
}

/* If reCAPTCHA throws the ugly red error box, keep layout clean */
.recaptcha-wrap iframe{ max-width: 100%; }

/* Buttons row */
.form-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap: 10px;
  margin-top: 6px;
}

/* Checklist */
.checklist{
  list-style: none;
  padding: 0;
  margin: 10px 0 0;
  display:grid;
  gap: 10px;
}

.checklist li{
  position: relative;
  padding-left: 28px;
  color: var(--muted);
  line-height: 1.45;
}

.checklist li::before{
  content: "✓";
  position:absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  display:grid;
  place-items:center;
  border-radius: 999px;
  background: rgba(37,99,235,.10);
  color: var(--brand2);
  font-weight: 950;
}

.card-note{
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.7);
  color: var(--muted2);
  font-size: 13px;
}

/* Responsive */
@media (max-width: 980px){
  .contact-hero-inner{ grid-template-columns: 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
  .field.split{ grid-template-columns: 1fr; }
}