.elementor-1923 .elementor-element.elementor-element-2a4a2ef{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:10px;--padding-bottom:10px;--padding-left:0px;--padding-right:0px;}.elementor-1923 .elementor-element.elementor-element-2a4a2ef:not(.elementor-motion-effects-element-type-background), .elementor-1923 .elementor-element.elementor-element-2a4a2ef > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#1A1A1A;}.elementor-1923 .elementor-element.elementor-element-418b6e1{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-1923 .elementor-element.elementor-element-4dcca75{--display:flex;}.elementor-1923 .elementor-element.elementor-element-4dcca75.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-1923 .elementor-element.elementor-element-1202b28{width:var( --container-widget-width, 109.178% );max-width:109.178%;--container-widget-width:109.178%;--container-widget-flex-grow:0;}.elementor-1923 .elementor-element.elementor-element-1202b28.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-1923 .elementor-element.elementor-element-2713e95{--display:flex;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Georgia, serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-1923 .elementor-element.elementor-element-debd4a9.elementor-element{--align-self:flex-end;}.elementor-1923 .elementor-element.elementor-element-debd4a9 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-1923 .elementor-element.elementor-element-debd4a9 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-1923 .elementor-element.elementor-element-debd4a9{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-1923 .elementor-element.elementor-element-debd4a9 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-1923 .elementor-element.elementor-element-debd4a9 .elementor-icon-list-item > a{font-family:"IBM Plex Mono", Georgia, serif;font-size:12px;font-weight:500;text-transform:none;letter-spacing:0.18em;}.elementor-1923 .elementor-element.elementor-element-debd4a9 .elementor-icon-list-text{color:#FFFFFF;transition:color 0.3s;}.elementor-1923 .elementor-element.elementor-element-665afe8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#C9C5BC;--border-color:#C9C5BC;--border-radius:0px 0px 0px 0px;--padding-top:22px;--padding-bottom:22px;--padding-left:0px;--padding-right:0px;}.elementor-1923 .elementor-element.elementor-element-665afe8:not(.elementor-motion-effects-element-type-background), .elementor-1923 .elementor-element.elementor-element-665afe8 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F5F2ED;}.elementor-1923 .elementor-element.elementor-element-358c5fd{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-1923 .elementor-element.elementor-element-df62e3f{--display:flex;}.elementor-1923 .elementor-element.elementor-element-a5a98fa{--display:flex;}.elementor-1923 .elementor-element.elementor-element-a5a98fa.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-primary-font-family ), Georgia, serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
					.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:var( --e-global-typography-accent-font-family ), Georgia, serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );}.elementor-1923 .elementor-element.elementor-element-dd78574 .elementor-menu-toggle{margin:0 auto;}.elementor-1923 .elementor-element.elementor-element-dd78574 .elementor-nav-menu--main .elementor-item:hover,
					.elementor-1923 .elementor-element.elementor-element-dd78574 .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-1923 .elementor-element.elementor-element-dd78574 .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-1923 .elementor-element.elementor-element-dd78574 .elementor-nav-menu--main .elementor-item:focus{color:#1B3A57;fill:#1B3A57;}.elementor-1923 .elementor-element.elementor-element-dd78574 .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-1923 .elementor-element.elementor-element-dd78574 .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:#1B3A57;}.elementor-1923 .elementor-element.elementor-element-dd78574 .e--pointer-framed .elementor-item:before,
					.elementor-1923 .elementor-element.elementor-element-dd78574 .e--pointer-framed .elementor-item:after{border-color:#1B3A57;}.elementor-1923 .elementor-element.elementor-element-4ef18ca{--display:flex;--min-height:0px;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Georgia, serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );}.elementor-1923 .elementor-element.elementor-element-068d615 .elementor-button{background-color:rgb(27, 58, 87);font-family:"Inter", Georgia, serif;font-size:14px;font-weight:500;line-height:22.4px;fill:rgb(255, 255, 255);color:rgb(255, 255, 255);padding:12px 22px 12px 22px;}.elementor-1923 .elementor-element.elementor-element-068d615 .elementor-button:hover, .elementor-1923 .elementor-element.elementor-element-068d615 .elementor-button:focus{background-color:#FFFFFF00;}.elementor-1923 .elementor-element.elementor-element-068d615 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-1923 .elementor-element.elementor-element-4dcca75{--width:57.866%;}.elementor-1923 .elementor-element.elementor-element-2713e95{--width:50%;}.elementor-1923 .elementor-element.elementor-element-df62e3f{--width:30%;}.elementor-1923 .elementor-element.elementor-element-a5a98fa{--width:60.811%;}.elementor-1923 .elementor-element.elementor-element-4ef18ca{--width:18%;}}@media(max-width:1024px){.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-accent-font-size );}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );}}@media(max-width:767px){.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:var( --e-global-typography-accent-font-size );}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );}}/* Start custom CSS for icon-list, class: .elementor-element-debd4a9 *//* ========================================================================
   MODERN ALPHA PLASTICS — Elementor custom CSS
   Paste this into:
     Elementor → Site Settings → Custom CSS
     OR  Appearance → Customize → Additional CSS
     OR  Elementor → Custom Code → "Site Wide" snippet (Pro only)

   These rules apply visual finishes Elementor's default widgets don't expose
   in their settings panels. They reference the global colors set in the kit
   so they update automatically if the brand palette ever shifts.
   ======================================================================== */

:root {
  --map-bg: #F5F2ED;
  --map-surface: #FFFFFF;
  --map-ink: #1A1A1A;
  --map-ink-soft: #4A4A4A;
  --map-ink-faint: #7A7670;
  --map-rule: #C9C5BC;
  --map-rule-soft: #E5E1D8;
  --map-accent: #1B3A57;
  --map-accent-hover: #0F2538;
  --map-accent-tint: #EAEEF3;
  --map-gold: #C7A878;
}

/* ---------- 1. Body baseline ---------- */
body {
  background: var(--map-bg);
  color: var(--map-ink);
  font-feature-settings: "ss01" on, "ss02" on; /* Fraunces stylistic sets */
  -webkit-font-smoothing: antialiased;
}

/* ---------- 2. MAP wordmark in logo ---------- */
.map-logo .map-mark {
  display: inline-block;
  background: var(--map-accent);
  color: var(--map-bg);
  padding: 4px 10px;
  margin-right: 10px;
  font-family: "IBM Plex Mono", monospace;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.08em;
  vertical-align: middle;
}

/* ---------- 3. Utility bar (top of page, dark band) ---------- */
.map-util-bar {
  background: var(--map-ink);
  color: var(--map-bg);
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  letter-spacing: 0.04em;
  padding: 10px 0;
}
.map-util-bar a { color: var(--map-bg) !important; text-decoration: none; }
.map-util-bar a:hover { color: #fff !important; }
.map-pulse {
  display: inline-block;
  width: 8px; height: 8px;
  background: #4CAF50;
  border-radius: 50%;
  margin-right: 8px;
  vertical-align: middle;
  animation: mapPulse 2s infinite;
}
@keyframes mapPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

/* ---------- 4. Eyebrow labels (numbered section openers) ---------- */
.map-eyebrow {
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--map-ink-faint);
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}
.map-eyebrow .num { color: var(--map-accent); font-weight: 500; }

/* ---------- 5. H2 italic accent on emphasized words ---------- */
.map-section h2 em,
.map-section h1 em {
  font-style: italic;
  font-weight: 400;
  color: var(--map-accent);
}

/* ---------- 6. Greyscale rule lines (NO colored borders, ever) ---------- */
.map-section,
.map-card,
.map-card-grid > * {
  border-color: var(--map-rule) !important;
}

/* ---------- 7. Capability / industry card grid ---------- */
.map-card-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border-top: 1px solid var(--map-rule);
  border-left: 1px solid var(--map-rule);
}
.map-card-grid > .map-card {
  padding: 48px 40px;
  border-right: 1px solid var(--map-rule);
  border-bottom: 1px solid var(--map-rule);
  background: var(--map-surface);
  transition: background 0.25s ease;
  text-decoration: none;
  color: var(--map-ink);
  display: block;
}
.map-card-grid > .map-card:hover {
  background: var(--map-accent-tint);
  text-decoration: none;
  color: var(--map-ink);
}
.map-card .map-card-num {
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--map-ink-faint);
  margin-bottom: 28px;
  display: block;
}

/* ---------- 8. Industries grid (4-up, with NEW badge) ---------- */
.map-ind-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--map-rule);
  border: 1px solid var(--map-rule);
}
.map-ind-grid > .map-ind-tile {
  background: var(--map-surface);
  padding: 36px 28px;
  text-decoration: none;
  color: var(--map-ink);
  display: block;
  position: relative;
  transition: background 0.25s ease;
}
.map-ind-tile.featured { background: var(--map-bg); }
.map-ind-tile:hover { background: var(--map-accent); color: var(--map-bg); text-decoration: none; }
.map-ind-tile:hover .map-ind-meta { color: rgba(245,242,237,0.7); }
.map-ind-tile:hover .map-ind-name { color: var(--map-bg); }
.map-ind-tile.new::after {
  content: "NEW";
  position: absolute;
  top: 14px; right: 14px;
  background: var(--map-accent);
  color: var(--map-bg);
  font-family: "IBM Plex Mono", monospace;
  font-size: 9px;
  padding: 3px 7px;
  letter-spacing: 0.1em;
}
.map-ind-tile.new:hover::after { background: var(--map-bg); color: var(--map-accent); }
.map-ind-meta {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: none;
  color: var(--map-ink-faint);
  margin-bottom: 14px;
  display: block;
}
.map-ind-name {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 500;
  font-size: 20px;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

@media (max-width: 1024px) {
  .map-card-grid { grid-template-columns: 1fr; }
  .map-ind-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .map-ind-grid { grid-template-columns: 1fr; }
}

/* ---------- 9. Spec card (At-a-glance label) ---------- */
.map-spec-card {
  background: var(--map-surface);
  padding: 40px 36px;
  border: 1px solid var(--map-rule);
  position: relative;
}
.map-spec-card::before {
  content: "AT-A-GLANCE";
  position: absolute;
  top: -10px; left: 32px;
  background: var(--map-bg);
  padding: 0 12px;
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--map-ink-faint);
}
.map-spec-card .map-spec-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid var(--map-rule-soft);
  font-size: 14px;
}
.map-spec-card .map-spec-row:last-child { border-bottom: none; padding-bottom: 0; }
.map-spec-card .map-spec-row:first-child { padding-top: 0; }
.map-spec-card .map-spec-label { color: var(--map-ink-soft); }
.map-spec-card .map-spec-value {
  font-family: "IBM Plex Mono", monospace;
  font-weight: 500;
  color: var(--map-ink);
  font-size: 13px;
}

/* ---------- 10. Trust strip (dark band of numbers) ---------- */
.map-trust-strip {
  background: var(--map-ink) !important;
  color: var(--map-bg) !important;
  padding: 56px 0;
}
.map-trust-strip .map-trust-num {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 500;
  font-size: 44px;
  line-height: 1;
  color: var(--map-bg);
  margin-bottom: 12px;
}
.map-trust-strip .map-trust-label {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: none;
  color: rgba(245,242,237,0.7);
}
.map-trust-strip .map-trust-item {
  border-left: 1px solid rgba(245,242,237,0.2);
  padding-left: 20px;
}

/* ---------- 11. Process list (numbered checkpoints) ---------- */
.map-process-list { list-style: none; padding: 0; margin: 0; counter-reset: map-step; }
.map-process-list li {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 24px;
  padding: 28px 0;
  border-top: 1px solid var(--map-rule);
}
.map-process-list li:last-child { border-bottom: 1px solid var(--map-rule); }
.map-process-list .map-step-num {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 500;
  font-size: 36px;
  line-height: 1;
  color: var(--map-accent);
  letter-spacing: -0.02em;
}

/* ---------- 12. Anthony portrait card ---------- */
.map-anthony-portrait {
  width: 100%;
  aspect-ratio: 4 / 5;
  background: linear-gradient(135deg, #2A2A2A 0%, #1A1A1A 100%);
  margin-bottom: 28px;
  position: relative;
  overflow: hidden;
}
.map-anthony-portrait::after {
  content: "ANTHONY C. GROSS";
  position: absolute;
  bottom: 24px; left: 24px;
  color: var(--map-bg);
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
}
.map-anthony-quote {
  font-family: "Fraunces", Georgia, serif;
  font-style: italic;
  font-size: 17px;
  line-height: 1.5;
  color: var(--map-ink);
  border-left: 2px solid var(--map-accent);
  padding-left: 20px;
  margin: 0;
}

/* ---------- 13. Final CTA dark band ---------- */
.map-final-cta {
  background: var(--map-accent);
  color: var(--map-bg);
  padding: 112px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.map-final-cta::before {
  content: "";
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(255,255,255,0.02) 20px, rgba(255,255,255,0.02) 21px);
  pointer-events: none;
}
.map-final-cta * { position: relative; }
.map-final-cta h2 { color: var(--map-bg) !important; }
.map-final-cta h2 em { color: var(--map-gold) !important; }
.map-final-cta p { color: rgba(245,242,237,0.85); }

/* ---------- 14. Form polish (when using Elementor Pro Form widget) ---------- */
.elementor-form .elementor-field-label {
  font-family: "IBM Plex Mono", monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: none !important;
  color: var(--map-ink-faint) !important;
  font-weight: 500 !important;
  margin-bottom: 10px !important;
}
.elementor-form .elementor-field {
  background: var(--map-bg) !important;
  border: 1px solid var(--map-rule) !important;
  border-radius: 0 !important;
  padding: 14px 16px !important;
  font-family: "IBM Plex Sans", sans-serif !important;
  font-size: 15px !important;
  color: var(--map-ink) !important;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.elementor-form .elementor-field:focus {
  border-color: var(--map-accent) !important;
  background: var(--map-surface) !important;
  outline: none !important;
}
.elementor-form .elementor-button {
  background: var(--map-accent) !important;
  color: #fff !important;
  border-radius: 0 !important;
  padding: 16px 28px !important;
  font-family: "IBM Plex Sans", sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  letter-spacing: 0.01em !important;
  border: none !important;
  transition: background 0.2s ease;
}
.elementor-form .elementor-button:hover { background: var(--map-accent-hover) !important; }

/* Helper text under fields */
.elementor-field-group .map-helper {
  font-size: 12px;
  color: var(--map-ink-faint);
  margin-top: 8px;
  font-family: "IBM Plex Sans", sans-serif;
}

/* ---------- 15. Buttons (Elementor default button polish) ---------- */
.elementor-button.map-btn-primary,
.elementor-element .elementor-button.map-btn-primary {
  background: var(--map-accent) !important;
  color: #fff !important;
  padding: 16px 28px !important;
  border-radius: 0 !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
}
.elementor-button.map-btn-primary:hover { background: var(--map-accent-hover) !important; }

.elementor-button.map-btn-secondary {
  background: transparent !important;
  color: var(--map-ink) !important;
  border: 1px solid var(--map-ink) !important;
  border-radius: 0 !important;
  padding: 15px 27px !important;
  font-weight: 500 !important;
}
.elementor-button.map-btn-secondary:hover {
  background: var(--map-ink) !important;
  color: var(--map-bg) !important;
}

/* ---------- 16. Tables (Elementor doesn't have a strong native table widget;
                use shortcode or HTML widget) ---------- */
.map-data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.map-data-table th, .map-data-table td {
  text-align: left;
  padding: 16px 20px;
  border-bottom: 1px solid var(--map-rule);
}
.map-data-table th {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: none;
  color: var(--map-ink-faint);
  font-weight: 500;
}
.map-data-table td {
  font-family: "IBM Plex Mono", monospace;
  color: var(--map-ink);
}
.map-data-table td:first-child {
  font-family: "Fraunces", Georgia, serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.01em;
}

/* Inverse table (on dark sections) */
.map-section.dark .map-data-table th { color: rgba(245,242,237,0.6); }
.map-section.dark .map-data-table th,
.map-section.dark .map-data-table td { border-bottom-color: rgba(245,242,237,0.15); }
.map-section.dark .map-data-table td { color: var(--map-bg); }

/* ---------- 17. Typography baseline overrides (anywhere Elementor falls back) ---------- */
h1, h2, h3, h4 { font-family: "Fraunces", Georgia, serif; letter-spacing: -0.02em; font-weight: 500; }
body, p, .elementor-widget-text-editor { font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif; }

/* Disable Elementor default rounded corners — industrial editorial uses square edges */
.elementor-button, .elementor-field, .elementor-image-box-img img { border-radius: 0 !important; }/* End custom CSS */
/* Start custom CSS *//* ========================================================================
   MODERN ALPHA PLASTICS — Elementor custom CSS
   Paste this into:
     Elementor → Site Settings → Custom CSS
     OR  Appearance → Customize → Additional CSS
     OR  Elementor → Custom Code → "Site Wide" snippet (Pro only)

   These rules apply visual finishes Elementor's default widgets don't expose
   in their settings panels. They reference the global colors set in the kit
   so they update automatically if the brand palette ever shifts.
   ======================================================================== */

:root {
  --map-bg: #F5F2ED;
  --map-surface: #FFFFFF;
  --map-ink: #1A1A1A;
  --map-ink-soft: #4A4A4A;
  --map-ink-faint: #7A7670;
  --map-rule: #C9C5BC;
  --map-rule-soft: #E5E1D8;
  --map-accent: #1B3A57;
  --map-accent-hover: #0F2538;
  --map-accent-tint: #EAEEF3;
  --map-gold: #C7A878;
}

/* ---------- 1. Body baseline ---------- */
body {
  background: var(--map-bg);
  color: var(--map-ink);
  font-feature-settings: "ss01" on, "ss02" on; /* Fraunces stylistic sets */
  -webkit-font-smoothing: antialiased;
}

/* ---------- 2. MAP wordmark in logo ---------- */
.map-logo .map-mark {
  display: inline-block;
  background: var(--map-accent);
  color: var(--map-bg);
  padding: 4px 10px;
  margin-right: 10px;
  font-family: "IBM Plex Mono", monospace;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.08em;
  vertical-align: middle;
}

/* ---------- 3. Utility bar (top of page, dark band) ---------- */
.map-util-bar {
  background: var(--map-ink);
  color: var(--map-bg);
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  letter-spacing: 0.04em;
  padding: 10px 0;
}
.map-util-bar a { color: var(--map-bg) !important; text-decoration: none; }
.map-util-bar a:hover { color: #fff !important; }
.map-pulse {
  display: inline-block;
  width: 8px; height: 8px;
  background: #4CAF50;
  border-radius: 50%;
  margin-right: 8px;
  vertical-align: middle;
  animation: mapPulse 2s infinite;
}
@keyframes mapPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

/* ---------- 4. Eyebrow labels (numbered section openers) ---------- */
.map-eyebrow {
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--map-ink-faint);
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}
.map-eyebrow .num { color: var(--map-accent); font-weight: 500; }

/* ---------- 5. H2 italic accent on emphasized words ---------- */
.map-section h2 em,
.map-section h1 em {
  font-style: italic;
  font-weight: 400;
  color: var(--map-accent);
}

/* ---------- 6. Greyscale rule lines (NO colored borders, ever) ---------- */
.map-section,
.map-card,
.map-card-grid > * {
  border-color: var(--map-rule) !important;
}

/* ---------- 7. Capability / industry card grid ---------- */
.map-card-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border-top: 1px solid var(--map-rule);
  border-left: 1px solid var(--map-rule);
}
.map-card-grid > .map-card {
  padding: 48px 40px;
  border-right: 1px solid var(--map-rule);
  border-bottom: 1px solid var(--map-rule);
  background: var(--map-surface);
  transition: background 0.25s ease;
  text-decoration: none;
  color: var(--map-ink);
  display: block;
}
.map-card-grid > .map-card:hover {
  background: var(--map-accent-tint);
  text-decoration: none;
  color: var(--map-ink);
}
.map-card .map-card-num {
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--map-ink-faint);
  margin-bottom: 28px;
  display: block;
}

/* ---------- 8. Industries grid (4-up, with NEW badge) ---------- */
.map-ind-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--map-rule);
  border: 1px solid var(--map-rule);
}
.map-ind-grid > .map-ind-tile {
  background: var(--map-surface);
  padding: 36px 28px;
  text-decoration: none;
  color: var(--map-ink);
  display: block;
  position: relative;
  transition: background 0.25s ease;
}
.map-ind-tile.featured { background: var(--map-bg); }
.map-ind-tile:hover { background: var(--map-accent); color: var(--map-bg); text-decoration: none; }
.map-ind-tile:hover .map-ind-meta { color: rgba(245,242,237,0.7); }
.map-ind-tile:hover .map-ind-name { color: var(--map-bg); }
.map-ind-tile.new::after {
  content: "NEW";
  position: absolute;
  top: 14px; right: 14px;
  background: var(--map-accent);
  color: var(--map-bg);
  font-family: "IBM Plex Mono", monospace;
  font-size: 9px;
  padding: 3px 7px;
  letter-spacing: 0.1em;
}
.map-ind-tile.new:hover::after { background: var(--map-bg); color: var(--map-accent); }
.map-ind-meta {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: none;
  color: var(--map-ink-faint);
  margin-bottom: 14px;
  display: block;
}
.map-ind-name {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 500;
  font-size: 20px;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

@media (max-width: 1024px) {
  .map-card-grid { grid-template-columns: 1fr; }
  .map-ind-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .map-ind-grid { grid-template-columns: 1fr; }
}

/* ---------- 9. Spec card (At-a-glance label) ---------- */
.map-spec-card {
  background: var(--map-surface);
  padding: 40px 36px;
  border: 1px solid var(--map-rule);
  position: relative;
}
.map-spec-card::before {
  content: "AT-A-GLANCE";
  position: absolute;
  top: -10px; left: 32px;
  background: var(--map-bg);
  padding: 0 12px;
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--map-ink-faint);
}
.map-spec-card .map-spec-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid var(--map-rule-soft);
  font-size: 14px;
}
.map-spec-card .map-spec-row:last-child { border-bottom: none; padding-bottom: 0; }
.map-spec-card .map-spec-row:first-child { padding-top: 0; }
.map-spec-card .map-spec-label { color: var(--map-ink-soft); }
.map-spec-card .map-spec-value {
  font-family: "IBM Plex Mono", monospace;
  font-weight: 500;
  color: var(--map-ink);
  font-size: 13px;
}

/* ---------- 10. Trust strip (dark band of numbers) ---------- */
.map-trust-strip {
  background: var(--map-ink) !important;
  color: var(--map-bg) !important;
  padding: 56px 0;
}
.map-trust-strip .map-trust-num {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 500;
  font-size: 44px;
  line-height: 1;
  color: var(--map-bg);
  margin-bottom: 12px;
}
.map-trust-strip .map-trust-label {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: none;
  color: rgba(245,242,237,0.7);
}
.map-trust-strip .map-trust-item {
  border-left: 1px solid rgba(245,242,237,0.2);
  padding-left: 20px;
}

/* ---------- 11. Process list (numbered checkpoints) ---------- */
.map-process-list { list-style: none; padding: 0; margin: 0; counter-reset: map-step; }
.map-process-list li {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 24px;
  padding: 28px 0;
  border-top: 1px solid var(--map-rule);
}
.map-process-list li:last-child { border-bottom: 1px solid var(--map-rule); }
.map-process-list .map-step-num {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 500;
  font-size: 36px;
  line-height: 1;
  color: var(--map-accent);
  letter-spacing: -0.02em;
}

/* ---------- 12. Anthony portrait card ---------- */
.map-anthony-portrait {
  width: 100%;
  aspect-ratio: 4 / 5;
  background: linear-gradient(135deg, #2A2A2A 0%, #1A1A1A 100%);
  margin-bottom: 28px;
  position: relative;
  overflow: hidden;
}
.map-anthony-portrait::after {
  content: "ANTHONY C. GROSS";
  position: absolute;
  bottom: 24px; left: 24px;
  color: var(--map-bg);
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
}
.map-anthony-quote {
  font-family: "Fraunces", Georgia, serif;
  font-style: italic;
  font-size: 17px;
  line-height: 1.5;
  color: var(--map-ink);
  border-left: 2px solid var(--map-accent);
  padding-left: 20px;
  margin: 0;
}

/* ---------- 13. Final CTA dark band ---------- */
.map-final-cta {
  background: var(--map-accent);
  color: var(--map-bg);
  padding: 112px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.map-final-cta::before {
  content: "";
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(255,255,255,0.02) 20px, rgba(255,255,255,0.02) 21px);
  pointer-events: none;
}
.map-final-cta * { position: relative; }
.map-final-cta h2 { color: var(--map-bg) !important; }
.map-final-cta h2 em { color: var(--map-gold) !important; }
.map-final-cta p { color: rgba(245,242,237,0.85); }

/* ---------- 14. Form polish (when using Elementor Pro Form widget) ---------- */
.elementor-form .elementor-field-label {
  font-family: "IBM Plex Mono", monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.14em !important;
  text-transform: none !important;
  color: var(--map-ink-faint) !important;
  font-weight: 500 !important;
  margin-bottom: 10px !important;
}
.elementor-form .elementor-field {
  background: var(--map-bg) !important;
  border: 1px solid var(--map-rule) !important;
  border-radius: 0 !important;
  padding: 14px 16px !important;
  font-family: "IBM Plex Sans", sans-serif !important;
  font-size: 15px !important;
  color: var(--map-ink) !important;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.elementor-form .elementor-field:focus {
  border-color: var(--map-accent) !important;
  background: var(--map-surface) !important;
  outline: none !important;
}
.elementor-form .elementor-button {
  background: var(--map-accent) !important;
  color: #fff !important;
  border-radius: 0 !important;
  padding: 16px 28px !important;
  font-family: "IBM Plex Sans", sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  letter-spacing: 0.01em !important;
  border: none !important;
  transition: background 0.2s ease;
}
.elementor-form .elementor-button:hover { background: var(--map-accent-hover) !important; }

/* Helper text under fields */
.elementor-field-group .map-helper {
  font-size: 12px;
  color: var(--map-ink-faint);
  margin-top: 8px;
  font-family: "IBM Plex Sans", sans-serif;
}

/* ---------- 15. Buttons (Elementor default button polish) ---------- */
.elementor-button.map-btn-primary,
.elementor-element .elementor-button.map-btn-primary {
  background: var(--map-accent) !important;
  color: #fff !important;
  padding: 16px 28px !important;
  border-radius: 0 !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
}
.elementor-button.map-btn-primary:hover { background: var(--map-accent-hover) !important; }

.elementor-button.map-btn-secondary {
  background: transparent !important;
  color: var(--map-ink) !important;
  border: 1px solid var(--map-ink) !important;
  border-radius: 0 !important;
  padding: 15px 27px !important;
  font-weight: 500 !important;
}
.elementor-button.map-btn-secondary:hover {
  background: var(--map-ink) !important;
  color: var(--map-bg) !important;
}

/* ---------- 16. Tables (Elementor doesn't have a strong native table widget;
                use shortcode or HTML widget) ---------- */
.map-data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.map-data-table th, .map-data-table td {
  text-align: left;
  padding: 16px 20px;
  border-bottom: 1px solid var(--map-rule);
}
.map-data-table th {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: none;
  color: var(--map-ink-faint);
  font-weight: 500;
}
.map-data-table td {
  font-family: "IBM Plex Mono", monospace;
  color: var(--map-ink);
}
.map-data-table td:first-child {
  font-family: "Fraunces", Georgia, serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.01em;
}

/* Inverse table (on dark sections) */
.map-section.dark .map-data-table th { color: rgba(245,242,237,0.6); }
.map-section.dark .map-data-table th,
.map-section.dark .map-data-table td { border-bottom-color: rgba(245,242,237,0.15); }
.map-section.dark .map-data-table td { color: var(--map-bg); }

/* ---------- 17. Typography baseline overrides (anywhere Elementor falls back) ---------- */
h1, h2, h3, h4 { font-family: "Fraunces", Georgia, serif; letter-spacing: -0.02em; font-weight: 500; }
body, p, .elementor-widget-text-editor { font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif; }

/* Disable Elementor default rounded corners — industrial editorial uses square edges */
.elementor-button, .elementor-field, .elementor-image-box-img img { border-radius: 0 !important; }/* End custom CSS */