﻿/* Contact page-specific CSS — extracted from contact.html */
/* ---------- Contact-page specific layouts ---------- */
    .contact-hero {
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(1200px 600px at 8% 0%, rgba(255,225,106,0.35) 0%, rgba(255,248,240,0) 60%),
        var(--color-cream);
      border-bottom: 1px solid var(--color-divider);
    }
    .contact-hero-inner {
      max-width: 720px;
      margin: 0 auto;
      padding: 80px 40px 64px;
      text-align: center;
    }
    .contact-hero .eyebrow { margin-bottom: 18px; }
    .contact-hero h1 {
      font-family: var(--font-heading);
      font-weight: 800;
      font-size: 60px;
      line-height: 1.05;
      letter-spacing: -0.02em;
      color: var(--color-navy);
      margin: 0 0 24px;
    }
    .contact-hero h1 .swipe {
      background: linear-gradient(transparent 64%, var(--color-yellow) 64%, var(--color-yellow) 92%, transparent 92%);
      padding: 0 4px;
    }
    .contact-hero p.lead {
      font-size: 18px;
      line-height: 1.6;
      color: var(--color-body);
      margin: 0 auto 32px;
      max-width: 620px;
    }
    .contact-chips {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 10px;
    }
    .contact-chip {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: var(--color-white);
      border: 1px solid var(--color-border);
      padding: 8px 14px;
      font-family: var(--font-body);
      font-size: 13px;
      font-weight: 500;
      color: var(--color-dark);
      letter-spacing: 0.01em;
    }
    .contact-chip .tick {
      color: var(--color-success);
      font-weight: 700;
    }

    /* ---------- Main contact section ---------- */
    .contact-main {
      max-width: 1320px;
      margin: 0 auto;
      padding: 96px 40px;
      display: grid;
      grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
      gap: 64px;
      align-items: start;
    }

    /* Form card */
    .form-card {
      background: var(--color-white);
      border: 1px solid var(--color-border);
      padding: 40px;
    }
    .form-card .form-title {
      font-family: var(--font-heading);
      font-weight: 800;
      font-size: 24px;
      color: var(--color-navy);
      letter-spacing: -0.01em;
      margin: 0 0 8px;
    }
    .form-card .form-sub {
      font-size: 15px;
      line-height: 1.55;
      color: var(--color-body);
      margin: 0 0 28px;
    }
    .form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }
    .form-grid .form-row--full { grid-column: 1 / -1; }
    .form-card .label { margin-bottom: 8px; letter-spacing: 0.04em; text-transform: uppercase; font-size: 12px; }
    .form-card .input,
    .form-card .textarea,
    .form-card .select {
      font-size: 15px;
    }
    .form-card .select {
      appearance: none;
      -webkit-appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231E40AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 14px center;
      padding-right: 38px;
    }
    .form-card .textarea {
      resize: vertical;
      min-height: 120px;
      font-family: var(--font-body);
    }
    .form-note {
      margin-top: 18px;
      font-size: 13px;
      line-height: 1.5;
      color: var(--color-mute);
    }
    .form-submit {
      margin-top: 24px;
      width: 100%;
      padding: 18px 24px;
      font-size: 14px;
      letter-spacing: 1.5px;
    }
    .form-foot {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      margin-top: 18px;
      font-size: 13px;
      color: var(--color-body);
    }
    .form-foot .dot { color: var(--color-success); }

    /* Success state */
    .form-success {
      text-align: center;
      padding: 24px 8px;
    }
    .form-success .check-mark {
      width: 64px; height: 64px;
      margin: 0 auto 24px;
      background: var(--color-yellow);
      color: var(--color-navy);
      display: grid; place-items: center;
    }
    .form-success .form-title {
      font-size: 26px;
      margin-bottom: 14px;
    }
    .form-success p {
      font-size: 16px;
      line-height: 1.65;
      color: var(--color-body);
      max-width: 460px;
      margin: 0 auto 28px;
    }

    /* ---------- Right column ---------- */
    .channels-col {
      display: flex;
      flex-direction: column;
      gap: 28px;
    }
    .col-eyebrow {
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 13px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--color-orange);
      margin: 0 0 16px;
    }

    .channel-list {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .channel-card {
      background: var(--color-white);
      border: 1px solid var(--color-border);
      padding: 20px 24px;
      display: flex;
      gap: 18px;
      align-items: flex-start;
      transition: border-color 150ms var(--ease-out);
    }
    .channel-card:hover { border-color: var(--color-navy); }
    .channel-icon {
      width: 40px; height: 40px;
      flex-shrink: 0;
      display: grid; place-items: center;
      background: var(--color-cream-deep);
      border: 1px solid var(--color-border);
    }
    .channel-icon--wa { color: #25D366; }
    .channel-icon--mail,
    .channel-icon--phone { color: var(--color-navy); }
    .channel-body { flex: 1; min-width: 0; }
    .channel-label {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 15px;
      color: var(--color-navy);
      letter-spacing: -0.005em;
      margin: 0 0 2px;
    }
    .channel-sub {
      font-size: 13px;
      color: var(--color-mute);
      margin: 0 0 10px;
      line-height: 1.4;
    }
    .channel-links {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }
    .channel-link {
      font-family: var(--font-body);
      font-size: 14px;
      color: var(--color-dark);
      border-bottom: 0;
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }
    .channel-link:hover { color: var(--color-orange); border-bottom-color: transparent; }
    .channel-link .tag {
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 11px;
      color: var(--color-mute);
      letter-spacing: 0.08em;
      text-transform: uppercase;
      min-width: 24px;
    }

    /* Office blocks */
    .col-divider {
      height: 1px;
      background: var(--color-divider);
      margin: 4px 0;
    }
    .offices-list {
      display: flex;
      flex-direction: column;
      gap: 24px;
    }
    .office-block {
      position: relative;
      padding-left: 18px;
      border-left: 3px solid var(--color-orange);
    }
    .office-chip {
      display: inline-block;
      background: var(--color-navy);
      color: var(--color-yellow);
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 11px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 5px 10px;
      margin-bottom: 12px;
    }
    .office-block .addr {
      font-size: 14px;
      line-height: 1.55;
      color: var(--color-dark);
      margin: 0 0 10px;
    }
    .office-block .meta {
      font-size: 13px;
      color: var(--color-body);
      margin: 0 0 4px;
      display: flex;
      gap: 6px;
      align-items: baseline;
    }
    .office-block .meta .lab {
      font-family: var(--font-body);
      font-weight: 700;
      font-size: 11px;
      color: var(--color-mute);
      letter-spacing: 0.08em;
      text-transform: uppercase;
      min-width: 60px;
    }

    /* Response time note */
    .response-box {
      background: var(--color-cream-deep);
      border: 1px solid var(--color-border);
      padding: 16px 20px;
      display: flex;
      gap: 12px;
      align-items: flex-start;
      font-size: 14px;
      line-height: 1.55;
      color: var(--color-body);
    }
    .response-box .icon {
      color: var(--color-navy);
      flex-shrink: 0;
      margin-top: 2px;
    }

    /* ---------- FAQ teaser ---------- */
    .faq-teaser {
      background: var(--color-cream-deep);
      padding: 96px 40px;
    }
    .faq-teaser-inner {
      max-width: 800px;
      margin: 0 auto;
    }
    .faq-teaser .section-head { margin-bottom: 40px; }
    .faq-teaser .section-head h2 {
      font-size: 38px;
    }
    .faq-teaser-cta {
      text-align: center;
      margin-top: 28px;
    }
    .faq-teaser-cta .ghost-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-family: var(--font-button);
      font-weight: 700;
      font-size: 13px;
      letter-spacing: 1px;
      text-transform: uppercase;
      color: var(--color-navy);
      border-bottom: 1px solid transparent;
      padding: 8px 0;
    }
    .faq-teaser-cta .ghost-link:hover { color: var(--color-orange); border-bottom-color: var(--color-orange); }

    /* ---------- Responsive ---------- */
    @media (max-width: 1100px) {
      .contact-hero-inner { padding: 56px 24px 48px; }
      .contact-hero h1 { font-size: 40px; }
      .contact-main {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 64px 24px;
      }
      .form-card { padding: 28px 24px; }
      .form-grid { grid-template-columns: 1fr; gap: 18px; }
      .faq-teaser { padding: 64px 24px; }
      .faq-teaser .section-head h2 { font-size: 28px; }
    }