/* October responsive review: opt-in marketing pages only. See the section-level
   reference matrix in docs/website-responsive-review.md. Archives keep their own
   typography. Imported Elementor alignment and widget sizes need scoped overrides. */
.marketing-layout {
  --marketing-width: var(--max-width);
  --marketing-gutter: var(--container-gutter);
  --marketing-display: clamp(2rem, 3.6vw, 52px);
  --marketing-section: clamp(1.75rem, 3.4vw, 48px);
  --marketing-subsection: clamp(1.5rem, 2.6vw, 36px);
  --marketing-compact: clamp(1.5rem, 2.4vw, 32px);
}
/* Imported pages retain their source container width and gutter variants.
   The previous blanket container override narrowed every source section. */
/* Imported source styles own hero height, inner padding, alignment and type.
   Their original padding already reserves room for the shared header. */
.marketing-layout.pl-home .pl-hero-inner { display: grid; gap: var(--spacing-lg); height: auto; grid-template-rows: auto; }
.marketing-layout.pl-home .hero .pl-button { justify-self: start; }
/* Source uses h3/h4 for some major section titles. Explicit roles avoid turning
   every card title into a display heading or flattening every heading to 24px. */
.marketing-title-display { --marketing-title-size: var(--marketing-display); }
.marketing-title-section { --marketing-title-size: var(--marketing-section); }
.marketing-title-subsection { --marketing-title-size: var(--marketing-subsection); }
.marketing-title-compact { --marketing-title-size: var(--marketing-compact); }
/* These four CoderFlow headings use Inter in the loaded WordPress reference.
   Its existing font-face definitions remain responsible for loading the face. */
.marketing-layout.product-content :is(h2,h3,h4).marketing-title-inter { font-family: Inter, sans-serif !important; }
/* Solution card headings are subordinate to Five Paths, not container-sized
   section titles. Shared rows align descriptions/actions despite title wrapping. */
.marketing-layout.solutions-overview .elementor-element-4600699 > .e-con {
  display: grid;
  align-items: start;
  grid-template-rows: subgrid;
  grid-row: span 4;
  row-gap: var(--spacing-sm);
}
.marketing-layout.solutions-overview .elementor-element-4600699 > .e-con > .e-con {
  width: 100%;
  padding: 0;
}

.marketing-layout.solutions-overview .elementor-element-4600699 > .e-con > .elementor-widget { margin: 0; }
.marketing-layout.solutions-overview .elementor-element-4600699 > .e-con > .elementor-widget-button { align-self: stretch; }
.marketing-layout.solutions-overview .elementor-element-4600699 .elementor-widget-button :is(.elementor-widget-container,.elementor-button-wrapper) { height: 100%; }
.marketing-layout.solutions-overview .elementor-element-4600699 .elementor-button { display: flex; height: 100%; align-items: center; justify-content: center; }
/* Staff's accepted wrapping remains; the pain-point descriptions now start on
   the same row, with equal boxes and no fixed text heights. */
.marketing-layout.service-content .elementor-element-6839015 > .e-con {
  display: grid;
  align-items: start;
  grid-template-rows: subgrid;
  grid-row: span 2;
  row-gap: var(--spacing-sm);
}
.marketing-layout.service-content .elementor-element-6839015 > .e-con > .elementor-widget { margin: 0; }
/* Imported nonbreaking phrases and flex button labels must fit their own cards,
   even when the page itself hides horizontal overflow. */
.marketing-layout :is(p,.elementor-button-text) { overflow-wrap: anywhere; }
.marketing-layout .elementor-button-content-wrapper { min-width: 0; max-width: 100%; }
.marketing-layout .elementor-button-text { min-width: 0; }
.marketing-layout.wf05 .elementor :is(.elementor-element-d0047a9,.elementor-element-5fd2bf7,.elementor-element-9272f17,.elementor-element-897ccf7) {
  width: auto;
  flex: 0 0 auto;
}
@media (max-width: 600px) {
  .marketing-layout.wf-debt.service-content .elementor .fp2-row { display: grid; grid-template-columns: minmax(0,1fr); }
  .marketing-layout.wf-debt.service-content .elementor .fp2-step { width: 100%; max-width: 100%; }
}
@media (max-width: 767px) {
  .marketing-layout { --marketing-gutter: var(--spacing-md); }
  .marketing-layout.pl-home .hero .pl-button { justify-self: center; }
}
@media (max-width: 600px) {
  .marketing-layout.solutions-overview .elementor-element-4600699 > .e-con,
  .marketing-layout.service-content .elementor-element-6839015 > .e-con { grid-row: auto; grid-template-rows: auto; }
}
/* Source hero copies include fixed lateral margins at intermediate desktop
   breakpoints. Keep their source width, within the shared inner container. */
.marketing-layout.product-content .elementor .elementor-element.marketing-hero-copy {
 margin-inline:0!important; max-width:100%!important; min-width:0;
}
.marketing-layout.product-content .marketing-hero .elementor-widget { max-width:100%; min-width:0; }
