.contact-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr);
  gap: var(--space-6);
  align-items: center;
}

.contact-hero-intro {
  max-width: 40rem;
}

.contact-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-4);
  margin-bottom: var(--space-4);
}

.contact-hero-card {
  align-self: stretch;
}

.contact-hero-card-title {
  margin-bottom: var(--space-3);
}

.contact-quick-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-4);
}

.contact-quick-item dt {
  font-size: var(--font-size-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-silver-dark);
  margin-bottom: var(--space-1);
}

.contact-quick-item dd {
  margin: 0;
  font-weight: 600;
}

.contact-info-grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 1.4fr);
  gap: var(--space-8);
  align-items: flex-start;
}

.contact-info-cards {
  margin-top: var(--space-4);
}

.contact-address-note {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.opening-hours-grid {
  display: grid;
  gap: var(--space-2);
  margin-top: var(--space-3);
  margin-bottom: var(--space-3);
}

.opening-hours-grid div {
  display: flex;
  justify-content: space-between;
  gap: var(--space-2);
  font-size: var(--font-size-sm);
}

.opening-day {
  font-weight: 500;
}

.opening-time {
  color: var(--color-text-muted);
}

.opening-note {
  font-size: var(--font-size-xs);
}

.contact-details-list {
  display: grid;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.contact-details-list div {
  display: grid;
  gap: var(--space-1);
}

.contact-details-list dt {
  font-size: var(--font-size-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-silver-dark);
}

.contact-details-list dd {
  margin: 0;
}

.contact-support-aside {
  padding: var(--space-4);
  border-radius: var(--radius-xl);
  background: radial-gradient(circle at top left, var(--color-primary-soft) 0, #ffffff 60%);
  box-shadow: var(--shadow-sm);
}

.contact-support-links {
  list-style: none;
  margin-top: var(--space-3);
  margin-bottom: var(--space-4);
}

.contact-support-links li + li {
  margin-top: var(--space-2);
}

.contact-support-cta {
  width: 100%;
  justify-content: center;
}

.contact-form-layout {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.3fr);
  gap: var(--space-8);
  align-items: flex-start;
}

.contact-form {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--space-3);
}

.contact-form-footer {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: var(--space-2);
}

.contact-consent {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  font-size: var(--font-size-sm);
}

.contact-consent input[type="checkbox"] {
  margin-top: 0.2rem;
}

.contact-form-status {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  min-height: 1.2em;
}

.contact-help-sidebar {
  padding: var(--space-4);
  border-radius: var(--radius-xl);
  background-color: #ffffff;
  box-shadow: var(--shadow-sm);
}

.contact-help-list {
  list-style: none;
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-3);
  font-size: var(--font-size-sm);
}

.route-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr);
  gap: var(--space-8);
  align-items: flex-start;
}

.route-grid {
  margin-top: var(--space-3);
}

.route-aside {
  padding: var(--space-4);
  border-radius: var(--radius-xl);
  background-color: var(--gray-50);
}

.route-address {
  font-weight: 600;
  margin-bottom: var(--space-3);
}

.route-cta {
  margin-top: var(--space-3);
}

.route-list {
  list-style: disc;
  padding-left: 1.25rem;
  font-size: var(--font-size-sm);
}

.support-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.2fr);
  gap: var(--space-8);
  align-items: flex-start;
}

.support-card {
  height: 100%;
}

.support-aside {
  padding: var(--space-4);
  border-radius: var(--radius-xl);
  background-color: #ffffff;
  box-shadow: var(--shadow-sm);
}

.support-list {
  list-style: disc;
  padding-left: 1.25rem;
  margin-top: var(--space-3);
  font-size: var(--font-size-sm);
}

.support-tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.support-tags li {
  padding: 0.25rem 0.75rem;
  border-radius: var(--radius-pill);
  border: 1px solid var(--gray-200);
  font-size: var(--font-size-xs);
}

.workshop-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.1fr) minmax(0, 1.3fr);
  gap: var(--space-8);
  align-items: flex-start;
}

.workshop-steps {
  list-style: decimal;
  padding-left: 1.5rem;
  margin-top: var(--space-3);
  margin-bottom: var(--space-3);
  font-size: var(--font-size-sm);
}

.workshop-steps li + li {
  margin-top: var(--space-2);
}

.workshop-cta-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-3);
}

.workshop-aside {
  padding: var(--space-4);
  border-radius: var(--radius-xl);
  background-color: var(--gray-50);
}

.returns-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.3fr);
  gap: var(--space-8);
  align-items: flex-start;
}

.returns-card {
  height: 100%;
}

.returns-list {
  list-style: disc;
  padding-left: 1.25rem;
  margin-top: var(--space-3);
  font-size: var(--font-size-sm);
}

.returns-footer-text {
  margin-top: var(--space-4);
  font-size: var(--font-size-sm);
}

.returns-aside {
  padding: var(--space-4);
  border-radius: var(--radius-xl);
  background-color: #ffffff;
  box-shadow: var(--shadow-sm);
}

.newsletter-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.3fr);
  gap: var(--space-8);
  align-items: flex-start;
}

.newsletter-form {
  margin-top: var(--space-3);
  display: grid;
  gap: var(--space-3);
}

.newsletter-input-row {
  align-items: center;
}

.newsletter-button-wrap {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.newsletter-helper {
  font-size: var(--font-size-xs);
}

.newsletter-status {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  min-height: 1.2em;
}

.newsletter-aside {
  padding: var(--space-4);
  border-radius: var(--radius-xl);
  background-color: var(--gray-50);
}

.newsletter-benefits {
  list-style: disc;
  padding-left: 1.25rem;
  margin-top: var(--space-3);
  font-size: var(--font-size-sm);
}

.social-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.3fr);
  gap: var(--space-8);
  align-items: flex-start;
}

.social-card {
  height: 100%;
}

.social-links,
.social-reviews {
  list-style: disc;
  padding-left: 1.25rem;
  margin-top: var(--space-3);
  font-size: var(--font-size-sm);
}

.social-aside {
  padding: var(--space-4);
  border-radius: var(--radius-xl);
  background-color: var(--gray-50);
}

.press-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.3fr);
  gap: var(--space-8);
  align-items: flex-start;
}

.press-card {
  height: 100%;
}

.press-aside {
  padding: var(--space-4);
  border-radius: var(--radius-xl);
  background-color: #ffffff;
  box-shadow: var(--shadow-sm);
}

.contact-highlight-list {
  list-style: none;
  display: grid;
  gap: var(--space-2);
  margin-top: var(--space-3);
  margin-bottom: var(--space-3);
  font-size: var(--font-size-sm);
}

.contact-highlight-list li {
  display: flex;
  justify-content: space-between;
  gap: var(--space-2);
}

.contact-highlight-label {
  color: var(--color-text-muted);
}

.contact-highlight-value {
  font-weight: 600;
}

.contact-hero-card-cta {
  width: 100%;
  justify-content: center;
}

@media (max-width: 1024px) {
  .contact-hero-grid,
  .contact-info-grid,
  .contact-form-layout,
  .route-layout,
  .support-grid,
  .workshop-grid,
  .returns-grid,
  .newsletter-grid,
  .social-grid,
  .press-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-support-aside,
  .contact-help-sidebar,
  .route-aside,
  .support-aside,
  .workshop-aside,
  .returns-aside,
  .newsletter-aside,
  .social-aside,
  .press-aside {
    order: 2;
  }
}

@media (max-width: 768px) {
  .contact-hero-grid {
    gap: var(--space-4);
  }

  .contact-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .contact-hero-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .contact-quick-meta {
    grid-template-columns: minmax(0, 1fr);
  }

  .newsletter-input-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .newsletter-button-wrap {
    justify-content: stretch;
  }

  .newsletter-button-wrap .btn {
    width: 100%;
    justify-content: center;
  }

  .workshop-cta-group {
    flex-direction: column;
  }

  .workshop-cta-group .btn {
    width: 100%;
    justify-content: center;
  }

  .contact-support-cta,
  .contact-hero-card-cta,
  .route-cta {
    width: 100%;
  }
}
