/* Atlas page typography. Values follow the Elementor kit's heading scale. */
body.page {
  --atlas-font: var(--e-global-typography-text-font-family, "proxima-nova"), Arial, sans-serif;
  --atlas-body-size: clamp(1.0625rem, 1rem + 0.15vw, 1.125rem);
  --atlas-h1-size: clamp(2rem, 1.35rem + 2.35vw, 3.5rem);
  --atlas-h2-size: clamp(1.5rem, 1.375rem + 0.45vw, 1.75rem);
  --atlas-h3-size: clamp(1.25rem, 1.125rem + 0.4vw, 1.5rem);
  --atlas-h4-size: 1.25rem;
  --atlas-paragraph-gap: 0.75rem;
}

/* Center the Atlas hero and intro copy, calls to action, and standalone grid titles. */
body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"]) .elementor-widget:is(
  /* Homepage hero, section titles, cards, and CTA. */
  .elementor-element-af3b248, .elementor-element-ae70bec, .elementor-element-db7af93,
  .elementor-element-e056df0, .elementor-element-38aaf52, .elementor-element-5cc4059,
  .elementor-element-e7588e3, .elementor-element-18b5f54, .elementor-element-9df6a9e,
  .elementor-element-eacc01f, .elementor-element-9b3c5d7, .elementor-element-76bfe6d,
  .elementor-element-5238efb4,

  /* Industry intros, brand carousels, and the repair parts calls to action. */
  .elementor-element-4a664634, .elementor-element-5ac5d61e,
  .elementor-element-10a997cd, .elementor-element-33ce31c1, .elementor-element-22a52ff3, .elementor-element-6ab1c0e8,
  .elementor-element-5456034e, .elementor-element-1d0fe8dc, .elementor-element-38f4e5d9, .elementor-element-2690204d,
  .elementor-element-2a5ecfc8, .elementor-element-cd5d106,
  .elementor-element-491dbe53, .elementor-element-736989b, .elementor-element-192d16e, .elementor-element-9d0f652,

  /* Showroom, product index, and the form confirmation. */
  .elementor-element-3a42f52c, .elementor-element-159cf254, .elementor-element-61a3a01a,
  .elementor-element-1c0ed8b, .elementor-element-305bbbf, .elementor-element-ad99bd2,
  .elementor-element-d0ee62d, .elementor-element-912cce1, .elementor-element-3398badd,
  .elementor-element-5e05001a, .elementor-element-5a02041b, .elementor-element-78e207d2,
  .elementor-element-3b79acd,

  /* Product line template variants. Each row groups intro and CTA widgets. */
  .elementor-element-daebc5d, .elementor-element-218df83, .elementor-element-36bb2547, .elementor-element-1449fc73,
  .elementor-element-1a4bfea5, .elementor-element-c998b1c, .elementor-element-5a4f8604, .elementor-element-44593226,
  .elementor-element-ad6a6d9, .elementor-element-6b612fb, .elementor-element-731a5d22, .elementor-element-5c565a57,
  .elementor-element-48d16664, .elementor-element-1917fb3, .elementor-element-7cccfdbe, .elementor-element-1cf5d2c0,
  .elementor-element-e659b2f, .elementor-element-76da852, .elementor-element-6a7c62ed, .elementor-element-6b4c9df6
) {
  --atlas-copy-align: center;
}

/* Center standalone introductions and both rows of the Wholesale Locations feature. */
body.page [data-elementor-id="16"] :is(
  .elementor-element-7936ac83, .elementor-element-2d384613, .elementor-element-7eee6d2a
),
body.page [data-elementor-id="466"] .elementor-element-23db2a3a {
  --atlas-copy-align: center;
}

/* The homepage hero uses a larger lead line. */
body.page [data-elementor-type="single-page"] .elementor-widget.elementor-element-af3b248 {
  --atlas-body-size: clamp(1.125rem, 0.95rem + 0.65vw, 1.625rem);
}

/* Align editorial titles with the text column, including older article-style product pages. */
body:is(.page-id-14, .page-id-25, .page-id-519, .page-id-523, .page-id-524, .page-id-526, .page-id-527, .page-id-549, .page-id-551) [data-elementor-type="wp-page"],
body.page [data-elementor-type="wp-page"] .elementor-widget-theme-post-title {
  --atlas-title-align: left;
}

/* Apply the same type scale to native Heading widgets and headings written in a Text Editor. */
body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  :is(.elementor-widget-heading, .elementor-widget-theme-post-title, .elementor-widget-text-editor:not(.elementor-element-cd91c47))
  :is(h1, h2, h3, h4):not(.overlay-box *),
body.page [data-elementor-id="901"] .elementor-element-90683af :is(h2, h3, h4),
body.page #content.site-main > .page-header > .entry-title {
  font-family: var(--atlas-font);
  line-height: 1.2;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  :is(.elementor-widget-heading, .elementor-widget-theme-post-title, .elementor-widget-text-editor:not(.elementor-element-cd91c47)) h1,
body.page #content.site-main > .page-header > .entry-title {
  font-size: var(--atlas-h1-size);
  font-weight: 700;
  text-align: var(--atlas-title-align, center) !important;
}

body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  :is(.elementor-widget-heading, .elementor-widget-text-editor:not(.elementor-element-cd91c47)) h2:not(.overlay-box *),
body.page [data-elementor-id="901"] .elementor-element-90683af h2 {
  font-size: var(--atlas-h2-size) !important;
}

body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  :is(.elementor-widget-heading, .elementor-widget-text-editor:not(.elementor-element-cd91c47)) h3:not(.overlay-box *),
body.page [data-elementor-id="901"] .elementor-element-90683af h3 {
  font-size: var(--atlas-h3-size);
}

body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  .elementor-widget-text-editor:not(.elementor-element-cd91c47) h4:not(.page-id-16 *) {
  font-size: var(--atlas-h4-size);
}

body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  :is(.elementor-widget-heading, .elementor-widget-text-editor:not(.elementor-element-cd91c47)) :is(h2, h3, h4):not(.overlay-box *),
body.page [data-elementor-id="901"] .elementor-element-90683af :is(h2, h3, h4) {
  font-weight: 600;
  text-align: var(--atlas-copy-align, left) !important;
}

/* Rich-text headings have no separate Elementor widget gap. */
body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  .elementor-widget-text-editor:not(.elementor-element-cd91c47) :is(h2, h3, h4),
body.page [data-elementor-id="901"] .elementor-element-90683af :is(h2, h3, h4) {
  margin-block: 0 0.5em;
}

body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  .elementor-widget-text-editor:not(.elementor-element-cd91c47) :is(p, ul, ol) + :is(h2, h3, h4),
body.page [data-elementor-id="901"] .elementor-element-90683af :is(p, ul, ol) + :is(h2, h3, h4) {
  margin-block-start: 1em;
}

/* Limit prose rules to direct content blocks. The contact form and link grids use their own styles. */
body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  :is(.elementor-widget-text-editor, .elementor-widget-text-editor > .elementor-widget-container)
  > :is(p, ul, ol):not(:is(.product-links, .list-adjust, .elementor-element-fe55744, .elementor-element-cd91c47) *),
body.page [data-elementor-id="901"] .elementor-element-90683af :is(p, ul, ol),
body.page [data-elementor-type="wp-page"] .elementor-widget-accordion .elementor-tab-content {
  font-family: var(--atlas-font);
  font-size: var(--atlas-body-size);
  line-height: 1.55;
  text-align: var(--atlas-copy-align, left) !important;
}

body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  :is(.elementor-widget-text-editor, .elementor-widget-text-editor > .elementor-widget-container)
  > :is(p, ul, ol):not(:is(.product-links, .list-adjust, .elementor-element-fe55744, .elementor-element-cd91c47) *),
body.page [data-elementor-id="901"] .elementor-element-90683af :is(p, ul, ol),
body.page [data-elementor-type="wp-page"] .elementor-widget-accordion .elementor-tab-content :is(p, ul, ol) {
  margin-block: 0 var(--atlas-paragraph-gap);
}

body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"])
  :is(.elementor-widget-text-editor, .elementor-widget-text-editor > .elementor-widget-container)
  > :is(p, ul, ol):last-child:not(:is(.product-links, .list-adjust, .elementor-element-fe55744, .elementor-element-cd91c47) *),
body.page [data-elementor-id="901"] .elementor-element-90683af :is(p, ul, ol):last-child,
body.page [data-elementor-type="wp-page"] .elementor-widget-accordion .elementor-tab-content :is(p, ul, ol):last-child {
  margin-block-end: 0;
}

/* Keep narrow Elementor widgets inside their columns at smaller widths. */
body.page :is([data-elementor-id="17"], [data-elementor-id="715"])
  .elementor-widget.elementor-element-4f6c6235,
body.page [data-elementor-id="16"] .elementor-widget.elementor-element-64fddd74 {
  width: min(100%, 740px);
  max-width: 100%;
}

body.page :is([data-elementor-id="17"], [data-elementor-id="715"])
  .elementor-widget.elementor-element-4f6c6235 {
  align-self: flex-start;
}

body.page :is([data-elementor-type="wp-page"], [data-elementor-type="single-page"]) .elementor-widget:is(
  .elementor-element-76bfe6d, .elementor-element-78e207d2, .elementor-element-1449fc73,
  .elementor-element-44593226, .elementor-element-5c565a57, .elementor-element-1cf5d2c0, .elementor-element-6b4c9df6,
  .elementor-element-6ab1c0e8, .elementor-element-2690204d, .elementor-element-9d0f652
) {
  width: min(100%, 795px);
  max-width: 100%;
}

/* Bring the contact location with pasted font sizes in line with its neighbors. */
body.page [data-elementor-id="25"] .elementor-element-cb6ed4d p :is(a, span)[style*="font-size"] {
  font-size: inherit !important;
}

/* Use the Atlas site width with the same side gutters on the three gray sections. */
body.page .elementor :is(
  .elementor-element-30340096, .elementor-element-69ba472d, .elementor-element-3cbf5ffe
) > .elementor-container {
  max-width: 1420px;
  padding-inline: clamp(20px, 3vw, 36px);
}

body.page .elementor :is(
  .elementor-element-30340096, .elementor-element-69ba472d, .elementor-element-3cbf5ffe
) > .elementor-container > .elementor-column > .elementor-widget-wrap,
body.page .elementor-19 .elementor-element.elementor-element-cb3d798 > .elementor-widget-container {
  padding-inline: 0;
}

/* Fill the stripe with the product lists, excluding Residential's empty spacer columns. */
body.page .elementor-19 .elementor-element-40102481 > .elementor-container {
  --atlas-list-columns: 3;
}

body.page .elementor-22 .elementor-element-2b73d8e > .elementor-container {
  --atlas-list-columns: 2;
}

body.page :is(.elementor-19 .elementor-element-40102481, .elementor-22 .elementor-element-2b73d8e)
  > .elementor-container {
  display: grid;
  grid-template-columns: repeat(var(--atlas-list-columns), minmax(0, 1fr));
  gap: 12px clamp(20px, 4vw, 56px);
}

body.page .elementor-19 .elementor-element-40102481
  > .elementor-container > :is(.elementor-element-39a967e2, .elementor-element-5df8f0f5) {
  display: none;
}

body.page :is(.elementor-19 .elementor-element-40102481, .elementor-22 .elementor-element-2b73d8e)
  > .elementor-container > .elementor-column {
  width: auto;
  min-width: 0;
}

body.page :is(
  .elementor-19 .elementor-element-40102481,
  .elementor-22 .elementor-element-2b73d8e,
  .elementor-23 .elementor-element-79fdec92
) > .elementor-container > .elementor-column > .elementor-widget-wrap {
  padding-inline: 0;
}

body.page .elementor-19 .elementor-element-40102481 .elementor-widget-text-editor p {
  text-align: left !important;
}

@media (max-width: 767px) {
  body.page :is(.elementor-19 .elementor-element-40102481, .elementor-22 .elementor-element-2b73d8e)
    > .elementor-container {
    --atlas-list-columns: 1;
  }
}

/* Give the showroom steps wider cards and center any incomplete row. */
body.page .elementor-23 .elementor-element-79fdec92 > .elementor-container {
  --atlas-showroom-columns: 5;
  --atlas-showroom-gap: clamp(24px, 2.25vw, 36px);
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--atlas-showroom-gap);
  padding-block: 16px;
}

body.page .elementor-23 .elementor-element-79fdec92 > .elementor-container > .elementor-column {
  flex: 0 0 calc((100% - (var(--atlas-showroom-columns) - 1) * var(--atlas-showroom-gap)) / var(--atlas-showroom-columns));
  min-width: 0;
}

@media (max-width: 1199px) {
  body.page .elementor-23 .elementor-element-79fdec92 > .elementor-container {
    --atlas-showroom-columns: 3;
  }
}

@media (max-width: 899px) {
  body.page .elementor-23 .elementor-element-79fdec92 > .elementor-container {
    --atlas-showroom-columns: 2;
  }
}

@media (max-width: 599px) {
  body.page .elementor-23 .elementor-element-79fdec92 > .elementor-container {
    --atlas-showroom-columns: 1;
  }
}
