/* Shared subscription component; independent of page banners and Bootstrap buttons. */
body .sms-subscribe {
  position: relative;
  padding: 48px 0;
  color: #ffffff;
  background-color: #565f9e;
  background-image: repeating-radial-gradient(circle at 88% 145%, transparent 0, transparent 57px, #ffffff0d 58px, transparent 59px, transparent 94px);
  border-block: 1px solid #626ba9;
  font: 400 16px/1.6 var(--sms-font-family, Arial, sans-serif);
}
body .sms-subscribe-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  align-items: center;
  gap: 48px;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 32px;
}
body .sms-subscribe-copy { display: flex; align-items: center; gap: 22px; min-width: 0; }
body .sms-subscribe-icon {
  display: grid;
  place-items: center;
  flex: 0 0 76px;
  width: 76px;
  height: 76px;
  border: 1px solid #ffffff70;
  border-radius: 50%;
  background: #ffffff08;
  color: #ffffff;
  box-shadow: 0 0 0 7px #ffffff04;
}
body .sms-subscribe-icon svg { width: 43px; height: 43px; }
body .sms-subscribe h2 { margin: 0 0 9px; color: #ffffff; font-size: 28px; font-weight: 650; line-height: 1.2; letter-spacing: -.02em; }
body .sms-subscribe p { margin: 0; color: #eeedff; font-size: 16px; line-height: 1.65; }
body .sms-subscribe-fields { min-width: 0; }
body .sms-subscribe #subscribe-form { display: block; margin: 0; }
body .sms-subscribe-label { display: block; margin: 0 0 8px; color: #ffffff; font-size: 14px; font-weight: 650; line-height: 1.4; }
body .sms-subscribe-controls { display: flex; align-items: stretch; gap: 10px; }
body .sms-subscribe-input {
  flex: 1 1 0;
  width: 100%;
  min-width: 0;
  min-height: 54px;
  padding: 13px 16px;
  border: 1px solid #c8c7ed;
  border-radius: 8px;
  background: #fff;
  color: #29265c;
  font: inherit;
  box-shadow: 0 2px 4px #29265c04;
}
body .sms-subscribe-input::placeholder { color: #686681; opacity: 1; }
body .sms-subscribe .sms-subscribe-send {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  min-height: 54px;
  padding: 13px 22px;
  border: 1px solid #ffffff;
  border-radius: 8px;
  background: #ffffff;
  color: #3027b3;
  font: 650 16px/1.5 var(--sms-font-family, Arial, sans-serif);
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease;
}
body .sms-subscribe .sms-subscribe-send:hover,
body .sms-subscribe .sms-subscribe-send:focus-visible { background: #e9e7ff; border-color: #e9e7ff; color: #3027b3; }
body .sms-subscribe .sms-subscribe-send:active { background: #d5d1ff; border-color: #d5d1ff; color: #3027b3; }
body .sms-subscribe-send svg { flex: 0 0 19px; width: 19px; height: 19px; }
body .sms-subscribe :is(input, button):focus-visible { outline: 3px solid #ffffff; outline-offset: 3px; }
/* Keep AJAX feedback consistent with the section's text colour. */
body .sms-subscribe #subscribe-form-status { margin-top: 12px; color: #ffffff; }
body .sms-subscribe #subscribe-form-status p { color: #ffffff !important; }
@media (min-width: 1600px) { body .sms-subscribe-inner { max-width: 1440px; } }
@media (max-width: 991px) {
  body .sms-subscribe-inner { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  body .sms-subscribe-fields { padding-left: 98px; }
}
@media (max-width: 575px) {
  body .sms-subscribe { padding: 32px 0; }
  body .sms-subscribe-inner { padding: 0 22px; gap: 22px; }
  body .sms-subscribe-copy { align-items: flex-start; gap: 16px; }
  body .sms-subscribe-icon { flex-basis: 52px; width: 52px; height: 52px; box-shadow: none; }
  body .sms-subscribe-icon svg { width: 32px; height: 32px; }
  body .sms-subscribe h2 { font-size: 25px; }
  body .sms-subscribe-fields { padding-left: 0; }
  body .sms-subscribe-controls { flex-direction: column; }
  body .sms-subscribe-input { flex-basis: auto; }
  body .sms-subscribe .sms-subscribe-send { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { body .sms-subscribe .sms-subscribe-send { transition: none; } }
