.ai-contact-cta,
.ai-contact-cta * { box-sizing: border-box; }
.ai-contact-cta { background: var(--ai-color-white); color: var(--ai-color-white); font-family: var(--ai-font-body); padding: 72px 0 90px; }
.ai-contact-cta .container { margin-left: auto; margin-right: auto; max-width: var(--ai-layout-content-width); padding-left: var(--ai-layout-content-gutter); padding-right: var(--ai-layout-content-gutter); width: 100%; }
.ai-contact-cta__inner { background: var(--ai-color-panel); border-top: 3px solid #6479ef; display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); min-height: 330px; overflow: hidden; position: relative; }
.ai-contact-cta__content { align-self: center; padding: 52px 20px 52px 52px; position: relative; z-index: 2; }
.ai-contact-cta__eyebrow { color: var(--ai-color-highlight); font-size: var(--ai-type-label-size); font-weight: 700; letter-spacing: var(--ai-type-label-tracking); margin: 0 0 16px; text-transform: uppercase; }
.ai-contact-cta h2 { color: var(--ai-color-white); font-family: var(--ai-font-display); font-size: clamp(34px,3.5vw,52px); letter-spacing: -.035em; line-height: 1.03; margin: 0; max-width: 690px; }
.ai-contact-cta__description { color: rgba(255,255,255,.67); font-size: var(--ai-type-body-size); line-height: 1.65; margin: 22px 0 0; max-width: 540px; }
.ai-about .ai-contact-cta__description { margin: 22px 0 0; }
.ai-contact-cta__content > a { align-items: center; background: var(--ai-color-white); border: 1px solid var(--ai-color-white); color: var(--ai-color-navy); display: inline-flex; font-size: var(--ai-type-control-size); font-weight: 700; gap: 24px; margin-top: 30px; min-height: 48px; padding: 13px 18px; text-decoration: none; transition: background .22s,color .22s; }
.ai-contact-cta__content > a span { font-size: 17px; transition: transform .22s; }
.ai-contact-cta__content > a:hover,
.ai-contact-cta__content > a:focus-visible { background: transparent; color: var(--ai-color-white); }
.ai-contact-cta__content > a:hover span,
.ai-contact-cta__content > a:focus-visible span { transform: translateX(4px); }
.ai-contact-cta__visual { --ai-cta-art-width: 96%; --ai-cta-art-height: 94%; --ai-cta-art-position:center; align-items: center; background: radial-gradient(circle at 68% 46%,rgba(105,124,236,.18),transparent 36%),linear-gradient(135deg,#161b3d,#202852); border-left: 1px solid rgba(255,255,255,.14); display: flex; justify-content:center; min-height: 330px; overflow: hidden; padding:12px; position: relative; }
.ai-contact-cta__visual::before { background: linear-gradient(90deg,var(--ai-color-panel) 0%,rgba(17,20,49,.35) 34%,rgba(17,20,49,0) 70%); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.ai-contact-cta__visual::after { border-bottom: 1px solid rgba(255,255,255,.14); border-top: 1px solid rgba(255,255,255,.14); content: ""; height: 52%; left: 0; position: absolute; right: 0; top: 24%; }
.ai-contact-cta__visual > span { color: rgba(255,255,255,.58); font-size: var(--ai-type-label-size); font-weight: 700; letter-spacing: .08em; position: absolute; right: 22px; text-transform: uppercase; top: 19px; z-index: 2; }
.ai-contact-cta__visual img { display:block; height:var(--ai-cta-art-height)!important; margin:0!important; max-height:100%; max-width:100%!important; object-fit:contain!important; object-position:var(--ai-cta-art-position); opacity:.7; position:relative; transform:translateY(8px) scale(.985); transition:opacity .55s ease,transform .72s var(--ai-motion-ease-out); width:var(--ai-cta-art-width)!important; z-index:2; }
.ai-contact-cta__inner.is-visible .ai-contact-cta__visual img { opacity:.94; transform:translateY(0) scale(1); }
.ai-contact-cta--frame .ai-contact-cta__visual { --ai-cta-art-width:100%; --ai-cta-art-height:96%; }
.ai-contact-cta--connection .ai-contact-cta__visual { --ai-cta-art-width:96%; --ai-cta-art-height:94%; }
.ai-contact-cta--radial .ai-contact-cta__visual { --ai-cta-art-width:90%; --ai-cta-art-height:94%; }
.ai-contact-cta--stadium .ai-contact-cta__visual { --ai-cta-art-width:100%; --ai-cta-art-height:98%; --ai-cta-art-position:center bottom; }
.ai-contact-cta--truss .ai-contact-cta__visual { --ai-cta-art-width:98%; --ai-cta-art-height:95%; }
.ai-contact-cta--anchor .ai-contact-cta__visual { --ai-cta-art-width:72%; --ai-cta-art-height:95%; }
.ai-contact-cta--precast .ai-contact-cta__visual { --ai-cta-art-width:80%; --ai-cta-art-height:95%; }
@media (max-width: 900px) { .ai-contact-cta__inner { grid-template-columns: 1fr; }.ai-contact-cta__content { padding: 44px 38px 42px; }.ai-contact-cta__visual { border-left: 0; border-top: 1px solid rgba(255,255,255,.14); min-height: 270px; padding:22px; }.ai-contact-cta__visual::before { background: linear-gradient(180deg,var(--ai-color-panel) 0%,rgba(17,20,49,0) 65%); } }
@media (max-width: 560px) { .ai-contact-cta { padding: 55px 0 70px; }.ai-contact-cta__content { padding: 36px 24px 38px; }.ai-contact-cta h2 { font-size: clamp(32px,9vw,42px); }.ai-contact-cta__description { font-size: var(--ai-type-body-size); }.ai-contact-cta__visual { min-height: 205px; padding:18px; }.ai-contact-cta--anchor .ai-contact-cta__visual,.ai-contact-cta--precast .ai-contact-cta__visual{--ai-cta-art-width:72%;} }
@media (prefers-reduced-motion: reduce) { .ai-contact-cta__visual img,.ai-contact-cta__content > a,.ai-contact-cta__content > a span { transition: none; }.ai-contact-cta__visual img { opacity: .92; transform: none; } }

/* Keep the shared artwork frame stable on supporting service pages too. */
.ai-service--standard-v2 .ai-contact-cta__inner{min-height:360px}
.ai-service--standard-v2 .ai-contact-cta__visual{height:auto;min-height:360px}
@media(max-width:900px){.ai-service--standard-v2 .ai-contact-cta__visual{height:270px;min-height:270px}}
@media(max-width:560px){.ai-service--standard-v2 .ai-contact-cta__visual{height:210px;min-height:210px}}

.ai-contact-cta__eyebrow{font-size:var(--ai-type-label-size)}
.ai-contact-cta__description{font-size:var(--ai-type-body-size)}
.ai-contact-cta__content>a{font-size:var(--ai-type-control-size)}
