/* Four clear service choices; original case artwork and card frames are unchanged. */
.sw-core-services .sw-service-need {
  margin:0 0 10px;
  font-size:14px;
  line-height:1.45;
  font-weight:600;
  color:var(--sw-text-muted);
}
.sw-core-services .sw-capability h3 { max-width:24ch; }
.sw-hero .sw-hero-examples { max-width:52ch; font-size:17px; line-height:1.7; }
.sw-prototype-scene { display:flex; flex-direction:column; gap:15px; padding:30px 26px; }
.sw-prototype-heading { padding:0 4px 8px; }
.sw-prototype-heading .swsa-overline { color:#b7cbda; }
.sw-prototype-heading > strong { display:block; margin-top:10px; font-size:32px; line-height:1.15; color:#fff; }
.sw-prototype-step { display:flex; gap:13px; align-items:center; padding:17px 15px; border:1px solid #dae3e9; background:#fff; border-radius:12px; }
.sw-prototype-step > div { min-width:0; }
.sw-prototype-step strong { display:block; font-size:16px; line-height:1.35; }
.sw-prototype-step span:not(.swsa-icon) { display:block; margin-top:5px; color:#536779; font-size:13px; line-height:1.5; }
.sw-prototype-step > b { margin-left:auto; align-self:flex-start; color:#54728b; font-size:13px; font-weight:500; }
@media(max-width:600px) {
  .sw-prototype-scene { padding:24px 16px; }
  .sw-prototype-step { padding:15px 12px; gap:10px; }
  .sw-prototype-heading > strong { font-size:28px; }
  .sw-prototype-step > b { display:none; }
}

/* Compact, readable type for the TechFoundry Digital staging refinement. */
.tf-software {
  --sw-fs-display:clamp(34px,3.6vw,52px);
  --sw-fs-hero:clamp(36px,3.8vw,56px);
  --sw-fs-hero-sm:clamp(34px,5.5vw,44px);
  --sw-fs-h2:clamp(26px,2.4vw,34px);
  --sw-fs-h3:clamp(23px,2.1vw,30px);
  --sw-fs-feature:26px;
  --sw-fs-h4:21px;
  --sw-fs-h5:19px;
  --sw-fs-lead:clamp(17px,1.3vw,19px);
  --sw-fs-body:16px;
}
.tf-software .sw-main h1 { line-height:1.14; letter-spacing:-.035em; }
.tf-software .sw-main h2 { line-height:1.22; letter-spacing:-.025em; }
.tf-software .sw-main h3 { line-height:1.35; letter-spacing:-.015em; }
.tf-software .sw-main .sw-lead { max-width:58ch; line-height:1.7; }
.tf-software .sw-main .sw-detail-capabilities p,
.tf-software .sw-main .sw-faq details p { max-width:65ch; line-height:1.75; }
.tf-software .site-header .brand-name { font-size:20px; }
/* Corporate wordmark treatment with the Digital division name. */
.tf-software:has(.sw-hero,.sw-detail-hero) .sw-site-header:not(.is-scrolled):not(.is-open) .brand-name>span,
.tf-software .footer-brand .sw-brand-tech { color:#85bdff; }
.tf-software .footer-brand h3 { font-size:20px; line-height:1.25; letter-spacing:-.025em; }
.tf-software .site-header .brand-mark,
.tf-software .footer-brand h3 .brand-mark { flex:0 0 34px; width:34px; height:32px; }
.tf-software .site-header .brand-mark::before,
.tf-software .footer-brand h3 .brand-mark::before { width:166px; height:40px; mask-size:166px 40px; transform:scale(.8); transform-origin:left top; }
@media(max-width:600px) {
 .tf-software .site-header .brand-name,
 .tf-software .footer-brand h3 { font-size:18px; }
 .tf-software .site-header .brand-mark,
 .tf-software .footer-brand h3 .brand-mark { flex-basis:30px; width:30px; height:28px; }
 .tf-software .site-header .brand-mark::before,
 .tf-software .footer-brand h3 .brand-mark::before { transform:scale(.7); }
}

/* A concise service page: introduction, real demonstration and visible answers. */
.tf-software .sw-main .sw-service-simple { padding-block:36px 44px; }
.sw-simple-measure { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:center; gap:48px; max-width:1200px; margin-inline:auto; }
.sw-simple-copy { min-width:0; }
.tf-software .sw-main .sw-service-simple h1 { max-width:860px; font-size:clamp(34px,3.6vw,48px); }
.tf-software .sw-main .sw-service-simple .sw-lead { max-width:72ch; }
.sw-hero-stack { max-width:1200px; margin-inline:auto; }
.sw-hero-stack .sw-service-platforms { margin-top:36px; padding-top:24px; }
.sw-hero-stack .sw-service-platforms-label { text-align:center; }
.sw-hero-stack .sw-service-platforms ul { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:20px 48px; }
.sw-hero-stack .sw-service-platforms li { flex:0 0 auto; }
.sw-simple-content { max-width:900px; }
.sw-service-demo { padding-block:44px; scroll-margin-top:100px; }
.tf-software .sw-main .sw-service-demo h2,
.tf-software .sw-main .sw-service-questions>h2 { font-size:clamp(25px,2.5vw,30px); }
.sw-service-demo>p { max-width:72ch; font-size:16px; line-height:1.75; margin-bottom:24px; }
.sw-service-video { overflow:hidden; border-radius:16px; background:#071728; aspect-ratio:16/9; }
.sw-service-video iframe { display:block; width:100%; height:100%; border:0; }
/* Native service preview: one compact control, complete video frame. */
.sw-service-overview .sw-service-native-player { position:relative; }
.sw-service-overview .sw-service-native-player video { display:block; width:100%; height:100%; object-fit:contain; }
.sw-service-overview .sw-service-video-toggle { position:absolute; left:12px; bottom:12px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid rgba(255,255,255,.6); border-radius:50%; background:rgba(7,23,40,.88); color:#fff; cursor:pointer; appearance:none; line-height:1; box-shadow:0 2px 8px rgba(0,0,0,.18); }
.sw-service-overview .sw-service-video-toggle:hover { background:#17436b; }
.sw-service-overview .sw-service-video-toggle:focus-visible { outline:3px solid #9acbff; outline-offset:3px; }
.sw-service-overview .sw-service-video-toggle[hidden],
.sw-service-overview .sw-service-video-toggle svg[hidden] { display:none; }
.sw-demo-links { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:16px; font-size:14px; }
.sw-demo-links a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.sw-service-questions { padding-block:44px 56px; scroll-margin-top:100px; }
.sw-service-answer { border-top:1px solid var(--sw-line); padding-block:24px; }
.tf-software .sw-main .sw-service-answer h3 { font-size:20px; margin:0 0 12px; }
.sw-service-answer p { max-width:76ch; margin:0; font-size:16px; line-height:1.75; }
@media(max-width:600px) {
 .sw-hero-stack .sw-service-platforms ul { gap:18px 24px; }
 .sw-service-demo { padding-block:32px; }
 .sw-service-answer { padding-block:22px; }
 .tf-software .sw-main .sw-service-answer h3 { font-size:19px; }
}

/* The recorded IMS demo is part of the service hero, not a second section. */
.sw-hero-demo { min-width:0; padding:0; }
.tf-software .sw-main .sw-hero-demo h2 { margin:0 0 18px; font-size:21px; line-height:1.35; color:var(--sw-text-dark-strong); }
.sw-hero-demo .sw-demo-caption { margin:18px 0 0; font-size:14px; line-height:1.65; }
.sw-hero-demo .sw-demo-links { gap:12px 20px; font-size:13px; }
.sw-hero-demo .sw-demo-links a { color:var(--sw-accent-on-dark); }
@media(max-width:1000px) {
 .sw-simple-measure { grid-template-columns:1fr; max-width:760px; gap:36px; }
}

/* Keep the service types visible alongside the simpler demo and FAQ layout. */
.sw-service-offerings { max-width:1100px; padding-block:48px 12px; }
.tf-software .sw-main .sw-service-offerings>h2 { margin-bottom:24px; font-size:clamp(25px,2.5vw,30px); }
.sw-service-offering-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.sw-service-offering { padding:24px; border:1px solid var(--sw-line); border-radius:16px; background:#fff; }
.tf-software .sw-main .sw-service-offering h3,
.tf-software .sw-main .sw-service-interaction h3 { margin:0 0 12px; font-size:20px; }
.sw-service-offering p,
.sw-service-interaction p { margin:0; max-width:76ch; font-size:16px; line-height:1.75; }
.sw-service-interaction { margin-top:24px; padding:24px; border-left:3px solid var(--blue); }
@media(max-width:700px) {
 .sw-service-offerings { padding-top:32px; }
 .sw-service-offering-grid { grid-template-columns:1fr; gap:16px; }
 .sw-service-offering { padding:20px; }
 .sw-service-interaction { padding:20px; }
}

/* Related work shares the category article grid, including single-card sections. */
.sw-service-case { max-width:none; padding-block:36px 16px; }
.tf-software .sw-main .sw-service-case>h2 { margin:0 0 24px; font-size:clamp(25px,2.5vw,30px); }
.sw-service-case-card { display:flex; flex-direction:column; align-items:stretch; min-width:0; padding:0; overflow:hidden; background:#fff; border:0; border-radius:16px; box-shadow:0 3px 16px #07172805; }
.sw-service-case-art { display:block; position:relative; width:100%; aspect-ratio:4 / 3; flex:none; overflow:hidden; background:var(--sw-ink); }
.sw-service-case-art img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
/* Keep the IMS case-study page cover proportional and modest in scale. */
.sw-case-cover--compact { max-width:640px; }
.sw-case-cover--compact img { height:auto; }
.sw-service-case-copy { display:flex; flex-direction:column; flex:1; min-width:0; gap:16px; padding:24px; }
.sw-service-case-copy .eyebrow { margin:0; font-size:11px; }
.tf-software .sw-main .sw-service-case-copy h3 { margin:0; font-size:23px; line-height:1.25; }
.sw-service-case-copy p:not(.eyebrow) { margin:0; font-size:15px; line-height:1.55; }
.sw-service-case-copy .sw-service-case-problem { color:var(--sw-text-strong); font-weight:500; }
.sw-service-case-copy .sw-text-link { display:inline-block; margin-top:auto; padding-top:12px; font-size:12px; }
@media(max-width:809px) {
 .sw-service-case-copy { padding:20px; }
}
@media(max-width:600px) {
 .sw-service-case { padding-top:28px; }
}

/* Opt-in service overview: consistent bands without altering other service pages. */
.sw-service-overview .sw-service-band { padding-block:64px; color:var(--sw-text-strong); }
.sw-service-overview .sw-service-band--light { background:#fff; }
.sw-service-overview .sw-service-band--tint { background:var(--sw-surface-tint); }
.sw-service-overview .sw-service-band h2,
.sw-service-overview .sw-service-band h3 { color:var(--sw-text-strong); }
.sw-service-overview .sw-service-band p { color:var(--sw-text); }
.sw-service-overview .sw-service-band > .container { max-width:1100px; }
.sw-service-overview .sw-service-section-heading { max-width:76ch; margin-bottom:28px; }
.sw-service-overview .sw-service-section-heading h2 { margin:0 0 16px; }
.sw-service-overview .sw-service-section-heading p { margin:0; font-size:16px; line-height:1.75; }
.sw-service-overview .sw-simple-measure--text { grid-template-columns:1fr; }
.sw-service-overview .sw-service-visual { justify-self:center; }
.sw-service-overview .sw-service-offering { display:flex; flex-direction:column; padding:28px; }
.sw-service-overview .sw-service-offering-icon { display:grid; place-items:center; width:40px; height:40px; margin-bottom:20px; border:1px solid #d7e5f4; border-radius:12px; background:#eef5fd; color:#0662ba; }
.sw-service-overview .sw-service-offering p { max-width:58ch; }
.sw-service-overview .sw-service-offering .sw-service-offering-example { margin:20px 0 0; padding-top:16px; border-top:1px solid var(--sw-line); font-size:15px; line-height:1.65; }
.sw-service-overview .sw-service-offering-example strong { display:block; margin-bottom:6px; color:var(--sw-text-strong); font-size:13px; }
.sw-service-overview .sw-service-interaction { padding-block:12px; margin-top:28px; }
.sw-service-overview .sw-service-delivery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; padding:0; margin:0; list-style:none; }
.sw-service-overview .sw-service-delivery li { border-top:1px solid #cbdbe8; padding-top:20px; }
.sw-service-overview .sw-service-step-number { display:block; margin-bottom:16px; color:#0662ba; font-size:14px; font-weight:650; }
.sw-service-overview .sw-service-delivery h3 { margin:0 0 12px; font-size:20px; }
.sw-service-overview .sw-service-delivery p { margin:0; font-size:16px; line-height:1.75; }
.sw-service-overview .sw-service-platforms { margin:28px 0 0; padding:0; border:0; }
.sw-service-overview .sw-service-platforms-label { display:none; }
.sw-service-overview .sw-service-platforms ul { display:flex; flex-wrap:wrap; gap:24px 40px; }
.sw-service-overview .sw-service-platforms li { color:var(--sw-text-strong); font-size:16px; }
/* Provider rows reuse the same icon and label treatment as application technologies. */
.sw-service-overview .sw-cloud-provider-groups { display:grid; gap:28px; }
.sw-service-overview .sw-cloud-provider-group h3,
.sw-service-overview .sw-cloud-application-heading { margin:0 0 16px; font-size:18px; line-height:1.4; }
.sw-service-overview .sw-cloud-provider-groups .sw-service-platforms { margin:0; }
.sw-service-overview .sw-service-case { padding-block:0; }
.sw-service-overview .sw-service-band > .sw-service-case { max-width:none; }
.sw-service-overview .sw-faq { padding-block:0; gap:48px; }
.sw-service-overview .sw-faq > div > h2 { margin-top:12px; }
.sw-service-overview .sw-faq summary { line-height:1.55; color:var(--sw-text-strong); }
.sw-service-overview .sw-faq details[open] > summary > span { transform:rotate(45deg); }
.sw-service-overview .sw-faq .sw-faq-more > summary { justify-content:flex-start; gap:12px; color:#0662ba; font-size:15px; }
.sw-service-overview .sw-faq-more-list { padding-left:20px; border-left:2px solid #d7e5f4; }
.sw-service-overview .sw-service-next > .container { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.sw-service-overview .sw-service-next h2 { margin:0 0 12px; }
.sw-service-overview .sw-service-next p { max-width:62ch; margin:0; font-size:16px; line-height:1.75; }
.sw-service-overview .sw-service-next .button { flex-shrink:0; }
@media(max-width:809px) {
 .sw-service-overview .sw-service-band { padding-block:44px; }
 .sw-service-overview .sw-service-delivery { grid-template-columns:1fr; gap:28px; }
 .sw-service-overview .sw-faq { grid-template-columns:1fr; gap:24px; }
 .sw-service-overview .sw-service-next > .container { align-items:flex-start; flex-direction:column; gap:24px; }
}
@media(max-width:600px) {
 .sw-service-overview .sw-service-offering { padding:22px; }
 .sw-service-overview .sw-service-platforms ul { gap:20px 24px; }
 .sw-service-overview .sw-service-platforms li { font-size:15px; }
 .sw-service-overview .sw-faq-more-list { padding-left:12px; }
}

/* Compact subservices across both service templates; keep original type and artwork. */
/* Use the case-study listing's container and 3 / 2 / 1 card grid. */
.sw-service-overview #service-offerings > .container,
.sw-service-offerings.container { max-width:none; }
.tf-software .sw-main .sw-service-offering-grid,
.tf-software .sw-main .sw-detail-capabilities {
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:26px;
}
.tf-software .sw-main .sw-detail-body { row-gap:32px; }
.tf-software .sw-main .sw-detail-body > .sw-detail-capabilities { grid-column:1 / -1; margin-top:0; }
.tf-software .sw-main .sw-detail-body > .sw-deliverables { grid-column:2; grid-row:1; }
.tf-software .sw-main .sw-service-offering,
.tf-software .sw-main .sw-detail-capabilities > section {
 border:1px solid #c5d6e7;
 border-top:3px solid #3975b7;
 border-radius:14px;
 background:#fff;
 box-shadow:0 3px 12px rgb(19 51 82 / 5%);
}
.tf-software .sw-main .sw-service-offering { padding:22px; }
.sw-service-overview .sw-service-offering {
 display:grid;
 grid-template-columns:36px minmax(0,1fr);
 align-content:start;
 align-items:center;
 gap:12px;
}
.sw-service-overview .sw-service-offering-icon {
 width:36px;
 height:36px;
 margin:0;
 border-radius:10px;
}
.tf-software .sw-main .sw-service-offering h3 { margin:0; color:#153b61; }
.sw-service-overview .sw-service-offering > p { grid-column:1 / -1; }
.tf-software .sw-main .sw-service-offering p { line-height:1.65; }
.sw-service-overview .sw-service-offering .sw-service-offering-example { margin:0; padding-top:12px; }
.sw-service-overview .sw-service-offering-example strong { margin-bottom:4px; }
.tf-software .sw-main .sw-detail-capabilities { margin-top:28px; }
.tf-software .sw-main .sw-detail-capabilities > section { padding:14px; }
.tf-software .sw-main .sw-detail-capabilities h3 { margin:0 0 8px; font-size:18px; color:#153b61; }
.tf-software .sw-main .sw-detail-capabilities p { margin:0; line-height:1.6; }
@media(max-width:950px) {
 .tf-software .sw-main .sw-service-offering-grid,
 .tf-software .sw-main .sw-detail-capabilities { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:809px) {
 .tf-software .sw-main .sw-detail-body > .sw-deliverables { grid-column:auto; grid-row:auto; }
}
@media(max-width:650px) {
 .tf-software .sw-main .sw-service-offering-grid,
 .tf-software .sw-main .sw-detail-capabilities { grid-template-columns:1fr; }
 .tf-software .sw-main .sw-service-offering { padding:18px; }
}

/* Homepage section rhythm: full-width bands, original inner widths and cards. */
.sw-home .sw-home-band--light { background:#fff; }
.sw-home .sw-home-band--tint,
.sw-home > .sw-home-clients,
.sw-home > .sw-cta-band,
.sw-service-overview + .sw-cta-band { background:var(--sw-surface-tint); }
.sw-home .sw-more-work { padding-top:var(--sw-section-y); }
@media(max-width:809px) {
  .sw-home .sw-more-work { padding-top:var(--sw-section-y-sm); }
}

/* Keep the complete client row once, directly below the homepage hero. */
.sw-home-clients { padding-block:32px; }
.sw-home-clients .sw-engage-proof { margin-top:0; padding-top:0; border-top:0; }

/* Homepage engagement choices and concrete reasons to work with TechFoundry. */
.sw-home-reasons,
.sw-engagement-models { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.sw-home-reasons>div,
.sw-engagement-model { min-width:0; padding:28px; border:1px solid #dce5ee; border-radius:18px; background:#fff; box-shadow:0 6px 24px rgba(9,28,47,.045); }
.sw-home-reasons>div { display:flex; flex-direction:column; align-items:flex-start; }
.sw-home-card-icon { display:grid; place-items:center; flex:none; width:44px; height:44px; margin-bottom:20px; border:1px solid #d4e5f4; border-radius:12px; background:#eaf3fc; color:var(--blue); }
.sw-home-reasons h3,
.sw-engagement-model h3 { margin:0 0 16px; min-height:2.7em; font-size:21px; }
.sw-home-reasons p { margin:0 0 24px; font-size:16px; line-height:1.7; }
.sw-home-reasons .sw-text-link { width:100%; margin-top:auto; padding-top:20px; border-top:1px solid var(--sw-line); }
.sw-home-reasons>div:focus-within { border-color:var(--blue); }
.sw-engagement-model dl { margin:0; }
.sw-engagement-model dl>div { padding-block:20px; border-top:1px solid var(--sw-line); }
.sw-engagement-model dl>div:last-child { padding-bottom:0; }
.sw-engagement-model dt { margin:0 0 8px; font-size:14px; font-weight:600; color:#15588e; }
.sw-engagement-model dd { margin:0; font-size:16px; line-height:1.7; }
/* Align matching comparison rows while allowing copy to determine their height. */
@supports (grid-template-rows:subgrid) {
 @media(min-width:810px) {
  .sw-engagement-models { row-gap:0; }
  .sw-engagement-model { display:grid; grid-template-rows:subgrid; grid-row:span 4; row-gap:0; }
  .sw-engagement-model h3 { min-height:0; }
  .sw-engagement-model dl { display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:0; }
 }
}
@media(max-width:809px) {
 .sw-home-reasons,
 .sw-engagement-models { grid-template-columns:1fr; }
 .sw-home-reasons p { max-width:65ch; }
 .sw-home-reasons h3,
 .sw-engagement-model h3 { min-height:0; }
}
@media(max-width:600px) {
 .sw-home-reasons>div,
 .sw-engagement-model { padding:24px; }
}

/* An authentic product preview, with complete imagery and a readable HTML link. */
.sw-home-demo-preview { display:block; min-width:0; overflow:hidden; border:1px solid #385069; border-radius:18px; background:#071728; color:#fff; text-decoration:none; }
.sw-home-demo-preview img { display:block; width:100%; height:auto; }
.sw-home-demo-preview>span { display:flex; align-items:center; gap:10px; padding:18px 22px; font-size:15px; font-weight:600; }
.sw-home-demo-preview>span>span { margin-left:auto; }
.sw-home-demo-preview:hover>span { text-decoration:underline; text-underline-offset:4px; }
.sw-home-platform-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-bottom:28px; }
.sw-home-platform-group { min-width:0; padding-top:20px; border-top:1px solid var(--sw-line); }
.sw-home-platform-group h3 { margin:0 0 22px; font-size:18px; }
.sw-home-platform-group ul { display:grid; gap:22px; margin:0; padding:0; list-style:none; }
.sw-home-platform-group li { display:flex; align-items:center; gap:16px; min-width:0; font-size:16px; line-height:1.4; }
.sw-home-platform-group img { flex:none; width:38px; height:32px; object-fit:contain; }
.sw-home #home-faq { scroll-margin-top:96px; }
.sw-home #home-faq .sw-faq { padding-block:0; }
.sw-home #home-faq details[open] summary>span { transform:rotate(45deg); }
.tf-software .footer-brand .footer-contact { margin-top:18px; }
.tf-software .footer-brand .footer-contact a { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:650px) {
 .sw-home-platform-groups { grid-template-columns:1fr; gap:28px; }
 .sw-home-platform-group ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 12px; }
 .sw-home-platform-group li { gap:10px; font-size:15px; }
 .sw-home-platform-group img { width:30px; height:28px; }
}
