/* ==========================================================================
   Automagency design system
   Swiss editorial direction. Tokens first, then component classes that are
   attached to real Divi modules via each module's CSS Class field.
   ========================================================================== */

:root {
  --am-ink: #101010;
  --am-paper: #fbfbfa;
  --am-sand: #f6f5f1;
  --am-accent: #2338ec;
  --am-accent-soft: #8b96ff;
  --am-muted: #5d5d57;
  --am-faint: #8a8a83;
  --am-rule: #e4e3df;
  --am-rule-strong: #101010;
  --am-hair: #c9c7c0;
  --am-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", monospace;
  --am-sans: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --am-max: 1360px;
  --am-gutter: 40px;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */

body,
body.et-db #et-boc .et-l {
  font-family: var(--am-sans);
  color: var(--am-ink);
  background: var(--am-paper);
  -webkit-font-smoothing: antialiased;
}

.am-page h1,
.am-page h2,
.am-page h3,
.am-page h4 {
  font-family: var(--am-sans);
  letter-spacing: -0.02em;
  color: var(--am-ink);
}

/* Divi wraps rows at 80% by default. The design is a fixed max width. */
.am-page .et_pb_row {
  width: 100%;
  max-width: var(--am-max);
  padding-left: var(--am-gutter);
  padding-right: var(--am-gutter);
}

.am-page .et_pb_section {
  background-color: transparent;
}

/* --------------------------------------------------------------------------
   Vertical rule background used by the hero and closing CTA
   -------------------------------------------------------------------------- */

.am-page .am-grid-bg,
.am-page .am-grid-bg.et_pb_section,
.et-l--footer .am-grid-bg.et_pb_section {
  background-image: repeating-linear-gradient(
    90deg,
    transparent 0 135px,
    #f2f1ec 135px 136px
  ) !important;
  background-repeat: repeat;
  background-position: 0 0;
}

/* --------------------------------------------------------------------------
   Eyebrow: the monospace "// LABEL" line used across every section
   -------------------------------------------------------------------------- */

.am-eyebrow,
.am-eyebrow p {
  font: 500 11px/1.4 var(--am-mono);
  letter-spacing: 0.12em;
  color: var(--am-faint);
  margin: 0;
  text-transform: uppercase;
}

.am-eyebrow--accent,
.am-eyebrow--accent p {
  color: var(--am-accent);
}

/* --------------------------------------------------------------------------
   Node chain: the dot / rule / dot motif
   -------------------------------------------------------------------------- */

.am-nodes,
.am-nodes p {
  display: flex;
  align-items: center;
  margin: 0;
  font: 500 11px var(--am-mono);
  letter-spacing: 0.12em;
  color: var(--am-accent);
}

.am-nodes .dot,
.am-nodes .dot-open,
.am-nodes .dot-faint {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: none;
}

.am-nodes .dot { background: var(--am-accent); }
.am-nodes .dot-open { border: 1px solid var(--am-accent); }
.am-nodes .dot-faint { border: 1px solid var(--am-hair); }

.am-nodes .rule {
  width: 70px;
  height: 1px;
  background: var(--am-hair);
  flex: none;
}

.am-nodes .label { margin-left: 18px; }

/* --------------------------------------------------------------------------
   Headings
   -------------------------------------------------------------------------- */

.am-h1 h1 {
  font-size: clamp(34px, 3.2vw, 46px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  font-weight: 700;
  margin: 0;
  max-width: 900px;
  text-wrap: balance;
}

.am-h1 h1 .hl,
.am-h2 h2 .hl { color: var(--am-accent); }

.am-h2 h2 {
  font-size: clamp(30px, 3.4vw, 40px);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
  max-width: 900px;
}

.am-lead p {
  font-size: 17px;
  line-height: 1.6;
  color: var(--am-muted);
  margin: 0;
  max-width: 600px;
}

.am-body p {
  font-size: 15px;
  line-height: 1.6;
  color: var(--am-muted);
  margin: 0;
  max-width: 640px;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.am-btn.et_pb_button,
.am-page .am-btn.et_pb_button {
  font-family: var(--am-sans);
  font-size: 15px;
  font-weight: 500;
  padding: 15px 28px !important;
  border-radius: 0;
  border: 1px solid var(--am-accent);
  background: var(--am-accent);
  color: #fff;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.am-btn.et_pb_button:after,
.am-btn.et_pb_button:before { display: none !important; }

.am-btn.et_pb_button:hover {
  background: var(--am-ink);
  border-color: var(--am-ink);
  color: #fff;
  padding: 15px 28px !important;
}

.am-btn--ghost.et_pb_button,
.am-page .am-btn--ghost.et_pb_button {
  background: transparent;
  border: 1px solid var(--am-ink);
  color: var(--am-ink);
}

.am-btn--ghost.et_pb_button:hover {
  background: var(--am-ink);
  color: #fff;
}

/* --------------------------------------------------------------------------
   Stats strip
   -------------------------------------------------------------------------- */

.am-stats .et_pb_column { margin-bottom: 0 !important; }

.am-stat {
  border: 1px solid var(--am-rule);
  padding: 30px 40px;
  height: 100%;
  margin-left: -1px;
  margin-top: -1px;
}

.am-stat .k {
  font: 500 11px var(--am-mono);
  letter-spacing: 0.1em;
  color: var(--am-faint);
  text-transform: uppercase;
}

.am-stat .v {
  font-size: 42px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-top: 6px;
  line-height: 1.05;
}

.am-stat .v.accent { color: var(--am-accent); }

/* --------------------------------------------------------------------------
   Numbered rows (the "sound familiar" table)
   -------------------------------------------------------------------------- */

.am-rows { border-top: 1px solid var(--am-rule-strong); }

.am-row {
  display: grid;
  grid-template-columns: 70px 1.1fr 1.4fr;
  gap: 24px;
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid var(--am-rule);
}

.am-row .n {
  font: 500 12px var(--am-mono);
  color: var(--am-accent);
}

.am-row .t {
  font-size: 19px;
  font-weight: 600;
  color: var(--am-ink);
}

/* Rows with a mono label ("// STRUCTURE"): the label sits above the title,
   the number lines up with the title, and the description is centred on the row. */
.am-row:has(> .l) {
  grid-template-areas: ". l d" "n t d";
  row-gap: 6px;
  align-items: center;
  padding: 28px 0;
}
.am-row:has(> .l) > .n { grid-area: n; }
.am-row > .l {
  grid-area: l;
  align-self: end;
  font: 500 10px/1.4 var(--am-mono);
  letter-spacing: 0.12em;
  color: var(--am-accent);
  text-transform: uppercase;
}
.am-row:has(> .l) > .t { grid-area: t; line-height: 1.25; }
.am-row:has(> .l) > .d { grid-area: d; align-self: center; }

.am-row .d {
  font-size: 14px;
  line-height: 1.55;
  color: var(--am-muted);
}

@media (max-width: 980px) {
  .am-row { grid-template-columns: 44px 1fr; }
  .am-row .d { grid-column: 2; }
  .am-row:has(> .l) { grid-template-areas: ". l" "n t" ". d"; }
}

/* --------------------------------------------------------------------------
   Cards
   -------------------------------------------------------------------------- */

.am-card.et_pb_blurb {
  border: 1px solid var(--am-rule);
  background: var(--am-sand);
  padding: 26px;
  height: 100%;
}

.am-card .et_pb_module_header {
  font-size: 19px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em;
  margin: 34px 0 8px !important;
  color: var(--am-ink) !important;
}

.am-card .et_pb_blurb_description p,
.am-card .et_pb_blurb_description {
  font-size: 13px;
  line-height: 1.55;
  color: var(--am-muted);
}

.am-card .et_pb_blurb_container { padding: 0; }

.am-card .am-card-n {
  font: 500 11px var(--am-mono);
  color: var(--am-accent);
  display: block;
}

/* --------------------------------------------------------------------------
   Process steps
   -------------------------------------------------------------------------- */

.am-step { padding-right: 20px; height: 100%; }

.am-step .head {
  display: flex;
  align-items: center;
  margin-bottom: 18px;
}

.am-step .head .d {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  flex: none;
  background: var(--am-accent);
}

.am-step .head .d.open { background: none; border: 1px solid var(--am-accent); }
.am-step .head .d.faint { background: none; border: 1px solid var(--am-hair); }
.am-step .head .l { height: 1px; background: var(--am-hair); flex: 1; }
.am-step .head .l.blank { background: transparent; }

.am-step .k {
  font: 500 11px var(--am-mono);
  color: var(--am-accent);
}

.am-step h3 {
  font-size: 15px;
  font-weight: 700;
  margin: 10px 0 6px;
}

.am-step p {
  font-size: 12px;
  line-height: 1.5;
  color: var(--am-muted);
  margin: 0;
}

/* --------------------------------------------------------------------------
   Brands banner
   -------------------------------------------------------------------------- */

.am-brands { }

.am-brands-track {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.am-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--am-rule);
  background: var(--am-paper);
  padding: 12px 16px;
  transition: border-color .18s ease;
}

.am-brand:hover { border-color: var(--am-accent); }

.am-brand img {
  height: 18px;
  width: auto;
  display: block;
}

.am-brand span {
  font: 500 11px var(--am-mono);
  color: var(--am-muted);
  white-space: nowrap;
}

.am-brand--more {
  font: 500 11px var(--am-mono);
  color: var(--am-accent);
  letter-spacing: 0.06em;
}

/* Marquee variant for the full-width banner */
.am-brands--marquee { overflow: hidden; }

.am-brands--marquee .am-brands-track {
  flex-wrap: nowrap;
  width: max-content;
  animation: am-marquee 46s linear infinite;
}

.am-brands--marquee:hover .am-brands-track { animation-play-state: paused; }

@keyframes am-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .am-brands--marquee .am-brands-track {
    animation: none;
    flex-wrap: wrap;
    width: auto;
  }
}

/* --------------------------------------------------------------------------
   Proof cards
   -------------------------------------------------------------------------- */

.am-proof {
  display: block;
  border: 1px solid var(--am-rule);
  padding: 28px;
  color: var(--am-ink);
  height: 100%;
  transition: border-color .18s ease;
}

.am-proof:hover { border-color: var(--am-accent); }

.am-proof .k {
  font: 500 11px var(--am-mono);
  color: var(--am-faint);
  letter-spacing: 0.06em;
}

.am-proof .v {
  font-size: 52px;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--am-accent);
  margin-top: 18px;
  line-height: 1;
}

.am-proof .d {
  font-size: 15px;
  font-weight: 500;
  margin: 8px 0 0;
  color: var(--am-ink);
}

/* --------------------------------------------------------------------------
   Fit / not-fit panels
   -------------------------------------------------------------------------- */

.am-fit {
  border: 1px solid var(--am-rule-strong);
  padding: 32px;
  height: 100%;
}

.am-fit--no {
  border-color: var(--am-rule);
  background: var(--am-sand);
}

.am-fit ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.am-fit li {
  display: flex;
  gap: 12px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--am-ink);
}

.am-fit li:before {
  content: "+";
  color: var(--am-accent);
  font-weight: 700;
  flex: none;
}

.am-fit--no li { color: var(--am-muted); }

.am-fit--no li:before {
  content: "\2212";
  color: var(--am-faint);
}

/* --------------------------------------------------------------------------
   Guarantee panel
   -------------------------------------------------------------------------- */

.am-guarantee {
  border: 1px solid var(--am-rule-strong);
  box-shadow: 10px 10px 0 var(--am-accent);
  background: var(--am-ink);
  color: var(--am-paper);
  padding: 44px;
}

.am-guarantee .k {
  font: 500 11px var(--am-mono);
  letter-spacing: 0.14em;
  color: var(--am-accent-soft);
  margin-bottom: 16px;
  display: block;
}

.am-guarantee p {
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: -0.01em;
  margin: 0;
  max-width: 900px;
  color: var(--am-paper);
}

/* --------------------------------------------------------------------------
   Pull quote
   -------------------------------------------------------------------------- */

.am-quote {
  border-top: 1px solid var(--am-rule);
  padding-top: 48px;
  max-width: 900px;
}

.am-quote blockquote {
  font-size: clamp(20px, 2.4vw, 27px);
  line-height: 1.4;
  letter-spacing: -0.01em;
  font-weight: 500;
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--am-ink);
}

.am-quote .by {
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin-top: 22px;
}

.am-quote .by .who { font-size: 14px; font-weight: 700; }

.am-quote .by .where {
  font: 500 12px var(--am-mono);
  color: var(--am-faint);
}

/* --------------------------------------------------------------------------
   Closing CTA
   -------------------------------------------------------------------------- */

.am-cta { text-align: center; }

.am-cta .am-chain {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  margin: 40px 0 0;
}

.am-chain .chip {
  font: 500 11px var(--am-mono);
  letter-spacing: 0.08em;
  padding: 9px 14px;
  white-space: nowrap;
  border: 1px solid var(--am-ink);
  color: var(--am-ink);
  background: var(--am-paper);
}

.am-chain .chip.on {
  background: var(--am-accent);
  color: #fff;
  border-color: var(--am-accent);
}

.am-chain .seg {
  height: 1px;
  background: var(--am-ink);
  width: clamp(20px, 4vw, 64px);
}

.am-chain .pip {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--am-accent);
  animation: am-pulse 1.8s infinite;
  flex: none;
}

@keyframes am-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(35, 56, 236, .35); }
  70%  { box-shadow: 0 0 0 9px rgba(35, 56, 236, 0); }
  100% { box-shadow: 0 0 0 0 rgba(35, 56, 236, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .am-chain .pip { animation: none; }
}

/* --------------------------------------------------------------------------
   Video / VSL frame
   -------------------------------------------------------------------------- */

.am-frame { border: 1px solid var(--am-rule-strong); background: var(--am-paper); }

.am-frame .bar {
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid var(--am-rule-strong);
  padding: 10px 14px;
}

.am-frame .bar i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid var(--am-rule-strong);
  display: block;
}

.am-frame .bar i.on { background: var(--am-accent); border-color: var(--am-accent); }

.am-frame .bar .name {
  font: 500 10px var(--am-mono);
  letter-spacing: 0.08em;
  color: var(--am-faint);
  margin-left: 8px;
}

.am-frame .et_pb_video,
.am-frame .et_pb_image { margin: 0; }

/* --------------------------------------------------------------------------
   Section rhythm
   -------------------------------------------------------------------------- */

.am-section { padding: 72px 0 0; }
.am-section--tight { padding: 56px 0 0; }
.am-section--wide { padding: 80px 0 0; }
.am-section--end { padding: 80px 0 96px; }

/* --------------------------------------------------------------------------
   Layout corrections for how Divi wraps modules
   -------------------------------------------------------------------------- */

/* Divi renders each button as its own block. The design sets them side by side. */
.am-page .et_pb_button_module_wrapper {
  display: inline-block;
  margin: 36px 12px 0 0;
  vertical-align: top;
}

.am-page .et_pb_button_module_wrapper + .et_pb_button_module_wrapper { margin-top: 36px; }

/* Modules inside a column stack with a 30px gap by default; the design is tighter. */
.am-page .am-eyebrow,
.am-page .am-nodes,
.am-page .am-h1,
.am-page .am-h2,
.am-page .am-lead,
.am-page .am-body { margin-bottom: 0 !important; }

.am-page .am-nodes { margin-bottom: 34px !important; }
.am-page .am-eyebrow { margin-bottom: 12px !important; }
.am-page .am-h1 { margin-bottom: 28px !important; }
.am-page .am-h2 { margin-bottom: 24px !important; }
.am-page .am-lead { margin-bottom: 0 !important; }
.am-page .am-body { margin-bottom: 32px !important; }

.am-page .am-rows-mod,
.am-page .am-stat-mod,
.am-page .am-step-mod,
.am-page .am-proof-mod,
.am-page .am-fit-mod,
.am-page .am-guarantee-mod,
.am-page .am-chain-mod { margin-bottom: 0 !important; }

/* Row spacing between a heading block and the grid under it. */
.am-page .am-cards,
.am-page .am-steps,
.am-page .am-proofs,
.am-page .am-fits { margin-top: 8px; }

.am-page .am-steps { margin-top: 40px; }

/* Equal-height columns for card grids. */
.am-page .am-cards .et_pb_column,
.am-page .am-proofs .et_pb_column,
.am-page .am-fits .et_pb_column { display: flex; }

.am-page .am-cards .et_pb_module,
.am-page .am-proofs .et_pb_module,
.am-page .am-fits .et_pb_module { width: 100%; margin-bottom: 0 !important; }

/* Card: number sits at the top, title drops below it as in the design. */
.am-card .am-card-n { margin-bottom: 26px; }

/* --------------------------------------------------------------------------
   VSL frame
   -------------------------------------------------------------------------- */

.am-page .am-frame.et_pb_column {
  border: 1px solid var(--am-rule-strong);
  background: var(--am-paper);
  padding: 0;
  margin-bottom: 0;
}

.am-page .am-frame .am-frame-bar { margin-bottom: 0 !important; }

.am-frame-bar .bar {
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid var(--am-rule-strong);
  padding: 10px 14px;
}

.am-frame-bar .bar i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid var(--am-rule-strong);
  display: block;
}

.am-frame-bar .bar i.on { background: var(--am-accent); border-color: var(--am-accent); }

.am-frame-bar .bar .name {
  font: 500 10px var(--am-mono);
  letter-spacing: 0.08em;
  color: var(--am-faint);
  margin-left: 8px;
}

.am-page .am-frame-media { margin-bottom: 0 !important; position: relative; }
.am-page .am-frame-media .et_pb_image_wrap { display: block; width: 100%; }
.am-page .am-frame-media img { width: 100%; display: block; }

/* Divi's own video module brings its own play control once a real video is
   dropped in here, so the static poster carries none. */

.am-page .am-frame-head { margin-bottom: 14px; }

/* --------------------------------------------------------------------------
   Brands: each chip is its own Divi Blurb, laid out inline
   -------------------------------------------------------------------------- */

.am-page .am-brands-col.et_pb_column {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 0;
}

.am-page .am-brands-col .et_pb_module { margin-bottom: 0 !important; width: auto; }

.am-page .am-brand.et_pb_blurb {
  border: 1px solid var(--am-rule);
  background: var(--am-paper);
  padding: 12px 16px;
  transition: border-color .18s ease;
}

.am-page .am-brand.et_pb_blurb:hover { border-color: var(--am-accent); }

.am-page .am-brand .et_pb_blurb_content {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: none;
  padding: 0;
  text-align: left;
}

.am-page .am-brand .et_pb_main_blurb_image {
  margin: 0;
  width: auto;
  display: block;
  line-height: 0;
}

.am-page .am-brand .et_pb_main_blurb_image img { height: 18px; width: auto; display: block; }
.am-page .am-brand .et_pb_blurb_container { padding: 0; }

.am-page .am-brand .et_pb_module_header {
  font: 500 11px var(--am-mono) !important;
  color: var(--am-muted) !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: nowrap;
  letter-spacing: 0;
}

.am-page .am-brand--more {
  border: 1px solid var(--am-rule);
  padding: 12px 16px;
  font: 500 11px var(--am-mono);
  color: var(--am-accent);
  letter-spacing: 0.06em;
}

.am-page .am-brand--more p { margin: 0; }

/* Marquee track wraps the blurbs when the banner runs full width. */
.am-page .am-brands--marquee .am-brands-col.et_pb_column {
  flex-wrap: nowrap;
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   Testimonial module reskinned as the design's pull quote
   -------------------------------------------------------------------------- */

.am-page .am-quote.et_pb_testimonial {
  border: 0;
  border-top: 1px solid var(--am-rule);
  border-radius: 0;
  background: transparent;
  padding: 48px 0 0;
  box-shadow: none;
  max-width: 900px;
}

.am-page .am-quote.et_pb_testimonial:before { display: none; }

.am-page .am-quote .et_pb_testimonial_description { margin: 0; }

.am-page .am-quote .et_pb_testimonial_description_inner p {
  font-size: clamp(20px, 2.4vw, 27px);
  line-height: 1.4;
  letter-spacing: -0.01em;
  font-weight: 500;
  color: var(--am-ink);
  margin: 0;
}

.am-page .am-quote .et_pb_testimonial_author {
  font-size: 14px;
  font-weight: 700;
  color: var(--am-ink);
  font-style: normal;
  margin-top: 22px;
  display: inline-block;
}

.am-page .am-quote .et_pb_testimonial_meta {
  font: 500 12px var(--am-mono);
  color: var(--am-faint);
  margin-left: 10px;
  display: inline-block;
}

/* --------------------------------------------------------------------------
   Closing CTA
   -------------------------------------------------------------------------- */

.am-page .am-cta .et_pb_column { text-align: center; }
.am-page .am-cta .am-h2 h2 { max-width: none; font-size: clamp(40px, 5.5vw, 80px); line-height: 1; }
.am-page .am-cta .am-body p { margin-left: auto; margin-right: auto; max-width: 480px; }
.am-page .am-cta .am-eyebrow p { color: var(--am-accent); }
.am-page .am-cta-section { border-top: 1px solid var(--am-rule-strong); }

/* --------------------------------------------------------------------------
   Services: S.01 - S.04 blocks
   -------------------------------------------------------------------------- */

.am-page .am-svc.et_pb_row {
  padding-top: 52px;
  padding-bottom: 52px;
  border-bottom: 1px solid var(--am-rule);
}

.am-page .am-svc .et_pb_column { margin-bottom: 0 !important; }

.am-page .am-svc-label { margin-bottom: 0 !important; }

.am-svc-label p {
  font: 500 11px var(--am-mono);
  letter-spacing: 0.1em;
  color: var(--am-accent);
  margin: 0;
}

.am-page .am-svc .am-h2 { margin: 16px 0 12px !important; }
.am-page .am-svc .am-h2 h2 { font-size: clamp(26px, 2.6vw, 32px); }

.am-page .am-svc-desc { margin-bottom: 0 !important; }

.am-svc-desc p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--am-muted);
  margin: 0;
}

.am-page .am-svc-stat { margin: 30px 0 0 !important; }

.am-svc-stat .v {
  font-size: 40px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--am-accent);
  line-height: 1;
}

.am-svc-stat .k {
  font: 500 11px var(--am-mono);
  letter-spacing: 0.1em;
  color: var(--am-faint);
  margin-top: 6px;
}

.am-page .am-svc-grid-mod { margin-bottom: 0 !important; }

.am-svc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--am-rule);
  border: 1px solid var(--am-rule);
  align-self: start;
}

.am-svc-grid .cell { background: var(--am-paper); padding: 20px; }

.am-svc-grid .cell .t {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--am-ink);
}

.am-svc-grid .cell .d {
  font-size: 13px;
  line-height: 1.55;
  color: var(--am-muted);
}

@media (max-width: 780px) {
  .am-svc-grid { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Outcomes
   -------------------------------------------------------------------------- */

.am-outcome {
  border: 1px solid var(--am-rule);
  background: var(--am-sand);
  padding: 28px;
  height: 100%;
}

.am-outcome .k {
  font: 500 11px var(--am-mono);
  color: var(--am-accent);
  letter-spacing: 0.06em;
}

.am-outcome h3 {
  font-size: 20px;
  font-weight: 700;
  margin: 14px 0 8px;
  letter-spacing: -0.01em;
}

.am-outcome p {
  font-size: 13px;
  line-height: 1.55;
  color: var(--am-muted);
  margin: 0;
}

.am-page .am-outcomes .et_pb_column { display: flex; }
.am-page .am-outcomes .et_pb_module { width: 100%; margin-bottom: 0 !important; }

/* --------------------------------------------------------------------------
   Monospace chips
   -------------------------------------------------------------------------- */

.am-chips { display: flex; flex-wrap: wrap; gap: 8px; }

.am-chips .chip {
  font: 500 11px var(--am-mono);
  border: 1px solid var(--am-rule);
  padding: 10px 16px;
  color: var(--am-muted);
  letter-spacing: 0.06em;
}

.am-page .am-chips-mod { margin-bottom: 0 !important; }

/* --------------------------------------------------------------------------
   Media frame strip
   -------------------------------------------------------------------------- */

.am-page .am-media-frames .et_pb_column { margin-bottom: 0; }
.am-page .am-media-frames .am-frame-media img { width: 100%; }

/* --------------------------------------------------------------------------
   Niche hero stats
   -------------------------------------------------------------------------- */

.am-page .am-herostats { margin-top: 48px; }
.am-page .am-herostat-mod { margin-bottom: 0 !important; }
.am-page .am-herostats .et_pb_column { display: flex; }
.am-page .am-herostats .et_pb_module { width: 100%; }

.am-herostat {
  border: 1px solid var(--am-rule);
  background: var(--am-paper);
  padding: 22px;
  height: 100%;
}

.am-herostat .v {
  font-size: 34px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
}

.am-herostat .v.accent { color: var(--am-accent); }

.am-herostat .k {
  font: 500 11px var(--am-mono);
  letter-spacing: 0.1em;
  color: var(--am-faint);
  margin-top: 6px;
}

/* --------------------------------------------------------------------------
   Leak rows (wider label column)
   -------------------------------------------------------------------------- */

.am-leaks .am-row { grid-template-columns: 90px 1fr 1.2fr; gap: 20px; }
.am-leaks { border-top-color: var(--am-rule); }

@media (max-width: 980px) {
  .am-leaks .am-row { grid-template-columns: 70px 1fr; }
}

/* --------------------------------------------------------------------------
   Pipeline steps
   -------------------------------------------------------------------------- */

.am-page .am-pipe-mod { margin-bottom: 0 !important; }
.am-page .am-pipeline .et_pb_column { display: flex; }
.am-page .am-pipeline .et_pb_module { width: 100%; }

.am-pipe {
  border: 1px solid var(--am-rule);
  background: var(--am-sand);
  padding: 20px;
  height: 100%;
}

.am-pipe .head { display: flex; align-items: center; margin-bottom: 14px; }

.am-pipe .head .d {
  width: 9px; height: 9px; border-radius: 50%; flex: none;
  background: var(--am-accent);
}

.am-pipe .head .d.open { background: none; border: 1px solid var(--am-accent); }
.am-pipe .head .l { height: 1px; background: var(--am-hair); flex: 1; }
.am-pipe .head .l.blank { background: transparent; }

.am-pipe .k { font: 500 11px var(--am-mono); color: var(--am-accent); }
.am-pipe .t { font-size: 16px; font-weight: 700; margin: 8px 0 5px; }
.am-pipe .d { font-size: 12px; line-height: 1.5; color: var(--am-muted); }

.am-page .am-pipe-note { margin: 20px 0 0 !important; }
.am-pipe-note p { font-size: 13px; color: var(--am-muted); margin: 0; max-width: 620px; }

/* --------------------------------------------------------------------------
   Simple grid cards
   -------------------------------------------------------------------------- */

.am-page .am-gcard-mod { margin-bottom: 0 !important; }
.am-page .am-gcards .et_pb_column { display: flex; }
.am-page .am-gcards .et_pb_module { width: 100%; }
.am-page .am-gcards { margin-top: 8px; }

.am-gcard {
  border: 1px solid var(--am-rule);
  background: var(--am-sand);
  padding: 22px;
  height: 100%;
}

.am-gcard .t { font-size: 16px; font-weight: 700; margin-bottom: 6px; }
.am-gcard .d { font-size: 13px; line-height: 1.55; color: var(--am-muted); }

/* --------------------------------------------------------------------------
   Case cards and case panel
   -------------------------------------------------------------------------- */

.am-page .am-case-mod { margin-bottom: 0 !important; }
.am-page .am-cases .et_pb_column { display: flex; }
.am-page .am-cases .et_pb_module { width: 100%; }

.am-case {
  border: 1px solid var(--am-rule);
  padding: 32px;
  height: 100%;
}

.am-case .top { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.am-case .v { font-size: 50px; font-weight: 700; letter-spacing: -0.03em; color: var(--am-accent); line-height: 1; }
.am-case .k { font: 500 11px var(--am-mono); letter-spacing: 0.1em; color: var(--am-faint); text-align: right; }
.am-case .t { font-size: 16px; font-weight: 700; margin: 8px 0 10px; }
.am-case p { font-size: 13px; line-height: 1.6; color: var(--am-muted); margin: 0 0 20px; }
.am-case .tags, .am-casep-l .tags { display: flex; gap: 6px; flex-wrap: wrap; }

.am-case .tag, .am-casep-l .tag {
  font: 500 10px var(--am-mono);
  border: 1px solid var(--am-rule);
  padding: 4px 8px;
  color: var(--am-muted);
}

/* Panel variant */
.am-page .am-casep.et_pb_row {
  border: 1px solid var(--am-rule);
  background: var(--am-sand);
  padding: 40px;
  max-width: 1360px;
}

.am-page .am-casep .et_pb_column { margin-bottom: 0; display: flex; align-items: center; }
.am-page .am-casep-mod { margin-bottom: 0 !important; width: 100%; }

.am-casep-l .k { font: 500 11px var(--am-mono); letter-spacing: 0.1em; color: var(--am-faint); }
.am-casep-l .v { font-size: 56px; font-weight: 700; letter-spacing: -0.03em; color: var(--am-accent); margin-top: 14px; line-height: 1; }
.am-casep-l .t { font-size: 15px; font-weight: 700; margin-bottom: 18px; }
.am-casep-r p { font-size: 16px; line-height: 1.6; margin: 0; }
.am-casep-r .by { display: flex; gap: 10px; align-items: baseline; margin-top: 14px; }
.am-casep-r .who { font-size: 14px; font-weight: 700; }
.am-casep-r .where { font: 500 11px var(--am-mono); color: var(--am-faint); }

/* --------------------------------------------------------------------------
   Testimonial cards (Results)
   -------------------------------------------------------------------------- */

.am-page .am-tcards .et_pb_column { display: flex; }
.am-page .am-tcard.et_pb_testimonial {
  border: 1px solid var(--am-rule);
  background: var(--am-sand);
  border-radius: 0;
  padding: 28px;
  box-shadow: none;
  width: 100%;
  margin-bottom: 0 !important;
}

.am-page .am-tcard.et_pb_testimonial:before { display: none; }
.am-page .am-tcard .et_pb_testimonial_description { margin: 0; }
.am-page .am-tcard .et_pb_testimonial_description_inner p { font-size: 15px; line-height: 1.6; margin: 0 0 18px; }
.am-page .am-tcard .et_pb_testimonial_author { font-size: 14px; font-weight: 700; font-style: normal; color: var(--am-ink); display: inline-block; }
.am-page .am-tcard .et_pb_testimonial_meta { font: 500 11px var(--am-mono); color: var(--am-faint); margin-left: 10px; display: inline-block; }

/* --------------------------------------------------------------------------
   Terminal / audit offer
   -------------------------------------------------------------------------- */

.am-page .am-audit-section { border-top: 1px solid var(--am-rule-strong); }
.am-page .am-audit .et_pb_column { margin-bottom: 0; align-self: center; }
.am-page .am-term-mod { margin-bottom: 0 !important; }

.am-term {
  border: 1px solid var(--am-rule-strong);
  box-shadow: 10px 10px 0 var(--am-accent);
  background: var(--am-ink);
}

.am-term .bar {
  display: flex; align-items: center; gap: 6px;
  background: var(--am-paper);
  border-bottom: 1px solid var(--am-rule-strong);
  padding: 10px 14px;
}

.am-term .bar i { width: 10px; height: 10px; border-radius: 50%; border: 1px solid var(--am-rule-strong); display: block; }
.am-term .bar i.on { background: var(--am-accent); border-color: var(--am-accent); }
.am-term .bar .name { font: 500 10px var(--am-mono); letter-spacing: 0.08em; color: var(--am-faint); margin-left: 8px; }

.am-term .body { padding: 24px; font: 500 13px/1.9 var(--am-mono); }
.am-term .cmd { color: var(--am-accent-soft); }
.am-term .lines { margin-top: 8px; }
.am-term .line { display: flex; justify-content: space-between; gap: 12px; color: #9a9a93; }
.am-term .out { color: #fff; margin-top: 8px; display: flex; align-items: center; gap: 8px; }

.am-term .caret {
  display: inline-block; width: 8px; height: 15px;
  background: var(--am-accent-soft);
  animation: am-blink 1.1s step-end infinite;
}

@keyframes am-blink { 0%, 49% { opacity: 1 } 50%, 100% { opacity: 0 } }
@media (prefers-reduced-motion: reduce) { .am-term .caret { animation: none } }

/* --------------------------------------------------------------------------
   Contact page
   -------------------------------------------------------------------------- */

.am-page .am-contact .et_pb_column { margin-bottom: 0; }

.am-page .am-founder.et_pb_blurb { margin: 26px 0 0 !important; }
.am-page .am-founder .et_pb_blurb_content { display: flex; align-items: center; gap: 16px; max-width: none; text-align: left; }
.am-page .am-founder .et_pb_main_blurb_image { margin: 0; width: auto; }
.am-page .am-founder .et_pb_main_blurb_image img { width: 92px; height: 92px; border-radius: 50%; }
.am-page .am-founder .et_pb_module_header { font-size: 15px !important; font-weight: 700 !important; margin: 0 !important; }
.am-page .am-founder .et_pb_blurb_description { font: 500 11px var(--am-mono); letter-spacing: 0.1em; color: var(--am-faint); margin-top: 4px; }

.am-page .am-steplist-mod { margin: 38px 0 0 !important; }
.am-steplist { border-top: 1px solid var(--am-rule); }
.am-steplist .r { display: grid; grid-template-columns: 60px 1fr; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--am-rule); }
.am-steplist .n { font: 500 12px var(--am-mono); color: var(--am-accent); }
.am-steplist .t { font-size: 15px; font-weight: 700; }
.am-steplist .d { font-size: 13px; color: var(--am-muted); margin-top: 4px; }

.am-page .am-direct-mod { margin: 34px 0 0 !important; }
.am-direct { display: flex; flex-direction: column; gap: 10px; }
.am-direct .k { font: 500 10px var(--am-mono); letter-spacing: 0.12em; color: var(--am-faint); }
.am-direct a { font-size: 15px; font-weight: 500; }

/* Form panel */
.am-page .am-form-head-mod {
  background: var(--am-sand);
  border: 1px solid var(--am-rule);
  border-bottom: 0;
  padding: 36px 36px 0;
  margin-bottom: 0 !important;
}

.am-form-head .t { font-size: 21px; font-weight: 700; letter-spacing: -0.01em; }
.am-form-head .d { font-size: 13px; color: var(--am-muted); margin-top: 6px; }

.am-page .am-form,
.am-page .am-gform {
  background: var(--am-sand);
  border: 1px solid var(--am-rule);
  border-top: 0;
  border-bottom: 0;
  padding: 18px 36px 0;
  margin-bottom: 0 !important;
}

.am-page .am-form .et_pb_contact_form_label { display: block; }

.am-page .am-form .et_pb_contact_field { padding: 0 0 18px !important; }

.am-page .am-form input[type="text"],
.am-page .am-form input[type="email"],
.am-page .am-form textarea,
.am-page .am-gform input[type="text"],
.am-page .am-gform input[type="email"],
.am-page .am-gform textarea {
  border: 1px solid #d6d5d0;
  background: #fff;
  padding: 13px 14px;
  font: 400 14px var(--am-sans);
  color: var(--am-ink);
  border-radius: 0;
  width: 100%;
}

.am-page .am-form_label,
.am-page .am-gform .gfield_label {
  font: 500 10px var(--am-mono);
  letter-spacing: 0.12em;
  color: var(--am-faint);
  text-transform: uppercase;
}

.am-page .am-form .et_pb_contact_submit,
.am-page .am-gform .gform_button {
  background: var(--am-accent);
  color: #fff;
  border: 0;
  font: 700 15px var(--am-sans);
  padding: 16px 30px;
  border-radius: 0;
  cursor: pointer;
  width: 100%;
}

.am-page .am-form .et_pb_contact_submit:hover,
.am-page .am-gform .gform_button:hover { background: var(--am-ink); }

.am-page .am-form-foot-mod {
  background: var(--am-sand);
  border: 1px solid var(--am-rule);
  border-top: 0;
  padding: 0 36px 36px;
  margin-bottom: 0 !important;
}

.am-form-foot { font-size: 12px; color: var(--am-faint); text-align: center; }

/* --------------------------------------------------------------------------
   About: story, founder panel, prose
   -------------------------------------------------------------------------- */

.am-page .am-story .et_pb_column { margin-bottom: 0; }
.am-prose p { font-size: 15px; line-height: 1.65; color: var(--am-muted); margin: 0 0 16px; }
.am-page .am-prose { margin-bottom: 0 !important; }

.am-page .am-founder-panel.et_pb_row {
  border: 1px solid var(--am-rule-strong);
  padding: 40px;
  max-width: 1360px;
}

.am-page .am-founder-panel .et_pb_column { margin-bottom: 0; align-self: center; }
.am-page .am-founder-photo { margin-bottom: 0 !important; border: 1px solid var(--am-rule); }
.am-page .am-founder-quote { margin: 0 0 0 !important; }

.am-founder-quote p {
  font-size: clamp(20px, 2.3vw, 28px);
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: -0.01em;
  margin: 0 0 22px;
}

.am-founder-quote .by { display: flex; gap: 10px; align-items: baseline; }
.am-founder-quote .who { font-size: 14px; font-weight: 700; }
.am-founder-quote .where { font: 500 12px var(--am-mono); color: var(--am-faint); }

/* --------------------------------------------------------------------------
   Misc notes
   -------------------------------------------------------------------------- */

.am-page .am-cta-note { margin: 14px 0 0 !important; }
.am-cta-note p { font-size: 13px; color: var(--am-faint); margin: 0; }
.am-page .am-proof-cta .et_pb_button_module_wrapper { margin-top: 0; }

/* ==========================================================================
   Theme Builder header
   ========================================================================== */

.et-l--header .am-announce-section.et_pb_section {
  background: var(--am-ink);
  padding: 0;
}

.et-l--header .am-announce-section .et_pb_row {
  padding: 0 var(--am-gutter);
  max-width: none;
  width: 100%;
}

.am-announce {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  font: 500 11px/1 var(--am-mono);
  letter-spacing: 0.08em;
  color: var(--am-paper);
  padding: 12px 0;
}

.am-announce a { color: var(--am-accent-soft); white-space: nowrap; }
.am-announce a:hover { color: #fff; }

@media (max-width: 720px) {
  .am-announce { flex-direction: column; align-items: flex-start; gap: 6px; text-align: left; }
}

/* Sticky nav bar.
   position:sticky on the nav section alone cannot work: its containing block is
   .et-l--header, which is only as tall as the header, so it unsticks straight
   away. Sticking the whole header instead, offset upwards by the announcement
   bar's height, scrolls the bar away and pins the nav exactly as the design does. */
:root { --am-announce-h: 35px; }

.et-l--header {
  position: sticky;
  top: calc(-1 * var(--am-announce-h));
  z-index: 100;
}

.et-l--header .am-nav-section.et_pb_section {
  background: rgba(251, 251, 250, .95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--am-rule);
  padding: 0;
}

/* A fixed announcement height keeps the offset above honest. */
.am-announce {
  height: var(--am-announce-h);
  box-sizing: border-box;
  padding-top: 0;
  padding-bottom: 0;
}

/* Below the wrap point the bar would grow past its fixed height, so drop it and
   pin the nav flush to the top. */
@media (max-width: 860px) {
  .et-l--header { top: 0; }
  .et-l--header .am-announce-section { display: none; }
}

.et-l--header .am-nav-row.et_pb_row {
  padding: 0 var(--am-gutter);
  max-width: none;
  width: 100%;
}

.am-nav.et_pb_menu { background: transparent !important; }
.am-nav .et_pb_menu_inner_container { padding: 0; }
.am-nav .et_pb_menu__wrap { justify-content: flex-end; }
.am-nav .et_pb_menu__logo-wrap { margin-right: auto; }
.am-nav .et_pb_menu__logo img { height: 22px; width: auto; }
.am-nav .et_pb_menu__menu > nav > ul { display: flex; align-items: center; gap: 30px; }
.am-nav .et_pb_menu__menu > nav > ul > li { margin: 0; padding: 0; }

.am-nav .et_pb_menu__menu > nav > ul > li > a {
  font: 500 12px var(--am-mono) !important;
  letter-spacing: 0.07em;
  color: var(--am-ink);
  text-transform: uppercase;
  padding: 0;
  opacity: 1;
}

.am-nav .et_pb_menu__menu > nav > ul > li > a:hover { color: var(--am-accent); opacity: 1; }
.am-nav .et_pb_menu__menu > nav > ul > li.current-menu-item > a { color: var(--am-accent); }

/* The last menu item renders as the outlined CTA. */
.am-nav .et_pb_menu__menu > nav > ul > li:last-child > a {
  border: 1px solid var(--am-accent);
  color: var(--am-accent);
  padding: 11px 18px;
  white-space: nowrap;
  transition: background .18s ease, color .18s ease;
}

.am-nav .et_pb_menu__menu > nav > ul > li:last-child > a:hover {
  background: var(--am-accent);
  color: #fff;
}

.am-nav .et_pb_menu__search-button,
.am-nav .et_pb_menu__cart-button { display: none; }

.et-l--header .am-nav .et_pb_row,
.et-l--header .et_pb_module { margin-bottom: 0 !important; }

/* ==========================================================================
   Theme Builder footer
   ========================================================================== */

.et-l--footer .am-footer.et_pb_section {
  background: var(--am-sand);
  border-top: 1px solid var(--am-rule-strong);
}

.et-l--footer .am-footer .et_pb_row { max-width: var(--am-max); }
.et-l--footer .et_pb_module { margin-bottom: 0 !important; }

.am-footer-top.et_pb_row { padding-bottom: 56px !important; border-bottom: 1px solid #d9d8d2; }
.am-footer-top .et_pb_column { margin-bottom: 0; }

.am-wordmark { display: flex; align-items: center; gap: 10px; }

.am-wordmark .w {
  /* Capped so the wordmark plus caret always fits its half of the row. */
  font-size: clamp(36px, 5vw, 76px);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: .9;
  color: var(--am-ink);
}

.am-wordmark .caret {
  display: inline-block;
  width: 22px;
  height: 56px;
  background: var(--am-accent);
  animation: am-blink 1.1s step-end infinite;
}

@media (prefers-reduced-motion: reduce) { .am-wordmark .caret { animation: none } }

.am-wordmark-tag {
  font: 500 11px var(--am-mono);
  letter-spacing: 0.12em;
  color: var(--am-faint);
  margin-top: 20px;
}

/* Footer link columns sit side by side inside the right-hand column. */
.et-l--footer .am-footer-top .et_pb_column:last-child {
  display: flex;
  gap: 64px;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-end;
}

.et-l--footer .am-fcol-mod { width: auto; }

.am-fcol { display: flex; flex-direction: column; gap: 10px; }

.am-fcol .k {
  font: 500 10px var(--am-mono);
  letter-spacing: 0.12em;
  color: var(--am-faint);
}

.am-fcol a { color: var(--am-muted); font-size: 13px; }
.am-fcol a:hover { color: var(--am-accent); }

.am-footer-bottom.et_pb_row { padding-top: 22px !important; }

.am-statusbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font: 500 10px var(--am-mono);
  letter-spacing: 0.08em;
  color: var(--am-faint);
}

.am-statusbar .s { display: flex; align-items: center; gap: 8px; }

.am-statusbar .pip {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--am-accent);
  animation: am-pulse 1.8s infinite;
  flex: none;
}

.am-statusbar .legal { display: flex; gap: 18px; }
.am-statusbar a { color: var(--am-faint); }
.am-statusbar a:hover { color: var(--am-accent); }

@media (max-width: 980px) {
  .et-l--footer .am-footer-top .et_pb_column:last-child { justify-content: flex-start; gap: 40px; }
}

/* Divi stacks the menu module's logo above the links by default; the design is
   one row with the logo left and the links right. */
.am-nav .et_pb_menu_inner_container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 18px 0;
}

.am-nav .et_pb_menu__logo-wrap { margin: 0; flex: none; }
.am-nav .et_pb_menu__logo { margin: 0; }
.am-nav .et_pb_menu__wrap { flex: 1; justify-content: flex-end; margin: 0; }

.am-nav .et_pb_menu__menu > nav > ul,
.am-nav .et_pb_menu__menu > nav > ul > li {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.am-nav .et_pb_menu__menu > nav > ul > li:before { display: none !important; content: none !important; }
.am-nav .et_pb_menu__menu > nav > ul { padding: 0 !important; margin: 0 !important; }

/* Mobile: Divi swaps to its own toggle, so let it. */
@media (max-width: 980px) {
  .am-nav .et_pb_menu_inner_container { gap: 16px; }
}

/* Divi's dynamic CSS loads after the child theme sheet, so the nav row needs
   the extra specificity to win. */
.et-l--header .am-nav.et_pb_menu .et_pb_menu_inner_container {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 30px;
  padding: 18px 0 !important;
  width: 100%;
  text-align: left;
}

.et-l--header .am-nav.et_pb_menu .et_pb_menu__logo-wrap {
  margin: 0 !important;
  flex: 0 0 auto;
  width: auto !important;
  max-width: none;
}

.et-l--header .am-nav.et_pb_menu .et_pb_menu__logo { margin: 0 !important; }
.et-l--header .am-nav.et_pb_menu .et_pb_menu__logo img { height: 22px; width: auto; display: block; }

.et-l--header .am-nav.et_pb_menu .et_pb_menu__wrap {
  flex: 1 1 auto !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  display: flex !important;
}

.et-l--header .am-nav.et_pb_menu .et_pb_menu__menu { display: block; }
.et-l--header .am-nav.et_pb_menu .et_pb_menu__menu > nav > ul.et-menu {
  display: flex !important;
  align-items: center;
  gap: 30px;
  padding: 0 !important;
  margin: 0 !important;
}

/* The contact steplist used a grid whose 1fr track collapsed inside Divi's text
   module; flex sizes reliably here. */
.am-steplist .r {
  display: flex !important;
  align-items: flex-start;
  gap: 16px;
}

.am-steplist .r > .n { flex: 0 0 44px; }
.am-steplist .r > div { flex: 1 1 auto; min-width: 0; }

/* The panel already carries its own heading, so hide Gravity Forms' title. */
.am-page .am-gform .gform_title,
.am-page .am-gform .gform_description { display: none; }

.am-page .am-gform .gform_wrapper { margin: 0; }
.am-page .am-gform .gform_fields { display: block; }
.am-page .am-gform .gfield { margin-bottom: 18px; }
.am-page .am-gform .gfield_required { color: var(--am-accent); font-style: normal; }
.am-page .am-gform .gform_footer { padding: 0 0 4px; margin: 0; }

/* The proof card is a div with a stretched link so wpautop cannot break it. */
.am-proof { position: relative; }

.am-proof-link {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.am-proof .screen-reader-text {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.am-page .am-proof-mod .et_pb_text_inner > p:empty { display: none; }

/* Divi hides blurb images with .et_animated until its waypoint JS fires. A logo
   strip should not fade in, so opt these out of the animation. */
.am-page .am-brand .et_pb_main_blurb_image.et_animated,
.am-page .am-founder .et_pb_main_blurb_image.et_animated,
.am-page .am-card .et_pb_main_blurb_image.et_animated {
  opacity: 1 !important;
  animation: none !important;
  transform: none !important;
}

.am-page .am-brand .et_pb_image_wrap { opacity: 1 !important; }

/* Divi gives .et_pb_image_wrap width:100%. Inside a width:auto flex item that
   resolves to zero, which is why the logo chips rendered as text only. Size the
   whole chain explicitly instead. */
.am-page .am-brand .et_pb_main_blurb_image,
.am-page .am-founder .et_pb_main_blurb_image {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
}

.am-page .am-brand .et_pb_image_wrap,
.am-page .am-founder .et_pb_image_wrap {
  width: auto !important;
  max-width: none !important;
  display: block !important;
}

.am-page .am-brand .et_pb_image_wrap img {
  height: 18px !important;
  width: auto !important;
  max-width: none !important;
  display: block;
}

.am-page .am-founder .et_pb_image_wrap img {
  width: 92px !important;
  height: 92px !important;
  max-width: none !important;
  border-radius: 50%;
  display: block;
}

/* ==========================================================================
   Base overrides
   Divi's core stylesheet sets body typography and background at the same
   specificity as ours but loads later, so these need html-level specificity.
   ========================================================================== */

html body,
html body.am-page {
  background-color: var(--am-paper);
  font-family: var(--am-sans);
  font-size: 15px;
  line-height: 1.6;
  color: var(--am-ink);
  font-weight: 400;
}

html body #page-container,
html body .et-l--body,
html body #et-main-area { background-color: var(--am-paper); }

/* The design rules a hairline under the hero and above the closing CTA. */
.am-page .am-hero.et_pb_section { border-bottom: 1px solid var(--am-rule); }

/* ==========================================================================
   Design fidelity corrections
   ========================================================================== */

/* Stats strip: the design is one bordered box with internal dividers, not three
   separate cards. Kill Divi's column gutter so the borders collapse together. */
.am-page .am-stats.et_pb_row { display: flex; }

.am-page .am-stats .et_pb_column {
  margin-right: 0 !important;
  width: 33.3333% !important;
  margin-bottom: 0 !important;
  display: flex;
}

.am-page .am-stats .et_pb_module { width: 100%; margin-bottom: 0 !important; }

.am-page .am-stats .am-stat {
  margin: 0;
  border: 1px solid var(--am-rule);
  border-right-width: 0;
  height: 100%;
}

.am-page .am-stats .et_pb_column:last-child .am-stat { border-right-width: 1px; }

/* Card kicker sits on its own line with the design's gap before the title. */
.am-card .am-card-n {
  display: block;
  margin-bottom: 26px;
}

/* The numbered table rule is the strong ink hairline, not the light one. */
.am-page .am-rows { border-top: 1px solid var(--am-rule-strong); }

/* The wordmark is wide enough to overflow its column, and the caret is an empty
   flex item, so without flex:none it shrinks to zero width and disappears. */
.am-wordmark { flex-wrap: nowrap; }

.am-wordmark .w { flex: 0 1 auto; min-width: 0; }

.am-wordmark .caret {
  flex: 0 0 22px;
  align-self: center;
}

/* ==========================================================================
   Footer top row
   The wordmark and the four link groups are siblings in one flex row, sized by
   content, exactly as the design lays them out.
   ========================================================================== */

/* Column one holds the wordmark; column two holds the four widget areas.
   margin-right:auto on a flex item was pushing the last column onto its own row,
   so the split is done with real Divi columns instead. */
.et-l--footer .am-footer-top .et_pb_column {
  margin-bottom: 0 !important;
  display: flex;
  align-items: flex-end;
}

.et-l--footer .am-wordmark-mod {
  flex: 1 1 auto;
  margin-bottom: 0 !important;
}

.et-l--footer .am-footer-top .et_pb_column:last-child {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  /* gap is a minimum: space-between distributes whatever is left, so keeping it
     small stops the fourth column wrapping on narrower desktops. */
  gap: 16px;
}

.et-l--footer .am-fcol-mod {
  flex: 0 1 auto;
  margin-bottom: 0 !important;
  width: auto !important;
}

.am-fcol a { white-space: nowrap; }

@media (max-width: 1180px) {
  .et-l--footer .am-footer-top .et_pb_column { gap: 40px; }
  .et-l--footer .am-wordmark-mod { flex-basis: 100%; margin-right: 0 !important; }
}

/* The divider belongs to the top row; padding comes from the Divi row settings. */
.et-l--footer .am-footer-top.et_pb_row { border-bottom: 1px solid #d9d8d2; }
.et-l--footer .am-footer-bottom.et_pb_row { border-bottom: 0; }

/* ==========================================================================
   Footer widget areas (Divi Sidebar modules rendering WP widgets)
   ========================================================================== */

.et-l--footer .am-fcol-mod.et_pb_sidebar,
.et-l--footer .am-fcol-mod .et_pb_widget_area {
  padding: 0;
  border: 0;
  background: none;
}

.et-l--footer .am-fcol-mod .et_pb_widget,
.et-l--footer .am-fcol .widget { margin: 0; float: none; width: auto; }

.et-l--footer .am-fcol {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.et-l--footer .am-fcol .k {
  font: 500 10px var(--am-mono);
  letter-spacing: 0.12em;
  color: var(--am-faint);
  display: block;
}

.et-l--footer .am-fcol ul,
.et-l--footer .am-fcol ul.menu {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 10px;
  line-height: 1.3;
}

.et-l--footer .am-fcol li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.et-l--footer .am-fcol li:before { content: none !important; display: none !important; }

.et-l--footer .am-fcol a {
  color: var(--am-muted);
  font-size: 13px;
  white-space: nowrap;
}

.et-l--footer .am-fcol a:hover { color: var(--am-accent); }

/* Divi's sidebar module adds a vertical rule between columns; the design has none. */
.et-l--footer .am-fcol-mod .et_pb_widget_area_left { border-left: 0; padding-left: 0; }
.et-l--footer .am-fcol-mod .et_pb_widget_area_right { border-right: 0; padding-right: 0; }

/* A widget area with no widgets in it (say Industries, while those pages are
   drafts) takes no room, and the remaining link groups sit together on the
   right instead of space-between spreading them into a gap. */
.et-l--footer .am-fcol-mod:not(:has(.widget)) { display: none; }

@media (min-width: 1240px) {
  .et-l--footer .am-footer-top .et_pb_column:last-child {
    justify-content: flex-end;
    column-gap: 64px;
  }
}

/* Between Divi's 980px tablet breakpoint and ~1240px the two halves are still
   side by side but too narrow for four link columns, so give the links the full
   row width and drop the wordmark above them. */
@media (max-width: 1239px) {
  .et-l--footer .am-footer-top .et_pb_column {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
  }

  .et-l--footer .am-footer-top .et_pb_column:first-child { margin-bottom: 40px !important; }

  .et-l--footer .am-footer-top .et_pb_column:last-child {
    justify-content: flex-start;
    gap: 48px;
    flex-wrap: wrap;
  }
}

@media (max-width: 640px) {
  .et-l--footer .am-footer-top .et_pb_column:last-child { gap: 32px; }
  .et-l--footer .am-fcol-mod { flex: 1 1 40%; }
}

/* ==========================================================================
   Cal.com inline booking calendar
   ========================================================================== */

.am-page .am-cal-mod {
  background: var(--am-sand);
  border: 1px solid var(--am-rule);
  padding: 24px;
  margin-bottom: 0 !important;
}

/* Cal.com resizes its own iframe via postMessage, so the wrapper just needs a
   sensible floor while it loads. No inner scrollbar: the page scrolls. */
.am-cal {
  width: 100%;
  min-height: 700px;
  overflow: visible;
}

/* Cal injects its own iframe; keep it flush inside the panel. */
.am-cal iframe {
  width: 100% !important;
  border: 0;
  display: block;
}

.am-page .am-cal-mod + .am-form-foot-mod {
  background: var(--am-sand);
  border: 1px solid var(--am-rule);
  border-top: 0;
  padding: 0 24px 24px;
}

@media (max-width: 980px) {
  .am-cal { min-height: 560px; }
}

/* Founder portrait is a real photograph now, not the placeholder glyph. */
.am-page .am-founder .et_pb_image_wrap img {
  object-fit: cover;
  object-position: center 20%;
}

/* The logo links home. Its natural hit area is only as tall as the 22px mark,
   so pad the anchor out vertically without changing how it looks. */
.et-l--header .am-nav .et_pb_menu__logo-wrap a {
  display: inline-block;
  padding: 11px 0;
  line-height: 0;
}

/* --------------------------------------------------------------------------
   Approach: the engagement phases on a real Divi Tabs module

   The tab list is restyled into the numbered rail the rest of the site uses,
   and the panel is the same two-column editorial split as the story block.
   -------------------------------------------------------------------------- */

.am-page .am-approach-row { margin-top: 40px; }
.am-page .am-approach.et_pb_tabs {
  border: none;
  background: transparent;
}

/* The rail */
.am-page .am-approach .et_pb_tabs_controls {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  background: transparent;
  border: none;
  border-top: 1px solid var(--am-rule-strong);
  border-bottom: 1px solid var(--am-rule);
  overflow-x: auto;
  scrollbar-width: none;
}

.am-page .am-approach .et_pb_tabs_controls::-webkit-scrollbar { display: none; }
.am-page .am-approach .et_pb_tabs_controls:after { display: none; }

.am-page .am-approach .et_pb_tabs_controls li {
  flex: 1 1 0;
  min-width: 152px;
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  border-right: 1px solid var(--am-rule);
  font-family: var(--am-mono);
  font-weight: 500;
  position: relative;
}

.am-page .am-approach .et_pb_tabs_controls li:last-child { border-right: none; }

.am-page .am-approach .et_pb_tabs_controls li a {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 20px 18px 18px;
  color: var(--am-faint);
  text-decoration: none;
  transition: color .18s ease, background-color .18s ease;
}

.am-page .am-approach .et_pb_tabs_controls li a .n {
  font: 500 11px var(--am-mono);
  letter-spacing: 0.06em;
}

.am-page .am-approach .et_pb_tabs_controls li a .t {
  font: 500 12px var(--am-mono);
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.am-page .am-approach .et_pb_tabs_controls li:hover a { color: var(--am-muted); }

/* Active phase: sand fill plus the accent marker the design uses elsewhere. */
.am-page .am-approach .et_pb_tabs_controls li.et_pb_tab_active { background: var(--am-sand); }

.am-page .am-approach .et_pb_tabs_controls li.et_pb_tab_active:before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  height: 2px;
  background: var(--am-accent);
}

.am-page .am-approach .et_pb_tabs_controls li.et_pb_tab_active a { color: var(--am-ink); }
.am-page .am-approach .et_pb_tabs_controls li.et_pb_tab_active a .n { color: var(--am-accent); }
.am-page .am-approach .et_pb_tabs_controls li.et_pb_tab_active a .t { font-weight: 600; }

/* The panel */
.am-page .am-approach .et_pb_all_tabs { border-bottom: 1px solid var(--am-rule); }

.am-page .am-approach .et_pb_tab {
  padding: 0;
  background: transparent;
}

.am-page .am-approach .et_pb_tab_content { padding: 0; }

.am-phase {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  column-gap: 64px;
  row-gap: 14px;
  align-items: start;
  padding: 44px 0 52px;
}

.am-phase-k {
  grid-column: 1;
  font: 500 11px/1 var(--am-mono);
  letter-spacing: 0.08em;
  color: var(--am-accent);
}

.am-page .am-phase h3 {
  grid-column: 1;
  margin: 0;
  padding: 0;
  font-size: 30px;
  line-height: 1.15;
  font-weight: 600;
}

.am-phase p {
  grid-column: 2;
  grid-row: 1 / span 2;
  margin: 0;
  max-width: 56ch;
  font-size: 16px;
  line-height: 1.7;
  color: var(--am-muted);
}

@media (max-width: 980px) {
  .am-phase {
    grid-template-columns: 1fr;
    column-gap: 0;
    padding: 32px 0 40px;
  }
  .am-phase p { grid-column: 1; grid-row: auto; }
  .am-page .am-phase h3 { font-size: 24px; }
}

/* --------------------------------------------------------------------------
   Client quotes: a scroll-snapping rail of real Divi Testimonial modules
   -------------------------------------------------------------------------- */

.am-page .am-vrail-hintrow { margin-top: -6px; }
.am-page .am-vrail-hint { margin-bottom: 0 !important; }

.am-page .am-vrail-hint p {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin: 0;
  font: 500 11px var(--am-mono);
  letter-spacing: 0.08em;
  color: var(--am-faint);
}

.am-page .am-vrail-hint .ar { color: var(--am-accent); font-size: 13px; }

.am-page .am-vrail { margin-top: 18px; }

.am-page .am-vrail-col.et_pb_column {
  display: flex;
  align-items: stretch;
  gap: 20px;
  margin-bottom: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  padding-bottom: 22px;
  scrollbar-width: thin;
  scrollbar-color: var(--am-ink) var(--am-rule);
}

.am-page .am-vrail-col.et_pb_column::-webkit-scrollbar { height: 3px; }
.am-page .am-vrail-col.et_pb_column::-webkit-scrollbar-track { background: var(--am-rule); }
.am-page .am-vrail-col.et_pb_column::-webkit-scrollbar-thumb { background: var(--am-ink); }

.am-page .am-vrail-col .et_pb_module {
  flex: 0 0 380px;
  margin-bottom: 0 !important;
  scroll-snap-align: start;
}

.am-page .am-vcard.et_pb_testimonial {
  display: flex;
  width: 100%;
  padding: 30px 28px 26px;
  border: 1px solid var(--am-rule);
  border-radius: 0;
  background: var(--am-sand);
  box-shadow: none;
  transition: border-color .18s ease;
}

.am-page .am-vcard.et_pb_testimonial:hover { border-color: var(--am-accent); }
.am-page .am-vcard.et_pb_testimonial:before { display: none; }

.am-page .am-vcard .et_pb_testimonial_inner,
.am-page .am-vcard .et_pb_testimonial_description {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  margin: 0;
}

/* Pushes the attribution to the bottom so every card signs off on the same
   line however long the quote is. */
.am-page .am-vcard .et_pb_testimonial_description_inner { flex: 1 1 auto; }

.am-page .am-vcard .et_pb_testimonial_content p {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  color: var(--am-ink);
}

.am-page .am-vcard .et_pb_testimonial_author {
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--am-hair);
  font-size: 14px;
  font-weight: 700;
  font-style: normal;
  color: var(--am-ink);
}

.am-page .am-vcard .et_pb_testimonial_meta {
  margin-top: 5px;
  font: 500 11px var(--am-mono);
  letter-spacing: 0.04em;
  color: var(--am-faint);
}

@media (max-width: 720px) {
  /* Just under full width, so the next card always peeks in and the rail
     reads as swipeable. */
  .am-page .am-vrail-col .et_pb_module { flex: 0 0 86%; }
  .am-page .am-vrail-hint p { justify-content: flex-start; }
}

/* --------------------------------------------------------------------------
   Hero word rotator (assets/js/hero-words.js)
   -------------------------------------------------------------------------- */

.am-h1 h1 .am-rotator,
.am-rotator {
  display: inline-block;
  position: relative;
  vertical-align: bottom;
  overflow: hidden;
  padding-bottom: .08em;
  margin-bottom: -.08em;
  white-space: nowrap;
  transition: width .45s cubic-bezier(.65, 0, .35, 1);
}

.am-h1 h1 .am-rotator__word,
.am-rotator__word {
  display: inline-block;
  transition: transform .35s cubic-bezier(.65, 0, .35, 1), opacity .35s;
}

.am-rotator__word.is-out, .am-h1 h1 .am-rotator__word.is-out { transform: translateY(-100%); opacity: 0; }
.am-rotator__word.is-in, .am-h1 h1 .am-rotator__word.is-in { animation: am-rotator-in .45s cubic-bezier(.2, .7, .2, 1) both; }

@keyframes am-rotator-in {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: none; opacity: 1; }
}

/* On phones the words wrap differently each swap, so give the word its own line. */
@media (max-width: 767px) {
  .am-h1 h1 .am-rotator { display: block; width: auto !important; }
}

/* --------------------------------------------------------------------------
   Stat cycler (assets/js/stat-cycle.js)
   Same motion as the hero word rotator. Add `am-stat-cycle` to a stat's
   Text module; its number and label swap with the Customizer alternate.
   -------------------------------------------------------------------------- */

.am-stat-cycle .am-cycle {
  overflow: hidden;
  padding-bottom: .08em;
  margin-bottom: -.08em;
}

.am-stat-cycle .am-cycle__text {
  display: inline-block;
  transition: transform .35s cubic-bezier(.65, 0, .35, 1), opacity .35s;
}

.am-stat-cycle .am-cycle__text.is-out { transform: translateY(-100%); opacity: 0; }
.am-stat-cycle .am-cycle__text.is-in { animation: am-rotator-in .45s cubic-bezier(.2, .7, .2, 1) both; }

.am-stat-cycle .am-cycle__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Narrow columns: let the text wrap like the other stats instead of clipping. */
@media (max-width: 767px) {
  .am-stat-cycle .am-cycle__text { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  .am-stat-cycle .am-cycle__text { transition: none; animation: none; }
}

/* --------------------------------------------------------------------------
   The fix: before/after cards (homepage). One column per card:
   .am-fix-head (Text), .am-fix-before (Text), .am-fix-after (Blurb).
   -------------------------------------------------------------------------- */

.am-page .am-fixcards { margin-top: 48px; }

.am-page .am-fixcards .am-fixcard.et_pb_column {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--am-rule);
}

.am-page .am-fixcard .et_pb_module { width: 100%; margin-bottom: 0 !important; }

/* Header: "01 // STRUCTURE" plus a four-bar level icon that fills up per card. */
.am-fix-head {
  position: relative;
  padding: 26px 28px;
  border-bottom: 1px solid var(--am-rule);
  --b1: var(--am-rule); --b2: var(--am-rule); --b3: var(--am-rule); --b4: var(--am-accent);
}
.am-fix-head p {
  margin: 0;
  padding: 0;
  font: 500 12px/1.4 var(--am-mono);
  letter-spacing: 0.12em;
  color: var(--am-ink);
  text-transform: uppercase;
}
.am-fix-head .n { color: var(--am-accent); margin-right: 14px; }
.am-fix-head::after {
  content: "";
  position: absolute;
  right: 28px;
  top: 50%;
  width: 20px;
  height: 21px;
  margin-top: -10px;
  background: linear-gradient(to bottom,
    var(--b1) 0 3px, transparent 3px 6px,
    var(--b2) 6px 9px, transparent 9px 12px,
    var(--b3) 12px 15px, transparent 15px 18px,
    var(--b4) 18px 21px);
}
.am-fixcard:nth-child(2) .am-fix-head { --b3: var(--am-accent); }
.am-fixcard:nth-child(3) .am-fix-head { --b2: var(--am-accent); --b3: var(--am-accent); }
.am-fixcard:nth-child(4) .am-fix-head { --b1: var(--am-accent); --b2: var(--am-accent); --b3: var(--am-accent); }

/* Before: the pain from the section above, struck through. */
.am-fix-before {
  padding: 26px 28px 30px;
  background: var(--am-sand);
  border-bottom: 1px dashed var(--am-hair);
}
.am-fix-before::before {
  content: "BEFORE";
  display: block;
  margin-bottom: 12px;
  font: 500 10px/1.4 var(--am-mono);
  letter-spacing: 0.14em;
  color: var(--am-faint);
}
.am-fix-before p {
  margin: 0;
  padding: 0;
  font-size: 17px;
  line-height: 1.5;
  color: var(--am-faint);
  text-decoration: line-through;
  text-decoration-color: var(--am-accent);
  text-decoration-thickness: 1.5px;
}

/* After: the answer. */
.am-fix-after.et_pb_blurb { padding: 30px 28px 36px; flex: 1; }
.am-fix-after .et_pb_blurb_container { padding: 0; }
.am-fix-after .et_pb_main_blurb_image { display: none; }
.am-fix-after .et_pb_module_header {
  margin: 0 0 18px !important;
  padding: 0 !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.02em;
  color: var(--am-ink) !important;
}
.am-fix-after .et_pb_module_header::before {
  content: "AFTER \2192";
  display: block;
  margin-bottom: 18px;
  font: 500 10px/1.4 var(--am-mono);
  letter-spacing: 0.14em;
  color: var(--am-accent);
}
.am-fix-after .et_pb_blurb_description,
.am-fix-after .et_pb_blurb_description p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--am-muted);
}

/* Space between the cards and equal "before" blocks, as in the design. */
.am-page .am-fixcards.et_pb_row { display: flex; gap: 20px; }
.am-page .am-fixcards .am-fixcard.et_pb_column { flex: 1 1 0; width: auto !important; margin: 0 !important; }
.am-fix-before { min-height: 160px; }

@media (max-width: 980px) {
  .am-page .am-fixcards.et_pb_row { flex-wrap: wrap; }
  .am-page .am-fixcards .am-fixcard.et_pb_column { flex: 1 1 calc(50% - 10px); }
}

/* Closing CTA: everything on one centre line, with air between the chain and the text. */
.am-page .am-cta-section .am-chain-mod { margin: 44px 0 28px !important; }
.am-page .am-cta-section .am-body p { text-align: center; margin-left: auto; margin-right: auto; max-width: 520px; }
.am-page .am-cta-section .am-body { margin-bottom: 36px !important; }

/* --------------------------------------------------------------------------
   Client logo bar (homepage, under the stats). Image modules in one column;
   assets/js/logo-marquee.js duplicates them once so the strip can loop.
   -------------------------------------------------------------------------- */

.am-page .am-logos-section.et_pb_section { padding: 8px 0 24px; }
.am-page .am-logos-head .am-eyebrow p { text-align: center; }
.am-page .am-logos.et_pb_row { max-width: 1360px; overflow: hidden; margin-top: 20px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.am-page .am-logos .am-logos-track.et_pb_column {
  display: flex; flex-wrap: nowrap; align-items: center; gap: 64px;
  width: max-content !important; max-width: none; margin: 0 !important;
  animation: am-marquee 50s linear infinite;
}
.am-page .am-logos:hover .am-logos-track { animation-play-state: paused; }
.am-page .am-logo.et_pb_image { flex: none; width: auto !important; margin: 0 !important; }
.am-page .am-logo img { height: 30px; width: auto; max-width: 180px; object-fit: contain;
  opacity: 0.45; transition: opacity .25s; }
.am-page .am-logo:hover img { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .am-page .am-logos .am-logos-track.et_pb_column { animation: none; flex-wrap: wrap; justify-content: center; width: 100% !important; }
}

/* Review cards: company logo (Testimonial portrait) above the quote. */
.am-page .am-vcard .et_pb_testimonial_portrait {
  display: block !important; width: 140px !important; height: 28px !important; flex: none;
  margin: 0 0 22px !important; border-radius: 0 !important; box-shadow: none !important;
  background-size: contain !important; background-repeat: no-repeat !important; background-position: left center !important;
  opacity: .55; order: -1;
}
.am-page .am-vcard .et_pb_testimonial_portrait:before { display: none; }
.am-page .am-vcard .et_pb_testimonial_portrait img { height: 28px; width: auto; max-width: 140px; object-fit: contain; object-position: left; border-radius: 0; }
/* Divi indents the text by the portrait width; the logo sits above the quote instead. */
.am-page .am-vcard .et_pb_testimonial_description { margin-left: 0 !important; }
.am-page .am-vcard .et_pb_testimonial_portrait { opacity: .6; }

/* --------------------------------------------------------------------------
   Tools strip: each tool takes its own brand colour on hover. A copy of the
   logo, masked and filled with the brand colour, fades in over the grey one.
   -------------------------------------------------------------------------- */
.am-page .am-brand:has(img[src*="/logos/googleworkspace.svg"]) { --am-brand: #4285F4; --am-brand-logo: url("../img/logos/googleworkspace.svg"); }
.am-page .am-brand:has(img[src*="/logos/microsoft365.svg"]) { --am-brand: #D83B01; --am-brand-logo: url("../img/logos/microsoft365.svg"); }
.am-page .am-brand:has(img[src*="/logos/slack.svg"]) { --am-brand: #4A154B; --am-brand-logo: url("../img/logos/slack.svg"); }
.am-page .am-brand:has(img[src*="/logos/whatsapp.svg"]) { --am-brand: #25D366; --am-brand-logo: url("../img/logos/whatsapp.svg"); }
.am-page .am-brand:has(img[src*="/logos/hubspot.svg"]) { --am-brand: #FF7A59; --am-brand-logo: url("../img/logos/hubspot.svg"); }
.am-page .am-brand:has(img[src*="/logos/salesforce.svg"]) { --am-brand: #00A1E0; --am-brand-logo: url("../img/logos/salesforce.svg"); }
.am-page .am-brand:has(img[src*="/logos/pipedrive.svg"]) { --am-brand: #017737; --am-brand-logo: url("../img/logos/pipedrive.svg"); }
.am-page .am-brand:has(img[src*="/logos/stripe.svg"]) { --am-brand: #635BFF; --am-brand-logo: url("../img/logos/stripe.svg"); }
.am-page .am-brand:has(img[src*="/logos/quickbooks.svg"]) { --am-brand: #2CA01C; --am-brand-logo: url("../img/logos/quickbooks.svg"); }
.am-page .am-brand:has(img[src*="/logos/xero.svg"]) { --am-brand: #13B5EA; --am-brand-logo: url("../img/logos/xero.svg"); }
.am-page .am-brand:has(img[src*="/logos/docusign.png"]) { --am-brand: #4C00FF; --am-brand-logo: url("../img/logos/docusign.png"); }
.am-page .am-brand:has(img[src*="/logos/calendly.svg"]) { --am-brand: #006BFF; --am-brand-logo: url("../img/logos/calendly.svg"); }
.am-page .am-brand:has(img[src*="/logos/shopify.svg"]) { --am-brand: #95BF47; --am-brand-logo: url("../img/logos/shopify.svg"); }
.am-page .am-brand:has(img[src*="/logos/dropbox.svg"]) { --am-brand: #0061FF; --am-brand-logo: url("../img/logos/dropbox.svg"); }
.am-page .am-brand:has(img[src*="/logos/openai.svg"]) { --am-brand: #000000; --am-brand-logo: url("../img/logos/openai.svg"); }
.am-page .am-brand:has(img[src*="/logos/claude.svg"]) { --am-brand: #D97757; --am-brand-logo: url("../img/logos/claude.svg"); }
.am-page .am-brand:has(img[src*="/logos/powerbi.svg"]) { --am-brand: #C9A30B; --am-brand-logo: url("../img/logos/powerbi.svg"); }
.am-page .am-brand:has(img[src*="/logos/airtable.svg"]) { --am-brand: #18BFFF; --am-brand-logo: url("../img/logos/airtable.svg"); }
.am-page .am-brand:has(img[src*="/logos/monday.svg"]) { --am-brand: #FF3D57; --am-brand-logo: url("../img/logos/monday.svg"); }
.am-page .am-brand:has(img[src*="/logos/pandadoc.png"]) { --am-brand: #25B87A; --am-brand-logo: url("../img/logos/pandadoc.png"); }
.am-page .am-brand:has(img[src*="/logos/zendesk.svg"]) { --am-brand: #03363D; --am-brand-logo: url("../img/logos/zendesk.svg"); }
.am-page .am-brand:has(img[src*="/logos/intercom.svg"]) { --am-brand: #1F8DED; --am-brand-logo: url("../img/logos/intercom.svg"); }
.am-page .am-brand:has(img[src*="/logos/aircall.svg"]) { --am-brand: #00B388; --am-brand-logo: url("../img/logos/aircall.svg"); }
.am-page .am-brand:has(img[src*="/logos/twilio.svg"]) { --am-brand: #F22F46; --am-brand-logo: url("../img/logos/twilio.svg"); }
.am-page .am-brand:has(img[src*="/logos/typeform.svg"]) { --am-brand: #262627; --am-brand-logo: url("../img/logos/typeform.svg"); }
.am-page .am-brand:has(img[src*="/logos/mailchimp.svg"]) { --am-brand: #241C15; --am-brand-logo: url("../img/logos/mailchimp.svg"); }
.am-page .am-brand:has(img[src*="/logos/aws.svg"]) { --am-brand: #FF9900; --am-brand-logo: url("../img/logos/aws.svg"); }
.am-page .am-brand .et_pb_main_blurb_image { position: relative; }
.am-page .am-brand .et_pb_main_blurb_image::after {
  content: ""; position: absolute; inset: 0;
  background: var(--am-brand, var(--am-accent));
  -webkit-mask: var(--am-brand-logo) left center / contain no-repeat;
          mask: var(--am-brand-logo) left center / contain no-repeat;
  opacity: 0; transition: opacity .25s;
}
.am-page .am-brand .et_pb_main_blurb_image img { transition: opacity .25s; }
.am-page .am-brand.et_pb_blurb:hover { border-color: var(--am-brand, var(--am-accent)); }
.am-page .am-brand.et_pb_blurb:hover .et_pb_main_blurb_image::after { opacity: 1; }
.am-page .am-brand.et_pb_blurb:hover .et_pb_main_blurb_image img { opacity: 0; }
.am-page .am-brand.et_pb_blurb:hover .et_pb_module_header { color: var(--am-ink) !important; }
/* Reviews without a logo keep the same text line as the ones with one. */
.am-page .am-vcard.et_pb_testimonial:not(:has(.et_pb_testimonial_portrait)) .et_pb_testimonial_description { padding-top: 50px; }

/* Logo bar: render every logo as a dark silhouette so mixed sources (white,
   coloured, black) look like one set. Logos with a solid background use
   .am-logo--opaque and are blended into the page instead. */
.am-page .am-logo img { filter: brightness(0); }
.am-page .am-logo.am-logo--opaque img { filter: grayscale(1) contrast(1.6); mix-blend-mode: multiply; }
/* Proof cards: same height whatever the sentence length. */
.am-page .am-proofs .am-proof-mod, .am-page .am-proofs .am-proof-mod .et_pb_text_inner { height: 100%; }
.am-page .am-proofs .am-proof { height: 100%; box-sizing: border-box; }
/* Lotgenoten Media: wide wordmark, allowed past the default max width. */
.am-page .am-logo img[src*="lotgenoten"] { height: 28px; max-width: none; }
/* Logo bar without its eyebrow: even space above and below the strip. */
.am-page .am-logos-section.et_pb_section { padding: 40px 0 32px !important; }
.am-page .am-logos.et_pb_row { margin-top: 0; }
/* Review logos: one dark silhouette style, whatever the source colours. */
.am-page .am-vcard .et_pb_testimonial_portrait img { filter: brightness(0); }

/* --------------------------------------------------------------------------
   Cursor effect (assets/js/cursor-fx.js)
   -------------------------------------------------------------------------- */

.am-cursor-fx {
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: 0;
  transition: opacity .4s ease;
}
.am-cursor-fx.is-on { opacity: 1; }

.am-cursor-fx__trail,
.am-cursor-fx__glow,
.am-cursor-fx__grid {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* tight glow right around the pointer */
.am-cursor-fx__glow {
  background: radial-gradient(150px circle at var(--x) var(--y), rgba(35, 56, 236, .10), transparent 70%);
}

/* dot grid revealed only close to the pointer */
.am-cursor-fx__grid {
  background-image: radial-gradient(rgba(35, 56, 236, .7) 1.2px, transparent 1.6px);
  background-size: 16px 16px;
  -webkit-mask-image: radial-gradient(95px circle at var(--x) var(--y), rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, .25) 55%, transparent 100%);
          mask-image: radial-gradient(95px circle at var(--x) var(--y), rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, .25) 55%, transparent 100%);
}

/* ring that trails the pointer */
.am-cursor-fx__ring {
  position: absolute;
  left: -17px;
  top: -17px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1.5px solid var(--am-accent);
  box-sizing: border-box;
  will-change: transform;
}
.am-cursor-fx__ring::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(35, 56, 236, .08);
  transform: scale(.4);
  opacity: 0;
  transition: transform .25s cubic-bezier(.2, .7, .2, 1.3), opacity .2s ease;
}

/* over links and buttons the ring fills and grows */
.am-cursor-fx.is-hot .am-cursor-fx__ring::after { transform: scale(1.5); opacity: 1; }
.am-cursor-fx.is-hot .am-cursor-fx__ring { border-color: transparent; }
.am-cursor-fx.is-down .am-cursor-fx__ring::after { transform: scale(1); opacity: 1; }

@media print {
  .am-cursor-fx { display: none; }
}

/* Rotating word in other headings (e.g. the closing "Build the system ..."). */
.am-page .am-h2 h2 .hl { color: var(--am-accent); }

/* --------------------------------------------------------------------------
   Legal pages (Privacy statement, Terms & conditions)
   -------------------------------------------------------------------------- */
.am-page .am-legal { max-width: 760px; margin-top: 32px !important; }
.am-page .am-legal h3 { font-size: 19px; font-weight: 600; margin: 40px 0 12px; padding: 0; letter-spacing: -0.01em; }
.am-page .am-legal p, .am-page .am-legal li { font-size: 15px; line-height: 1.7; color: var(--am-muted); }
.am-page .am-legal p { margin: 0 0 14px; padding: 0; }
.am-page .am-legal ul, .am-page .am-legal ol { margin: 0 0 16px 1.2em; padding: 0; }
.am-page .am-legal li { margin-bottom: 6px; }
.am-page .am-legal strong { color: var(--am-ink); font-weight: 600; }
.am-page .am-legal a { color: var(--am-accent); }

/* Legal pages: index on the left (sticky), text on the right. */
@media (min-width: 981px) {
  .am-page .am-legal-col.et_pb_column { display: grid; grid-template-columns: 260px minmax(0, 760px); column-gap: 80px; align-items: start; }
  .am-page .am-legal-col .am-legal { margin-top: 0 !important; }
}
.am-legal-toc { position: sticky; top: 150px; border-top: 1px solid var(--am-rule-strong); padding-top: 16px; }
.am-legal-toc__label { font: 500 11px/1.4 var(--am-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--am-faint); margin: 0 0 12px; }
.am-legal-toc ol { list-style: none; margin: 0; padding: 0; counter-reset: am-toc; max-height: calc(100vh - 220px); overflow: auto; }
.am-legal-toc li { counter-increment: am-toc; border-bottom: 1px solid var(--am-rule); }
.am-legal-toc a { display: flex; gap: 12px; padding: 9px 0; font-size: 13px; line-height: 1.35; color: var(--am-muted); text-decoration: none; transition: color .2s; }
.am-legal-toc a::before { content: counter(am-toc, decimal-leading-zero); font: 500 11px/1.6 var(--am-mono); color: var(--am-faint); flex: none; }
.am-legal-toc a:hover, .am-legal-toc a.is-current { color: var(--am-ink); }
.am-legal-toc a.is-current::before { color: var(--am-accent); }
.am-page .am-legal h3 { scroll-margin-top: 150px; padding-top: 24px !important; border-top: 1px solid var(--am-rule); }
.am-page .am-legal h3:first-child { border-top: 0; padding-top: 0 !important; margin-top: 0; }
@media (max-width: 980px) { .am-legal-toc { display: none; } }

/* Logged in: WordPress pins its admin bar (32px, 46px on small screens) at the top,
   so the sticky header has to stop below it instead of under it. */
.admin-bar .et-l--header { top: calc(32px - var(--am-announce-h)); }
@media screen and (max-width: 782px) {
  .admin-bar .et-l--header { top: calc(46px - var(--am-announce-h)); }
}
/* Narrow screens hide the black bar, so the header simply sits under the admin bar. */
@media screen and (max-width: 860px) { .admin-bar .et-l--header { top: 32px; } }
@media screen and (max-width: 782px) { .admin-bar .et-l--header { top: 46px; } }

/* Logo bar: social-proof line above the strip. */
.am-page .am-trusted p {
  margin: 0; padding: 0; text-align: center;
  font: 500 11px/1.4 var(--am-mono); letter-spacing: .14em; text-transform: uppercase;
  color: var(--am-faint);
}
.am-page .am-trusted strong { color: var(--am-ink); font-weight: 600; }
.am-page .am-logos-section .am-trusted { margin-bottom: 22px !important; }
/* Tighter: the trusted line sits right on top of the strip as one block. */
.am-page .am-logos-section.et_pb_section { padding: 36px 0 36px !important; }
.am-page .am-logos-section > .et_pb_row { padding-top: 0 !important; padding-bottom: 0 !important; }
.am-page .am-logos-section .am-trusted { margin-bottom: 14px !important; }
.am-page .am-trusted p { font-size: 10px; }
/* Trusted line exactly centred between the hero's bottom rule and the logo strip (same total height). */
.am-page .am-logos-section.et_pb_section { padding-top: 25px !important; }
.am-page .am-logos-section .am-trusted { margin-bottom: 25px !important; }

/* About, "Why we exist": the loop visual matches the height of the text beside it. */
@media (min-width: 981px) {
  .am-page .am-story.et_pb_row { display: flex; align-items: center; }
  .am-page .am-story .am-frame-media { margin-bottom: 0 !important; }
  .am-page .am-story .am-frame-media img { display: block; width: 100%; max-width: 560px; margin-left: auto; border: 0; }
}

/* About: remote team section. */
.am-page .am-remote-head .am-body p { max-width: 620px; }
.am-page .am-remote-cards.et_pb_row { margin-top: 40px; }
.am-page .am-remote-maprow.et_pb_row { margin-top: 48px; }
.am-page .am-remote-map img { display: block; width: 100%; height: auto; }

/* About, remote section: globe left, text right, same height. */
@media (min-width: 981px) {
  .am-page .am-remote-row.et_pb_row { display: flex; align-items: center; }
}
.am-page .am-remote-globe { margin-bottom: 0 !important; }
.am-page .am-remote-globe img { display: block; width: 100%; max-width: 520px; height: auto; }
.am-remote-globe__canvas { display: block; max-width: 100%; touch-action: pan-y; cursor: grab; }
.am-remote-globe__canvas:active { cursor: grabbing; }
.am-page .am-points { list-style: none; margin: 32px 0 0; padding: 0; border-top: 1px solid var(--am-rule-strong); }
.am-page .am-points li { display: grid; grid-template-columns: 44px 1fr; column-gap: 8px; padding: 16px 0; border-bottom: 1px solid var(--am-rule); line-height: 1.5; }
.am-page .am-points .n { grid-row: span 2; font: 500 11px/1.9 var(--am-mono); color: var(--am-accent); }
.am-page .am-points strong { font-size: 16px; font-weight: 600; color: var(--am-ink); }
.am-page .am-points span:not(.n) { font-size: 14px; color: var(--am-muted); }
.am-remote-globe__tip {
  position: absolute; z-index: 2; pointer-events: none;
  transform: translate(-50%, calc(-100% - 14px));
  padding: 6px 10px; background: var(--am-ink); color: var(--am-paper);
  font: 500 11px/1 var(--am-mono); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap;
  opacity: 0; transition: opacity .15s;
}
.am-remote-globe__tip.is-on { opacity: 1; }

/* Closing CTA: everything on one axis, even rhythm.
   - Outer chips share one width, so the blue AUTOMAGENCY chip sits exactly on the centre line.
   - The single button loses the gap that was meant for a second button.
   - Equal spacing between heading, chain, text and button. */
.am-page .am-cta-section .am-chain .chip:not(.on) { min-width: 146px; justify-content: center; text-align: center; box-sizing: border-box; }
.am-page .am-cta-section .et_pb_button_module_wrapper { margin: 0 !important; padding-top: 0 !important; }
.am-page .am-cta-section .am-chain-mod { margin: 48px 0 !important; }
.am-page .am-cta-section .am-body { margin-bottom: 48px !important; }

/* --------------------------------------------------------------------------
   Cards, site-wide: white surface and hairline instead of the sand fill.
   Covers principles/outcomes (.am-outcome), blurb cards, reviews, result
   quotes, guide cards, the "not for you" card, the case panel and the pipe.
   -------------------------------------------------------------------------- */
.am-outcome,
.am-gcard,
.am-pipe,
.am-fit--no,
.am-card.et_pb_blurb,
.am-page .am-casep.et_pb_row,
.am-page .am-tcard.et_pb_testimonial,
.am-page .am-vcard.et_pb_testimonial {
  background: #ffffff !important;
  border: 1px solid var(--am-rule) !important;
  box-shadow: inset 0 0 0 0 var(--am-accent);
  transition: box-shadow .25s ease, border-color .25s ease;
}
.am-outcome:hover,
.am-gcard:hover,
.am-card.et_pb_blurb:hover,
.am-page .am-tcard.et_pb_testimonial:hover,
.am-page .am-vcard.et_pb_testimonial:hover {
  border-color: var(--am-hair) !important;
  box-shadow: inset 0 2px 0 0 var(--am-accent);
}
/* Review meta (name, role, company) had its own sand box. */
.am-page .am-tcard .et_pb_testimonial_meta,
.am-page .am-tcard .et_pb_testimonial_meta *,
.am-page .am-vcard .et_pb_testimonial_meta,
.am-page .am-vcard .et_pb_testimonial_meta * { background: transparent !important; padding-left: 0 !important; }

/* Review meta: "CEO - CLIMATE ER" instead of "CEO, CLIMATE ER" (Divi renders the ", " in its own span). */
.am-page .et_pb_testimonial_separator { font-size: 0; }
.am-page .et_pb_testimonial_separator::after { content: "\00a0-\00a0"; font: 500 11px var(--am-mono); letter-spacing: 0.04em; }

/* Results quotes: who on the left (logo, name, role - company), the quote on the right. */
.am-page .am-tcard .et_pb_testimonial_inner {
  display: grid; grid-template-columns: minmax(160px, 32%) 1fr; column-gap: 36px; align-items: start; width: 100%;
}
.am-page .am-tcard .et_pb_testimonial_description { display: contents; }
.am-page .am-tcard .et_pb_testimonial_portrait {
  grid-column: 1; grid-row: 1; display: block !important; width: 140px !important; height: 28px !important;
  margin: 0 0 16px !important; border-radius: 0 !important; box-shadow: none !important; opacity: .6;
}
.am-page .am-tcard .et_pb_testimonial_portrait:before { display: none; }
.am-page .am-tcard .et_pb_testimonial_portrait img { height: 28px; width: auto; max-width: 140px; object-fit: contain; object-position: left; border-radius: 0; filter: brightness(0); }
.am-page .am-tcard .et_pb_testimonial_author { grid-column: 1; grid-row: 2; display: block; }
.am-page .am-tcard .et_pb_testimonial_meta { grid-column: 1; grid-row: 3; display: block; margin: 6px 0 0 !important; line-height: 1.5; }
.am-page .am-tcard .et_pb_testimonial_description_inner { grid-column: 2; grid-row: 1 / span 3; }
.am-page .am-tcard .et_pb_testimonial_content p { margin: 0 !important; }
.am-page .am-tcard .et_pb_testimonial_content p::before { content: "\201C"; }
.am-page .am-tcard .et_pb_testimonial_content p::after { content: "\201D"; }
@media (max-width: 767px) {
  .am-page .am-tcard .et_pb_testimonial_inner { grid-template-columns: 1fr; }
  .am-page .am-tcard .et_pb_testimonial_description_inner { grid-column: 1; grid-row: 4; margin-top: 16px; }
}
/* Results quotes: one full-width row per review so the quote has room and the card stays low. */
@media (min-width: 768px) {
  .am-page .am-tcards.et_pb_row { display: flex; flex-direction: column; gap: 16px; }
  .am-page .am-tcards .et_pb_column { width: 100% !important; margin: 0 !important; flex-direction: column; gap: 16px; }
  .am-page .am-tcards .am-tcard.et_pb_testimonial { margin: 0 !important; padding: 28px 32px !important; }
  .am-page .am-tcard .et_pb_testimonial_inner { grid-template-columns: 260px 1fr; column-gap: 56px; }
  .am-page .am-tcard .et_pb_testimonial_content p { font-size: 16px; line-height: 1.6; max-width: 820px; }
}

/* --------------------------------------------------------------------------
   Results: endless review columns (assets/js/review-scroll.js)
   -------------------------------------------------------------------------- */
.am-page .am-scard.et_pb_testimonial {
  display: block; width: 100%; margin: 0 0 16px !important; padding: 28px !important;
  background: #ffffff !important; border: 1px solid var(--am-rule) !important; border-radius: 0;
  box-shadow: none; text-align: left;
}
.am-page .am-scard.et_pb_testimonial:before { display: none; }
.am-page .am-scard .et_pb_testimonial_inner,
.am-page .am-scard .et_pb_testimonial_description { display: flex; flex-direction: column; padding: 0 !important; margin: 0 !important; }
.am-page .am-scard .et_pb_testimonial_portrait {
  order: -1; display: block !important; width: 140px !important; height: 26px !important;
  margin: 0 0 20px !important; border-radius: 0 !important; box-shadow: none !important; opacity: .6;
}
.am-page .am-scard .et_pb_testimonial_portrait:before { display: none; }
.am-page .am-scard .et_pb_testimonial_portrait img { height: 26px; width: auto; max-width: 140px; object-fit: contain; object-position: left; border-radius: 0; filter: brightness(0); }
.am-page .am-scard .et_pb_testimonial_content p { margin: 0 0 20px; font-size: 15px; line-height: 1.6; color: var(--am-ink); }
.am-page .am-scard .et_pb_testimonial_content p::before { content: "\201C"; }
.am-page .am-scard .et_pb_testimonial_content p::after { content: "\201D"; }
.am-page .am-scard .et_pb_testimonial_author { font-size: 14px; font-weight: 700; font-style: normal; color: var(--am-ink); }
.am-page .am-scard .et_pb_testimonial_meta { margin-top: 4px; font: 500 11px var(--am-mono); letter-spacing: .04em; color: var(--am-faint); }

@media (min-width: 768px) {
  .am-page .am-tscroll.et_pb_row {
    display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 16px;
    height: 660px; overflow: hidden;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 12%, #000 88%, transparent);
            mask-image: linear-gradient(180deg, transparent, #000 12%, #000 88%, transparent);
  }
  .am-page .am-tscroll .am-tscroll-col.et_pb_column { width: auto !important; margin: 0 !important; float: none; }
  .am-tscroll-track { animation: am-tscroll 40s linear infinite; will-change: transform; }
  .am-tscroll-track.is-down { animation-direction: reverse; }
  /* No pause on hover: the scroll is slow enough to read while it moves. */
  @keyframes am-tscroll { from { transform: translateY(0); } to { transform: translateY(-50%); } }
}
@media (max-width: 767px) {
  .am-page .am-tscroll .am-tscroll-col.et_pb_column { width: 100% !important; margin: 0 !important; }
}

/* Results: two scrolling review columns on the left, a compact booking card on the right. */
@media (min-width: 768px) {
  .am-page .am-tscroll.et_pb_row {
    grid-template-columns: 1fr 1fr minmax(300px, .9fr); column-gap: 16px; align-items: center;
    height: 540px; -webkit-mask-image: none; mask-image: none;
  }
  .am-page .am-tscroll .am-tscroll-col.et_pb_column {
    height: 540px; overflow: hidden;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 12%, #000 88%, transparent);
            mask-image: linear-gradient(180deg, transparent, #000 12%, #000 88%, transparent);
  }
  .am-page .am-tscroll .am-tscroll-cta.et_pb_column {
    width: auto !important; float: none; margin: 0 0 0 24px !important; padding: 36px 32px;
    background: #fff; border: 1px solid var(--am-rule); align-self: center;
  }
}
.am-page .am-tscroll-cta .et_pb_module { margin-bottom: 16px !important; }
.am-page .am-tscroll-cta .am-h2 h3 { font-size: 26px; line-height: 1.15; letter-spacing: -0.02em; margin: 0; }
.am-page .am-tscroll-cta .am-body p { font-size: 15px; line-height: 1.6; }
.am-page .am-tscroll-cta .am-founder { margin: 8px 0 24px !important; }
@media (max-width: 767px) {
  .am-page .am-tscroll .am-tscroll-cta.et_pb_column { width: 100% !important; margin: 24px 0 0 !important; padding: 28px 24px; border: 1px solid var(--am-rule); background: #fff; }
}
/* Review columns as tall as the booking card beside them. */
@media (min-width: 768px) {
  .am-page .am-tscroll.et_pb_row,
  .am-page .am-tscroll .am-tscroll-col.et_pb_column { height: 600px; }
}

/* Whatever section sits right above the closing CTA keeps clear of its divider line. */
.am-page .et_pb_section:has(+ .am-cta-section) { padding-bottom: 96px !important; }

/* Schedule a call: photo beside the name, text column stays level with the calendar. */
.am-page .am-founder .et_pb_blurb_content { display: flex !important; flex-direction: row; justify-content: flex-start; align-items: center; gap: 16px; margin: 0 !important; }
.am-page .am-founder .et_pb_main_blurb_image { flex: none; margin: 0 !important; text-align: left; }
.am-page .am-founder .et_pb_main_blurb_image img { width: 64px; height: 64px; }
.am-page .am-founder .et_pb_blurb_container { padding: 0 !important; text-align: left; }
@media (min-width: 981px) {
  .am-page .am-contact.et_pb_row { display: flex; align-items: flex-start; }
  .am-page .am-contact > .et_pb_column:first-child { position: sticky; top: 150px; }
}
.am-page .am-cal-mod { margin-bottom: 0 !important; }

/* About hero: text left, the loop visual right, centred against each other. */
@media (min-width: 981px) {
  .am-page .am-about-hero.et_pb_row { display: flex; align-items: center; }
}
.am-page .am-about-hero .am-frame-media { margin-bottom: 0 !important; }
.am-page .am-about-hero .am-frame-media img { display: block; width: 100%; max-width: 560px; margin-left: auto; border: 0; }
/* "Why we exist" is text-only now: keep the reading width. */
.am-page .am-story .am-prose p { max-width: 720px; }

/* About: the founder. Photo left, story right. */
@media (min-width: 981px) {
  .am-page .am-founder-row.et_pb_row { display: flex; align-items: center; }
}
.am-page .am-founder-photo { margin-bottom: 0 !important; }
.am-page .am-founder-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 30%; border: 1px solid var(--am-rule); }
.am-page .am-founder-row .am-prose p { max-width: 680px; }
.am-page .am-founder-sign p { margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.am-page .am-founder-sign strong { font-size: 16px; font-weight: 700; color: var(--am-ink); }
.am-page .am-founder-sign span { font: 500 11px var(--am-mono); letter-spacing: .12em; color: var(--am-faint); }
@media (max-width: 980px) {
  .am-page .am-founder-photo img { max-width: 360px; }
}

/* About: founder quote. */
.am-page .am-founder-quote { border-left: 2px solid var(--am-accent); padding-left: 28px; margin-top: 8px !important; }
.am-page .am-founder-quote p { font-size: 17px; line-height: 1.7; color: var(--am-ink); max-width: 680px; }
.am-page .am-founder-quote p:first-child::before { content: "\201C"; }
.am-page .am-founder-quote p:last-child::after { content: "\201D"; }
.am-page .am-founder-row .am-founder-sign { padding-left: 30px; }

/* Founder quote: one centred column; the photo is a small avatar beside the name. */
.am-page .am-founder-row.et_pb_row { display: block; }
.am-page .am-founder-row .et_pb_column { max-width: 760px; margin-left: auto !important; margin-right: auto !important; float: none; }
.am-page .am-founder-sign p {
  display: grid; grid-template-columns: 52px 1fr; column-gap: 14px; row-gap: 2px; align-items: center;
}
.am-page .am-founder-sign p::before {
  content: ""; grid-row: span 2; width: 52px; height: 52px; border-radius: 50%;
  background: url("../img/yonas.jpeg") 50% 28% / 160% auto no-repeat; border: 1px solid var(--am-rule);
}
.am-page .am-founder-sign strong { align-self: end; }
.am-page .am-founder-sign span { align-self: start; }
/* Founder avatar: square, matching the site's square corners. */
.am-page .am-founder-sign p::before { border-radius: 0; }

/* ==========================================================================
   Responsive fixes (audit 2026-10-26)
   ========================================================================== */

/* Header: below 981px only the logo and the ☰ show; the dropdown is solid. */
@media (max-width: 980px) {
  .et-l--header .am-nav.et_pb_menu .et_pb_menu__menu { display: none !important; }
  .et-l--header .am-nav.et_pb_menu .et_pb_menu_inner_container { padding: 14px 0 !important; gap: 16px; }
  .et-l--header .am-nav.et_pb_menu .et_mobile_nav_menu { display: flex !important; align-items: center; margin: 0 !important; }
}
.et-l--header .am-nav .et_mobile_menu {
  background: var(--am-paper) !important; border-top: 2px solid var(--am-accent) !important;
  box-shadow: 0 16px 32px rgba(16, 16, 16, .08); padding: 8px 0 !important;
}
.et-l--header .am-nav .et_mobile_menu li a {
  display: block; padding: 14px 24px !important; color: var(--am-ink) !important;
  font: 500 13px var(--am-mono) !important; letter-spacing: .08em; border-bottom: 1px solid var(--am-rule) !important;
}
.et-l--header .am-nav .et_mobile_menu li:last-child a { color: var(--am-accent) !important; border-bottom: 0 !important; }

/* Stats strip stacks on phones. */
@media (max-width: 767px) {
  .am-page .am-stats.et_pb_row { flex-direction: column; }
  .am-page .am-stats .et_pb_column { width: 100% !important; }
  .am-page .am-stats .am-stat { padding: 20px 24px; border-right-width: 1px; border-bottom-width: 0; }
  .am-page .am-stats .et_pb_column:last-child .am-stat { border-bottom-width: 1px; }
}

/* Closing chain: vertical on phones instead of a zigzag. */
@media (max-width: 767px) {
  .am-cta .am-chain { flex-direction: column; gap: 6px; }
  .am-chain .seg { width: 1px; height: 14px; }
}

/* Results: cases keep their gap when stacked, equal heights side by side, kicker above the number on phones. */
@media (max-width: 980px) {
  .am-page .am-cases.et_pb_row { margin-bottom: 30px !important; }
  .am-page .am-cases .et_pb_column { margin-bottom: 30px !important; }
  .am-page .am-cases .et_pb_column:last-child { margin-bottom: 0 !important; }
}
.am-page .am-case-mod, .am-page .am-case-mod .et_pb_text_inner { height: 100%; }
.am-case { box-sizing: border-box; }
@media (max-width: 767px) {
  .am-case .top { flex-wrap: wrap; }
  .am-case .k { order: -1; width: 100%; text-align: left; margin-bottom: 10px; }
}

/* Results reviews: the side-by-side scroller only from 1024px; below that the reviews stack. */
@media (min-width: 768px) and (max-width: 1023px) {
  .am-page .am-tscroll.et_pb_row { display: block !important; height: auto !important; }
  .am-page .am-tscroll .am-tscroll-col.et_pb_column {
    height: auto !important; overflow: visible; -webkit-mask-image: none; mask-image: none; width: 100% !important; margin: 0 !important;
  }
  .am-page .am-tscroll .am-tscroll-cta.et_pb_column { width: 100% !important; margin: 24px 0 0 !important; }
}

/* Schedule a call: more room for the calendar on phones, bigger contact links. */
@media (max-width: 767px) { .am-page .am-cal-mod { padding: 4px !important; } }
.am-direct a { display: inline-block; padding: 8px 0; }
@media (max-width: 767px) { .am-steplist .r > .n { flex-basis: 32px; } }

/* Legal pages: eyebrow aligned with the title; the index stays available on phones. */
.page-id-121 .am-nodes.et_pb_module, .page-id-122 .am-nodes.et_pb_module { align-items: flex-start; }
.page-id-121 .am-nodes .et_pb_text_inner, .page-id-122 .am-nodes .et_pb_text_inner { margin-left: 0; }
@media (max-width: 980px) {
  .am-legal-toc { display: block !important; position: static; margin-bottom: 40px; }
  .am-legal-toc ol { max-height: 320px; }
}

/* Hero eyebrows: shorter rules on small phones so the label has room. */
@media (max-width: 480px) { .am-nodes .rule { width: 32px; } }

/* About: globe centred and capped when stacked; principles rows spaced like the cards. */
@media (max-width: 980px) {
  .am-remote-globe__canvas, .am-page .am-remote-globe img { max-width: 420px !important; height: auto !important; margin: 0 auto; }
}
.am-page .et_pb_row:has(.am-outcome-mod) + .et_pb_row:has(.am-outcome-mod) { margin-top: 28px; }

/* Main title never smaller than section titles. */
.am-h1 h1 { font-size: clamp(36px, 3.6vw, 46px); }

/* Footer links: comfortable tap height on phones. */
@media (max-width: 767px) { .am-fcol a { display: inline-block; padding: 6px 0; } }

/* Small mono labels: one step bigger on phones. */
@media (max-width: 767px) {
  .am-page .am-trusted p { font-size: 11px !important; }
  .am-case .tag, .am-case .k, .am-chain .chip { font-size: 11px; }
}

/* Industry pages: case panel inside the gutters; audit block spaced when stacked. */
@media (max-width: 1440px) { .am-page .am-casep.et_pb_row { width: calc(100% - 80px) !important; } }
@media (max-width: 980px) {
  .am-page .am-audit .et_pb_column:first-child { margin-bottom: 48px !important; }
}
@media (max-width: 480px) { .am-term { font-size: 11px; } }
/* Divi sets the module background on its mobile menu with high specificity; win it here. */
html body .et-l--header .am-nav.et_pb_menu .et_mobile_nav_menu .mobile_nav ul.et_mobile_menu,
html body .et-l--header .am-nav.et_pb_menu .et_mobile_nav_menu .mobile_nav ul.et_mobile_menu li { background-color: #fbfbfa !important; }

/* ==========================================================================
   Booking first on phones and tablets (2026-10-26)
   "Book a call" links go to /schedule-a-call/#book. Once the columns stack,
   the calendar moves up to sit straight under the heading; the founder, the
   call steps and the direct contact details follow it.
   ========================================================================== */

@media (max-width: 980px) {
  .am-page .am-contact.et_pb_row { display: flex; flex-direction: column; }
  .am-page .am-contact > .et_pb_column:first-child { display: contents; }
  .am-page .am-contact > .et_pb_column:first-child > * { order: 3; }
  .am-page .am-contact > .et_pb_column:first-child > .am-nodes { order: 1; }
  .am-page .am-contact > .et_pb_column:first-child > .am-h1 { order: 1; }
  .am-page .am-contact > .et_pb_column:last-child { order: 2; width: 100%; margin: 4px 0 48px !important; }
  .am-cal-anchor { scroll-margin-top: 112px; } /* sticky header plus the panel padding */
}
@media (max-width: 767px) {
  .am-cal-anchor { scroll-margin-top: 88px; }
}

/* Phones: no frame around the Cal.com widget, so the calendar gets the full width. */
@media (max-width: 767px) {
  .am-page .am-cal-mod {
    padding: 0 !important;
    border: 0;
    background: transparent;
    margin-left: -32px !important;
    margin-right: -32px !important;
    width: calc(100% + 64px);
  }
  .am-cal { min-height: 520px; }
}

/* --------------------------------------------------------------------------
   The Build S.01 - S.04: the number becomes a proof panel at the foot of the
   text column, level with the bottom of the grid next to it (2026-10-26).
   -------------------------------------------------------------------------- */
.am-page .am-svc.et_pb_row { padding-bottom: 64px; }
.am-page .am-svc-stat { margin: 32px 0 0 !important; }
.am-svc-stat .et_pb_text_inner {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 18px 22px;
  background: var(--am-sand);
  border: 1px solid var(--am-rule);
  border-left: 2px solid var(--am-accent);
}
.am-svc-stat .v { flex: none; font-size: 40px; }
.am-svc-stat .k { margin-top: 0; line-height: 1.5; color: var(--am-muted); max-width: 220px; }

@media (min-width: 981px) {
  .am-page .am-svc.et_pb_row { display: flex; align-items: stretch; }
  .am-page .am-svc > .et_pb_column { display: flex; flex-direction: column; }
  .am-page .am-svc > .et_pb_column:first-child > .am-svc-stat { margin-top: auto !important; padding-top: 32px; }
  .am-page .am-svc-grid-mod, .am-page .am-svc-grid-mod .et_pb_text_inner { flex: 1; display: flex; flex-direction: column; }
  .am-svc-grid { flex: 1; grid-auto-rows: 1fr; }
}
@media (max-width: 980px) {
  .am-page .am-svc-stat { margin: 28px 0 28px !important; }
}

/* ==========================================================================
   Blog (/blogs/): the post grid and a single post's body
   ========================================================================== */

.am-page .am-blog .et_pb_post {
  background: #fff;
  border: 1px solid var(--am-rule);
  padding: 22px 24px;
}
.am-page .am-blog .et_pb_post .entry-title { font-size: 20px; line-height: 1.3; font-weight: 700; letter-spacing: -0.01em; }
.am-page .am-blog .et_pb_post .entry-title a { color: var(--am-ink); }
.am-page .am-blog .et_pb_post .entry-title a:hover { color: var(--am-accent); }
.am-page .am-blog .et_pb_post .post-meta { font: 500 11px var(--am-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--am-faint); }
.am-page .am-blog .et_pb_post .post-content p { font-size: 15px; line-height: 1.6; color: var(--am-muted); }
.am-page .am-blog .et_pb_post .more-link { font: 500 11px var(--am-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--am-accent); }
.am-page .am-blog .pagination a { font: 500 11px var(--am-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--am-accent); }

.am-page .am-post-title .et_pb_title_meta_container { font: 500 11px var(--am-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--am-faint); }
.am-page .am-post-title .et_pb_title_featured_container { margin-top: 32px; }

.am-page .am-post-content { font-size: 17px; line-height: 1.7; color: var(--am-ink); }
.am-page .am-post-content p,
.am-page .am-post-content ul,
.am-page .am-post-content ol,
.am-page .am-post-content blockquote { margin: 0 0 1.2em; padding-bottom: 0; }
.am-page .am-post-content h2 { font-size: clamp(26px, 2.6vw, 32px); font-weight: 700; letter-spacing: -0.02em; margin: 1.6em 0 0.5em; }
.am-page .am-post-content h3 { font-size: 22px; font-weight: 700; margin: 1.4em 0 0.4em; }
.am-page .am-post-content ul,
.am-page .am-post-content ol { padding-left: 1.3em; }
.am-page .am-post-content li { margin-bottom: 0.4em; }
.am-page .am-post-content a { color: var(--am-accent); text-decoration: underline; text-underline-offset: 3px; }
.am-page .am-post-content blockquote { border-left: 2px solid var(--am-accent); padding: 4px 0 4px 20px; color: var(--am-muted); }
.am-page .am-post-content img { display: block; height: auto; margin: 1.6em 0; }
.am-page .am-post-content code { font-family: var(--am-mono); font-size: 0.9em; background: var(--am-sand); padding: 2px 5px; }

.am-page .am-blog .am-blog-empty { border: 1px solid var(--am-rule); background: #fff; padding: 28px 32px; }
.am-page .am-blog .am-blog-empty .am-eyebrow { margin-bottom: 10px; }
.am-page .am-blog .am-blog-empty p:last-child { font-size: 17px; line-height: 1.6; color: var(--am-muted); padding-bottom: 0; }
