    /* ── Contact page (scoped additions; uses site design tokens) ── */
    .contact-intro {
      padding: clamp(3.5rem, 7vw, 6rem) 0 clamp(2rem, 4vw, 3rem);
    }
    .contact-intro .eyebrow { margin-bottom: 1.1rem; }
    .contact-intro h1 {
      margin: 0 0 1.25rem;
      font-family: "Cormorant Garamond", Georgia, serif;
      font-weight: 600;
      line-height: 1.0;
      font-size: clamp(2.8rem, 6vw, 4.6rem);
      letter-spacing: -0.01em;
    }
    .contact-intro .lead {
      max-width: 54ch;
      margin: 0;
      font-size: clamp(1.05rem, 1.6vw, 1.25rem);
      line-height: 1.7;
      color: var(--muted);
    }

    .contact-section { padding: 0 0 clamp(4rem, 8vw, 7rem); }

    .contact-grid {
      display: grid;
      grid-template-columns: 0.9fr 1.1fr;
      gap: clamp(2rem, 4vw, 3.5rem);
      align-items: stretch;
    }

    /* Detail cards */
    .contact-details {
      display: flex;
      flex-direction: column;
      gap: 1.1rem;
    }
    .contact-card {
      display: flex;
      gap: 1.25rem;
      align-items: flex-start;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 1.25rem;
      padding: 1.6rem 1.75rem;
      box-shadow: var(--shadow);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    .contact-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 22px 50px rgba(52, 39, 28, 0.12);
    }
    .contact-card .icon-circle {
      font-size: 1.25rem;
      font-style: normal;
    }
    .contact-card .c-body { flex: 1; }
    .contact-card h3 {
      margin: 0 0 0.4rem;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--accent-dark);
    }
    .contact-card .c-value {
      margin: 0;
      font-family: "Cormorant Garamond", Georgia, serif;
      font-size: clamp(1.3rem, 2vw, 1.7rem);
      line-height: 1.25;
      color: var(--text);
    }
    .contact-card .c-value a { color: inherit; transition: color 0.18s ease; }
    .contact-card .c-value a:hover { color: var(--accent-dark); }
    .contact-card .c-note {
      margin: 0.45rem 0 0;
      font-size: 0.92rem;
      color: var(--muted);
    }

    /* Map spot */
    .contact-map {
      position: relative;
      border-radius: 1.5rem;
      overflow: hidden;
      border: 1px solid var(--border);
      box-shadow: var(--shadow);
      min-height: 420px;
      background:
        repeating-linear-gradient(45deg, rgba(190,155,116,0.10) 0 16px, rgba(190,155,116,0.04) 16px 32px),
        var(--surface);
    }
    .contact-map img,
    .contact-map iframe {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      border: 0;
    }
    .contact-map .map-hint {
      position: absolute;
      inset: 0;
      z-index: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.4rem;
      text-align: center;
      color: var(--accent-dark);
      pointer-events: none;
    }
    .contact-map .map-hint .pin { font-size: 2.4rem; line-height: 1; }
    .contact-map .map-hint span { font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; }
    .contact-map .map-cta {
      position: absolute;
      left: 1.25rem;
      bottom: 1.25rem;
      z-index: 2;
    }

    @media (max-width: 860px) {
      .contact-grid { grid-template-columns: 1fr; }
      .contact-map { min-height: 320px; order: -1; }
    }
