.contact-page {
  overflow: hidden;
}

.contact-page .contact-hero {
  padding-block: clamp(4rem, 8vw, 7.5rem);
  background: linear-gradient(90deg, #0b0d0d 0%, #0b0d0d 52%, #111516 100%);
}

.contact-page .contact-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 58fr) minmax(0, 42fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5.5rem);
}

.contact-page .contact-hero__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  gap: var(--space-5);
}

.contact-page .contact-hero__copy > * { min-width: 0; margin: 0; }
.contact-page .contact-hero__copy h1 { max-width: 37rem; }
.contact-page .contact-hero__lead { max-width: 36.875rem; font-size: var(--text-lg); }
.contact-page .contact-hero__support { max-width: 35rem; }
.contact-page .contact-hero__actions { width: 100%; }

.contact-page .contact-hero__media {
  position: relative;
  width: 100%;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--border-gold);
  box-shadow: var(--shadow-panel);
  aspect-ratio: 4 / 5;
}

.contact-page .contact-hero__media::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgb(11 13 13 / 0.3), transparent 55%);
  pointer-events: none;
}

.contact-page .contact-hero__media img,
.contact-page .contact-location__media img,
.contact-page .contact-destination figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.contact-page .contact-hero__media img { object-position: 68% center; }

.contact-page .contact-invitations__heading {
  max-width: 38.75rem;
  margin-bottom: var(--space-7);
}

.contact-page .contact-invitations__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-5);
}

.contact-page .contact-pathway {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding: var(--space-5);
  border-top: 1px solid var(--border-gold);
  border-right: 1px solid var(--border-bronze);
  border-bottom: 1px solid var(--border-bronze);
  border-left: 1px solid var(--border-gold);
  background: var(--surface-secondary);
  box-shadow: var(--shadow-small);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.contact-page .contact-pathway > * { min-width: 0; }
.contact-page .contact-pathway__number { margin: 0 0 var(--space-4); color: var(--color-imperial-gold); font-family: var(--font-heading); font-size: var(--text-xl); line-height: 1; }
.contact-page .contact-pathway h3 { min-height: 3.2em; }
.contact-page .contact-pathway p:not(.contact-pathway__number) { max-width: 17.5rem; }
.contact-page .contact-pathway a { margin-top: auto; color: var(--color-warm-ivory); }
.contact-page .contact-pathway:hover { border-color: var(--color-imperial-gold); box-shadow: var(--shadow-hover); transform: translateY(-3px) scale(1.01); }

.contact-page .contact-desk { background: #101313; }
.contact-page .contact-desk__wrap { width: min(100% - (var(--container-padding) * 2), var(--container-content)); }
.contact-page .contact-desk__heading { max-width: 38rem; margin-bottom: var(--space-6); }
.contact-page .contact-desk__panel { display: grid; grid-template-columns: minmax(0, 68fr) minmax(0, 32fr); min-width: 0; border: 1px solid var(--border-gold); background: var(--surface-raised); box-shadow: var(--shadow-panel); }
.contact-page .contact-desk__channels { display: flex; flex-direction: column; min-width: 0; }
.contact-page .contact-channel { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: var(--space-6); gap: var(--space-4); }
.contact-page .contact-channel + .contact-channel { border-top: 1px solid var(--border-bronze); }
.contact-page .contact-channel > * { min-width: 0; margin: 0; }
.contact-page .contact-channel p:not(.eyebrow) { max-width: 26.875rem; }
.contact-page .contact-channel__link { display: block; width: fit-content; max-width: 100%; overflow-wrap: anywhere; color: var(--color-white); font-size: clamp(1.125rem, 2vw, 1.5rem); font-weight: 700; text-decoration-color: var(--color-imperial-gold); }
.contact-page .contact-channel__link--email { font-size: clamp(1rem, 1.6vw, 1.25rem); }
.contact-page .contact-desk__rail { min-width: 0; padding: var(--space-6); border-left: 1px solid var(--border-gold); background: #191e1f; }
.contact-page .contact-desk__rail .eyebrow { margin-bottom: var(--space-5); }
.contact-page .contact-desk__rail dl { display: grid; gap: var(--space-3); margin: 0; }
.contact-page .contact-desk__rail dt { font-size: var(--text-sm); }
.contact-page .contact-desk__rail dd { margin: 0; color: var(--color-muted-slate); font-size: var(--text-sm); }

.contact-page .contact-location { position: relative; padding-top: clamp(4rem, 8vw, 7.5rem); }
.contact-page .contact-location__media { position: absolute; z-index: 0; top: 0; right: 0; left: 0; width: 100%; height: clamp(17rem, 34vw, 28rem); margin: 0; overflow: hidden; }
.contact-page .contact-location__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, rgb(11 13 13 / 0.1), var(--color-velvet-obsidian) 96%); }
.contact-page .contact-location__media img { object-position: center; }
.contact-page .contact-location__content { position: relative; z-index: 1; display: flex; flex-direction: column; min-width: 0; align-items: center; gap: var(--space-7); }
.contact-page .contact-location__plaque { display: flex; flex-direction: column; align-items: center; width: min(100%, 47.5rem); min-width: 0; padding: clamp(var(--space-5), 5vw, var(--space-7)); border: 1px solid var(--border-gold); background: var(--surface-raised); box-shadow: var(--shadow-panel); text-align: center; gap: var(--space-4); }
.contact-page .contact-location__plaque > * { min-width: 0; margin: 0; }
.contact-page .contact-location__plaque h2 { max-width: 43.75rem; }
.contact-page .contact-location__copy { width: min(100%, 38.75rem); min-width: 0; margin-inline: auto; text-align: center; }
.contact-page .contact-location__copy p { margin: 0; }
.contact-page .contact-arrival { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(100%, var(--container-content)); min-width: 0; border-top: 1px solid var(--border-bronze); border-bottom: 1px solid var(--border-bronze); background: var(--surface-secondary); }
.contact-page .contact-arrival article { min-width: 0; padding: var(--space-5); }
.contact-page .contact-arrival article + article { border-left: 1px solid var(--border-bronze); }
.contact-page .contact-arrival h3 { font-size: var(--text-xl); }
.contact-page .contact-arrival p { max-width: 18.75rem; margin-bottom: 0; }

.contact-page .contact-form-section { background: #111515; }
.contact-page .contact-form-section__intro { max-width: 38.75rem; margin-bottom: var(--space-7); }
.contact-page .contact-form { display: flex; flex-direction: column; min-width: 0; gap: var(--space-5); padding: clamp(var(--space-5), 4vw, var(--space-7)); border: 1px solid var(--border-gold); background: var(--surface-raised); box-shadow: var(--shadow-panel); }
.contact-page .contact-form > * { min-width: 0; margin: 0; }
.contact-page .contact-form__fieldset { display: flex; flex-direction: column; min-width: 0; gap: var(--space-5); margin: 0; padding: var(--space-5); border-color: var(--border-bronze); }
.contact-page .contact-form__fieldset > * { min-width: 0; margin: 0; }
.contact-page .contact-form__group-intro { max-width: 42rem; }
.contact-page .contact-form__guest-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); min-width: 0; }
.contact-page .contact-form__visit-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(10rem, 0.7fr); gap: var(--space-5); min-width: 0; }
.contact-page .contact-form .form-field { gap: var(--space-2); }
.contact-page .contact-form input, .contact-page .contact-form select, .contact-page .contact-form textarea { min-height: 3rem; }
.contact-page .contact-form__interests { display: flex; flex-direction: column; min-width: 0; gap: var(--space-3); padding-top: var(--space-5); border-top: 1px solid var(--border-bronze); }
.contact-page .contact-form__interests > * { min-width: 0; margin: 0; }
.contact-page .contact-form__interests-label { color: var(--color-white); font-size: var(--text-sm); font-weight: 700; }
.contact-page .contact-form__check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); min-width: 0; }
.contact-page .contact-form__check-grid label { display: flex; align-items: center; min-width: 0; min-height: 2.75rem; margin: 0; gap: var(--space-2); font-weight: 400; }
.contact-page .contact-form__check-grid span { min-width: 0; }
.contact-page .contact-form__confirmation { display: flex; align-items: flex-start; min-width: 0; margin: 0; gap: var(--space-3); font-weight: 400; }
.contact-page .contact-form__confirmation span { min-width: 0; max-width: 45rem; }
.contact-page .contact-form__submit-region { display: flex; flex-wrap: wrap; align-items: center; min-width: 0; gap: var(--space-4); }
.contact-page .contact-form__submit-region > * { min-width: 0; margin: 0; }
.contact-page .contact-form__error { min-height: 1.2em; margin: 0; color: #f0bc9f; font-size: var(--text-xs); line-height: 1.4; }
.contact-page .contact-form [aria-invalid="true"] { border-color: #f0bc9f; }
.contact-page .contact-form__summary { padding: var(--space-4); border: 1px solid #f0bc9f; background: rgb(122 47 34 / 0.24); color: var(--color-warm-ivory); }
.contact-page .contact-form__success { padding: var(--space-4); }

.contact-page .contact-process__heading { max-width: 36.25rem; margin-bottom: var(--space-7); }
.contact-page .contact-process__steps { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); min-width: 0; }
.contact-page .contact-process__steps::before { position: absolute; top: 1.2rem; right: 8%; left: 8%; height: 1px; content: ""; background: var(--border-gold-subtle); }
.contact-page .contact-step { position: relative; display: flex; flex-direction: column; min-width: 0; padding: var(--space-5); background: var(--surface-raised); border-bottom: 1px solid var(--border-gold); gap: var(--space-3); }
.contact-page .contact-step > * { min-width: 0; margin: 0; }
.contact-page .contact-step__number { position: relative; z-index: 1; width: fit-content; padding-right: var(--space-3); background: var(--surface-raised); color: var(--color-imperial-gold); font-family: var(--font-heading); font-size: var(--text-xl); line-height: 1; }
.contact-page .contact-step h3 { min-height: 2.2em; }
.contact-page .contact-step p:last-child { max-width: 20.625rem; }
.contact-page .contact-step--inset { background: var(--surface-secondary); border: 1px solid var(--border-bronze); }
.contact-page .contact-step--inset .contact-step__number { background: var(--surface-secondary); }

.contact-page .contact-explore { background: #101313; }
.contact-page .contact-explore__heading { max-width: 37.5rem; margin-bottom: var(--space-7); }
.contact-page .contact-explore__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.925fr) minmax(0, 0.925fr); gap: var(--space-5); min-width: 0; }
.contact-page .contact-destination { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--border-gold); background: var(--surface-raised); box-shadow: var(--shadow-panel); transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast); }
.contact-page .contact-destination figure { width: 100%; min-width: 0; height: 15rem; margin: 0; overflow: hidden; }
.contact-page .contact-destination figure img { object-position: center; }
.contact-page .contact-destination__body { display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start; min-width: 0; padding: var(--space-5); gap: var(--space-4); }
.contact-page .contact-destination__body > * { min-width: 0; margin: 0; }
.contact-page .contact-destination__body p { max-width: 21.25rem; }
.contact-page .contact-destination__body a { margin-top: auto; }
.contact-page .contact-destination:hover { border-color: var(--color-imperial-gold); box-shadow: var(--shadow-hover); transform: translateY(-3px) scale(1.01); }

.contact-page .contact-occasion { background: var(--color-velvet-obsidian); }
.contact-page .contact-occasion__panel { width: min(100% - (var(--container-padding) * 2), 47.5rem); margin-inline: auto; padding: var(--space-1); border: 1px solid var(--border-gold); background: var(--surface-raised); box-shadow: var(--shadow-panel); }
.contact-page .contact-occasion__copy { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: clamp(var(--space-5), 5vw, var(--space-7)); gap: var(--space-5); }
.contact-page .contact-occasion__copy > * { min-width: 0; margin: 0; }
.contact-page .contact-occasion__copy h2 { max-width: 40rem; font-style: italic; }
.contact-page .contact-occasion__copy > p:not(.eyebrow) { max-width: 40rem; }
.contact-page .contact-occasion__actions { width: 100%; }
.contact-page .contact-occasion__actions > a:last-child { max-width: 22rem; overflow-wrap: anywhere; }

.contact-page .contact-scope { padding-top: var(--space-7); }
.contact-page .contact-scope__content { width: min(100% - (var(--container-padding) * 2), var(--container-reading)); margin-inline: auto; }
.contact-page .contact-scope__content h2 { font-size: var(--text-2xl); }
.contact-page .contact-scope__content h3 { font-size: var(--text-xl); }
.contact-page .contact-scope__content p { max-width: 45rem; }
.contact-page .contact-scope__muted { color: var(--color-muted-slate); }

@media (max-width: 1100px) {
  .contact-page .contact-hero__grid { grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); gap: var(--space-6); }
  .contact-page .contact-invitations__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-page .contact-pathway h3 { min-height: auto; }
  .contact-page .contact-pathway p:not(.contact-pathway__number) { max-width: 30rem; }
  .contact-page .contact-explore__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-page .contact-destination--penthouses { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .contact-page .contact-arrival { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-page .contact-arrival article:nth-child(3) { grid-column: 1 / -1; }
  .contact-page .contact-arrival article:nth-child(3) p { max-width: 32rem; }
  .contact-page .contact-form__visit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-page .contact-form__visit-grid > :last-child { grid-column: 1 / -1; max-width: 20rem; }
}

@media (max-width: 860px) {
  .contact-page .contact-hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .contact-page .contact-hero__copy h1 { font-size: clamp(2.75rem, 12vw, 3.75rem); }
  .contact-page .contact-hero__lead, .contact-page .contact-hero__support { max-width: none; }
  .contact-page .contact-hero__media { aspect-ratio: 4 / 3; }
  .contact-page .contact-hero__media img { object-position: center; }
  .contact-page .contact-desk__panel { grid-template-columns: minmax(0, 1fr); }
  .contact-page .contact-desk__rail { border-top: 1px solid var(--border-gold); border-left: 0; }
  .contact-page .contact-process__steps { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); padding-left: var(--space-6); }
  .contact-page .contact-process__steps::before { top: 1rem; bottom: 1rem; left: 0.75rem; width: 1px; height: auto; }
  .contact-page .contact-step h3 { min-height: auto; }
  .contact-page .contact-step p:last-child { max-width: 38rem; }
}

@media (max-width: 680px) {
  .contact-page .contact-form__guest-grid, .contact-page .contact-form__visit-grid, .contact-page .contact-form__check-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-page .contact-form__visit-grid > :last-child { grid-column: auto; max-width: none; }
  .contact-page .contact-form__check-grid label { min-height: 2.75rem; }
  .contact-page .contact-form__submit-region { align-items: stretch; flex-direction: column; }
  .contact-page .contact-form__submit-region .button-primary { width: 100%; min-height: 3rem; }
}

@media (max-width: 640px) {
  .contact-page .contact-hero { padding-block: var(--space-8); }
  .contact-page .contact-hero__actions, .contact-page .contact-occasion__actions { flex-direction: column; align-items: stretch; }
  .contact-page .contact-hero__actions > a, .contact-page .contact-occasion__actions > a { width: 100%; min-height: 3rem; }
  .contact-page .contact-occasion__actions > a:last-child { max-width: none; text-align: center; }
  .contact-page .contact-invitations__grid, .contact-page .contact-explore__grid { grid-template-columns: minmax(0, 1fr); }
  .contact-page .contact-destination--penthouses { grid-column: auto; }
  .contact-page .contact-location { padding-top: 15rem; }
  .contact-page .contact-location__media { height: 15rem; }
  .contact-page .contact-location__media img { object-position: 56% center; }
  .contact-page .contact-arrival { grid-template-columns: minmax(0, 1fr); }
  .contact-page .contact-arrival article, .contact-page .contact-arrival article + article { border-left: 0; }
  .contact-page .contact-arrival article + article { border-top: 1px solid var(--border-bronze); }
  .contact-page .contact-arrival article:nth-child(3) { grid-column: auto; }
  .contact-page .contact-arrival article p, .contact-page .contact-arrival article:nth-child(3) p { max-width: none; }
  .contact-page .contact-destination figure { height: auto; aspect-ratio: 3 / 2; }
}

@media (max-width: 520px) {
  .contact-page .contact-channel, .contact-page .contact-desk__rail { padding: var(--space-5); }
  .contact-page .contact-location__plaque { width: 100%; }
  .contact-page .contact-location__plaque .button-secondary { width: 100%; min-height: 3rem; }
  .contact-page .contact-form { padding: var(--space-4); }
  .contact-page .contact-form__fieldset { padding: var(--space-4); }
  .contact-page .contact-process__steps { padding-left: 0; }
  .contact-page .contact-process__steps::before { display: none; }
  .contact-page .contact-step { padding: var(--space-4); }
}

@media (prefers-reduced-motion: reduce) {
  .contact-page .contact-pathway:hover, .contact-page .contact-destination:hover { transform: none; }
}

/* mobile-photo-center */
@media (max-width: 56.25rem) {
  img,
  video {
    object-position: center !important;
  }

  .image-frame,
  .media-frame,
  .card__media,
  [class*='__media'] {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    justify-self: stretch;
    overflow: hidden;
    grid-column: 1 / -1;
  }

  .image-frame img,
  .media-frame img,
  .media-frame video,
  .card__media img,
  [class*='__media'] img,
  [class*='hero'] img,
  [class*='hero__image'] {
    width: 100%;
    height: 100%;
    max-width: none;
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center !important;
  }
}
