/* scope: .msi-page--contact */
/* Contact Us (wire contact: 741:1745 / 741:7914 / 741:5309). Owner: agent contact. Every selector must start with the
   scope above; _tools/css_scope_check.py fails the sign-off otherwise. Responsive rules live here too.
   Type, rails and the full-bleed band come from the content idiom (msi-page-content.css). The hero art is the wire's
   own gradient and blob circles (images/contact/hero-*.svg); the Direct Support photo is the wire's mask group
   rendered at 2x without its badge, which is live HTML. */

/* ---- hero: gradient + blobs from the header down under the band's rounded top ------------------------------------ */
.msi-page--contact .msi-contact__hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 calc(-1 * var(--msi-gutter));
  padding: 96px var(--msi-gutter) 136px;
  background: #fff url("../images/contact/hero-1440.svg") center top / cover no-repeat;
}
.msi-page--contact .msi-contact__hero > * {
  width: 100%;
  max-width: 703px;
}
/* Inter Display Medium in the wire; Inter 500 (BRIEF accepted deviation 1), tracked in as the login title */
.msi-page--contact .msi-contact__title {
  margin: 0;
  font-family: var(--msi-font);
  font-size: 64px;
  font-weight: 500;
  line-height: 68px;
  letter-spacing: -0.033em;
  text-align: center;
  color: #000;
}
/* the wire's lede box is 624 wide at the left of the 703 column (79 spare on its right), text centred inside it */
.msi-page--contact .msi-contact__hero > .msi-contact__lede {
  max-width: 624px;
  margin: 32px 79px 0 0;
  text-align: center;
}

/* ---- white band: rounded top over the hero's last 80 ------------------------------------------------------------- */
.msi-page--contact .msi-contact__band {
  /* the footer keeps its 80 top margin (msi-refresh.css LayoutBottom); the band runs white under it */
  margin: -80px calc(-1 * var(--msi-gutter)) -80px;
  padding: 80px var(--msi-gutter) 120px;
  background: #fff;
  border-radius: 80px 80px 0 0;
}
.msi-page--contact .msi-contact__row {
  display: flex;
  align-items: stretch;
  gap: 32px;
}
.msi-page--contact .msi-contact__row--hours {
  gap: 31px;
  margin-top: 32px;
}
/* the ContactFormPage frame has no 1440 cap, so the band's rows cap themselves at the content width */
.msi-page--contact .msi-contact__row {
  max-width: var(--msi-content);
  margin-left: auto;
  margin-right: auto;
}

/* ---- cards ---------------------------------------------------------------------------------------------------------- */
.msi-page--contact .msi-contact__card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1 1 0;
  min-width: 0;
  min-height: 256px;
  padding: 32px;
  background: #fdfdfd;
  border: 1px solid rgba(38, 45, 49, 0.2);
  border-radius: 32px;
}
.msi-page--contact .msi-contact__card-title {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0;
  font-family: var(--msi-font);
  font-size: 20px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: normal;
  white-space: nowrap;
  color: #000;
}
.msi-page--contact .msi-contact__card-title::before {
  content: "";
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  background: url("../images/contact/icon-call.svg") center / 48px no-repeat;
}
.msi-page--contact .msi-contact__card--email .msi-contact__card-title::before { background-image: url("../images/contact/icon-email.svg"); }
.msi-page--contact .msi-contact__card--visit .msi-contact__card-title::before { background-image: url("../images/contact/icon-visit.svg"); }
.msi-page--contact .msi-contact__card--hours .msi-contact__card-title::before { background-image: url("../images/contact/icon-hours.svg"); }

.msi-page--contact .msi-contact__card b { font-weight: 700; color: #000; }
/* style.css:173 sets every link bold */
.msi-page--contact .msi-contact__card a {
  font-weight: inherit;
  color: inherit;
  text-decoration: none;
}
.msi-page--contact .msi-contact__card a:hover,
.msi-page--contact .msi-contact__card a:focus { color: var(--msi-blue); text-decoration: underline; }

/* the wire sets every card line nowrap; at 834 "Toll free numbers are North America only" (311) runs 16 into the
   card padding. Only the designed ranges keep that; between them the lines wrap instead of leaving the card. */
.msi-page--contact .msi-contact__line { overflow-wrap: anywhere; }
@media (min-width: 1280px), (min-width: 820px) and (max-width: 991px) {
  .msi-page--contact .msi-contact__line { white-space: nowrap; }
}

/* the address comes from the store's codes ("Bldg.", "Pennsylvania"), longer than the wire's "Bld." and "PA" */
.msi-page--contact .msi-contact__card .msi-contact__line--address { white-space: normal; }

/* live numbers and addresses the wire does not draw: kept in the body, hidden (Diego 2026-09-23: follow Figma) */

/* the wire's divider is a 0-tall line drawn 1px above its slot (rgba black .05, not the card hairline);
   hr carries Bootstrap's 20px margins and #eee rule, replaced here */
.msi-page--contact .msi-contact__rule {
  height: 0;
  margin: -1px 0 0;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}

/* ---- office hours --------------------------------------------------------------------------------------------------- */
.msi-page--contact .msi-contact__card--hours {
  flex: 0 1 733px;
  gap: 24px;
}
.msi-page--contact .msi-contact__hours {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.msi-page--contact .msi-contact__days {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.msi-page--contact .msi-contact__day {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 24px;
}
.msi-page--contact .msi-contact__day > b { flex: 0 0 93px; min-width: 0; white-space: nowrap; }
.msi-page--contact .msi-contact__day > span { white-space: nowrap; }
/* the closing list is 15px in the wire (741:1866), its label 16; Figma lines are 24 under the label's 26 */
.msi-page--contact .msi-contact__holidays {
  font-size: 15px;
  line-height: 24px;
}
.msi-page--contact .msi-contact__holidays > b {
  font-size: 16px;
  line-height: 26px;
}

/* ---- Direct Support: masked photo with a live badge (1440 only) ---------------------------------------------------- */
.msi-page--contact .msi-contact__support {
  position: relative;
  flex: 0 1 515px;
  min-width: 0;
  aspect-ratio: 515 / 450;
  background: url("../images/contact/direct-support@2x.webp") center / 100% 100% no-repeat;
}
.msi-page--contact .msi-contact__badge {
  position: absolute;
  left: calc(33 / 515 * 100%);
  right: calc(33 / 515 * 100%);
  top: calc(313 / 450 * 100%);
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 16px 24px 16px 16px;
  background: #fff;
  border-radius: 32px;
}
.msi-page--contact .msi-contact__badge::before {
  content: "";
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  background: url("../images/contact/icon-support.svg") center / 72px no-repeat;
}
.msi-page--contact .msi-contact__badge-copy {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1 1 0;
  min-width: 0;
}
.msi-page--contact .msi-contact__badge-title {
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.033em;
  color: #000;
}

/* 992-1199 is undesigned and too narrow for the badge: the panel goes, as the 834 wire drops it */
@media (max-width: 1199px) {
  .msi-page--contact .msi-contact__support { display: none; }
}

/* ---- tablet: 834 wire --------------------------------------------------------------------------------------------- */
@media (max-width: 991px) {
  .msi-page--contact .msi-contact__hero {
    padding-top: 65px;
    background-image: url("../images/contact/hero-834.svg");
  }
  /* 2 x 2: Call / Email, then Visit / Office Hours, each row as tall as its tallest card */
  .msi-page--contact .msi-contact__band {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    padding-top: 56px;
    padding-bottom: 112px;
  }
  .msi-page--contact .msi-contact__row { display: contents; }
}

/* ---- mobile: 440 wire --------------------------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .msi-page--contact .msi-contact__hero {
    padding: 48px var(--msi-gutter) 112px;
    background-image: url("../images/contact/hero-440.svg");
    background-size: 100% 100%;
  }
  .msi-page--contact .msi-contact__hero > * { max-width: none; }
  .msi-page--contact .msi-contact__title {
    font-size: 40px;
    line-height: 42px;
  }
  .msi-page--contact .msi-contact__hero > .msi-contact__lede { margin-right: 0; }
  .msi-page--contact .msi-contact__band {
    grid-template-columns: minmax(0, 1fr);
    margin-top: -56px;
    padding-top: 48px;
    padding-bottom: 88px;
    border-radius: 56px;
  }
}
