.theme-lattice {
  --g-ink: #062d49;
  --g-blue: #147fa8;
  --g-cyan: #2eb8cb;
  --g-mint: #83d8c3;
  --g-violet: #7788da;
  --g-rose: #e997b5;
  --g-paper: #f8fdff;
  background:
    radial-gradient(circle at 8% 17%, rgba(126, 220, 205, 0.2), transparent 25rem),
    radial-gradient(circle at 91% 42%, rgba(129, 145, 221, 0.12), transparent 30rem),
    #f7fcfe;
  color: var(--g-ink);
}
.theme-lattice .page-progress i {
  background: linear-gradient(90deg, #ec91b4, #7788da 30%, #2db5ca 62%, #7ed8c2);
}
.theme-lattice .site-header {
  padding-inline: max(4vw, calc((100vw - 1580px) / 2));
}
.theme-lattice .desktop-nav {
  gap: clamp(1.7rem, 3vw, 3.6rem);
  font-size: clamp(1.05rem, 1.18vw, 1.18rem);
}
.theme-lattice .nav-cta {
  border-radius: 4px 26px 4px 26px;
}
.theme-lattice .hero {
  min-height: max(880px, 100svh);
  align-items: center;
  padding: 10rem max(4.5vw, calc((100vw - 1580px) / 2)) 7rem;
  background:
    linear-gradient(118deg, rgba(255,255,255,.95), rgba(238,250,253,.84) 44%, rgba(226,244,250,.58)),
    #eef9fc;
}
.theme-lattice .hero::before {
  content: "";
  z-index: 0;
  width: clamp(28rem, 50vw, 58rem);
  height: clamp(28rem, 50vw, 58rem);
  left: auto;
  right: -18%;
  top: -34%;
  bottom: auto;
  border: 1px solid rgba(31, 153, 186, 0.13);
  border-radius: 50%;
  background: transparent;
  box-shadow: 0 0 0 6rem rgba(72, 191, 197, 0.035), 0 0 0 12rem rgba(118, 135, 216, 0.022);
  filter: none;
  animation: none;
}
.theme-lattice .hero::after {
  left: max(4.5vw, calc((100vw - 1580px) / 2));
  right: max(4.5vw, calc((100vw - 1580px) / 2));
  background: linear-gradient(90deg, var(--g-rose), var(--g-violet) 32%, var(--g-cyan) 68%, var(--g-mint));
  opacity: 0.72;
}
.theme-lattice .hero-art {
  z-index: -2;
  inset: 5.5% -4% 7% 42%;
  overflow: hidden;
  clip-path: polygon(15% 0, 100% 0, 100% 86%, 83% 100%, 0 88%);
  background: rgba(204, 239, 248, 0.5);
  box-shadow: -32px 42px 90px rgba(29, 114, 157, 0.14);
}
.theme-lattice .hero-art::before {
  inset: 0;
  background-position: right center;
  background-size: auto 100%;
  opacity: 0.98;
  animation: none;
}
.theme-lattice .hero-art::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(110deg, rgba(255,255,255,.82), transparent 35%),
    linear-gradient(180deg, transparent 64%, rgba(93, 128, 212, 0.12));
  pointer-events: none;
}
.theme-lattice .hero-shade {
  z-index: -1;
  background: linear-gradient(90deg, rgba(249,253,255,.99) 0%, rgba(247,253,255,.96) 35%, rgba(242,251,254,.64) 51%, transparent 70%);
}
.theme-lattice .hero-copy {
  z-index: 2;
  width: min(860px, 60vw);
  padding-top: 2.5rem;
}
.theme-lattice .hero-copy::before {
  inset: -3rem -5rem -3rem -7vw;
  border: 0;
  border-radius: 0;
  background: linear-gradient(90deg, rgba(255,255,255,.5), transparent 88%);
}
.theme-lattice .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  color: #087da5;
  font-size: 0.82rem;
}
.theme-lattice .eyebrow::before {
  content: "";
  width: 42px;
  height: 3px;
  background: linear-gradient(90deg, var(--g-rose), var(--g-cyan));
}
.theme-lattice .hero h1 {
  max-width: 900px;
  font-size: clamp(3.35rem, 5.65vw, 6.15rem);
  line-height: 1.08;
  letter-spacing: -0.065em;
}
.theme-lattice .accent-copy {
  background: linear-gradient(94deg, #087ca5, #24abc4 44%, #697bd0 82%, #ce7fa3);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}
.theme-lattice .hero-lead {
  max-width: 720px;
  color: #365f75;
  font-size: clamp(1rem, 1.12vw, 1.1rem);
  line-height: 2.05;
}
.theme-lattice .primary-button {
  min-width: 240px;
  border-radius: 5px 28px 5px 28px;
}
.theme-lattice .hero-index {
  right: 5.5vw;
  bottom: 3.3rem;
  color: #315f78;
}
.theme-lattice .difference {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  min-height: 960px;
  padding: clamp(7rem, 10vw, 11rem) max(4vw, calc((100vw - 1580px) / 2));
  background:
    radial-gradient(circle at 15% 20%, rgba(118, 214, 203, 0.2), transparent 24rem),
    linear-gradient(150deg, #eff9fc 0%, #fbfdff 48%, #eef8f5 100%);
}
.theme-lattice .difference::before {
  background:
    linear-gradient(118deg, transparent 0 30%, rgba(46, 175, 196, 0.08) 30.1% 30.25%, transparent 30.35%),
    linear-gradient(118deg, transparent 0 74%, rgba(121, 136, 216, 0.07) 74.1% 74.25%, transparent 74.35%);
}
.theme-lattice .difference-media {
  grid-column: 1 / 9;
  grid-row: 1;
  min-height: 680px;
  margin: 0;
  border: 1px solid rgba(23, 120, 158, 0.14);
  border-radius: 72px 6px 72px 6px;
  box-shadow: 0 38px 90px rgba(27, 103, 142, 0.15);
}
.theme-lattice .difference-media img {
  min-height: 680px;
  filter: saturate(0.76) contrast(0.98) brightness(1.07) hue-rotate(-5deg);
}
.theme-lattice .difference-media::after {
  background: linear-gradient(120deg, transparent 46%, rgba(8, 63, 91, 0.42) 100%), linear-gradient(0deg, rgba(5, 51, 78, 0.45), transparent 44%);
}
.theme-lattice .difference-copy {
  z-index: 3;
  grid-column: 7 / 13;
  grid-row: 1;
  max-width: none;
  margin: 7rem 0 -7rem;
  padding: clamp(3rem, 5vw, 5.7rem);
  border: 1px solid rgba(26, 126, 164, 0.14);
  border-radius: 6px 64px 6px 64px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 34px 90px rgba(30, 105, 144, 0.16);
  backdrop-filter: blur(22px) saturate(1.2);
}
.theme-lattice .difference-copy h2 {
  font-size: clamp(3rem, 4.8vw, 5.5rem);
  line-height: 1.08;
}
.theme-lattice .difference-copy > p {
  font-size: 1.05rem;
  line-height: 2.1;
}
.theme-lattice .text-link {
  font-size: 0.95rem;
}
@media (max-width: 1000px) {
  .theme-lattice .hero-art {
    inset: 25% -18% 4% 22%;
    clip-path: polygon(18% 0, 100% 0, 100% 88%, 0 100%);
  }
  .theme-lattice .hero-art::before {
    background-size: auto 80%;
  }
  .theme-lattice .hero-shade {
    background: linear-gradient(180deg, rgba(249,253,255,.98) 0%, rgba(245,252,255,.9) 52%, rgba(239,249,253,.3) 78%, rgba(236,248,252,.64) 100%);
  }
  .theme-lattice .hero-copy {
    width: 100%;
  }
  .theme-lattice .difference {
    grid-template-columns: 1fr;
    padding: 5rem 1.5rem 7rem;
  }
  .theme-lattice .difference-media {
    grid-column: 1;
    min-height: 560px;
    margin-right: 2.5rem;
  }
  .theme-lattice .difference-media img {
    min-height: 560px;
  }
  .theme-lattice .difference-copy {
    grid-column: 1;
    grid-row: 2;
    width: calc(100% - 2.5rem);
    margin: -7rem 0 0 auto;
  }
}
@media (max-width: 620px) {
  .theme-lattice .hero {
    min-height: 850px;
  }
  .theme-lattice .hero-art {
    inset: 35% -42% 4% 5%;
  }
  .theme-lattice .hero-art::before {
    background-size: auto 72%;
  }
  .theme-lattice .hero h1 {
    font-size: clamp(2.35rem, 11.5vw, 3.8rem);
  }
  .theme-lattice .difference {
    padding-inline: 1rem;
  }
  .theme-lattice .difference-media,
  .theme-lattice .difference-media img {
    min-height: 430px;
  }
  .theme-lattice .difference-media {
    margin-right: 1rem;
    border-radius: 38px 5px 38px 5px;
  }
  .theme-lattice .difference-copy {
    width: calc(100% - 1rem);
    margin-top: -3.5rem;
    padding: 2.2rem 1.5rem;
    border-radius: 5px 36px 5px 36px;
  }
}
.theme-lattice {
  --g-display: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif;
}
.theme-lattice .section-inner {
  width: min(1500px, 100%);
}
.theme-lattice .section-heading h2 {
  color: var(--g-ink);
  font-size: clamp(4.6rem, 7.7vw, 8rem);
  line-height: 0.82;
  letter-spacing: -0.072em;
}
.theme-lattice .section-heading > div::before {
  width: 3px;
  background: linear-gradient(180deg, var(--g-rose), var(--g-violet) 38%, var(--g-cyan) 72%, var(--g-mint));
}
.theme-lattice .section-heading > span {
  border-radius: 4px 18px 4px 18px;
  font-size: 0.94rem;
}
.theme-lattice .section-intro {
  font-size: 1.04rem;
  line-height: 2;
}
.theme-lattice .services {
  overflow: visible;
  padding-block: clamp(8rem, 11vw, 12rem);
  background:
    linear-gradient(112deg, transparent 0 73%, rgba(122, 137, 216, 0.07) 73.1% 73.24%, transparent 73.34%),
    radial-gradient(circle at 91% 14%, rgba(112, 215, 203, 0.24), transparent 26rem),
    linear-gradient(180deg, #eaf7fa 0%, #fbfdff 52%, #eff8f6 100%);
}
.theme-lattice .services::before {
  content: "05";
  right: -0.08em;
  bottom: -0.18em;
  color: rgba(14, 105, 145, 0.028);
  font-family: var(--g-display);
  font-size: clamp(20rem, 43vw, 52rem);
}
.theme-lattice .services .section-inner {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: auto auto 1fr;
  column-gap: clamp(2rem, 4.6vw, 6rem);
  align-items: start;
}
.theme-lattice .services .section-heading {
  position: sticky;
  top: 8rem;
  grid-column: 1 / 5;
  grid-row: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.4rem;
  margin: 0;
}
.theme-lattice .services .section-heading h2 {
  font-size: clamp(4rem, 6.3vw, 7rem);
}
.theme-lattice .services .section-intro {
  position: sticky;
  top: 22rem;
  grid-column: 1 / 5;
  grid-row: 2;
  max-width: 31rem;
  margin: 2.6rem 0 0;
  color: #4d7187;
}
.theme-lattice .service-grid {
  grid-column: 5 / 13;
  grid-row: 1 / 4;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: none;
  grid-auto-flow: row;
  grid-auto-rows: minmax(142px, auto);
  gap: 1.15rem 0;
  border: 0;
}
.theme-lattice .service-card,
.theme-lattice .service-card:nth-child(n) {
  grid-area: auto;
  min-height: 0;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  align-items: start;
  gap: 0.75rem clamp(0.8rem, 1.45vw, 1.6rem);
  padding: clamp(1.65rem, 2.1vw, 2.3rem);
  border: 0;
  border-top: 1px solid rgba(16, 114, 154, 0.2);
  border-bottom: 1px solid rgba(16, 114, 154, 0.11);
  border-radius: 0;
  clip-path: none;
  background: linear-gradient(90deg, rgba(255,255,255,.88), rgba(255,255,255,.46) 72%, transparent);
  box-shadow: none;
  backdrop-filter: none;
  color: var(--g-ink);
}
.theme-lattice .service-card:nth-child(n) { grid-column: 2 / 13; }
.theme-lattice .service-card::after {
  content: none;
}
.theme-lattice .service-card::before {
  content: "";
  inset: auto 0 -1px;
  width: 100%;
  height: 3px;
  border-radius: 0;
  background: linear-gradient(90deg, var(--g-rose), var(--g-violet) 35%, var(--g-cyan) 68%, var(--g-mint));
  opacity: 0.62;
  transform: scaleX(0.3);
  transform-origin: left;
  transition: transform 520ms cubic-bezier(.2,.75,.2,1), opacity 300ms ease;
}
.theme-lattice .service-card .card-top {
  display: block;
  grid-column: 1;
  grid-row: 1 / 3;
}
.theme-lattice .service-card .card-line {
  display: none;
}
.theme-lattice .service-card .card-number {
  color: #198cae;
  font-family: var(--g-display);
  font-size: clamp(3.5rem, 4.4vw, 5rem);
  font-weight: 400;
  line-height: 0.8;
}
.theme-lattice .service-card h3 {
  grid-column: 2;
  grid-row: 1;
  min-height: 0;
  margin: 0;
  color: #0a3551;
  font-size: clamp(1.35rem, 1.65vw, 1.72rem);
  line-height: 1.55;
}
.theme-lattice .service-card > p {
  grid-column: 2;
  grid-row: 2;
  max-width: none;
  margin: 0;
  color: #4b6f85;
  font-size: 1rem;
  line-height: 1.95;
}
.theme-lattice .service-card:hover,
.theme-lattice .service-card:nth-child(even):hover {
  transform: translateX(8px);
  background: linear-gradient(90deg, #fff, rgba(245,252,254,.86) 74%, transparent);
  box-shadow: none;
}
.theme-lattice .service-card:hover::before {
  opacity: 1;
  transform: scaleX(1);
}
.theme-lattice .cases {
  padding-block: clamp(8rem, 11vw, 12rem);
  background:
    radial-gradient(circle at 8% 84%, rgba(123, 215, 202, 0.17), transparent 25rem),
    radial-gradient(circle at 93% 10%, rgba(135, 151, 222, 0.13), transparent 27rem),
    linear-gradient(180deg, #fbfdff, #edf7fb);
}
.theme-lattice .case-watermark {
  top: 12%;
  right: -0.04em;
  color: rgba(17, 97, 136, 0.025);
  font-size: clamp(10rem, 20vw, 22rem);
}
.theme-lattice .case-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: 220px 176px 190px;
  grid-auto-flow: row;
  gap: 1px;
  margin-top: clamp(3rem, 5vw, 5rem);
  border: 1px solid rgba(26, 118, 156, 0.13);
  background: rgba(26, 118, 156, 0.13);
}
.theme-lattice .case-grid::before,
.theme-lattice .case-grid::after {
  content: none;
}
.theme-lattice .case-card,
.theme-lattice .case-card:nth-child(n) {
  min-height: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  gap: clamp(1rem, 2vw, 2.2rem);
  padding: clamp(1.5rem, 2.8vw, 3rem);
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: none;
  backdrop-filter: none;
}
.theme-lattice .case-card:nth-child(1) { grid-area: 1 / 1 / 2 / 8; }
.theme-lattice .case-card:nth-child(2) { grid-area: 1 / 8 / 2 / 13; }
.theme-lattice .case-card:nth-child(3) { grid-area: 2 / 1 / 3 / 4; }
.theme-lattice .case-card:nth-child(4) { grid-area: 2 / 4 / 3 / 8; }
.theme-lattice .case-card:nth-child(5) { grid-area: 2 / 8 / 3 / 13; }
.theme-lattice .case-card:nth-child(6) { grid-area: 3 / 1 / 4 / 6; }
.theme-lattice .case-card:nth-child(7) { grid-area: 3 / 6 / 4 / 9; }
.theme-lattice .case-card:nth-child(8) { grid-area: 3 / 9 / 4 / 13; }
.theme-lattice .case-card::before {
  content: "";
  z-index: 0;
  inset: 0;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background: linear-gradient(135deg, rgba(104, 215, 201, .18), rgba(64, 166, 204, .04) 62%, transparent);
  box-shadow: none;
  transform: none;
  opacity: 1;
  transition: opacity 350ms ease, filter 350ms ease;
}
.theme-lattice .case-card:nth-child(2n)::before {
  background: linear-gradient(135deg, rgba(129, 144, 219, .15), rgba(232, 151, 181, .05) 65%, transparent);
}
.theme-lattice .case-card:nth-child(3n)::before {
  background: linear-gradient(135deg, rgba(54, 177, 199, .12), rgba(255,255,255,0) 68%);
}
.theme-lattice .case-card::after {
  content: none;
}
.theme-lattice .case-card > span,
.theme-lattice .case-card h3 {
  position: relative;
  z-index: 2;
}
.theme-lattice .case-card > span {
  color: #168caf;
  font-family: var(--g-display);
  font-size: clamp(2.2rem, 3.4vw, 4rem);
  font-weight: 400;
  line-height: 0.85;
}
.theme-lattice .case-card h3 {
  max-width: 24rem;
  margin: 0;
  color: #123c55;
  font-size: clamp(1rem, 1.18vw, 1.2rem);
  line-height: 1.75;
  transition: color 300ms ease, transform 350ms ease;
}
.theme-lattice .case-card:hover,
.theme-lattice .case-card:nth-child(even):hover {
  transform: none;
  background: #fff;
  box-shadow: none;
}
.theme-lattice .case-card:hover::before {
  filter: saturate(1.2);
  opacity: 1;
  transform: none;
}
.theme-lattice .case-card:hover h3 {
  color: #087da5;
  transform: translateX(5px);
  translate: none;
}
.theme-lattice .flow {
  min-height: 1040px;
  padding-block: clamp(8rem, 11vw, 12rem);
  background:
    radial-gradient(circle at 20% 80%, rgba(107, 211, 196, 0.2), transparent 26rem),
    linear-gradient(150deg, #eaf7f8 0%, #fbfdff 55%, #eef3fc 100%);
  color: var(--g-ink);
}
.theme-lattice .flow .center-heading {
  margin-bottom: 0;
  text-align: left;
}
.theme-lattice .flow .center-heading h2 {
  max-width: 17em;
  color: var(--g-ink);
  font-family: var(--g-display);
  font-size: clamp(3rem, 5.2vw, 6rem);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.05em;
  font-feature-settings: "palt" 1;
}
.theme-lattice .flow-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(8, 78px);
  gap: 0 clamp(0.7rem, 1.3vw, 1.3rem);
  max-width: 1500px;
  margin: clamp(4rem, 7vw, 7rem) auto 0;
}
.theme-lattice .flow-grid::before {
  content: "";
  z-index: 0;
  left: 3%;
  right: auto;
  top: auto;
  bottom: 17%;
  width: 94%;
  height: 2px;
  background: linear-gradient(90deg, var(--g-mint), var(--g-cyan) 42%, var(--g-violet) 76%, var(--g-rose));
  opacity: 0.65;
  transform: rotate(-19deg);
  transform-origin: left center;
  animation: none;
}
.theme-lattice .flow-grid::after {
  content: none;
}
.theme-lattice .flow-card,
.theme-lattice .flow-card:last-child,
.theme-lattice .flow-card:nth-child(n) {
  min-height: 0;
  align-self: stretch;
  overflow: hidden;
  padding: clamp(1.5rem, 2.1vw, 2.25rem);
  border: 1px solid rgba(19, 119, 157, 0.14);
  border-radius: 5px 42px 5px 5px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 24px 60px rgba(26, 101, 137, 0.09);
  color: var(--g-ink);
}
.theme-lattice .flow-card:nth-child(1) { grid-area: 5 / 1 / 9 / 4; }
.theme-lattice .flow-card:nth-child(2) { grid-area: 4 / 4 / 8 / 7; border-radius: 38px 5px 5px 5px; }
.theme-lattice .flow-card:nth-child(3) { grid-area: 3 / 7 / 7 / 10; }
.theme-lattice .flow-card:nth-child(4) { grid-area: 2 / 10 / 6 / 13; border-radius: 38px 5px 5px 5px; }
.theme-lattice .flow-card::before,
.theme-lattice .flow-card:nth-child(even)::before {
  content: "";
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, var(--g-mint), var(--g-cyan), var(--g-violet));
  transform: none;
}
.theme-lattice .flow-card .flow-number,
.theme-lattice .flow-card:nth-child(even) .flow-number {
  position: relative;
  inset: auto;
  display: block;
  width: auto;
  height: auto;
  margin: 0 0 1.8rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #158caf;
  font-family: var(--g-display);
  font-size: clamp(2.7rem, 3.8vw, 4.2rem);
  font-weight: 400;
  line-height: 0.8;
  transform: none;
}
.theme-lattice .flow-card h3 {
  margin-bottom: 0.75rem;
  color: #103a54;
  font-size: clamp(1.16rem, 1.3vw, 1.38rem);
  line-height: 1.55;
}
.theme-lattice .flow-card p {
  color: #52758a;
  font-size: 1rem;
  line-height: 1.9;
}
.theme-lattice .flow-card:hover,
.theme-lattice .flow-card:nth-child(even):hover {
  transform: translateY(-5px);
  background: #fff;
  box-shadow: 0 30px 70px rgba(26, 101, 137, 0.13);
}
.theme-lattice .contact {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: clamp(2rem, 4vw, 5rem);
  min-height: 920px;
  padding: clamp(7rem, 10vw, 11rem) max(4vw, calc((100vw - 1500px) / 2));
  background:
    linear-gradient(125deg, rgba(116, 218, 202, .13), transparent 28%),
    linear-gradient(180deg, #f8fdff, #edf8fb);
  color: var(--g-ink);
  isolation: isolate;
}
.theme-lattice .contact::before {
  content: "";
  z-index: 0;
  inset: auto -10vw -26vw auto;
  width: min(66vw, 980px);
  height: min(66vw, 980px);
  border: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 28% 25%, rgba(255,255,255,.8), transparent 25%),
    linear-gradient(145deg, rgba(115, 219, 201, .68), rgba(49, 173, 204, .55) 46%, rgba(126, 140, 219, .52) 78%, rgba(231, 151, 183, .44));
  box-shadow: 0 0 0 5rem rgba(60, 183, 195, .035), 0 0 0 10rem rgba(126, 140, 219, .02);
  transform: none;
}
.theme-lattice .contact::after {
  content: "";
  z-index: 0;
  left: max(4vw, calc((100vw - 1500px) / 2));
  right: max(4vw, calc((100vw - 1500px) / 2));
  bottom: 4rem;
  width: auto;
  height: 1px;
  border: 0;
  border-radius: 0;
  background: linear-gradient(90deg, var(--g-rose), var(--g-violet) 35%, var(--g-cyan) 68%, var(--g-mint));
  box-shadow: none;
}
.theme-lattice .contact-copy {
  z-index: 2;
  grid-area: 1 / 1 / 2 / 8;
  min-height: 0;
  display: block;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--g-ink);
}
.theme-lattice .contact-kicker span,
.theme-lattice .contact-kicker b {
  color: #087da5;
}
.theme-lattice .contact-copy h2 {
  max-width: 860px;
  color: #082f4a;
  font-family: var(--g-display);
  font-size: clamp(2.7rem, 4.3vw, 5.2rem);
  font-weight: 500;
  line-height: 1.42;
  letter-spacing: -0.055em;
  text-shadow: none;
  font-feature-settings: "palt" 1;
}
.theme-lattice .contact-copy h2 span {
  display: block;
}
.theme-lattice .contact-copy h2 span + span {
  margin-left: clamp(1.5rem, 5vw, 5rem);
}
.theme-lattice .contact-copy > p {
  max-width: 640px;
  margin-top: 2.8rem;
  color: #4b7086;
  font-size: 1.04rem;
  line-height: 2.05;
}
.theme-lattice .contact-form {
  z-index: 3;
  grid-area: 1 / 8 / 2 / 13;
  align-self: center;
  margin: 0;
  padding: clamp(2.2rem, 3.4vw, 3.8rem);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 8px 68px 8px 8px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 42px 100px rgba(21, 91, 126, 0.18);
  backdrop-filter: blur(24px) saturate(1.2);
  rotate: 0deg;
  transition: box-shadow 350ms ease;
}
.theme-lattice .contact-form:focus-within {
  rotate: 0deg;
  box-shadow: 0 48px 112px rgba(21, 91, 126, 0.23);
}
.theme-lattice .contact-form label > span {
  color: #173d57;
  font-size: 0.95rem;
}
.theme-lattice .contact-form input,
.theme-lattice .contact-form textarea {
  min-height: 3.3rem;
  color: #0b2d48;
  font-size: 1rem;
}
.theme-lattice .contact-form textarea {
  min-height: 9.5rem;
}
.theme-lattice .submit-button {
  min-height: 3.8rem;
  border-radius: 4px 24px 4px 24px;
  font-size: 1rem;
}
.js .theme-lattice .reveal,
.js .theme-lattice .reveal-left,
.js .theme-lattice .reveal-right {
  clip-path: none;
  transform: translateY(12px);
  translate: none;
  transition: opacity 640ms ease, transform 680ms cubic-bezier(.2,.75,.2,1);
  transition-delay: 0ms;
}
.js .theme-lattice .reveal.is-visible {
  transform: translateY(0);
  translate: none;
}
.js .theme-lattice .hero-art,
.js .theme-lattice .hero-art::before {
  transform: none;
  translate: none;
  animation: none;
}
.theme-lattice .flow-card:nth-child(2) { transition-delay: 55ms; }
.theme-lattice .flow-card:nth-child(3) { transition-delay: 110ms; }
.theme-lattice .flow-card:nth-child(4) { transition-delay: 165ms; }
@media (max-width: 1180px) {
  .theme-lattice .services {
    overflow: hidden;
  }
  .theme-lattice .services .section-inner {
    display: block;
  }
  .theme-lattice .services .section-heading,
  .theme-lattice .services .section-intro {
    position: relative;
    top: auto;
  }
  .theme-lattice .services .section-heading {
    margin-bottom: 2rem;
  }
  .theme-lattice .services .section-intro {
    max-width: 52rem;
    margin: 0 0 4rem;
  }
  .theme-lattice .service-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .theme-lattice .service-card,
  .theme-lattice .service-card:nth-child(n) {
    grid-template-columns: 76px minmax(0, 1fr);
  }
  .theme-lattice .service-card:nth-child(n) { grid-column: 2 / 13; }
  .theme-lattice .case-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(4, minmax(176px, auto));
  }
  .theme-lattice .case-card:nth-child(n) {
    grid-area: auto;
  }
  .theme-lattice .flow {
    min-height: auto;
  }
  .theme-lattice .flow-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(260px, auto));
    gap: 1.2rem;
  }
  .theme-lattice .flow-grid::before {
    bottom: 20%;
    transform: rotate(-14deg);
  }
  .theme-lattice .flow-card:nth-child(n) {
    grid-area: auto;
  }
  .theme-lattice .contact-copy {
    grid-column-end: 8;
  }
  .theme-lattice .contact-form {
    grid-column-start: 8;
  }
}
@media (max-width: 900px) {
  .theme-lattice {
    font-size: 17px;
  }
  .theme-lattice .hero {
    min-height: 880px;
  }
  .theme-lattice .hero-copy {
    padding-top: 1rem;
  }
  .theme-lattice .section-heading h2,
  .theme-lattice .services .section-heading h2 {
    font-size: clamp(3.7rem, 12vw, 6rem);
  }
  .theme-lattice .contact {
    grid-template-columns: 1fr;
    gap: 4rem;
  }
  .theme-lattice .contact::before {
    width: 92vw;
    height: 92vw;
    right: -25vw;
    bottom: -20vw;
  }
  .theme-lattice .contact-copy,
  .theme-lattice .contact-form {
    grid-column: 1;
  }
  .theme-lattice .contact-copy {
    grid-row: 1;
  }
  .theme-lattice .contact-form {
    grid-row: 2;
    width: min(720px, 100%);
    margin-left: auto;
  }
}
@media (max-width: 700px) {
  .theme-lattice .hero {
    min-height: 830px;
    padding-inline: 1.1rem;
  }
  .theme-lattice .hero-art {
    inset: 38% -48% 3% 4%;
  }
  .theme-lattice .hero h1 {
    font-size: clamp(2.45rem, 11.7vw, 4rem);
    line-height: 1.12;
  }
  .theme-lattice .hero-lead {
    line-height: 1.9;
  }
  .theme-lattice .difference-media,
  .theme-lattice .difference-media img {
    min-height: 400px;
  }
  .theme-lattice .difference-copy h2 {
    font-size: clamp(2.7rem, 12vw, 4.3rem);
  }
  .theme-lattice .services,
  .theme-lattice .cases,
  .theme-lattice .flow {
    padding-block: 6.5rem;
  }
  .theme-lattice .service-grid,
  .theme-lattice .case-grid,
  .theme-lattice .flow-grid {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }
  .theme-lattice .service-card,
  .theme-lattice .service-card:nth-child(n) {
    grid-column: 1;
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 0.85rem 1rem;
    min-height: 0;
    padding: 1.75rem 1.25rem;
    border-radius: 0;
    transform: none;
  }
  .theme-lattice .service-card > p {
    grid-column: 2;
  }
  .theme-lattice .service-card .card-number {
    font-size: 3.2rem;
  }
  .theme-lattice .service-card h3 {
    font-size: 1.28rem;
  }
  .theme-lattice .case-grid {
    gap: 1px;
  }
  .theme-lattice .case-card,
  .theme-lattice .case-card:nth-child(n) {
    grid-area: auto;
    min-height: 154px;
    padding: 1.5rem 1.2rem;
  }
  .theme-lattice .case-card > span {
    font-size: 2.4rem;
  }
  .theme-lattice .case-card h3 {
    font-size: 1rem;
  }
  .theme-lattice .flow .center-heading h2 {
    font-size: clamp(2.45rem, 11vw, 4rem);
  }
  .theme-lattice .flow-grid {
    gap: 1rem;
    padding-left: 1.2rem;
  }
  .theme-lattice .flow-grid::before {
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    height: auto;
    transform: none;
    background: linear-gradient(var(--g-mint), var(--g-cyan), var(--g-violet), var(--g-rose));
  }
  .theme-lattice .flow-card,
  .theme-lattice .flow-card:last-child,
  .theme-lattice .flow-card:nth-child(n) {
    grid-area: auto;
    min-height: 250px;
    border-radius: 4px 32px 4px 4px;
  }
  .theme-lattice .contact {
    padding: 6.5rem 1.1rem 7rem;
  }
  .theme-lattice .contact-copy h2 {
    font-size: clamp(2.25rem, 10.4vw, 3.7rem);
    line-height: 1.5;
  }
  .theme-lattice .contact-copy h2 span + span {
    margin-left: 0;
  }
  .theme-lattice .contact-form {
    padding: 2rem 1.25rem;
    border-radius: 6px 38px 6px 6px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .theme-lattice *,
  .theme-lattice *::before,
  .theme-lattice *::after {
    scroll-behavior: auto !important;
    animation: none !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
  }
  .js .theme-lattice .reveal,
  .js .theme-lattice .reveal-left,
  .js .theme-lattice .reveal-right {
    transform: none !important;
  }
}
