/* Grassi Retina – Substack feed – v1.2.0
   100% FLEXBOX for posts/newsletter. No CSS Grid.
   Outer container explicitly resets the website theme's section layout.
*/
#grassi-substack-widget {
  --gr-ink: #193447;
  --gr-secondary: #617785;
  --gr-accent: #176f88;
  --gr-soft: #f4f8fa;
  display: block !important;
  position: relative !important;
  float: none !important;
  clear: both !important;
  flex: none !important;
  width: 100% !important;
  max-width: 1180px !important;
  min-width: 0 !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: 38px 20px 75px !important;
  color: var(--gr-ink);
  font-family: inherit;
  box-sizing: border-box !important;
}
#grassi-substack-widget,
#grassi-substack-widget * { box-sizing: border-box !important; }
#grassi-substack-widget > .gr-ss-intro {
  display: block !important;
  float: none !important;
  clear: both !important;
  width: 100% !important;
  max-width: 820px !important;
  margin: 0 auto 42px !important;
  padding: 0 !important;
  text-align: center !important;
}
#grassi-substack-widget .gr-ss-eyebrow {
  display: block !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .17em !important;
  text-transform: uppercase !important;
  color: var(--gr-accent) !important;
  margin: 0 0 12px !important;
}
#grassi-substack-widget h1,
#grassi-substack-widget h2,
#grassi-substack-widget h3 {
  color: var(--gr-ink) !important;
  padding: 0 !important;
  line-height: 1.27 !important;
  letter-spacing: normal !important;
}
#grassi-substack-widget .gr-ss-intro h1 {
  font-size: clamp(32px, 3.7vw, 48px) !important;
  margin: 0 0 14px !important;
}
#grassi-substack-widget .gr-ss-intro p {
  color: var(--gr-secondary) !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  margin: 0 !important;
}
/* Article cards: three per row on desktop, two on tablets, one on phones. */
#grassi-substack-widget > .gr-ss-posts {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  float: none !important;
  clear: both !important;
  gap: 26px !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
#grassi-substack-widget > .gr-ss-posts > .gr-ss-card {
  display: flex !important;
  flex-direction: column !important;
  flex: 0 0 calc((100% - 52px) / 3) !important;
  width: calc((100% - 52px) / 3) !important;
  max-width: calc((100% - 52px) / 3) !important;
  min-width: 0 !important;
  height: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid #e3ebef !important;
  border-radius: 13px !important;
  overflow: hidden !important;
  box-shadow: 0 8px 28px rgba(25,52,71,.065) !important;
  transition: transform .2s ease, box-shadow .2s ease;
}
#grassi-substack-widget .gr-ss-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 34px rgba(25,52,71,.11) !important;
}
#grassi-substack-widget .gr-ss-image {
  display: block !important;
  width: 100% !important;
  height: 208px !important;
  min-height: 208px !important;
  max-height: 208px !important;
  flex: 0 0 208px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  background: #dbe9ee !important;
}
#grassi-substack-widget .gr-ss-image img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  border: 0 !important;
}
#grassi-substack-widget .gr-ss-card-body {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  min-width: 0 !important;
  padding: 22px !important;
  margin: 0 !important;
}
#grassi-substack-widget .gr-ss-date {
  display: block !important;
  color: var(--gr-accent) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  line-height: 1.5 !important;
  margin: 0 0 10px !important;
  text-transform: uppercase !important;
}
#grassi-substack-widget .gr-ss-card h3 {
  display: block !important;
  width: 100% !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  margin: 0 0 20px !important;
  overflow-wrap: anywhere !important;
}
#grassi-substack-widget .gr-ss-read {
  display: inline-flex !important;
  width: max-content !important;
  max-width: 100% !important;
  align-items: center !important;
  gap: 7px !important;
  margin: auto 0 0 !important;
  color: var(--gr-accent) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
#grassi-substack-widget .gr-ss-read:hover { text-decoration: underline !important; }
/* Subscription: two flexible columns; form from Substack's public /embed URL. */
#grassi-substack-widget > .gr-ss-newsletter {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 30px !important;
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  clear: both !important;
  background: var(--gr-soft) !important;
  border: 1px solid #e2ecef !important;
  border-radius: 16px !important;
  padding: 32px !important;
  margin: 55px 0 0 !important;
}
#grassi-substack-widget .gr-ss-news-copy {
  display: block !important;
  flex: 1 1 300px !important;
  min-width: 0 !important;
  margin: 0 !important;
}
#grassi-substack-widget .gr-ss-news-copy h2 {
  font-size: clamp(25px, 2.5vw, 32px) !important;
  margin: 0 0 12px !important;
}
#grassi-substack-widget .gr-ss-news-copy p {
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: var(--gr-secondary) !important;
  margin: 0 0 20px !important;
}
#grassi-substack-widget .gr-ss-btn {
  display: inline-flex !important;
  align-items: center !important;
  border: 0 !important;
  border-radius: 6px !important;
  background: var(--gr-accent) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  padding: 13px 21px !important;
  text-decoration: none !important;
}
#grassi-substack-widget .gr-ss-btn:hover { background: #114f63 !important; }
#grassi-substack-widget .gr-ss-form-wrap {
  display: block !important;
  flex: 1 1 360px !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 480px !important;
  margin: 0 !important;
  padding: 10px !important;
  background: #fff !important;
  border-radius: 10px !important;
  box-shadow: 0 5px 25px rgba(25,52,71,.05) !important;
}
#grassi-substack-widget .gr-ss-form-wrap iframe {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 280px !important;
  min-height: 280px !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
}
@media (max-width: 950px) {
  #grassi-substack-widget > .gr-ss-posts > .gr-ss-card {
    flex-basis: calc((100% - 26px) / 2) !important;
    width: calc((100% - 26px) / 2) !important;
    max-width: calc((100% - 26px) / 2) !important;
  }
  #grassi-substack-widget > .gr-ss-newsletter { flex-direction: column !important; align-items: stretch !important; }
  #grassi-substack-widget .gr-ss-form-wrap { flex-basis: auto !important; max-width: 100% !important; width: 100% !important; }
}
@media (max-width: 620px) {
  #grassi-substack-widget { padding: 26px 10px 50px !important; }
  #grassi-substack-widget > .gr-ss-intro { margin-bottom: 28px !important; }
  #grassi-substack-widget > .gr-ss-posts { gap: 18px !important; }
  #grassi-substack-widget > .gr-ss-posts > .gr-ss-card {
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  #grassi-substack-widget .gr-ss-image { height: 195px !important; min-height: 195px !important; max-height: 195px !important; flex-basis: 195px !important; }
  #grassi-substack-widget > .gr-ss-newsletter { gap: 18px !important; padding: 20px !important; margin-top: 32px !important; }
}
