/* Contact page. */
.nb-contact { background: #F6F4EF; }
.nb-contact .nb-eyebrow { color: #B49B76; }

/* Hero */
.nb-contact-hero {
  position: relative; display: flex; align-items: flex-end; min-height: 520px; padding: 0 5% 140px;
  background-size: cover; background-position: center 55%; background-repeat: no-repeat; color: #F6F4EF;
  box-shadow: inset 0 -380px 260px -80px rgba(21, 47, 59, .85);
}
.nb-contact-hero__inner { width: 100%; max-width: 1180px; margin: 0 auto; }
.nb-contact-hero .nb-eyebrow { color: #E3D6C0; }
.nb-contact-hero h1 { font: 400 clamp(40px, 5.6vw, 72px)/1.06 Georgia, serif; letter-spacing: -.02em; margin: 14px 0 18px; max-width: 760px; }
.nb-contact-hero p { font: 18px/1.65 Georgia, serif; max-width: 560px; margin: 0; color: rgba(246, 244, 239, .9); }

/* Form card + aside */
.nb-contact-main {
  position: relative; z-index: 2; max-width: 1180px; margin: -90px auto 0; padding: 0 5%;
  display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: start;
}
.nb-contact-card { background: #fff; padding: 56px 56px 48px; box-shadow: 0 30px 60px -30px rgba(21, 47, 59, .25); }
.nb-contact-card h2 { font: 400 36px/1.2 Georgia, serif; color: #152F3B; margin: 10px 0 32px; }

.nb-contact-form .nb-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.nb-contact-form .nb-field { display: block; margin: 0 0 22px; }
.nb-contact-form .nb-field > span {
  display: block; margin-bottom: 8px; font: 500 11px/1.2 'Jost', Arial, sans-serif;
  letter-spacing: .16em; text-transform: uppercase; color: #152F3B;
}
.nb-contact-form .nb-field em { font-style: normal; color: #8a9597; letter-spacing: .08em; text-transform: none; }
.nb-contact-form input,
.nb-contact-form select,
.nb-contact-form textarea {
  display: block; width: 100%; margin: 0; padding: 14px 14px; border: 1px solid #d6d1c4; border-radius: 0;
  background: #FBFAF7; color: #152F3B; font: 16px/1.4 Georgia, serif; transition: border-color .2s ease, background .2s ease;
  -webkit-appearance: none; appearance: none;
}
.nb-contact-form select {
  background-image: linear-gradient(45deg, transparent 50%, #586769 50%), linear-gradient(135deg, #586769 50%, transparent 50%);
  background-position: calc(100% - 20px) 55%, calc(100% - 15px) 55%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
  padding-right: 40px; cursor: pointer;
}
.nb-contact-form textarea { resize: vertical; min-height: 150px; }
.nb-contact-form input::placeholder,
.nb-contact-form textarea::placeholder { color: #9aa3a4; }
.nb-contact-form input:focus,
.nb-contact-form select:focus,
.nb-contact-form textarea:focus { outline: none; border-color: #B49B76; background: #fff; }
.nb-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 8px; }
.nb-form-foot .nb-small { margin: 0; max-width: 300px; font-size: 12px; color: #586769; }

.nb-contact-btn {
  display: inline-block; padding: 18px 34px; border: 1px solid #152F3B; background: #152F3B; color: #F6F4EF;
  font: 500 12px/1 'Jost', Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; text-decoration: none;
  cursor: pointer; transition: background .25s ease, border-color .25s ease, color .25s ease; white-space: nowrap;
}
.nb-contact-btn:hover, .nb-contact-btn:focus-visible { background: #B49B76; border-color: #B49B76; color: #152F3B; }

.nb-form-alert { margin: 0 0 24px; padding: 14px 18px; border-left: 2px solid #B49B76; background: #f3efe6; font-size: 14px; color: #152F3B; }
.nb-form-done { padding: 12px 0 8px; }
.nb-form-done h2 { margin: 12px 0 16px; }
.nb-form-done p { font: 17px/1.7 Georgia, serif; color: #586769; margin: 0 0 28px; max-width: 520px; }

.nb-contact-aside { padding-top: 130px; }
.nb-contact-block { padding: 0 0 30px; margin: 0 0 30px; border-bottom: 1px solid rgba(21, 47, 59, .12); }
.nb-contact-block:last-child { border-bottom: 0; }
.nb-contact-block p { font: 16px/1.65 Georgia, serif; color: #586769; margin: 12px 0 0; }
.nb-contact-block a { color: #152F3B; text-decoration: none; border-bottom: 1px solid rgba(180, 155, 118, .6); transition: color .2s ease, border-color .2s ease; }
.nb-contact-block a:hover { color: #B49B76; border-color: #B49B76; }
.nb-person { margin-top: 18px; }
.nb-person h3 { font: 400 22px/1.2 Georgia, serif; color: #152F3B; margin: 0 0 6px; }
.nb-person a { font: 15px/1.4 Arial, sans-serif; word-break: break-word; }

/* Steps */
.nb-contact-steps { background: #152F3B; color: #F6F4EF; margin-top: 110px; padding: 100px 5%; }
.nb-contact-steps__inner { max-width: 1180px; margin: 0 auto; }
.nb-contact-steps h2 { font: 400 clamp(30px, 3.4vw, 44px)/1.2 Georgia, serif; margin: 14px 0 56px; max-width: 640px; }
.nb-contact-steps ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.nb-contact-steps li { border-top: 1px solid rgba(246, 244, 239, .2); padding-top: 26px; }
.nb-contact-steps li > span { font: 500 12px/1 'Jost', Arial, sans-serif; letter-spacing: .2em; color: #B49B76; }
.nb-contact-steps h3 { font: 400 26px/1.2 Georgia, serif; margin: 16px 0 12px; }
.nb-contact-steps p { font: 16px/1.7 Georgia, serif; color: rgba(246, 244, 239, .75); margin: 0; }

/* Tablet */
@media (max-width: 1024px) {
  .nb-contact-main { grid-template-columns: 1fr; gap: 48px; }
  .nb-contact-aside { padding-top: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
  .nb-contact-block { border-bottom: 0; margin: 0; padding: 0; }
}
/* Phone */
@media (max-width: 767px) {
  .nb-contact-hero { min-height: 440px; padding: 0 20px 110px; }
  .nb-contact-hero p { font-size: 16px; }
  .nb-contact-main { margin-top: -70px; padding: 0 16px; }
  .nb-contact-card { padding: 36px 22px 30px; }
  .nb-contact-card h2 { font-size: 28px; margin-bottom: 24px; }
  .nb-contact-form .nb-form-grid { grid-template-columns: 1fr; }
  .nb-form-foot { flex-direction: column; align-items: stretch; }
  .nb-form-foot .nb-small { max-width: none; }
  .nb-contact-btn { text-align: center; }
  .nb-contact-aside { grid-template-columns: 1fr; gap: 0; padding: 0 6px; }
  .nb-contact-block { padding: 0 0 26px; margin: 0 0 26px; border-bottom: 1px solid rgba(21, 47, 59, .12); }
  .nb-contact-steps { margin-top: 70px; padding: 70px 20px; }
  .nb-contact-steps h2 { margin-bottom: 36px; }
  .nb-contact-steps ol { grid-template-columns: 1fr; gap: 32px; }
}
