
  * { box-sizing: border-box; }
  body { font-family: 'Public Sans', sans-serif; overflow-x: hidden; }
  .material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; vertical-align: middle; }

  /* ── Animations ── */
  @keyframes fadeInUp {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  @keyframes fadeIn {
    from { opacity: 0; } to { opacity: 1; }
  }
  @keyframes slideDown {
    from { opacity: 0; transform: translateY(-16px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  @keyframes pulse-ring {
    0%   { box-shadow: 0 0 0 0 rgba(106,198,200,.45); }
    70%  { box-shadow: 0 0 0 14px rgba(106,198,200,0); }
    100% { box-shadow: 0 0 0 0 rgba(106,198,200,0); }
  }

  .animate-fade-in-up   { animation: fadeInUp .7s ease both; }
  .animate-fade-in      { animation: fadeIn .6s ease both; }
  .animate-slide-down   { animation: slideDown .4s ease both; }
  .delay-100  { animation-delay: .1s; }
  .delay-200  { animation-delay: .2s; }
  .delay-300  { animation-delay: .3s; }
  .delay-400  { animation-delay: .4s; }

  /* ── Stat counter card ── */
  .stat-card { transition: transform .25s ease, box-shadow .25s ease; }
  .stat-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(14,111,115,.12); }

  /* ── News card ── */
  .news-card .thumb { transition: transform .5s ease; }
  .news-card:hover .thumb { transform: scale(1.06); }
  .news-card { transition: box-shadow .25s ease; }
  .news-card:hover { box-shadow: 0 16px 40px rgba(0,0,0,.10); }

  /* ── CTA button pulse ── */
  .btn-pulse { animation: pulse-ring 2.2s infinite; }

  /* ── Mobile menu ── */
  #mobile-menu { display: none; }
  #mobile-menu.open { display: block; animation: slideDown .3s ease both; }

  /* ── Hamburger ── */
  .hamburger span {
    display: block; width: 22px; height: 2px;
    background: currentColor; border-radius: 2px;
    transition: .3s ease; transform-origin: center;
  }
  .hamburger.open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
  .hamburger.open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

  /* ── Scroll reveal (JS-driven) ── */
  .reveal { opacity: 0; transform: translateY(32px); transition: opacity .65s ease, transform .65s ease; }
  .reveal.visible { opacity: 1; transform: translateY(0); }

  /* ── Testimonial quote mark ── */
  .quote-mark { font-size: 4rem; line-height: 1; color: #6ac6c8; opacity: .25; font-family: Georgia, serif; }

  /* ── Progress bar ── */
  .progress-bar { height: 6px; border-radius: 99px; background: #e2e8f0; overflow: hidden; }
  .progress-fill { height: 100%; border-radius: 99px; background: linear-gradient(90deg, #6ac6c8, #0e6f73); transition: width 1.4s cubic-bezier(.4,0,.2,1); width: 0; }
  .progress-fill.animated { }

  /* ── Compliance link hover ── */
  .compliance-link { position: relative; }
  .compliance-link::after { content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:#6ac6c8; transition:.3s; }
  .compliance-link:hover::after { width:100%; }

  /* ── Image overlay on cards ── */
  .overlay-gradient { background: linear-gradient(to top, rgba(14,111,115,.75) 0%, transparent 60%); }

  /* ── Footer link ── */
  footer a { transition: color .2s; }

  /* ── Smooth scroll ── */
  html { scroll-behavior: smooth; }
