.hero-contacto {
      min-height: 280px;
      background: linear-gradient(rgba(8,20,32,.88), rgba(8,20,32,.88)),
                  url('https://images.unsplash.com/photo-1563213126-a4273aed2016?w=1400&q=80') center/cover no-repeat;
      text-align: center; display: flex; align-items: center;
    }
    .hero-contacto h1 { font-family: var(--font-h); font-size: 48px; font-weight: 800; color: var(--teal); margin-bottom: 12px; }
    .hero-contacto p  { color: rgba(255,255,255,.78); font-size: 16px; }

    /* Layout */
    .contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; padding: 72px 0; }

    /* Form card */
    .form-card {
      background: var(--white); border-radius: 16px; padding: 36px 32px;
      border: 1.5px solid rgba(0,201,167,.2);
      box-shadow: 0 4px 24px rgba(0,0,0,.06);
    }
    .form-card h2 { font-family: var(--font-h); font-size: 20px; font-weight: 800; margin-bottom: 28px; }

    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
    .form-group { margin-bottom: 16px; }
    .form-group label { display: block; font-family: var(--font-h); font-size: 12px; font-weight: 700; color: var(--dark); margin-bottom: 6px; letter-spacing: .3px; }
    .form-group input,
    .form-group select,
    .form-group textarea {
      width: 100%; padding: 11px 14px; border: 1.5px solid var(--border);
      border-radius: 8px; font-family: var(--font-b); font-size: 13px; color: var(--dark);
      background: var(--white); outline: none; transition: border-color .2s, box-shadow .2s;
      appearance: none;
    }
    .form-group input::placeholder,
    .form-group textarea::placeholder { color: #b0bcc8; }
    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(0,201,167,.12); }
    .form-group textarea { resize: vertical; min-height: 110px; }
    .select-wrap { position: relative; }
    .select-wrap::after { content: ''; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); border: 5px solid transparent; border-top-color: var(--gray); pointer-events: none; }

    .btn-submit {
      display: block; width: 100%; padding: 15px; background: var(--teal); color: var(--dark);
      font-family: var(--font-h); font-size: 14px; font-weight: 800; letter-spacing: .5px;
      border: none; border-radius: 8px; cursor: pointer; transition: background .2s, transform .2s;
      margin-top: 8px;
    }
    .btn-submit:hover { background: var(--teal-dark); transform: translateY(-1px); }

    /* Info side */
    .info-side h2 { font-family: var(--font-h); font-size: 24px; font-weight: 800; margin-bottom: 12px; }
    .info-side p  { font-size: 14px; color: var(--gray); line-height: 1.7; margin-bottom: 32px; }

    .info-item { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 20px; }
    .info-icon { width: 40px; height: 40px; border-radius: 50%; background: rgba(0,201,167,.1); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .info-icon svg { width: 18px; stroke: var(--teal); fill: none; stroke-width: 1.8; }
    .info-item h4 { font-family: var(--font-h); font-size: 13px; font-weight: 700; margin-bottom: 2px; }
    .info-item p  { font-size: 13px; color: var(--teal); margin: 0; }

    /* Map placeholder */
    .map-box {
      background: var(--light-bg); border-radius: 12px; height: 220px; margin-top: 24px;
      border: 1.5px solid var(--border);
      display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px;
    }
    .map-box svg { width: 36px; stroke: var(--teal); fill: none; stroke-width: 1.5; opacity: .6; }
    .map-box p { font-size: 12px; color: var(--gray-lt); }

    /* Success message */
    .success-msg {
      display: none; background: rgba(0,201,167,.1); border: 1.5px solid var(--teal);
      border-radius: 8px; padding: 16px 20px; margin-top: 16px;
      font-family: var(--font-h); font-size: 14px; font-weight: 600; color: var(--teal); text-align: center;
    }

    @media(max-width:900px){
      .contact-layout { grid-template-columns: 1fr; padding: 48px 0; }
      .form-row { grid-template-columns: 1fr; }
      .hero-contacto h1 { font-size: 34px; }
    }