/* Shared newsletter widget. Team artwork remains decorative behind readable copy. */
.newsletter-widget__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 22px; }
.newsletter-widget__heading { margin-bottom: 20px; }
.newsletter-widget__card { position: relative; isolation: isolate; overflow: hidden; min-width: 0; min-height: 340px; color: #fff; background: var(--newsletter-accent, #211526); border-radius: 3px; }
.newsletter-widget__art { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.newsletter-widget__art--top { object-position: center top; }
.newsletter-widget__art--bottom { object-position: center bottom; }
.newsletter-widget__card::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10, 6, 16, .84), rgba(10, 6, 16, .66) 56%, rgba(10, 6, 16, .18)); }
.newsletter-widget__content { display: flex; flex-direction: column; align-items: flex-start; height: 100%; box-sizing: border-box; padding: 28px; }
.newsletter-widget__team { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; font-family: 'DM Sans', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; line-height: 1.5; }
.newsletter-widget__mark { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; padding: 5px; box-sizing: border-box; background: #fff; border-radius: 50%; }
.newsletter-widget__mark img { max-width: 100%; max-height: 100%; object-fit: contain; }
.newsletter-widget__card h2, .newsletter-widget__card h3 { margin: 0 0 12px; max-width: 22ch; color: #fff; font-family: 'Libre Caslon Text', Georgia, serif; font-size: clamp(26px, 2.3vw, 34px); font-weight: 700; letter-spacing: -.035em; line-height: 1.16; }
.newsletter-widget__description { max-width: 40ch; margin: 0 0 22px; color: #fff; font-family: 'DM Sans', sans-serif; font-size: 14px; line-height: 1.6; }
.newsletter-widget__action { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: auto; }
.newsletter-widget__subscribe { min-height: 44px; padding: 10px 20px; border: 1px solid #fff; border-radius: 2px; background: #fff; color: #211526; font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 700; cursor: pointer; }
.newsletter-widget__subscribe:hover { background: #f5ece0; border-color: #f5ece0; }
.newsletter-widget__subscribe[aria-pressed='true'] { color: #fff; background: rgba(10, 6, 16, .45); }
.newsletter-widget__subscribe:disabled { opacity: .7; cursor: wait; }
.newsletter-widget__subscribe:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.newsletter-widget__cadence { color: #fff; font-family: 'DM Sans', sans-serif; font-size: 12px; }
.newsletter-widget__feedback { min-height: 1.5em; margin: 10px 0 0; color: #fff; font-family: 'DM Sans', sans-serif; font-size: 12px; line-height: 1.5; }
.newsletter-widget--banner { margin: 24px 4%; }
.school-front .newsletter-widget--banner { margin: 0 0 10px; }
.newsletter-widget--banner .newsletter-widget__card { min-height: 290px; }
.newsletter-widget--banner .newsletter-widget__content { padding: 32px; }
.newsletter-widget--banner .newsletter-widget__description { max-width: 58ch; }
.newsletter-widget--directory .newsletter-widget__cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
@media (max-width: 640px) {
  .newsletter-widget__cards { grid-template-columns: 1fr; gap: 16px; }
  .newsletter-widget__content, .newsletter-widget--banner .newsletter-widget__content { padding: 24px; }
  .newsletter-widget__card { min-height: 320px; }
  .newsletter-widget__team { margin-bottom: 16px; }
  .newsletter-widget__card h2, .newsletter-widget__card h3 { font-size: 28px; }
}
