/* Sprint 3 UI: contact, form UX, accessibility, responsive polish */

:root {
  --codex-focus-ring: rgba(224, 33, 33, 0.32);
  --codex-form-border: #d1d5db;
  --codex-form-border-hover: #9ca3af;
  --codex-form-bg: #ffffff;
  --codex-form-text: #111111;
}

/* Anchor offsets for sticky header navigation */
#dienstleistungen,
#ueber_uns,
#kontakt,
#angebot {
  scroll-margin-top: 108px;
}

/* Contact section structure */
#gspb_row-id-gspb-956C-hEtKGXywJNZ7Odwc {
  padding-top: clamp(56px, 8vw, 80px) !important;
  padding-bottom: clamp(56px, 8vw, 80px) !important;
}

#gspb_row-id-gspb-956C-hEtKGXywJNZ7Odwc > .gspb_row__content {
  row-gap: 28px;
}

#gspb_heading-id-gspb-TMcEwPiVn7G8c-Ly0v5wh {
  font-size: clamp(1.95rem, 4vw, 2.5rem) !important;
  line-height: 1.2 !important;
}

#gspb_col-id-gsbp-1f033e0 {
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow: 0 16px 32px rgba(2, 6, 23, 0.22);
}

#gspb_container-id-gsbp-45a5af2 {
  width: 100%;
}

/* Fluent Form styling */
#fluentform_1 .ff-el-group {
  margin-bottom: 16px;
}

#fluentform_1 .ff-el-input--label label {
  font-size: 14px;
  font-weight: 600;
  color: var(--codex-form-text);
  margin-bottom: 6px;
}

#fluentform_1 .ff-el-form-control {
  border: 1px solid var(--codex-form-border);
  border-radius: 12px;
  background: var(--codex-form-bg);
  color: var(--codex-form-text);
  min-height: 48px;
  padding: 12px 14px;
  font-size: 16px;
  line-height: 1.4;
  box-shadow: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#fluentform_1 textarea.ff-el-form-control {
  min-height: 120px;
  resize: vertical;
}

#fluentform_1 .ff-el-form-control:hover {
  border-color: var(--codex-form-border-hover);
}

#fluentform_1 .ff-el-form-control:focus,
#fluentform_1 .ff-el-form-control:focus-visible {
  border-color: var(--wp--preset--color--primary);
  box-shadow: 0 0 0 4px var(--codex-focus-ring);
  outline: none;
}

#fluentform_1 .ff-btn-submit {
  border-radius: 999px;
  border: 1px solid var(--wp--preset--color--primary);
  background: var(--wp--preset--color--primary);
  color: #fff;
  padding: 14px 28px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1;
  min-height: 48px;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

#fluentform_1 .ff-btn-submit:hover {
  background: #c81c1c;
  border-color: #c81c1c;
  transform: translateY(-1px);
}

#fluentform_1 .ff-btn-submit:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px var(--codex-focus-ring);
}

#fluentform_1 .ff-el-is-error .ff-el-form-control,
#fluentform_1 .ff-el-group.has-error .ff-el-form-control {
  border-color: #ef4444;
}

#fluentform_1 .text-danger,
#fluentform_1 .ff-el-is-error .error {
  color: #b91c1c;
  font-size: 13px;
}

/* Global keyboard focus visibility */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--wp--preset--color--primary);
  outline-offset: 2px;
}

/* Reduce animation noise for users preferring reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  [data-aos],
  [data-gs-aos] {
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (max-width: 991.98px) {
  #gspb_col-id-gsbp-1f033e0 {
    padding: 28px !important;
  }
}

@media (max-width: 767.98px) {
  #dienstleistungen,
  #ueber_uns,
  #kontakt,
  #angebot {
    scroll-margin-top: 92px;
  }

  #gspb_col-id-gsbp-1f033e0 {
    padding: 22px !important;
  }

  #fluentform_1 .ff-btn-submit {
    width: 100%;
    justify-content: center;
  }
}

/* Mobile visual pass (Mar 2026): stacking + overlap fixes */
@media (max-width: 991.98px) {
  #gspb_row-id-gsbp-4533736 .gspb_shape-divider-container {
    display: none !important;
  }

  #gspb_row-id-gsbp-4533736 > .gspb_row__content,
  #gspb_row-id-gsbp-b358605f-c280 > .gspb_row__content {
    row-gap: 20px;
  }

  #gspb_row-id-gsbp-4533736 .gspb_row__col--6,
  #gspb_row-id-gsbp-4533736 .gspb_row__col--md-12,
  #gspb_row-id-gsbp-b358605f-c280 .gspb_row__col--6,
  #gspb_row-id-gsbp-b358605f-c280 .gspb_row__col--md-12,
  #gspb_row-id-gspb-956C-hEtKGXywJNZ7Odwc .gspb_row__col--6,
  #gspb_row-id-gspb-956C-hEtKGXywJNZ7Odwc .gspb_row__col--sm-12 {
    width: 100% !important;
  }

  #gspb_heading-id-gsbp-f02541cc-cd97 {
    margin-left: 0 !important;
    margin-bottom: 34px !important;
    font-size: clamp(1.9rem, 6vw, 2.2rem) !important;
    line-height: 1.25 !important;
  }

  #gspb_svgBox-id-gsbp-4156bc17-6423 {
    margin-left: 0 !important;
  }

  #gspb_container-id-gsbp-85e97968-5799,
  #gspb_container-id-gsbp-78659b5a-2886,
  #gspb_container-id-gsbp-6c827595-b7e4,
  #gspb_container-id-gsbp-df42409,
  #gspb_container-id-gsbp-690b7c1 {
    padding: 20px 16px !important;
  }

  body.gspb-bodyfront #gspb_container-id-gsbp-93bf089.gspb_container {
    max-width: none !important;
  }
}

@media (max-width: 767.98px) {
  #gspb_row-id-gsbp-b358605f-c280 {
    --gs-row-column-padding: 0 0 12px 0;
  }

  #gspb_button-id-gsbp-2e8d9d2 > .gspb-buttonbox,
  #gspb_button-id-gsbp-3f83ba73-92fc > .gspb-buttonbox {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

/* Mobile animation stabilization to avoid partially hidden blocks */
@media (max-width: 991.98px) {
  [data-aos],
  [data-gs-aos],
  .aos-init {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Guardrail: prevent tiny horizontal overflow on mobile */
@media (max-width: 991.98px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  #gspb_row-id-gsbp-4533736,
  #gspb_row-id-gsbp-b358605f-c280,
  #gspb_row-id-gspb-956C-hEtKGXywJNZ7Odwc {
    overflow: hidden;
  }
}

/* Limburg landing page (page-id-537) */
.page-id-537 .limburg-gs-hero {
  position: relative;
  background: #111111 url('https://umzug.local/wp-content/uploads/2024/10/The-lion-is-watching-the-city-of-Limburg.png') center center / cover no-repeat !important;
  padding-top: 120px !important;
  padding-bottom: 120px !important;
}

.page-id-537 .limburg-gs-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(8, 14, 24, 0.78) 0%, rgba(8, 14, 24, 0.56) 52%, rgba(8, 14, 24, 0.28) 100%);
  pointer-events: none;
}

.page-id-537 .limburg-gs-hero > .gspb_row__content {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
}

.page-id-537 .limburg-gs-hero .gspb_heading,
.page-id-537 .limburg-gs-hero p,
.page-id-537 .limburg-gs-hero a {
  color: #ffffff !important;
}

.page-id-537 .limburg-gs-section {
  padding-top: 72px !important;
  padding-bottom: 72px !important;
}

.page-id-537 .limburg-gs-section .gspb_row__content {
  max-width: 1200px;
}

.page-id-537 .limburg-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
  height: 100%;
  padding: 24px;
}

.page-id-537 .limburg-card h3 {
  margin: 0 0 10px 0;
}

.page-id-537 .limburg-badge {
  display: inline-block;
  background: #fee2e2;
  color: #991b1b;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 14px;
}

.page-id-537 .limburg-dark {
  background: #111827;
  color: #ffffff;
  border-radius: 18px;
  padding: 28px;
}

.page-id-537 .limburg-dark h2,
.page-id-537 .limburg-dark p,
.page-id-537 .limburg-dark li {
  color: #ffffff;
}

.page-id-537 .limburg-steps .limburg-card {
  border-left: 4px solid #e02121;
}

.page-id-537 .limburg-faq details {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 14px 16px;
  background: #ffffff;
  margin-bottom: 12px;
}

.page-id-537 .limburg-faq summary {
  font-weight: 600;
  cursor: pointer;
}

@media (max-width: 991.98px) {
  .page-id-537 .limburg-gs-section {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  .page-id-537 .limburg-gs-hero {
    padding-top: 90px !important;
    padding-bottom: 90px !important;
  }
}
