.contact-page {
  --contact-red: #c90018;
  --contact-ink: #202020;
  --contact-muted: #696969;
  --contact-line: #e8e3de;
  background: #f7f5f2;
  overflow-x: hidden;
}

.contact-page * { box-sizing: border-box; }
.contact-page .container { width: min(calc(100% - 48px), 1180px); margin-inline: auto; }
.contact-page .contact-hero { padding: 60px 0 54px; background: linear-gradient(115deg, #f5f1ec, #e5ddd5); }
.contact-page .breadcrumbs { margin: 0 0 32px; }
.contact-page .contact-hero__content { max-width: 700px; }
.contact-page .contact-hero h1 { margin: 0 0 18px; color: var(--contact-ink); font-size: clamp(2.4rem, 4.5vw, 4rem); line-height: 1.13; letter-spacing: -.045em; }
.contact-page .contact-hero__content > p:last-child { max-width: 640px; margin: 0; color: var(--contact-muted); font-size: 1rem; line-height: 1.85; }
.contact-page .contact-main { padding: 64px 0 88px; }
.contact-page .contact-layout { display: grid; grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr); align-items: stretch; gap: 30px; }
.contact-page .contact-intro { position: relative; display: flex; min-height: 500px; flex-direction: column; justify-content: center; overflow: hidden; padding: 42px; border-radius: 16px; background: #202020; color: #fff; }
.contact-page .contact-intro .eyebrow { color: #ff99a5; }
.contact-page .contact-intro h2 { margin: 0 0 18px; font-size: clamp(2rem, 3vw, 2.7rem); line-height: 1.16; letter-spacing: -.035em; }
.contact-page .contact-intro > p:not(.eyebrow) { position: relative; z-index: 1; max-width: 290px; margin: 0; color: #d2d2d2; font-size: .96rem; line-height: 1.9; }
.contact-page .contact-intro__accent { position: absolute; right: -80px; bottom: -95px; width: 260px; height: 260px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 50%; }
.contact-page .contact-intro__accent::before { position: absolute; inset: 34px; content: ""; border-radius: 50%; background: var(--contact-red); }
.contact-page .contact-card { padding: 48px; border: 1px solid var(--contact-line); border-radius: 16px; background: #fff; box-shadow: 0 16px 42px rgba(39, 29, 21, .06); }
.contact-page .contact-card__header { max-width: 560px; }
.contact-page .contact-card__header h2 { margin: 0 0 9px; color: var(--contact-ink); font-size: 2rem; line-height: 1.25; letter-spacing: -.025em; }
.contact-page .contact-card__header p:last-child { margin: 0; color: var(--contact-muted); line-height: 1.8; }
.contact-page .contact-checklist { margin-top: 28px; padding: 22px 24px; border-radius: 10px; background: #f7f5f2; }
.contact-page .contact-checklist h3 { margin: 0 0 14px; color: var(--contact-ink); font-size: 1rem; }
.contact-page .contact-checklist ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px; margin: 0; padding: 0; list-style: none; }
.contact-page .contact-checklist li { position: relative; padding-left: 18px; color: #3c3a38; line-height: 1.6; }
.contact-page .contact-checklist li::before { position: absolute; top: .68em; left: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--contact-red); content: ""; }
.contact-page .contact-methods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 28px 0 42px; }
.contact-page .contact-method { position: relative; min-height: 146px; padding: 23px 48px 23px 22px; border: 1px solid #e4dfda; border-radius: 10px; background: #fcfbfa; transition: transform .2s, border-color .2s, box-shadow .2s; }
.contact-page .contact-method:hover { border-color: var(--contact-red); box-shadow: 0 10px 20px rgba(201, 0, 24, .09); transform: translateY(-2px); }
.contact-page .contact-method__label,
.contact-page .contact-address span { display: block; margin-bottom: 8px; color: #77716d; font-size: .75rem; font-weight: 700; letter-spacing: .1em; }
.contact-page .contact-method strong { display: block; color: var(--contact-ink); font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.45; overflow-wrap: anywhere; }
.contact-page .contact-method__detail { display: block; margin-top: 7px; color: var(--contact-muted); font-size: .88rem; overflow-wrap: anywhere; }
.contact-page .contact-method__arrow { position: absolute; right: 21px; bottom: 20px; color: var(--contact-red); font-size: 1.25rem; font-weight: 700; }
.contact-page .contact-addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding-top: 28px; border-top: 1px solid var(--contact-line); }
.contact-page .contact-address p { margin: 0; color: #3c3a38; font-size: .95rem; line-height: 1.8; }
.contact-page :focus-visible { outline: 3px solid #151515; outline-offset: 3px; }

@media (max-width: 820px) {
  .contact-page .contact-layout { grid-template-columns: 1fr; }
  .contact-page .contact-intro { min-height: 310px; }
}

@media (max-width: 600px) {
  .contact-page .container { width: min(calc(100% - 32px), 1180px); }
  .contact-page .contact-hero { padding: 42px 0; }
  .contact-page .breadcrumbs { margin-bottom: 24px; }
  .contact-page .contact-main { padding: 36px 0 64px; }
  .contact-page .contact-intro,
  .contact-page .contact-card { padding: 28px; border-radius: 12px; }
  .contact-page .contact-checklist { padding: 20px; }
  .contact-page .contact-checklist ul,
  .contact-page .contact-methods,
  .contact-page .contact-addresses { grid-template-columns: 1fr; }
  .contact-page .contact-methods { margin: 28px 0 34px; }
  .contact-page .contact-addresses { gap: 20px; }
  .contact-page .contact-method { min-height: 132px; }
}
