/* Final page updates: shared service, career and editorial layouts. */
:root { --v7-blue:#234df0; --v7-navy:#233489; --v7-ink:#15243d; --v7-soft:#f3f6fc; }
.v7-shell {max-width:1680px;margin:0 auto}
.v7-hero {background:var(--v7-navy);color:white;padding:42px 0 72px}
.v7-hero .crumbs {margin-bottom:36px}
.v7-hero .crumbs a,.v7-hero .crumbs__current {color:#fff}
.v7-hero-grid {display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.v7-hero h1 {color:white;font-size:clamp(42px,4.2vw,76px);line-height:1.08;margin:18px 0 28px;font-weight:600}
.v7-hero p {font-size:25px;line-height:1.5;max-width:730px;margin:0 0 28px}
.v7-kicker {display:block;font-size:16px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--v7-blue)}
.v7-hero .v7-kicker {color:#becbff}
.v7-hero-photo {margin:0;min-width:0}
.v7-hero-photo img {display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:20px}
.v7-actions {display:flex;gap:16px;flex-wrap:wrap;margin-top:30px}
.v7-actions .btn2 {font-size:19px}
.svc-section {padding:80px 0}
.svc-section:nth-of-type(odd) {background:var(--v7-soft)}
.svc-section-grid {display:grid;grid-template-columns:1fr 1.75fr;gap:70px}
.svc-number {display:block;font-size:19px;color:var(--v7-blue);margin-bottom:20px;font-family:"Exo 2",sans-serif}
.svc-heading h2 {font-size:40px;line-height:1.18;margin:0;color:var(--v7-ink);font-weight:600}
.svc-body {min-width:0;font-size:23px;line-height:1.5;color:var(--v7-ink)}
.svc-body p {font-size:23px;line-height:1.5;margin:0 0 26px}
.svc-body h3 {font-size:30px;line-height:1.25;margin:34px 0 22px;color:var(--v7-ink)}
.svc-body h3:first-child {margin-top:0}
.svc-body ul,.svc-body ol {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:28px 0}
.svc-body li {font-size:21px;line-height:1.45;margin:0;padding:24px 24px 24px 30px;border:1px solid #dae2f1;border-left:3px solid var(--v7-blue);border-radius:4px 16px 16px 4px;background:white}
.svc-body li ul {display:block;margin:12px 0 0}
.svc-body li li {padding:8px 0;border:0;background:transparent}
.svc-body .btn {display:inline-flex;margin-top:10px}
.svc-form {margin:32px 0;background:white;border:1px solid #dbe2f0;border-radius:18px;padding:26px}
.svc-form>summary {font-size:24px;cursor:pointer;font-weight:600;color:var(--v7-navy)}
.svc-form .form-container {max-width:none;padding:24px 0 0;box-shadow:none;border:0}
.svc-form .form-title {display:none}
.svc-form input,.svc-form textarea {max-width:100%}
.svc-nav {background:#fff;border-bottom:1px solid #dae2f1;padding:22px 0}
.svc-nav-items {display:flex;flex-wrap:wrap;gap:10px}
.svc-nav-items a {border:1px solid #dbe2f0;padding:12px 18px;border-radius:30px;font-size:18px;color:var(--v7-navy)}
.svc-nav-items a[aria-current=page],.svc-nav-items a:hover {background:var(--v7-blue);color:white;border-color:var(--v7-blue)}
.svc-catalog {padding:70px 0 90px}
.svc-catalog h1 {font-size:64px;margin:24px 0 46px}
.svc-catalog-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.svc-catalog-card {overflow:hidden;border:1px solid #dde3ef;border-radius:20px;background:white;display:flex;flex-direction:column;color:var(--v7-ink);text-decoration:none;transition:border-color .2s}
.svc-catalog-card:hover {border-color:var(--v7-blue)}
.svc-catalog-card img {width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.svc-catalog-card span {display:block;padding:26px 28px;font-size:27px;line-height:1.25;font-family:"Exo 2",sans-serif}
.svc-catalog-card small {display:block;padding:0 28px 26px;color:var(--v7-blue);font-size:17px;margin-top:auto}
.v7-people {list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;margin:0;padding:0}
.v7-person {overflow:hidden;border:1px solid #dae2f1;background:white;border-radius:18px}
.v7-portrait {position:relative;overflow:hidden;aspect-ratio:295/273;background:#111a2c;width:100%}
.v7-portrait>img {position:absolute!important;width:566.102%!important;max-width:none!important;height:auto!important;left:var(--photo-x);top:-10.99%;margin:0!important;border-radius:0!important}
.v7-person-copy {padding:24px}
.v7-person h3 {font-size:25px;line-height:1.15;margin:0 0 12px;color:var(--v7-ink)}
.v7-person p {font-size:18px;line-height:1.4;color:#415371;margin:0}
.v7-person-copy .v7-role {font-size:17px;color:var(--v7-blue);margin-bottom:14px}
.pv-kpis {grid-template-columns:repeat(3,minmax(0,1fr))}
.pv-hero__photo img {object-fit:contain}
.v7-authors {display:flex;align-items:flex-start;gap:28px;flex-wrap:wrap;margin-bottom:30px}
.v7-fallback-modal {position:fixed!important;inset:10vh 5vw!important;width:90vw!important;max-width:800px!important;max-height:80vh!important;overflow:auto!important;z-index:2147482000!important;background:white!important;padding:24px!important;border:2px solid #234df0}
.v7-authors .pl-author {flex:1;min-width:260px;margin:0}
.v7-it-expert {display:flex;align-items:center;gap:18px;margin:24px 0;font-size:19px}
.v7-it-expert img {width:72px;height:72px;object-fit:cover;border-radius:50%}
.v7-it-expert b,.v7-it-expert span {display:block}
.v7-it-expert span {font-size:17px;color:#63708b}
.it-ready-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:28px 0 40px}
.it-ready-card {border:1px solid #dbe2ef;border-radius:18px;padding:26px;background:white}
.it-ready-card h4 {font-size:23px;margin:0 0 14px;color:#233489}
.it-ready-card p {margin:0;font-size:19px;line-height:1.55}
.it-ready-card .it-impact {margin-top:14px;color:#55627a;font-size:17px}
.it-handoff {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0!important;margin:28px 0!important;gap:12px}
.it-handoff li {padding:22px!important;background:#f0f4ff;border-top:3px solid #234df0;border-radius:0 0 12px 12px;font-size:18px!important;line-height:1.45}
.it-handoff b {display:block;margin-bottom:10px;color:#233489}
.it-handoff li:before {display:none!important}
.career-nav {display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.career-nav a {color:#fff;border:1px solid #8b9bd0;border-radius:24px;padding:11px 18px;font-size:18px}
.career-section {padding:76px 0 96px;background:var(--v7-soft)}
.career-section-head {display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:40px}
.career-section-head h2 {font-size:48px;margin:0;color:var(--v7-ink)}
.career-section-head p {font-size:22px;max-width:540px;margin:0;color:#50627b}
.career-list {display:grid;gap:24px}
.career-card {background:white;border:1px solid #dbe2ef;border-radius:22px;padding:36px;scroll-margin-top:100px}
.career-card-top {display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center}
.career-card h3 {font-size:32px;line-height:1.22;margin:8px 0 14px;color:var(--v7-ink)}
.career-pay {font-size:21px;color:var(--v7-blue);margin:0}
.career-tag {font-size:15px;color:#61728c;letter-spacing:.08em;text-transform:uppercase}
.career-card details {margin-top:26px;border-top:1px solid #dbe2ef;padding-top:22px}
.career-card summary {font-size:21px;cursor:pointer;color:var(--v7-blue);font-weight:600}
.career-description {display:grid;grid-template-columns:1fr 1.65fr;gap:50px;margin-top:30px;font-size:20px;line-height:1.5}
.career-description h4 {font-size:23px;margin:0 0 16px;color:var(--v7-navy)}
.career-description ul {padding-left:22px;margin:18px 0}
.career-description li {margin:0 0 12px}
.career-description .career-terms {background:var(--v7-soft);padding:26px;border-radius:16px;align-self:start}
.career-description .career-terms ul {margin-top:0}
.career-btn {font-size:19px;white-space:nowrap;border:0;cursor:pointer}
.about-career {padding:44px;background:#f2f5ff;border-left:4px solid #234df0;border-radius:0 20px 20px 0}
.about-career .task__task {display:block}
.about-career .task__task_first,.about-career .task__task_second {width:auto;max-width:none}
.reading-progress {position:fixed;inset:0 0 auto;height:5px;background:#dae2f8;z-index:2147483000;pointer-events:none}
.reading-progress span {display:block;width:100%;height:100%;background:#234df0;transform:scaleX(0);transform-origin:left center}
.pl-progress {display:none}
.pub-hero {padding:42px 0 65px;background:#f0f4ff}
.pub-hero-grid {display:grid;grid-template-columns:1.3fr 1fr;gap:55px;align-items:center;margin-top:30px}
.pub-hero h1 {font-size:clamp(38px,3.5vw,64px);line-height:1.1;margin:20px 0 24px;color:#15243d}
.pub-hero p {font-size:23px;line-height:1.5;margin:0;color:#4c607a}
.pub-hero img {width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:20px}
.pub-cover {position:relative;border-radius:20px;overflow:hidden}
.pub-cover:after {content:"";position:absolute;inset:0;background:#233489;opacity:.12;pointer-events:none}
.pub-content {padding:65px 0 75px}
.pub-layout {display:grid;grid-template-columns:1fr 2fr;gap:70px;max-width:1450px;margin:auto}
.pub-byline {align-self:start;background:#f3f6fc;border:1px solid #dce4f2;border-radius:18px;padding:28px}
.pub-byline>img {width:100px;height:100px;object-fit:cover;border-radius:50%;display:block;margin-bottom:20px}
.pub-byline .v7-portrait {max-width:170px;border-radius:12px;margin-bottom:20px}
.pub-byline h2 {font-size:26px;margin:0 0 12px}
.pub-byline p {font-size:18px;color:#53627a;line-height:1.45;margin:0 0 16px}
.pub-copy {font-size:23px;line-height:1.6;min-width:0}
.pub-copy h2 {font-size:35px;line-height:1.2;margin:0 0 24px}
.pub-copy p {margin:0 0 25px}
.pub-topics {list-style:none;margin:30px 0;padding:0;display:grid;gap:14px}
.pub-topics li {padding:20px 24px;border-left:3px solid #234df0;background:#f2f5fc;border-radius:0 12px 12px 0;font-size:21px;line-height:1.45}
.pub-source {border-top:1px solid #dbe2ef;padding-top:30px;margin-top:36px}
.pub-source p {font-size:18px;color:#586980;margin:0 0 18px}
.pub-source a {font-size:20px}
.pub-more {padding:56px 0;background:#f3f6fc}
.pub-more h2 {font-size:36px;margin:0 0 28px}
.pub-more-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.pub-more a {display:block;color:#15243d;background:white;border:1px solid #dbe2ef;border-radius:16px;padding:26px;font-size:24px;line-height:1.3}
.news .news__flex {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.news .news__item {width:auto;min-width:0;margin:0;display:flex;flex-direction:column}
.news .news__text {flex:1;display:flex;flex-direction:column}
.news .news__title {font-size:26px;line-height:1.23;margin-bottom:20px}
.news .news__3columns {font-size:18px;line-height:1.45;-webkit-line-clamp:3}
.news .projects__link {margin-top:auto;align-self:flex-start}
.news .news__img img {aspect-ratio:16/10;object-fit:cover}
.news-intro {padding:30px 0 0}
.news-intro p {font-size:22px;color:#4b5d79;max-width:850px}
.source-note {font-size:17px!important;color:#5e6e84!important}
a:focus-visible,button:focus-visible,summary:focus-visible {outline:3px solid #ff5e32;outline-offset:5px}
@media(min-width:1200px) { .reading-progress{height:5px} }
@media(max-width:1100px) {
 .v7-people{grid-template-columns:repeat(3,minmax(0,1fr))}
 .svc-section-grid{grid-template-columns:1fr 1.5fr;gap:35px}
 .svc-heading h2{font-size:32px}
 .v7-hero-grid,.pub-hero-grid{gap:30px}
 .v7-hero p{font-size:21px}
 .pub-layout{grid-template-columns:1fr 2fr;gap:35px}
 .svc-catalog-grid,.news .news__flex{grid-template-columns:repeat(2,minmax(0,1fr))}
 .it-handoff{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px) {
 .v7-hero{padding:24px 0 40px}
 .v7-hero-grid,.pub-hero-grid{grid-template-columns:1fr;gap:28px}
 .v7-hero h1{font-size:38px;margin:16px 0 22px}
 .v7-hero p{font-size:20px;line-height:1.45}
 .v7-hero-photo img{aspect-ratio:16/10;border-radius:14px}
 .v7-kicker{font-size:13px}
 .v7-actions{gap:12px}
 .v7-actions .btn2{font-size:16px;width:100%;justify-content:center}
 .svc-section{padding:40px 0}
 .svc-section-grid{grid-template-columns:1fr;gap:22px}
 .svc-heading h2{font-size:29px;line-height:1.2}
 .svc-number{margin-bottom:12px;font-size:16px}
 .svc-body,.svc-body p{font-size:19px;line-height:1.5}
 .svc-body h3{font-size:24px;margin:26px 0 18px}
 .svc-body ul,.svc-body ol{grid-template-columns:1fr;gap:12px;margin:22px 0}
 .svc-body li{font-size:18px;padding:20px}
 .svc-nav{padding:14px 0}
 .svc-nav-items{gap:8px}
 .svc-nav-items a{font-size:14px;padding:10px 13px}
 .svc-catalog{padding:30px 0 45px}
 .svc-catalog h1{font-size:38px;margin:24px 0 30px}
 .svc-catalog-grid{grid-template-columns:1fr;gap:20px}
 .svc-catalog-card span{font-size:24px;padding:22px}
 .svc-catalog-card small{padding:0 22px 22px}
 .v7-people{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 .v7-person-copy{padding:18px 14px}
 .v7-person h3{font-size:20px;line-height:1.2}
 .v7-person-copy .v7-role{font-size:15px}
 .v7-person p{font-size:16px}
 .pv-kpis{grid-template-columns:1fr!important}
 .v7-authors{gap:24px}
 .v7-authors .pl-author{min-width:0;flex-basis:100%}
 .it-ready-grid{grid-template-columns:1fr;gap:14px}
 .it-ready-card{padding:22px}
 .it-handoff{grid-template-columns:1fr}
 .career-section{padding:40px 0}
 .career-section-head{display:block}
 .career-section-head h2{font-size:32px;margin-bottom:16px}
 .career-section-head p{font-size:19px}
 .career-card{padding:24px 20px}
 .career-card-top{grid-template-columns:1fr;gap:20px}
 .career-card h3{font-size:26px}
 .career-pay{font-size:19px}
 .career-description{grid-template-columns:1fr;gap:25px;font-size:18px}
 .career-description .career-terms{padding:20px}
 .career-btn{width:100%;font-size:17px}
 .career-nav{gap:8px}
 .career-nav a{font-size:16px;padding:10px 14px}
 .about-career{padding:26px}
 .pub-hero{padding:26px 0 40px}
 .pub-hero h1{font-size:35px}
 .pub-hero p{font-size:20px}
 .pub-content{padding:40px 0}
 .pub-layout{display:flex;flex-direction:column;gap:28px}
 .pub-byline{width:100%;padding:22px}
 .pub-byline>img{width:72px;height:72px}
 .pub-copy{font-size:20px}
 .pub-copy h2{font-size:28px}
 .pub-topics li{font-size:19px;padding:18px}
 .pub-more{padding:40px 0}
 .pub-more h2{font-size:28px}
 .pub-more-grid{grid-template-columns:1fr}
 .pub-more a{font-size:22px;padding:22px}
 .news .news__flex{grid-template-columns:1fr;gap:24px}
 .news .news__title{font-size:25px}
}
@media(prefers-reduced-motion:reduce){.reading-progress span{transition:none}}
