:root {
  --m-map-green-600: #1f9e7d;
  --m-map-green-050: #e8f8f4;
  --m-map-ink-900: #24343a;
  --m-map-ink-700: #394650;
  --m-map-ink-500: #566875;
  --m-map-border: #e8eef0;
  --m-map-shadow-sm: 0 4px 16px rgba(36, 52, 58, 0.06);
  --m-map-shadow-md: 0 14px 40px rgba(36, 52, 58, 0.12);
}

.m-home-map,
.m-home-map * { box-sizing: border-box; }

.m-home-map { max-width: 1152px; margin: 0 auto; padding: 48px 16px; direction: rtl; color: var(--m-map-ink-700); font-family: "Cairo", system-ui, sans-serif; }
.m-home-map__panel { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); overflow: hidden; border: 1px solid var(--m-map-border); border-radius: 28px; background: #fff; box-shadow: var(--m-map-shadow-sm); }
.m-home-map__preview { min-height: 360px; position: relative; display: grid; place-items: center; padding: 24px; background-color: #f2efe7; background-image: radial-gradient(circle at 28% 68%, rgba(49,200,160,.18) 0 4px, transparent 5px), radial-gradient(circle at 62% 34%, rgba(196,137,58,.18) 0 4px, transparent 5px), linear-gradient(27deg, transparent 46%, rgba(49,200,160,.18) 47% 48%, transparent 49%), linear-gradient(#e6e1d6 1px, transparent 1px), linear-gradient(90deg, #e6e1d6 1px, transparent 1px); background-size: auto, auto, auto, 44px 44px, 44px 44px; }
.m-home-map__preview::after { content: ""; width: min(68%, 430px); aspect-ratio: 1.65; border: 2px solid rgba(31,158,125,.35); border-radius: 58% 42% 51% 49% / 48% 46% 54% 52%; transform: rotate(-8deg); }
.m-home-map__pin { position: absolute; width: 38px; height: 46px; display: grid; place-items: center; border-radius: 19px 19px 19px 5px; transform: rotate(-45deg); color: #fff; background: var(--m-map-green-600); box-shadow: var(--m-map-shadow-md); }
.m-home-map__pin span { transform: rotate(45deg); font-weight: 900; }
.m-home-map__content { padding: clamp(24px, 4vw, 42px); align-self: center; }
.m-home-map__content h2 { margin: 0; color: var(--m-map-ink-900); font-size: clamp(26px, 3vw, 36px); }
.m-home-map__content > p { margin: 10px 0 20px; color: var(--m-map-ink-500); line-height: 1.9; }
.m-home-map__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 18px; }
.m-home-map__stat { padding: 13px; border-radius: 14px; background: var(--m-map-green-050); }
.m-home-map__stat strong { display: block; color: var(--m-map-green-600); font-size: 22px; }
.m-home-map__stat span { font-size: 11px; color: var(--m-map-ink-500); }
.m-home-map__featured { margin: 0 0 18px; padding: 0; list-style: none; display: grid; gap: 7px; }
.m-home-map__featured li { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 13px; }
.m-home-map__featured li::before { content: ""; width: 9px; height: 9px; flex: 0 0 auto; border: 2px solid var(--m-map-green-600); border-radius: 3px; }
.m-home-map__field label { display: block; margin-bottom: 5px; color: var(--m-map-ink-500); font-size: 12px; font-weight: 700; }
.m-home-map__field select { width: 100%; min-height: 44px; margin-bottom: 12px; padding: 8px 12px; border: 1px solid #d9e3e5; border-radius: 10px; color: var(--m-map-ink-700); background: #fff; font: inherit; }
.m-home-map__field select:focus { outline: 3px solid rgba(49, 200, 160, .22); border-color: #0d745d; }
.m-home-map .m-map-button { min-height: 44px; padding: 9px 14px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--m-map-green-600); border-radius: 12px; color: #fff; background: var(--m-map-green-600); box-shadow: var(--m-map-shadow-sm); text-decoration: none; font-weight: 800; }
.m-home-map .m-map-button:hover { background: #177a62; }
.m-home-map .m-map-button:focus-visible { outline: 3px solid rgba(49, 200, 160, .34); outline-offset: 2px; }

@media (max-width: 820px) {
  .m-home-map__panel { grid-template-columns: 1fr; }
  .m-home-map__preview { min-height: 260px; }
}

@media (max-width: 520px) {
  .m-home-map { padding-inline: 12px; }
  .m-home-map__content { padding: 24px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .m-home-map *, .m-home-map *::before, .m-home-map *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
