  * { 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(-14px)} 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)}
  }
  @keyframes markerBounce {
    0%,100%{transform:translateY(0) scale(1)}
    40%    {transform:translateY(-14px) scale(1.05)}
    60%    {transform:translateY(-8px) scale(1.02)}
  }
  @keyframes gridFade { from{opacity:0} to{opacity:.07} }

  .afu  { animation: fadeInUp .65s ease both; }
  .af   { animation: fadeIn   .6s  ease both; }
  .d1   { animation-delay:.10s } .d2 { animation-delay:.20s }
  .d3   { animation-delay:.30s } .d4 { animation-delay:.40s }
  .d5   { animation-delay:.50s }

  /* ── Scroll reveal ── */
  .reveal { opacity:0; transform:translateY(28px); transition:opacity .6s ease,transform .6s ease; }
  .reveal.visible { opacity:1; transform:translateY(0); }

  /* ── Mobile menu ── */
  #mobile-menu { display:none }
  #mobile-menu.open { display:block; animation:slideDown .3s ease both }
  .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)}

  /* ── Compliance link underline ── */
  .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% }

  /* ── Contact cards ── */
  .contact-card { transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
  .contact-card:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(14,111,115,.12); border-color: rgba(106,198,200,.4); }

  /* ── Form inputs ── */
  .form-input {
    width: 100%;
    border: 2px solid #e2e8f0;
    border-radius: 0.75rem;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    font-family: 'Public Sans', sans-serif;
    background: white;
    transition: border-color .2s, box-shadow .2s;
    outline: none;
  }
  .form-input:focus { border-color: #6ac6c8; box-shadow: 0 0 0 3px rgba(106,198,200,.15); }
  .dark .form-input { background: #1e293b; border-color: #334155; color: #f1f5f9; }
  .dark .form-input:focus { border-color: #6ac6c8; }
  .form-input::placeholder { color: #94a3b8; }

  /* ── Submit button ── */
  .btn-submit { transition: all .22s; }
  .btn-submit:hover { background: #e9c027; transform: translateY(-1px); box-shadow: 0 10px 28px rgba(244,208,63,.35); }
  .btn-submit:active { transform: scale(.98); }

  /* ── Pulse CTA ── */
  .btn-pulse { animation: pulse-ring 2.2s infinite; }

  /* ── Map marker ── */
  .map-marker { animation: markerBounce 2.2s ease-in-out infinite; }

  /* ── Grid bg ── */
  .grid-bg { animation: gridFade .8s ease both; animation-delay: .3s; }

  /* ── Social icons ── */
  .social-btn { transition: all .2s; }
  .social-btn:hover { transform: translateY(-2px); }

  /* ── WhatsApp button ── */
  .btn-wa { transition: all .2s; }
  .btn-wa:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(37,211,102,.35); }

  html { scroll-behavior: smooth; }