/* Theme-neutral collection section contract. Themes provide only tokens. */
/* The layered defaults never override the unlayered values declared by a theme. */
@layer template-contract {
  :root {
    --spacing-xs: 8px;
    --spacing-sm: 12px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
    --spacing-2xl: 40px;
    --section-card-radius: var(--radius-md, 16px);
    --section-card-padding: var(--spacing-md, 16px);
    --section-gap: var(--spacing-md);
    --section-card-background: var(--template-bg-color-secondary, transparent);
    --section-card-border: color-mix(in srgb, var(--template-font-color, currentColor), transparent 84%);
    --section-card-border-subtle: var(--section-card-border);
    --section-faq-icon-color: var(--color-text-primary, currentColor);
    --section-card-shadow: none;
    --section-card-hover-background: color-mix(in srgb, var(--section-card-background), var(--template-color-0, currentColor) 10%);
    --section-card-hover-border: color-mix(in srgb, var(--template-color-0, currentColor), transparent 48%);
    --section-card-hover-shadow: 0 12px 28px color-mix(in srgb, var(--template-font-color, currentColor), transparent 78%);
    --section-media-radius: var(--section-card-radius);
    --control-radius: var(--section-card-radius);
    --control-bg: var(--section-card-background);
    --control-border: var(--section-card-border);
    --control-text: var(--template-font-color, currentColor);
    --control-focus-ring: var(--template-color-0, currentColor);
    --control-height: 48px;
    --section-control-height: var(--control-height);
    --section-header-max-width: 68ch;
    --section-header-gap: var(--spacing-md);
    --section-header-content-gap: 64px;
    --section-action-link-color: var(--color-text-primary, currentColor);
    --section-action-link-color-hover: var(--section-action-link-color);
    /* Regular sections start at the theme's H2 scale. Hero owns the H1 scale. */
    --section-title-size: var(--heading-2-font-size, 32px);
    --section-title-weight: var(--heading-2-font-weight, 700);
    --section-title-line-height: 1.12;
    --section-subtitle-size: var(--paragraph-font-size, 16px);
    --section-subtitle-weight: var(--paragraph-font-weight, 400);
    --section-subtitle-line-height: 1.5;
    --section-card-title-size: var(--heading-3-font-size, 24px);
    --section-card-title-weight: var(--heading-3-font-weight, 600);
    --section-card-title-line-height: 1.3;
    --section-card-description-size: var(--paragraph-font-size, 16px);
    --section-card-description-weight: var(--paragraph-font-weight, 400);
    --section-card-description-line-height: 1.4;
    --section-price-size: 36px;
    --section-card-index-size: 44px;
    --section-meta-size: 14px;
    --color-accent: var(--template-color-0, currentColor);
    --section-person-role-size: var(--section-meta-size);
    --motion-fast: 140ms;
    --motion-base: 220ms;
    --motion-ease-standard: ease;
    --button-primary-bg: var(--primary-button-bg, var(--template-color-0));
    --button-primary-bg-hover: var(--primary-button-bg-hover, var(--button-primary-bg));
    --button-primary-color: var(--primary-button-color, var(--template-font-color, currentColor));
    --button-primary-color-hover: var(--primary-button-color-hover, var(--button-primary-color));
    --button-secondary-bg: var(--secondary-button-bg, var(--template-color-1));
    --button-secondary-bg-hover: var(--secondary-button-bg-hover, var(--button-secondary-bg));
    --button-secondary-color: var(--secondary-button-color, var(--template-font-color, currentColor));
    --button-secondary-color-hover: var(--secondary-button-color-hover, var(--button-secondary-color));
    --button-secondary-border: var(--secondary-button-border, 0);
    --button-secondary-shadow: var(--secondary-button-shadow, none);
  }

  /* viewport: mobile */
@media (width < 769px) {
    :root {
      --section-title-size: min(var(--heading-2-font-size, 32px), 32px);
    }
  }
}
/* Legacy model classes are normalized during the collection migration. */
.ig-section-media {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--section-media-radius, var(--section-card-radius, 0));
  background-clip: padding-box;
  cursor: pointer;
  pointer-events: auto;
}
.ig-section-media > :is(img, video, iframe) {
  max-width: 100%;
  border-radius: inherit;
}
.ig-section-media > img {
  cursor: pointer;
  pointer-events: auto;
}
section .ig-grid-item img.ig-section-media {
  cursor: pointer;
  pointer-events: auto;
}
img[data-dir="portrait"] {
  object-position: center top;
}
.ig-section-media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ig-section-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ig-section-media > * {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}

/* Page-rhythm hook for new themes and incremental legacy-theme migrations. */
.ig-section-hero > .ig-grid-container {
  min-block-size: var(--hero-min-block-size, auto);
}
.ig-section-media > .ig-section-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ig-section-person {
  width: min(100%, var(--media-person-max-width, 150px));
  aspect-ratio: var(--media-person-aspect-ratio, 1);
  overflow: hidden;
  border-radius: var(--media-person-radius, 50%);
}
.ig-section-media > .ig-section-person {
  width: min(100%, var(--media-person-max-width, 150px));
  height: auto;
  aspect-ratio: var(--media-person-aspect-ratio, 1);
  flex: 0 0 auto;
}
.ig-section-person > img,
.ig-section-person img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
.ig-section-people {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
}
.ig-section-people > .ig-section-person {
  width: var(--section-person-size, 48px);
  height: var(--section-person-size, 48px);
  flex: 0 0 var(--section-person-size, 48px);
}
.ig-section-people > .ig-section-person + .ig-section-person {
  margin-inline-start: var(--section-person-overlap, -12px);
}
.ig-section-proof-summary {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-xs);
}
.ig-section-logo-list {
  align-items: center;
}
.ig-section-logo-row {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-around;
  gap: var(--spacing-md);
}

.ig-section-logo-row > img.ig-section-media {
  width: 0;
  height: 100%;
  min-width: 0;
  flex: 1 1 0;
  object-fit: contain;
}
.ig-section-logo-item {
  display: inline-flex;
  min-width: 0;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
}
.ig-grid-item > img.ig-section-logo,
.ig-section-logo {
  display: block;
  width: var(--section-logo-size, 48px);
  max-width: 100%;
  height: var(--section-logo-size, 48px);
  max-height: 100%;
  flex: 0 0 var(--section-logo-size, 48px);
  object-fit: contain;
}
.ig-grid-item.ig-section-logo-row
  > .ig-section-logo-item
  > img.ig-section-logo {
  width: var(--section-logo-size, 48px);
  height: var(--section-logo-size, 48px);
  object-fit: contain;
}

.ig-section-card {
  border-radius: var(--section-card-radius, 0);
  border: 1px solid var(--section-card-border, transparent);
  background: var(--section-card-background, var(--template-bg-color-secondary, transparent));
  box-shadow: var(--section-card-shadow, none);
  transition: background-color var(--motion-base) var(--motion-ease-standard), border-color var(--motion-base) var(--motion-ease-standard), box-shadow var(--motion-base) var(--motion-ease-standard);
}
.ig-section-card > :is(img, video, iframe) {
  border-radius: inherit;
}
.ig-section-rating {
  display: grid;
  grid-auto-flow: column;
  place-content: center;
  column-gap: var(--spacing-xs);
}
.ig-section-rating-star {
  color: var(--section-rating-inactive-color, var(--section-card-meta, var(--color-text-secondary, currentColor)));
  font-style: normal;
}
.ig-section-rating-star.is-active {
  color: var(--section-rating-active-color, var(--template-color-0, currentColor));
}
.ig-section-rating-star > svg {
  display: block;
  width: 16px;
  height: 16px;
}
.ig-section-map, .ig-section-video {
  width: 100%;
  border: 0;
}
.ig-section-video {
  overflow: hidden;
  border-radius: var(--section-media-radius, var(--section-card-radius));
  background: var(--section-video-background, var(--section-card-background));
  color: var(--control-text);
}
.ig-section-video > :is(video, iframe, img) {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  border: 0;
  border-radius: inherit;
}
.ig-section-video > :is(video, img) {
  object-fit: cover;
}
.ig-section-gallery-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--spacing-sm);
  border-radius: var(--section-card-radius);
  overflow: hidden;
}
.ig-section-gallery-tab {
  display: grid;
  place-items: center;
  min-width: 0;
}
.ig-section-gallery-tab.is-active {
  background: var(--section-card-background);
  color: var(--template-font-color);
  box-shadow: inset 0 0 0 1px var(--template-color-0);
}
.ig-section-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--spacing-sm);
}
.ig-section-feature-optional:last-child > div {
  display: none;
}
/* viewport: mobile */
@media (width < 769px) {
  .ig-section-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.ig-section-slider {
  position: relative;
  display: grid;
  overflow: hidden;
}
.ig-section-slider-viewport {
  display: flex;
  width: 100%;
  height: 100%;
  overflow: hidden;
  scroll-behavior: smooth;
}
.ig-section-slide {
  display: flex;
  flex: 1 0 100%;
  min-width: 100%;
  height: 100%;
  overflow: hidden;
}
.ig-section-slider-control {
  position: absolute;
  z-index: 1;
  top: 50%;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  transform: translateY(-50%);
  border: 0;
  border-radius: var(--control-radius);
  background: color-mix(in srgb, var(--template-bg-color), transparent 20%);
  color: var(--color-text-primary);
  cursor: pointer;
}
.ig-section-slider-control > i,
.ig-section-slider-control > i svg {
  display: block;
  width: calc(var(--control-height) / 2);
  height: calc(var(--control-height) / 2);
}
.ig-section-slider-control:disabled {
  opacity: .42;
  cursor: default;
}
.ig-section-slider-control-left {
  left: var(--spacing-sm);
}
.ig-section-slider-control-right {
  right: var(--spacing-sm);
}
.ig-section-slide-card {
  display: flex;
  flex: 0 0 30%;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}
.ig-section-slide > div:has(> .ig-section-media) {
  display: flex;
  min-width: 0;
}
.ig-section-slide-title {
  margin: 0;
}
.ig-section-slide-description {
  min-width: 0;
  overflow-wrap: anywhere;
}
.ig-section-slider-v3 .ig-section-slide {
  position: relative;
}
.ig-section-slider-v3 .ig-section-slide > div:has(> .ig-section-media) {
  width: 100%;
  height: 100%;
}
.ig-section-slider-v1 .ig-section-slide > div:has(> .ig-section-media) {
  flex: 0 0 66.667%;
}
.ig-section-slider-v1 .ig-section-slide > div:not(:has(> .ig-section-media)) {
  display: grid;
  flex: 0 0 33.333%;
  align-content: center;
  padding: var(--spacing-md);
}
.ig-section-slider-v1 .ig-section-slide > div:has(> .ig-section-media) .ig-section-media {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

/* viewport: belowDesktop */
@media (width < 1025px) {
  .ig-section-slider-v1.ig-grid-container {
    display: grid !important;
    grid-template-columns: var(--control-height) minmax(0, 1fr) var(--control-height) !important;
    grid-template-rows: auto var(--control-height) !important;
    gap: var(--spacing-sm);
    min-inline-size: 0;
  }
  .ig-section-slider-v1 > .ig-section-slider-viewport {
    grid-area: 1 / 1 / 2 / 4 !important;
    min-inline-size: 0;
    block-size: auto;
  }
  .ig-section-slider-v1 > .ig-section-slider-control-left {
    grid-area: 2 / 1 / 3 / 2 !important;
  }
  .ig-section-slider-v1 > .ig-section-slider-control-right {
    grid-area: 2 / 3 / 3 / 4 !important;
  }
  .ig-section-slider-v1 .ig-section-slide {
    flex-direction: column;
    block-size: auto;
  }
  .ig-section-slider-v1 .ig-section-slide > div:has(> .ig-section-media) {
    flex: 0 0 auto;
    aspect-ratio: 16 / 9;
    inline-size: 100%;
  }
  .ig-section-slider-v1 .ig-section-slide > div:has(> .ig-section-media) .ig-section-media {
    aspect-ratio: 16 / 9;
    block-size: auto;
  }
  .ig-section-slider-v1 .ig-section-slide > div:not(:has(> .ig-section-media)) {
    flex: 1 0 auto;
    box-sizing: border-box;
    inline-size: 100%;
    padding: var(--spacing-lg);
  }
}
.ig-section-slider-v1 > .ig-section-slider-control {
  position: relative;
  inset: auto;
  align-self: center;
  justify-self: center;
  width: var(--control-height);
  height: var(--control-height);
  transform: none;
}
.ig-section-slider-v1 .ig-section-slide .ig-section-action {
  display: inline-flex;
  align-items: center;
  justify-self: center;
  justify-content: center;
  gap: var(--spacing-sm);
  margin-block-start: var(--spacing-md);
  text-align: center;
}
.ig-section-slider-v1 .ig-section-slide .ig-section-action > p {
  margin: 0;
}
.ig-section-slider-v1 .ig-section-slide .ig-section-action > i,
.ig-section-slider-v1 .ig-section-slide .ig-section-action > i svg {
  display: block;
  width: 16px;
  height: 16px;
}
.ig-section-slider-v2 .ig-section-slide {
  gap: var(--spacing-sm);
  justify-content: space-evenly;
}
.ig-section-slider-v2 .ig-section-slide-card {
  flex-basis: 30%;
  border: 1px solid var(--section-card-border);
  background: var(--section-card-background);
}
.ig-section-slider-v2 .ig-section-slide-card > div:first-child {
  min-height: 96px;
}
.ig-section-slider-v2 .ig-section-slide-card > div:last-child {
  padding: var(--spacing-md);
}
.ig-section-slider-v2 > :is([data-componentui="slider-button-left"], [data-componentui="slider-button-right"]) {
  align-self: start;
  margin-top: 48px;
}
.ig-section-slider-v3 .ig-section-slide > div:not(:has(> .ig-section-media)) {
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  padding: var(--spacing-md);
  background: color-mix(in srgb, var(--template-bg-color), transparent 35%);
}
.ig-section-slider-v4 .ig-section-slide {
  flex-direction: row;
}
.ig-section-slider-v4 .ig-section-slide > div:has(> .ig-section-media) {
  flex: 0 0 65%;
}
.ig-section-slider-v4 .ig-section-slide > div:not(:has(> .ig-section-media)) {
  display: grid;
  flex: 0 0 35%;
  align-content: center;
  padding: var(--spacing-md);
}
/* viewport: mobile */
@media (width < 769px) {
  .ig-section-slider-v4 .ig-section-slide {
    flex-direction: column;
  }
  .ig-section-slider-v4 .ig-section-slide > div:has(> .ig-section-media),
  .ig-section-slider-v4 .ig-section-slide > div:not(:has(> .ig-section-media)) {
    flex-basis: auto;
    width: 100%;
  }
}
:where(section) :is(.ig-section-action, .ig-button-primary, .ig-button-secondary) {
  text-align: center;
}
:where(section) .ig-section-chip {
  display: grid;
  width: auto;
  height: auto;
  min-width: max-content;
  place-items: center;
  padding: var(--spacing-xs) var(--spacing-sm);
  white-space: nowrap;
}
:where(section) form.ig-section-card,
:where(section) .ig-section-form {
  border: 1px solid var(--section-card-border, transparent);
  border-radius: var(--section-card-radius, 0);
  background: var(--section-card-background, transparent);
  color: var(--control-text, var(--color-text-primary, currentColor));
}
:where(section) :is(.ig-section-description, .ig-section-card-description) {
  color: var(--color-text-secondary, var(--control-text, currentColor));
  line-height: 1.5;
  overflow-wrap: anywhere;
}
:where(section) .ig-section-card {
  transition: background-color var(--motion-base, 220ms) var(--motion-ease-standard, ease),
    border-color var(--motion-base, 220ms) var(--motion-ease-standard, ease),
    box-shadow var(--motion-base, 220ms) var(--motion-ease-standard, ease),
    transform var(--motion-base, 220ms) var(--motion-ease-standard, ease);
}
:where(section:not(.ig-section-blog)) .ig-section-card:hover {
  border-color: var(--section-card-hover-border, var(--section-card-border, currentColor));
  background: var(--section-card-hover-background, var(--section-card-background, transparent));
  box-shadow: var(--section-card-hover-shadow, none);
}
.ig-section-action,
.ig-button-primary,
.ig-button-secondary {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  block-size: var(--section-control-height, 48px);
  min-block-size: 44px;
  padding-inline: var(--section-action-padding-inline, var(--spacing-lg, 24px));
  padding-block: 0;
  align-self: start;
  border: 0;
  font-family: var(--section-action-font-family, var(--font-navigation, inherit));
  font-size: var(--section-action-font-size, 16px);
  font-weight: var(--section-action-font-weight, 700);
  text-decoration: var(--section-action-text-decoration, none);
  cursor: pointer;
  transition: background-color var(--motion-base, 220ms) var(--motion-ease-standard, ease), color var(--motion-base, 220ms) var(--motion-ease-standard, ease), box-shadow var(--motion-base, 220ms) var(--motion-ease-standard, ease), transform var(--motion-base, 220ms) var(--motion-ease-standard, ease);
}
.ig-section-action,
.ig-button-primary {
  border: var(--primary-button-border, var(--button-primary-border, 0));
  border-radius: var(--primary-button-radius, var(--button-primary-radius, var(--button-radius, var(--control-radius, var(--section-card-radius, 12px)))));
}
.ig-button-secondary {
  border: var(--secondary-button-border, var(--button-secondary-border, 0));
  border-radius: var(--secondary-button-radius, var(--button-secondary-radius, var(--button-radius, var(--control-radius, var(--section-card-radius, 12px)))));
  box-shadow: var(--secondary-button-shadow, var(--button-secondary-shadow, none));
}
.ig-section-action > :is(p, span),
:is(.ig-button-primary, .ig-button-secondary) > :is(p, span) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  margin: 0;
  color: inherit;
  text-align: center;
}
.ig-section-action > i {
  display: grid;
  place-items: center;
}
.ig-section-action > i > svg {
  display: block;
}
.ig-section-action,
.ig-button-secondary {
  background: var(--secondary-button-bg, var(--button-secondary-bg, var(--template-color-1, currentColor)));
  color: var(--secondary-button-color, var(--button-secondary-color, var(--template-font-color, currentColor)));
}
.ig-button-primary {
  background: var(--primary-button-bg, var(--button-primary-bg, var(--template-color-0, var(--color-accent, currentColor))));
  color: var(--primary-button-color, var(--button-primary-color, var(--template-font-color, currentColor)));
}
.ig-section-action p,
:is(.ig-button-primary, .ig-button-secondary) > :is(p, span) {
  margin: 0;
  color: inherit;
  text-align: center;
}
.ig-section-action:hover,
:is(.ig-button-primary, .ig-button-secondary):hover {
  box-shadow: var(--section-card-hover-shadow, none);
}
.ig-section-action:hover,
.ig-button-secondary:hover {
  background: var(--secondary-button-bg-hover, var(--button-secondary-bg-hover, var(--button-secondary-bg, transparent)));
  color: var(--secondary-button-color-hover, var(--button-secondary-color-hover, var(--button-secondary-color, var(--template-font-color))));
  text-decoration: var(--section-action-text-decoration-hover, var(--section-action-text-decoration, none));
}
.ig-button-primary:hover {
  background: var(--primary-button-bg-hover, var(--button-primary-bg-hover, var(--button-primary-bg, var(--template-color-0))));
  color: var(--primary-button-color-hover, var(--button-primary-color-hover, var(--button-primary-color, var(--template-font-color))));
}

:where(section) :is(a, button).ig-button-primary:active,
:where(section) :is(a, button).ig-button-secondary:active,
.ig-button-primary:active,
.ig-button-secondary:active {
  transform: translateY(1px) scale(.98);
}

:where(section) :is(a, button).ig-button-primary:focus-visible,
:where(section) :is(a, button).ig-button-secondary:focus-visible,
.ig-button-primary:focus-visible,
.ig-button-secondary:focus-visible {
  outline: 2px solid var(--control-focus-ring-color, currentColor);
  outline-offset: 3px;
}

:is(a, button, input, select, textarea).ig-section-action[disabled],
:is(a, button, input, select, textarea).ig-button-primary[disabled],
:is(a, button, input, select, textarea).ig-button-secondary[disabled],
:is(a, button, input, select, textarea).ig-section-action[aria-disabled="true"],
:is(a, button, input, select, textarea).ig-button-primary[aria-disabled="true"],
:is(a, button, input, select, textarea).ig-button-secondary[aria-disabled="true"],
section :is(a, button, input, select, textarea)[disabled],
section :is(a, button, input, select, textarea)[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .56;
  pointer-events: none;
}

:is(a, button).ig-section-action[aria-busy="true"],
:is(a, button).ig-button-primary[aria-busy="true"],
:is(a, button).ig-button-secondary[aria-busy="true"],
section :is(a, button)[aria-busy="true"] {
  cursor: progress;
}

section form[aria-busy="true"] :is(input, select, textarea, button) {
  cursor: progress;
}

section :is(input, select, textarea)[aria-invalid="true"] {
  border-color: var(--form-error-color, var(--color-danger, currentColor));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--form-error-color, currentColor), transparent 75%);
}

.ig-site-navigation a[aria-current="page"] {
  color: var(--navigation-active-color, var(--color-text-primary, currentColor));
  font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
  section :is(a, button).ig-button-primary:active,
  section :is(a, button).ig-button-secondary:active,
  .ig-button-primary:active,
  .ig-button-secondary:active {
    transform: none;
  }
}
.ig-section-faq-accordion-toggle > i {
  transition: transform var(--motion-fast, 140ms) var(--motion-ease-standard, ease);
}
.ig-section-faq-accordion-toggle[aria-expanded="true"] > i {
  transform: rotate(180deg);
}
@media (prefers-reduced-motion: reduce) {
  .ig-section-faq-accordion-toggle > i {
    transition: none;
  }
}
section :is(a, button, .ig-section-action) {
  cursor: pointer;
}
section a.ig-section-action {
  align-self: center;
  justify-self: center;
  width: fit-content;
  block-size: var(--section-control-height, 48px);
  padding: 0 24px;
}

section
  :is(a, button).ig-grid-item.ig-section-action:is(
    .ig-button-primary,
    .ig-button-secondary,
    .ig-section-button
  ) {
  justify-self: stretch;
  inline-size: 100%;
  max-inline-size: none;
}

section a.ig-section-action:not(.ig-button-primary):not(.ig-button-secondary):not(.ig-section-button) {
  block-size: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--section-action-link-color, var(--color-text-primary, currentColor));
  transition: color var(--motion-fast, 140ms) var(--motion-ease-standard, ease);
}
section a.ig-section-action:not(.ig-button-primary):not(.ig-button-secondary):not(.ig-section-button):hover {
  background: transparent;
  box-shadow: none;
  color: var(--section-action-link-color-hover, var(--section-action-link-color, var(--color-text-primary, currentColor)));
  text-decoration: var(--section-action-text-decoration-hover, var(--section-action-text-decoration, none));
  transform: none;
}

/* viewport: desktop */
@media (min-width: 1025px) {
  section:is(.ig-section-blog-v103, .ig-section-gallery-v103, .ig-section-gallery-v104)
    > .ig-grid-container > a.ig-grid-item.ig-section-action {
    inline-size: 100%;
    justify-self: stretch;
  }
}
:where(.rounded-lg, .rounded-md, .rounded-section, .radius-md, .radius-lg) {
  border-radius: var(--section-card-radius);
}
:where(.rounded-lg, .rounded-md, .rounded-section, .radius-md, .radius-lg) > img,
:where(.rounded-lg, .rounded-md, .rounded-section, .radius-md, .radius-lg) > video {
  border-radius: inherit;
}
:where(.template-bg-secondary, .bg-whitesmoke, .bg-secondary-light) {
  background: var(--section-card-background, var(--template-bg-color-secondary, var(--section-background)));
  border-color: var(--section-card-border, transparent);
}
.ig-section-header {
  display: grid;
  gap: var(--section-header-gap, 16px);
  color: var(--color-text-primary);
}
.ig-section-title {
  margin: 0;
  color: var(--section-title-color, var(--template-font-color, var(--color-text-primary)));
  font-size: var(--section-title-size, var(--heading-2-font-size, 32px));
  line-height: var(--section-title-line-height, 1.08);
  font-weight: var(--section-title-weight, var(--heading-2-font-weight, 700));
}
:where(section, h1, h2, h3) .ig-section-title {
  font-size: var(--section-title-size, var(--heading-2-font-size, 32px));
  line-height: var(--section-title-line-height, 1.08);
  font-weight: var(--section-title-weight, var(--heading-2-font-weight, 700));
}
.ig-section-subtitle {
  margin: 0 0 var(--section-header-content-gap, 42px);
  max-width: min(var(--section-header-max-width, 68ch), 75ch);
  color: var(--section-subtitle-color, var(--template-font-color-secondary, var(--color-text-secondary, var(--color-text-primary))));
  font-size: var(--section-subtitle-size, var(--paragraph-font-size, 16px));
  font-weight: var(--section-subtitle-weight, var(--paragraph-font-weight, 400));
  line-height: var(--section-subtitle-line-height, 1.5);
}
:where(section) > .ig-section-title {
  margin: 0 0 var(--section-header-gap, 16px);
  color: var(--section-title-color, var(--template-font-color, var(--color-text-primary)));
  font-size: var(--section-title-size, var(--heading-2-font-size, 32px));
  line-height: var(--section-title-line-height, 1.08);
  font-weight: var(--section-title-weight, var(--heading-2-font-weight, 700));
}
:where(section) > .ig-section-subtitle {
  margin: 0 0 var(--section-header-content-gap, 42px);
  color: var(--section-subtitle-color, var(--template-font-color-secondary, var(--color-text-secondary, var(--color-text-primary))));
}
:where(section) .ig-section-subtitle {
  justify-self: center;
  text-align: center;
  height: fit-content;
  align-self: center;
  margin-top: var(--section-header-gap, 16px);
}
:where(section) :is(.ig-section-title, .ig-section-subtitle, .ig-section-description) {
  height: fit-content;
  min-height: 0;
  margin: 0;
  padding: 0;
  align-self: center;
}

:where(section) .ig-section-description {
  max-inline-size: var(--section-description-max-inline-size, none);
  font-size: var(--section-description-size, var(--paragraph-font-size, 16px));
  line-height: var(--section-description-line-height, 1.5);
}

/* Grid-based headers reserve several rows for responsive copy. Keep titles
   vertically consistent by default; intentional compositions may override the
   public alignment token on the section root. */
:where(section, .ig-grid-item) .ig-section-title {
  align-self: var(--section-title-block-alignment, center);
  justify-self: var(--section-title-inline-alignment, center);
  justify-content: var(--section-title-content-alignment, center);
  text-align: var(--section-title-text-alignment, center);
}

:where(section.ig-section:not(.ig-section-hero)) .ig-section-title {
  overflow-wrap: anywhere;
}

/* A single outer edge rhythm keeps regular section headers compact. */
:is(
  .ig-section-about-v1,
  .ig-section-content-v103,
  .ig-section-gallery-v10,
  .ig-section-pricing-v1,
  .ig-section-products-v1,
  .ig-section-service-v104,
  .ig-section-testimonial-v101,
  .ig-section-testimonial-v104
) {
  --section-eyebrow-inline-alignment: center;
  --section-eyebrow-text-alignment: center;
}

section.ig-section:not(.ig-section-hero) {
  --section-padding-block-start: 64px;
  --section-padding-block-end: 64px;
  --section-title-block-alignment: start;
  --section-header-content-gap: 32px;
}

/* viewport: mobile */
@media (width < 769px) {
  section.ig-section:not(.ig-section-hero) {
    --section-padding-block-start: 32px;
    --section-padding-block-end: 32px;
  }
}

:where(section, .ig-grid-item) .ig-section-subtitle {
  align-self: start;
}

/* Keep a consistent two-grid-row rhythm when a header grid is followed by a
   separate content block. Grids that contain their own content already encode
   the same spacing in their assigned rows. */
:where(section) .ig-grid-container:has(> .ig-section-title):has(> .ig-section-subtitle) + :not(.ig-grid-container) {
  margin-block-start: var(--section-header-content-gap);
}
.ig-section-description,
.ig-section-card-description,
.ig-section-card-subtitle {
  color: var(--color-text-secondary, var(--template-font-color-secondary, var(--color-text-primary)));
  font-weight: 400;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}
:where(section) :is(.ig-section-card-title, .ig-section-product-name) {
  color: var(--section-card-title, var(--template-font-color, var(--color-text-primary)));
}
:where(section) .ig-section-card-title {
  margin: 0;
  font-size: var(--section-card-title-size, var(--heading-3-font-size, 24px));
  font-weight: var(--section-card-title-weight, var(--heading-3-font-weight, 600));
  line-height: var(--section-card-title-line-height, 1.3);
  font-family: var(--font-heading, inherit);
}
:where(section) .ig-section-card-description {
  margin: 0;
  color: var(--section-card-description, var(--template-font-color-secondary, var(--color-text-secondary, var(--color-text-primary))));
  font-size: var(--section-card-description-size, var(--paragraph-font-size, 16px));
  font-weight: var(--section-card-description-weight, var(--paragraph-font-weight, 400));
  line-height: var(--section-card-description-line-height, 1.4);
  font-family: var(--font-paragraph, inherit);
}
.ig-section-person-name {
  margin: 0;
  font-size: var(--section-card-title-size, var(--heading-3-font-size, 24px));
  font-weight: var(--section-card-title-weight, var(--heading-3-font-weight, 600));
}
.ig-section-person-role {
  margin: 0;
  color: var(--section-person-role-color, inherit);
  font-size: var(--section-person-role-size, var(--section-meta-size, 14px));
  line-height: 1.2;
}
.ig-section-quote {
  --section-quote-mark-gap: .22em;
  --section-quote-mark-size: 72px;
  --section-quote-mark-line-height: .72;
  margin: 0;
  color: var(--section-card-description, var(--color-text-secondary, currentColor));
  font: 400 var(--section-quote-font-size, 24px) / 1.45 var(--font-paragraph, inherit);
  text-wrap: pretty;
}
.ig-section-quote::before {
  content: "\201C";
  flex: 0 0 auto;
  margin-right: var(--section-quote-mark-gap);
  color: var(--section-card-title, currentColor);
  font-size: var(--section-quote-mark-size);
  line-height: var(--section-quote-mark-line-height);
  font-family: var(--font-heading, inherit);
}
.ig-section-card-index {
  align-self: center;
  margin: 0;
  color: var(--section-card-meta, var(--template-color-0, currentColor));
  font: 600 var(--section-card-index-size) / 1 var(--font-heading, inherit);
  letter-spacing: -.06em;
  text-align: start;
}
section .ig-section-card-label,
section .ig-section-chip,
section .ig-section-feature-item {
  margin: 0;
  color: var(--section-card-description, var(--color-text-secondary, currentColor));
  font-size: var(--section-meta-size, 14px);
  line-height: 1.2;
}
section .ig-section-card-label {
  font-family: var(--section-card-label-font-family, var(--font-navigation, inherit));
  font-size: var(--section-card-label-size, 16px);
  font-weight: var(--section-card-label-weight, 400);
  letter-spacing: var(--section-card-label-letter-spacing, normal);
}
section :is(.ig-section-price, .ig-section-product-price) {
  margin: 0;
  color: var(--section-price-color, var(--color-text-primary, currentColor));
  font-family: var(--section-price-font-family, var(--font-heading, inherit));
  font-size: var(--section-price-size, var(--section-card-description-size, 16px));
  font-weight: var(--section-price-weight, 600);
  line-height: var(--section-price-line-height, 1.1);
}
section .ig-section-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--control-chip-border, var(--control-border, currentColor));
  border-radius: var(--control-chip-radius, var(--control-radius, var(--section-card-radius, 12px)));
  background: var(--control-chip-background, var(--control-bg, transparent));
  box-shadow: var(--control-chip-shadow, none);
  color: var(--control-chip-text, var(--control-text, currentColor));
  text-align: center;
}

section :is(button, a).ig-section-chip {
  cursor: pointer;
  transition:
    background-color var(--motion-fast, 140ms) var(--motion-ease-standard, ease),
    border-color var(--motion-fast, 140ms) var(--motion-ease-standard, ease),
    box-shadow var(--motion-fast, 140ms) var(--motion-ease-standard, ease),
    color var(--motion-fast, 140ms) var(--motion-ease-standard, ease),
    transform var(--motion-fast, 140ms) var(--motion-ease-standard, ease);
}

section :is(button, a).ig-section-chip:is(:hover, :focus-visible) {
  border-color: var(--control-chip-hover-border, var(--template-color-0, var(--control-border, currentColor)));
  background: var(--control-chip-hover-background, var(--control-chip-background, var(--control-bg, transparent)));
  box-shadow: var(--control-chip-hover-shadow, var(--control-chip-shadow, none));
  color: var(--control-chip-hover-text, var(--template-color-0, var(--control-text, currentColor)));
  transform: translateY(var(--control-chip-hover-offset, -2px));
}

section :is(button, a).ig-section-chip:focus-visible {
  outline: 2px solid var(--control-chip-focus-ring, var(--control-focus-ring, var(--template-color-0, currentColor)));
  outline-offset: 2px;
}

section :is(button, a).ig-section-chip[aria-pressed="true"] {
  border-color: var(--control-chip-active-border, var(--control-chip-hover-border, var(--template-color-0, currentColor)));
  background: var(--control-chip-active-background, var(--template-color-0, currentColor));
  color: var(--control-chip-active-text, var(--button-primary-color, #fff));
}

@media (prefers-reduced-motion: reduce) {
  section :is(button, a).ig-section-chip {
    transition: none;
  }

  section :is(button, a).ig-section-chip:is(:hover, :focus-visible) {
    transform: none;
  }
}
section .ig-section-eyebrow.ig-section-chip {
  align-self: center;
  justify-self: var(--section-eyebrow-inline-alignment, start);
  box-sizing: border-box;
  width: fit-content;
  min-width: 0;
  max-width: 100%;
  min-block-size: 28px;
  padding: 0 10px;
  border-color: color-mix(in srgb, var(--color-text-primary, var(--template-font-color, currentColor)), transparent 72%);
  border-radius: var(--control-chip-radius, 999px);
  background: color-mix(in srgb, var(--color-text-primary, var(--template-font-color, currentColor)), transparent 94%);
  color: var(--color-text-secondary, var(--color-text-primary, var(--template-font-color, currentColor)));
  line-height: 1;
  text-align: var(--section-eyebrow-text-alignment, start);
}
/* viewport: desktop */
@media (min-width: 1025px) {
  section :is(.ig-grid-container, .ig-grid-inner) > .ig-grid-item.ig-section-chip:not(.ig-section-eyebrow) {
    align-self: end;
    height: 50%;
    box-sizing: border-box;
    padding-block: 0;
  }

  section .ig-grid-inner > .ig-grid-item.ig-section-chip:not(.ig-section-eyebrow) {
    height: 100%;
  }
}

/* viewport: tablet */
@media (min-width: 769px) and (width < 1025px) {
  section :is(.ig-grid-container, .ig-grid-inner).ig-grid-bake-tablet > .ig-grid-item.ig-section-chip:not(.ig-section-eyebrow) {
    align-self: end;
    height: 50%;
    box-sizing: border-box;
    padding-block: 0;
  }

  section .ig-grid-inner.ig-grid-bake-tablet > .ig-grid-item.ig-section-chip:not(.ig-section-eyebrow) {
    height: 100%;
  }
}

/* viewport: mobile */
@media (width < 769px) {
  section .ig-grid-inner.ig-grid-bake-mobile > .ig-grid-item.ig-section-chip {
    align-self: end;
    height: 100%;
    box-sizing: border-box;
    padding-block: 0;
  }
}

section .ig-section-eyebrow {
  align-self: var(--section-eyebrow-block-alignment, auto);
  color: var(--section-eyebrow-color, inherit);
  line-height: var(--section-eyebrow-line-height, inherit);
  margin: 0;
  font-family: var(--font-navigation, var(--font-paragraph, inherit));
  font-size: var(--section-eyebrow-font-size, var(--section-meta-size, 14px));
  font-weight: var(--section-eyebrow-font-weight, 600);
  letter-spacing: var(--section-eyebrow-letter-spacing, normal);
  text-transform: var(--section-eyebrow-text-transform, none);
}

/* viewport: mobile */
@media (width < 769px) {
  section.ig-section .ig-grid-item.ig-section-eyebrow,
  section.ig-section .ig-section-card-label.ig-section-hero-eyebrow,
  section.ig-section .ig-section-eyebrow,
  section.ig-section .ig-section-hero-eyebrow {
    --section-eyebrow-inline-alignment: start;
    --section-eyebrow-text-alignment: left;
    align-self: start;
    justify-self: start;
    justify-content: flex-start;
    text-align: left;
  }
}

.ig-section-stats-v100 {
  padding-block: calc(2 * var(--section-strip-padding-block));
}

.ig-section-stats-v103 {
  --section-card-index-size: 48px;
}

.ig-section-stats-v100 .ig-section-card,
.ig-section-stats-v103 .ig-section-card {
  text-align: center;
}

:is(.ig-section-stats-v100, .ig-section-stats-v103) :is(.ig-section-card-index, .ig-section-card-title) {
  align-self: center;
  justify-self: stretch;
  text-align: center;
}
section h3.ig-grid-item,
section h2.ig-grid-item {
  align-self: center;
  height: fit-content;
}
section h3.ig-grid-item:not(.ig-section-card-title) {
  color: var(--color-text-primary, var(--template-font-color, currentColor));
  font: var(--heading-3-font-weight, var(--section-card-title-weight, 600))
    var(--heading-3-font-size, var(--section-card-title-size, 24px)) / 1.2
    var(--font-heading, inherit);
}
.ig-section-meta-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  column-gap: var(--spacing-xs);
  min-width: 0;
}
.ig-section-meta-icon,
.ig-section-card-heading-icon {
  display: grid;
  inline-size: var(--section-card-heading-icon-size, 24px);
  align-self: center;
  justify-self: center;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
:is(.ig-section-meta-icon, .ig-section-card-heading-icon) > svg {
  display: block;
  width: var(--section-card-heading-icon-size, 24px);
  height: var(--section-card-heading-icon-size, 24px);
}
.ig-section-meta-value {
  min-width: 0;
  margin: 0;
  color: var(--section-card-title, var(--color-text-primary, currentColor));
  font: 700 var(--section-meta-value-size, 36px) / 1 var(--font-heading, inherit);
  text-align: start;
}
.ig-section-card-heading {
  display: grid;
  grid-template-columns: var(--section-card-heading-icon-size, 24px) minmax(0, 1fr);
  align-items: center;
  column-gap: var(--spacing-sm);
  min-width: 0;
}
.ig-section-card-heading .ig-section-card-title {
  min-width: 0;
  margin: 0;
  line-height: 1;
}
:is(.ig-section-social-link, .ig-section-socials > a) {
  display: grid;
  width: var(--section-social-control-size, 26px);
  height: var(--section-social-control-size, 26px);
  aspect-ratio: 1;
  align-self: center;
  justify-self: center;
  place-items: center;
  min-width: 0;
  min-height: 0;
  border: 1px solid var(--section-social-border-color, var(--section-card-border-subtle));
  border-radius: var(--control-pill-radius, var(--radius-full, 999px));
  transition: color var(--motion-fast, 140ms) var(--motion-ease-standard, ease), background-color var(--motion-fast, 140ms) var(--motion-ease-standard, ease), border-color var(--motion-fast, 140ms) var(--motion-ease-standard, ease), box-shadow var(--motion-fast, 140ms) var(--motion-ease-standard, ease), transform var(--motion-fast, 140ms) var(--motion-ease-standard, ease);
}
:is(.ig-section-social-link, .ig-section-socials > a):is(:hover, :focus-visible) {
  border-color: var(--section-social-hover-border-color, var(--template-color-0, currentColor));
  background: var(--section-social-hover-background, var(--template-color-0, currentColor));
  box-shadow: 0 0 0 var(--section-social-hover-ring-width, 3px) var(--section-social-hover-ring-color, color-mix(in srgb, var(--template-color-0, currentColor), white 72%)), var(--section-social-hover-shadow, 0 6px 14px color-mix(in srgb, var(--template-color-0, currentColor), transparent 72%));
  color: var(--section-social-hover-color, #fff);
  transform: translateY(var(--section-social-hover-offset, -2px));
}
:is(.ig-section-social-link, .ig-section-socials > a):focus-visible {
  outline: 2px solid var(--control-focus-ring, var(--template-color-0, currentColor));
  outline-offset: calc(var(--section-social-hover-ring-width, 0px) + 2px);
}
@media (prefers-reduced-motion: reduce) {
  :is(.ig-section-social-link, .ig-section-socials > a) {
    transition: none;
  }
  :is(.ig-section-social-link, .ig-section-socials > a):is(:hover, :focus-visible) {
    transform: none;
  }
}
:is(.ig-section-social-link, .ig-section-socials > a) > i {
  display: grid;
  place-items: center;
  width: var(--section-social-icon-size, 20px);
  height: var(--section-social-icon-size, 20px);
}
:is(.ig-section-social-link, .ig-section-socials > a) > i[tag="twitter"] {
  width: calc(var(--section-social-icon-size, 20px) * 0.82);
  height: calc(var(--section-social-icon-size, 20px) * 0.82);
}
:is(.ig-section-social-link, .ig-section-socials > a) > i > svg {
  display: block;
  width: 100%;
  height: 100%;
}
/* viewport: mobile */
@media (width < 769px) {
  .ig-section-contact .ig-section-media-layered > a.ig-section-meta-value {
    display: flex;
    align-items: center;
    min-block-size: var(--section-control-height, 48px);
  }
  .ig-section-slider-v1 .ig-section-slide .ig-section-action {
    min-block-size: var(--section-control-height, 48px);
    padding-inline: var(--spacing-sm);
  }
  :is(.ig-section-social-link, .ig-section-socials > a) {
    min-width: 44px;
    min-height: 44px;
  }
}
:is(footer > section.bg-primary, footer > .footer_section.bg-primary) {
  --template-font-color: var(--button-primary-color, var(--primary-button-color, #fff));
  --template-font-color-secondary: var(--button-primary-color, var(--primary-button-color, #fff));
  --paragraph-color: var(--button-primary-color, var(--primary-button-color, #fff));
  --template-icon-color: var(--button-primary-color, var(--primary-button-color, #fff));
  --section-social-hover-color: var(--button-primary-color, var(--primary-button-color, #fff));
  color: var(--button-primary-color, var(--primary-button-color, #fff));
}
:is(footer > section.bg-primary, footer > .footer_section.bg-primary)
  :is(h1, h2, h3, h4, h5, h6, p, a, .template-icon-color) {
  color: inherit;
}
section :is(input, textarea, select) {
  min-width: 0;
  border: 1px solid var(--control-border, var(--section-card-hover-border, color-mix(in srgb, currentColor 28%, transparent)));
  border-radius: var(--control-radius, 12px);
  background: var(--control-bg, var(--section-card-background, var(--template-bg-color-secondary, var(--template-bg-color))));
  color: var(--control-text, var(--color-text-primary));
  caret-color: var(--control-text, var(--color-text-primary));
}
section :is(input, textarea, select):focus {
  outline: 2px solid var(--control-focus-ring, var(--section-card-hover-border, currentColor));
  outline-offset: 1px;
}
section input[type="checkbox"], section input[type="radio"] {
  appearance: none;
  width: 16px;
  height: 16px;
  background: transparent;
  border: 1px solid currentColor;
  border-radius: var(--control-check-radius, var(--control-radius, 4px));
  accent-color: var(--template-color-0, currentColor);
}
section input[type="checkbox"]:checked, section input[type="radio"]:checked {
  background: var(--template-color-0, currentColor);
}

section form.template-bg-secondary,
section .ig-section-form.template-bg-secondary {
  overflow: hidden;
  border-radius: var(--section-card-radius);
}
.ig-section-card img,
.ig-section-card video {
  border-radius: inherit;
}
.ig-section-card > .ig-section-media,
.ig-section-card .ig-section-media {
  overflow: hidden;
  border-radius: var(--section-media-radius, var(--section-card-radius));
}
/* A composite card is only a layout wrapper; hover belongs to its leaf cards. */
.ig-section-card:has(> .ig-section-card):hover {
  background: inherit;
  border-color: inherit;
  box-shadow: none;
}
.ig-section-card.shadow-md,
.ig-section-card.shadow-lg,
.ig-section-card.shadow-xl {
  box-shadow: var(--section-card-shadow, none);
}
.ig-section-card.shadow-md:hover,
.ig-section-card.shadow-lg:hover,
.ig-section-card.shadow-xl:hover {
  box-shadow: var(--section-card-hover-shadow);
}
section .ig-section-description {
  align-self: start;
  overflow-wrap: anywhere;
  line-height: 1.45;
  margin: 0;
  padding-bottom: var(--section-header-gap, 16px);
}

/* Legacy page shells author each footer column against a 17-row inner grid. */
footer .ig-grid-container > .ig-grid-inner.ig-grid-item {
  grid-template-rows: repeat(17, minmax(0, 1fr));
}

/* Interactive before-and-after geometry is shared; themes supply its tokens. */
:is(
  .ig-section-before-and-after,
  .ig-section-before-and-after-v1,
  .ig-section-before-and-after-v102,
  .ig-section-before-and-after-v104,
  .ig-section-before-and-after-v105,
  .ig-section-before-and-after-v106,
  .ig-section-before-and-after-v119
) {
  --section-eyebrow-inline-alignment: center;
  --section-eyebrow-text-alignment: center;
}

:is(
  .ig-section-before-and-after,
  .ig-section-before-and-after-v1,
  .ig-section-before-and-after-v102,
  .ig-section-before-and-after-v104,
  .ig-section-before-and-after-v105,
  .ig-section-before-and-after-v106,
  .ig-section-before-and-after-v119
) :is(.ig-section-eyebrow, .ig-section-title, .ig-section-subtitle, .ig-section-description) {
  justify-self: center;
  text-align: center;
}

section:is(
  .ig-section-before-and-after,
  .ig-section-before-and-after-v1,
  .ig-section-before-and-after-v102,
  .ig-section-before-and-after-v104,
  .ig-section-before-and-after-v105,
  .ig-section-before-and-after-v106,
  .ig-section-before-and-after-v119
) .ig-section-eyebrow {
  justify-self: center;
  text-align: center;
}

:is(.ig-section-before-and-after-v104, .ig-section-before-and-after-v105) .ig-section-before-and-after-slider,
.ig-section-before-and-after-v106 .ig-section-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

:is(.ig-section-before-and-after-v105, .ig-section-before-and-after-v106) .ig-section-media,
:is(.ig-section-before-and-after-v105, .ig-section-before-and-after-v106) .ig-section-media > img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.ig-section-before-and-after-v106 :is(
  .ig-section-eyebrow,
  .ig-section-title,
  .ig-section-description,
  .ig-section-action,
  .ig-section-card-label
) {
  z-index: 2;
  justify-self: center;
  text-align: center;
}

/* viewport: mobile */
@media (width < 769px) {
  .ig-section-before-and-after-v106 .ig-section-card.ig-grid-inner {
    display: grid !important;
    grid-template-columns: repeat(26, minmax(0, 1fr)) !important;
    grid-template-rows: auto auto auto auto minmax(128px, 1fr) auto !important;
    gap: var(--spacing-md) 0;
    padding: var(--spacing-lg) 0;
    min-block-size: 544px;
    block-size: auto;
  }
  .ig-section-before-and-after-v106 .ig-section-card > .ig-section-media {
    position: absolute;
    inset: 0;
    z-index: 0;
    grid-area: auto !important;
  }
  .ig-section-before-and-after-v106 .ig-section-eyebrow {
    grid-area: 1 / 3 / 2 / 25 !important;
  }
  .ig-section-before-and-after-v106 .ig-section-title {
    grid-area: 2 / 3 / 3 / 25 !important;
  }
  .ig-section-before-and-after-v106 .ig-section-description {
    grid-area: 3 / 3 / 4 / 25 !important;
  }
  .ig-section-before-and-after-v106 .ig-section-action {
    grid-area: 4 / 3 / 5 / 25 !important;
  }
  .ig-section-before-and-after-v106 .ig-section-card-label {
    grid-row: 6 / 7 !important;
    block-size: auto;
    font-size: 24px;
  }
}

.ig-section-before-and-after-slider {
  position: relative;
  isolation: isolate;
  display: grid;
  overflow: hidden;
  padding: 0;
}

.ig-section-before-and-after-slider::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(
    to right,
    transparent calc(var(--progress) - 1px),
    var(--color-accent) calc(var(--progress) - 1px),
    var(--color-accent) calc(var(--progress) + 1px),
    transparent calc(var(--progress) + 1px)
  );
}

.ig-section-before-and-after-slider > .ig-section-media:not(.ig-section-media-layered) {
  z-index: 0;
}

.ig-section-before-and-after-slider > .ig-section-media-layered {
  z-index: 1;
  clip-path: inset(0 0 0 var(--progress));
}

.ig-section-before-and-after-slider > .ig-section-card-label {
  z-index: 5;
  align-self: start;
  justify-self: center;
  inline-size: fit-content;
  block-size: fit-content;
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--section-card-label-radius, 0);
  background: var(--control-bg);
  color: var(--control-text);
  font-size: var(--section-card-label-size, 16px);
  font-weight: var(--section-card-label-weight, 700);
  line-height: 1;
  letter-spacing: .06em;
  text-align: center;
}

.ig-section-before-and-after-slider-control {
  z-index: 4;
  inline-size: 100%;
  block-size: 100%;
  margin: 0;
  border: 0;
  appearance: none;
  background: transparent;
  outline: none;
  box-shadow: none;
  cursor: default;
}

.ig-section-before-and-after-slider-control:focus-visible,
.ig-section-before-and-after-slider-control:active {
  outline: none;
  box-shadow: none;
}

.ig-section-before-and-after-slider-control::-webkit-slider-runnable-track {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.ig-section-before-and-after-slider-control::-moz-range-track {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.ig-section-before-and-after-slider-control::-webkit-slider-thumb {
  inline-size: var(--control-height);
  block-size: var(--control-height);
  appearance: none;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: ew-resize;
}

.ig-section-before-and-after-slider-control::-moz-range-thumb {
  inline-size: var(--control-height);
  block-size: var(--control-height);
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: ew-resize;
}

.ig-section-before-and-after-slider > .ig-section-before-and-after-slider-handle {
  position: absolute;
  z-index: 5;
  inset-block-start: 50%;
  inset-inline-start: var(--progress);
  display: grid;
  inline-size: var(--control-height);
  block-size: var(--control-height);
  place-items: center;
  border: 2px solid var(--button-primary-bg);
  border-radius: var(--control-radius);
  background: var(--button-primary-bg);
  color: var(--button-primary-color);
  box-shadow: var(--section-card-shadow);
  cursor: ew-resize;
  touch-action: none;
  transform: translate(-50%, -50%);
}

.ig-section-before-and-after-slider > .ig-section-before-and-after-slider-handle > svg {
  inline-size: var(--spacing-lg);
  block-size: var(--spacing-lg);
}

.ig-section-before-and-after-slider:has(.ig-section-before-and-after-slider-control:focus-visible:not(:active)) .ig-section-before-and-after-slider-handle {
  outline: 2px solid var(--control-focus-ring);
  outline-offset: 2px;
}

.ig-section-before-and-after .ig-section-actions:not(.ig-grid-inner) {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-md);
}
.ig-section-before-and-after .ig-section-actions.ig-grid-inner {
  display: grid;
  gap: 0;
}
.ig-section-before-and-after .ig-section-actions.ig-grid-inner > .ig-section-action {
  align-self: stretch;
  justify-self: stretch;
  inline-size: 100%;
  min-inline-size: 0;
  block-size: 100%;
}

.ig-section-before-and-after .ig-section-action {
  min-inline-size: 176px;
  justify-content: center;
  white-space: nowrap;
}

/* viewport: mobile */
@media (width < 769px) {
  .ig-section-before-and-after .ig-section-actions,
  .ig-section-before-and-after .ig-section-actions.ig-grid-inner {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: var(--spacing-md);
  }

  .ig-section-before-and-after .ig-section-action {
    inline-size: 100%;
    min-inline-size: 0;
  }
}
/* viewport: mobile */
@media (width < 769px) {
  main > section.ig-section:not(.ig-section-hero):not(.ig-section-partners) {
    --section-title-inline-alignment: start;
    --section-title-content-alignment: start;
    --section-title-text-alignment: left;
  }

  main > section.ig-section:not(.ig-section-hero):not(.ig-section-partners)
    :is(.ig-section-subtitle, .ig-section-description) {
    justify-self: stretch;
    text-align: left;
  }

  :is(.ig-section-service-v102, .ig-section-why-us-v102, .ig-section-content-v102, .ig-section-about-v102, .ig-section-testimonial-v102, .ig-section-pricing-v102, .ig-section-map-v102) .ig-section-card,
  :is(.ig-section-service-v102, .ig-section-why-us-v102, .ig-section-content-v102, .ig-section-about-v102, .ig-section-testimonial-v102, .ig-section-pricing-v102, .ig-section-map-v102) .ig-section-card :is(.ig-section-card-index, .ig-section-card-label, .ig-section-card-subtitle, .ig-section-card-title, .ig-section-card-description, .ig-section-quote, .ig-section-person-name, .ig-section-person-role) {
    align-self: center;
    justify-self: center;
    text-align: center;
  }
  .ig-section-service-v102 .ig-section-card .ig-section-card-title {
    justify-self: stretch;
    text-align: left;
  }
}

:is(.ig-section-before-and-after-v1, .ig-section-before-and-after-v104) .ig-section-card-label {
  align-self: start;
  justify-self: center;
  font-size: 48px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
}
.ig-section-before-and-after-v104 :is(.ig-section-eyebrow, .ig-section-title, .ig-section-subtitle),
.ig-section-before-and-after-v105 :is(.ig-section-eyebrow, .ig-section-title, .ig-section-subtitle) {
  justify-self: center;
  text-align: center;
}
:is(.ig-section-before-and-after-v104, .ig-section-before-and-after-v105) .ig-section-eyebrow {
  align-self: center;
  inline-size: fit-content;
  padding: 0;
  font-size: var(--section-meta-size);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
:is(.ig-section-before-and-after-v104, .ig-section-before-and-after-v105) .ig-section-title {
  align-self: center;
  max-inline-size: 18ch;
  font-size: var(--heading-2-font-size, 36px);
  line-height: 1;
}
:is(.ig-section-before-and-after-v104, .ig-section-before-and-after-v105) .ig-section-subtitle {
  align-self: center;
  max-inline-size: 608px;
}
.ig-section-before-and-after-v104 .ig-section-card-label {
  font-size: 32px;
}
.ig-section-before-and-after-v105 .ig-section-card-label {
  align-self: start;
  font-size: 68px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
}
.ig-section-before-and-after-v105 .ig-section-before-and-after-slider-handle {
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
}
.ig-section-before-and-after-v105 {
  padding-block-end: calc(2 * var(--spacing-xl));
}
.ig-section-before-and-after-v105 .ig-section-action {
  padding-inline: var(--spacing-lg);
}
.ig-section-before-and-after-v105 .ig-section-actions {
  display: flex;
  align-items: center;
  justify-content: center;
}
.ig-section-before-and-after-v106 :is(.ig-section-eyebrow, .ig-section-title, .ig-section-description, .ig-section-action, .ig-section-card-label) {
  justify-self: center;
  text-align: center;
}
.ig-section-before-and-after-v106 :is(.ig-section-eyebrow, .ig-section-title, .ig-section-description) {
  color: var(--color-on-primary, #ffffff);
}
.ig-section-before-and-after-v106 .ig-section-eyebrow {
  align-self: end;
  font-size: var(--section-meta-size);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--color-on-primary, #ffffff) 85%, transparent);
}
.ig-section-before-and-after-v106 .ig-section-title {
  align-self: center;
  max-inline-size: 18ch;
  font-size: var(--heading-2-font-size, 40px);
  line-height: 1.05;
  color: var(--color-on-primary, #ffffff);
}
.ig-section-before-and-after-v106 .ig-section-description {
  align-self: start;
  max-inline-size: 768px;
  color: color-mix(in srgb, var(--color-on-primary, #ffffff) 90%, transparent);
}
.ig-section-before-and-after-v106 {
  padding-block: calc(2 * var(--spacing-xl));
}
.ig-section-before-and-after-v106 .ig-section-action,
.ig-section-before-and-after-v106 .ig-section-card-label {
  align-self: center;
}
.ig-section-before-and-after-v106 .ig-section-card-label {
  font-size: 36px;
  font-weight: 600;
  line-height: 1;
  color: var(--color-on-primary, #ffffff);
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
}
:is(.ig-section-stats-v100, .ig-section-content-v100, .ig-section-testimonial-v100) {
  --section-eyebrow-inline-alignment: center;
  --section-eyebrow-text-alignment: center;
}
:is(.ig-section-stats-v100, .ig-section-content-v100, .ig-section-testimonial-v100) .ig-section-title {
  justify-self: center;
  text-align: center;
}

section.ig-section-before-and-after-v102 > div > a.ig-grid-item.ig-section-action {
  align-self: center;
  block-size: var(--control-height);
  inline-size: var(--section-before-and-after-action-inline-size-mobile, 12.5rem);
  min-block-size: var(--control-height);
  max-inline-size: 100%;
  justify-self: center;
}

/* viewport: mobile */
@media (width < 769px) {
  .ig-section-hero .ig-section-actions:not(.ig-section-actions-grid-contents) {
    inline-size: min(100%, var(--section-hero-actions-inline-size-mobile, 20rem));
    justify-self: center;
    margin-block-end: var(--spacing-lg, 1.5rem);
  }

  .ig-section-hero .ig-section-actions:not(.ig-section-actions-grid-contents) > .ig-section-action {
    inline-size: 100%;
    max-inline-size: 100%;
  }

  .ig-section-hero .ig-section-actions.ig-section-actions-grid-contents > .ig-section-action,
  .ig-section-hero > .ig-grid-container > a.ig-grid-item.ig-section-action {
    inline-size: var(--section-hero-action-inline-size-mobile, 12.5rem);
    max-inline-size: 100%;
    justify-self: center;
  }

  .ig-section-hero .ig-section-actions.ig-section-actions-grid-contents > .ig-section-action:last-child,
  .ig-section-hero > .ig-grid-container > a.ig-grid-item.ig-section-action:last-of-type {
    margin-block-end: var(--spacing-lg, 1.5rem);
  }
}
/* viewport: desktop */
@media (min-width: 1025px) {
  section.ig-section-before-and-after-v102 > div > a.ig-grid-item.ig-section-action {
    inline-size: 100%;
    justify-self: stretch;
  }
}

/* viewport: mobile */
@media (width < 769px) {
  section :is(h1, h2, h3).ig-section-title {
    font-size: min(var(--section-title-size, 32px), 32px);
  }
  section.ig-section-before-and-after-v106 .ig-section-description {
    font-size: max(16px, var(--section-description-size, 16px));
    padding: 0;
  }
  section.ig-section-before-and-after-v106 .ig-section-title {
    font-size: 32px;
  }
  section.ig-section-before-and-after-v106 .ig-section-action {
    white-space: normal;
  }
  section.ig-section-before-and-after-v106 .ig-section-card-label {
    font-size: 24px;
  }
}

/* viewport: tablet */
@media (min-width: 769px) and (width < 1025px) {
  .ig-section-question-v103 .ig-section-faq-accordion,
  .ig-section-contact-v100 .ig-section-form,
  .ig-section-before-and-after-v106 .ig-section-card {
    grid-column: 1 / 51 !important;
  }
  /* Compact companion cards retain the dedicated hero composition on tablets. */
  .ig-section-hero-v124 > .ig-grid-container {
    grid-template-rows: repeat(26, 28px) !important;
  }
}
