/* ==========================================================
   Contact page (loads after style.css and reuses its variables)
   ========================================================== */

/* Hero */
.contact-hero {
  background: linear-gradient(90deg, rgba(28,28,28,0.93) 0%, rgba(28,28,28,0.75) 60%, rgba(28,28,28,0.5) 100%),
              url("images/hero.jpeg") center/cover no-repeat;
  padding: 110px 0 90px;
}
.contact-hero h1 .accent { color: var(--gold); }
.contact-hero p { margin-bottom: 0; }

/* Info + form */
.contact-page { background: var(--cream); }
.cp-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: start; }

.cp-info h2 { font-size: clamp(1.6rem, 2.8vw, 2.1rem); letter-spacing: -0.02em; margin: 6px 0 16px; }
.cp-lead { color: #555; font-size: 0.98rem; line-height: 1.7; margin-bottom: 28px; max-width: 480px; }

.cp-cards { display: grid; gap: 14px; margin-bottom: 28px; }
.cp-card {
  display: flex; align-items: center; gap: 18px;
  background: var(--white); border: 1px solid #e8e2d6; border-radius: var(--radius);
  padding: 18px 22px; box-shadow: var(--shadow-sm);
  transition: transform 0.25s var(--ease), border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.cp-card:hover { transform: translateY(-3px); border-color: var(--gold); box-shadow: 0 12px 26px rgba(0,0,0,0.08); }
.cp-card .icon {
  width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0;
  background: var(--black); border: 1.5px solid var(--gold);
  display: flex; align-items: center; justify-content: center;
  transition: background 0.25s var(--ease);
}
.cp-card .icon svg { width: 22px; height: 22px; fill: none; stroke: var(--gold); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: stroke 0.25s var(--ease); }
.cp-card:hover .icon { background: var(--gold); }
.cp-card:hover .icon svg { stroke: var(--black); }
.cp-card h4 { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--gold); margin-bottom: 3px; }
.cp-card p, .cp-card a { color: var(--black); font-size: 1rem; font-weight: var(--fw-sub); line-height: 1.5; word-break: break-word; }
.cp-card a:hover { color: var(--gold); }

.cp-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.cp-actions .btn { flex: 1 1 190px; }

/* Form card */
.cp-form { padding: 40px 36px; border-top: 4px solid var(--gold); }
.cp-form h3 { font-size: 1.45rem; letter-spacing: -0.01em; margin-bottom: 8px; }
.cp-form-lead { color: var(--muted); font-size: 0.94rem; margin-bottom: 24px; }
.cp-form .enq-grid textarea {
  width: 100%; box-sizing: border-box; padding: 13px 14px; border: 1px solid #d9d3c7; border-radius: 6px;
  font-family: var(--font); font-size: 0.95rem; color: var(--text); background: #fff; resize: vertical; min-height: 110px;
}
.cp-form .enq-grid textarea:focus { outline: 2px solid var(--gold); outline-offset: 1px; border-color: var(--gold); }
.cp-form .enq-grid select:invalid { color: #888; }
.cp-form .btn-icon { cursor: pointer; border: 2px solid transparent; font-size: 0.95rem; }

/* Map */
.map-section { background: var(--cream); padding: 0 0 80px; }
.map-wrap { position: relative; line-height: 0; }
.map-wrap iframe { display: block; width: 100%; height: 450px; border: 0; border-radius: 12px; box-shadow: var(--shadow-md); }
.map-badge {
  position: absolute; left: 24px; top: 50%; transform: translateY(-50%);
  background: var(--black); color: #fff; border-radius: var(--radius);
  box-sizing: border-box; padding: 26px 28px; width: min(320px, 80%); line-height: var(--lh-body);
  border-top: 4px solid var(--gold); box-shadow: var(--shadow-md);
}
.map-badge h4 { color: var(--gold-light); font-size: 1.1rem; margin-bottom: 6px; }
.map-badge p { color: #ccc; font-size: 0.9rem; line-height: 1.6; margin-bottom: 18px; }
.map-badge .btn { padding: 12px 24px; font-size: 0.86rem; }

/* Responsive */
@media (max-width: 900px) {
  .cp-grid { grid-template-columns: 1fr; gap: 40px; }
  .contact-hero { padding: 90px 0 70px; }
  .map-section { padding-bottom: 60px; }
  /* Tablet and phone: the studio card sits under the map instead of covering it */
  .map-badge { position: static; transform: none; width: 100%; margin-top: 14px; border-radius: 12px; }
}
@media (max-width: 600px) {
  .cp-form { padding: 28px 20px; }
  .cp-card { padding: 16px 16px; gap: 14px; }
  .map-wrap iframe { height: 380px; }
}
