:root {
  --if-space-08: 8px;
  --if-space-12: 12px;
  --if-space-16: 16px;
  --if-space-24: 24px;
  --if-space-32: 32px;
  --if-space-48: 48px;
  --if-space-64: 64px;
  --if-section-space: clamp(64px, calc(43.9px + 5.357vw), 100px);
  --if-gutter: clamp(24px, calc(10.6px + 3.571vw), 48px);
  --if-grid-gap: clamp(24px, calc(19.5px + 1.19vw), 32px);
  --if-content-standard: 1300px;
  --if-content-narrow: 860px;
  --if-card-min: 280px;
}

/* These classes are attached to native Divi sections, rows or groups. */
.if-container-standard,
.if-container-narrow {
  box-sizing: border-box;
  width: min(100% - (2 * var(--if-gutter)), var(--if-content-standard)) !important;
  max-width: var(--if-content-standard) !important;
  margin-inline: auto !important;
}
.et_pb_section .et_pb_row.if-container-standard,
.et_pb_section .et_pb_row.if-container-narrow {
  width: min(100% - (2 * var(--if-gutter)), var(--if-content-standard)) !important;
  max-width: var(--if-content-standard) !important;
}

.if-container-narrow { max-width: var(--if-content-narrow) !important; }
.if-container-full { width: 100%; }
.if-section-space { padding-block: var(--if-section-space); }
.if-stack { display: flex; flex-direction: column; gap: var(--if-grid-gap); }
.if-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--if-grid-gap); }
.if-auto-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--if-card-min)), 1fr)); gap: var(--if-grid-gap); }

/* Divi columns must be allowed to shrink inside phone grids. */
.if-container-standard > *,
.if-container-narrow > * { min-width: 0; max-width: 100%; }

.if-pattern-grid-2 { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:var(--if-grid-gap) !important; }
.if-pattern-grid-3 { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:var(--if-grid-gap) !important; }
.if-pattern-grid-4 { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:var(--if-grid-gap) !important; }
.if-pattern-split-40-60 { display:grid !important; grid-template-columns:minmax(0,2fr) minmax(0,3fr) !important; gap:var(--if-grid-gap) !important; }
.if-pattern-cluster { display:flex !important; flex-wrap:wrap !important; gap:var(--if-grid-gap) !important; }

@media (min-width:768px) and (max-width:1024px) {
  .if-pattern-grid-3,
  .if-pattern-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .if-pattern-split-40-60 { grid-template-columns:minmax(0,1fr) !important; }
}

@media (max-width: 767px) {
  .et_pb_section .et_pb_row.if-container-standard,
  .et_pb_section .et_pb_row.if-container-narrow,
  .if-container-standard,
  .if-container-narrow {
    width: calc(100vw - (2 * var(--if-gutter))) !important;
    max-width: calc(100vw - (2 * var(--if-gutter))) !important;
    overflow-wrap: anywhere;
  }
  .if-pattern-grid-2,
  .if-pattern-grid-3,
  .if-pattern-grid-4,
  .if-pattern-split-40-60 { grid-template-columns:minmax(0,1fr) !important; }
  .if-pattern-cluster { flex-direction:column !important; align-items:stretch !important; }
}

/* Fluid type is opt-in until each Figma role passes the line-wrap gate. */
.if-type-h1-fluid { font-size: clamp(32px, calc(15.81px + 4.317vw), 60px); }
.if-type-h2-fluid { font-size: clamp(28px, calc(21.06px + 1.852vw), 40px); }
.if-type-body-l-fluid { font-size: clamp(18px, calc(16.84px + .309vw), 20px); }

/* Text links across the main site content: underline by default, remove it only on pointer hover. */
.et-l--body a[href]:not([class*="button" i]):not([role="button"]):not(.et_pb_video_play):not(:has(img, picture)) {
  text-decoration-line: underline !important;
  text-decoration-skip-ink: auto;
}

.et-l--body a[href]:not([class*="button" i]):not([role="button"]):not(.et_pb_video_play):not(:has(img, picture)):hover,
.et-l--body a[href]:not([class*="button" i]):not([role="button"]):not(.et_pb_video_play):not(:has(img, picture)):hover * {
  text-decoration-line: none !important;
}

.et-l--body a[href]:not([class*="button" i]):not([role="button"]):not(.et_pb_video_play):not(:has(img, picture)):focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 3px;
}

/* Blog post template FAQ spacing: Divi 5 ignores the row/module freeForm padding. */
.blog-post-faq-row .blog-post-faq-shortcode { padding-bottom: 100px !important; }

/* Gutenberg article rhythm. Keep this scoped to the dynamic post-content module. */
.blog-post-gutenberg-content.et_pb_post_content > p {
  margin: 0 0 16px !important;
  padding-bottom: 0 !important;
  text-indent: 0 !important;
}

.blog-post-gutenberg-content.et_pb_post_content > h2 {
  margin: 48px 0 24px !important;
}

.blog-post-gutenberg-content.et_pb_post_content > h3,
.blog-post-gutenberg-content.et_pb_post_content > h4 {
  margin: 32px 0 16px !important;
}

.blog-post-gutenberg-content.et_pb_post_content > ul,
.blog-post-gutenberg-content.et_pb_post_content > ol {
  margin: 24px 0 !important;
  padding-left: 1.5em !important;
}

.blog-post-gutenberg-content.et_pb_post_content li + li {
  margin-top: 8px !important;
}

.blog-post-gutenberg-content.et_pb_post_content > figure,
.blog-post-gutenberg-content.et_pb_post_content > .wp-block-image,
.blog-post-gutenberg-content.et_pb_post_content > .wp-block-gallery,
.blog-post-gutenberg-content.et_pb_post_content > .wp-block-embed,
.blog-post-gutenberg-content.et_pb_post_content > .wp-block-audio,
.blog-post-gutenberg-content.et_pb_post_content > .wp-block-video {
  margin: 48px 0 !important;
}

.blog-post-gutenberg-content.et_pb_post_content > blockquote,
.blog-post-gutenberg-content.et_pb_post_content > .wp-block-quote {
  margin: 32px 0 !important;
  padding: 16px 0 16px 24px !important;
  border-left: 4px solid rgb(217, 181, 97) !important;
}

.blog-post-gutenberg-content.et_pb_post_content > .wp-block-table {
  max-width: 100% !important;
  margin: 32px 0 !important;
  overflow-x: auto !important;
}

.blog-post-gutenberg-content.et_pb_post_content > :first-child {
  margin-top: 0 !important;
}

.blog-post-gutenberg-content.et_pb_post_content > :last-child {
  margin-bottom: 0 !important;
}

.blog-post-author-block,
.blog-post-author-block .et_pb_text_inner,
.ingenium-post-byline {
  margin: 0 !important;
  padding: 0 !important;
  color: #656565 !important;
  font-family: Roboto, Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 24px !important;
}

.blog-post-author-block { margin-top: 48px !important; }

@media (min-width: 768px) and (max-width: 1100px) {
  .blog-post-faq-row .blog-post-faq-shortcode { padding-bottom: 60px !important; }
}

@media (max-width: 767px) {
  .blog-post-faq-row .blog-post-faq-shortcode { padding-bottom: 32px !important; }

  .blog-post-gutenberg-content.et_pb_post_content > p {
    margin-bottom: 16px !important;
  }

  .blog-post-gutenberg-content.et_pb_post_content > h2 {
    margin: 32px 0 16px !important;
  }

  .blog-post-gutenberg-content.et_pb_post_content > h3,
  .blog-post-gutenberg-content.et_pb_post_content > h4 {
    margin: 24px 0 12px !important;
  }

  .blog-post-gutenberg-content.et_pb_post_content > ul,
  .blog-post-gutenberg-content.et_pb_post_content > ol {
    margin: 20px 0 !important;
  }

  .blog-post-gutenberg-content.et_pb_post_content > figure,
  .blog-post-gutenberg-content.et_pb_post_content > .wp-block-image,
  .blog-post-gutenberg-content.et_pb_post_content > .wp-block-gallery,
  .blog-post-gutenberg-content.et_pb_post_content > .wp-block-embed,
  .blog-post-gutenberg-content.et_pb_post_content > .wp-block-audio,
  .blog-post-gutenberg-content.et_pb_post_content > .wp-block-video {
    margin: 32px 0 !important;
  }

  .blog-post-gutenberg-content.et_pb_post_content > blockquote,
  .blog-post-gutenberg-content.et_pb_post_content > .wp-block-quote {
    margin: 24px 0 !important;
    padding: 12px 0 12px 20px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
