/* ── HubSpot default modules ──
   The reset in base.css strips margins and list bullets, which theme
   modules restyle themselves. HubSpot's own rich text, header and image
   modules don't, so restore readable defaults for them here. HubSpot marks
   its own modules with a widget-type-* class (theme modules never get one),
   and :where() keeps these at zero specificity so editor styles still win. */

:where(.hs_cos_wrapper[class*='widget-type-']) {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--text-dark);
}

:where(.hs_cos_wrapper[class*='widget-type-']) :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.15;
  color: inherit;
  margin: 0 0 0.6em;
}

:where(.hs_cos_wrapper[class*='widget-type-']) h1 { font-size: clamp(2.25rem, 4.5vw, 3.5rem); }
:where(.hs_cos_wrapper[class*='widget-type-']) h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); }
:where(.hs_cos_wrapper[class*='widget-type-']) h3 { font-size: clamp(1.35rem, 2vw, 1.75rem); }
:where(.hs_cos_wrapper[class*='widget-type-']) h4 { font-size: 1.25rem; }
:where(.hs_cos_wrapper[class*='widget-type-']) h5 { font-size: 1.1rem; }
:where(.hs_cos_wrapper[class*='widget-type-']) h6 { font-size: 1rem; }

:where(.hs_cos_wrapper[class*='widget-type-']) :is(p, ul, ol, blockquote, table, figure, pre) {
  margin: 0 0 1.1rem;
}

:where(.hs_cos_wrapper[class*='widget-type-']) :is(p, ul, ol, blockquote, table, figure, pre):last-child {
  margin-bottom: 0;
}

:where(.hs_cos_wrapper[class*='widget-type-']) ul {
  list-style: disc;
  padding-left: 1.4em;
}

:where(.hs_cos_wrapper[class*='widget-type-']) ol {
  list-style: decimal;
  padding-left: 1.4em;
}

:where(.hs_cos_wrapper[class*='widget-type-']) li + li {
  margin-top: 0.35em;
}

:where(.hs_cos_wrapper[class*='widget-type-']) a:not(.hs-button) {
  color: var(--turquoise-deep);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

:where(.hs_cos_wrapper[class*='widget-type-']) blockquote {
  border-left: 3px solid var(--turquoise);
  padding-left: 1.25rem;
  font-style: italic;
  color: var(--text-sec-dark);
}

:where(.hs_cos_wrapper[class*='widget-type-']) img {
  height: auto;
}

:where(.hs_cos_wrapper[class*='widget-type-']) hr {
  border: 0;
  border-top: 1px solid rgba(5, 15, 30, 0.12);
  margin: 2rem 0;
}

:where(.hs_cos_wrapper[class*='widget-type-']) table {
  width: 100%;
  border-collapse: collapse;
}

:where(.hs_cos_wrapper[class*='widget-type-']) :is(th, td) {
  padding: 0.6rem 0.8rem;
  border: 1px solid rgba(5, 15, 30, 0.1);
  text-align: left;
}

/* HubSpot's button module and rich text CTAs both use .hs-button. */
.hs-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--dark);
  background: var(--gradient-brand);
  border: none;
  border-radius: var(--radius-pill);
  padding: 0.8rem 1.8rem;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
}

.hs-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(77, 217, 192, 0.3);
}
