:root {
  --ng-premium-bg: #f6f8fb;
  --ng-premium-surface: #ffffff;
  --ng-premium-surface-alt: #f3f6fa;
  --ng-premium-text: #11243a;
  --ng-premium-muted: #617086;
  --ng-premium-border: #dbe4ef;
  --ng-premium-primary: #0e3a78;
  --ng-premium-primary-2: #164d99;
  --ng-premium-accent: #ff6a4d;
  --ng-premium-shadow: 0 10px 30px rgba(11, 29, 52, 0.1);
  --ng-premium-shadow-hover: 0 18px 36px rgba(11, 29, 52, 0.16);
  --ng-premium-radius: 16px;
  --ng-premium-radius-sm: 12px;
}

body {
  color: var(--ng-premium-text);
  background-color: var(--ng-premium-bg);
  font-family: "Open Sans", "Segoe UI", sans-serif;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
.heading-font {
  font-family: "Lato", "Open Sans", sans-serif;
  letter-spacing: 0.01em;
  color: #0f2844;
}

a {
  transition: color 0.2s ease;
}

a:hover {
  color: var(--ng-premium-primary-2);
}

.site-main,
.elementor-section {
  position: relative;
}

.es-listing,
.es-property-section,
.es-single__header,
.es-magnific-popup,
.elementor-popup-modal .dialog-widget-content {
  border-radius: var(--ng-premium-radius);
}

.es-listing {
  background: var(--ng-premium-surface);
  border: 1px solid var(--ng-premium-border);
  box-shadow: var(--ng-premium-shadow);
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.es-listing:hover {
  transform: translateY(-4px);
  border-color: #c5d4e7;
  box-shadow: var(--ng-premium-shadow-hover);
}

.es-listing__image {
  overflow: hidden;
}

.es-listing__image .es-listing__image__img {
  transition: transform 0.45s ease, filter 0.35s ease;
}

.es-listing:hover .es-listing__image .es-listing__image__img {
  transform: scale(1.03);
  filter: saturate(1.05);
}

.es-listing__content {
  background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
}

.es-price-container {
  background: var(--ng-premium-surface-alt);
  border: 1px solid var(--ng-premium-border);
  border-radius: 14px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.es-price,
.es-single__header-right .es-price {
  font-family: "Lato", "Open Sans", sans-serif;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #0f2b4d;
}

.es-badge {
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(13, 33, 58, 0.22);
}

.es-gallery__image,
.es-gallery__thumb-inner {
  border-radius: var(--ng-premium-radius-sm);
}

.es-gallery__thumb-inner {
  border: 1px solid rgba(219, 228, 239, 0.9);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.es-gallery__thumb-inner:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(11, 29, 52, 0.18);
}

.es-property-section {
  background: var(--ng-premium-surface);
  border: 1px solid var(--ng-premium-border);
  box-shadow: var(--ng-premium-shadow);
}

.es-property-section__title {
  color: #0f2b4d;
}

.es-btn--request-info,
.es-btn.es-btn--primary,
.elementor-button,
.elementor-button[type="submit"],
.elementor-field-type-submit .elementor-button {
  border: 1px solid #143e79;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--ng-premium-primary) 0%, var(--ng-premium-primary-2) 100%);
  color: #ffffff;
  box-shadow: 0 10px 20px rgba(14, 58, 120, 0.28);
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.es-btn--request-info:hover,
.es-btn.es-btn--primary:hover,
.elementor-button:hover,
.elementor-button[type="submit"]:hover,
.elementor-field-type-submit .elementor-button:hover {
  transform: translateY(-2px);
  filter: brightness(1.04);
  box-shadow: 0 14px 24px rgba(14, 58, 120, 0.34);
}

.es-btn.es-btn--default:not(.es-btn--icon):not(.es-btn--primary) {
  border-radius: 999px;
}

.es-magnific-popup,
.elementor-popup-modal .dialog-widget-content {
  border: 1px solid var(--ng-premium-border);
  box-shadow: 0 24px 60px rgba(10, 25, 45, 0.35);
}

.mfp-bg,
.dialog-lightbox-widget {
  backdrop-filter: blur(3px);
}

.elementor-form .elementor-field-group input,
.elementor-form .elementor-field-group textarea,
.elementor-form .elementor-field-group select,
.es-field input,
.es-field textarea,
.es-field select {
  border: 1px solid #c8d4e3;
  border-radius: 12px;
  background: #f8fbff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.elementor-form .elementor-field-group input:focus,
.elementor-form .elementor-field-group textarea:focus,
.elementor-form .elementor-field-group select:focus,
.es-field input:focus,
.es-field textarea:focus,
.es-field select:focus {
  border-color: #3f6fae;
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(32, 86, 163, 0.16);
  outline: none;
}

.ng-mandat-display .ng-mandat-value,
.ng-mandat-inline-value {
  border: 1px solid #cbd7e5 !important;
  background: linear-gradient(180deg, #f5f9ff 0%, #edf4ff 100%) !important;
  border-radius: 12px !important;
  font-weight: 700;
  color: #15345d;
}

@media (max-width: 768px) {
  .es-listing:hover {
    transform: none;
  }

  .es-btn--request-info,
  .es-btn.es-btn--primary,
  .elementor-button,
  .elementor-field-type-submit .elementor-button {
    box-shadow: 0 8px 18px rgba(14, 58, 120, 0.24);
  }
}
