/* Homepage announcements: layered into the archived restoration without changing its campaign bundle. */
#sfl-print-announcement,
#sfl-announcements {
  position: relative;
  font-family: Inter, system-ui, sans-serif;
}

#sfl-print-announcement {
  z-index: 49;
  background: #c1440e;
  color: #fff;
  box-shadow: 0 5px 16px rgb(22 40 64 / 18%);
}

#sfl-write-in-announcement {
  position: relative;
  z-index: 3;
  background: #162840;
  color: #fff;
  font-family: Inter, system-ui, sans-serif;
}

#sfl-announcements {
  z-index: 2;
  margin-top: -1.6rem;
  padding-bottom: 1.25rem;
  background: linear-gradient(to bottom, transparent 0 57%, #f5f1e8 57% 100%);
}

#sfl-print-announcement .sfl-announcement,
#sfl-announcements .sfl-announcements__inner,
#sfl-write-in-announcement .sfl-write-in__inner {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 2rem;
}

#sfl-print-announcement .sfl-announcement {
  min-height: 76px;
  box-shadow: none;
}

#sfl-announcements .sfl-announcement {
  min-height: 138px;
  box-shadow: 0 12px 25px rgb(22 40 64 / 18%);
}

#sfl-announcements .sfl-announcement:hover {
  box-shadow: 0 17px 31px rgb(22 40 64 / 25%);
}

#sfl-print-announcement .sfl-announcement,
#sfl-announcements .sfl-announcement {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  color: #fff;
  text-decoration: none;
  transition: transform 190ms cubic-bezier(.23, 1, .32, 1), box-shadow 190ms cubic-bezier(.23, 1, .32, 1), background-color 190ms;
}

#sfl-print-announcement .sfl-announcement:hover { background: #d4551f; }
#sfl-announcements .sfl-announcement:hover { transform: translateY(-4px); background: #2d4a6f; }
#sfl-print-announcement .sfl-announcement:active,
#sfl-announcements .sfl-announcement:active { transform: scale(.99); }

#sfl-print-announcement .sfl-announcement:focus-visible,
#sfl-announcements .sfl-announcement:focus-visible {
  outline: 3px solid #fff;
  outline-offset: -7px;
}

#sfl-announcements .sfl-announcement--endorsement {
  padding: 1.35rem 1.4rem;
  background: #1e3a5f;
  border-bottom: 5px solid #c1440e;
}

#sfl-announcement .sfl-announcement--endorsement:hover { background: #2d4a6f; }

.sfl-write-in__inner {
  min-height: 92px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  padding-block: 1rem;
}

.sfl-write-in__icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  color: #fff;
  border: 1px solid rgb(255 255 255 / 35%);
  background: rgb(255 255 255 / 8%);
}

.sfl-write-in__copy { display: grid; gap: .2rem; }
.sfl-write-in__kicker { color: #ef9a73; font-size: .67rem; font-weight: 800; line-height: 1.25; letter-spacing: .13em; text-transform: uppercase; }
.sfl-write-in__copy strong { color: #fff; font-family: Bitter, Georgia, serif; font-size: clamp(1.05rem, 1.8vw, 1.32rem); line-height: 1.18; }
.sfl-write-in__copy > span:last-child { color: rgb(255 255 255 / 79%); font-size: .78rem; line-height: 1.45; }

.sfl-announcement__icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid rgb(255 255 255 / 42%);
  background: rgb(255 255 255 / 10%);
}

.sfl-announcement__copy {
  display: grid;
  gap: .22rem;
  min-width: 0;
}

.sfl-announcement__kicker {
  color: #ffe0d2;
  font-size: .67rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: .13em;
  text-transform: uppercase;
}

#sfl-announcements .sfl-announcement__kicker { color: #ef9a73; }

.sfl-announcement__title {
  color: #fff;
  font-family: Bitter, Georgia, serif;
  font-size: clamp(1.14rem, 2vw, 1.42rem);
  font-weight: 700;
  line-height: 1.16;
}

.sfl-announcement__body {
  color: rgb(255 255 255 / 84%);
  font-size: .79rem;
  line-height: 1.45;
}

.sfl-announcement__action {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  justify-self: end;
  white-space: nowrap;
  color: #fff;
  font-size: .76rem;
  font-weight: 800;
  line-height: 1;
  transition: transform 180ms cubic-bezier(.23, 1, .32, 1), color 180ms;
}

.sfl-announcement__action > span { font-size: 1.4rem; font-weight: 400; }
.sfl-announcement:hover .sfl-announcement__action { transform: translateX(3px); }

@media (max-width: 1024px) {
  #sfl-print-announcement .sfl-announcement,
  #sfl-announcements .sfl-announcements__inner,
  #sfl-write-in-announcement .sfl-write-in__inner { padding-inline: 1.5rem; }
}

@media (max-width: 760px) {
  #sfl-print-announcement .sfl-announcement,
  #sfl-announcements .sfl-announcements__inner,
  #sfl-write-in-announcement .sfl-write-in__inner { padding-inline: 1rem; }

  #sfl-print-announcement .sfl-announcement {
    min-height: 0;
    padding-block: .85rem;
  }

  #sfl-announcements {
    margin-top: 0;
    padding-block: 1rem;
    background: #f5f1e8;
  }

  #sfl-announcements .sfl-announcement { min-height: 0; padding: 1.15rem; }
  #sfl-print-announcement .sfl-announcement,
  #sfl-announcements .sfl-announcement { grid-template-columns: 42px minmax(0, 1fr) 22px; gap: .8rem; }
  .sfl-write-in__inner { min-height: 0; grid-template-columns: 42px minmax(0, 1fr); gap: .8rem; padding-block: 1rem; }
  .sfl-write-in__icon { width: 42px; height: 42px; }
  .sfl-announcement__icon { width: 42px; height: 42px; }
  .sfl-announcement__action { font-size: 0; }
  .sfl-announcement__action > span { font-size: 1.35rem; }
}

@media (prefers-reduced-motion: reduce) {
  #sfl-print-announcement .sfl-announcement,
  #sfl-announcements .sfl-announcement,
  .sfl-announcement__action { transition: none; }
}
