/* Swyft site-wide system: a richer blue/cyan identity, real media, one theme. */
.swyft-studio {
  --s2-link: #0066b8;
  --swyft-blue: #0066bd;
  --swyft-blue-dark: #004c94;
  --swyft-text: #14212b;
  --swyft-text-secondary: #456175;
  --swyft-border: #d0e1ee;
  --swyft-bg-light: #eef7ff;
}
.swyft-studio .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.swyft-studio .screen-reader-text:focus { clip: auto; width: auto; height: auto; padding: 12px; top: 8px; left: 8px; z-index: 1000; background: white; color: #14212b; }
.swyft-studio .s2-button--dark { background: #0067bd; border-color: #0067bd; color: #fff; }
.swyft-studio .s2-button--dark:hover { background: #004e92; border-color: #004e92; box-shadow: 0 6px 20px #0067bd20; }
.s2-header { border-bottom-color: #cddfed; background: #fffffff5; }
.s2-header::before { content: ''; height: 3px; position: absolute; inset: 0 0 auto; background: linear-gradient(90deg, #008aff, #52ddf6 60%, #f1d0a0); }
.s2-home-hero { background: radial-gradient(ellipse at 8% 22%, #e0f8ff 0, transparent 45%), radial-gradient(ellipse at 93% 8%, #e2efff 0, transparent 42%), linear-gradient(#f7fbff, #fff 82%); }
.s2-home-hero h1 > span { color: #006cc1; }
.s2-home-hero .s2-hero-eyebrow { color: #276489; }
.s2-proof-strip { border-color: #cce1f0; background: #f5fbff; }
.s2-proof-grid strong { color: #075c9d; }
.s2-expertise { background: #eef7ff; border-color: #d9eafa; }
.s2-comparison-swyft { background: linear-gradient(140deg, #0761b7, #063a6b); border-color: #075292; }
.s2-comparison-swyft li { border-color: #5289b5; color: #f2f8ff; }
.s2-comparison-swyft .s2-mini-label, .s2-comparison-signoff { color: #d0f3ff; }
.s2-comparison-signoff { border-color: #548db4; }
.s2-night-feature, .s2-night-section { background: linear-gradient(135deg, #092039, #073a5b); }
.s2-night-compact { background: #0b2943; border-color: #3a617b; }
.s2-ai-hero { background: radial-gradient(ellipse at 85% 15%, #124c72 0, transparent 48%), linear-gradient(145deg, #081c30, #0b2d47); }
.s2-ai-hero h1 > span { color: #72ddf5; }
.s2-ai-hero .s2-hero-eyebrow { color: #c0e1ee; }
.s2-ai-film > .s2-ai-night-image { display: block; width: 100%; height: auto; margin-top: 44px; border: 1px solid #2d536e; border-radius: 14px; }
.s2-workspace--ai { color: #f4faff; }
.s2-ai-demo-section { background: #f0f8ff; }
.s2-history-section, .s2-why-ai { background: #eef6fd; }
.s2-history-copy h2 > span { color: #0067b8; }
.s2-audit-card { background: linear-gradient(115deg, #e7f3ff, #f3fbff); border-color: #bddbf2; }
.s2-audit-offer > strong { color: #0062af; }
.s2-closing-cta, .s2-aside-cta, .s2-compact-cta-inner { background: linear-gradient(125deg, #0758a6, #063760); }

/* Generated assets have explicit illustration captions; genuine profiles stay labelled. */
.s2-generated-image { position: relative; margin: 0; overflow: hidden; border-radius: 10px; background: #e9f2f8; }
.s2-generated-image img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.s2-generated-image figcaption { position: absolute; bottom: 9px; right: 10px; background: #102b40c9; color: #fff; border-radius: 4px; padding: 3px 7px; font-size: 9px; line-height: 1.5; letter-spacing: .02em; }
.s2-service-card > .s2-generated-image { margin: -29px -29px 26px; border-radius: 9px 9px 0 0; }
.s2-service-card > .s2-generated-image img { aspect-ratio: 16 / 9; height: auto; }
.s2-service-card-top { margin-bottom: 24px; }
.s2-service-card .s2-service-symbol { display: none; }
.s2-service-card .s2-mini-label { color: #176294; }
.s2-featured-case .s2-generated-image--case { border-radius: 9px; min-height: 330px; }
.s2-featured-case .s2-generated-image--case img { min-height: 330px; height: 100%; object-fit: cover; }
.s2-case-pair article > .s2-generated-image { margin-bottom: 28px; }
.s2-case-pair article > .s2-generated-image img { aspect-ratio: 2.2 / 1; }
.s2-editorial-image { position: relative; margin: 0; overflow: hidden; border-radius: 12px; background: #ddecf6; }
.s2-editorial-image img { display: block; width: 100%; height: 100%; min-height: 310px; max-height: 450px; object-fit: cover; }
.s2-editorial-image figcaption { position: absolute; left: 0; right: 0; bottom: 0; color: #fff; background: linear-gradient(transparent,#092239d9); padding: 35px 20px 15px; font-size: 12px; }
.s2-editorial-image--portrait img { object-position: 50% 36%; }

/* A real film, not a simulated play control. Native controls remain the fallback. */
.s2-film { margin-top: 44px; text-align: left; }
.s2-film-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 13px; }
.s2-film-heading > span:last-child { font-size: 11px; color: #3e6782; }
.s2-film-heading > span:last-child > span { margin-left: 12px; }
.s2-film-player { position: relative; overflow: hidden; border: 1px solid #c0dcf1; border-radius: 14px; background: #092139; box-shadow: 0 22px 65px -38px #0b427477; }
.s2-film video { width: 100%; height: auto; aspect-ratio: 16 / 9; max-height: 80vh; border-radius: 0; object-fit: contain; background: #071521; }
.s2-film-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 17px 23px !important; min-width: 146px; min-height: 126px; background: #073d6dec !important; color: #fff !important; border: 1px solid #b2eaff !important; border-radius: 13px !important; box-shadow: 0 8px 30px #03152940; font-size: 12px !important; backdrop-filter: blur(6px); }
.s2-film-play > span:first-child { display: grid; place-items: center; width: 47px; height: 47px; border-radius: 50%; border: 1px solid #b6eafd; font-size: 21px; line-height: 1; padding-left: 3px; }
.s2-film-play:hover { background: #005daaee !important; }
.s2-film figcaption { font-size: 11px; line-height: 1.8; color: #4f6a7d; margin-top: 14px; }
.s2-film-feedback:empty { display: none; }
.s2-film-feedback { color: #9a312d !important; font-size: 12px; padding: 10px 0; }
.s2-film-transcript { margin-top: 14px; padding-top: 12px; border-top: 1px solid #cfe0ec; }
.s2-film-transcript summary { font-size: 11px; color: #1c5c88; display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 35px; }
.s2-film-transcript summary > span { font-size: 18px; }
.s2-film-transcript > div { max-width: 850px; padding: 15px 0 5px; }
.s2-film-transcript p { font-size: 13px; margin-bottom: 16px; line-height: 1.85; }
.s2-ai-hero .s2-film-heading .s2-mini-label, .s2-ai-hero .s2-film-heading > span:last-child { color: #b3d9ee; }
.s2-ai-hero .s2-film-transcript { border-color: #396883; }
.s2-ai-hero .s2-film-transcript summary { color: #b9e4fb; }
.s2-ai-hero .s2-film-transcript p, .s2-ai-hero .s2-film figcaption { color: #b8d1e0; }

/* Unified page headers replace all of the legacy GeneratePress page treatments. */
.s2-page-hero { background: radial-gradient(ellipse at 90% 15%, #daf3ff 0, transparent 48%), linear-gradient(120deg, #f5fbff, #e9f2ff); border-bottom: 1px solid #d2e5f3; padding: 27px 0 61px; }
.s2-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 35px; color: #4d6c84; font-size: 10px; line-height: 1.7; }
.s2-breadcrumbs a { color: #176397; min-height: 28px; display: inline-flex; align-items: center; }
.s2-breadcrumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.s2-breadcrumbs > span[aria-current] { max-width: 70ch; }
.s2-page-hero-grid { display: grid; grid-template-columns: 1.07fr .93fr; gap: 64px; align-items: center; }
.s2-page-hero-copy { min-width: 0; }
.s2-page-hero .s2-eyebrow { display: flex; align-items: center; gap: 9px; color: #27668f; margin-bottom: 21px; }
.s2-page-hero h1 { font-size: clamp(39px, 3.85vw, 57px); line-height: 1.13; letter-spacing: -.05em; color: #123a59; overflow-wrap: break-word; }
.swyft-studio .s2-page-intro { margin-top: 23px; font-size: 16px; line-height: 1.9; max-width: 690px; color: #405f74; }
.s2-page-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px 22px; margin-top: 25px; }
.s2-page-hero-actions .s2-button { font-size: 12px; }
.s2-page-hero-actions .s2-text-link { font-size: 12px; }
.s2-page-visual { min-width: 0; }
.s2-page-visual > figure { border: 1px solid #c5dce9; box-shadow: 0 19px 50px -33px #0d416074; }
.s2-page-visual .s2-generated-image img { aspect-ratio: 1.45 / 1; object-fit: cover; min-height: 330px; }
.s2-page-hero--text .s2-page-hero-grid { grid-template-columns: 1fr; max-width: 980px; }
.s2-page-hero--legal { padding-bottom: 48px; }
.s2-page-hero--legal h1 { font-size: 54px; }
.s2-article-date { font-size: 11px; margin-top: 19px !important; color: #4d6e86 !important; }

/* Editorial content remains native WordPress, with readable, bounded typography. */
.s2-editorial-layout { padding-block: 61px 68px; max-width: 900px; }
.s2-editorial-layout--aside { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 76px; max-width: 1280px; }
.s2-editorial-article, .s2-article-body { min-width: 0; }
.s2-article-body { position: relative; font-size: 17px; line-height: 1.9; color: #3a5366; overflow-wrap: break-word; }
.s2-article-body > :first-child { margin-top: 0; }
.s2-article-body p { font-size: inherit; line-height: inherit; color: #3c5568; margin: 0 0 23px; }
.s2-article-body h2 { font-size: 33px; line-height: 1.25; letter-spacing: -.035em; margin: 45px 0 19px; color: #163d5b; }
.s2-article-body h3 { font-size: 24px; line-height: 1.35; margin: 31px 0 15px; letter-spacing: -.025em; color: #204861; }
.s2-article-body h4 { font-size: 19px; line-height: 1.4; margin: 28px 0 13px; letter-spacing: -.02em; color: #234b66; }
.s2-article-body h5, .s2-article-body h6 { font-size: 17px; margin: 24px 0 12px; }
.s2-article-body strong { font-weight: 600; color: #24465e; }
.s2-article-body h2 strong, .s2-article-body h3 strong { font-weight: 600; }
.s2-article-body a { color: #0065b0; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.s2-article-body a:hover { color: #003f79; }
.s2-article-body .has-vivid-cyan-blue-color, .s2-article-body .has-vivid-cyan-blue-color a { color: #0065b0 !important; }
.s2-article-body ul { list-style: disc; padding-left: 25px; margin: 17px 0 27px; }
.s2-article-body ol { list-style: decimal; padding-left: 27px; margin: 17px 0 27px; }
.s2-article-body li { margin-bottom: 11px; padding-left: 3px; }
.s2-article-body li::marker { color: #0874bd; }
.s2-article-body li ul, .s2-article-body li ol { margin: 11px 0 16px; }
.s2-article-body blockquote { margin: 32px 0; padding: 25px 28px; border: 1px solid #cfe2f1; border-left: 3px solid #008aff; border-radius: 0 9px 9px 0; background: #f0f8ff; }
.s2-article-body blockquote p:last-child { margin-bottom: 0; }
.s2-article-body cite { font-size: 13px; color: #42657e; font-style: normal; }
.s2-article-body hr { border: 0; height: 1px; background: #d3e3ee; margin: 36px 0; }
.s2-article-body figure { max-width: 100%; margin: 28px 0; }
.s2-article-body figure img { max-width: 100%; height: auto; border-radius: 9px; }
.s2-article-body figcaption { font-size: 12px; line-height: 1.7; color: #527087; margin-top: 11px; }
.s2-article-body iframe, .s2-article-body video { max-width: 100%; border-radius: 9px; }
.s2-article-body .wp-block-embed { width: 100%; }
.s2-article-body .wp-block-embed__wrapper iframe { width: 100%; }
.s2-article-body .wp-block-column { min-width: 0; }
.s2-article-body .wp-block-table, .s2-table-scroll { max-width: 100%; overflow: auto; margin: 28px 0; scrollbar-width: thin; scrollbar-color: #8eb6d3 #edf5fa; }
.s2-article-body table { display: block; max-width: 100%; overflow-x: auto; width: 100%; border-collapse: collapse; border-spacing: 0; font-size: 14px; line-height: 1.7; border: 1px solid #d1e2ed; }
.s2-table-scroll > table { display: table; overflow: visible; }
.s2-article-body th, .s2-article-body td { text-align: left; padding: 14px 17px; border: 1px solid #d7e5ee; vertical-align: top; min-width: 120px; }
.s2-article-body th { background: #eaf5fd; color: #244e6d; font-weight: 600; }
.s2-article-body tbody tr:nth-child(even) { background: #f8fbfd; }
.s2-article-body pre { max-width: 100%; overflow-x: auto; padding: 22px; border-radius: 8px; background: #112a3c; color: #d6eaf7; font-size: 13px; line-height: 1.8; }
.s2-article-body code { font-size: .88em; }
.s2-article-body .s2-legacy-media-note { padding: 13px 17px; border-left: 2px solid #008aff; background: #f0f7fc; border-radius: 0 6px 6px 0; font-size: 13px; line-height: 1.8; color: #43657e; }
.s2-article-body details { margin: 20px 0; padding: 17px 20px; border: 1px solid #cfe2ef; border-radius: 8px; background: #f6fbff; }
.s2-article-body details summary { min-height: 38px; color: #1f577d; font-weight: 550; }
.s2-article-body details p { margin-top: 15px; }
.s2-article-body .wp-block-button__link, .s2-article-body .swyft-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 21px; border: 1px solid #0066b8; border-radius: 7px; background: #0066b8; color: #fff; font-size: 14px; text-decoration: none; }
.s2-article-body .wp-block-button__link:hover, .s2-article-body .swyft-btn:hover { background: #004b90; color: #fff; }
.s2-article-body .alignwide, .s2-article-body .alignfull { width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; }
.s2-article-body .wp-block-columns { gap: 25px; }
.s2-article-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-top: 43px; padding-top: 24px; border-top: 1px solid #d3e3ee; }
.s2-article-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.s2-article-tags a { font-size: 10px; padding: 6px 10px; border: 1px solid #c7dfee; background: #eff7fd; border-radius: 4px; color: #39627e; }
.s2-page-links { display: flex; align-items: center; gap: 10px; margin-top: 28px; }
.s2-page-links a, .s2-page-links > span { min-width: 40px; min-height: 40px; padding: 6px 12px; border: 1px solid #c9deed; }
.s2-page-links > span { background: #0067bd; color: white; }
.s2-aside-inner { position: sticky; top: 111px; }
.s2-article-toc { margin-bottom: 29px; border: 1px solid #d4e4f0; border-radius: 8px; padding: 22px; background: #f6fbff; }
.s2-article-toc ul { display: grid; gap: 0; margin-top: 14px; max-height: 300px; overflow: auto; scrollbar-width: thin; }
.s2-article-toc a { display: block; font-size: 12px; line-height: 1.7; padding: 8px 0; color: #315d7b; }
.s2-article-toc a:hover { color: #0066b8; text-decoration: underline; text-underline-offset: 3px; }
.s2-related-links { margin-bottom: 27px; }
.s2-related-links > .s2-mini-label { display: block; margin-bottom: 11px; }
.s2-related-links > a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 48px; padding: 11px 0; border-bottom: 1px solid #d5e5ef; font-size: 12px; line-height: 1.65; color: #345e7a; }
.s2-related-links > a > span { font-size: 17px; color: #1a7abe; flex-shrink: 0; }
.s2-related-links > a:hover { color: #0066b8; }
.s2-aside-cta { padding: 26px 22px; color: #fff; border-radius: 9px; }
.s2-aside-cta .s2-mini-label { color: #bbdef1; font-size: 8px; }
.s2-aside-cta h2 { font-size: 26px; line-height: 1.3; color: #fff; margin-top: 20px; }
.s2-aside-cta p { font-size: 12px; line-height: 1.9; color: #d0e4f0; margin-top: 17px; }
.s2-aside-cta .s2-button { margin-top: 23px; width: 100%; font-size: 12px; }

/* Informational service/tool/industry cards and the editorial Insights archive. */
.s2-child-section { padding: 65px 0 80px; background: #f0f8ff; border-block: 1px solid #d9e9f5; }
.s2-content-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 26px; }
.s2-content-card { min-width: 0; overflow: hidden; background: white; border: 1px solid #d4e4ef; border-radius: 11px; display: flex; flex-direction: column; transition: border-color .18s, box-shadow .18s; }
.s2-content-card:hover { border-color: #83b9dd; box-shadow: 0 9px 30px #1558890b; }
.s2-content-card-image { display: block; background: #eaf4fc; }
.s2-content-card-image:empty { display: none; }
.s2-content-card-image figure { border-radius: 0; margin: 0; }
.s2-content-card-image img { width: 100%; height: 220px; min-height: 0; max-height: none; object-fit: cover; }
.s2-content-card-image figcaption { font-size: 8px; }
.s2-content-card-copy { display: flex; flex-direction: column; flex: 1; padding: 27px; }
.s2-content-card-copy > .s2-mini-label { font-size: 8px; color: #387194; }
.s2-content-card h2, .s2-content-card h3 { font-size: 25px; line-height: 1.3; letter-spacing: -.035em; margin: 18px 0 16px; }
.s2-content-card h2 a, .s2-content-card h3 a { color: #193d56; }
.s2-content-card h2 a:hover, .s2-content-card h3 a:hover { color: #0067bd; }
.s2-content-card p { font-size: 13px; line-height: 1.85; margin-bottom: 20px; }
.s2-content-card .s2-text-link { margin-top: auto; justify-content: space-between; gap: 12px; font-size: 12px; border-top: 1px solid #e1edf5; padding-top: 14px; }
.s2-listing-hero { padding-bottom: 57px; }
.s2-listing-hero h1 { max-width: 870px; font-size: 61px; }
.s2-listing-hero .s2-page-intro { max-width: 700px; }
.s2-site-search { display: flex; max-width: 620px; gap: 0; margin: 27px 0 0; border: 1px solid #adcfe7; border-radius: 8px; background: #fff; overflow: hidden; }
.s2-site-search input { width: 100%; min-width: 0; border: 0; padding: 14px 18px; font-size: 14px; background: #fff; color: #1c3d55; min-height: 53px; outline-offset: -3px; border-radius: 0; }
.s2-site-search input::placeholder { color: #5a7384; opacity: 1; }
.s2-site-search button { background: #0067bd; color: white; font-size: 12px; padding: 12px 23px; min-height: 53px; flex-shrink: 0; outline-offset: -4px; }
.s2-site-search button > span { margin-left: 13px; }
.s2-site-search button:hover { background: #004f96; }
.s2-listing-section { padding: 60px 0 70px; }
.s2-pagination { margin-top: 43px; }
.s2-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.s2-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 10px 15px; border: 1px solid #c5ddec; border-radius: 6px; color: #2e5f81; background: white; font-size: 12px; }
.s2-pagination .page-numbers.current { background: #0067bd; border-color: #0067bd; color: #fff; }
.s2-pagination a:hover { background: #eaf5fd; }
.s2-empty-results { max-width: 760px; padding: 25px 0; }
.s2-empty-results p { margin: 22px 0 27px; }

/* Same practical conversion point, from landing pages through the editorial site. */
.s2-compact-cta { padding: 35px 0 72px; }
.s2-compact-cta-inner { display: grid; grid-template-columns: 1.5fr .8fr; align-items: center; gap: 55px; padding: 44px; color: white; border-radius: 12px; }
.s2-compact-cta .s2-eyebrow { color: #c2e4f5; font-size: 9px; }
.s2-compact-cta h2 { color: white; font-size: 38px; }
.s2-compact-cta p:not(.s2-eyebrow) { margin-top: 18px; max-width: 580px; color: #d4e5f0; font-size: 13px; line-height: 1.9; }
.s2-compact-cta-inner > div:last-child { display: flex; flex-direction: column; align-items: center; gap: 15px; }
.s2-compact-cta .s2-button { width: 100%; }
.s2-compact-contact { color: #eaf7ff !important; font-size: 12px; padding-block: 7px; min-height: 36px; }
.s2-compact-contact > span { margin-left: 9px; }
.s2-compact-contact:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Keep the existing newsletter and native WordPress comments working and legible. */
.swyft-studio .swyft-newsletter { background: #edf7ff; border-top: 1px solid #c7e2f4; padding: 57px 48px; }
.swyft-studio .swyft-newsletter__inner { max-width: 1280px; grid-template-columns: 1.1fr 1fr; gap: 65px; }
.swyft-studio .swyft-newsletter__title { color: #19425f; font-size: 30px; line-height: 1.25; margin-bottom: 17px; }
.swyft-studio .swyft-newsletter__text { color: #42647c; max-width: 55ch; font-size: 13px; line-height: 1.85; }
.swyft-studio .swyft-newsletter__row input[type=email] { border-radius: 7px !important; border-color: #accfe7 !important; font-size: 16px; min-height: 52px; }
.swyft-studio .swyft-newsletter__btn { width: auto; color: #fff; background: #0067bd; border-radius: 7px; font-size: 13px; min-height: 52px; }
.swyft-studio .swyft-newsletter__btn:hover:not(:disabled) { background: #004d91; }
.swyft-studio .swyft-newsletter__feedback { font-size: 12px; }
.swyft-studio:not(.s2-js) .swyft-newsletter__form { display: none; }
.s2-newsletter-noscript { padding: 18px 0 0; font-size: 13px; color: #416077; }
.s2-newsletter-noscript a { color: #0064ad; text-decoration: underline; }
.s2-footer { background: #f7fbff; border-color: #d5e7f5; }
.s2-footer h2 { color: #1c6697; }
.s2-comments { margin-top: 42px; border-top: 1px solid #cfe1ef; padding-top: 30px; font-size: 15px; }
.s2-comments h2 { font-size: 27px; margin-bottom: 22px; }
.s2-comments h3 { font-size: 23px; margin-bottom: 20px; }
.s2-comments p { margin-bottom: 18px; }
.s2-comments label { display: block; font-size: 13px; color: #2f5570; margin-bottom: 8px; }
.s2-comments input:not([type=checkbox]):not([type=submit]), .s2-comments textarea { display: block; width: 100%; max-width: 100%; padding: 13px 15px; border: 1px solid #b9d4e8; background: white; color: #173b55; border-radius: 6px; font: inherit; }
.s2-comments .form-submit input { background: #0067bd; color: white; min-height: 48px; border: 0; padding: 12px 22px; border-radius: 6px; cursor: pointer; }
.s2-comments .comment-form-cookies-consent label { display: inline; }
.s2-comments a { color: #0065b0; }
.s2-comments .comment-list { display: grid; gap: 27px; }
.s2-comments .comment-meta { font-size: 12px; color: #4e6e83; }
.s2-comments .avatar { float: left; margin-right: 13px; border-radius: 50%; }

@media (max-width: 1190px) {
  .s2-service-card > .s2-generated-image { margin: -23px -23px 23px; }
  .s2-page-hero-grid { gap: 40px; }
  .s2-page-hero h1 { font-size: 45px; }
  .s2-editorial-layout--aside { gap: 47px; grid-template-columns: minmax(0,1fr) 252px; }
  .s2-content-grid { gap: 19px; }
  .s2-content-card-copy { padding: 23px; }
  .s2-content-card h2, .s2-content-card h3 { font-size: 23px; }
  .s2-content-card-image img { height: 192px; }
  .s2-compact-cta-inner { padding: 36px; gap: 37px; }
  .s2-compact-cta h2 { font-size: 34px; }
  .swyft-studio .swyft-newsletter__inner { gap: 40px; }
}
@media (max-width: 1000px) {
  .s2-service-card > .s2-generated-image { margin: -21px -21px 22px; }
  .s2-page-hero { padding-top: 24px; padding-bottom: 48px; }
  .s2-page-hero-grid { gap: 30px; }
  .s2-page-hero h1 { font-size: 40px; }
  .s2-page-intro { font-size: 14px !important; }
  .s2-page-visual .s2-generated-image img, .s2-editorial-image img { min-height: 290px; }
  .s2-breadcrumbs { font-size: 9px; margin-bottom: 28px; }
  .s2-editorial-layout { padding-block: 48px 55px; }
  .s2-editorial-layout--aside { grid-template-columns: minmax(0,1fr) 224px; gap: 32px; }
  .s2-aside-cta { padding: 23px 19px; }
  .s2-aside-cta h2 { font-size: 24px; }
  .s2-article-toc { padding: 19px; }
  .s2-article-body { font-size: 16px; }
  .s2-article-body h2 { font-size: 29px; }
  .s2-article-body h3 { font-size: 22px; }
  .s2-content-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
  .s2-content-card-image img { height: 220px; }
  .s2-listing-hero h1 { font-size: 52px; }
  .s2-compact-cta-inner { grid-template-columns: 1.3fr 1fr; gap: 32px; }
  .s2-compact-cta h2 { font-size: 31px; }
  .swyft-studio .swyft-newsletter { padding-inline: 32px; }
  .swyft-studio .swyft-newsletter__inner { gap: 35px; }
}
@media (max-width: 800px) {
  .s2-editorial-layout--aside { grid-template-columns: minmax(0,1fr); gap: 35px; max-width: 840px; }
  .s2-aside-inner { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
  .s2-article-toc { display: none; }
  .s2-related-links { margin: 0; }
  .s2-aside-cta { align-self: start; }
  .swyft-studio .swyft-newsletter__inner { grid-template-columns: 1fr; gap: 27px; }
  .swyft-studio .swyft-newsletter__row { flex-direction: row; }
}
@media (max-width: 720px) {
  .s2-service-card > .s2-generated-image { margin: -28px -28px 26px; }
  .s2-service-card .s2-service-card-top .s2-mini-label { max-width: none; }
  .s2-featured-case .s2-generated-image--case, .s2-featured-case .s2-generated-image--case img { min-height: 230px; }
  .s2-case-pair article > .s2-generated-image img { aspect-ratio: 16 / 9; }
  .s2-generated-image figcaption { font-size: 8px; bottom: 8px; right: 8px; }
  .s2-film { margin-top: 31px; }
  .s2-film-heading { margin-bottom: 11px; }
  .s2-film-heading .s2-mini-label { font-size: 8px; }
  .s2-film-heading > span:last-child { font-size: 10px; }
  .s2-film-player { border-radius: 10px; }
  .s2-film-play { min-width: 111px; min-height: 87px; padding: 12px 16px !important; gap: 9px; border-radius: 9px !important; font-size: 10px !important; }
  .s2-film-play > span:first-child { width: 33px; height: 33px; font-size: 15px; }
  .s2-film figcaption { font-size: 10px; }
  .s2-film-transcript summary { min-height: 44px; font-size: 11px; }
  .s2-film-transcript p { font-size: 12px; }
  .s2-ai-hero .s2-film { margin-top: 0; }
  .s2-page-hero { padding: 18px 0 36px; }
  .s2-breadcrumbs { gap: 3px 9px; font-size: 9px; margin-bottom: 23px; }
  .s2-breadcrumbs > span[aria-current] { max-width: 100%; }
  .s2-breadcrumbs a { min-height: 29px; }
  .s2-page-hero-grid { grid-template-columns: 1fr; gap: 29px; }
  .s2-page-hero h1 { font-size: 39px; line-height: 1.16; letter-spacing: -.044em; }
  .s2-page-hero .s2-eyebrow { font-size: 8px; margin-bottom: 18px; }
  .swyft-studio .s2-page-intro { font-size: 15px !important; line-height: 1.85; margin-top: 21px; }
  .s2-page-hero-actions { margin-top: 23px; gap: 12px 20px; }
  .s2-page-hero-actions .s2-button { min-height: 49px; }
  .s2-page-hero-actions .s2-text-link { font-size: 11px; }
  .s2-page-visual .s2-generated-image img { aspect-ratio: 16 / 10; min-height: 0; }
  .s2-editorial-image img { min-height: 0; height: 250px; max-height: none; }
  .s2-editorial-image--portrait img { height: 300px; }
  .s2-editorial-image figcaption { font-size: 11px; padding: 30px 15px 12px; }
  .s2-page-hero--legal h1 { font-size: 42px; }
  .s2-article-date { font-size: 10px; }
  .s2-editorial-layout { padding-block: 36px 43px; }
  .s2-article-body { font-size: 16px; line-height: 1.9; }
  .s2-article-body h2 { font-size: 28px; margin-top: 37px; }
  .s2-article-body h3 { font-size: 22px; margin-top: 28px; }
  .s2-article-body h4 { font-size: 18px; }
  .s2-article-body p { margin-bottom: 21px; }
  .s2-article-body ul, .s2-article-body ol { padding-left: 23px; }
  .s2-article-body li { margin-bottom: 12px; }
  .s2-article-body blockquote { padding: 22px 20px; }
  .s2-article-body .wp-block-columns { flex-direction: column; }
  .s2-article-body .wp-block-column { flex-basis: auto !important; width: 100%; }
  .s2-article-body .wp-block-table, .s2-table-scroll { margin-block: 24px; }
  .s2-article-body table { font-size: 13px; }
  .s2-article-body th, .s2-article-body td { padding: 12px 14px; min-width: 130px; }
  .s2-article-body figcaption { font-size: 11px; }
  .s2-aside-inner { grid-template-columns: 1fr; gap: 25px; }
  .s2-aside-cta { padding: 29px; }
  .s2-aside-cta h2 { font-size: 29px; }
  .s2-aside-cta h2 br { display: none; }
  .s2-related-links > a { font-size: 13px; min-height: 48px; }
  .s2-child-section { padding: 48px 0 53px; }
  .s2-content-grid { grid-template-columns: 1fr; gap: 24px; }
  .s2-content-card-copy { padding: 26px; }
  .s2-content-card-image img { height: auto; aspect-ratio: 16 / 9; }
  .s2-content-card h2, .s2-content-card h3 { font-size: 27px; }
  .s2-content-card p { font-size: 14px; }
  .s2-content-card .s2-text-link { font-size: 13px; }
  .s2-listing-hero h1 { font-size: 44px; }
  .s2-site-search { margin-top: 24px; }
  .s2-site-search input { font-size: 16px; padding-inline: 13px; }
  .s2-site-search input::placeholder { font-size: 12px; }
  .s2-site-search button { padding-inline: 16px; }
  .s2-site-search button > span { display: none; }
  .s2-listing-section { padding-block: 39px 50px; }
  .s2-compact-cta { padding: 23px 0 50px; }
  .s2-compact-cta-inner { grid-template-columns: 1fr; gap: 26px; padding: 32px 26px; }
  .s2-compact-cta h2 { font-size: 33px; }
  .s2-compact-cta .s2-eyebrow { font-size: 8px; }
  .s2-compact-cta p:not(.s2-eyebrow) { font-size: 13px; }
  .s2-compact-contact { min-height: 44px; }
  .swyft-studio .swyft-newsletter { padding: 44px 22px; }
  .swyft-studio .swyft-newsletter__title { font-size: 28px; }
  .swyft-studio .swyft-newsletter__text { font-size: 13px; }
  .swyft-studio .swyft-newsletter__row { flex-direction: column; }
  .swyft-studio .swyft-newsletter__btn { width: 100%; }
  .s2-footer-grid > div > a:not(.s2-logo) { min-height: 44px; }
}
@media (max-width: 374px) {
  .s2-page-hero h1 { font-size: 34px; }
  .s2-page-hero-actions { gap: 8px 13px; }
  .s2-page-hero-actions .s2-button { padding-inline: 16px; font-size: 11px; }
  .s2-page-hero-actions .s2-text-link { font-size: 10px; gap: 8px; }
  .s2-film-heading .s2-mini-label { font-size: 7px; }
  .s2-content-card-copy { padding: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  .s2-content-card, .s2-film-play { transition: none; }
}
@media print {
  .s2-page-hero { background: white; padding: 12px 0; }
  .s2-page-visual, .s2-film, .s2-editorial-aside, .s2-compact-cta, .swyft-newsletter, .s2-page-hero-actions, .s2-site-search { display: none !important; }
  .s2-editorial-layout { display: block; padding: 15px 0; }
  .s2-article-body { font-size: 11pt; }
  .s2-article-body table { display: table; overflow: visible; font-size: 9pt; }
  .s2-content-grid { grid-template-columns: repeat(2,1fr); }
}
