*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
 
    :root {
      --primary:     #1a2e5e;
      --primary-dark:#111f42;
      --primary-mid: #243f80;
      --accent:      #c9a96e;
      --accent-light:#e8d5b0;
      --white:       #ffffff;
      --light-bg:    #f4f6fb;
      --muted:       #6b7a99;
      --border:      rgba(26,46,94,0.12);
      --text:        #1a2e5e;
      --radius-sm:   8px;
      --radius-md:   14px;
      --radius-lg:   20px;
    }
 
    body {
      font-family: 'DM Sans', sans-serif;
      background: var(--light-bg);
      color: var(--text);
    }

    
 
    /* ── SECTION ── */
    .contact-section {
      padding: 90px 40px;
      max-width: 1000px;
      margin: 0 auto;
    }
 
    /* ── HEADER ── */
    .section-tag {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: #db2020;
      margin-bottom: 16px;
    }
    .section-tag::before {
      content: '';
      display: block;
      width: 24px;
      height: 1.5px;
      background: var(--accent);
    }
    .section-title {
      font-family: 'Playfair Display', serif;
      font-size: 42px;
      font-weight: 400;
      color: var(--primary);
      line-height: 1.2;
      margin-bottom: 48px;
    }
    .section-title span {
      color: var(--accent);
    }
 
    /* ── GRID ── */
    .contact-grid {
      display: grid;
      grid-template-columns: 1fr 1.1fr;
      gap: 40px;
      align-items: start;
    }
 
    /* ── LEFT: INFO ── */
    .info-card {
      background: var(--primary);
      border-radius: var(--radius-lg);
      padding: 40px 36px;
      display: flex;
      flex-direction: column;
      gap: 32px;
    }
 
    .info-item {
      display: flex;
      align-items: flex-start;
      gap: 18px;
    }
 
    .icon-wrap {
      width: 44px;
      height: 44px;
      border-radius: var(--radius-sm);
      background: rgba(255,255,255,0.1);
      border: 1px solid rgba(255,255,255,0.15);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: background 0.2s;
    }
    .icon-wrap:hover { background: rgba(255,255,255,0.18); }
    .icon-wrap svg {
      width: 18px;
      height: 18px;
      stroke: var(--accent);
      fill: none;
      stroke-width: 1.6;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
 
    .info-label {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: rgba(255,255,255,0.45);
      margin-bottom: 5px;
    }
    .info-value {
      font-size: 15px;
      color: rgba(255,255,255,0.92);
      line-height: 1.55;
    }
 
    .info-divider {
      width: 100%;
      height: 1px;
      background: rgba(255,255,255,0.1);
    }
 
  
    /* ── RIGHT: MAP ── */
    .map-card {
      border-radius: var(--radius-lg);
      border: 1px solid var(--border);
      overflow: hidden;
      background: var(--white);
    }
 
    .map-area {
      height: 300px;
      position: relative;
      background: #e9e5de;
      overflow: hidden;
    }
 
    .map-area svg {
      width: 100%;
      height: 100%;
    }
 
    /* map overlay subtle top fade */
    .map-area::after {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 40px;
      background: linear-gradient(to bottom, rgba(233,229,222,0.5), transparent);
      pointer-events: none;
    }
 
    .map-footer {
      padding: 18px 20px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-top: 1px solid var(--border);
      background: var(--white);
    }
 
    .map-addr-label {
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 3px;
    }
    .map-addr-value {
      font-size: 14px;
      color: var(--primary);
      font-weight: 500;
    }
 
    .directions-btn {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 9px 18px;
      border-radius: var(--radius-sm);
      background: var(--primary);
      color: var(--white);
      font-size: 13px;
      font-weight: 500;
      font-family: 'DM Sans', sans-serif;
      text-decoration: none;
      border: none;
      cursor: pointer;
      transition: background 0.2s;
      letter-spacing: 0.3px;
    }
    .directions-btn:hover { background: var(--primary-mid); }
    .directions-btn svg {
      width: 14px;
      height: 14px;
      stroke: var(--accent);
      fill: none;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
 
    /* ── RESPONSIVE ── */
    @media (max-width: 680px) {
      .contact-section { padding: 60px 20px; }
      .contact-grid { grid-template-columns: 1fr; gap: 28px; }
      .section-title { font-size: 30px; }
      .info-card { padding: 28px 24px; }
    }