/* Apogee homepage polish — 20260923a
   Selected work grid + hero CTA / quiet motion / proof chips */

/* ===== Selected work symmetrical grid ===== */
.elementor-element-7fc9713.work-grid,
.work-grid {
  width: 100% !important;
  max-width: 100% !important;
}
.work-grid > .elementor-widget-wrap {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
}
.work-grid > .elementor-widget-wrap > .elementor-widget-html {
  display: none !important;
}
.work-grid > .elementor-widget-wrap > .elementor-widget-text-editor {
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
}
.work-grid > .elementor-widget-wrap > .elementor-widget-text-editor > .elementor-widget-container {
  height: 100%;
}
.work-grid > .elementor-widget-wrap > .elementor-widget-text-editor img,
.work-grid > .elementor-widget-wrap > .elementor-widget-text-editor iframe {
  height: 210px !important;
  object-fit: cover !important;
  width: 100% !important;
  display: block !important;
}
/* Featured cards (JS marks keepers); hide the rest */
.work-grid > .elementor-widget-wrap > .elementor-widget-text-editor.apogee-card-hide {
  display: none !important;
}
.work-grid > .elementor-widget-wrap > .elementor-widget-text-editor.apogee-card-keep {
  grid-column: auto !important;
  grid-row: auto !important;
}
@media (max-width: 1024px) {
  .work-grid > .elementor-widget-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 767px) {
  .work-grid > .elementor-widget-wrap {
    grid-template-columns: 1fr !important;
  }
}

/* ===== Hero: quiet motion + CTA hierarchy ===== */
.elementor-125 .elementor-element-93310ba {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.elementor-125 .elementor-element-93310ba::before {
  content: "";
  position: absolute;
  inset: -12% -8%;
  z-index: 0;
  pointer-events: none;
  opacity: 0.22;
  background:
    repeating-linear-gradient(
      95deg,
      transparent 0 14px,
      rgba(247, 244, 238, 0.07) 14px 15px
    ),
    repeating-linear-gradient(
      8deg,
      transparent 0 22px,
      rgba(247, 244, 238, 0.045) 22px 23px
    );
  transform: translate3d(0, 0, 0) scale(1.05);
  animation: apogee-contour-drift 18s ease-in-out 1 forwards;
}
.elementor-125 .elementor-element-93310ba > .elementor-container {
  position: relative;
  z-index: 1;
}
@keyframes apogee-contour-drift {
  0% { transform: translate3d(0, 8px, 0) scale(1.06); opacity: 0; }
  18% { opacity: 0.22; }
  100% { transform: translate3d(-18px, -10px, 0) scale(1.02); opacity: 0.16; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor-125 .elementor-element-93310ba::before {
    animation: none;
    opacity: 0.14;
    transform: none;
  }
}

/* Hero button row */
.elementor-125 .elementor-element-93310ba .apogee-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 8px;
}
.elementor-125 .elementor-element-93310ba .apogee-hero-demo {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 12px 18px !important;
  border-radius: 8px !important;
  background: #2F7D5A !important;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  border: 1px solid transparent !important;
  box-shadow: 0 1px 0 rgba(0,0,0,0.15);
  transition: background 0.2s ease, transform 0.2s ease;
}
.elementor-125 .elementor-element-93310ba .apogee-hero-demo:hover {
  background: #3a9169 !important;
  color: #fff !important;
}
.elementor-125 .elementor-element-17a4fe1 .elementor-button {
  background: transparent !important;
  color: #F7F4EE !important;
  border: 1px solid rgba(247, 244, 238, 0.45) !important;
  padding: 11px 16px !important;
}
.elementor-125 .elementor-element-17a4fe1 .elementor-button:hover {
  background: rgba(247, 244, 238, 0.08) !important;
}
.elementor-125 .elementor-element-5f57530 .elementor-button {
  background: transparent !important;
  color: rgba(247, 244, 238, 0.85) !important;
  border: 1px solid transparent !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  padding: 11px 8px !important;
  box-shadow: none !important;
}

/* Proof chips under dek */
.elementor-125 .apogee-proof-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 6px;
  max-width: 780px;
}
.elementor-125 .apogee-proof-chips span {
  display: inline-block;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: 0.02em;
  color: #D7E6DE;
  background: rgba(247, 244, 238, 0.08);
  border: 1px solid rgba(247, 244, 238, 0.14);
}


/* ===== 20260923c: full-bleed hero + readable mid sections ===== */

/* Pull homepage out of the narrow Sinatra content well */

/* Full-bleed dark hero */
.elementor-125 .elementor-element-93310ba {
  width: 100% !important;
  max-width: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  background-color: #0B2E1F !important;
  background-image: linear-gradient(145deg, #0B2E1F 0%, #0f3d2a 48%, #0a281c 100%) !important;
  padding: 88px 28px 72px !important;
  min-height: 460px;
}
.elementor-125 .elementor-element-93310ba > .elementor-container {
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
}

/* Soft cream panels so topo doesn't fight body copy */
.elementor-125 .elementor-element-79abf2f,
.elementor-125 .elementor-element-1a02a0f,
.elementor-125 .elementor-element-2986fd3,
.elementor-125 .elementor-element-b6210e6,
.elementor-125 .elementor-element-d38b1a0,
.elementor-125 .elementor-element-3cd636e,
.elementor-125 .elementor-element-9581f87,
.elementor-125 .elementor-element-9732fc9 {
  background-color: rgba(247, 244, 238, 0.92) !important;
  background-image: none !important;
  padding: 56px 24px !important;
}
.elementor-125 .elementor-element-79abf2f > .elementor-container,
.elementor-125 .elementor-element-1a02a0f > .elementor-container,
.elementor-125 .elementor-element-2986fd3 > .elementor-container,
.elementor-125 .elementor-element-b6210e6 > .elementor-container,
.elementor-125 .elementor-element-d38b1a0 > .elementor-container,
.elementor-125 .elementor-element-3cd636e > .elementor-container,
.elementor-125 .elementor-element-9581f87 > .elementor-container,
.elementor-125 .elementor-element-9732fc9 > .elementor-container {
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Section titles */
.elementor-125 .elementor-element-79abf2f .elementor-heading-title,
.elementor-125 .elementor-element-2986fd3 .elementor-heading-title,
.elementor-125 .elementor-element-b6210e6 .elementor-heading-title,
.elementor-125 .elementor-element-3cd636e .elementor-heading-title,
.elementor-125 .elementor-element-9581f87 .elementor-heading-title {
  color: #0B2E1F !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em;
}

/* What we build — four tiles as cards */
.elementor-125 .elementor-element-1a02a0f .elementor-column > .elementor-widget-wrap {
  background: #fff !important;
  border: 1px solid rgba(11, 46, 31, 0.10) !important;
  border-radius: 12px !important;
  padding: 22px 20px 20px !important;
  box-shadow: 0 1px 0 rgba(11, 46, 31, 0.04);
  height: 100%;
  min-height: 160px;
}
.elementor-125 .elementor-element-1a02a0f .elementor-column {
  margin-bottom: 16px;
}
.elementor-125 .elementor-element-1a02a0f .elementor-heading-title {
  color: #0B2E1F !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  margin-bottom: 8px !important;
}
.elementor-125 .elementor-element-1a02a0f .elementor-widget-text-editor,
.elementor-125 .elementor-element-1a02a0f .elementor-widget-text-editor p {
  color: #3d4a43 !important;
  font-size: 14.5px !important;
  line-height: 1.55 !important;
}

/* Method list readability */
.elementor-125 .elementor-element-2986fd3 .elementor-icon-list-text,
.elementor-125 .elementor-element-2986fd3 .elementor-widget-text-editor,
.elementor-125 .elementor-element-2986fd3 p,
.elementor-125 .elementor-element-2986fd3 li {
  color: #2a342e !important;
  line-height: 1.6 !important;
}

/* Selected work intro + about */
.elementor-125 .elementor-element-3cd636e .elementor-widget-text-editor,
.elementor-125 .elementor-element-9581f87 .elementor-widget-text-editor,
.elementor-125 .elementor-element-9732fc9 .elementor-widget-text-editor {
  color: #2a342e !important;
  max-width: 720px;
}

/* Bottom CTA full bleed */
.elementor-125 .elementor-element-d190357,
.elementor-125 .elementor-element-54f1f69 {
  width: 100% !important;
  border-radius: 0 !important;
  background-color: #0B2E1F !important;
  background-image: linear-gradient(160deg, #0B2E1F, #123d2c) !important;
  padding: 64px 24px !important;
}
.elementor-125 .elementor-element-d190357 .elementor-heading-title,
.elementor-125 .elementor-element-54f1f69 .elementor-heading-title {
  color: #F7F4EE !important;
}
.elementor-125 .elementor-element-d190357 .elementor-button,
.elementor-125 .elementor-element-54f1f69 .elementor-button {
  background: #2F7D5A !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 12px 20px !important;
}

@media (max-width: 767px) {
  .elementor-125 .elementor-element-93310ba {
    padding: 52px 18px 44px !important;
    min-height: 0;
  }
  .elementor-125 .elementor-element-1a02a0f .elementor-column > .elementor-widget-wrap {
    min-height: 0;
  }
}

/* 20260923d: break Sinatra 1200px well — si-container is OUTSIDE #content */
body.elementor-page-125 .site-main > .si-container {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.elementor-page-125 #primary,
body.elementor-page-125 #content,
body.elementor-page-125 article.post-125,
body.elementor-page-125 .entry-content.si-entry,
body.elementor-page-125 .elementor-125 {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.elementor-125 .elementor-element-93310ba {
  border-radius: 0 !important;
  width: 100% !important;
  max-width: none !important;
  left: 0 !important;
  right: 0 !important;
}
.elementor-125 .elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

