
@media (max-width:1050px) {
  .projects-main {
    color:#000000;
    font-size:16px;
    line-height:1.7;
  }
  .projects-container {
    width:min(1160px, calc(100% - 48px));
    margin-right:auto;
    margin-left:auto;
  }
  .projects-main h2 {
    margin:0 0 36px;
    color:#000000;
    font-size:30px;
    line-height:1.3;
    font-weight:700;
  }
  .projects-main h3 {
    color:#000000;
    font-size:20px;
    line-height:1.4;
    font-weight:600;
  }
  .projects-main p {
    margin:0;
  }
  .projects-page .projects-hero {
    min-height:750px;
    padding:148px 0 132px;
  }
  .projects-page:not(.support-page) .projects-hero {
    background-image:linear-gradient(rgba(3,26,44,.24), rgba(3,26,44,.24)), url("../projets-ti-planification-concept-1.webp");
  }
  .projects-page .projects-hero[aria-labelledby="projects-title"] {
    background:linear-gradient(90deg,rgba(3,26,44,.3),rgba(3,26,44,.74) 54%,rgba(3,26,44,.12) 65%,rgba(3,26,44,.16)),#082E51 url("../c02-projets-shawn-mur-droit-v04.webp") center / cover no-repeat;
  }
  .projects-hero .contact-hero-layout {
    transform:none;
  }
  .projects-hero h1 {
    max-width:850px;
  }
  .projects-main .projects-hero p {
    max-width:530px;
    margin:20px 0 28px;
    color:#FFFFFF;
    font-size:20px;
    line-height:1.6;
  }
  .projects-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    flex-shrink:0;
    min-height:46px;
    padding:12px 20px;
    border:1px solid #1769E0;
    border-radius:5px;
    background:#1769E0;
    color:#FFFFFF;
    font-size:15px;
    line-height:1.4;
    font-weight:600;
  }
  .projects-button:hover {
    background:#1254B5;
    border-color:#1254B5;
  }
  .projects-button svg {
    width:18px;
    height:18px;
    color:inherit;
  }
  .projects-main :is(a,button,[tabindex]):focus-visible {
    outline:3px solid #1769E0;
    outline-offset:4px;
  }
  .projects-hero a:focus-visible {
    outline-color:#FFFFFF;
  }
  .projects-intro {
    position:relative;
    z-index:1;
    min-height:320px;
    margin-top:-135px;
    padding:56px 64px;
    border-radius:8px;
    background:#FFFFFF;
    box-shadow:0 5px 22px rgba(8,46,81,.07);
  }
  .projects-intro h2 {
    max-width:820px;
    margin:0 0 32px;
  }
  .projects-intro p {
    max-width:760px;
  }
  .projects-intro p + p {
    margin-top:24px;
  }
  .projects-section {
    padding:64px 0;
    scroll-margin-top:96px;
    background:#FFFFFF;
  }
  .projects-types {
    padding:80px 0 40px;
  }
  .projects-page .projects-tabs {
    display:grid;
    grid-template-columns:repeat(5, minmax(0,1fr));
    gap:0;
    margin:0 0 32px;
    border-bottom:1px solid #D2DEE8;
  }
  .projects-tabs button {
    justify-content:center;
    min-width:0;
    min-height:48px;
    padding:12px 16px;
    border-radius:5px 5px 0 0;
    color:#000000;
    font-family:inherit;
    font-size:16px;
    font-weight:500;
  }
  .projects-tabs button:hover {
    background:#E7EFF5;
  }
  .projects-tabs button[aria-selected="true"] {
    background:#1769E0;
    color:#FFFFFF;
    font-weight:600;
  }
  .projects-panels {
    display:grid;
  }
  .projects-panels .projects-panel {
    display:grid;
    grid-area:1 / 1;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:center;
    gap:64px;
    min-width:0;
  }
  /* Hidden panels reserve the tallest layout without exposing their content. */
  .projects-panels .projects-panel[hidden] {
    visibility:hidden;
    pointer-events:none;
  }
  .projects-panel h3 {
    margin:0 0 16px;
    font-size:24px;
  }
  .projects-panel ul {
    margin:24px 0 0;
    padding-left:20px;
  }
  .projects-panel li {
    padding-left:4px;
    margin-top:8px;
  }
  .projects-panel li::marker {
    color:#1769E0;
  }
  .projects-panel img {
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:3 / 2;
    object-fit:cover;
    border-radius:8px;
  }
  #project-panel-security img {
    object-position:right center;
  }
  .projects-context {
    padding:40px 0;
    background:#FFFFFF;
    color:#000000;
  }
  .projects-context-layout {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:center;
    gap:48px;
    padding:36px;
    border-radius:8px;
    background:#E7EFF5;
    color:#000000;
  }
  .projects-context-layout > img {
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:4 / 3;
    object-fit:cover;
    border-radius:8px;
  }
  .projects-context h2 {
    margin-bottom:32px;
  }
  .projects-context-copy p + p {
    margin-top:24px;
  }
  .projects-context-points {
    display:grid;
    gap:12px;
    list-style:none;
    padding:0;
    margin:24px 0 0;
  }
  .projects-context-points li {
    display:flex;
    align-items:flex-start;
    gap:12px;
  }
  .projects-context-points svg {
    flex:0 0 20px;
    width:20px;
    height:20px;
    margin-top:4px;
    color:#1769E0;
  }
  .projects-support {
    padding:40px 0;
    background:#FFFFFF;
    color:#000000;
  }
  .projects-support > .projects-container > h2 {
    text-align:center;
  }
  .projects-support-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    text-align:center;
  }
  .projects-support-grid > div {
    min-width:0;
    padding:0 24px;
  }
  .projects-support-grid > div + div {
    border-left:1px solid #DDE1E7;
  }
  .projects-step-icon {
    display:grid;
    place-items:center;
    width:64px;
    height:64px;
    margin:0 auto 18px;
    border-radius:50%;
    background:#E7EFF5;
  }
  .projects-step-icon img {
    display:block;
    width:32px;
    height:32px;
  }
  .projects-support-grid h3 {
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 0 22px;
    min-height:2.8em;
    font-size:18px;
    text-wrap:balance;
  }
  .projects-page .faq {
    background:#FFFFFF;
  }
  .projects-page .faq .section-inner {
    width:min(900px, calc(100% - 48px));
    padding:40px 0 80px;
  }
  .projects-page .faq .serif-title {
    margin:0 0 36px;
    color:#000000;
    font-family:inherit;
    font-size:30px;
    font-weight:700;
  }
  .projects-page .faq :is(.faq-button,.faq-answer) {
    color:#000000;
    font-family:inherit;
    font-size:16px;
  }
  .projects-contact-layout {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,2fr) minmax(0,3fr);
    align-items:start;
    gap:48px;
    padding:48px;
    border-radius:8px;
    background:#082E51;
    color:#FFFFFF;
  }
  .projects-contact-layout::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:#082E51 url("../temoignages-bleu-grain.webp") center / cover no-repeat;
    filter:none;
    pointer-events:none;
  }
  .projects-contact {
    padding:40px 0;
    background:#FFFFFF;
  }
  .projects-contact h2 {
    margin-bottom:32px;
    color:#FFFFFF;
  }
  .projects-contact-intro > p {
    color:#FFFFFF;
  }
  .projects-contact-intro > p + p {
    margin-top:24px;
  }
  .projects-contact-intro > p strong {
    color:inherit;
    font-weight:700;
  }
  .projects-contact-compact {
    grid-template-columns:minmax(0,3fr) minmax(0,2fr);
    align-items:center;
  }
  .projects-contact-compact .projects-person {
    margin:0;
  }
  .projects-contact-button {
    margin-top:28px;
    border-color:#FFFFFF;
    background:#FFFFFF;
    color:#082E51;
  }
  .projects-contact-button:hover {
    border-color:#E7EFF5;
    background:#E7EFF5;
  }
  .projects-main .projects-contact-compact a:focus-visible {
    outline-color:#FFFFFF;
  }
  .projects-person {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:14px;
    width:100%;
    max-width:100%;
    margin:36px 0 0;
    text-align:center;
  }
  .projects-person-portrait {
    display:block;
    flex:0 0 184px;
    width:184px;
    height:184px;
    aspect-ratio:1;
    border-radius:50%;
    overflow:hidden;
    background:#E7EFF5;
  }
  .projects-person img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    transform:scale(1.18);
    transform-origin:center 20%;
  }
  .projects-person figcaption {
    min-width:0;
    padding:0;
  }
  .projects-person-name {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
  }
  .projects-person figcaption > span {
    margin-top:2px;
  }
  .projects-person strong,
  .projects-person span {
    display:block;
  }
  .projects-person strong {
    font-size:18px;
    font-weight:600;
  }
  .projects-person-linkedin {
    display:inline-flex;
    flex:0 0 28px;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    color:#FFFFFF;
  }
  .projects-person-linkedin svg {
    width:20px;
    height:20px;
    fill:currentColor;
  }
  .projects-person-linkedin:hover {
    color:#E7EFF5;
  }
  .projects-contact .projects-person-linkedin:focus-visible {
    outline:2px solid #FFFFFF;
    outline-offset:3px;
  }
  .projects-contact-form {
    min-width:0;
    margin-top:0;
    gap:20px;
  }
  .projects-contact-form label,
  .projects-contact-form .contact-form-status {
    color:#FFFFFF;
  }
  .projects-contact-form textarea {
    height:176px;
    min-height:176px;
  }
  .projects-contact-form .contact-submit {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    grid-column:1 / -1;
    background:#FFFFFF;
    color:#082E51;
  }
  .projects-contact-form .contact-submit:hover {
    background:#E7EFF5;
  }
  .projects-contact-form .contact-submit svg {
    width:18px;
    height:18px;
  }
  .projects-contact-form .contact-form-status {
    grid-column:1 / -1;
    min-height:3.2em;
    font-size:14px;
    line-height:1.6;
  }
  .projects-contact-form .contact-form-status:empty {
    display:none;
  }
  .projects-form-notices {
    grid-column:1 / -1;
    display:grid;
    gap:8px;
  }
  .projects-contact-form .projects-form-privacy {
    color:#FFFFFF;
    font-size:13px;
    line-height:1.6;
  }
  .projects-form-privacy a {
    color:inherit;
    text-decoration:underline;
    text-underline-offset:3px;
  }
  .projects-contact .projects-form-privacy a:focus-visible {
    outline:2px solid #FFFFFF;
    outline-offset:3px;
  }
  .projects-contact-form :is(input,textarea,button):focus-visible {
    outline:2px solid #FFFFFF;
    outline-offset:4px;
  }
  .projects-related {
    position:relative;
    isolation:isolate;
    padding:48px 0 128px;
    background:#FFFFFF;
  }
  .projects-related::before {
    content:"";
    position:absolute;
    z-index:-1;
    /* The FAQ supplies the 80px of white space before this background. */
    top:0;
    bottom:80px;
    left:50%;
    transform:translateX(-50%);
    width:calc(100% - 64px);
    max-width:1400px;
    border-radius:8px;
    background:#E7EFF5;
    pointer-events:none;
  }
  .projects-related > .projects-container {
    width:min(1160px, calc(100% - 112px));
  }
  .projects-related h2 {
    margin-bottom:36px;
    color:#000000;
    text-align:center;
  }
  .projects-related-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-auto-rows:minmax(300px,auto);
    gap:24px;
  }
  .projects-related-tile {
    display:grid;
    grid-template-rows:140px minmax(0,1fr);
    min-width:0;
    min-height:300px;
    overflow:hidden;
    border:1px solid transparent;
    border-radius:8px;
    background:#FFFFFF;
    color:#000000;
    box-shadow:0 2px 10px rgba(8,46,81,.05);
    transition:border-color .18s ease, box-shadow .18s ease;
  }
  .projects-related-tile:hover {
    border-color:#1769E0;
    box-shadow:0 4px 14px rgba(8,46,81,.09);
  }
  .projects-related-tile:focus-visible {
    border-color:#1769E0;
  }
  .projects-related-photo {
    position:relative;
    display:block;
    min-width:0;
    overflow:hidden;
  }
  .projects-related-photo img {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .projects-related-copy {
    display:grid;
    grid-template-rows:auto 1fr auto;
    gap:8px;
    min-width:0;
    padding:16px;
  }
  .projects-related-label {
    color:#000000;
    font-size:16px;
    font-weight:600;
    line-height:1.3;
  }
  .projects-related-description {
    color:#000000;
    font-size:14px;
    font-weight:400;
    line-height:1.45;
  }
  .projects-related-arrow {
    display:inline-flex;
    align-items:center;
    gap:8px;
    justify-self:start;
    color:#1769E0;
    font-size:13px;
    font-weight:600;
    line-height:1.4;
  }
  .projects-related-arrow svg {
    display:block;
    width:16px;
    height:16px;
  }
  /* Approved four-card layout: TI pages only, not the cybersecurity family. */
  :is(.project-management-main,.infrastructure-main,.support-main,.planning-main,.cogestion-main,.continuity-main,.fleet-main,.m365-main,.azure-main,.canadian-main,.altitude-main) .projects-related-grid {
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  :is(.project-management-main,.infrastructure-main,.support-main,.planning-main,.cogestion-main,.continuity-main,.fleet-main,.m365-main,.azure-main,.canadian-main,.altitude-main) .projects-related-photo img {
    --related-crop-position:var(--related-desktop-position);
    transform:scale(var(--related-image-scale,1));
    transform-origin:var(--related-image-origin,right top);
  }
}
@media (max-width:1050px) {
  .project-management-main .projects-hero .projects-eyebrow {
    position:absolute;
    bottom:calc(100% + 24px);
    margin:0;
    color:#FFFFFF;
    font-size:14px;
    font-weight:500;
  }
  .project-management-main .projects-hero .projects-hero-lead {
    max-width:740px;
  }
  .project-management-main .projects-hero .projects-hero-line {
    display:block;
  }
  .project-management-main :is(.projects-intro,.projects-context) h2 {
    margin-bottom:36px;
  }
  .project-management-main .projects-tabs {
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .project-management-main .projects-tabs button {
    text-wrap:balance;
  }
  .project-management-main .projects-panel > div { min-width:0; }
  .project-management-main .project-diagram { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; gap:24px; min-height:176px; margin:0; padding:20px 0; }
  .project-management-main .project-diagram-node { position:relative; display:grid; grid-template-rows:48px minmax(40px,auto); justify-items:center; gap:10px; min-width:0; text-align:center; font-size:13px; line-height:1.5; color:#000000; }
  .project-management-main .project-diagram-icon { display:grid; place-items:center; width:56px; height:48px; color:#1769E0; }
  .project-management-main .project-diagram-icon svg { display:block; width:32px; height:32px; }
  .project-management-main .project-diagram-node:not(:last-child)::after { content:""; position:absolute; top:24px; left:calc(50% + 34px); width:calc(100% - 44px); border-top:1px dashed #1769E0; }
  .project-management-main .projects-support-grid {
    grid-template-rows:auto auto auto;
    row-gap:0;
  }
  .project-management-main .projects-support-grid > div {
    display:grid;
    grid-row:span 3;
    grid-template-rows:subgrid;
  }
  .project-management-main .projects-support-grid h3 {
    min-height:0;
  }
  /* Related background ends 80px before FAQ; adjoining padding stays zero. */
  .project-management-main .projects-related { margin-top:40px; }
  .project-management-main .faq .section-inner { padding-top:0; padding-bottom:80px; }
  .project-management-main .projects-contact { padding-top:0; padding-bottom:80px; }
}