/* Active artwork: service-studies/v2. Landscape architectural ink on white.
   Source/version authority: content/topics.json + design/SERVICE_ART_DIRECTION.md.
   Do not restore square v1 sizing or cast-shadow cards. */
.vision-services { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr)); gap:48px; max-width:1100px; margin:0 auto; }
.vision-service { display:flex; flex-direction:column; align-items:flex-start; text-align:left; padding:0 0 28px; background:#fff; border-radius:0; box-shadow:none; }
.vision-service .service-art { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; margin:0 0 24px; flex-shrink:0; }
.vision-service h3 { min-height:0; line-height:1.3; margin-bottom:14px; }
.vision-service>a:last-child { margin-top:auto!important; padding-top:20px; }
.company-art { display:block; width:100%; max-width:560px; height:auto; aspect-ratio:3/2; object-fit:contain; margin:0 auto 24px; flex-shrink:0; box-shadow:none; border-radius:0; }
.service-card>.company-art { margin:0 0 24px; }
.image-content.company-talk-art { background:#fff; padding:0; text-align:left; }
.company-talk-art .company-art { width:100%; height:auto; max-width:100%; box-shadow:none; border-radius:0; margin:0 auto 24px; }
.company-talk-art h4 { font-size:22px; margin:0 0 8px; color:#314352; }
.image-content .cta-box .company-art { width:100%; max-width:480px; height:auto; box-shadow:none; border-radius:0; }
.hero-ai-eng.illustrated-engineering { background:#fff; }
.hero-ai-eng.illustrated-engineering .container { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); align-items:center; gap:32px; }
.illustrated-engineering .engineering-hero-art { grid-column:2; grid-row:1; width:100%; height:auto; max-width:640px; justify-self:center; }
.hero-ai-eng.illustrated-engineering .hero-content { grid-column:1; grid-row:1; max-width:none; padding-right:0; }
.service-offerings, .vision-services-four { grid-template-columns:repeat(2,minmax(0,1fr)); gap:56px 48px; }
.service-offerings .service-card { padding:0 0 32px; border:0; border-radius:0; background:#fff; box-shadow:none; transition:none; }
.service-offerings .service-card:hover { transform:none; box-shadow:none; }
.service-offerings .company-art { width:100%; max-width:none; height:auto; margin:0 0 24px; }
.service-offerings .service-card h3, .service-offerings .service-card>p, .service-offerings .service-features, .service-offerings .service-card-footer { margin-left:20px; margin-right:20px; }
.decision-budget-service { padding:48px 0; background:#fff; border-top:1px solid #e1e7eb; }
.decision-budget-service-inner { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr); gap:12px 40px; align-items:center; }
.decision-budget-service img { grid-row:1 / 3; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.decision-budget-service h2 { font-size:28px; line-height:1.3; color:#314352; margin:0 0 12px; }
.decision-budget-service p { max-width:68ch; color:#444; font-size:16px; margin:0; }
.decision-budget-service .btn { grid-column:2; justify-self:start; background:#bd3012; }
@media(max-width:768px) {
 .hero-ai-eng.illustrated-engineering .container { display:flex; flex-direction:column; gap:24px; }
 .illustrated-engineering .engineering-hero-art { width:100%; max-width:560px; margin:0 auto; }
 .service-offerings, .vision-services-four, .vision-services { grid-template-columns:1fr; gap:36px; }
 .decision-budget-service-inner { grid-template-columns:1fr; gap:20px; }
 .decision-budget-service img { grid-row:auto; max-width:560px; }
 .decision-budget-service .btn { grid-column:1; }
}

/* Site-wide service placement: architectural artwork with a complementary animated homepage orbit. */
.hero.architectural-home-hero { background:#fff; color:#314352; padding:72px 0; text-align:left; }
.architectural-home-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:40px; align-items:center; }
.hero .architectural-home-copy h1 { color:#2c3e50; font-size:clamp(38px,4.5vw,60px); line-height:1.12; margin:0 0 24px; }
.hero .architectural-home-copy p { color:#495057; font-size:19px; line-height:1.7; margin:0 0 28px; }
.architectural-home-actions { display:flex; flex-wrap:wrap; gap:12px; }
.architectural-home-actions .btn { margin:0; }
.architectural-home-art { margin:0; }
.architectural-home-art img, .architectural-production-art img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; border-radius:0; box-shadow:none; }
.about-image.architectural-production-art { margin:0; background:#fff; box-shadow:none; border-radius:0; }
.architectural-production-art figcaption { color:#526677; font-size:13px; text-align:center; margin-top:14px; }
.hero-ai-eng.illustrated-platform { background:#fff; }
.hero-ai-eng.illustrated-platform .container { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:36px; align-items:center; }
.illustrated-platform .platform-hero-art { grid-column:2; grid-row:1; display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.hero-ai-eng.illustrated-platform .hero-content { grid-column:1; grid-row:1; max-width:none; padding-right:0; }
.architectural-platform-note { background:#fff; }
.platform-principles { border-left:2px solid #e73c17; padding-left:30px; }
.platform-principles h3 { color:#314352; font-size:22px; margin-bottom:14px; }
.hero-screenshot.architectural-screenshot, .hero-screenshot.architectural-screenshot img { background:#fff; box-shadow:none; border:0; border-radius:0; }
.hero-screenshot.architectural-screenshot img { width:100%; height:auto; object-fit:contain; }
@media(max-width:900px) {
 .architectural-home-layout, .hero-ai-eng.illustrated-platform .container { grid-template-columns:1fr; gap:28px; }
 .illustrated-platform .platform-hero-art { grid-column:1; grid-row:2; max-width:640px; justify-self:center; }
 .hero-ai-eng.illustrated-platform .hero-content { grid-column:1; grid-row:1; }
 .architectural-home-art { max-width:640px; margin:0 auto; }
 .hero.architectural-home-hero { padding:48px 0; }
}

/* The homepage keeps its original interactive orbit, restyled as a paper study. */
.architectural-orbit { width:100%; min-width:0; }
.architectural-orbit-stage { position:relative; isolation:isolate; aspect-ratio:3/2; }
.architectural-orbit-stage .orbit-construction { position:absolute; inset:0; width:100%; height:100%; opacity:.65; pointer-events:none; }
.architectural-orbit model-viewer { position:absolute; inset:0; width:100%; height:100%; background:transparent; --poster-color:transparent; }
.orbit-paper { position:absolute; inset:0; pointer-events:none; opacity:.12; background-image:url('orbit-paper.svg'); mask-image:radial-gradient(ellipse at center,#000 25%,transparent 72%); mix-blend-mode:multiply; }
.architectural-orbit figcaption { display:flex; justify-content:flex-end; align-items:center; gap:16px; padding:12px 24px 0; color:#627381; font-size:11px; letter-spacing:.07em; }
.architectural-orbit button { font:inherit; color:#526677; border:0; border-bottom:1px solid #aeb8bf; padding:5px 0; background:transparent; cursor:pointer; }
.architectural-orbit button:focus-visible { outline:2px solid #e73c17; outline-offset:5px; }

/* A single landscape service study; stacked grid layers reserve the tallest slide. */
.service-carousel-controls:not([hidden]) { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; margin-bottom:28px; border-bottom:1px solid #e1e7eb; padding-bottom:18px; }
.service-carousel-picker, .service-carousel-navigation { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.service-carousel-controls button { font:inherit; font-size:13px; color:#526677; background:#fff; border:1px solid transparent; border-radius:0; padding:9px 12px; cursor:pointer; }
.service-carousel-picker button[aria-pressed="true"] { color:#bd3012; border-bottom-color:#e73c17; }
.service-carousel-controls button:hover { background:#f5f7f8; }
.service-carousel-controls button:focus-visible { outline:2px solid #e73c17; outline-offset:3px; }
.service-carousel-navigation button { border-color:#dce2e6; }
.service-carousel-count { font-size:12px; color:#627381; min-width:38px; text-align:center; }
.service-carousel-ready .service-offerings { display:grid; grid-template-columns:minmax(0,1fr); gap:0; }
.service-carousel-ready .service-card { grid-area:1/1; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:40px; align-items:center; padding:0; visibility:hidden; opacity:0; pointer-events:none; transition:opacity .35s ease; }
.service-carousel-ready .service-card.is-active { visibility:visible; opacity:1; pointer-events:auto; }
.service-carousel-ready .service-card .company-art { margin:0; }
.service-carousel-ready .service-slide-copy { text-align:left; padding:20px 0; }
.service-carousel-ready .service-slide-copy h3, .service-carousel-ready .service-slide-copy>p, .service-carousel-ready .service-features, .service-carousel-ready .service-card-footer { margin-left:0; margin-right:0; }
.service-carousel-ready .service-slide-copy h3 { margin-bottom:16px; }
@media(max-width:768px) {
 .service-carousel-ready .service-card { grid-template-columns:minmax(0,1fr); gap:0; align-content:start; }
 .service-carousel-ready .service-card .company-art { max-width:480px; justify-self:center; }
 .service-carousel-picker { gap:4px; }
 .service-carousel-controls button { padding:8px; font-size:12px; }
 .service-carousel-controls:not([hidden]) { gap:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .service-carousel-ready .service-card { transition:none; }
}

.services.service-carousel-ready { background:#fff; padding:72px 0; }
.service-carousel-ready .section-title { margin-bottom:36px; }

.service-carousel-progress { display:none; }
.service-carousel-ready .service-carousel-controls { margin-bottom:0; border-bottom:0; }
.service-carousel-ready .service-carousel-progress { display:block; width:100%; height:24px; margin:0 0 16px; padding:10px 0 11px; border:0; border-radius:0; background:linear-gradient(#e1e7eb,#e1e7eb) center / 100% 3px no-repeat; cursor:pointer; }
.service-carousel-progress:focus-visible { outline:2px solid #e73c17; outline-offset:3px; }
.service-carousel-progress span { display:block; width:100%; height:100%; background:#e73c17; transform:scaleX(0); transform-origin:left; }
.service-carousel-status { color:#627381; font-size:11px; margin:0 6px; }
@media(max-width:768px) {
 /* Mobile follows the visible slide's height instead of reserving the longest one. */
 .service-carousel-ready .service-card:not(.is-active) { display:none; }
}

/* Compact companions to the larger service studies. */
.protocol-studies { background:#fff; }
.protocol-studies .protocol-art { display:block; width:180px; height:120px; object-fit:contain; margin:0 auto 20px; border:0; border-radius:0; box-shadow:none; }
