@layer base {
  .contact-hero {
    padding: var(--space-10) 0 var(--space-12);
    background: radial-gradient(circle at 0 0, #F1EAE0 0, #F7F3EC 40%, #E8DED0 100%);
  }
  .contact-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: var(--space-10);
    align-items: center;
  }
  .contact-hero__content {
    max-width: 34rem;
  }
  .contact-hero__facts {
    margin-top: var(--space-4);
  }
  .contact-hero__media {
    position: relative;
  }
  .contact-quick {
    padding: var(--space-12) 0 var(--space-12);
    background-color: var(--color-bg);
  }
  .contact-quick__header {
    max-width: 40rem;
    margin-bottom: var(--space-8);
  }
  .contact-quick__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr);
    gap: var(--space-8);
    align-items: flex-start;
  }
  .contact-form__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    margin-bottom: var(--space-4);
  }
  .contact-form__field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
  }
  .contact-form__footer {
    margin-top: var(--space-5);
  }
  .contact-form__submit {
    margin-bottom: var(--space-3);
  }
  .contact-form__note {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
  }
  .contact-quick__aside h3 {
    margin-bottom: var(--space-4);
  }
  .contact-list {
    display: grid;
    gap: 0.45rem;
    margin-bottom: var(--space-4);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
  }
  .contact-list--numbered {
    counter-reset: list-counter;
  }
  .contact-list--numbered li {
    counter-increment: list-counter;
    position: relative;
    padding-left: 1.8rem;
  }
  .contact-list--numbered li::before {
    content: counter(list-counter, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 0;
    font-family: var(--font-heading);
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-accent);
  }
  .contact-quick__cta {
    margin-top: var(--space-2);
  }
  .contact-location {
    padding: var(--space-12) 0;
    background-color: var(--color-bg-secondary);
  }
  .contact-location__header {
    max-width: 40rem;
    margin-bottom: var(--space-8);
  }
  .contact-location__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.05fr);
    gap: var(--space-8);
  }
  .contact-location__facts {
    display: grid;
    gap: 0.35rem;
    margin-bottom: var(--space-4);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
  }
  .contact-location__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
    margin-top: var(--space-1);
  }
  .contact-location__map-placeholder {
    border-radius: var(--radius-card);
    border: 1px dashed var(--color-border);
    padding: var(--space-6);
    background: linear-gradient(135deg, rgba(217, 230, 234, 0.6), rgba(220, 229, 223, 0.6));
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
  }
  .contact-location__map-note {
    margin-top: var(--space-4);
    font-size: var(--font-size-sm);
  }
  .contact-cards {
    padding: var(--space-12) 0;
    background-color: var(--color-bg);
  }
  .contact-cards__header {
    max-width: 42rem;
    margin-bottom: var(--space-8);
  }
  .contact-cards__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
  }
  .contact-card__cta {
    margin-top: var(--space-3);
  }
  .contact-card__note {
    margin-top: var(--space-3);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
  }
  .contact-dining {
    padding: var(--space-12) 0;
    background-color: var(--color-surface);
  }
  .contact-dining__header {
    max-width: 42rem;
    margin-bottom: var(--space-8);
  }
  .contact-dining__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
  }
  .contact-dining__cta {
    margin-top: var(--space-3);
  }
  .contact-dining__note {
    margin-top: var(--space-3);
    font-size: var(--font-size-sm);
  }
  .contact-policies {
    padding: var(--space-12) 0;
    background-color: var(--color-bg);
  }
  .contact-policies__header {
    max-width: 42rem;
    margin-bottom: var(--space-8);
  }
  .contact-policies__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
  }
  .contact-policies__note {
    margin-top: var(--space-3);
    font-size: var(--font-size-sm);
  }
  .contact-brochure {
    padding: var(--space-12) 0;
    background-color: var(--color-feature);
  }
  .contact-brochure__content {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
    gap: var(--space-6);
    align-items: center;
  }
  .contact-brochure__cta {
    margin-top: var(--space-3);
  }
  .contact-brochure__aside {
    position: relative;
    padding-left: var(--space-4);
    border-left: 1px solid rgba(184, 111, 75, 0.45);
  }
  .contact-brochure__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 1rem;
    border-radius: var(--radius-pill);
    background: linear-gradient(135deg, #B86F4B, #D2B77A);
    color: #F7F3EC;
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: var(--space-3);
  }
  .contact-brochure__caption {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
  }
  .contact-media {
    padding: var(--space-12) 0 var(--space-16);
    background-color: var(--color-bg);
  }
  .contact-media__header {
    max-width: 42rem;
    margin-bottom: var(--space-8);
  }
  .contact-media__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-6);
  }
  .contact-media__note {
    margin-top: var(--space-3);
    font-size: var(--font-size-sm);
  }
  .contact-location__details h3,
  .contact-dining__block h3,
  .contact-policies__block h3,
  .contact-media__block h3 {
    font-size: 1.15rem;
  }
}

@layer utilities {
  @media (max-width: 960px) {
    .contact-hero__inner {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--space-8);
    }
    .contact-hero__media {
      order: -1;
    }
    .contact-quick__grid {
      grid-template-columns: minmax(0, 1fr);
    }
    .contact-location__grid,
    .contact-cards__grid,
    .contact-dining__grid,
    .contact-policies__grid,
    .contact-brochure__content,
    .contact-media__grid {
      grid-template-columns: minmax(0, 1fr);
    }
  }
  @media (max-width: 720px) {
    .contact-hero {
      padding: var(--space-8) 0 var(--space-10);
    }
    .contact-quick,
    .contact-location,
    .contact-cards,
    .contact-dining,
    .contact-policies,
    .contact-brochure,
    .contact-media {
      padding: var(--space-8) 0;
    }
    .contact-form__row {
      grid-template-columns: minmax(0, 1fr);
    }
    .contact-brochure__aside {
      border-left: none;
      padding-left: 0;
      border-top: 1px solid rgba(184, 111, 75, 0.35);
      padding-top: var(--space-4);
    }
  }
}

ul { list-style: none !important; }
.nav-toggle { flex-direction: column; }
