.s-contact-page {
  position: relative;
  background: var(--c-bg);
  overflow: hidden;
}

.s-contact-page::before {
  content: "";
  position: absolute;
  inset-block-start: -180px;
  inset-inline-end: -160px;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--c-primary) 14%, transparent), transparent 70%);
  pointer-events: none;
}

.s-contact-page__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.9fr);
  gap: 32px;
  align-items: start;
}

/* ---------- العنوان ---------- */
.s-contact-page__intro {
  margin-block-end: 24px;
}

.s-contact-page__title {
  margin: 8px 0 0;
  font-family: var(--font-head);
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--c-text);
  text-wrap: balance;
}

/* ---------- النموذج ---------- */
.s-contact-page__form-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: clamp(20px, 3vw, 32px);
}

.s-contact-page__form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.s-contact-page__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.s-contact-page__field.full {
  grid-column: 1 / -1;
}

.s-contact-page__field label {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--c-text);
}

.s-contact-page__field input,
.s-contact-page__field textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  font: inherit;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.7;
  color: var(--c-text);
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.s-contact-page__field textarea {
  min-height: 140px;
  resize: vertical;
}

.s-contact-page__field input::placeholder,
.s-contact-page__field textarea::placeholder {
  color: var(--c-muted);
  opacity: 1;
}

.s-contact-page__field input:focus,
.s-contact-page__field textarea:focus {
  outline: none;
  background: var(--c-surface);
  border-color: var(--c-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-primary) 18%, transparent);
}

.s-contact-page__submit {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 52px;
  margin-block-start: 4px;
  justify-content: center;
  gap: 8px;
}

.s-contact-page__submit svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}

.s-contact-page__submit:hover svg {
  transform: translateX(3px);
}

.s-contact-page__msg {
  grid-column: 1 / -1;
  margin: 0;
  padding: 12px 14px;
  font-size: 14px;
  line-height: 1.7;
  border-radius: var(--radius);
}

.s-contact-page__msg[data-form-ok] {
  color: var(--c-secondary);
  background: color-mix(in srgb, var(--c-primary) 10%, var(--c-surface));
  border: 1px solid color-mix(in srgb, var(--c-primary) 32%, var(--c-surface));
}

.s-contact-page__msg[data-form-err] {
  color: var(--c-text);
  background: color-mix(in srgb, var(--c-accent) 22%, var(--c-surface));
  border: 1px solid color-mix(in srgb, var(--c-accent) 55%, var(--c-surface));
}

/* ---------- الشريط الجانبي ---------- */
.s-contact-page__aside {
  display: grid;
  gap: 20px;
}

.s-contact-page__info {
  position: relative;
  overflow: hidden;
  padding: clamp(20px, 3vw, 32px);
  background: var(--c-secondary);
  color: var(--c-on-primary);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}

.s-contact-page__info::after {
  content: "";
  position: absolute;
  inset-block-end: -90px;
  inset-inline-end: -70px;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--c-primary) 60%, transparent);
  filter: blur(46px);
  opacity: 0.55;
  pointer-events: none;
}

.s-contact-page__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  z-index: 1;
}

.s-contact-page__item + .s-contact-page__item {
  margin-block-start: 20px;
  padding-block-start: 20px;
  border-block-start: 1px solid color-mix(in srgb, var(--c-on-primary) 18%, transparent);
}

.s-contact-page__info .icon-circle {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  color: var(--c-accent);
  background: color-mix(in srgb, var(--c-on-primary) 12%, transparent);
}

.s-contact-page__info .icon-circle svg {
  width: 20px;
  height: 20px;
}

.s-contact-page__label {
  margin: 0 0 6px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--c-on-primary) 68%, transparent);
}

.s-contact-page__value {
  display: inline-block;
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  color: var(--c-on-primary);
  text-decoration: none;
  word-break: break-word;
  transition: color 0.18s ease;
}

.s-contact-page__value:hover,
.s-contact-page__value:focus-visible {
  color: var(--c-accent);
}

.s-contact-page__address {
  margin: 0;
  font-style: normal;
  font-size: 15px;
  line-height: 1.75;
  color: color-mix(in srgb, var(--c-on-primary) 82%, transparent);
}

/* ---------- الخريطة ---------- */
.s-contact-page__map {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  background: var(--c-tint);
  box-shadow: var(--shadow-sm);
}

.s-contact-page__map img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.s-contact-page__map::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, color-mix(in srgb, var(--c-secondary) 42%, transparent), transparent 58%);
  pointer-events: none;
}

/* ---------- استجابة ---------- */
@media (max-width: 900px) {
  .s-contact-page__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .s-contact-page__map {
    aspect-ratio: 16 / 10;
  }
}

@media (max-width: 600px) {
  .s-contact-page__form {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .s-contact-page__title {
    font-size: clamp(25px, 7vw, 32px);
  }

  .s-contact-page__form-card,
  .s-contact-page__info {
    padding: 20px;
  }

  .s-contact-page__map {
    aspect-ratio: 4 / 3;
  }

  .s-contact-page__submit,
  .s-contact-page__field input,
  .s-contact-page__field textarea {
    min-height: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .s-contact-page__submit svg {
    transition: none;
  }
}
