/* ============================================================
   OMC — Shared styles for services / about / contact pages
   Self-contained: introduces local design tokens scoped to
   page content. The global header/footer is styled by
   css/styles.css; this file adds page-section styles only.
============================================================ */

:root {
  --omc-navy:#293C5B;
  --omc-red:#0A0A0A;
  --omc-white:#FFFFFF;

  --omc-navy-900:#000000;
  --omc-navy-800:#0E1626;
  --omc-navy-700:#293C5B;
  --omc-navy-500:#5A6378;
  --omc-navy-300:#9AA1B0;
  --omc-navy-100:#E5E5E6;

  --omc-red-600:#000000;
  --omc-red-100:#F2F2F3;

  --omc-gray-50:#FAFAFA;
  --omc-gray-100:#F2F2F3;

  /* Client feedback: unify typography — headings use the sans body font, not serif */
  --font-heading:"Inter","Helvetica Neue",Arial,sans-serif;
  --font-body:"Inter","Helvetica Neue",Arial,sans-serif;
  --font-mono:"Inter","Helvetica Neue",Arial,sans-serif;

  --radius-sm:1px;
  --radius-md:2px;
  --radius-pill:999px;

  --shadow-sm:0 1px 2px rgba(0,0,0,.04);
  --shadow-md:0 4px 12px rgba(0,0,0,.06);
  --shadow-lg:0 12px 32px rgba(0,0,0,.08);
  --shadow-xl:0 24px 64px rgba(0,0,0,.10);

  --ease-standard:cubic-bezier(.2,0,0,1);
  --ease-emphasize:cubic-bezier(.3,0,.1,1);
  --duration-fast:150ms;
  --duration-base:220ms;

  --pg-container:1280px;
}

/* ============================================================
   Header — always solid on these pages (no dark hero behind)
============================================================ */
.site-header,
.site-header.is-solid {
  background:#0e1520;
  box-shadow:0 1px 0 rgba(255,255,255,0.06);
}

/* ============================================================
   Keyframes (scoped names to avoid collisions)
============================================================ */
@keyframes pg-livePulse {
  0%,100% { box-shadow:0 0 0 3px rgba(0,0,0,.3); }
  50%     { box-shadow:0 0 0 6px rgba(0,0,0,0); }
}

/* ============================================================
   Container — scoped to page section wrappers
============================================================ */
main .container {
  width:100%;
  max-width:var(--pg-container);
  margin:0 auto;
  padding:0 32px;
}

/* ============================================================
   Buttons (scoped to main + footer regions of these pages)
============================================================ */
main .btn,
main .btn-block {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 28px;
  font-family:var(--font-body); font-size:14px; font-weight:600; letter-spacing:.01em;
  border-radius:var(--radius-pill);
  border:1px solid transparent;
  cursor:pointer;
  transition:all var(--duration-fast) var(--ease-standard);
  white-space:nowrap;
}
main .btn-primary { background:#0A0A0A; color:#fff; border-color:#0A0A0A; }
main .btn-primary:hover { background:#fff; color:#0A0A0A; border-color:#0A0A0A; }
main .btn-red { background:#0A0A0A; color:#fff; border-color:#0A0A0A; }
main .btn-red:hover { background:#fff; color:#0A0A0A; border-color:#0A0A0A; }
main .btn-outline { background:transparent; color:#0A0A0A; border-color:#0A0A0A; }
main .btn-outline:hover { background:#0A0A0A; color:#fff; }
main .btn-sm { padding:10px 20px; font-size:13px; }
main .btn-block { display:flex; width:100%; }

/* ============================================================
   Section heads (kicker / title / sub)
============================================================ */
main .section-kicker {
  display:inline-block;
  font-family:var(--font-body);
  font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--omc-navy-700);
  margin-bottom:20px;
  position:relative; padding-left:22px;
}
main .section-kicker::before {
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:14px; height:1px; background:var(--omc-navy-700);
}
main .section-kicker-light { color:rgba(255,255,255,.85); }
main .section-kicker-light::before { background:rgba(255,255,255,.6); }

main .section-title {
  font-family:var(--font-heading);
  /* Client feedback: smaller, consistent section-heading size site-wide */
  font-size:clamp(28px,3vw,40px);
  line-height:1.05; font-weight:500;
  letter-spacing:-0.015em;
  color:#0A0A0A;
  max-width:900px;
}
main .section-title-light { color:#fff; }
main .section-sub {
  font-size:18px; line-height:1.6; color:var(--omc-navy-500);
  max-width:640px; margin-top:20px;
}
main .accent-m { color:#0A0A0A; font-style:italic; font-weight:500; }
main .accent-m-light { color:rgba(255,255,255,.85); font-style:italic; }
main .section-head { margin-bottom:56px; }
main .section-head-row { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; }

main .reveal { opacity:1; }

/* ============================================================
   Top spacer — first <main> section sits below fixed header
============================================================ */
main > section:first-of-type { padding-top:96px; }

/* ============================================================
   CATEGORIES STRIP  (services page)
============================================================ */
.cats-strip {
  background:#fff;
  border-bottom:1px solid var(--omc-navy-100);
  padding:16px 0;
}
.cats-row { display:flex; align-items:center; gap:32px; flex-wrap:wrap; }
.cats-label {
  font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:var(--omc-red);
  padding-right:24px; border-right:1px solid var(--omc-navy-100);
}
.cats-list { display:flex; gap:8px; flex-wrap:wrap; }
.cats-list a {
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 16px;
  font-size:13px; font-weight:600; color:var(--omc-navy-700);
  background:transparent;
  border:1px solid var(--omc-navy-100);
  border-radius:999px;
  transition:all var(--duration-fast) var(--ease-standard);
}
.cats-list a .cats-k {
  font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.14em;
  color:var(--omc-red);
}
.cats-list a em {
  font-style:normal;
  font-family:var(--font-mono); font-size:10px; font-weight:700;
  color:var(--omc-navy-300);
  padding:2px 6px; background:var(--omc-navy-100);
  border-radius:999px; margin-left:4px;
}
.cats-list a:hover { border-color:var(--omc-navy-700); color:var(--omc-navy-700); }
.cats-list .is-active a { background:var(--omc-navy-700); color:#fff; border-color:var(--omc-navy-700); }
.cats-list .is-active a .cats-k { color:#C7D0E0; }
.cats-list .is-active a em { background:rgba(255,255,255,.1); color:#fff; }

/* ============================================================
   SERVICES + MARKETS DIRECTORY — image-forward capability tiles
============================================================ */
.cap-directory { padding:48px 0 120px; background:#fff; }

.mkt-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:6px;
  margin-top:28px;
}

/* Base (mobile / touch): stacked image + dark caption panel */
.mkt-card {
  position:relative; display:block; overflow:hidden;
  background:var(--omc-navy-900); color:#fff;
  scroll-margin-top:140px;
}
.mkt-img {
  width:100%; height:280px; object-fit:cover; display:block;
  transition:transform .8s var(--ease-standard);
}
.mkt-body { position:relative; padding:22px 24px 26px; }
.mkt-top { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.mkt-n {
  font-family:var(--font-mono); font-size:12px; font-weight:700; letter-spacing:.16em;
  color:#fff; opacity:.55;
}
.mkt-rule { flex:1; height:1px; background:rgba(255,255,255,.16); }
.mkt-plus {
  flex-shrink:0; color:#fff; opacity:.55;
  transition:transform var(--duration-base) var(--ease-emphasize), opacity var(--duration-base) var(--ease-standard);
}
.mkt-title {
  font-family:var(--font-heading); font-size:22px; font-weight:600;
  letter-spacing:-0.01em; line-height:1.16; color:#fff;
}
.mkt-count {
  display:block; margin-top:8px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em;
  color:rgba(255,255,255,.5);
}
.mkt-desc {
  margin-top:12px;
  font-size:13.5px; line-height:1.6; color:rgba(255,255,255,.76);
}
.mkt-list { margin-top:14px; }
.mkt-desc + .mkt-list {
  margin-top:14px; padding-top:14px;
  border-top:1px solid rgba(255,255,255,.14);
}
.mkt-list li { display:inline; font-size:13px; line-height:1.75; color:rgba(255,255,255,.72); }
.mkt-list li:not(:last-child)::after {
  content:"·"; margin:0 7px; color:rgba(255,255,255,.32);
}

/* Hover-capable, larger screens: full-bleed photo tile with reveal-on-hover */
@media (hover:hover) and (min-width:721px) {
  .mkt-card { aspect-ratio:4/5; }
  .mkt-img { position:absolute; inset:0; height:100%; }
  .mkt-card::after {
    content:""; position:absolute; inset:0; z-index:1;
    background:linear-gradient(to top,
      rgba(8,10,16,.93) 0%, rgba(8,10,16,.62) 32%,
      rgba(8,10,16,.10) 60%, rgba(8,10,16,.20) 100%);
    transition:opacity .5s var(--ease-standard);
  }
  .mkt-body {
    position:absolute; inset:0; z-index:2;
    display:flex; flex-direction:column; justify-content:flex-end;
    padding:28px 28px 30px;
  }
  .mkt-count {
    max-height:20px; opacity:1; overflow:hidden;
    transition:max-height .4s var(--ease-standard), opacity .3s var(--ease-standard), margin .4s var(--ease-standard);
  }
  .mkt-desc,
  .mkt-list {
    max-height:0; opacity:0; overflow:hidden; margin-top:0;
    transition:max-height .55s var(--ease-emphasize), opacity .4s var(--ease-standard), margin-top .55s var(--ease-emphasize);
  }
  .mkt-desc + .mkt-list { padding-top:0; border-top:0; }
  .mkt-card:hover .mkt-img,
  .mkt-card:focus-within .mkt-img { transform:scale(1.07); }
  .mkt-card:hover .mkt-plus,
  .mkt-card:focus-within .mkt-plus { transform:rotate(90deg); opacity:.9; }
  .mkt-card:hover .mkt-count,
  .mkt-card:focus-within .mkt-count { max-height:0; opacity:0; margin-top:0; }
  .mkt-card:hover .mkt-desc,
  .mkt-card:focus-within .mkt-desc { max-height:180px; opacity:1; margin-top:14px; }
  .mkt-card:hover .mkt-desc + .mkt-list,
  .mkt-card:focus-within .mkt-desc + .mkt-list {
    padding-top:14px; border-top:1px solid rgba(255,255,255,.14);
  }
  .mkt-card:hover .mkt-list,
  .mkt-card:focus-within .mkt-list { max-height:220px; opacity:1; margin-top:16px; }
}

/* ============================================================
   DIFFERENTIATORS  (markets page) — dark band
============================================================ */
.cap-diff {
  padding:120px 0;
  background:var(--omc-navy-900);
  color:#fff;
  position:relative; overflow:hidden;
}
.cap-diff::before {
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,#000 20%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,#000 20%,transparent 80%);
  pointer-events:none;
}
.cap-diff .container { position:relative; }
.cap-diff-head { max-width:720px; margin-bottom:48px; }
.cap-diff-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border-top:1px solid rgba(255,255,255,.08);
  border-left:1px solid rgba(255,255,255,.08);
}
.cap-diff-item {
  display:flex; align-items:flex-start; gap:14px;
  padding:24px 26px;
  border-right:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.02);
  transition:background var(--duration-base) var(--ease-standard);
}
.cap-diff-item:hover { background:rgba(255,255,255,.05); }
.cap-diff-k {
  font-family:var(--font-mono); font-size:11px; font-weight:700; letter-spacing:.1em;
  color:var(--omc-red);
  flex-shrink:0; padding-top:3px;
}
.cap-diff-item span:last-child {
  font-size:15px; line-height:1.5; font-weight:500; color:rgba(255,255,255,.9);
}

/* ============================================================
   CAREERS  (careers page)
============================================================ */
.careers { padding:48px 0 120px; background:#fff; }
.careers-lead {
  font-size:18px; line-height:1.7; color:var(--omc-navy-500);
  max-width:680px; margin-top:22px;
}
.careers-lead a { color:var(--omc-navy-700); font-weight:600; border-bottom:1px solid var(--omc-navy-100); }
.careers-lead a:hover { color:var(--omc-red); border-color:var(--omc-red); }
.careers-actions { margin-top:28px; }

.jobs-head {
  display:flex; align-items:baseline; gap:14px;
  margin:72px 0 0;
  padding-bottom:8px;
}
.jobs-head h3 {
  font-family:var(--font-heading); font-size:clamp(24px,2.6vw,34px); font-weight:600;
  color:var(--omc-navy-700); letter-spacing:-0.01em;
}
.jobs-head .jobs-count {
  font-family:var(--font-mono); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--omc-red); background:var(--omc-red-100);
  padding:5px 10px; border-radius:var(--radius-sm);
}

.jobs-list { border-top:1px solid var(--omc-navy-100); margin-top:24px; }
.job {
  display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:48px; align-items:center;
  padding:38px 28px;
  border-bottom:1px solid var(--omc-navy-100);
  position:relative; overflow:hidden;
  transition:background var(--duration-base) var(--ease-standard);
}
.job::before {
  content:""; position:absolute; left:0; top:0;
  width:3px; height:0; background:var(--omc-red);
  transition:height var(--duration-base) var(--ease-emphasize);
}
.job:hover::before { height:100%; }
.job:hover { background:var(--omc-gray-50); }
.job-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.job-tag {
  font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--omc-red); background:var(--omc-red-100);
  padding:5px 10px; border-radius:var(--radius-sm);
}
.job-tag-loc { color:var(--omc-navy-500); background:var(--omc-navy-100); }
.job-title {
  font-family:var(--font-heading); font-size:27px; font-weight:600;
  color:var(--omc-navy-700); letter-spacing:-0.01em; line-height:1.12;
}
.job-desc { font-size:14.5px; line-height:1.7; color:var(--omc-navy-500); margin-top:14px; max-width:760px; }
.job-reqs {
  display:flex; flex-direction:column; gap:9px;
  margin-top:20px; padding-top:20px;
  border-top:1px dashed var(--omc-navy-100);
}
.job-reqs li {
  position:relative; padding-left:18px;
  font-size:13.5px; line-height:1.55; color:var(--omc-navy-500);
}
.job-reqs li::before {
  content:""; position:absolute; left:0; top:8px;
  width:7px; height:7px; background:var(--omc-red); opacity:.65;
}
.job-aside { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.job-aside .btn { white-space:nowrap; }
.job-note { font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; color:var(--omc-navy-300); }

/* CAREERS CTA band */
.careers-cta { padding:120px 0; background:var(--omc-navy-900); color:#fff; position:relative; overflow:hidden; }
.careers-cta::before {
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,#000 20%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,#000 20%,transparent 80%);
  pointer-events:none;
}
.careers-cta .container { position:relative; max-width:680px; text-align:center; }
.careers-cta h2 {
  font-family:var(--font-heading); font-size:clamp(30px,3.6vw,48px); font-weight:500;
  letter-spacing:-0.02em; line-height:1.1; color:#fff; margin-bottom:18px;
}
.careers-cta p { font-size:17px; line-height:1.65; color:rgba(255,255,255,.72); margin:0 auto 32px; }
main .btn-light { background:#fff; color:#0A0A0A; border-color:#fff; }
main .btn-light:hover { background:transparent; color:#fff; border-color:#fff; }

/* ============================================================
   SECTORS  (services page)
============================================================ */
.sectors { padding:120px 0; background:var(--omc-gray-50); border-top:1px solid var(--omc-navy-100); }
.sectors-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border-top:1px solid var(--omc-navy-100);
  border-left:1px solid var(--omc-navy-100);
  background:#fff;
  margin-top:24px;
}
.sector {
  padding:28px 24px 24px;
  border-right:1px solid var(--omc-navy-100);
  border-bottom:1px solid var(--omc-navy-100);
  display:flex; flex-direction:column; gap:8px;
  position:relative; overflow:hidden;
  transition:background var(--duration-base) var(--ease-standard);
}
.sector::before {
  content:""; position:absolute; left:0; bottom:0;
  width:100%; height:2px; background:var(--omc-red);
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--duration-base) var(--ease-emphasize);
}
.sector:hover { background:var(--omc-gray-50); }
.sector:hover::before { transform:scaleX(1); }
.sec-k {
  font-family:var(--font-mono); font-size:11px; font-weight:700; letter-spacing:.14em;
  color:var(--omc-red);
}
.sector h5 { font-family:var(--font-heading); font-size:20px; font-weight:600; color:var(--omc-navy-700); letter-spacing:-0.01em; }
.sector p { font-size:13px; line-height:1.6; color:var(--omc-navy-500); }

/* ============================================================
   LIFECYCLE  (services page)  &  CT-NEXT  (contact page)
============================================================ */
.lifecycle { padding:120px 0; background:#fff; position:relative; overflow:hidden; }
.lifecycle::before {
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(var(--omc-navy-100) 1px,transparent 1px), linear-gradient(90deg,var(--omc-navy-100) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,#000 20%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,#000 20%,transparent 80%);
  opacity:.5; pointer-events:none;
}
.lifecycle .container { position:relative; }
.lifecycle-grid {
  display:grid; grid-template-columns:repeat(5,1fr); gap:16px;
  margin-top:48px;
}
.lc {
  position:relative; padding:26px 22px 22px;
  background:#fff; border:1px solid var(--omc-navy-100); border-radius:var(--radius-md);
  display:flex; flex-direction:column; gap:4px;
  transition:transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);
}
.lc:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--omc-navy-300); }
.lc-head { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.lc-n {
  font-family:var(--font-mono); font-size:13px; font-weight:700; letter-spacing:.1em;
  color:#fff; background:var(--omc-red);
  width:44px; height:44px;
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
  box-shadow:0 6px 16px rgba(0,0,0,.22);
}
.lc:hover .lc-n { background:var(--omc-navy); box-shadow:0 6px 16px rgba(30,42,74,.22); }
.lc-bar {
  flex:1; height:2px;
  background:repeating-linear-gradient(90deg,var(--omc-red) 0 6px,transparent 6px 12px);
  opacity:.35; position:relative;
}
.lc-bar::after {
  content:""; position:absolute; right:-2px; top:50%;
  width:7px; height:7px; border-right:2px solid var(--omc-red); border-top:2px solid var(--omc-red);
  transform:translateY(-50%) rotate(45deg);
}
.lc-bar-end { background:transparent; }
.lc-bar-end::after { display:none; }
.lc h4 { font-family:var(--font-heading); font-size:20px; font-weight:600; color:var(--omc-navy-700); margin-bottom:8px; letter-spacing:-0.01em; }
.lc p { font-size:13px; line-height:1.55; color:var(--omc-navy-500); margin-bottom:14px; flex-grow:1; }
.lc-time {
  font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--omc-red);
  padding:4px 9px; background:var(--omc-red-100);
  display:inline-block; align-self:flex-start;
  border-radius:var(--radius-sm);
}

/* ============================================================
   STORY  (about page)
============================================================ */
.story { padding:120px 0; background:#fff; position:relative; overflow:hidden; }
.story-grid {
  display:grid; grid-template-columns:1fr 1.35fr; gap:80px; align-items:start;
  position:relative;
}
.story-aside { position:sticky; top:96px; }
.story-aside .section-title { max-width:none; }
.story-body {
  display:flex; flex-direction:column; gap:24px;
  max-width:680px;
}
.story-body p { font-size:17px; line-height:1.75; color:var(--omc-navy-500); }
.story-lead { color:var(--omc-navy-700)!important; line-height:1.65!important; }
.story-lead strong { color:var(--omc-red); font-weight:700; }

/* ============================================================
   VALUES  (about page)
============================================================ */
.values {
  padding:120px 0;
  background:var(--omc-gray-50);
  border-top:1px solid var(--omc-navy-100);
  position:relative; overflow:hidden;
}
.values-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border-top:1px solid var(--omc-navy-100);
  border-left:1px solid var(--omc-navy-100);
  background:#fff;
}
.value {
  position:relative;
  padding:40px 32px 32px;
  border-right:1px solid var(--omc-navy-100);
  border-bottom:1px solid var(--omc-navy-100);
  display:flex; flex-direction:column; gap:14px;
  transition:background var(--duration-base) var(--ease-standard);
  overflow:hidden;
}
.value::after {
  content:""; position:absolute; left:0; top:0;
  width:3px; height:0; background:var(--omc-red);
  transition:height var(--duration-base) var(--ease-emphasize);
}
.value:hover::after { height:100%; }
.value:hover { background:var(--omc-gray-50); }
.v-num {
  position:absolute; top:20px; right:24px;
  font-family:var(--font-mono); font-size:12px; font-weight:700; letter-spacing:.14em;
  color:var(--omc-navy-300);
}
.v-icon {
  width:52px; height:52px;
  background:var(--omc-red-100);
  color:var(--omc-red);
  display:flex; align-items:center; justify-content:center;
  border-radius:var(--radius-sm);
  transition:background var(--duration-base) var(--ease-standard), color var(--duration-base) var(--ease-standard);
}
.value:hover .v-icon { background:var(--omc-red); color:#fff; }
.value h4 { font-family:var(--font-heading); font-size:22px; font-weight:600; color:var(--omc-navy-700); letter-spacing:-0.01em; }
.value p { font-size:14px; line-height:1.6; color:var(--omc-navy-500); flex-grow:1; }

/* ============================================================
   APPROACH  (about page)
============================================================ */
.approach { padding:48px 0 120px; background:#fff; }
.approach-grid {
  display:grid; grid-template-columns:1fr 1.1fr; gap:80px; align-items:center;
}
.approach-lead {
  font-size:18px; line-height:1.7; color:var(--omc-navy-500);
  margin:24px 0 32px; max-width:520px;
}
.approach-list { display:flex; flex-direction:column; gap:4px; }
.approach-list li {
  display:flex; gap:18px; align-items:flex-start;
  padding:18px 0;
  border-bottom:1px dashed var(--omc-navy-100);
}
.approach-list li:last-child { border-bottom:0; }
.al-dot {
  width:10px; height:10px; border-radius:50%;
  background:var(--omc-red);
  flex-shrink:0; margin-top:8px;
  box-shadow:0 0 0 4px rgba(0,0,0,.12);
}
.approach-list li div { font-size:14px; line-height:1.65; color:var(--omc-navy-500); }
.approach-list li strong {
  display:block; color:var(--omc-navy-700); font-weight:600; margin-bottom:4px; font-size:16px; letter-spacing:-0.005em;
}
.approach-visual {
  position:relative;
  aspect-ratio:4/4.2;
  border-radius:var(--radius-md);
  overflow:hidden;
  background:var(--omc-navy-900);
  box-shadow:0 32px 80px rgba(0,0,0,.18), 0 0 0 1px var(--omc-navy-100);
}
.av-img {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:saturate(1.05) contrast(1.06) brightness(.96);
}
.av-overlay {
  position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.7) 100%);
}
.av-tag {
  position:absolute; top:24px; left:24px;
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 14px;
  background:rgba(20,28,51,.7);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  font-family:var(--font-mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; font-weight:700;
  color:#fff;
}
.av-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--omc-red);
  box-shadow:0 0 0 3px rgba(0,0,0,.3);
  animation:pg-livePulse 1.5s infinite;
}

/* Corner ticks (shared with approach visual) */
.hv-tick {
  position:absolute; width:18px; height:18px;
  border:1.5px solid rgba(255,255,255,.4);
  z-index:3;
}
.hv-tick-tl { top:12px; left:12px;  border-right:0; border-bottom:0; }
.hv-tick-tr { top:12px; right:12px; border-left:0;  border-bottom:0; }
.hv-tick-bl { bottom:12px; left:12px;  border-right:0; border-top:0; }
.hv-tick-br { bottom:12px; right:12px; border-left:0;  border-top:0; }

/* ============================================================
   STATS BAND  (about page)
============================================================ */
.stats-band {
  padding:100px 0;
  background:var(--omc-navy-900);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.stats-band::before {
  content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,#000 20%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,#000 20%,transparent 80%);
  pointer-events:none;
}
.stats-band .container { position:relative; }
.stats-head { margin-bottom:56px; max-width:720px; }
.stats-sub {
  font-size:17px; line-height:1.65; color:rgba(255,255,255,.7);
  margin-top:18px; max-width:560px;
}
.stats-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border-top:1px solid rgba(255,255,255,.08);
  border-left:1px solid rgba(255,255,255,.08);
}
.stat {
  padding:36px 28px 32px;
  border-right:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
  display:flex; flex-direction:column; gap:6px;
  background:rgba(255,255,255,.02);
  transition:background var(--duration-base) var(--ease-standard);
}
.stat:hover { background:rgba(255,255,255,.05); }
.st-n {
  display:inline;
  font-family:var(--font-heading); font-size:clamp(42px,4.4vw,64px);
  font-weight:600; letter-spacing:-0.025em; line-height:1;
  color:#fff;
}
.stat em {
  display:inline-block;
  font-style:normal;
  font-size:1.5em;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--omc-red);
  margin-left:4px;
  transform:translateY(-35%);
}
.st-k {
  display:block; margin-top:10px;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:700;
  color:#C7D0E0;
}

/* The "By the numbers" page is dark — accent works on light bg from .accent-m;
   for stats-band keep red light treatment */
.stats-band .accent-m-light { color:rgba(255,255,255,.9); font-style:italic; font-weight:500; }

/* ============================================================
   TEAM  (about page)
============================================================ */
.team { padding:120px 0; background:#fff; }
.team:first-of-type { padding:96px 0 48px; }
.team-secondary { padding:48px 0 120px; border-top:1px solid var(--omc-navy-100); }
.team-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:24px;
}
.tm-card {
  background:#fff;
  border:1px solid var(--omc-navy-100);
  border-radius:var(--radius-md);
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);
}
.tm-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--omc-navy-300); }
.tm-photo {
  aspect-ratio:4/4.6;
  background-size:cover; background-position:center top;
  filter:saturate(1.05) contrast(1.06);
  position:relative;
  background-color:var(--omc-navy-100);
  transition:filter var(--duration-base) var(--ease-standard);
}
.tm-card:hover .tm-photo { filter:saturate(1.1) contrast(1.08) brightness(1.04); }
.tm-photo::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.45) 100%);
}
.tm-p1 { background-image:url('images/unsplash/photo-1560250097-0b93528c311a.jpg'); }
.tm-p2 { background-image:url('images/unsplash/photo-1507003211169-0a1dd7228f2d.jpg'); }
.tm-p3 { background-image:url('images/unsplash/photo-1573496359142-b8d87734a5a2.jpg'); }
.tm-p4 { background-image:url('images/unsplash/photo-1519085360753-af0119f7cbe7.jpg'); }
.tm-body { padding:22px 22px 22px; display:flex; flex-direction:column; gap:8px; flex-grow:1; }
.tm-meta { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.tm-tag {
  font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--omc-red); background:var(--omc-red-100);
  padding:4px 8px; border-radius:var(--radius-sm);
}
.tm-id {
  font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.1em;
  color:var(--omc-navy-300);
}
.tm-name { font-family:var(--font-heading); font-size:20px; font-weight:600; color:var(--omc-navy-700); letter-spacing:-0.01em; }
.tm-role {
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; font-weight:600;
  color:var(--omc-navy-500); margin-bottom:4px;
}
.tm-bio { font-size:13px; line-height:1.6; color:var(--omc-navy-500); flex-grow:1; }
.tm-links {
  display:flex; gap:8px; margin-top:14px; padding-top:14px;
  border-top:1px solid var(--omc-navy-100);
}
.tm-links a {
  width:30px; height:30px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--omc-navy-100);
  color:var(--omc-navy-500);
  border-radius:var(--radius-sm);
  transition:all var(--duration-fast) var(--ease-standard);
}
.tm-links a:hover { border-color:var(--omc-red); background:var(--omc-red); color:#fff; }

/* ============================================================
   CTA  (services / about)
============================================================ */
.cta {
  padding:120px 0;
  background:var(--omc-navy-900);
  color:#fff;
  position:relative; overflow:hidden;
}
.cta::before {
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:64px 64px;
  pointer-events:none;
}
.cta-inner {
  position:relative;
  display:grid; grid-template-columns:1fr 1.1fr; gap:80px; align-items:center;
}
.cta-copy h2 {
  font-family:var(--font-heading);
  font-size:clamp(32px,4vw,56px);
  color:#fff; font-weight:500; letter-spacing:-0.02em; line-height:1.1;
  margin-bottom:20px;
}
.cta-form {
  background:#fff; color:var(--omc-navy-700);
  padding:40px 36px;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-xl);
  border-top:4px solid var(--omc-red);
}
.field { margin-bottom:18px; }
.field label {
  display:block; margin-bottom:8px;
  font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:var(--omc-navy-500);
}
.field input, .field select, .field textarea {
  width:100%;
  padding:12px 14px;
  font-family:inherit; font-size:14px;
  color:var(--omc-navy-700);
  background:#fff;
  border:1px solid var(--omc-navy-100);
  border-radius:var(--radius-sm);
  transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);
  resize:vertical;
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline:none;
  border-color:var(--omc-navy);
  box-shadow:0 0 0 3px rgba(30,42,74,.08);
}
.form-error:empty { display:none; }
.form-error {
  margin-top:12px; text-align:center;
  font-size:13px; line-height:1.4; letter-spacing:.01em;
  color:#c0392b;
}
.form-note { font-size:11px; color:var(--omc-navy-500); margin-top:12px; text-align:center; letter-spacing:.05em; }
.cta-form .btn { margin-top:8px; }

/* ============================================================
   CONTACT MAIN  (form + offices)
============================================================ */
.ct-main { padding:48px 0 120px; background:#fff; }
.ct-main-grid {
  display:grid; grid-template-columns:1.4fr 1fr; gap:64px; align-items:start;
}
.ct-section-head { margin-bottom:32px; }
.ct-section-head .section-title { margin-bottom:12px; }
.ct-section-head .section-sub { margin-top:10px; }
.ct-section-head-small .ct-offices-title {
  font-family:var(--font-heading); font-size:24px; font-weight:600; color:var(--omc-navy-700); letter-spacing:-0.01em;
}

.ct-form {
  background:#fff;
  border:1px solid var(--omc-navy-100);
  border-top:3px solid var(--omc-red);
  border-radius:var(--radius-md);
  padding:32px 32px 28px;
  box-shadow:var(--shadow-sm);
}
.ct-fields {
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
  margin-bottom:18px;
}
.field-span { grid-column:1 / -1; }
.ct-form .field label {
  display:block; margin-bottom:8px;
  font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:var(--omc-navy-500);
}
.ct-form .req { color:var(--omc-red); margin-left:4px; }

/* Validation states */
.field-error {
  display:none; margin-top:6px;
  font-size:12px; line-height:1.4; letter-spacing:.01em;
  color:#c0392b;
}
.field.has-error .field-error { display:block; }
.field.has-error input,
.field.has-error select,
.field.has-error textarea { border-color:#c0392b; }
.field.has-error input:focus,
.field.has-error select:focus,
.field.has-error textarea:focus {
  border-color:#c0392b;
  box-shadow:0 0 0 3px rgba(192,57,43,.12);
}
.form-success {
  display:flex; align-items:flex-start; gap:14px;
  padding:20px 22px; margin-top:4px;
  background:#fff;
  border:1px solid var(--omc-navy-100);
  border-top:3px solid #1f9d55;
  border-radius:var(--radius-md);
  color:var(--omc-navy-700);
}
.form-success[hidden] { display:none; }
.form-success svg { color:#1f9d55; flex-shrink:0; margin-top:1px; }
.form-success strong { display:block; font-size:15px; font-weight:600; margin-bottom:2px; }
.form-success span { font-size:13.5px; line-height:1.5; color:var(--omc-navy-500); }
.ct-form .opt {
  font-weight:500; letter-spacing:.04em; text-transform:none;
  color:var(--omc-navy-300); font-size:11px; margin-left:4px;
}

.field-check { padding-top:4px; }
.ct-check {
  display:flex; align-items:flex-start; gap:12px; cursor:pointer;
  font-size:14px; line-height:1.55; color:var(--omc-navy-500);
  position:relative;
}
.ct-check input { position:absolute; opacity:0; pointer-events:none; }
.ct-check-box {
  width:20px; height:20px; flex-shrink:0;
  border:1.5px solid var(--omc-navy-300);
  border-radius:var(--radius-sm);
  background:#fff;
  margin-top:1px;
  position:relative;
  transition:all var(--duration-fast) var(--ease-standard);
}
.ct-check input:checked + .ct-check-box {
  background:var(--omc-red); border-color:var(--omc-red);
}
.ct-check input:checked + .ct-check-box::after {
  content:""; position:absolute; left:5px; top:1px;
  width:6px; height:11px;
  border-right:2px solid #fff; border-bottom:2px solid #fff;
  transform:rotate(45deg);
}
.ct-check-text { flex:1; }
.ct-form .btn-block { margin-top:4px; }

/* Offices panel */
.ct-offices {
  display:flex; flex-direction:column; gap:16px;
  position:sticky; top:96px;
}
.ct-office {
  background:var(--omc-gray-50);
  border:1px solid var(--omc-navy-100);
  border-radius:var(--radius-md);
  padding:24px 22px 20px;
  position:relative; overflow:hidden;
  transition:transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);
}
.ct-office::before {
  content:""; position:absolute; left:0; top:0; right:0;
  height:3px; background:var(--omc-red);
  transform:scaleX(.3); transform-origin:left;
  transition:transform var(--duration-base) var(--ease-emphasize);
}
.ct-office:hover::before { transform:scaleX(1); }
.ct-office:hover { background:#fff; box-shadow:var(--shadow-sm); border-color:var(--omc-navy-300); }
.cto-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.cto-city { font-family:var(--font-heading); font-size:22px; font-weight:600; color:var(--omc-navy-700); letter-spacing:-0.01em; margin-bottom:6px; }
.cto-addr {
  font-style:normal; font-size:13px; line-height:1.55; color:var(--omc-navy-500);
  margin-bottom:14px;
}
.cto-meta {
  display:flex; flex-direction:column; gap:8px;
  padding:12px 0; margin-bottom:12px;
  border-top:1px dashed var(--omc-navy-100);
  border-bottom:1px dashed var(--omc-navy-100);
}
.cto-meta li {
  display:inline-flex; align-items:center; gap:10px;
  font-size:13px; color:var(--omc-navy-700); font-weight:500;
}
.cto-meta svg { color:var(--omc-red); flex-shrink:0; }
.cto-meta a { color:var(--omc-navy-700); }
.cto-meta a:hover { color:var(--omc-red); }
.cto-dir { font-size:11px; font-family:var(--font-mono); font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--omc-navy-700); display:inline-flex; align-items:center; gap:6px; }
.cto-dir span { transition:transform var(--duration-fast) var(--ease-standard); }
.cto-dir:hover { color:var(--omc-red); }
.cto-dir:hover span { transform:translateX(3px); }

.of-flag {
  display:inline-block;
  font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:#fff; background:var(--omc-red);
  padding:5px 10px; border-radius:var(--radius-sm);
}
.of-flag-alt { background:var(--omc-navy); color:#fff; }
.of-state {
  font-family:var(--font-mono); font-size:28px; font-weight:800; letter-spacing:.04em;
  color:var(--omc-navy);
  line-height:1;
}

/* Shared contact card (phone / email / WhatsApp shown once) */
.ct-contact-shared {
  background:var(--omc-navy-900); color:#fff;
  border-radius:var(--radius-md);
  padding:22px 22px 18px;
  display:flex; flex-direction:column; gap:12px;
}
.ct-contact-shared .cts-kicker {
  font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:#C7D0E0;
}
.ct-shared-list { list-style:none; display:flex; flex-direction:column; gap:2px; }
.ct-shared-list li {
  display:inline-flex; align-items:center; gap:12px;
  padding:8px 10px; margin:0 -10px;
  font-size:14px; font-weight:500; color:rgba(255,255,255,.85);
  border-radius:var(--radius-sm);
  transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
}
.ct-shared-list li:hover { background:rgba(255,255,255,.06); color:#fff; }
.ct-shared-list a { color:inherit; }
.ct-shared-list svg { color:#fff; flex-shrink:0; opacity:.85; }
.ct-shared-note {
  font-family:var(--font-mono); font-size:11px; letter-spacing:.06em;
  color:rgba(255,255,255,.5);
  padding-top:10px; border-top:1px dashed rgba(255,255,255,.12);
}

/* ============================================================
   MAPS  (contact page)
============================================================ */
.ct-maps { padding:120px 0; background:var(--omc-gray-50); border-top:1px solid var(--omc-navy-100); }
.ct-maps-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px;
}
.ct-map {
  background:#fff;
  border:1px solid var(--omc-navy-100);
  border-radius:var(--radius-md);
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);
}
.ct-map:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--omc-navy-300); }
.ct-map-frame {
  position:relative;
  aspect-ratio:16/9;
  background:var(--omc-navy-100);
  overflow:hidden;
}
.ct-map-frame iframe {
  position:absolute; inset:0;
  width:100%; height:100%; border:0;
  filter:grayscale(.1) contrast(1.02);
}
.ct-map-open {
  position:absolute; top:10px; right:10px; z-index:2;
  width:32px; height:32px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--omc-red); color:#fff;
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-md);
  transition:transform var(--duration-fast) var(--ease-standard);
}
.ct-map-open:hover { transform:scale(1.08); color:#fff; }
.ct-map-body { padding:20px 22px 20px; display:flex; flex-direction:column; gap:8px; }
.ctm-top { display:flex; justify-content:space-between; align-items:center; }
.ctm-dist {
  font-family:var(--font-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--omc-navy-300);
}
.ct-map-body h4 { font-family:var(--font-heading); font-size:22px; font-weight:600; color:var(--omc-navy-700); letter-spacing:-0.01em; }
.ct-map-body > p { font-size:13px; line-height:1.55; color:var(--omc-navy-500); }

/* ============================================================
   CT-NEXT  (contact page)
============================================================ */
.ct-next { padding:120px 0; background:#fff; }
.ct-next-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  margin-top:48px;
}
.ct-step {
  padding:28px 24px 24px;
  background:#fff;
  border:1px solid var(--omc-navy-100); border-radius:var(--radius-md);
  display:flex; flex-direction:column; gap:4px;
  transition:transform var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);
}
.ct-step:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--omc-navy-300); }
.ct-step .lc-head { margin-bottom:18px; }
.ct-step h4 { font-family:var(--font-heading); font-size:22px; font-weight:600; color:var(--omc-navy-700); margin-bottom:8px; letter-spacing:-0.01em; }
.ct-step p { font-size:14px; line-height:1.6; color:var(--omc-navy-500); margin-bottom:14px; flex-grow:1; }
.ct-step .lc-time {
  font-family:var(--font-mono); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--omc-red);
  padding:4px 10px; background:var(--omc-red-100);
  display:inline-block; align-self:flex-start;
  border-radius:var(--radius-sm);
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width:1200px) {
  .mkt-grid { grid-template-columns:repeat(2,1fr); }
  .cap-diff-grid { grid-template-columns:repeat(2,1fr); }
  .sectors-grid { grid-template-columns:repeat(2,1fr); }
  .lifecycle-grid { grid-template-columns:repeat(3,1fr); }
  .values-grid { grid-template-columns:repeat(2,1fr); }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .team-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:1024px) {
  .cats-row { flex-direction:column; align-items:flex-start; gap:14px; }
  .cats-label { padding-right:0; border-right:0; padding-bottom:6px; }
  .sectors { padding:72px 0; }
  .lifecycle { padding:72px 0; }
  .lifecycle-grid { grid-template-columns:repeat(2,1fr); }

  .story-grid { grid-template-columns:1fr; gap:40px; }
  .story-aside { position:static; }
  .approach-grid { grid-template-columns:1fr; gap:48px; }
  .approach-visual { max-width:560px; }

  .cta-inner { grid-template-columns:1fr; gap:48px; }

  .ct-main-grid { grid-template-columns:1fr; gap:48px; }
  .ct-offices { position:static; }
  .ct-maps-grid { grid-template-columns:1fr; }
  .ct-next-grid { grid-template-columns:1fr; }
}
@media (max-width:720px) {
  main > section:first-of-type { padding-top:80px; }

  .cap-directory { padding:32px 0 72px; }
  .mkt-grid { grid-template-columns:1fr; }
  .careers { padding:32px 0 72px; }
  .jobs-head { margin-top:48px; }
  .job { grid-template-columns:1fr; gap:24px; padding:30px 20px; align-items:start; }
  .job-aside { align-items:stretch; }
  .job-aside .btn { width:100%; }
  .careers-cta { padding:72px 0; }
  .cap-diff { padding:72px 0; }
  .cap-diff-grid { grid-template-columns:1fr; }
  .sectors { padding:56px 0; }
  .sectors-grid { grid-template-columns:1fr; }
  .lifecycle { padding:56px 0; }
  .lifecycle-grid { grid-template-columns:1fr; }
  .lc { padding:22px 20px; }

  .story { padding:72px 0; }
  .story-body p { font-size:16px; }
  .story-lead { font-size:18px!important; }
  .values { padding:72px 0; }
  .values-grid { grid-template-columns:1fr; }
  .approach { padding:32px 0 72px; }
  .stats-band { padding:72px 0; }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .st-n { font-size:36px; }
  .team { padding:72px 0; }
  .team:first-of-type { padding:80px 0 32px; }
  .team-secondary { padding:32px 0 72px; }
  .team-grid { grid-template-columns:1fr; }

  .cta { padding:72px 0; }
  .cta-form { padding:28px 22px; }

  .ct-main { padding:32px 0 72px; }
  .ct-fields { grid-template-columns:1fr; }
  .ct-form { padding:24px 22px; }
  .ct-maps { padding:72px 0; }
  .ct-next { padding:72px 0; }
  .ct-banner { padding:64px 0; }
}
