/* Precast and curved steel briefs follow the shared service typography and palette. */
.ai-service-brief { --brief-line:var(--ai-color-border); }
.ai-service-brief .ai-section { padding:88px 0; }
.ai-service-brief .ai-section-heading { max-width:900px; margin-bottom:42px; }
.ai-service-brief .ai-section-heading h2 { font-size:clamp(34px,3.6vw,52px); line-height:1.12; margin:0 0 24px; max-width:850px; }
.ai-service-brief .ai-section-heading > p:last-child:not(.ai-eyebrow) { font-size:18px; line-height:var(--ai-type-copy-leading); max-width:820px; }
.single-our_services .ai-service-brief .ai-eyebrow { display:block; font-size:var(--ai-type-label-size); margin:0 0 16px; }
.ai-service-brief h3 { font-size:26px; line-height:1.25; margin:0 0 18px; }
.ai-service-brief h4 { font-size:21px; line-height:1.35; margin:0 0 14px; }
.ai-service-brief p { font-size:var(--ai-type-body-size); line-height:var(--ai-type-copy-leading); margin:0 0 20px; }
.ai-service-brief .ai-section--navy p { color:#c4ccdf; }
.pc-intro { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.pc-intro .ai-section-heading { margin:0; }
.pc-prose p { color:#56647c; }
.pc-scope { display:grid; grid-template-columns:240px 1fr; gap:50px; border-top:1px solid var(--brief-line); margin-top:42px; padding-top:32px; }
.pc-scope h3 { font-size:21px; }
.pc-scope ul { display:grid; grid-template-columns:repeat(3,1fr); gap:20px 30px; list-style:none; padding:0; margin:0; }
.pc-scope li { font-size:var(--ai-type-body-size); line-height:1.6; padding-left:16px; border-left:2px solid #8576df; }
.pc-proof-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; border-top:1px solid #ffffff30; padding-top:36px; }
.pc-proof-grid article { min-width:0; }
.pc-proof-grid strong { display:block; color:#adb7ff; font-family:"ClashDisplaySemibold",sans-serif; font-size:clamp(42px,4.8vw,68px); line-height:1.1; margin-bottom:22px; }
.pc-proof-grid h3 { font-size:21px; }
.pc-proof-grid p { font-size:var(--ai-type-body-size); margin:0; }
.pc-model { display:grid; grid-template-columns:1.16fr 1fr; background:var(--ai-color-navy); }
.brief-view { min-width:0; background:#e8ebf1; color:#18213a; }
.brief-tabs { display:flex; flex-wrap:wrap; gap:0; border-bottom:1px solid #d0d6e2; }
.brief-tabs button { flex:1; border:0; background:transparent; color:inherit; font:600 var(--ai-type-control-size)/1.4 var(--ai-font-body); padding:20px 16px; cursor:pointer; position:relative; }
.brief-tabs button[aria-selected="true"] { background:#dce0ec; }
.brief-tabs button[aria-selected="true"]::after { content:""; position:absolute; bottom:-1px; left:0; right:0; height:3px; background:#7060d7; }
.brief-tabs button:focus-visible, .pc-fields summary:focus-visible { outline:3px solid #9ea9ff; outline-offset:-4px; }
.brief-view figure { margin:0; }
.ai-service-brief [hidden] { display:none !important; }
.brief-view figure > a { display:block; position:relative; color:inherit; }
.brief-view img { display:block; width:100%; height:380px; object-fit:contain; padding:28px; mix-blend-mode:multiply; }
.brief-view figcaption { padding:18px 26px; font-size:var(--ai-type-small-size); border-top:1px solid #d0d6e2; }
.brief-enlarge { position:absolute; bottom:18px; right:20px; font:600 var(--ai-type-label-size)/1.4 var(--ai-font-body); padding:10px 14px; background:var(--ai-color-navy); color:var(--ai-color-white); }
.brief-view figure > a:hover .brief-enlarge { background:#5944c6; }
.pc-fields { padding:20px 34px 28px; color:var(--ai-color-white); }
.pc-fields details { border-bottom:1px solid #ffffff26; }
.pc-fields summary { display:flex; align-items:center; gap:18px; cursor:pointer; padding:22px 0; list-style:none; font-size:20px; font-weight:500; }
.pc-fields summary::-webkit-details-marker { display:none; }
.pc-fields summary span { color:#aab6ff; font:500 var(--ai-type-label-size)/1 var(--ai-font-body); }
.pc-fields summary i { font-style:normal; font-size:25px; margin-left:auto; transition:transform .2s; }
.pc-fields details[open] summary i { transform:rotate(45deg); }
.pc-fields details p { color:#c4ccdf; font-size:var(--ai-type-body-size); padding-left:35px; margin:0 0 24px; }
.pc-fields .pc-statement { font-size:15px; color:#aeb9d3; margin:26px 0 0; }
.pc-information { display:grid; grid-template-columns:1fr 1.8fr; gap:64px; margin-top:64px; }
.pc-information header p, .pc-information dd { color:#56647c; font-size:16px; }
.pc-information dl { display:grid; grid-template-columns:repeat(2,1fr); gap:24px 38px; margin:0; }
.pc-information dl > div { border-top:1px solid var(--brief-line); padding-top:18px; }
.pc-information dt { font-weight:600; font-size:18px; margin-bottom:10px; }
.pc-information dd { margin:0; line-height:1.7; }
.pc-closing { margin-top:32px !important; color:#56647c; }
.pc-process { display:grid; grid-template-columns:1fr 1fr; gap:0 64px; list-style:none; margin:0; padding:0; border-top:1px solid var(--brief-line); }
.pc-process li { display:grid; grid-template-columns:48px 1fr; gap:22px; padding:32px 0; border-bottom:1px solid var(--brief-line); }
.pc-number { color:#7060d7; font:500 25px/1.3 "ClashDisplaySemibold",sans-serif; }
.pc-process p:not(.ai-eyebrow) { color:#56647c; font-size:16px; margin:0; }
.pc-process h3 { font-size:24px; }
.pc-manufacturing { display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:start; }
.pc-manufacturing figure { margin:0; position:sticky; top:110px; }
.pc-manufacturing img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.pc-manufacturing figcaption { font-size:var(--ai-type-small-size); padding-top:16px; color:#aeb9d3; }
.pc-manufacturing h2 { font-size:clamp(34px,3.3vw,48px); line-height:1.15; margin-bottom:28px; }
.pc-standards { display:flex; gap:10px 20px; flex-wrap:wrap; margin:24px 0; padding:0; list-style:none; }
.pc-standards li { font-size:var(--ai-type-body-size); color:#c1c9ff; border-bottom:1px solid #ffffff30; padding-bottom:8px; }
.pc-manufacturing-end { max-width:920px; border-top:1px solid #ffffff30; padding-top:30px; margin:42px 0 0 !important; font-size:22px !important; }
.pc-coordination { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.pc-coordination article { padding:24px 0; border-top:2px solid #7464d9; }
.pc-coordination p:not(.ai-eyebrow) { color:#56647c; font-size:16px; }
.pc-coordination small { color:#5144ad; font-size:var(--ai-type-small-size); line-height:1.6; }
.pc-quality { display:grid; grid-template-columns:1fr 1.8fr; gap:64px; margin-top:54px; border-top:1px solid var(--brief-line); padding-top:44px; }
.pc-quality > div { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.pc-quality p { color:#56647c; font-size:var(--ai-type-body-size); }
.pc-quality article { border-left:2px solid var(--brief-line); padding-left:22px; }
.pc-team-label { color:#aeb9d3; }
.pc-team { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; border-top:1px solid #ffffff30; padding-top:32px; }
.pc-team h3 { font-size:23px; }
.pc-team p { font-size:var(--ai-type-body-size); }
.pc-team-end { border-top:1px solid #ffffff30; padding-top:30px; margin:28px 0 0 !important; max-width:950px; }
.pc-case { display:grid; grid-template-columns:1.12fr 1fr; background:#f0f2f7; }
.pc-case figure { margin:0; min-height:520px; }
.pc-case figure a { display:block; height:100%; position:relative; }
.pc-case img { width:100%; height:100%; object-fit:cover; display:block; }
.pc-case article { padding:44px; align-self:center; }
.pc-case h3 { font-size:clamp(32px,3vw,42px); }
.pc-case article > p:not(.ai-eyebrow):not(.pc-case-tons) { color:#56647c; font-size:16px; }
.pc-case-tons { font:600 40px/1.2 "ClashDisplaySemibold",sans-serif; color:#5944c6; }
.pc-case-tons span { display:block; font:500 15px/1.6 var(--ai-font-body); margin-top:7px; }
.pc-case dl { display:grid; gap:20px; margin:28px 0 0; }
.pc-case dl div { display:grid; grid-template-columns:110px 1fr; gap:15px; border-top:1px solid #d0d6e2; padding-top:16px; }
.pc-case dt { color:#56647c; font-size:14px; }
.pc-case dd { margin:0; font-size:var(--ai-type-small-size); }
.pc-output { display:grid; grid-template-columns:1.15fr 1fr; gap:50px; align-items:center; }
.brief-view--drawing { background:var(--ai-color-navy); color:var(--ai-color-white); }
.brief-view--drawing .brief-tabs { border-color:#ffffff26; }
.brief-view--drawing .brief-tabs button[aria-selected="true"] { background:#ffffff0e; }
.brief-view--drawing img { mix-blend-mode:normal; height:450px; padding:26px 30px 48px; }
.brief-view--drawing figcaption { border-color:#ffffff26; color:#c4ccdf; }
.pc-output-list h3 { font-size:25px; }
.pc-output-list ul { list-style:none; margin:24px 0 0; padding:0; }
.pc-output-list li { border-top:1px solid var(--brief-line); padding:18px 0; font-size:19px; }
.pc-output-list li::before { content:'→'; color:#7060d7; margin-right:16px; }
/* Curved steel: a real fabrication image and model views, without illustrative data. */
.curved-workspace { display:grid; grid-template-columns:1.3fr 1fr; background:var(--ai-color-navy); }
.curved-workspace .brief-view img { height:430px; padding:0; object-fit:contain; mix-blend-mode:normal; }
.curved-workspace #curved-shop-view img { object-fit:cover; }
.curved-workspace > article { padding:38px; color:var(--ai-color-white); }
.curved-workspace > article h3 { font-size:32px; }
.curved-workspace > article p { color:#c4ccdf; font-size:var(--ai-type-body-size); }
.curved-workspace ol { list-style:none; margin:28px 0 0; padding:0; }
.curved-workspace li { border-top:1px solid #ffffff26; padding:18px 0; font-size:var(--ai-type-body-size); color:#c4ccdf; }
.curved-workspace li strong { color:var(--ai-color-white); display:block; margin-bottom:6px; font-size:19px; }
.ai-service-brief .ai-curved-feature { border:0; border-radius:0; }
.ai-service-brief .ai-curved-feature__content { padding:38px; }
.ai-service-brief .ai-curved-feature__content > p:not(:first-child) { font-size:var(--ai-type-body-size); }
.ai-service-brief .ai-curved-feature h3 { font-size:34px; }
.ai-service-brief .ai-curved-feature dt { font-size:var(--ai-type-label-size); }
.ai-service-brief .ai-curved-feature dd { font-size:var(--ai-type-small-size); }
.ai-service-brief .ai-curved-feature dl { gap:18px; }
.ai-service-brief .ai-curved-feature dl div { border:0; border-top:1px solid #ffffff30; background:transparent; padding:15px 0; }
.ai-service-brief .ai-curved-project-card { border:0; border-top:0; border-radius:0; background:#f5f6f8; }
.ai-service-brief .ai-curved-project-card > div { padding:25px; }
.ai-service-brief .ai-curved-project-card h3 { font-size:24px; margin:12px 0 18px; }
.ai-service-brief .ai-curved-project-card p { font-size:var(--ai-type-body-size); }
.ai-service-brief .ai-curved-project-card span { font-size:var(--ai-type-label-size); }
.ai-service-brief .ai-curved-project-note { background:transparent; padding:24px 0; border-top:1px solid var(--brief-line); }
.ai-service-brief .ai-curved-project-note span,.ai-service-brief .ai-curved-project-note strong { font-size:16px; }
.ai-service-brief .ai-prose p,.ai-service-brief .ai-tech-card p { font-size:var(--ai-type-body-size); }
.ai-service-brief .ai-tech-card h3 { font-size:25px; }
@media (max-width:1000px) {
 .pc-intro,.pc-model,.pc-manufacturing,.pc-quality,.pc-information,.pc-case,.curved-workspace { gap:32px; }
 .pc-model,.pc-case,.curved-workspace { gap:0; }
 .pc-scope { grid-template-columns:1fr; gap:20px; }
 .pc-proof-grid,.pc-team { grid-template-columns:repeat(2,1fr); gap:32px 40px; }
 .pc-proof-grid article { border-bottom:1px solid #ffffff26; padding-bottom:24px; }
 .pc-case article,.curved-workspace > article { padding:28px; }
 .pc-output { gap:30px; }
}
@media (max-width:820px) {
 .ai-service-brief .ai-section { padding:64px 0; }
 .pc-intro,.pc-model,.pc-manufacturing,.pc-information,.pc-quality,.pc-case,.pc-output,.curved-workspace { grid-template-columns:1fr; }
 .pc-intro { gap:28px; }
 .pc-scope ul { grid-template-columns:repeat(2,1fr); }
 .pc-manufacturing figure { position:static; }
 .pc-manufacturing img { max-height:400px; }
 .pc-coordination { grid-template-columns:1fr; gap:12px; }
 .pc-case figure { min-height:0; }
 .pc-case img { height:390px; }
 .pc-process { gap:0 30px; }
 .pc-process li { grid-template-columns:32px 1fr; gap:16px; }
 .pc-information { gap:24px; }
 .pc-quality { gap:24px; }
 .ai-service-brief .ai-curved-feature { grid-template-columns:1fr; }
 .ai-service-brief .ai-curved-feature__media { min-height:0; }
 .ai-service-brief .ai-curved-feature__media img { height:350px; }
 .ai-service-brief .ai-curved-project-grid { grid-template-columns:1fr; }
 .ai-service-brief .ai-curved-project-card { display:grid; grid-template-columns:1fr 1fr; }
 .ai-service-brief .ai-curved-project-card img { height:100%; }
}
@media (max-width:560px) {
 .ai-service-brief .ai-section { padding:52px 0; }
 .ai-service-brief .ai-section-heading { margin-bottom:30px; }
 .ai-service-brief .ai-section-heading h2 { font-size:34px; margin-bottom:22px; }
 .ai-service-brief .ai-section-heading > p:last-child:not(.ai-eyebrow) { font-size:17px; }
 .pc-proof-grid,.pc-team,.pc-scope ul,.pc-process,.pc-information dl,.pc-quality > div { grid-template-columns:1fr; }
 .pc-proof-grid strong { font-size:54px; }
 .pc-proof-grid article { padding-bottom:25px; }
 .pc-fields { padding:12px 24px 26px; }
 .pc-fields summary { font-size:18px; gap:14px; }
 .pc-fields details p { padding-left:0; }
 .brief-tabs button { font-size:var(--ai-type-control-size); padding:18px 10px; }
 .brief-view img { height:270px; padding:16px; }
 .brief-view--drawing img { height:350px; padding:20px 22px 50px; }
 .pc-case img { height:300px; }
 .pc-case article { padding:30px 24px; }
 .pc-case h3 { font-size:34px; }
 .pc-case dl div { grid-template-columns:1fr; gap:7px; }
 .pc-process li { padding:27px 0; }
 .pc-information { margin-top:42px; }
 .pc-quality { margin-top:32px; }
 .curved-workspace .brief-view img { height:300px; }
 .curved-workspace > article { padding:30px 24px; }
 .ai-service-brief .ai-curved-project-card { display:block; }
 .ai-service-brief .ai-curved-project-note { align-items:start; flex-direction:column; gap:12px; }
}
@media (prefers-reduced-motion:reduce) { .pc-fields summary i { transition:none; } }
@media (prefers-reduced-motion:no-preference) {
 .brief-view [role="tabpanel"]:not([hidden]) { animation:brief-view-in .24s ease-out; }
 @keyframes brief-view-in { from { opacity:.3; } to { opacity:1; } }
}
/* Transparent CAD samples need an opaque backing when enlarged. */
.fancybox__content:has(img[src*="precast-brief-plan.webp"]),
.fancybox__content:has(img[src*="precast-brief-detail.webp"]) { background:var(--ai-color-navy); }
.ai-service-brief .pc-case-tons { font:600 40px/1.2 "ClashDisplaySemibold",sans-serif; }
.curved-workspace .brief-view { display:flex; flex-direction:column; }
.curved-workspace .brief-view figure:not([hidden]) { display:flex; flex-direction:column; flex:1; }
.curved-workspace .brief-view figure > a { flex:1; min-height:430px; }
.curved-workspace .brief-view figure img { height:100%; position:absolute; inset:0; }
@media (max-width:560px) { .curved-workspace .brief-view figure > a { min-height:300px; } }
.curved-workspace { margin-top:48px; }

/* Precast: consistent reading widths, heading alignment and section rhythm. */
.ai-service--precast{--pc-copy:#53617a;--ai-type-label-size:18px}
.ai-service--precast .ai-section{padding:72px 0}
.ai-service--precast .ai-section-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px 56px;max-width:none;margin-bottom:38px;opacity:1;visibility:visible;transform:none}
.ai-service--precast .ai-section-heading .ai-eyebrow{grid-column:1/-1;margin:0}
.ai-service--precast .ai-section-heading h2{font-size:clamp(34px,3.1vw,46px);line-height:1.15;letter-spacing:-.025em;text-wrap:balance;max-width:27ch;margin:0}
.ai-service--precast .ai-section-heading>p:last-child:not(.ai-eyebrow){align-self:end;font-size:18px;line-height:var(--ai-type-copy-leading);margin:0;max-width:48ch}
.ai-service--precast .ai-section-heading h2:last-child{grid-column:1/-1}
.ai-service--precast h3,.ai-service--precast h4{text-wrap:balance;letter-spacing:-.015em}
.ai-service--precast p{font-size:18px;line-height:var(--ai-type-copy-leading)}
.ai-service--precast .pc-intro{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:56px}
.ai-service--precast .pc-intro .ai-section-heading{display:block;margin:0}
.ai-service--precast .pc-intro .ai-eyebrow{margin-bottom:20px}
.ai-service--precast .pc-intro h2{max-width:23ch}
.ai-service--precast .pc-prose p:last-child{margin-bottom:0}
.ai-service--precast .pc-scope{grid-template-columns:220px minmax(0,1fr);gap:40px;margin-top:36px;padding-top:28px}
.ai-service--precast .pc-scope ul{grid-auto-rows:1fr}
.ai-service--precast .pc-scope li{display:flex;align-items:center;min-height:64px;font-size:var(--ai-type-body-size);border-left:1px solid var(--ai-color-accent)}
.ai-service--precast .pc-proof-grid{gap:36px;padding-top:28px}
.ai-service--precast .pc-proof-grid strong{font-size:clamp(42px,4.1vw,62px);margin-bottom:16px}
.ai-service--precast .pc-proof-grid h3{min-height:2.5em;margin-bottom:14px;text-wrap:initial}
.ai-service--precast .pc-proof-grid p{font-size:var(--ai-type-body-size)}
.ai-service--precast .pc-information,.ai-service--precast .pc-quality{grid-template-columns:1fr;gap:32px;margin-top:44px}
.ai-service--precast .pc-information header,.ai-service--precast .pc-quality header{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px 56px}
.ai-service--precast .pc-information header .ai-eyebrow,.ai-service--precast .pc-quality header .ai-eyebrow{grid-column:1/-1;margin:0}
.ai-service--precast .pc-information header h3,.ai-service--precast .pc-quality header h3{font-size:32px;line-height:1.2;max-width:26ch;margin:0}
.ai-service--precast .pc-information header p:last-child,.ai-service--precast .pc-quality header p:last-child{font-size:18px;margin:0;align-self:end}
.ai-service--precast .pc-information dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 40px}
.ai-service--precast .pc-information dd,.ai-service--precast .pc-quality p{font-size:17px}
.ai-service--precast .pc-closing{font-size:17px;margin-bottom:0}
.ai-service--precast .pc-process{gap:0 48px}
.ai-service--precast .pc-process li{grid-template-columns:34px minmax(0,1fr);gap:18px;padding:30px 0}
.ai-service--precast .pc-process li>div{display:grid;grid-template-rows:auto 80px 1fr;align-content:start}
.ai-service--precast .pc-process h3{font-size:25px;line-height:1.28;margin:0 0 16px;text-wrap:initial}
.ai-service--precast .pc-process p:not(.ai-eyebrow){font-size:17px}
.ai-service--precast .pc-manufacturing{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:56px}
.ai-service--precast .pc-manufacturing h2{font-size:clamp(34px,3.1vw,46px);max-width:25ch;text-wrap:balance;line-height:1.15;margin:0 0 26px}
.ai-service--precast .pc-manufacturing-end{max-width:65ch;font-size:21px!important;line-height:1.6}
.ai-service--precast .pc-coordination{gap:32px}
.ai-service--precast .pc-coordination h3{min-height:2.5em;font-size:26px;text-wrap:initial}
.ai-service--precast .pc-coordination p:not(.ai-eyebrow){font-size:17px}
.ai-service--precast .pc-quality>div{gap:28px 40px}
.ai-service--precast .pc-quality article{border-left:0;border-top:1px solid var(--brief-line);padding:22px 0 0}
.ai-service--precast .pc-quality article p{margin-bottom:0}
.ai-service--precast .pc-team{gap:32px}
.ai-service--precast .pc-team h3{font-size:24px;text-wrap:initial}
.ai-service--precast .pc-team p{font-size:var(--ai-type-body-size)}
.ai-service--precast .pc-case h3{font-size:36px;line-height:1.16;max-width:22ch}
.ai-service--precast .pc-case article>p:not(.ai-eyebrow):not(.pc-case-tons){font-size:17px}
.ai-service--precast .pc-output-list h3{font-size:30px;max-width:25ch;line-height:1.2;margin-bottom:26px}
@media(max-width:1000px){.ai-service--precast .pc-intro,.ai-service--precast .pc-manufacturing{gap:32px}.ai-service--precast .pc-scope{grid-template-columns:1fr;gap:20px}.ai-service--precast .pc-information dl{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-service--precast .pc-proof-grid h3{min-height:0}}
@media(max-width:820px){.ai-service--precast .ai-section{padding:56px 0}.ai-service--precast .ai-section-heading,.ai-service--precast .pc-information header,.ai-service--precast .pc-quality header,.ai-service--precast .pc-intro,.ai-service--precast .pc-manufacturing{grid-template-columns:1fr;gap:22px}.ai-service--precast .ai-section-heading h2,.ai-service--precast .pc-intro h2{max-width:29ch}.ai-service--precast .pc-information header h3,.ai-service--precast .pc-quality header h3{font-size:30px}.ai-service--precast .pc-coordination h3{min-height:0}.ai-service--precast .pc-process{grid-template-columns:1fr}.ai-service--precast .pc-process li>div{display:block}}
@media(max-width:560px){.ai-service--precast .ai-section{padding:48px 0}.ai-service--precast .pc-information dl{grid-template-columns:1fr}.ai-service--precast .pc-proof-grid h3{min-height:0}.ai-service--precast .pc-information,.ai-service--precast .pc-quality{margin-top:32px}.ai-service--precast .pc-case h3{font-size:32px}.ai-service--precast .pc-process li{grid-template-columns:28px minmax(0,1fr);gap:12px}.ai-service--precast .pc-manufacturing-end{font-size:19px!important}}

.ai-service--precast .ai-reveal{opacity:1;visibility:visible;transform:none}

/* Keep the model viewer the same height as its adjacent element-information panel. */
.ai-service--precast .pc-model .brief-view{display:flex;flex-direction:column}
.ai-service--precast .pc-model .brief-view figure:not([hidden]){display:flex;flex-direction:column;flex:1}
.ai-service--precast .pc-model .brief-view figure>a{flex:1;min-height:380px;position:relative}
.ai-service--precast .pc-model .brief-view figure img{position:absolute;inset:0;height:100%;width:100%;object-fit:contain}
.ai-service--precast .pc-model .brief-view figcaption{flex-shrink:0}
.ai-service--precast .brief-view [role="tabpanel"]:not([hidden]){animation:none}
.ai-precast-lightbox .fancybox__slide .fancybox__content{background:var(--ai-color-navy)}
.ai-precast-lightbox .fancybox__slide.has-image .fancybox__content{background:var(--ai-color-navy)}
.ai-service--precast .brief-view--drawing figure>a{background:#e8ebf1}
.ai-service--precast .pc-output{grid-template-columns:minmax(0,1fr)}
.ai-service--precast .brief-view--drawing img{height:auto;aspect-ratio:2400/1716;padding:24px 24px 60px;mix-blend-mode:multiply}
@media(max-width:560px){
 .ai-service--precast .brief-view--drawing .brief-tabs button{flex-basis:50%}
 .ai-service--precast .brief-view--drawing img{height:auto;min-height:260px;padding:12px 12px 50px}
}
@media(max-width:560px){.ai-service--precast .pc-model .brief-view figure>a{min-height:270px}}

/* Curved steel: a technical workspace followed by linked project studies. */
.ai-service--curved .ai-section-heading{max-width:none;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px 64px;align-items:end}
.ai-service--curved .ai-section-heading>.ai-eyebrow{grid-column:1/-1;margin:0}
.ai-service--curved .ai-section-heading h2{max-width:24ch;margin:0;line-height:1.12;text-wrap:balance}
.ai-service--curved .ai-section-heading>p:last-child:not(.ai-eyebrow){margin:0;font-size:18px;line-height:1.65;max-width:48ch}
.ai-service--curved .ai-intro-grid .ai-section-heading{display:block}
.ai-service--curved .ai-intro-grid .ai-section-heading .ai-eyebrow{margin-bottom:20px}
.ai-service--curved .ai-intro-grid .ai-section-heading h2{margin-bottom:24px}
.ai-service--curved .curved-workspace{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);margin-top:52px}
.ai-service--curved .curved-workspace .brief-view{background:#eef0f5}
.ai-service--curved .curved-workspace .brief-tabs button{padding:22px 12px;font-size:var(--ai-type-control-size);background:transparent}
.ai-service--curved .curved-workspace .brief-tabs button[aria-selected=true]{background:var(--ai-color-white);border-bottom-color:var(--ai-color-ink)}
.ai-service--curved .curved-workspace #curved-model-view img{padding:30px;mix-blend-mode:multiply}
.ai-service--curved .curved-workspace .brief-view figcaption{padding:22px 28px;font-size:var(--ai-type-small-size);line-height:1.5}
.ai-service--curved .curved-workspace>article{padding:clamp(28px,3.2vw,48px)}
.ai-service--curved .curved-workspace>article h3{font-size:clamp(28px,2.6vw,38px);line-height:1.16;max-width:23ch;margin:18px 0 24px}
.ai-service--curved .curved-workspace li{position:relative;padding:22px 0 22px 38px;counter-increment:curved-step;line-height:1.6}
.ai-service--curved .curved-workspace ol{counter-reset:curved-step}
.ai-service--curved .curved-workspace li::before{content:'0' counter(curved-step);position:absolute;left:0;top:26px;color:var(--ai-color-white);font:600 12px/1 monospace}
.ai-service--curved .ai-curved-feature{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);box-shadow:none}
.ai-service--curved .ai-curved-feature__media{display:flex;background:#eef0f5;min-height:440px}
.ai-curved-project-image{display:block;overflow:hidden;position:relative;color:inherit}
.ai-service--curved .ai-curved-feature__media>a{display:flex;align-items:center;width:100%;padding:30px}
.ai-service--curved .ai-curved-feature__media img{height:auto;mix-blend-mode:multiply}
.ai-service--curved .ai-curved-feature__content{padding:clamp(28px,3vw,48px)}
.ai-service--curved .ai-curved-feature h3{font-size:clamp(30px,2.8vw,40px);line-height:1.15;margin:18px 0 24px}
.ai-service--curved .ai-curved-feature__content>p:first-child{font-size:var(--ai-type-body-size);text-transform:uppercase;letter-spacing:var(--ai-type-label-tracking)}
.ai-service--curved .ai-curved-project-grid{gap:24px;margin-top:24px;align-items:stretch}
.ai-service--curved .ai-curved-project-card{display:flex;flex-direction:column;background:var(--ai-color-surface);box-shadow:none}
.ai-service--curved .ai-curved-project-card>a{padding:24px;background:#eef0f5}
.ai-service--curved .ai-curved-project-card img{aspect-ratio:4/3;object-fit:contain;background:transparent;mix-blend-mode:multiply;transition:transform .35s}
.ai-curved-project-image:hover img{transform:scale(1.035)}
.ai-service--curved .ai-curved-project-card>div{display:flex;flex-direction:column;flex:1;padding:28px}
.ai-service--curved .ai-curved-project-card h3{font-size:27px;line-height:1.18;min-height:2.36em;margin:14px 0 18px}
.ai-service--curved .ai-curved-project-card p{font-size:var(--ai-type-body-size);line-height:1.65;margin-bottom:28px}
.ai-service--curved .ai-curved-project-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #cfd5e2;padding:19px 0 0;margin-top:auto;color:var(--ai-color-ink);font-size:15px;font-weight:600;text-decoration:none}
.ai-service--curved .ai-curved-project-cta span{font-size:22px;transition:transform .2s}
.ai-service--curved .ai-curved-project-cta:hover span{transform:translate(3px,-3px)}
.ai-service--curved .ai-curved-feature .ai-curved-project-cta{margin-top:28px;color:var(--ai-color-white);border-color:#ffffff40}
.ai-service--curved a:focus-visible{outline:3px solid #65738a;outline-offset:4px}
@media(max-width:820px){.ai-service--curved .ai-section-heading,.ai-service--curved .curved-workspace,.ai-service--curved .ai-curved-feature{grid-template-columns:1fr;gap:24px}.ai-service--curved .curved-workspace,.ai-service--curved .ai-curved-feature{gap:0}.ai-service--curved .ai-curved-feature__media{min-height:300px}.ai-service--curved .ai-curved-project-card h3{min-height:0}}
@media(max-width:560px){.ai-service--curved .ai-prose p{font-size:var(--ai-type-body-size)}.ai-service--curved .curved-workspace #curved-model-view img{padding:16px}.ai-service--curved .ai-curved-feature__media>a{padding:20px}.ai-service--curved .ai-curved-project-card>div{padding:24px}.ai-service--curved .ai-curved-project-card h3{font-size:26px}}
@media(prefers-reduced-motion:reduce){.ai-curved-project-image img,.ai-curved-project-cta span{transition:none}}

/* Precast: group the process and interfaces; keep supporting detail on demand. */
.ai-service--precast .pc-process-section .ai-section-heading,.ai-service--precast .pc-coordination-section .ai-section-heading{display:block;max-width:960px}
.ai-service--precast .pc-process-section .ai-section-heading .ai-eyebrow,.ai-service--precast .pc-coordination-section .ai-section-heading .ai-eyebrow{margin-bottom:20px}
.ai-service--precast .pc-process-section .ai-section-heading h2,.ai-service--precast .pc-coordination-section .ai-section-heading h2{max-width:31ch;margin-bottom:24px}
.ai-service--precast .pc-process-section .ai-section-heading>p:last-child,.ai-service--precast .pc-coordination-section .ai-section-heading>p:last-child{max-width:75ch}
.ai-service--precast .pc-process{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border:0}
.ai-service--precast .pc-process li{position:relative;display:flex;flex-direction:column;gap:22px;padding:28px;border:1px solid var(--brief-line);border-top:3px solid #302e83;background:var(--ai-color-white)}
.ai-service--precast .pc-process li>div{display:flex;flex-direction:column;flex:1;gap:0}
.ai-service--precast .pc-process .pc-number{color:#5144ad;font:600 var(--ai-type-label-size)/1 monospace}
.ai-service--precast .pc-process .ai-eyebrow{font-size:var(--ai-type-label-size);margin-bottom:20px}
.ai-service--precast .pc-process h3{font-size:25px;line-height:1.2;min-height:3.6em;margin:0 0 18px}
.ai-service--precast .pc-process p:not(.ai-eyebrow){font-size:16px;line-height:1.7}
.ai-service--precast .pc-coordination-section{background:#f3f4f8}
.ai-service--precast .pc-coordination{gap:20px}
.ai-service--precast .pc-coordination article{display:flex;flex-direction:column;padding:30px;border:1px solid var(--brief-line);border-top:3px solid #302e83;background:var(--ai-color-white)}
.ai-service--precast .pc-coordination h3{font-size:26px;line-height:1.2;min-height:2.4em;margin:8px 0 20px}
.ai-service--precast .pc-coordination article>p:not(.ai-eyebrow){flex:1;font-size:16px;line-height:var(--ai-type-copy-leading)}
.ai-service--precast .pc-coordination small{display:block;border-top:1px solid var(--brief-line);padding-top:18px;margin-top:12px;color:#37405d;font:500 var(--ai-type-small-size)/1.7 monospace}
.ai-service--precast .pc-disclosure{display:block;margin-top:30px;border:1px solid var(--brief-line);padding:0;background:var(--ai-color-white)}
.ai-service--precast .pc-disclosure summary{position:relative;display:block;padding:26px 70px 26px 28px;cursor:pointer;list-style:none}
.ai-service--precast .pc-disclosure summary::-webkit-details-marker{display:none}
.ai-service--precast .pc-disclosure summary .ai-eyebrow{display:block;margin-bottom:10px;font-size:var(--ai-type-label-size)}
.ai-service--precast .pc-disclosure summary>span:nth-child(2){display:block;color:var(--ai-color-ink);font:500 25px/1.25 var(--ai-font-display)}
.ai-service--precast .pc-disclosure summary i{position:absolute;top:38px;right:28px;font:400 28px/1 var(--ai-font-label);color:#302e83}
.ai-service--precast .pc-disclosure[open] summary i{transform:rotate(45deg)}
.ai-service--precast .pc-disclosure summary:focus-visible{outline:3px solid #5144ad;outline-offset:3px}
.ai-service--precast .pc-disclosure-body{padding:0 28px 28px}
.ai-service--precast{overflow-anchor:none}
.ai-service--precast details[data-pc-animated]>.pc-expansion{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:0fr;gap:0;transition:grid-template-rows .28s cubic-bezier(.2,.7,.2,1)}
.ai-service--precast details[data-pc-expanded="true"]>.pc-expansion{grid-template-rows:1fr}
.ai-service--precast details[data-pc-expanded="false"]>.pc-expansion{transition-duration:.22s}
.ai-service--precast .pc-expansion__content{min-height:0;overflow:hidden}
.ai-service--precast .pc-disclosure summary i{transition:transform .22s cubic-bezier(.2,.7,.2,1)}
.ai-service--precast details[data-pc-expanded="false"]>summary i{transform:rotate(0deg)}
@media(prefers-reduced-motion:reduce){.ai-service--precast details[data-pc-animated]>.pc-expansion,.ai-service--precast details[data-pc-animated]>summary i{transition:none}}
.ai-service--precast .pc-quality>.pc-disclosure-body{display:block}
.ai-service--precast .pc-disclosure-body header{display:block;margin-bottom:22px}
.ai-service--precast .pc-disclosure-body header p:last-child{font-size:var(--ai-type-body-size);max-width:85ch}
.ai-service--precast .pc-quality .pc-disclosure-body>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 36px}
.ai-service--precast .pc-quality .pc-disclosure-body article{padding-top:18px}
.ai-service--precast .pc-quality .pc-disclosure-body h4{font-size:22px;margin-bottom:12px}
.ai-service--precast .pc-closing{margin:24px 0 0}
.ai-service--precast .pc-team{gap:0;padding:0;border:1px solid #ffffff30}
.ai-service--precast .pc-team article{padding:28px;border-left:1px solid #ffffff30;background:#ffffff04}
.ai-service--precast .pc-team article:first-child{border-left:0;background:#ffffff09}
.ai-service--precast .pc-team h3{font-size:23px}
.ai-service--precast .pc-team p{font-size:var(--ai-type-body-size);margin:0}
@media(max-width:1000px){.ai-service--precast .pc-process{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-service--precast .pc-process h3{min-height:2.4em}.ai-service--precast .pc-team article:nth-child(3){border-left:0}.ai-service--precast .pc-team article:nth-child(n+3){border-top:1px solid #ffffff30}}
@media(max-width:820px){.ai-service--precast .pc-coordination h3{min-height:0}.ai-service--precast .pc-coordination article{padding:26px}}
@media(max-width:560px){.ai-service--precast .pc-process{grid-template-columns:1fr}.ai-service--precast .pc-process li{padding:24px}.ai-service--precast .pc-process h3{min-height:0}.ai-service--precast .pc-disclosure summary{padding:23px 55px 23px 22px}.ai-service--precast .pc-disclosure summary>span:nth-child(2){font-size:23px}.ai-service--precast .pc-disclosure summary i{right:20px}.ai-service--precast .pc-disclosure-body{padding:0 22px 24px}.ai-service--precast .pc-quality .pc-disclosure-body>div{grid-template-columns:1fr}.ai-service--precast .pc-team article{border-left:0}.ai-service--precast .pc-team article+article{border-top:1px solid #ffffff30}}

/* Section labels match the introductory body; hero facts use the shared service scale. */
.ai-service-hero--precast .ai-eyebrow{font-size:18px}
.ai-service--precast .ai-eyebrow,.ai-service--precast .pc-disclosure summary .ai-eyebrow{font-size:18px;line-height:1.5}
.ai-service--precast .pc-process li>div{grid-template-rows:minmax(54px,auto) 80px 1fr}
@media(max-width:820px){.ai-service--precast .pc-process li>div{display:block}}
