  /* ── Base ── */
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 80px; }
  body { overflow-x: hidden; }
  img, video { max-width: 100%; height: auto; display: block; }
  button { cursor: pointer; }
  ::selection { background: rgba(13,148,136,0.15); }

  /* ── Nav ── */
  .nav-link { position: relative; }
  .nav-link::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1px;
    background: #0d9488;
    transition: width 0.3s ease;
  }
  .nav-link:hover::after { width: 100%; }

  /* ── Hero ── */
  .hero { position: relative; }
  .scroll-indicator { animation: fadeUp 1s ease 2.5s both; }

  @keyframes fadeUp {
    from { opacity: 0; transform: translate(-50%, 12px); }
    to   { opacity: 0.6; transform: translate(-50%, 0); }
  }

  /* ── Section Eyebrow ── */
  .section-eyebrow span {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
  }

  /* ── Service Card ── */
  .service-card { position: relative; overflow: hidden; }
  .service-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #0d9488, #5eead4);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s ease;
  }
  .service-card:hover::before { transform: scaleX(1); }

  /* ── Buttons ── */
  .btn-primary, .btn-secondary, .btn-cta, .btn-submit {
    position: relative;
    overflow: hidden;
  }
  .btn-submit .submit-arrow {
    transition: transform 0.2s ease;
  }
  .btn-submit:hover .submit-arrow {
    transform: translate(4px, -4px);
  }

  /* ── Gallery ── */
  .gallery-item img {
    will-change: transform;
  }

  /* ── Contact Form ── */
  .contact-form select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
  }

  /* ── Mobile Menu ── */
  .mobile-menu { animation: slideDown 0.3s ease; }
  @keyframes slideDown {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  /* ── Animations ── */
  [data-animate] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s cubic-bezier(0.22,1,0.36,1), transform 0.7s cubic-bezier(0.22,1,0.36,1);
  }
  [data-animate].is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* Stagger children */
  .service-card:nth-child(1) { transition-delay: 0.05s; }
  .service-card:nth-child(2) { transition-delay: 0.12s; }
  .service-card:nth-child(3) { transition-delay: 0.19s; }
  .service-card:nth-child(4) { transition-delay: 0.26s; }
  .service-card:nth-child(5) { transition-delay: 0.33s; }
  .service-card:nth-child(6) { transition-delay: 0.40s; }

  .gallery-item:nth-child(1) { transition-delay: 0.05s; }
  .gallery-item:nth-child(2) { transition-delay: 0.12s; }
  .gallery-item:nth-child(3) { transition-delay: 0.19s; }
  .gallery-item:nth-child(4) { transition-delay: 0.26s; }

  /* ── Responsive ── */
  @media (max-width: 767px) {
    .hero-title { font-size: 3rem; }
    .hero-title em { font-style: italic; }
  }
  @media (min-width: 768px) {
    .hero-title { font-size: 4.5rem; }
  }
  @media (min-width: 1024px) {
    .hero-title { font-size: 5.5rem; }
  }
  @media (min-width: 1280px) {
    .hero-title { font-size: 6.5rem; }
  }
