/* ============================================================
   Altisium — corporate site shared styles
   Brand: cobalt "Signal" #2563FF, Manrope. Light, enterprise.
   ============================================================ */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; }
[id] { scroll-margin-top: 90px; }
img { max-width: 100%; }

/* Card / link hover behaviours (carried over from the design prototypes) */
.alt-card { transition: transform .18s, box-shadow .18s, border-color .18s; }
.alt-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(15,26,46,.1); border-color: #C9D6F5; }
.alt-learn:hover { gap: 11px !important; }
.alt-navlink:hover { color: #2563FF !important; }
.alt-flink { color: #9DA8C2; text-decoration: none; font-size: 14.5px; transition: color .15s; }
.alt-flink:hover { color: #fff; }
.alt-tlink:hover { color: #2563FF !important; }
.alt-input { width: 100%; padding: 12px 14px; border-radius: 9px; background: #fff; border: 1px solid #D8DEEC; color: #0F1A2E; font-size: 14.5px; font-family: inherit; outline: none; }
.alt-input:focus { border-color: #2563FF; }
.alt-mcard { transition: border-color .18s, transform .18s; }
.alt-mcard:hover { border-color: #2563FF; transform: translateY(-2px); }

/* FAQ accordions */
.alt-faq { border: 1px solid #E8ECF4; border-radius: 12px; padding: 0 20px; margin-bottom: 12px; background: #fff; }
.alt-faq summary { list-style: none; cursor: pointer; padding: 18px 0; font-weight: 700; font-size: 15.5px; display: flex; justify-content: space-between; align-items: center; }
.alt-faq summary::-webkit-details-marker { display: none; }
.alt-faq summary::after { content: '+'; color: #2563FF; font-size: 22px; font-weight: 600; }
.alt-faq[open] summary::after { content: '\2212'; }
.alt-faq p { margin: 0 0 18px; font-size: 14px; color: #5B6577; line-height: 1.6; }

/* Animations */
@keyframes alt-pulse { 0%,100% { opacity:.45; transform:scale(1); } 50% { opacity:1; transform:scale(1.15); } }
@keyframes alt-radar { 0% { transform:scale(.55); opacity:.5; } 100% { transform:scale(1.9); opacity:0; } }
@keyframes alt-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }

/* ---------- Legal / policy pages ---------- */
.legal { max-width: 840px; margin: 0 auto; font-size: 15.5px; color: #3A4565; line-height: 1.7;
  /* legal sub-clauses use "(c)" — stop the font ligaturing it into © / (r)→® */
  font-variant-ligatures: none; -webkit-font-feature-settings: "liga" 0, "clig" 0, "dlig" 0, "hlig" 0, "calt" 0;
  font-feature-settings: "liga" 0, "clig" 0, "dlig" 0, "hlig" 0, "calt" 0; }
.legal h2 { font-size: 22px; font-weight: 800; color: #0F1A2E; margin: 38px 0 14px; letter-spacing: -.01em; }
.legal h3 { font-size: 17px; font-weight: 700; color: #1F2A44; margin: 26px 0 10px; }
.legal h4 { font-size: 15px; font-weight: 700; color: #1F2A44; margin: 20px 0 8px; }
.legal p { margin: 0 0 14px; }
.legal a { color: #2563FF; font-weight: 600; text-decoration: none; }
.legal a:hover { text-decoration: underline; }
.legal ul { padding-left: 22px; margin: 0 0 16px; }
.legal li { margin-bottom: 7px; }
.legal .legal-item { margin: 0 0 10px; padding-left: 22px; }
.legal hr { border: none; border-top: 1px solid #EEF1F8; margin: 30px 0; }
.legal blockquote { margin: 0 0 18px; padding: 14px 18px; background: #F6F8FC; border: 1px solid #E8ECF4; border-left: 3px solid #2563FF; border-radius: 8px; font-size: 14px; color: #5B6577; }
.legal blockquote p { margin: 0; }
.legal table { width: 100%; border-collapse: collapse; margin: 8px 0 22px; font-size: 13.5px; }
.legal th { text-align: left; background: #F6F8FC; color: #0F1A2E; font-weight: 700; padding: 10px 12px; border: 1px solid #E8ECF4; }
.legal td { padding: 10px 12px; border: 1px solid #EEF1F8; vertical-align: top; color: #5B6577; }
.legal-tablewrap { overflow-x: auto; }
.legal-tablewrap table { min-width: 560px; }
.legal-notice { background: #FFF7E8; border: 1px solid #F5E2B8; border-radius: 12px; padding: 14px 18px; font-size: 13.5px; color: #8A6A1E; margin: 0 0 8px; line-height: 1.6; }

/* ---------- Mobile navigation ---------- */
.alt-menu-btn { display: none; background: none; border: none; cursor: pointer; padding: 8px; }
.alt-menu-btn svg { display: block; }
.alt-mobile-menu { display: none; }

@media (max-width: 900px) {
  .alt-nav-links, .alt-nav-cta { display: none !important; }
  .alt-menu-btn { display: inline-flex; }
  .alt-mobile-menu.open { display: block; }
  .alt-mobile-menu {
    border-top: 1px solid #E8ECF4; background: #fff; padding: 14px 24px 22px;
  }
  .alt-mobile-menu a {
    display: block; padding: 12px 0; font-size: 16px; font-weight: 600;
    color: #1F2A44; text-decoration: none; border-bottom: 1px solid #F2F4FA;
  }
  .alt-mobile-menu a.cta {
    margin-top: 14px; text-align: center; background: #2563FF; color: #fff;
    border-radius: 10px; border-bottom: none; padding: 13px;
  }
}

/* ---------- Responsive layout: collapse the prototype's fixed grids ---------- */
@media (max-width: 1024px) {
  .alt-grid-2, .alt-grid-3, .alt-grid-4, .alt-grid-5, .alt-split { grid-template-columns: 1fr 1fr !important; }
  .alt-split { gap: 36px !important; }
  .alt-flow { flex-wrap: wrap !important; justify-content: center !important; }
  .alt-flow > div { min-width: 130px; }
}
@media (max-width: 680px) {
  .alt-grid-2, .alt-grid-3, .alt-grid-4, .alt-grid-5, .alt-split,
  .alt-footer-grid, .alt-compare-row, .alt-stat-row { grid-template-columns: 1fr !important; }
  .alt-section { padding-left: 20px !important; padding-right: 20px !important; }
  h1 { font-size: 34px !important; }
  h2 { font-size: 26px !important; }
  .alt-hide-sm { display: none !important; }
}

/* The design's sliced pages carry their column counts as inline styles.
   Collapse any inline CSS grid responsively so those pages reflow too. */
@media (max-width: 1024px) {
  main [style*="grid-template-columns:repeat(4"],
  main [style*="grid-template-columns:repeat(5"],
  main [style*="grid-template-columns:.85fr 2fr"],
  main [style*="grid-template-columns:.9fr 2fr"] { grid-template-columns: 1fr 1fr !important; }
  /* horizontal process rows wrap instead of squashing */
  main [style*="justify-content:space-between"][style*="align-items:flex-start"] { flex-wrap: wrap !important; gap: 22px 8px !important; }
  main [style*="justify-content:space-between"][style*="align-items:flex-start"] > div[style*="flex:1"] { flex: 1 1 28% !important; }
}
@media (max-width: 680px) {
  main [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
  /* process-step arrows are noise once stacked */
  main [style*="justify-content:space-between"][style*="align-items:flex-start"] > div:not([style*="flex:1"]):not([style*="text-align"]) { display: none !important; }
  main section { padding-left: 20px !important; padding-right: 20px !important; }
}
