/* ============================================================
   FULL-BLEED SURFACE SECTIONS — round 2
   ------------------------------------------------------------
   WordPress's `wp-block-post-content` wrapper constrains child
   blocks to `theme.json` `layout.contentSize` (720px in our case)
   and adds `has-global-padding` (96px gutters). The round-2
   design needs full-viewport-width Navy/Cloud surface sections,
   so we break our `<section class="lm-{navy|navy2|cloud}">`
   blocks out of the constrained wrapper using the "full bleed"
   CSS trick: width: 100vw + negative side margins from the
   midpoint of the parent (calc(50% - 50vw)).

   Works in any TT4-derived page template. No need to ship a
   custom `page-no-title.html` template just for this.
   ============================================================ */

.entry-content > section.lm-navy,
.entry-content > section.lm-navy2,
.entry-content > section.lm-cloud,
.entry-content > section.lm-hero {
  width: 100vw;
  max-width: 100vw;
  margin-left:  calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  /* WP's `:root :where(.is-layout-constrained) > *` adds 24px margin-block-start
     to every section, creating a visible Cloud gap between consecutive sections.
     Designer round-2 spec has sections flow into each other directly — section
     padding handles spacing internally. (v1.1.3) */
  margin-block: 0;
}

/* ============================================================
   CLOSING-CTA → FOOTER GAP FIX  (v1.1.3)
   ------------------------------------------------------------
   WordPress's `:where(.wp-site-blocks) > *` rule adds a 24px
   margin-block-start to every direct child of `.wp-site-blocks`,
   including the footer template-part wrapper. Designer round-2
   spec has the closing CTA section flow straight into the footer
   with no gap — so we zero out the footer wrapper's top margin.

   Specificity: this selector (0,2,1) easily beats WP's
   `:where(.wp-site-blocks) > *` (0,0,1, the :where() zeros out
   the .wp-site-blocks specificity) without needing !important.
   ============================================================ */

.wp-site-blocks > footer.wp-block-template-part {
  margin-block-start: 0;
}

/* ============================================================
   LUMSI PAGE-LAYOUT CSS  ·  round 2
   ------------------------------------------------------------
   Page-archetype-specific layouts that live on top of the
   shared lm-* component system in style.css. Each section here
   is a single namespace used by one page archetype:

     hp-*   homepage
     sv-*   services hub
     vh-*   verticals hub
     vt-*   vertical page (FSC / Life Sci / Public Sector)
     svc-*  service page — Phase 1 (full template w/ timeline + FAQ)
     p2-*   service page — Phase 2 additions (callout + "in the meantime")
     ab-*   about
     cap-*  capabilities
     ct-*   contact
     ins-*  insights
     pr-*   AgentExchange products

   Loaded globally — file is small enough (~7kB) that
   conditional loading isn't worth the indirection.

   Source: Designer round-2 page HTMLs, scoped <style id="..."> blocks,
   verbatim. Do not edit per-page — edit here and re-publish theme.
   ============================================================ */

/* ============================================================
   HOMEPAGE  (hp-*)
   ============================================================ */

.hp-hero-inner .lm-display { max-width: 16ch; }
.hp-hero-inner .lm-lede { color: var(--steel); max-width: 50ch; }

.hp-head { display: flex; flex-direction: column; gap: 18px; }

.hp-position { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px,6vw,90px); align-items: start; }
.hp-position .body p { font-size: clamp(17px,1.7vw,19.5px); color: var(--graphite); line-height: 1.6; }
.hp-position .body p + p { margin-top: 22px; }
.hp-position .body b { color: var(--navy); font-weight: 600; }

.hp-commit-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--arsenic); border: 1px solid var(--arsenic); border-radius: var(--lm-radius); overflow: hidden; }
.hp-commit { background: var(--navy-2); padding: clamp(30px,3.2vw,46px) clamp(26px,2.6vw,40px); }
.hp-commit .n { font-family: 'JetBrains Mono', monospace; font-size: 14px; color: var(--blue); }
.hp-commit h3 { font-size: clamp(20px,2vw,25px); font-weight: 600; line-height: 1.18; letter-spacing: -0.015em; margin-top: 18px; color: var(--cloud); }
.hp-commit p { font-size: 16.5px; color: var(--steel); line-height: 1.55; margin-top: 14px; }

.hp-funnel-note { font-size: clamp(18px,1.9vw,22px); color: var(--graphite); line-height: 1.45; max-width: 48ch; margin-top: 16px; }
.hp-tier { margin-top: 52px; }
.hp-tier-head { display: flex; align-items: baseline; gap: 16px; padding-bottom: 22px; border-bottom: 2px solid var(--navy); flex-wrap: wrap; }
.hp-tier-head .t { font-size: clamp(20px,2vw,26px); font-weight: 600; letter-spacing: -0.015em; }
.hp-tier-head .d { font-size: 15.5px; color: var(--graphite); }
.hp-svc-grid { display: grid; gap: 1px; background: var(--smoke); border: 1px solid var(--smoke); border-top: none; border-radius: 0 0 var(--lm-radius) var(--lm-radius); overflow: hidden; }
.hp-svc-grid.c2 { grid-template-columns: repeat(2,1fr); }
.hp-svc-grid.c4 { grid-template-columns: repeat(4,1fr); }
.hp-svc { background: var(--white); padding: clamp(26px,2.4vw,34px) clamp(22px,2vw,30px); display: flex; flex-direction: column; transition: background .25s; }
.hp-svc:hover { background: #f4f6fb; }
.hp-svc .price { font-family: 'JetBrains Mono', monospace; font-size: 13.5px; color: var(--blue); letter-spacing: -0.01em; }
.hp-svc h4 { font-size: 19px; font-weight: 600; line-height: 1.18; letter-spacing: -0.015em; margin-top: 14px; }
.hp-svc .tag { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); margin-top: 10px; }
.hp-svc p { font-size: 15.5px; color: var(--graphite); line-height: 1.5; margin-top: 12px; }
.hp-svc .go { margin-top: auto; padding-top: 22px; font-size: 14.5px; font-weight: 500; color: var(--navy); display: inline-flex; gap: 8px; align-items: center; }
.hp-svc .go .arr { color: var(--blue); transition: transform .25s var(--lm-ease); }
.hp-svc:hover .go .arr { transform: translateX(4px); }
.hp-run { margin-top: 1px; background: var(--navy); border: 1px solid var(--smoke); border-top: none; border-radius: 0 0 var(--lm-radius) var(--lm-radius); padding: clamp(30px,3vw,44px) clamp(26px,2.6vw,40px); display: grid; grid-template-columns: 1fr auto; gap: 28px 50px; align-items: center; }
.hp-run h4 { font-size: clamp(21px,2.2vw,27px); font-weight: 600; letter-spacing: -0.018em; color: var(--cloud); }
.hp-run p { font-size: 16.5px; color: var(--steel); line-height: 1.55; margin-top: 12px; max-width: 60ch; }
.hp-run .price { font-family: 'JetBrains Mono', monospace; font-size: 14px; color: var(--blue-soft); margin-top: 14px; }
/* .hp-run is a navy "island" inside a cloud section, so the ghost button inside
   inherits the parent .lm-cloud's on-light defaults (navy text on light border),
   which renders as navy-on-navy = invisible. Force on-dark colours. (v1.1.4) */
.hp-run .lm-btn--ghost { color: var(--cloud); border-color: var(--arsenic); }
.hp-run .lm-btn--ghost:hover { color: var(--cloud); border-color: var(--steel); }

.hp-vert-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--arsenic); border: 1px solid var(--arsenic); border-radius: var(--lm-radius); overflow: hidden; }
.hp-vert { background: var(--navy); padding: clamp(30px,3vw,42px) clamp(26px,2.4vw,34px); display: flex; flex-direction: column; min-height: 300px; transition: background .3s; }
.hp-vert:hover { background: var(--navy-2); }
.hp-vert h3 { font-size: clamp(22px,2.3vw,28px); font-weight: 600; line-height: 1.1; letter-spacing: -0.02em; color: var(--cloud); }
.hp-vert .avail { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--space); margin-top: 14px; display: inline-flex; gap: 7px; align-items: baseline; }
.hp-vert p { font-size: 16px; color: var(--steel); line-height: 1.5; margin-top: 18px; }
.hp-vert .go { margin-top: auto; padding-top: 26px; font-size: 15px; font-weight: 500; color: var(--cloud); display: inline-flex; gap: 9px; align-items: center; }
.hp-vert .go .arr { color: var(--blue); transition: transform .25s var(--lm-ease); }
.hp-vert:hover .go .arr { transform: translateX(4px); }

.hp-broader { margin-top: 60px; padding-top: 40px; border-top: 1px solid var(--arsenic); display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(30px,5vw,70px); align-items: start; }
.hp-broader h3 { font-size: clamp(20px,2vw,25px); font-weight: 600; letter-spacing: -0.015em; color: var(--cloud); max-width: 16ch; }
.hp-broader p { font-size: 16.5px; color: var(--steel); line-height: 1.6; }
.hp-broader p + p { margin-top: 16px; }
.hp-broader a { color: var(--blue-soft); font-weight: 500; }

.hp-paths { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.hp-path { background: var(--white); border: 1px solid var(--smoke); border-radius: var(--lm-radius); padding: clamp(26px,2.4vw,34px); display: flex; flex-direction: column; transition: border-color .25s, transform .25s var(--lm-ease), box-shadow .25s; }
.hp-path:hover { border-color: var(--blue); transform: translateY(-3px); box-shadow: 0 22px 50px -28px rgba(6,20,43,.35); }
.hp-path .cond { font-size: 17px; font-weight: 600; line-height: 1.32; letter-spacing: -0.012em; color: var(--navy); }
.hp-path .rec { font-size: 16px; color: var(--graphite); line-height: 1.55; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--smoke); }
.hp-path .rec b { color: var(--blue); font-weight: 600; }

.hp-closing { display: flex; flex-direction: column; align-items: center; text-align: center; }

@media (max-width: 960px) {
  .hp-position, .hp-commit-grid, .hp-vert-grid, .hp-paths, .hp-broader, .hp-run { grid-template-columns: 1fr; }
  .hp-svc-grid.c4 { grid-template-columns: repeat(2,1fr); }
  .hp-run { gap: 22px; }
}
@media (max-width: 560px) {
  .hp-svc-grid.c2, .hp-svc-grid.c4 { grid-template-columns: 1fr; }
}

/* ============================================================
   SERVICES HUB  (sv-*)
   ============================================================ */

.sv-hero .lm-display { max-width: 17ch; }
.sv-hero .lm-lede { color: var(--steel); }

.sv-intro { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(40px,6vw,84px); align-items: start; }
.sv-intro .lede-lg { font-size: clamp(19px,2.1vw,24px); font-weight: 400; line-height: 1.5; letter-spacing: -0.012em; color: var(--navy); }
.sv-intro .lede-lg b { font-weight: 600; }
.sv-howto { display: grid; gap: 18px; }
.sv-howto .row { font-size: 16px; color: var(--graphite); line-height: 1.55; }
.sv-howto .row b { color: var(--navy); font-weight: 600; }

.sv-tier { margin-top: clamp(46px,5vw,68px); }
.sv-tier:first-of-type { margin-top: 0; }
.sv-tier-head { display: flex; align-items: baseline; gap: 18px; padding-bottom: 20px; border-bottom: 1px solid var(--arsenic); flex-wrap: wrap; }
.sv-tier-head .num { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--blue); }
.sv-tier-head .t { font-size: clamp(21px,2.2vw,27px); font-weight: 600; letter-spacing: -0.018em; color: var(--cloud); }
.sv-tier-head .d { font-size: 15.5px; color: var(--space); margin-left: auto; max-width: 42ch; text-align: right; }
.sv-grid { display: grid; gap: 1px; background: var(--arsenic); border: 1px solid var(--arsenic); border-top: none; border-radius: 0 0 var(--lm-radius) var(--lm-radius); overflow: hidden; }
.sv-grid.c2 { grid-template-columns: repeat(2,1fr); }
.sv-grid.c4 { grid-template-columns: repeat(4,1fr); }
.sv-cell { background: var(--navy-2); padding: clamp(26px,2.4vw,34px) clamp(22px,2vw,30px); display: flex; flex-direction: column; transition: background .25s; }
.sv-cell:hover { background: #102348; }
.sv-cell .price { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--blue-soft); }
.sv-cell h3 { font-size: 19px; font-weight: 600; line-height: 1.18; letter-spacing: -0.015em; color: var(--cloud); margin-top: 13px; }
.sv-cell .tag { font-size: 11.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); margin-top: 10px; }
.sv-cell .lm-avail { margin-top: 12px; align-self: flex-start; }
.sv-cell p { font-size: 15.5px; color: var(--steel); line-height: 1.5; margin-top: 12px; }
.sv-cell .go { margin-top: auto; padding-top: 22px; font-size: 14.5px; font-weight: 500; color: var(--cloud); display: inline-flex; gap: 8px; align-items: center; }
.sv-cell .go .arr { color: var(--blue); transition: transform .25s var(--lm-ease); }
.sv-cell:hover .go .arr { transform: translateX(4px); }
.sv-cell.soon .go { color: var(--space); }

.sv-vert { display: grid; grid-template-columns: 1fr auto; gap: 28px 50px; align-items: center; }
.sv-vert .body { max-width: 60ch; }
.sv-vert h2 { color: var(--navy); }
.sv-vert p { font-size: 17px; color: var(--graphite); line-height: 1.55; margin-top: 16px; }

@media (max-width: 960px) {
  .sv-intro, .sv-vert { grid-template-columns: 1fr; }
  .sv-grid.c4 { grid-template-columns: repeat(2,1fr); }
  .sv-tier-head .d { margin-left: 0; text-align: left; width: 100%; }
}
@media (max-width: 560px) {
  .sv-grid.c2, .sv-grid.c4 { grid-template-columns: 1fr; }
}

/* ============================================================
   VERTICALS HUB  (vh-*)
   ============================================================ */

.vh-hero .lm-display { max-width: 15ch; }
.vh-hero .lm-lede { color: var(--steel); }
.vh-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--arsenic); border: 1px solid var(--arsenic); border-radius: var(--lm-radius); overflow: hidden; }
.vh-card { background: var(--navy-2); padding: clamp(30px,3vw,44px) clamp(26px,2.4vw,36px); display: flex; flex-direction: column; min-height: 360px; transition: background .3s; }
.vh-card:hover { background: #102348; }
.vh-card .region { font-size: 13px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--blue); }
.vh-card h3 { font-size: clamp(23px,2.4vw,30px); font-weight: 600; line-height: 1.1; letter-spacing: -0.02em; color: var(--cloud); margin-top: 14px; }
.vh-card .lm-avail { margin-top: 14px; align-self: flex-start; }
.vh-card p { font-size: 16px; color: var(--steel); line-height: 1.55; margin-top: 18px; }
.vh-card .figs { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--blue-soft); margin-top: 18px; }
.vh-card .go { margin-top: auto; padding-top: 26px; font-size: 15px; font-weight: 500; color: var(--cloud); display: inline-flex; gap: 9px; align-items: center; }
.vh-card .go .arr { color: var(--blue); transition: transform .25s var(--lm-ease); }
.vh-card:hover .go .arr { transform: translateX(4px); }
.vh-fit { max-width: 64ch; }
@media (max-width: 920px) {
  .vh-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   VERTICAL PAGE  (vt-*)
   ============================================================ */

.vt-hero .lm-display { max-width: 17ch; }
.vt-hero .lm-lede { color: var(--steel); }
.vt-hero .lm-pill { align-self: flex-start; }
.vt-top { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px,4vw,48px); align-items: stretch; }
.vt-top .lm-ph { aspect-ratio: 16/10; min-height: 220px; }
.vt-top .lm-notice { display: flex; flex-direction: column; justify-content: center; }
.vt-problem { max-width: 64ch; }
.vt-model { display: grid; grid-template-columns: auto 1fr; gap: clamp(28px,4vw,56px); align-items: start; }
.vt-model .figs { border-left: 2px solid var(--blue); padding-left: 22px; }
.vt-model .price { font-size: clamp(34px,4.4vw,52px); font-weight: 600; letter-spacing: -0.03em; color: var(--cloud); line-height: .95; }
.vt-model .price small { display: block; font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 400; color: var(--space); letter-spacing: 0; margin-top: 10px; }
.vt-model .dur { font-family: 'JetBrains Mono', monospace; font-size: 14px; color: var(--blue-soft); margin-top: 14px; }
.vt-model p { font-size: 17px; color: var(--steel); line-height: 1.6; max-width: 58ch; }
.vt-tagline { text-align: center; display: flex; flex-direction: column; align-items: center; }
@media (max-width: 920px) {
  .vt-top, .vt-model { grid-template-columns: 1fr; }
  .vt-model .figs { border-left: none; border-top: 2px solid var(--blue); padding-left: 0; padding-top: 18px; }
}

/* ============================================================
   SERVICE PAGE  (svc-* for Phase 1; p2-* for Phase 2 additions)
   ============================================================ */

.svc-hero .lm-display { max-width: 18ch; }
.svc-hero .lm-lede { color: var(--steel); }
.svc-hero .lm-pill { align-self: flex-start; }
.svc-steps { display: grid; gap: 1px; background: var(--arsenic); border: 1px solid var(--arsenic); border-radius: var(--lm-radius); overflow: hidden; }
.svc-step { background: var(--navy); padding: 24px clamp(22px,2.4vw,32px); display: grid; grid-template-columns: 220px 1fr; gap: 24px; }
.svc-step .wk { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--blue); font-weight: 500; letter-spacing: .01em; }
.svc-step .tx { font-size: 16.5px; color: var(--steel); line-height: 1.55; }
.svc-step .tx b { color: var(--cloud); font-weight: 600; }
.svc-note { font-size: 14.5px; color: var(--space); font-family: 'JetBrains Mono', monospace; margin-top: 22px; }
.svc-faq { border-top: 1px solid var(--smoke); max-width: 84ch; }
.svc-qa { padding: 24px 0; border-bottom: 1px solid var(--smoke); }
.svc-qa .q { font-size: 18px; font-weight: 600; letter-spacing: -0.012em; color: var(--navy); }
.svc-qa .a { font-size: 16.5px; color: var(--graphite); line-height: 1.6; margin-top: 12px; max-width: 76ch; }
.svc-tiers { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.svc-tier .price { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--blue-soft); }
.svc-deliver { max-width: 62ch; font-size: 17px; line-height: 1.6; color: var(--steel); }
.svc-close { text-align: center; display: flex; flex-direction: column; align-items: center; }

.p2-model { display: grid; grid-template-columns: auto 1fr; gap: clamp(28px,4vw,56px); align-items: start; }
.p2-model .figs { border-left: 2px solid var(--blue); padding-left: 22px; }
.p2-model .price { font-size: clamp(32px,4vw,46px); font-weight: 600; letter-spacing: -0.03em; line-height: .95; color: var(--navy); }
.p2-model .price small { display: block; font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 400; color: var(--space); letter-spacing: 0; margin-top: 10px; }
.p2-model p { font-size: 17px; color: var(--graphite); line-height: 1.6; max-width: 56ch; }
.p2-meantime { max-width: 64ch; font-size: 17px; line-height: 1.6; color: var(--steel); }

@media (max-width: 760px) {
  .svc-step { grid-template-columns: 1fr; gap: 8px; }
}
@media (max-width: 920px) {
  .svc-tiers { grid-template-columns: 1fr; }
  .p2-model { grid-template-columns: 1fr; }
  .p2-model .figs { border-left: none; border-top: 2px solid var(--blue); padding-left: 0; padding-top: 18px; }
}

/* ============================================================
   ABOUT  (ab-*)
   ============================================================ */

.ab-hero .lm-display { max-width: 16ch; }
.ab-hero .lm-lede { color: var(--steel); }

.ab-why { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(40px,6vw,84px); align-items: start; }
.ab-why .body p { font-size: clamp(17px,1.8vw,20px); color: var(--graphite); line-height: 1.6; }
.ab-why .body p + p { margin-top: 22px; }
.ab-why .body b { color: var(--navy); font-weight: 600; }

.ab-commit { display: grid; gap: 1px; background: var(--arsenic); border-block: 1px solid var(--arsenic); }
.ab-commit .row { background: var(--navy); padding: clamp(30px,3.4vw,46px) 0; display: grid; grid-template-columns: 90px 1fr; gap: clamp(20px,4vw,56px); align-items: start; }
.ab-commit .n { font-family: 'JetBrains Mono', monospace; font-size: clamp(28px,4vw,46px); font-weight: 400; color: var(--blue); line-height: 1; letter-spacing: -0.03em; }
.ab-commit h3 { font-size: clamp(21px,2.2vw,28px); font-weight: 600; line-height: 1.14; letter-spacing: -0.018em; color: var(--cloud); }
.ab-commit p { font-size: 16.5px; color: var(--steel); line-height: 1.6; margin-top: 14px; max-width: 62ch; }
.ab-commit p b { color: var(--cloud); font-weight: 500; }

.ab-dont { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(40px,6vw,84px); align-items: start; }

.ab-firm { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--arsenic); border: 1px solid var(--arsenic); border-radius: var(--lm-radius); overflow: hidden; }
.ab-firm .cell { background: var(--navy-2); padding: clamp(30px,3.2vw,46px) clamp(26px,2.6vw,40px); }
.ab-firm h3 { font-size: clamp(20px,2vw,25px); font-weight: 600; letter-spacing: -0.015em; color: var(--cloud); }
.ab-firm p { font-size: 16.5px; color: var(--steel); line-height: 1.6; margin-top: 16px; }
.ab-firm a { color: var(--blue-soft); font-weight: 500; }

@media (max-width: 920px) {
  .ab-why, .ab-dont, .ab-firm { grid-template-columns: 1fr; }
  .ab-commit .row { grid-template-columns: 56px 1fr; gap: 20px; }
}

/* ============================================================
   CAPABILITIES  (cap-*)
   ============================================================ */

.cap-hero .lm-display { max-width: 17ch; }
.cap-hero .lm-lede { color: var(--steel); }
.cap-intro { max-width: 70ch; font-size: clamp(17px,1.7vw,19px); color: var(--graphite); line-height: 1.6; }
.cap-intro p + p { margin-top: 18px; }
.cap-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--arsenic); border: 1px solid var(--arsenic); border-radius: var(--lm-radius); overflow: hidden; }
.cap-area { background: var(--navy-2); padding: clamp(28px,3vw,40px) clamp(26px,2.6vw,38px); }
.cap-area h3 { font-size: clamp(19px,2vw,23px); font-weight: 600; letter-spacing: -0.015em; color: var(--cloud); }
.cap-area .sub { font-size: 13px; color: var(--blue); font-weight: 500; letter-spacing: .04em; margin-top: 6px; }
.cap-area p { font-size: 15.5px; color: var(--steel); line-height: 1.55; margin-top: 14px; }
.cap-engage { display: grid; gap: 1px; background: var(--smoke); border: 1px solid var(--smoke); border-radius: var(--lm-radius); overflow: hidden; max-width: 80ch; }
.cap-engage .row { background: var(--white); padding: 22px 26px; font-size: 16.5px; color: var(--graphite); line-height: 1.55; }
.cap-engage .row b { color: var(--navy); font-weight: 600; }
.cap-engage .row a { color: var(--blue); font-weight: 500; }
@media (max-width: 920px) {
  .cap-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   CONTACT  (ct-*)
   ============================================================ */

.ct-hero .lm-display { max-width: 15ch; }
.ct-hero .lm-lede { color: var(--steel); }

.ct-methods { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(40px,5vw,72px); align-items: start; }
.ct-book h2 { margin-bottom: 18px; }
.ct-book .lm-notice { margin-top: 22px; }

.ct-emails { display: grid; gap: 1px; background: var(--smoke); border: 1px solid var(--smoke); border-radius: var(--lm-radius); overflow: hidden; }
.ct-email { background: var(--white); padding: 22px 26px; display: grid; grid-template-columns: 1fr auto; gap: 6px 24px; align-items: center; transition: background .2s; }
.ct-email:hover { background: #f4f6fb; }
.ct-email .addr { font-family: 'JetBrains Mono', monospace; font-size: 16px; font-weight: 500; color: var(--navy); letter-spacing: -0.01em; }
.ct-email .desc { font-size: 14.5px; color: var(--graphite); text-align: right; }

.ct-expect { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(40px,6vw,84px); align-items: start; }

.ct-where { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ct-where .locs { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 40px; margin-top: 28px; }
.ct-where .loc { font-size: clamp(22px,2.6vw,32px); font-weight: 600; letter-spacing: -0.02em; color: var(--cloud); }
.ct-where .loc.soon { color: var(--space); }
.ct-where .loc.soon small { font-family: 'JetBrains Mono', monospace; font-size: .42em; font-weight: 400; display: block; letter-spacing: 0; margin-top: 4px; }

/* ---- Booking form (round 3) ---- */
.ct-formhead { max-width: 60ch; margin-bottom: clamp(36px,4vw,52px); }
.ct-grid { display: grid; grid-template-columns: 1.45fr .55fr; gap: clamp(36px,5vw,68px); align-items: start; }
.ct-form { display: grid; gap: 20px; }
.ct-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ct-field { display: flex; flex-direction: column; gap: 8px; }
.ct-field label { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; letter-spacing: .01em; color: var(--graphite); }
.ct-field label .req { color: var(--blue); }
.ct-field input, .ct-field select, .ct-field textarea { font-family: inherit; font-size: 16px; color: var(--navy); background: var(--white); border: 1px solid var(--smoke); border-radius: var(--lm-radius); padding: 13px 15px; width: 100%; transition: border-color .2s, box-shadow .2s; }
.ct-field textarea { min-height: 132px; resize: vertical; line-height: 1.5; }
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0,140,255,.14); }
select.ct-input { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1l5 5 5-5' stroke='%239DA2B3' stroke-width='1.5'/></svg>"); background-repeat: no-repeat; background-position: right 15px center; padding-right: 40px; cursor: pointer; }
.ct-field .msg { font-size: 13px; color: #C2453B; display: none; }
.ct-field.err input, .ct-field.err select, .ct-field.err textarea { border-color: #C2453B; }
.ct-field.err .msg { display: block; }
.ct-consent { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; margin-top: 4px; }
.ct-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--blue); flex: none; }
.ct-consent label { font-family: inherit; font-size: 14px; line-height: 1.5; color: var(--graphite); letter-spacing: 0; }
.ct-consent a { color: var(--blue); }
.ct-consent.err label { color: #C2453B; }
.ct-form button { justify-self: start; margin-top: 6px; border: none; cursor: pointer; }
/* honeypot (visually hidden but accessible to bots scraping the DOM) */
.ct-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
/* sidebar */
.ct-side { display: grid; gap: 24px; }
.ct-promise { border-left: 2px solid var(--blue); padding: 4px 0 4px 18px; }
.ct-promise .lbl { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--blue); display: block; margin-bottom: 8px; }
.ct-promise p { font-size: 15.5px; color: var(--graphite); line-height: 1.55; }
.ct-promise b { color: var(--navy); font-weight: 600; }
.ct-or { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; letter-spacing: .04em; color: var(--space); text-transform: uppercase; }
.ct-side .ct-email { grid-template-columns: 1fr; gap: 4px; padding: 16px 18px; }
.ct-side .ct-email .desc { text-align: left; font-size: 13.5px; }
.ct-side-note { font-size: 13.5px; color: var(--graphite); line-height: 1.5; }
.ct-side-note a { color: var(--blue); }
/* form-level error (server failure) */
.ct-form-error { background: rgba(194,69,59,.08); border-left: 2px solid #C2453B; padding: 14px 18px; border-radius: 0 var(--lm-radius) var(--lm-radius) 0; font-size: 14.5px; color: #8A2F26; }
.ct-form-error[hidden] { display: none; }
/* success */
.ct-success { max-width: 56ch; background: var(--white); border: 1px solid var(--smoke); border-radius: var(--lm-radius); padding: clamp(32px,4vw,48px); }
.ct-success .lm-mark { width: 40px; height: 40px; color: var(--blue); margin-bottom: 22px; }
.ct-success h3 { font-size: clamp(22px,2.4vw,28px); font-weight: 600; letter-spacing: -0.02em; color: var(--navy); }
.ct-success p { font-size: 17px; color: var(--graphite); line-height: 1.6; margin-top: 14px; }
.ct-success a { color: var(--blue); font-weight: 500; }
.ct-success:focus { outline: none; }

@media (max-width: 920px) {
  .ct-methods, .ct-expect, .ct-grid { grid-template-columns: 1fr; }
  .ct-email { grid-template-columns: 1fr; }
  .ct-email .desc { text-align: left; }
}
@media (max-width: 560px) {
  .ct-row2 { grid-template-columns: 1fr; }
}

/* ============================================================
   INSIGHTS  (ins-*)
   ============================================================ */

.ins-hero .lm-display { max-width: 16ch; }
.ins-hero .lm-lede { color: var(--steel); }
.ins-state { max-width: 66ch; font-size: 17px; line-height: 1.6; color: var(--steel); }

/* ============================================================
   AGENTEXCHANGE PRODUCTS  (pr-*)
   ============================================================ */

.pr-hero .lm-display { max-width: 16ch; }
.pr-hero .lm-lede { color: var(--steel); }
.pr-hero .lm-pill { align-self: flex-start; }
.pr-cands { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 8px; }
.pr-cand .src { font-size: 12.5px; color: var(--blue); font-weight: 500; letter-spacing: .04em; margin-top: 12px; }
.pr-first { font-family: 'JetBrains Mono', monospace; font-size: 14px; color: var(--space); margin-top: 34px; }
@media (max-width: 920px) {
  .pr-cands { grid-template-columns: 1fr; }
}
