/* Capability / services components shared by home.html and capabilities.html.
   Layered on top of lovable.css and reuses its design tokens (--primary,
   --gradient-hero, --shadow-*, ...) so new sections match the existing look.
   Everything is prefixed `cap-` because lovable.css is a precompiled Tailwind
   build: utilities that weren't in the original build don't exist. */

.cap-icon { width: 1.25rem; height: 1.25rem; flex-shrink: 0; }

/* ── Sections & headings ───────────────────────────────────── */
.cap-section { padding: 4rem 0; }
.cap-section--soft { background: var(--gradient-soft); }
.cap-section--deep {
  position: relative;
  overflow: hidden;
  background: hsl(var(--surface-deep));
  color: hsl(var(--primary-foreground));
}
.cap-section--deep::before {
  content: "";
  position: absolute; inset: 0;
  opacity: .3; pointer-events: none;
  background-image:
    radial-gradient(circle at 15% 25%, hsl(var(--primary-glow) / .45), transparent 50%),
    radial-gradient(circle at 85% 75%, hsl(var(--primary) / .45), transparent 50%);
}
.cap-section--deep > .container { position: relative; }
@media (min-width: 1024px) { .cap-section { padding: 6rem 0; } }

.cap-head {
  display: grid; gap: 1rem 2rem; align-items: end;
  margin-bottom: 2.5rem;
}
@media (min-width: 1024px) { .cap-head { grid-template-columns: 7fr 5fr; } }
.cap-head > p { color: hsl(var(--muted-foreground)); }
@media (min-width: 1024px) { .cap-head > p { text-align: right; } }
.cap-section--deep .cap-head > p { color: hsl(0 0% 100% / .7); }

.cap-eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .8125rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em;
  color: hsl(var(--primary));
}
.cap-section--deep .cap-eyebrow { color: hsl(var(--primary-glow)); }
.cap-eyebrow__num {
  display: inline-grid; place-items: center;
  height: 1.5rem; min-width: 1.5rem; padding: 0 .375rem;
  border-radius: 999px;
  background: hsl(var(--primary) / .1);
  font-size: .6875rem; letter-spacing: 0;
}
.cap-h2 {
  margin-top: .75rem;
  font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
  font-weight: 700; line-height: 1.15; letter-spacing: -.01em;
  text-wrap: balance;
}
.cap-h3 { font-size: 1.125rem; font-weight: 600; line-height: 1.3; }
.cap-lead {
  margin-top: 1rem; max-width: 46rem;
  font-size: 1.0625rem; line-height: 1.65;
  color: hsl(var(--muted-foreground));
}
.cap-section--deep .cap-lead { color: hsl(0 0% 100% / .75); }
.cap-subhead {
  margin: 2.5rem 0 1rem;
  font-size: .8125rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .1em;
  color: hsl(var(--muted-foreground));
}
.cap-section--deep .cap-subhead { color: hsl(0 0% 100% / .6); }

/* ── Chips ─────────────────────────────────────────────────── */
.cap-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.cap-chip {
  display: inline-flex; align-items: center; gap: .375rem;
  padding: .375rem .75rem;
  border: 1px solid hsl(var(--border));
  border-radius: 999px;
  background: hsl(var(--card));
  font-size: .8125rem; font-weight: 500; line-height: 1.2;
  color: hsl(var(--foreground));
}
.cap-chip--sm { padding: .125rem .5rem; font-size: .6875rem; background: hsl(var(--secondary)); }
.cap-chip--light {
  border-color: hsl(0 0% 100% / .2);
  background: hsl(0 0% 100% / .08);
  color: hsl(0 0% 100% / .92);
}
.cap-chip .cap-icon { width: .875rem; height: .875rem; color: hsl(var(--primary)); }
.cap-chip--light .cap-icon { color: hsl(var(--primary-glow)); }

/* ── Tech marquee (home) ───────────────────────────────────── */
.cap-marquee {
  position: relative; overflow: hidden;
  padding: 1.25rem 0;
  border-block: 1px solid hsl(var(--border));
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.cap-marquee__track {
  display: flex; gap: .75rem; width: max-content;
  animation: cap-marquee 60s linear infinite;
}
.cap-marquee:hover .cap-marquee__track { animation-play-state: paused; }
.cap-marquee .cap-chip { white-space: nowrap; }
@keyframes cap-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .cap-marquee { -webkit-mask-image: none; mask-image: none; }
  .cap-marquee__track { animation: none; width: auto; flex-wrap: wrap; justify-content: center; }
  .cap-marquee__track [aria-hidden="true"] { display: none; }
}

/* ── Grids & cards ─────────────────────────────────────────── */
.cap-grid { display: grid; gap: 1rem; }
@media (min-width: 768px) {
  .cap-grid--2, .cap-grid--3, .cap-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .cap-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cap-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.cap-grid--gap { gap: 1.5rem; }

.cap-card {
  position: relative;
  display: flex; flex-direction: column; gap: .75rem;
  padding: 1.5rem;
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  background: hsl(var(--card));
  box-shadow: var(--shadow-soft);
  transition: box-shadow .4s var(--transition-smooth), transform .4s var(--transition-smooth), border-color .3s;
}
.cap-card--flat { box-shadow: none; }
.cap-card--dark {
  border-color: hsl(0 0% 100% / .1);
  background: hsl(0 0% 100% / .05);
  box-shadow: none;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.cap-card__top { display: flex; align-items: center; gap: .875rem; }
.cap-card__icon {
  display: grid; place-items: center; flex-shrink: 0;
  height: 2.75rem; width: 2.75rem;
  border-radius: .75rem;
  background: hsl(var(--accent));
  color: hsl(var(--primary));
  transition: background .3s, color .3s;
}
.cap-card--dark .cap-card__icon { background: hsl(0 0% 100% / .1); color: hsl(var(--primary-glow)); }
.cap-card__intro { font-size: .875rem; line-height: 1.6; color: hsl(var(--muted-foreground)); }
.cap-card--dark .cap-card__intro { color: hsl(0 0% 100% / .7); }
.cap-card__note {
  margin-top: auto; padding-top: .875rem;
  border-top: 1px solid hsl(var(--border) / .7);
  font-size: .8125rem; line-height: 1.6; color: hsl(var(--muted-foreground));
}

/* Linked service card (home) */
a.cap-service { color: inherit; text-decoration: none; overflow: hidden; }
a.cap-service::before {
  content: "";
  position: absolute; inset: 0 0 auto 0; height: 3px;
  background: var(--gradient-strip);
  transform: scaleX(0); transform-origin: left;
  transition: transform .5s var(--transition-smooth);
}
a.cap-service:hover { box-shadow: var(--shadow-elevated); transform: translateY(-4px); border-color: hsl(var(--primary) / .25); }
a.cap-service:hover::before { transform: scaleX(1); }
a.cap-service:hover .cap-card__icon { background: var(--gradient-hero); color: hsl(var(--primary-foreground)); }
.cap-service__arrow { margin-left: auto; color: hsl(var(--muted-foreground)); opacity: 0; transition: opacity .3s, transform .3s; }
a.cap-service:hover .cap-service__arrow { opacity: 1; transform: translate(2px, -2px); color: hsl(var(--primary)); }
.cap-service p { font-size: .875rem; line-height: 1.6; color: hsl(var(--muted-foreground)); }
.cap-service .cap-chips { margin-top: auto; padding-top: .25rem; gap: .375rem; }

/* ── Check lists ───────────────────────────────────────────── */
.cap-list { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.cap-list li {
  position: relative;
  padding-left: 1.5rem;
  font-size: .875rem; line-height: 1.5;
  color: hsl(var(--foreground) / .85);
}
.cap-list li::before {
  content: "";
  position: absolute; left: 0; top: .2rem;
  width: 1rem; height: 1rem; border-radius: 999px;
  background: hsl(var(--primary) / .12)
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23324aec' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>")
    center / .625rem no-repeat;
}
.cap-card--dark .cap-list li, .cap-section--deep .cap-list li { color: hsl(0 0% 100% / .85); }
.cap-card--dark .cap-list li::before, .cap-section--deep .cap-list li::before {
  background-color: hsl(0 0% 100% / .12);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b69cf5' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");
}
@media (min-width: 640px) {
  .cap-list--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; }
  .cap-list--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; }
}
@media (min-width: 1024px) {
  .cap-list--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cap-list--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 1.25rem; }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .cap-list--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; }
}

/* ── Flow diagrams (architecture, CI/CD, chatbot) ──────────── */
.cap-flow {
  padding: 1.25rem;
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  background: hsl(var(--card));
}
.cap-section--deep .cap-flow, .cap-card--dark .cap-flow { border-color: hsl(0 0% 100% / .12); background: hsl(0 0% 100% / .04); }
.cap-flow__label {
  margin-bottom: 1rem;
  font-size: .75rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .1em;
  color: hsl(var(--muted-foreground));
}
.cap-section--deep .cap-flow__label { color: hsl(0 0% 100% / .6); }
.cap-flow__steps {
  display: flex; flex-direction: column; align-items: stretch; gap: .5rem;
  margin: 0; padding: 0; list-style: none;
}
.cap-flow__step {
  display: flex; align-items: center; gap: .625rem;
  padding: .75rem 1rem;
  border-radius: .75rem;
  background: hsl(var(--accent));
  font-size: .875rem; font-weight: 600; line-height: 1.3;
  color: hsl(var(--accent-foreground));
}
.cap-section--deep .cap-flow__step { background: hsl(0 0% 100% / .1); color: hsl(0 0% 100%); }
.cap-flow__step:last-child { background: var(--gradient-hero); color: hsl(var(--primary-foreground)); }
.cap-flow__n {
  display: inline-grid; place-items: center; flex-shrink: 0;
  height: 1.375rem; width: 1.375rem; border-radius: 999px;
  background: hsl(0 0% 100% / .7);
  font-size: .6875rem; font-weight: 700; color: hsl(var(--primary));
}
.cap-flow__step:last-child .cap-flow__n { background: hsl(0 0% 100% / .25); color: #fff; }
.cap-flow__arrow {
  display: grid; place-items: center;
  color: hsl(var(--muted-foreground));
  transform: rotate(90deg);
}
.cap-section--deep .cap-flow__arrow { color: hsl(0 0% 100% / .5); }
.cap-flow__arrow .cap-icon { width: 1rem; height: 1rem; }
@media (min-width: 768px) {
  .cap-flow__steps { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .cap-flow__step { flex: 1 1 0; justify-content: center; text-align: center; min-height: 3.5rem; }
  .cap-flow__arrow { transform: none; flex: 0 0 auto; }
}

/* ── Numbered lifecycle ────────────────────────────────────── */
.cap-steps { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; counter-reset: step; }
@media (min-width: 640px) { .cap-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cap-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cap-step {
  counter-increment: step;
  display: flex; flex-direction: column; gap: .5rem;
  padding: 1.5rem;
  border: 1px solid hsl(0 0% 100% / .1);
  border-radius: 1rem;
  background: hsl(0 0% 100% / .05);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: background .3s, border-color .3s;
}
.cap-step:hover { background: hsl(0 0% 100% / .1); border-color: hsl(0 0% 100% / .2); }
.cap-step::before {
  content: counter(step, decimal-leading-zero);
  font-size: 2.25rem; font-weight: 700; line-height: 1;
  background: linear-gradient(90deg, #fff, hsl(var(--primary-glow)));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.cap-step h3 { margin-top: .75rem; font-size: 1.0625rem; font-weight: 600; }
.cap-step p { font-size: .875rem; line-height: 1.6; color: hsl(0 0% 100% / .7); }
.cap-step--wide { background: var(--gradient-hero); border-color: transparent; }
.cap-step--wide:hover { background: var(--gradient-hero); }
.cap-step--wide::before { background: none; -webkit-background-clip: initial; background-clip: initial; color: #fff; }
.cap-step--wide p { color: hsl(0 0% 100% / .88); }
@media (min-width: 1024px) { .cap-step--wide { grid-column: span 1; } }

/* ── Tech stack table ──────────────────────────────────────── */
.cap-table {
  overflow: hidden;
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  background: hsl(var(--card));
  box-shadow: var(--shadow-soft);
}
.cap-table__row {
  display: grid; gap: .5rem 1.5rem;
  padding: 1rem 1.25rem;
  border-top: 1px solid hsl(var(--border));
}
.cap-table__row:first-child { border-top: 0; }
.cap-table__row:nth-child(even) { background: hsl(var(--surface)); }
@media (min-width: 768px) {
  .cap-table__row { grid-template-columns: 14rem 1fr; align-items: center; padding: 1rem 1.5rem; }
}
.cap-table__cat { font-size: .875rem; font-weight: 600; }
.cap-table .cap-chips { gap: .375rem; }

/* ── Engagement / quality ──────────────────────────────────── */
.cap-model p { font-size: .875rem; line-height: 1.6; color: hsl(var(--muted-foreground)); }
.cap-pillars { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.cap-pillar {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .625rem 1.125rem;
  border: 1px solid hsl(0 0% 100% / .25);
  border-radius: 999px;
  background: hsl(0 0% 100% / .1);
  font-weight: 600; color: #fff;
}
.cap-pillar .cap-icon { width: 1rem; height: 1rem; }

/* ── Buttons ───────────────────────────────────────────────── */
.cap-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  height: 3rem; padding: 0 1.5rem;
  border-radius: 999px;
  font-size: .9375rem; font-weight: 500; white-space: nowrap;
  text-decoration: none;
  transition: box-shadow .2s, background .2s, opacity .2s, transform .2s;
}
.cap-btn .cap-icon { width: 1rem; height: 1rem; }
.cap-btn--primary { background: var(--gradient-hero); color: hsl(var(--primary-foreground)); box-shadow: var(--shadow-soft); }
.cap-btn--primary:hover { box-shadow: var(--shadow-glow); }
.cap-btn--outline { border: 1px solid hsl(var(--border)); background: hsl(var(--card)); color: hsl(var(--foreground)); }
.cap-btn--outline:hover { border-color: hsl(var(--primary) / .4); background: hsl(var(--accent)); }
.cap-btn--light { background: #fff; color: hsl(var(--foreground)); box-shadow: var(--shadow-soft); }
.cap-btn--light:hover { background: hsl(0 0% 100% / .9); }
.cap-btn--ghost-light { border: 1px solid hsl(0 0% 100% / .4); background: hsl(0 0% 100% / .05); color: #fff; }
.cap-btn--ghost-light:hover { background: hsl(0 0% 100% / .15); }
.cap-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.cap-center { text-align: center; }
.cap-center .cap-actions, .cap-center .cap-chips { justify-content: center; }

/* ══ Capabilities page ═══════════════════════════════════════ */
.cap-hero {
  position: relative; overflow: hidden;
  margin-top: 2rem;
  padding: 4rem 1.5rem;
  border-radius: 1.5rem;
  background: hsl(var(--surface-deep));
  color: #fff;
  box-shadow: var(--shadow-elevated);
}
@media (min-width: 1024px) { .cap-hero { padding: 5.5rem 4rem; } }
.cap-hero__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .55;
}
.cap-hero::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, hsl(var(--surface-deep) / .55), hsl(var(--surface-deep) / .9));
}
.cap-hero__inner { position: relative; z-index: 1; max-width: 56rem; }
.cap-hero__badge {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .375rem 1rem;
  border: 1px solid hsl(0 0% 100% / .3);
  border-radius: 999px;
  background: hsl(0 0% 100% / .1);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  font-size: .75rem; font-weight: 500; text-transform: uppercase; letter-spacing: .08em;
}
.cap-hero__badge .cap-icon { width: .875rem; height: .875rem; }
.cap-hero h1 {
  margin-top: 1.5rem;
  font-size: clamp(2.25rem, 1.4rem + 3.6vw, 4rem);
  font-weight: 700; line-height: 1.05; letter-spacing: -.02em;
  text-wrap: balance;
}
.cap-hero h1 span {
  display: block; margin-top: .375rem;
  background: linear-gradient(90deg, #fff, hsl(0 0% 100% / .6));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.cap-hero__text p { margin-top: 1.25rem; max-width: 46rem; font-size: 1.0625rem; line-height: 1.7; color: hsl(0 0% 100% / .8); }
.cap-hero__text p + p { margin-top: .75rem; }
.cap-hero__meta {
  display: flex; flex-wrap: wrap; gap: .5rem 1.5rem;
  margin-top: 2rem;
  font-size: .8125rem; color: hsl(0 0% 100% / .7);
}
.cap-hero__meta span { display: inline-flex; align-items: center; gap: .5rem; }
.cap-hero__meta span::before { content: ""; height: .375rem; width: .375rem; border-radius: 999px; background: #34d399; }

/* Sticky in-page navigation */
.cap-subnav {
  position: sticky; top: 4rem; z-index: 30;
  margin-top: 2rem;
  border-block: 1px solid hsl(var(--border));
  background: hsl(var(--background) / .9);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.cap-subnav__list {
  display: flex; gap: .25rem;
  overflow-x: auto; scrollbar-width: none;
  padding: .625rem 0;
}
.cap-subnav__list::-webkit-scrollbar { display: none; }
.cap-subnav a {
  flex-shrink: 0;
  padding: .4375rem .875rem;
  border-radius: 999px;
  font-size: .8125rem; font-weight: 500; white-space: nowrap;
  color: hsl(var(--muted-foreground));
  text-decoration: none;
  transition: background .2s, color .2s;
}
.cap-subnav a:hover { background: hsl(var(--accent)); color: hsl(var(--foreground)); }
.cap-subnav a.is-active { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.cap-page { scroll-padding-top: 8rem; }
.cap-page [id] { scroll-margin-top: 8rem; }

/* Two-column block: heading left, content right */
.cap-split { display: grid; gap: 2rem; }
@media (min-width: 1024px) {
  .cap-split { grid-template-columns: 4fr 8fr; gap: 3rem; }
  .cap-split__aside { position: sticky; top: 9rem; align-self: start; }
}

.cap-panel {
  padding: 1.5rem;
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  background: hsl(var(--card));
}
.cap-panel + .cap-panel { margin-top: 1rem; }
.cap-panel--tint { background: var(--gradient-soft); border-color: hsl(var(--primary) / .12); }

.cap-callout {
  display: flex; gap: .875rem; align-items: flex-start;
  margin-top: 1.5rem; padding: 1.125rem 1.25rem;
  border-left: 3px solid hsl(var(--primary));
  border-radius: 0 .75rem .75rem 0;
  background: hsl(var(--accent));
  font-size: .9375rem; line-height: 1.6; color: hsl(var(--accent-foreground));
}
.cap-callout .cap-icon { margin-top: .125rem; color: hsl(var(--primary)); }

/* Service areas numbered grid */
.cap-areas { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; counter-reset: area; }
@media (min-width: 640px) { .cap-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cap-areas { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cap-areas li {
  counter-increment: area;
  display: flex; align-items: center; gap: .875rem;
  padding: .875rem 1rem;
  border: 1px solid hsl(var(--border));
  border-radius: .75rem;
  background: hsl(var(--card));
  font-size: .9375rem; font-weight: 500;
  transition: border-color .2s, box-shadow .2s;
}
.cap-areas li:hover { border-color: hsl(var(--primary) / .35); box-shadow: var(--shadow-soft); }
.cap-areas li::before {
  content: counter(area, decimal-leading-zero);
  display: inline-grid; place-items: center; flex-shrink: 0;
  height: 2rem; width: 2rem; border-radius: .5rem;
  background: hsl(var(--accent));
  font-size: .75rem; font-weight: 700; color: hsl(var(--primary));
}

/* Capability summary */
.cap-summary { display: grid; gap: 1px; overflow: hidden; border-radius: 1rem; background: hsl(0 0% 100% / .12); }
@media (min-width: 768px) { .cap-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .cap-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cap-summary__item { padding: 1.5rem; background: hsl(var(--surface-deep)); }
.cap-summary__item h3 { margin-bottom: .875rem; font-size: 1rem; font-weight: 600; }

/* Final contact band */
.cap-cta {
  position: relative; overflow: hidden;
  padding: 3rem 1.5rem;
  border-radius: 1.5rem;
  background: var(--gradient-hero);
  color: #fff;
  box-shadow: var(--shadow-elevated);
}
@media (min-width: 1024px) { .cap-cta { padding: 4rem; } }
.cap-cta::before {
  content: ""; position: absolute; top: -6rem; right: -6rem;
  height: 18rem; width: 18rem; border-radius: 999px;
  background: hsl(0 0% 100% / .12); filter: blur(60px);
}
.cap-cta > * { position: relative; }
.cap-cta h2 { font-size: clamp(1.75rem, 1.2rem + 2.2vw, 3rem); font-weight: 700; line-height: 1.1; text-wrap: balance; }
.cap-cta p { margin-top: 1rem; max-width: 38rem; font-size: 1.0625rem; color: hsl(0 0% 100% / .85); }
.cap-cta__grid { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 1024px) { .cap-cta__grid { grid-template-columns: 7fr 5fr; } }
.cap-contact {
  padding: 1.5rem;
  border: 1px solid hsl(0 0% 100% / .2);
  border-radius: 1rem;
  background: hsl(0 0% 100% / .1);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.cap-contact dt { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: hsl(0 0% 100% / .7); }
.cap-contact dd { margin: .25rem 0 1rem; font-size: 1rem; font-weight: 500; }
.cap-contact dd:last-child { margin-bottom: 0; }
.cap-contact a { color: #fff; }
