/* Nomad Landing Page Builder v1.5.0
 * Scoped styling for the Nomad landing-page project only.
 */

/* Full-width landing canvas. These rules apply only to Nomad generated landing pages. */
html body.stlpb-page,
body.stlpb-page.stlpb-canvas-template {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: none;
  overflow-x: hidden;
}

body.stlpb-page #stlpb-landing-page,
body.stlpb-page .stlpb-landing-page,
body.stlpb-page .elementor,
body.stlpb-page .elementor-location-single,
body.stlpb-page .elementor-widget-theme-post-content,
body.stlpb-page .elementor-widget-theme-post-content > .elementor-widget-container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Fallback for themes that still try to render chrome around the landing pages. */
body.stlpb-page header#masthead,
body.stlpb-page footer#colophon,
body.stlpb-page .site-header,
body.stlpb-page .site-footer,
body.stlpb-page .main-header,
body.stlpb-page .main-footer,
body.stlpb-page .theme-header,
body.stlpb-page .theme-footer,
body.stlpb-page .elementor-location-header,
body.stlpb-page .elementor-location-footer {
  display: none !important;
}

/* Shared project presentation. Native Elementor controls remain editable because this stylesheet contains no forced widget-level !important rules. */

body.stlpb-page .site,
body.stlpb-page .site-content,
body.stlpb-page .content-area,
body.stlpb-page .entry-content,
body.stlpb-page main,
body.stlpb-page article {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.stlpb-page .stlpb-nav,
body.stlpb-page .stlpb-hero,
body.stlpb-page .stlpb-page-hero,
body.stlpb-page .stlpb-section,
body.stlpb-page .stlpb-section-tight,
body.stlpb-page .stlpb-footer {
  width: 100%;
  max-width: none;
}

body.stlpb-page {
  --stlpb-bg: #f7f1df;
  --stlpb-card: #fffaf0;
  --stlpb-primary: #3b3023;
  --stlpb-primary-soft: rgba(59, 48, 35, 0.86);
  --stlpb-primary-invert: #fffaf0;
  --stlpb-text: #332b20;
  --stlpb-muted: #756b5d;
  --stlpb-border: rgba(59, 48, 35, 0.16);
  --stlpb-accent: #b86f35;
  --stlpb-accent-dark: #935529;
  background: var(--stlpb-bg);
  color: var(--stlpb-text);
}

body.stlpb-page .elementor,
body.stlpb-page .elementor-widget,
body.stlpb-page .elementor-widget-container {
  font-family: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.stlpb-page h1,
body.stlpb-page h2,
body.stlpb-page h3,
body.stlpb-page .stlpb-serif,
body.stlpb-page .elementor-heading-title {
  font-family: "Cormorant Garamond", ui-serif, Georgia, serif;
  font-weight: 400;
  letter-spacing: -0.018em;
}

body.stlpb-page a {
  color: inherit;
}

body.stlpb-page .stlpb-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid var(--stlpb-border);
  background: rgba(247, 241, 223, 0.92);
  backdrop-filter: blur(14px);
}

body.stlpb-page .stlpb-nav .elementor-container,
body.stlpb-page .stlpb-nav.e-con {
  min-height: 82px;
}

body.stlpb-page .stlpb-nav-menu {
  display: flex;
  justify-content: flex-end;
  gap: clamp(16px, 2.5vw, 42px);
  align-items: center;
  flex-wrap: wrap;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: var(--stlpb-muted);
}

body.stlpb-page .stlpb-nav-menu a:hover,
body.stlpb-page .stlpb-footer-links a:hover {
  color: var(--stlpb-accent);
}

body.stlpb-page .stlpb-quote-link,
body.stlpb-page .stlpb-text-link {
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
  color: var(--stlpb-primary);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .22em;
  text-decoration: none;
  transition: color .2s ease, border-color .2s ease;
}

body.stlpb-page .stlpb-quote-link:hover,
body.stlpb-page .stlpb-text-link:hover {
  color: var(--stlpb-accent);
  border-color: var(--stlpb-accent);
}

body.stlpb-page .stlpb-section {
  padding: clamp(76px, 9vw, 128px) 24px;
}

body.stlpb-page .stlpb-section-tight {
  padding: clamp(56px, 7vw, 88px) 24px;
}

body.stlpb-page .stlpb-hero {
  min-height: min(88vh, 900px);
  overflow: hidden;
}

body.stlpb-page .stlpb-hero .elementor-heading-title,
body.stlpb-page .stlpb-hero-title .elementor-heading-title {
  font-size: clamp(48px, 7vw, 104px);
  line-height: 0.98;
  color: var(--stlpb-primary-invert);
  max-width: 980px;
}

body.stlpb-page .stlpb-page-hero .elementor-heading-title {
  font-size: clamp(42px, 5vw, 78px);
  line-height: 1.02;
  color: var(--stlpb-primary-invert);
  max-width: 940px;
}

body.stlpb-page .stlpb-hero-copy,
body.stlpb-page .stlpb-page-hero-copy {
  color: var(--stlpb-primary-invert);
  max-width: 700px;
  font-size: clamp(16px, 1.4vw, 20px);
  line-height: 1.75;
}

body.stlpb-page .stlpb-eyebrow {
  color: var(--stlpb-accent);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .3em;
}

body.stlpb-page .stlpb-eyebrow-light {
  color: rgba(255, 250, 240, .72);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .32em;
}

body.stlpb-page .stlpb-heading .elementor-heading-title {
  color: var(--stlpb-primary);
  font-size: clamp(38px, 5vw, 74px);
  line-height: 1.04;
}

body.stlpb-page .stlpb-heading-small .elementor-heading-title {
  color: var(--stlpb-primary);
  font-size: clamp(28px, 3.1vw, 46px);
  line-height: 1.1;
}

body.stlpb-page .stlpb-copy {
  color: var(--stlpb-muted);
  font-size: 16px;
  line-height: 1.78;
  font-weight: 300;
}

body.stlpb-page .stlpb-copy-large {
  color: var(--stlpb-muted);
  font-size: clamp(17px, 1.6vw, 22px);
  line-height: 1.7;
  font-weight: 300;
}

body.stlpb-page .stlpb-dark {
  background: var(--stlpb-primary);
  color: var(--stlpb-primary-invert);
}

body.stlpb-page .stlpb-dark .stlpb-heading .elementor-heading-title,
body.stlpb-page .stlpb-dark .stlpb-heading-small .elementor-heading-title {
  color: var(--stlpb-primary-invert);
}

body.stlpb-page .stlpb-dark .stlpb-copy,
body.stlpb-page .stlpb-dark .stlpb-copy-large {
  color: rgba(255, 250, 240, .73);
}

body.stlpb-page .stlpb-metrics .elementor-heading-title {
  font-size: clamp(42px, 5vw, 72px);
  line-height: 1;
  color: var(--stlpb-primary);
}

body.stlpb-page .stlpb-label {
  color: var(--stlpb-muted);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .2em;
  line-height: 1.6;
}

body.stlpb-page .stlpb-logo-grid img {
  max-height: 56px;
  width: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .68;
  transition: opacity .2s ease, filter .2s ease;
}

body.stlpb-page .stlpb-logo-grid img:hover {
  filter: grayscale(0);
  opacity: 1;
}

body.stlpb-page .stlpb-card,
body.stlpb-page .stlpb-project-card,
body.stlpb-page .stlpb-service-card,
body.stlpb-page .stlpb-resource-card,
body.stlpb-page .stlpb-testimonial-card {
  background: var(--stlpb-card);
  border: 1px solid var(--stlpb-border);
  transition: background .2s ease, transform .25s ease, border-color .25s ease;
}

body.stlpb-page .stlpb-card:hover,
body.stlpb-page .stlpb-project-card:hover,
body.stlpb-page .stlpb-service-card:hover,
body.stlpb-page .stlpb-resource-card:hover {
  border-color: rgba(184, 111, 53, .45);
  transform: translateY(-3px);
}

body.stlpb-page .stlpb-project-card img,
body.stlpb-page .stlpb-img-tall img,
body.stlpb-page .stlpb-img-wide img {
  width: 100%;
  object-fit: cover;
}

body.stlpb-page .stlpb-img-tall img {
  aspect-ratio: 4 / 5;
}

body.stlpb-page .stlpb-img-wide img {
  aspect-ratio: 16 / 10;
}

body.stlpb-page .stlpb-project-card .elementor-widget-image {
  overflow: hidden;
}

body.stlpb-page .stlpb-project-card img {
  transition: transform 900ms ease;
}

body.stlpb-page .stlpb-project-card:hover img {
  transform: scale(1.035);
}

body.stlpb-page .stlpb-card-title .elementor-heading-title {
  color: var(--stlpb-primary);
  font-size: 28px;
  line-height: 1.15;
}

body.stlpb-page .stlpb-card-title-small .elementor-heading-title {
  color: var(--stlpb-primary);
  font-size: 24px;
  line-height: 1.18;
}

body.stlpb-page .stlpb-meta,
body.stlpb-page .stlpb-mini-meta {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--stlpb-muted);
}

body.stlpb-page .stlpb-list ul {
  margin: 0;
  padding-left: 1.2em;
}

body.stlpb-page .stlpb-list li {
  margin-bottom: 10px;
  color: var(--stlpb-muted);
  line-height: 1.65;
}

body.stlpb-page .stlpb-dark .stlpb-list li {
  color: rgba(255, 250, 240, .75);
}

body.stlpb-page .elementor-button,
body.stlpb-page button.elementor-button {
  border-radius: 0;
  background: var(--stlpb-primary);
  color: var(--stlpb-primary-invert);
  padding: 18px 28px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .25em;
  font-weight: 500;
}

body.stlpb-page .elementor-button:hover,
body.stlpb-page button.elementor-button:hover {
  background: var(--stlpb-accent);
  color: var(--stlpb-primary-invert);
}

body.stlpb-page .stlpb-dark .elementor-button {
  background: var(--stlpb-primary-invert);
  color: var(--stlpb-primary);
}

body.stlpb-page .stlpb-dark .elementor-button:hover {
  background: var(--stlpb-accent);
  color: var(--stlpb-primary-invert);
}

body.stlpb-page .stlpb-filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.stlpb-page .stlpb-filter-pills span {
  border: 1px solid var(--stlpb-border);
  padding: 9px 13px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--stlpb-muted);
}

body.stlpb-page .stlpb-filter-pills span:first-child {
  border-color: var(--stlpb-primary);
  color: var(--stlpb-primary);
}

body.stlpb-page .stlpb-footer {
  background: var(--stlpb-primary);
  color: var(--stlpb-primary-invert);
  padding: 64px 24px;
}

body.stlpb-page .stlpb-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: rgba(255, 250, 240, .64);
}

body.stlpb-page .stlpb-form-note {
  padding: 18px 20px;
  border: 1px dashed var(--stlpb-border);
  color: var(--stlpb-muted);
  font-size: 13px;
  line-height: 1.6;
  background: rgba(255, 250, 240, .55);
}

body.stlpb-page .elementor-field-group label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: var(--stlpb-muted);
  margin-bottom: 9px;
}

body.stlpb-page .elementor-field,
body.stlpb-page .elementor-field-textual {
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid var(--stlpb-border);
  background: transparent;
  padding: 10px 0 14px;
  color: var(--stlpb-text);
}

body.stlpb-page .elementor-field:focus,
body.stlpb-page .elementor-field-textual:focus {
  border-bottom-color: var(--stlpb-accent);
  box-shadow: none;
}

@media (max-width: 767px) {
  body.stlpb-page .stlpb-nav-menu {
    justify-content: flex-start;
    gap: 14px;
    font-size: 10px;
    letter-spacing: .14em;
  }

  body.stlpb-page .stlpb-hero {
    min-height: 720px;
  }

  body.stlpb-page .stlpb-section,
  body.stlpb-page .stlpb-section-tight {
    padding-left: 18px;
    padding-right: 18px;
  }
}

body.stlpb-page .stlpb-grid-2.e-con,
body.stlpb-page .stlpb-grid-3.e-con,
body.stlpb-page .stlpb-grid-4.e-con,
body.stlpb-page .stlpb-grid-6.e-con {
  display: grid;
  gap: clamp(22px, 3vw, 42px);
  align-items: stretch;
}

body.stlpb-page .stlpb-grid-2.e-con {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.stlpb-page .stlpb-grid-3.e-con {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.stlpb-page .stlpb-grid-4.e-con {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.stlpb-page .stlpb-grid-6.e-con {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

body.stlpb-page .stlpb-project-card.e-con,
body.stlpb-page .stlpb-service-card.e-con,
body.stlpb-page .stlpb-card.e-con,
body.stlpb-page .stlpb-testimonial-card.e-con,
body.stlpb-page .stlpb-resource-card.e-con {
  overflow: hidden;
}

body.stlpb-page .stlpb-project-card .elementor-widget-html,
body.stlpb-page .stlpb-project-card .elementor-widget-container:has(> .stlpb-meta) {
  padding: 22px 24px 0;
}

body.stlpb-page .stlpb-nav-logo img {
  max-height: 58px;
  width: auto;
}

body.stlpb-page .stlpb-footer img {
  max-height: 52px;
  width: auto;
  background: rgba(255, 250, 240, .96);
  padding: 8px;
}

body.stlpb-page .stlpb-section > .e-con-inner,
body.stlpb-page .stlpb-section-tight > .e-con-inner,
body.stlpb-page .stlpb-hero > .e-con-inner,
body.stlpb-page .stlpb-page-hero > .e-con-inner,
body.stlpb-page .stlpb-footer > .e-con-inner,
body.stlpb-page .stlpb-nav > .e-con-inner {
  max-width: 1280px;
}

@media (max-width: 1024px) {
  body.stlpb-page .stlpb-grid-3.e-con,
  body.stlpb-page .stlpb-grid-4.e-con,
  body.stlpb-page .stlpb-grid-6.e-con {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.stlpb-page .stlpb-grid-2.e-con,
  body.stlpb-page .stlpb-grid-3.e-con,
  body.stlpb-page .stlpb-grid-4.e-con,
  body.stlpb-page .stlpb-grid-6.e-con {
    grid-template-columns: 1fr;
  }

  body.stlpb-page .stlpb-nav.e-con {
    flex-direction: column;
    align-items: flex-start;
  }

  body.stlpb-page .stlpb-nav-logo,
  body.stlpb-page .stlpb-nav-links {
    width: 100%;
  }
}

/* v1.0.2 hardening: Elementor/theme typography colour and container width overrides.
 * These compatibility defaults are scoped to Plugnique pages and remain below native Elementor controls in the cascade.
 */
body.stlpb-page .elementor,
body.stlpb-page .elementor[data-elementor-type],
body.stlpb-page .elementor-inner,
body.stlpb-page .elementor-section-wrap,
body.stlpb-page .elementor-location-single,
body.stlpb-page .elementor-widget-theme-post-content,
body.stlpb-page .entry-content > .elementor {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

body.stlpb-page .elementor .e-con {
  box-sizing: border-box;
  min-width: 0;
}

body.stlpb-page .elementor .e-con.stlpb-nav,
body.stlpb-page .elementor .e-con.stlpb-hero,
body.stlpb-page .elementor .e-con.stlpb-page-hero,
body.stlpb-page .elementor .e-con.stlpb-section,
body.stlpb-page .elementor .e-con.stlpb-section-tight,
body.stlpb-page .elementor .e-con.stlpb-footer {
  --width: 100%;
  --content-width: 1280px;
  width: 100%;
  max-width: none;
  align-self: stretch;
  margin-left: 0;
  margin-right: 0;
  flex-shrink: 0;
}

body.stlpb-page .stlpb-section > .e-con-inner,
body.stlpb-page .stlpb-section-tight > .e-con-inner,
body.stlpb-page .stlpb-hero > .e-con-inner,
body.stlpb-page .stlpb-page-hero > .e-con-inner,
body.stlpb-page .stlpb-footer > .e-con-inner,
body.stlpb-page .stlpb-nav > .e-con-inner {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

body.stlpb-page .stlpb-hero > .e-con-inner,
body.stlpb-page .stlpb-page-hero > .e-con-inner {
  min-height: inherit;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

body.stlpb-page .stlpb-nav > .e-con-inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

body.stlpb-page .stlpb-grid-2.e-con,
body.stlpb-page .stlpb-grid-3.e-con,
body.stlpb-page .stlpb-grid-4.e-con,
body.stlpb-page .stlpb-grid-6.e-con,
body.stlpb-page .stlpb-grid-2.e-con > .e-con-inner,
body.stlpb-page .stlpb-grid-3.e-con > .e-con-inner,
body.stlpb-page .stlpb-grid-4.e-con > .e-con-inner,
body.stlpb-page .stlpb-grid-6.e-con > .e-con-inner {
  display: grid;
  width: 100%;
  max-width: 1280px;
  gap: clamp(22px, 3vw, 42px);
  align-items: stretch;
}

body.stlpb-page .stlpb-logo-grid.e-con,
body.stlpb-page .stlpb-logo-grid.e-con > .e-con-inner,
body.stlpb-page .stlpb-section .stlpb-grid-2.e-con,
body.stlpb-page .stlpb-section .stlpb-grid-3.e-con,
body.stlpb-page .stlpb-section .stlpb-grid-4.e-con,
body.stlpb-page .stlpb-section .stlpb-grid-6.e-con,
body.stlpb-page .stlpb-section-tight .stlpb-grid-2.e-con,
body.stlpb-page .stlpb-section-tight .stlpb-grid-3.e-con,
body.stlpb-page .stlpb-section-tight .stlpb-grid-4.e-con,
body.stlpb-page .stlpb-section-tight .stlpb-grid-6.e-con {
  max-width: 100%;
}

body.stlpb-page .stlpb-grid-2.e-con,
body.stlpb-page .stlpb-grid-2.e-con > .e-con-inner {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
body.stlpb-page .stlpb-grid-3.e-con,
body.stlpb-page .stlpb-grid-3.e-con > .e-con-inner {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
body.stlpb-page .stlpb-grid-4.e-con,
body.stlpb-page .stlpb-grid-4.e-con > .e-con-inner {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
body.stlpb-page .stlpb-grid-6.e-con,
body.stlpb-page .stlpb-grid-6.e-con > .e-con-inner {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

body.stlpb-page .stlpb-grid-2.e-con > .e-con,
body.stlpb-page .stlpb-grid-3.e-con > .e-con,
body.stlpb-page .stlpb-grid-4.e-con > .e-con,
body.stlpb-page .stlpb-grid-6.e-con > .e-con,
body.stlpb-page .stlpb-grid-2.e-con > .e-con-inner > .e-con,
body.stlpb-page .stlpb-grid-3.e-con > .e-con-inner > .e-con,
body.stlpb-page .stlpb-grid-4.e-con > .e-con-inner > .e-con,
body.stlpb-page .stlpb-grid-6.e-con > .e-con-inner > .e-con,
body.stlpb-page .stlpb-card.e-con,
body.stlpb-page .stlpb-project-card.e-con,
body.stlpb-page .stlpb-service-card.e-con,
body.stlpb-page .stlpb-resource-card.e-con,
body.stlpb-page .stlpb-testimonial-card.e-con {
  --width: 100%;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  align-self: stretch;
}

/* Low-priority colour defaults for generated widgets. Elementor controls override these values. */
body.stlpb-page .elementor,
body.stlpb-page .elementor .elementor-widget,
body.stlpb-page .elementor .elementor-widget-container,
body.stlpb-page .elementor .elementor-widget-container p,
body.stlpb-page .elementor .elementor-widget-container li,
body.stlpb-page .elementor .elementor-widget-container dd,
body.stlpb-page .elementor .elementor-widget-container dt,
body.stlpb-page .elementor .elementor-widget-container blockquote {
  color: var(--stlpb-text);
}

body.stlpb-page .elementor-widget-heading .elementor-heading-title,
body.stlpb-page .stlpb-card-title .elementor-heading-title,
body.stlpb-page .stlpb-card-title-small .elementor-heading-title,
body.stlpb-page .stlpb-heading .elementor-heading-title,
body.stlpb-page .stlpb-heading-small .elementor-heading-title {
  color: var(--stlpb-primary);
}

body.stlpb-page .stlpb-copy,
body.stlpb-page .stlpb-copy .elementor-widget-container,
body.stlpb-page .stlpb-copy .elementor-widget-container p,
body.stlpb-page .stlpb-copy-large,
body.stlpb-page .stlpb-copy-large .elementor-widget-container,
body.stlpb-page .stlpb-copy-large .elementor-widget-container p,
body.stlpb-page .stlpb-list li,
body.stlpb-page .stlpb-meta,
body.stlpb-page .stlpb-mini-meta,
body.stlpb-page .stlpb-label,
body.stlpb-page .stlpb-nav-menu,
body.stlpb-page .stlpb-footer-links {
  color: var(--stlpb-muted);
}

body.stlpb-page .stlpb-eyebrow,
body.stlpb-page .stlpb-filter-pills span:hover,
body.stlpb-page .stlpb-nav-menu a:hover,
body.stlpb-page .stlpb-footer-links a:hover,
body.stlpb-page .stlpb-text-link:hover,
body.stlpb-page .stlpb-quote-link:hover {
  color: var(--stlpb-accent);
}

body.stlpb-page .stlpb-quote-link,
body.stlpb-page .stlpb-text-link,
body.stlpb-page .stlpb-filter-pills span:first-child,
body.stlpb-page .stlpb-card .stlpb-meta[style],
body.stlpb-page .stlpb-resource-card .stlpb-meta[style] {
  color: var(--stlpb-primary);
}

body.stlpb-page .stlpb-dark,
body.stlpb-page .stlpb-dark .elementor-widget-container,
body.stlpb-page .stlpb-dark .elementor-widget-container p,
body.stlpb-page .stlpb-dark .elementor-widget-container li,
body.stlpb-page .stlpb-dark .elementor-widget-container dd,
body.stlpb-page .stlpb-dark .elementor-widget-container dt,
body.stlpb-page .stlpb-dark .elementor-heading-title,
body.stlpb-page .stlpb-dark .stlpb-heading .elementor-heading-title,
body.stlpb-page .stlpb-dark .stlpb-heading-small .elementor-heading-title {
  color: var(--stlpb-primary-invert);
}

body.stlpb-page .stlpb-dark .stlpb-copy,
body.stlpb-page .stlpb-dark .stlpb-copy .elementor-widget-container,
body.stlpb-page .stlpb-dark .stlpb-copy .elementor-widget-container p,
body.stlpb-page .stlpb-dark .stlpb-copy-large,
body.stlpb-page .stlpb-dark .stlpb-copy-large .elementor-widget-container,
body.stlpb-page .stlpb-dark .stlpb-copy-large .elementor-widget-container p,
body.stlpb-page .stlpb-dark .stlpb-list li {
  color: rgba(255, 250, 240, .75);
}

body.stlpb-page .stlpb-hero,
body.stlpb-page .stlpb-page-hero,
body.stlpb-page .stlpb-hero .elementor-widget-container,
body.stlpb-page .stlpb-page-hero .elementor-widget-container,
body.stlpb-page .stlpb-hero .elementor-widget-container p,
body.stlpb-page .stlpb-page-hero .elementor-widget-container p,
body.stlpb-page .stlpb-hero .elementor-heading-title,
body.stlpb-page .stlpb-page-hero .elementor-heading-title {
  color: var(--stlpb-primary-invert);
}

body.stlpb-page .stlpb-eyebrow-light {
  color: rgba(255, 250, 240, .78);
}

body.stlpb-page .elementor-button,
body.stlpb-page button.elementor-button {
  color: var(--stlpb-primary-invert);
  background-color: var(--stlpb-primary);
  border-color: var(--stlpb-primary);
}
body.stlpb-page .elementor-button:hover,
body.stlpb-page button.elementor-button:hover {
  color: var(--stlpb-primary-invert);
  background-color: var(--stlpb-accent);
  border-color: var(--stlpb-accent);
}
body.stlpb-page .stlpb-dark .elementor-button,
body.stlpb-page .stlpb-dark button.elementor-button {
  color: var(--stlpb-primary);
  background-color: var(--stlpb-primary-invert);
  border-color: var(--stlpb-primary-invert);
}
body.stlpb-page .stlpb-dark .elementor-button:hover,
body.stlpb-page .stlpb-dark button.elementor-button:hover {
  color: var(--stlpb-primary-invert);
  background-color: var(--stlpb-accent);
  border-color: var(--stlpb-accent);
}

body.stlpb-page .elementor-button :where(.elementor-button-content-wrapper,.elementor-button-text,.elementor-button-icon) {
  background: transparent;
  border-color: transparent;
}

body.stlpb-page .elementor-field-group label,
body.stlpb-page .elementor-field-label {
  color: var(--stlpb-muted);
}
body.stlpb-page .elementor-field,
body.stlpb-page .elementor-field-textual,
body.stlpb-page .elementor-field::placeholder,
body.stlpb-page .elementor-field-textual::placeholder {
  color: var(--stlpb-text);
}

@media (max-width: 1024px) {
  body.stlpb-page .stlpb-grid-3.e-con,
  body.stlpb-page .stlpb-grid-4.e-con,
  body.stlpb-page .stlpb-grid-6.e-con,
  body.stlpb-page .stlpb-grid-3.e-con > .e-con-inner,
  body.stlpb-page .stlpb-grid-4.e-con > .e-con-inner,
  body.stlpb-page .stlpb-grid-6.e-con > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.stlpb-page .stlpb-grid-2.e-con,
  body.stlpb-page .stlpb-grid-3.e-con,
  body.stlpb-page .stlpb-grid-4.e-con,
  body.stlpb-page .stlpb-grid-6.e-con,
  body.stlpb-page .stlpb-grid-2.e-con > .e-con-inner,
  body.stlpb-page .stlpb-grid-3.e-con > .e-con-inner,
  body.stlpb-page .stlpb-grid-4.e-con > .e-con-inner,
  body.stlpb-page .stlpb-grid-6.e-con > .e-con-inner {
    grid-template-columns: 1fr;
  }

  body.stlpb-page .stlpb-nav > .e-con-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}


/* v1.0.3 structural width fix
 * Stats and Materials previously combined section-shell classes with grid classes on the same
 * Elementor container. Elementor's .e-con-inner then constrained/wrapped the child columns.
 * These rules target the corrected shell + inner-grid structure and force full-width bands with
 * centered inner content.
 */
body.stlpb-page .elementor .e-con.stlpb-stats-section,
body.stlpb-page .elementor .e-con.stlpb-materials-section {
  --width: 100%;
  --content-width: 1280px;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  align-self: stretch;
}

body.stlpb-page .stlpb-stats-section > .e-con-inner,
body.stlpb-page .stlpb-materials-section > .e-con-inner {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  display: block;
}

body.stlpb-page .elementor .e-con.stlpb-stats-grid,
body.stlpb-page .elementor .e-con.stlpb-materials-inner,
body.stlpb-page .elementor .e-con.stlpb-material-images {
  --width: 100%;
  --content-width: 100%;
  width: 100%;
  max-width: 100%;
  margin: 0;
  align-self: stretch;
}

body.stlpb-page .stlpb-stats-grid.e-con,
body.stlpb-page .stlpb-stats-grid.e-con > .e-con-inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(22px, 3vw, 42px);
  align-items: stretch;
}

body.stlpb-page .stlpb-materials-inner.e-con,
body.stlpb-page .stlpb-materials-inner.e-con > .e-con-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

body.stlpb-page .stlpb-material-images.e-con,
body.stlpb-page .stlpb-material-images.e-con > .e-con-inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 30px);
  align-items: stretch;
}

body.stlpb-page .stlpb-stats-grid > .e-con-inner > .stlpb-metric-card,
body.stlpb-page .stlpb-materials-inner > .e-con-inner > .e-con,
body.stlpb-page .stlpb-material-images > .e-con-inner > .elementor-widget-image,
body.stlpb-page .stlpb-material-images > .elementor-widget-image {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.stlpb-page .stlpb-material-copy.e-con,
body.stlpb-page .stlpb-material-copy.e-con > .e-con-inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
}

@media (max-width: 1024px) {
  body.stlpb-page .stlpb-stats-grid.e-con,
  body.stlpb-page .stlpb-stats-grid.e-con > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.stlpb-page .stlpb-stats-section > .e-con-inner,
  body.stlpb-page .stlpb-materials-section > .e-con-inner {
    padding-left: 0;
    padding-right: 0;
  }

  body.stlpb-page .stlpb-stats-grid.e-con,
  body.stlpb-page .stlpb-stats-grid.e-con > .e-con-inner,
  body.stlpb-page .stlpb-materials-inner.e-con,
  body.stlpb-page .stlpb-materials-inner.e-con > .e-con-inner,
  body.stlpb-page .stlpb-material-images.e-con,
  body.stlpb-page .stlpb-material-images.e-con > .e-con-inner {
    grid-template-columns: 1fr;
  }
}


/* v1.0.4 global child-page width fix
 * The home page was corrected first. This extends the same shell + inner-grid pattern
 * to Portfolio, Capabilities, Materials and Contact so top-level full-width sections
 * do not also act as CSS grids.
 */
body.stlpb-page .elementor .e-con.stlpb-split-section {
  --width: 100%;
  --content-width: 1280px;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  align-self: stretch;
}

body.stlpb-page .stlpb-split-section > .e-con-inner {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  display: block;
  box-sizing: border-box;
}

body.stlpb-page .elementor .e-con.stlpb-split-grid,
body.stlpb-page .elementor .e-con.stlpb-contact-grid {
  --width: 100%;
  --content-width: 100%;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  align-self: stretch;
}

body.stlpb-page .stlpb-split-grid.e-con,
body.stlpb-page .stlpb-split-grid.e-con > .e-con-inner,
body.stlpb-page .stlpb-contact-grid.e-con,
body.stlpb-page .stlpb-contact-grid.e-con > .e-con-inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(26px, 4vw, 54px);
  align-items: stretch;
  width: 100%;
  max-width: 100%;
}

body.stlpb-page .stlpb-split-grid > .e-con-inner > .e-con,
body.stlpb-page .stlpb-split-grid > .e-con,
body.stlpb-page .stlpb-contact-grid > .e-con-inner > .e-con,
body.stlpb-page .stlpb-contact-grid > .e-con {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  align-self: stretch;
}

body.stlpb-page .stlpb-contact-grid.e-con,
body.stlpb-page .stlpb-contact-grid.e-con > .e-con-inner {
  align-items: start;
}

@media (max-width: 767px) {
  body.stlpb-page .stlpb-split-section > .e-con-inner {
    padding-left: 0;
    padding-right: 0;
  }

  body.stlpb-page .stlpb-split-grid.e-con,
  body.stlpb-page .stlpb-split-grid.e-con > .e-con-inner,
  body.stlpb-page .stlpb-contact-grid.e-con,
  body.stlpb-page .stlpb-contact-grid.e-con > .e-con-inner {
    grid-template-columns: 1fr;
  }
}

/* v1.0.5: slightly larger landing-page navigation logo. */
@media (max-width: 767px) {
  body.stlpb-page .stlpb-nav-logo img {
    max-height: 52px;
  }
}

/* Explicit Elementor colour controls are authoritative. Hero copy inherits the
 * hero foreground by default and may be overridden by the widget's own
 * Elementor text-colour control. Do not force a separate preview-only colour. */

body.stlpb-page .stlpb-hero-copy a,
body.stlpb-page .stlpb-page-hero-copy a {
  color: var(--stlpb-primary-invert);
}

/* v1.1.0: generic imported Lovable project support. */
body.stlpb-page .stlpb-project-wordmark a {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1;
  color: var(--stlpb-primary);
  text-decoration: none;
  font-weight: 600;
}

body.stlpb-page .stlpb-project-hero {
  min-height: 520px;
}

body.stlpb-page .stlpb-secondary-button .elementor-button {
  background: transparent;
  color: var(--stlpb-primary);
  border: 1px solid rgba(45,35,25,.24);
}

body.stlpb-page .stlpb-secondary-button .elementor-button:hover {
  background: rgba(45,35,25,.08);
}

/* Native Elementor navigation and footer widgets (Plugnique v0.6.42).
 * These selectors preserve the existing visual treatment while keeping each
 * label, link, logo and footer line editable through Elementor controls. */
body.stlpb-page .stlpb-nav-links.e-con,
body.stlpb-page .stlpb-footer-links-native.e-con {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
}
body.stlpb-page .stlpb-nav-links.e-con { justify-content: flex-end; gap: clamp(16px, 2.5vw, 42px); }
body.stlpb-page .stlpb-nav-centered .stlpb-nav-links.e-con { justify-content: center; }
body.stlpb-page .stlpb-footer-links-native.e-con { justify-content: center; gap: 20px; }
body.stlpb-page .stlpb-nav-links .elementor-widget-button,
body.stlpb-page .stlpb-footer-links-native .elementor-widget-button { width: auto; max-width: max-content; }
body.stlpb-page .stlpb-nav-link .elementor-button,
body.stlpb-page .stlpb-quote-link .elementor-button,
body.stlpb-page .stlpb-footer-link .elementor-button {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  min-height: 0;
  color: var(--stlpb-muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .2em;
  line-height: 1.4;
}
body.stlpb-page .stlpb-quote-link .elementor-button {
  color: var(--stlpb-primary);
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
  letter-spacing: .22em;
}
body.stlpb-page .stlpb-nav-link .elementor-button:hover,
body.stlpb-page .stlpb-quote-link .elementor-button:hover,
body.stlpb-page .stlpb-footer-link .elementor-button:hover { color: var(--stlpb-accent); background: transparent; }
body.stlpb-page .stlpb-footer-copy p { margin: 0; }

/* Plugnique project-scoped design variables and visual defaults. Native Elementor controls remain authoritative by specificity. */
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b{--pn-primary:#f15a24;--pn-secondary:#111111;--pn-accent:#ff8a00;--pn-background:#f5f5f2;--pn-surface:#ffffff;--pn-text:#1a1a1a;--stlpb-bg:#f5f5f2;--stlpb-card:#ffffff;--stlpb-primary:#f15a24;--stlpb-primary-invert:#ffffff;--stlpb-text:#1a1a1a;--stlpb-muted:#111111;--stlpb-border:rgba(241,90,36,0.16);--stlpb-accent:#ff8a00;--stlpb-accent-dark:#d17100;background:#f5f5f2;color:#1a1a1a;font-family:Inter, Arial, sans-serif;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b :where(.elementor,.elementor-widget,.elementor-widget-container,.elementor-widget-text-editor,.stlpb-nav-menu){font-family:Inter, Arial, sans-serif;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b :where(h1,h2,h3,.stlpb-serif,.elementor-widget-heading .elementor-heading-title){font-family:Inter, Arial, sans-serif;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b :where(.stlpb-nav,.stlpb-section,.stlpb-section-tight){background-color:#f5f5f2;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b :where(.stlpb-service-card,.stlpb-card,.stlpb-project-card,.stlpb-resource-card,.stlpb-testimonial-card){background-color:#ffffff;border-color:rgba(241,90,36,0.16);}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b :where(.stlpb-primary-button .elementor-button){background-color:#ff8a00;border-color:#ff8a00;color:#ffffff;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b :where(.stlpb-primary-button .elementor-button:hover){background-color:#d17100;border-color:#d17100;color:#ffffff;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b :where(.stlpb-page-hero:before,.stlpb-page-hero>.elementor-background-overlay){background-color:rgba(241,90,36,0.68);}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b :where(.stlpb-cta,.stlpb-footer,.stlpb-dark){background-color:#f15a24;color:#ffffff;}

/* Plugnique project-scoped branding. */
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-brand-link{display:inline-flex;align-items:center;gap:12px;text-decoration:none;max-width:100%;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-brand-logo{display:block;max-width:min(260px,100%);}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-brand-logo img{display:block;width:auto;height:auto;max-height:56px;max-width:100%;object-fit:contain;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-brand-title,body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-brand-title .elementor-heading-title{font-family:inherit;font-weight:700;line-height:1.1;margin:0;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-footer-branding{display:flex;justify-content:center;margin-bottom:8px;}
body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-footer-logo img{max-height:56px;}
@media(max-width:767px){body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-brand-logo{max-width:190px;}body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-brand-logo img{max-height:52px;}body.stlpb-page.plugnique-project-af55d3c8-c076-4c0d-a6c6-043657e6da0b .stlpb-brand-title .elementor-heading-title{font-size:16px;}}
