/* =========================================================
   CONTACT SECTION
   Used on index.html only.
========================================================= */

.contact-header {
      max-width: 1100px;
      margin: 0 auto 40px;
      text-align: center;
      padding: 0 12px;
    }

.contact-title {
      font-size: var(--h2-size);
      color: var(--primary);
      font-weight: 800;
      margin-bottom: 12px;
      letter-spacing: -0.4px;
      position: relative;
      display: inline-block;
      padding-bottom: 16px;
    }

.contact-title::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 64px;
      height: 4px;
      border-radius: 2px;
      background: linear-gradient(90deg, var(--accent), var(--primary-light));
    }

.contact-sub {
      font-size: 16px;
      color: var(--text-muted);
      max-width: 820px;
      margin: 0 auto;
      line-height: 1.7;
    }

.contact-section {
      padding: 90px 24px;
      background: linear-gradient(180deg, #ffffff 0%, #fbfbff 100%);
      max-width: 100%;
      overflow: hidden;
    }

.contact-section .container {
      max-width: 1100px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: minmax(300px, 400px) minmax(0, 1fr);
      gap: 28px;
      align-items: start;
    }

.contact-card {
      position: relative;
      background: #ffffff;
      border: 1px solid rgba(26, 58, 82, 0.08);
      border-radius: 16px;
      padding: 30px 28px;
      box-shadow: 0 2px 10px rgba(26, 58, 82, 0.06);
      overflow: hidden;
    }

.contact-card::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 4px;
      background: linear-gradient(90deg, var(--accent), var(--primary-light));
    }

.contact-card h3 {
      font-size: 19px;
      color: var(--primary);
      margin-bottom: 8px;
      font-weight: 700;
    }

.contact-card p.lead {
      color: var(--text-muted);
      font-size: 14px;
      margin-bottom: 22px;
      line-height: 1.6;
    }

.contact-chip {
      display: flex;
      gap: 14px;
      align-items: center;
      padding: 14px;
      border-radius: 12px;
      background: #f8f9fc;
      border: 1px solid rgba(18, 49, 67, 0.05);
      margin-bottom: 12px;
      transition: background 0.25s ease, border-color 0.25s ease;
    }

.contact-chip:hover {
      background: #fff6ec;
      border-color: rgba(255, 154, 60, 0.25);
    }

.contact-chip .icon {
      flex-shrink: 0;
      width: 44px;
      height: 44px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      background: linear-gradient(135deg, #fff1d8, #ffe0b3);
      color: var(--primary);
      box-shadow: 0 4px 12px rgba(255, 154, 60, 0.15);
    }

.contact-chip .meta h4 {
      margin: 0;
      font-size: 14px;
      color: var(--primary);
      font-weight: 700;
    }

.contact-chip .meta p {
      margin: 3px 0 0;
      font-size: 13px;
      color: var(--text-muted);
      line-height: 1.5;
    }

.mini-map {
      margin-top: 18px;
      border-radius: 12px;
      overflow: hidden;
      border: 1px solid rgba(18, 49, 67, 0.08);
      height: 180px;
      background: #e9f2f7;
    }

.mini-map iframe {
      width: 100%;
      height: 100%;
      border: 0;
    }

.contact-form-card {
      position: relative;
      background: #ffffff;
      border-radius: 16px;
      padding: 32px 30px;
      border: 1px solid rgba(26, 58, 82, 0.08);
      box-shadow: 0 2px 10px rgba(26, 58, 82, 0.06);
      overflow: hidden;
    }

.contact-form-card::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 4px;
      background: linear-gradient(90deg, var(--primary-light), var(--accent));
    }

.contact-form-card h3 {
      font-size: 20px;
      color: var(--primary);
      margin-bottom: 6px;
      font-weight: 700;
    }

.contact-form-card p.sub {
      margin: 0 0 24px;
      color: var(--text-muted);
      font-size: 13.5px;
    }

.form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-bottom: 16px;
    }

.input-wrap {
      position: relative;
      margin-bottom: 4px;
    }

.input-wrap input,
    .input-wrap textarea {
      width: 100%;
      padding: 14px 16px;
      font-size: 14px;
      border-radius: 10px;
      border: 1.5px solid rgba(26, 58, 82, 0.12);
      background: #fbfcfe;
      transition: box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
      font-family: inherit;
    }

.input-wrap input:focus,
    .input-wrap textarea:focus {
      outline: none;
      border-color: var(--primary-light);
      background: #ffffff;
      box-shadow: 0 0 0 4px rgba(44, 90, 160, 0.1);
    }

.input-wrap textarea {
      min-height: 140px;
      resize: vertical;
      padding-top: 14px;
    }

.label-small {
      display: block;
      font-size: 12.5px;
      margin-bottom: 7px;
      color: var(--primary);
      font-weight: 600;
      letter-spacing: 0.2px;
    }

.submit-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      margin-top: 20px;
      gap: 16px;
    }

.submit-row .g-recaptcha {
      display: flex;
      justify-content: flex-start;
    }

.submit-btn {
      margin-left: auto;
    }

.btn-submit {
      background: linear-gradient(135deg, var(--primary-light), var(--primary));
      color: #fff;
      padding: 14px 28px;
      border-radius: 8px;
      border: none;
      font-weight: 700;
      font-size: 14.5px;
      cursor: pointer;
      min-width: 200px;
      box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
      transition: all 0.3s ease;
    }

.btn-submit:hover {
      transform: translateY(-3px);
      box-shadow: var(--card-shadow-hover);
    }