/* Contact page follows the supplied cream and gold reference. */
.contact-main { background: radial-gradient(ellipse at 20% 40%, #fffaf4, transparent 65%); }
.contact-hero { position: relative; overflow: hidden; }
.contact-shape-definitions { position: absolute; overflow: hidden; }
.contact-hero-image { position: absolute; top: 110px; right: 0; bottom: 10px; width: 54%; display: grid; place-items: center; background: linear-gradient(125deg, #dfd1bc, #e9ddcc 55%, #d9cbb6); clip-path: url('#contact-image-clip'); }
.contact-hero-image > span { margin-left: 110px; color: #86765f; font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase; opacity: .65; }
.contact-hero-image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.contact-hero-inner { position: relative; z-index: 1; padding-block: 225px 70px; }
.contact-hero-copy { width: 57%; padding-left: 30px; }
.contact-hero .eyebrow { font-size: 17px; letter-spacing: 2px; margin-bottom: 18px; }
.contact-hero h1 { font-size: clamp(46px, 5.4vw, 74px); line-height: .98; letter-spacing: -1.6px; }
.contact-gold-rule { display: block; height: 2px; width: 73px; background: var(--gold); margin-block: 30px 25px; }
.contact-intro { max-width: 610px; font-size: 18px; line-height: 1.4; }
.contact-motto { margin-top: 30px; font: italic 23px/1.3 var(--serif); color: var(--olive); }
.contact-methods { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; padding-block: 28px 58px; }
.contact-card { display: flex; flex-direction: column; align-items: center; min-width: 0; text-align: center; padding: 34px 20px 20px; border: 1px solid #e9d3b1; border-radius: 11px; background: #fffaf35e; }
.contact-card-icon { display: grid; place-items: center; width: 92px; height: 92px; border-radius: 50%; background: linear-gradient(135deg, #c09b67, #c9a775); color: white; margin-bottom: 22px; }
.contact-card-icon .icon { width: 51px; height: 51px; }
.contact-card h2 { min-height: 60px; font-size: clamp(23px, 2.4vw, 29px); letter-spacing: -.7px; line-height: 1.1; display: flex; align-items: flex-start; justify-content: center; }
.contact-card-rule { width: 43px; height: 2px; flex-shrink: 0; background: var(--gold); margin: 0 0 28px; }
.contact-detail { font-size: 16px; font-style: normal; line-height: 1.4; }
.contact-number { display: inline-flex; align-items: center; min-height: var(--tap-target, 0px); font-size: 20px; font-weight: 600; letter-spacing: normal; }
.contact-description { font-size: 15px; line-height: 1.4; margin-block: 30px 25px; }
.contact-card .button { width: 100%; min-height: max(56px, var(--tap-target, 0px)); margin-top: auto; padding-inline: 12px; font-size: 12px; gap: 8px; }
.contact-card .button .icon { width: 25px; height: 25px; }
.contact-hours-card .contact-description { margin-bottom: 0; }
.contact-cta { position: relative; isolation: isolate; overflow: hidden; width: 100%; margin: 0; padding: 0; border-radius: 0; }
.contact-cta > .cta-content { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 44px 45px 38px 270px; }
.contact-cta h2 { font-size: clamp(30px, 3.6vw, 45px); line-height: 1.08; }
.contact-cta .contact-gold-rule { width: 57px; margin-block: 25px 22px; background: var(--gold-light); }
.contact-cta p { font-size: 16px; line-height: 1.4; }
.contact-cta .button { min-height: max(56px, var(--tap-target, 0px)); padding-inline: 28px; flex-shrink: 0; font-size: 14px; gap: 10px; }
.contact-cta .button .icon { width: 29px; height: 29px; }
@media (max-width: 1200px) and (min-width: 761px) {
  .contact-hero-inner { padding-block: 170px 45px; }
  .contact-hero .eyebrow { font-size: 15px; }
  .contact-hero-copy { padding-left: 25px; }
  .contact-intro { font-size: 16px; }
  .contact-motto { font-size: 23px; margin-top: 23px; }
  .contact-hero-image { top: 100px; }
  .contact-methods { gap: 16px; padding-bottom: 45px; }
  .contact-card { padding: 28px 15px 18px; }
  .contact-card-icon { width: 78px; height: 78px; }
  .contact-card-icon .icon { width: 45px; height: 45px; }
  .contact-card h2 { min-height: 52px; font-size: 25px; }
  .contact-detail { font-size: 16px; }
  .contact-number { font-size: 20px; }
  .contact-description { font-size: 15px; margin-block: 25px 22px; }
  .contact-card .button { font-size: 10px; min-height: max(50px, var(--tap-target, 0px)); padding-inline: 8px; gap: 6px; }
  .contact-card .button .icon { width: 21px; height: 21px; }
  .contact-cta > .cta-content { padding: 37px 35px 32px 215px; }
  .contact-cta h2 { font-size: 33px; }
  .contact-cta p { font-size: 15px; }
  .contact-cta .button { min-height: max(48px, var(--tap-target, 0px)); padding-inline: 25px; font-size: 12px; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  .contact-methods { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .contact-card { padding: 30px 25px 23px; }
  .contact-card h2 { min-height: 40px; font-size: 25px; }
  .contact-card .button { max-width: 260px; font-size: 12px; }
  .contact-hours-card .contact-description { margin-bottom: 32px; }
  .contact-cta > .cta-content { padding-left: 155px; gap: 24px; }
  .contact-cta h2 { font-size: 33px; }
  .contact-cta .button { padding-inline: 18px; font-size: 12px; }
}
@media (max-width: 760px) {
  .contact-hero { display: flex; flex-direction: column; }
  .contact-hero-inner { padding-block: 145px 25px; }
  .contact-hero-copy { padding: 0; width: 100%; }
  .contact-hero .eyebrow { font-size: 12px; margin-bottom: 15px; }
  .contact-hero h1 { font-size: clamp(39px, 7.5vw, 56px); letter-spacing: -1.2px; }
  .contact-gold-rule { width: 60px; margin-block: 22px 20px; }
  .contact-intro { font-size: 16px; max-width: 520px; }
  .contact-motto { font-size: 23px; margin-top: 24px; }
  .contact-hero-image { position: relative; order: 1; width: 90%; height: 210px; margin: 0 auto 5px; top: auto; right: auto; bottom: auto; border-radius: 22px 60px 22px 60px; clip-path: none; }
  .contact-hero-image > span { margin: 0; font-size: 10px; }
  .contact-methods { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: 25px 30px; gap: 14px; }
  .contact-card { padding: 25px 15px 17px; }
  .contact-card-icon { width: 68px; height: 68px; margin-bottom: 18px; }
  .contact-card-icon .icon { width: 39px; height: 39px; }
  .contact-card h2 { min-height: 52px; font-size: 24px; letter-spacing: -.7px; }
  .contact-card-rule { margin-bottom: 20px; }
  .contact-detail { font-size: 16px; }
  .contact-number { font-size: 20px; }
  .contact-description { font-size: 14px; margin-block: 20px; }
  .contact-card .button { min-height: max(46px, var(--tap-target, 0px)); font-size: 10px; padding-inline: 10px; gap: 6px; }
  .contact-card .button .icon { width: 19px; height: 19px; }
  .contact-cta > .cta-content { padding: 30px 25px; flex-direction: column; text-align: center; gap: 24px; }
  .contact-cta h2 { font-size: 31px; }
  .contact-cta p { font-size: 15px; }
  .contact-cta .contact-gold-rule { margin: 22px auto; }
  .contact-cta .button { min-height: max(48px, var(--tap-target, 0px)); font-size: 12px; padding-inline: 28px; }
}
@media (max-width: 520px) {
  .contact-methods { grid-template-columns: 1fr; gap: 18px; }
  .contact-card { padding: 28px 22px 22px; }
  .contact-card h2 { min-height: auto; font-size: 25px; }
  .contact-card-rule { margin-top: 22px; }
  .contact-card .button { max-width: 280px; font-size: 12px; }
  .contact-card .button .icon { width: 23px; height: 23px; }
  .contact-detail { font-size: 16px; }
  .contact-number { font-size: 20px; }
  .contact-description { font-size: 15px; }
  .contact-hours-card .contact-description { margin-bottom: 10px; }
}

