/* base */
      @import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@500;700&family=Poppins:wght@300;400;500;600;700;800&family=PT+Serif:wght@400;700&display=swap");

      :root {
        --ink: #1a1b1b;
        --charcoal: #444545;
        --deep: #10181d;
        --muted: #686b6b;
        --line: #e3e1dd;
        --soft: #f7f6f4;
        --orange: #f47820;
        --green: #66bc46;
        --teal: #04aec6;
        --white: #ffffff;
        --shadow: 0 18px 50px rgba(22, 22, 22, 0.07);
      }

      * {
        box-sizing: border-box;
      }

      html {
        scroll-behavior: smooth;
      }

      body {
        margin: 0;
        color: var(--charcoal);
        font-family: "Poppins", Arial, sans-serif;
        font-size: 17px;
        font-weight: 300;
        line-height: 1.6;
        background: var(--white);
      }

      a {
        color: inherit;
        text-decoration: none;
      }

      img {
        display: block;
        max-width: 100%;
      }

      button {
        font: inherit;
      }

      .site-header {
        position: fixed;
        z-index: 20;
        top: 0;
        left: 0;
        width: 100%;
        color: var(--white);
        transition: background 220ms ease, padding 220ms ease, box-shadow 220ms ease;
      }

      .site-header.scrolled {
        background: rgba(68, 69, 69, 0.98);
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
      }

      .nav {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 32px;
        max-width: 1160px;
        margin: 0 auto;
        padding: 34px 28px 20px;
      }

      .site-header.scrolled .nav {
        padding-top: 8px;
        padding-bottom: 8px;
      }

      .brand {
        display: flex;
        align-items: center;
        gap: 10px;
        min-width: 170px;
      }

      .brand-mark {
        position: relative;
        width: 38px;
        height: 35px;
        flex: 0 0 auto;
      }

      .brand-mark span {
        position: absolute;
        left: 0;
        width: 38px;
        height: 9px;
        border-radius: 50%;
        background: var(--white);
      }

      .brand-mark span:nth-child(1) {
        top: 0;
        background: var(--orange);
      }

      .brand-mark span:nth-child(2) {
        top: 9px;
      }

      .brand-mark span:nth-child(3) {
        top: 18px;
      }

      .brand-mark span:nth-child(4) {
        top: 27px;
      }

      .brand-word {
        line-height: 1;
      }

      .brand-name {
        display: block;
        color: var(--white);
        font-size: 34px;
        font-weight: 500;
        letter-spacing: 0;
      }

      .brand-name strong {
        color: var(--orange);
        font-weight: 300;
      }

      .brand-tag {
        display: block;
        margin-top: 6px;
        color: rgba(255, 255, 255, 0.64);
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 3px;
      }

      .nav-links {
        display: flex;
        align-items: center;
        gap: clamp(18px, 3vw, 44px);
        color: rgba(255, 255, 255, 0.92);
        font-size: 17px;
        font-weight: 600;
      }

      .nav-links a {
        position: relative;
        padding: 8px 0;
      }

      .nav-links a::after {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        height: 2px;
        background: var(--orange);
        content: "";
        transform: scaleX(0);
        transform-origin: center;
        transition: transform 180ms ease;
      }

      .nav-links a:hover::after,
      .nav-links a:focus-visible::after {
        transform: scaleX(1);
      }

      .hero {
        min-height: 620px;
        display: flex;
        align-items: center;
        color: var(--white);
        background:
          radial-gradient(circle at 62% 22%, rgba(244, 120, 32, 0.55) 0%, rgba(244, 120, 32, 0) 45%),
          linear-gradient(180deg, #1b1b1b 0%, #10181d 100%);
      }

      .hero-inner {
        width: 100%;
        max-width: 1160px;
        margin: 0 auto;
        padding: 145px 28px 82px;
      }

      .eyebrow {
        margin: 0 0 24px;
        color: var(--orange);
        font-size: 14px;
        font-weight: 800;
        letter-spacing: 4px;
        text-transform: uppercase;
      }

      .hero h1 {
        max-width: 745px;
        margin: 0;
        color: var(--white);
        font-size: clamp(42px, 5vw, 58px);
        font-weight: 800;
        line-height: 1.18;
      }

      .hero-copy {
        max-width: 670px;
        margin: 31px 0 30px;
        color: rgba(255, 255, 255, 0.82);
        font-size: 18px;
        font-weight: 400;
        line-height: 1.55;
      }

      .platforms {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 12px;
        color: var(--white);
        font-size: 14px;
        font-weight: 700;
      }

      .platforms b {
        color: rgba(255, 255, 255, 0.5);
        font-size: 13px;
        font-weight: 800;
        letter-spacing: 1.8px;
        text-transform: uppercase;
      }

      .dot {
        color: var(--orange);
      }

      section {
        position: relative;
      }

      .section-inner {
        max-width: 1160px;
        margin: 0 auto;
        padding: 86px 28px;
      }

      .trusted {
        background: var(--soft);
      }

      .trusted .section-inner {
        padding-top: 58px;
        padding-bottom: 60px;
        text-align: center;
      }

      .trusted-label {
        margin: 0 0 34px;
        color: #6d7070;
        font-size: 13px;
        font-weight: 800;
        letter-spacing: 4px;
        text-transform: uppercase;
      }

      .logo-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 34px;
      }

      .client-logo {
        min-height: 116px;
        display: flex;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--line);
        border-radius: 8px;
        background: var(--white);
        color: #777a7a;
        filter: grayscale(1);
        font-weight: 700;
      }

      .client-logo .symbol {
        display: inline-grid;
        width: 48px;
        height: 38px;
        margin-right: 12px;
        place-items: center;
        border: 7px solid currentColor;
        border-radius: 6px;
        font-size: 0;
      }

      .client-logo:nth-child(2) .symbol {
        width: 44px;
        border-radius: 0;
        clip-path: polygon(0 0, 70% 0, 70% 30%, 100% 30%, 100% 100%, 30% 100%, 30% 70%, 0 70%);
      }

      .client-logo:nth-child(3) .symbol {
        width: 36px;
        height: 36px;
        border-radius: 50%;
      }

      .client-logo:nth-child(4) .symbol {
        width: 50px;
        height: 34px;
        border-width: 0;
        background:
          linear-gradient(currentColor 0 0) left / 16px 100% no-repeat,
          linear-gradient(currentColor 0 0) center / 16px 100% no-repeat,
          linear-gradient(currentColor 0 0) right / 16px 100% no-repeat;
      }

      .client-logo strong {
        display: block;
        color: #656868;
        font-size: 22px;
        line-height: 1.1;
      }

      .client-logo small {
        display: block;
        margin-top: 4px;
        color: #8a8d8d;
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 1px;
        text-transform: uppercase;
      }

      .intro {
        background: var(--white);
        text-align: center;
      }

      .intro .section-inner {
        padding-top: 88px;
        padding-bottom: 96px;
      }

      .intro h2,
      .trust h2,
      .support h2 {
        max-width: 1050px;
        margin: 0 auto 28px;
        color: var(--ink);
        font-size: clamp(30px, 4vw, 48px);
        font-weight: 800;
        line-height: 1.2;
      }

      .intro p,
      .support p.lead {
        max-width: 1080px;
        margin: 0 auto;
        color: var(--charcoal);
        font-size: 18px;
      }

      .method-badge {
        display: inline-flex;
        align-items: center;
        gap: 12px;
        margin-top: 44px;
        color: #6c6f6f;
        font-size: 25px;
        font-weight: 600;
      }

      .badge-grid {
        display: grid;
        grid-template-columns: repeat(2, 18px);
        grid-template-rows: repeat(2, 18px);
        gap: 3px;
      }

      .badge-grid i:nth-child(1) {
        background: #f25022;
      }

      .badge-grid i:nth-child(2) {
        background: #7fba00;
      }

      .badge-grid i:nth-child(3) {
        background: #00a4ef;
      }

      .badge-grid i:nth-child(4) {
        background: #ffb900;
      }

      .trust {
        background: var(--soft);
      }

      .trust .section-inner {
        padding-top: 84px;
        padding-bottom: 88px;
        text-align: center;
      }

      .benefit-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 28px;
        margin-top: 38px;
        text-align: left;
      }

      .benefit-card {
        min-height: 260px;
        display: grid;
        grid-template-columns: 42px 1fr;
        gap: 18px;
        padding: 36px 30px;
        border: 1px solid var(--line);
        border-radius: 8px;
        background: var(--white);
        box-shadow: var(--shadow);
      }

      .benefit-number {
        display: inline-grid;
        width: 38px;
        height: 38px;
        place-items: center;
        border-radius: 50%;
        background: var(--orange);
        color: var(--white);
        font-size: 14px;
        font-weight: 800;
      }

      .benefit-card p {
        margin: 0;
        color: var(--charcoal);
        font-size: 17px;
        line-height: 1.55;
      }

      .benefit-card strong {
        color: var(--ink);
        font-weight: 700;
      }

      .support {
        overflow: hidden;
        background: #f6f6f6;
        text-align: center;
      }

      .support .section-inner {
        padding-top: 84px;
        padding-bottom: 70px;
      }

      .support h2 {
        max-width: 900px;
        font-family: "PT Serif", Georgia, serif;
        font-size: clamp(28px, 3vw, 39px);
        font-weight: 400;
      }

      .service-strip {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        max-width: 1080px;
        margin: 60px auto 34px;
        overflow: hidden;
        border-radius: 0 0 14px 14px;
        box-shadow: 0 20px 44px rgba(0, 0, 0, 0.16);
      }

      .service-card {
        position: relative;
        min-height: 450px;
        display: flex;
        align-items: center;
        justify-content: center;
        isolation: isolate;
        overflow: hidden;
        color: var(--white);
        background-image: url("../service-strip.png");
        background-size: 300% 100%;
        background-repeat: no-repeat;
      }

      .service-card:nth-child(1) {
        background-position: left center;
      }

      .service-card:nth-child(2) {
        background-position: center center;
      }

      .service-card:nth-child(3) {
        background-position: right center;
      }

      .service-card::before {
        position: absolute;
        inset: 0;
        z-index: -1;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.9), rgba(102, 188, 70, 0.74) 95%);
        content: "";
      }

      .service-card:nth-child(3)::before {
        background: linear-gradient(to top, rgba(0, 0, 0, 0.88), rgba(4, 174, 198, 0.76) 95%);
      }

      .service-content {
        width: 100%;
        padding: 50px 24px 46px;
        text-align: center;
      }

      .service-content h3 {
        margin: 0 0 18px;
        color: var(--white);
        font-size: clamp(22px, 2vw, 30px);
        font-weight: 700;
        line-height: 1.2;
      }

      .service-content p {
        max-width: 330px;
        margin: 0 auto 30px;
        color: rgba(255, 255, 255, 0.92);
        font-size: 13px;
        font-weight: 600;
        line-height: 1.45;
      }

      .pill-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 142px;
        min-height: 45px;
        padding: 11px 24px;
        border: 1px solid transparent;
        border-radius: 999px;
        background: var(--green);
        color: var(--white);
        font-size: 13px;
        font-weight: 800;
        text-transform: uppercase;
        transition: transform 180ms ease, background 180ms ease;
      }

      .service-card:nth-child(3) .pill-button {
        background: var(--teal);
      }

      .pill-button:hover,
      .pill-button:focus-visible {
        transform: translateY(-2px);
        background: var(--orange);
      }

      .support-note {
        max-width: 700px;
        margin: 0 auto;
        color: #777;
        font-size: 12px;
      }

      .blog,
      .testimonials,
      .faq {
        background: var(--white);
      }

      .blog .section-inner,
      .testimonials .section-inner {
        padding-top: 76px;
        padding-bottom: 82px;
        text-align: center;
      }

      .serif-title {
        margin: 0 0 18px;
        color: #000;
        font-family: "PT Serif", Georgia, serif;
        font-size: clamp(26px, 3vw, 35px);
        font-weight: 400;
        line-height: 1.25;
      }

      .section-subtitle {
        max-width: 860px;
        margin: 0 auto;
        color: #707373;
        font-size: 17px;
      }

      .article-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 28px;
        margin-top: 48px;
        text-align: left;
      }

      .article-card {
        overflow: hidden;
        border-radius: 8px;
        background: var(--white);
      }

      .article-image {
        height: 215px;
        background-image: url("../service-strip.png");
        background-size: 300% 100%;
        background-repeat: no-repeat;
      }

      .article-card:nth-child(1) .article-image {
        background-position: left center;
      }

      .article-card:nth-child(2) .article-image {
        background-position: center center;
      }

      .article-card:nth-child(3) .article-image {
        background-position: right center;
      }

      .article-body {
        min-height: 375px;
        padding: 26px 28px 32px;
        background: linear-gradient(rgba(246, 246, 246, 0.82), #fff 88%);
      }

      .article-date {
        margin: 0 0 18px;
        color: #8a8a8a;
        font-size: 13px;
      }

      .article-body h3 {
        margin: 0 0 16px;
        color: #080808;
        font-family: "PT Serif", Georgia, serif;
        font-size: 26px;
        font-weight: 400;
        line-height: 1.14;
      }

      .article-body p {
        margin: 0 0 20px;
        color: #686b6b;
        font-size: 16px;
        line-height: 1.48;
      }

      .read-more {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 102px;
        min-height: 32px;
        padding: 6px 14px;
        border: 1px solid #222;
        border-radius: 999px;
        color: var(--orange);
        font-size: 13px;
        font-weight: 400;
      }

      .testimonials {
        background: var(--soft);
      }

      .quote-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px;
        margin-top: 44px;
      }

      .quote-card {
        min-height: 242px;
        padding: 38px 32px 30px;
        border: 1px solid var(--line);
        border-radius: 8px;
        background: var(--white);
        text-align: left;
      }

      .quote-card.wide {
        max-width: 520px;
        margin: 0 auto;
        grid-column: 1 / -1;
      }

      .quote-mark {
        display: block;
        margin-bottom: 24px;
        color: var(--orange);
        font-size: 42px;
        font-weight: 800;
        line-height: 0.6;
      }

      .quote-card blockquote {
        margin: 0 0 26px;
        color: #171717;
        font-family: "PT Serif", Georgia, serif;
        font-size: 20px;
        line-height: 1.38;
      }

      .quote-card cite {
        color: #171717;
        font-style: normal;
        font-size: 13px;
        font-weight: 800;
      }

      .quote-card small {
        display: block;
        margin-top: 2px;
        color: #8b8e8e;
        font-size: 12px;
        font-weight: 400;
      }

      .cta {
        min-height: 300px;
        display: grid;
        place-items: center;
        overflow: hidden;
        background:
          linear-gradient(31deg, var(--charcoal) 0 53%, transparent 53%),
          linear-gradient(149deg, rgba(244, 120, 32, 0.88) 0 100%);
        color: var(--white);
        text-align: center;
      }

      .cta::after {
        position: absolute;
        right: -140px;
        bottom: -90px;
        width: 440px;
        height: 250px;
        background: rgba(222, 100, 34, 0.32);
        content: "";
        transform: rotate(-34deg);
      }

      .cta-inner {
        position: relative;
        z-index: 1;
        width: min(760px, calc(100% - 40px));
        padding: 58px 20px;
      }

      .cta h2 {
        margin: 0 auto 34px;
        color: var(--white);
        font-family: "PT Serif", Georgia, serif;
        font-size: clamp(26px, 3.4vw, 36px);
        font-weight: 700;
        line-height: 1.25;
      }

      .cta .pill-button {
        background: var(--orange);
      }

      .faq {
        background: linear-gradient(rgba(68, 69, 69, 0.1), #fff 90%);
      }

      .faq .section-inner {
        max-width: 960px;
        padding-top: 42px;
        padding-bottom: 76px;
      }

      .faq .serif-title {
        margin-bottom: 28px;
        text-align: center;
      }

      .faq-item {
        border-top: 1px solid #d4d2cf;
      }

      .faq-item:last-child {
        border-bottom: 1px solid #d4d2cf;
      }

      .faq-button {
        display: flex;
        width: 100%;
        align-items: center;
        justify-content: space-between;
        gap: 22px;
        padding: 20px 18px;
        border: 0;
        background: transparent;
        color: #545656;
        text-align: left;
        cursor: pointer;
        font-family: "PT Serif", Georgia, serif;
        font-size: 19px;
        line-height: 1.35;
      }

      .faq-icon {
        display: inline-grid;
        width: 20px;
        height: 20px;
        flex: 0 0 auto;
        place-items: center;
        border: 1px solid var(--orange);
        border-radius: 50%;
        color: var(--orange);
        font-family: "Poppins", Arial, sans-serif;
        font-size: 17px;
        font-weight: 400;
        line-height: 1;
      }

      .faq-answer {
        display: none;
        padding: 0 18px 24px;
        color: #666969;
        font-size: 16px;
      }

      .faq-item.open .faq-answer {
        display: block;
      }

      .faq-item.open .faq-icon {
        background: var(--orange);
        color: var(--white);
      }

      .footer {
        background: #072A4A;
        color: rgba(255, 255, 255, 0.74);
      }

      .footer-top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
        max-width: 1160px;
        margin: 0 auto;
        padding: 30px 28px;
      }

      .footer .brand-name {
        font-size: 42px;
      }

      .footer-social {
        display: flex;
        align-items: center;
        gap: 16px;
      }

      .circle-link {
        display: inline-grid;
        width: 30px;
        height: 30px;
        place-items: center;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.82);
        color: var(--charcoal);
        font-size: 15px;
        font-weight: 800;
      }

      .outline-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 150px;
        min-height: 40px;
        padding: 9px 22px;
        border: 1px solid rgba(255, 255, 255, 0.88);
        border-radius: 999px;
        color: var(--orange);
        font-size: 13px;
        font-weight: 800;
        text-transform: uppercase;
      }

      .footer-rule {
        max-width: 1160px;
        height: 1px;
        margin: 0 auto;
        background: linear-gradient(90deg, var(--orange), var(--green), var(--teal), #f1bc32);
      }

      .footer-main {
        display: grid;
        grid-template-columns: 1.15fr 1fr 1.1fr 1fr;
        max-width: 1160px;
        margin: 0 auto;
        padding: 30px 28px 86px;
      }

      .footer-column {
        min-height: 270px;
        padding: 0 46px;
        border-left: 1px solid rgba(255, 255, 255, 0.14);
      }

      .footer-column:first-child {
        padding-left: 0;
        border-left: 0;
      }

      .footer h3 {
        margin: 0 0 18px;
        color: var(--white);
        font-family: "PT Serif", Georgia, serif;
        font-size: 23px;
        font-weight: 700;
        line-height: 1.18;
      }

      .footer p,
      .footer li {
        margin: 0;
        color: rgba(255, 255, 255, 0.78);
        font-size: 15px;
        font-weight: 500;
        line-height: 1.55;
      }

      .footer ul {
        display: grid;
        gap: 13px;
        margin: 0;
        padding: 0;
        list-style: none;
      }

      .footer-bottom {
        display: flex;
        justify-content: space-between;
        gap: 20px;
        max-width: 1160px;
        margin: 0 auto;
        padding: 0 28px 32px;
        color: rgba(255, 255, 255, 0.76);
        font-size: 12px;
        font-weight: 600;
      }

      .back-top {
        position: fixed;
        z-index: 15;
      }

      .back-top {
        right: 50%;
        bottom: 18px;
        display: grid;
        width: 32px;
        height: 32px;
        place-items: center;
        border-radius: 50%;
        background: rgba(68, 69, 69, 0.8);
        color: var(--white);
        font-size: 22px;
        line-height: 1;
        opacity: 0;
        pointer-events: none;
        transform: translateX(50%);
        transition: opacity 180ms ease;
      }

      .back-top.visible {
        opacity: 1;
        pointer-events: auto;
      }

      

      

      
      .alt-services { background:#e0f0ff; color:#072A4A; scroll-margin-top:108px; }
      #apropos { scroll-margin-top:108px; }
      .alt-services .section-inner { max-width:1480px; padding:60px 32px 72px; }
      .alt-intro h2 { font-size:36px; letter-spacing:0; }
      
      .service-tabs { display:flex; flex-wrap:wrap; gap:0; margin-bottom:64px; }
      .service-tabs button { display:inline-flex; align-items:center; gap:9px; border:0; border-radius:8px; background:transparent; color:#0061AA; padding:16px; min-height:54px; font-family:"Montserrat","Poppins",Arial,sans-serif; font-size:14px; font-weight:500; line-height:20px; letter-spacing:0; cursor:pointer; }
      .service-tabs svg { width:20px; height:20px; flex-shrink:0; color:currentColor; }
      .service-tabs button span { min-width:0; }
      .service-tabs button:hover { background:#c9e5fa; }
      .service-tabs button[aria-selected="true"] { background:#7BCAFE; color:#0061AA; font-weight:700; }
      .alt-services :focus-visible { outline:3px solid #07558b; outline-offset:4px; }
      .service-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:start; }
      .service-visual { margin:0; padding-top:12px; }
      .service-photo { position:relative; aspect-ratio:3 / 2; overflow:hidden; border-radius:8px; }
      .service-photo img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
      .service-photo img[hidden] { display:none; }
      @media (min-width:1051px) {
        .service-photo img[data-service-visual="panel-securite"] { object-position:right center; }
      }
      .service-panels { min-width:0; min-height:640px; }
      .service-panels [hidden] { display:none; }
      .product-signature { height:36px; margin:0 0 18px; display:flex; align-items:center; }
      .product-signature img { width:auto; max-width:100%; height:auto; max-height:36px; object-fit:contain; mix-blend-mode:multiply; }
      .cloud-label { margin:0 0 18px; min-height:36px; display:flex; align-items:center; color:#07558b; font-size:18px; font-weight:700; }
      .service-panels :is(h2,h3) { color:#0b1720; font-size:44px; font-weight:700; line-height:1.12; margin:0 0 20px; letter-spacing:0; }
      .service-lead { font-size:18px; font-weight:400; line-height:1.55; margin:0 0 38px; }
      .service-points { list-style:none; margin:0 0 28px; padding:0; display:grid; gap:16px; }
      .service-points li { position:relative; padding-left:26px; font-size:16px; line-height:1.5; }
      .service-points li::before { content:'\2713'; position:absolute; left:0; top:3px; display:grid; place-items:center; width:17px; height:17px; background:#086aae; color:white; border-radius:50%; font-size:12px; font-weight:700; }
      .service-points strong { display:block; color:#0b1720; font-weight:700; }
      .service-points span { display:block; font-weight:400; }
      .service-contact { display:inline-flex; align-items:center; gap:14px; color:#07558b; font-size:16px; font-weight:600; text-decoration:underline; text-underline-offset:5px; }
      
      
      /* Header and hero variant; the original page is kept separately. */
      .site-header { background:transparent; }
      .site-header .nav { padding-top:8px; padding-bottom:8px; }
      .alt-wordmark { display:flex; flex-direction:column; color:#fff; line-height:1; min-width:190px; }
      .alt-wordmark { position:relative; width:243px; min-width:0; aspect-ratio:1250 / 430; transition:width 220ms ease; }
      .alt-logo { width:100%; height:auto; }
      .alt-logo-blue { position:absolute; inset:0; opacity:0; }
      .site-header.scrolled .alt-wordmark { width:162px; }
      .site-header.scrolled .alt-logo-white { opacity:0; }
      .site-header.scrolled .alt-logo-blue { opacity:1; }
      .site-header.scrolled { background:#fff; color:#072A4A; box-shadow:0 3px 18px rgba(13,12,90,.12); }
      .site-header.scrolled .alt-wordmark { color:#072A4A; }
      .site-header.scrolled .alt-wordmark-main { font-size:40px; }
      .site-header.scrolled .alt-wordmark-sub { font-size:13px; }
      .site-header.scrolled .nav-links { color:#072A4A; }
      .site-header .nav-links a::after { background:currentColor; }
      .hero { background:#072A4A url("../hero-alt-bleu-texture.webp") left center / cover no-repeat; }
      .hero-inner { padding-top:156px; padding-bottom:56px; }
      /* Desktop breathing room without adding height twice through min-height. */
      
      
      .hero .eyebrow { margin-bottom:14px; font-size:20px; letter-spacing:0; }
      .hero-copy { max-width:760px; margin-top:24px; margin-bottom:22px; }
      .hero-signature { margin:0 0 8px; color:#fff; font-size:22px; font-weight:600; }
      .hero-method { margin:0; color:#fff; font-size:16px; font-weight:400; }
      .hero .eyebrow,.hero .platforms b,.hero .dot { color:#fff; }
      .hero h1 { font-size:58px; }
      
      
      .site-header .nav-links { display:grid; grid-template-columns:auto auto; column-gap:28px; row-gap:0; font-size:16px; }
      .nav-utilities { grid-column:1 / -1; grid-row:1; display:flex; align-items:center; justify-content:flex-end; gap:12px; color:#FFFFFF; font-size:15px; font-weight:600; }
      .nav-utilities a { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 10px; white-space:nowrap; }
      .nav-utilities svg { width:18px; height:18px; flex-shrink:0; }
      .site-header.scrolled .nav-utilities { color:#072A4A; }
      .nav-primary { grid-column:1; grid-row:2; display:flex; align-items:center; gap:24px; }
      .site-header .nav-links .nav-cta { grid-column:2; grid-row:2; }
      .site-header .nav-links .nav-cta { display:inline-flex; justify-content:center; align-items:center; min-height:42px; padding:0 16px; border-radius:5px; background:#1769E0; color:#FFFFFF; font-size:14px; font-weight:600; line-height:1.3; white-space:nowrap; text-align:center; }
      .site-header .nav-links .nav-cta::after { display:none; }
      .site-header.scrolled .nav-links .nav-cta { background:#1769E0; color:#FFFFFF; }
      .hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:28px; }
      .hero-button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:10px 16px; border:1px solid #245EA8; border-radius:5px; background:#245EA8; color:#FFFFFF; font-size:14px; font-weight:600; line-height:20px; text-align:center; }
      .hero-button-secondary { background:transparent; border-color:#FFFFFF; color:#FFFFFF; }
      .site-header .nav-links .nav-cta:hover,
      .site-header.scrolled .nav-links .nav-cta:hover { background:#1254B5; }
      .hero-button:not(.hero-button-secondary) { background:#1769E0; border-color:#1769E0; }
      .hero-button:not(.hero-button-secondary):hover { background:#1254B5; border-color:#1254B5; }
      .hero-button-secondary:hover { background:rgba(255,255,255,.1); }
      .hero-button:focus-visible { outline:2px solid #FFFFFF; outline-offset:4px; }
      .nav-client { cursor:default; }
      .nav-utilities [aria-disabled="true"] { cursor:default; }
      .nav-toggle { display:none; border:1px solid currentColor; background:transparent; color:inherit; border-radius:4px; width:44px; height:44px; padding:10px; align-items:center; justify-content:center; flex-direction:column; gap:5px; cursor:pointer; }
      .nav-toggle span { display:block; width:22px; height:2px; background:currentColor; }
      .site-header :focus-visible { outline:2px solid currentColor; outline-offset:4px; }
      
      .site-header.services-open:not(.scrolled) { background:#072A4A; }
      .services-toggle { position:relative; display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:8px 0; border:0; background:transparent; color:inherit; font-size:inherit; font-weight:600; line-height:1.6; cursor:pointer; }
      .services-toggle svg { width:18px; height:18px; flex-shrink:0; transition:transform 180ms ease; }
      .services-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
      .services-toggle::after { content:""; position:absolute; bottom:0; left:0; right:0; height:3px; background:#245EA8; transform:scaleX(0); }
      .services-toggle:hover::after,.services-toggle[aria-expanded="true"]::after { transform:scaleX(1); }
      .mega-panel { position:absolute; top:100%; left:20px; right:20px; max-width:1320px; margin:0 auto; padding:32px 12px; border:1px solid #dce4ee; border-radius:8px; background:#FFFFFF; color:#072A4A; box-shadow:0 16px 40px rgba(0,0,0,.18); max-height:calc(100dvh - 118px); overflow-y:auto; overscroll-behavior:contain; }
      .mega-panel[hidden],.mega-backdrop[hidden] { display:none; }
      .mega-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
      .mega-column { min-width:0; padding:0 24px; }
      .mega-column + .mega-column { border-left:1px solid #e0e7ef; }
      .mega-column h2 { display:grid; grid-template-columns:26px minmax(0,1fr); align-items:start; gap:10px; margin:0 0 20px; color:#072A4A; font-size:23px; font-weight:700; line-height:1.25; letter-spacing:0; white-space:normal; }
      .mega-column h2 svg { width:26px; height:26px; margin-top:1px; color:#0b8999; }
      @media (min-width:1051px) {
        .mega-column:first-child h2 svg { color:#1769E0; }
        .site-header .mega-column h2 a { min-height:0; padding:0; color:inherit; font:inherit; line-height:inherit; white-space:normal; }
        .site-header .mega-column h2 a::after { display:none; }
        .site-header .mega-column h2 a:hover { color:#1769E0; text-decoration:underline; text-underline-offset:5px; }
        .site-header .mega-column h2 a:focus-visible { outline:2px solid #1769E0; outline-offset:4px; }
      }
      .mega-column:nth-child(2) h2 svg { color:#8850c4; }
      .mega-column:nth-child(3) h2 svg { color:#16816e; }
      .mega-links { margin:0; padding:0; list-style:none; display:grid; gap:8px; }
      .site-header .mega-links a { display:flex; align-items:center; min-height:44px; padding:10px 0; color:#245384; font-size:16px; font-weight:400; line-height:1.5; white-space:normal; }
      .site-header .mega-links a::after { display:none; }
      .site-header .mega-links a:hover { color:#174b91; text-decoration:underline; text-underline-offset:5px; }
      .mega-backdrop { position:fixed; inset:0; z-index:19; background:rgba(7,42,74,.18); backdrop-filter:blur(3px); }
      
      
      #contact { scroll-margin-top:108px; }
      .alt-intro .section-inner { padding-top:60px; padding-bottom:60px; }
      .alt-intro .intro-summary { max-width:970px; margin:0 auto 44px; color:#243e52; font-size:21px; font-weight:400; line-height:1.65; }
      .company-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:0; padding:0; list-style:none; }
      .company-facts li { display:flex; flex-direction:column; align-items:center; min-width:0; text-align:center; }
      .company-facts svg { width:34px; height:34px; margin-bottom:14px; color:#245EA8; }
      .company-facts li:nth-child(2) svg { color:#167b80; }
      .company-facts li:nth-child(3) svg { color:#7752a2; }
      .company-facts strong { color:#072A4A; font-size:20px; font-weight:700; line-height:1.4; }
      .company-facts span { display:block; margin-top:5px; color:#536673; font-size:14px; font-weight:400; line-height:1.5; }
      
      

/* alt-hero-facts-layout */
      .hero {
        background-image: linear-gradient(to bottom, rgba(7,42,74,.12) 45%, rgba(7,42,74,.9) 100%), url("../hero-alt-bleu-texture.webp");
        background-position: center, right center;
      }
      .hero .hero-inner { padding-bottom:36px; }
      .hero .eyebrow { font-size:14px; font-weight:500; }
      .hero-signature { max-width:680px; font-size:18px; font-weight:400; }
      .hero .hero-facts {
        margin-top:40px;
        padding-top:24px;
        border-top:1px solid rgba(255,255,255,.2);
      }
      .hero-facts li {
        display:grid;
        grid-template-columns:22px minmax(0,1fr);
        column-gap:12px;
        align-content:start;
        text-align:left;
      }
      .hero .hero-facts li svg {
        grid-row:1 / 3;
        width:22px;
        height:22px;
        margin:0;
        color:#FFFFFF;
      }
      .hero .hero-facts strong, .hero .hero-facts span { color:#FFFFFF; }
      .hero .hero-facts strong { font-size:16px; font-weight:500; }
      .hero-facts span { grid-column:2; }
      .alt-intro .intro-summary { margin-bottom:0; font-size:18px; font-weight:400; line-height:1.65; }
      .alt-intro .intro-summary + .intro-summary { margin-top:18px; }
      .alt-intro .intro-eyebrow { margin:0 0 16px; color:#1769E0; font-size:14px; font-weight:500; letter-spacing:0; }
      .alt-intro h2 { margin-bottom:20px; color:#000000; font-size:18px; font-weight:600; line-height:1.5; }
      
      
      
      

/* alt-blog-layout */
      .blog { background:#F7F8FA; }
      .blog .serif-title { font-family:inherit; font-size:30px; font-weight:600; color:#0D0C5A; }
      .blog .article-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
      .blog .article-card { display:flex; flex-direction:column; min-width:0; background:#FFFFFF; border-radius:8px; box-shadow:0 3px 16px rgba(13,12,90,.08); }
      .blog .article-media { position:relative; }
      .blog .article-category { position:absolute; bottom:14px; left:16px; max-width:calc(100% - 32px); padding:4px 9px; border-radius:3px; background:#1769E0; color:#FFFFFF; font-size:12px; font-weight:600; line-height:1.4; }
      .blog .article-image { width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; background:none; }
      .blog .article-body { display:flex; flex-direction:column; flex:1; min-height:0; padding:24px 20px; }
      .blog .article-body h3 { font-family:inherit; font-size:20px; font-weight:600; line-height:1.35; color:#000000; }
      .blog .article-body p { font-size:16px; line-height:1.6; color:#000000; }
      .blog .article-body p:not(.article-date) { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
      .blog .article-body .article-date { font-size:13px; font-weight:500; }
      .blog .read-more { align-self:flex-start; margin-top:auto; padding:10px 0 0; border:0; border-radius:0; background:none; color:#1769E0; font-size:16px; font-weight:500; }
      .blog .read-more[aria-disabled="true"] { cursor:default; }
      .blog .article-card { position:relative; }
      .blog .article-card a.read-more[href]::after { content:""; position:absolute; inset:0; z-index:1; }
      .blog .article-card:has(a.read-more[href]):hover { box-shadow:0 4px 18px rgba(13,12,90,.16); }
      .blog .article-card:has(a.read-more[href]:focus-visible) { outline:3px solid #1769E0; outline-offset:3px; }
      .blog .article-created { display:block; margin-top:4px; }
      .blog .articles-more { display:flex; justify-content:center; margin-top:32px; }
      .blog .articles-more-link { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 20px; border:1px solid #1769E0; border-radius:5px; background:transparent; color:#1769E0; font-size:16px; font-weight:600; text-align:center; }
      

/* alt-faq-layout */
      .faq { background:#FFFFFF; }
      .faq .serif-title { font-family:inherit; font-size:30px; font-weight:600; color:#000000; }
      .faq .faq-button { font-family:inherit; font-size:18px; font-weight:500; color:#000000; }
      .faq .faq-item { border-color:#DDE1E7; }
      .faq .faq-icon,
      .faq .faq-item.open .faq-icon { border:0; border-radius:0; background:transparent; color:#1769E0; font-size:24px; width:24px; height:24px; }
      .faq .faq-team-link { display:inline-block; margin-top:16px; color:#1769E0; font-weight:600; }
      .faq .faq-answer { font-size:18px; line-height:1.65; }
      .faq .faq-answer[hidden] { display:none; }
      .faq-button:focus-visible { outline:2px solid #1769E0; outline-offset:-2px; }
      .cta { background:#082E51; }
      .cta::after { display:none; }
      .cta h2 { font-family:inherit; }
      .cta .pill-button { background:#1769E0; border-radius:5px; }
      .cta .pill-button[aria-disabled="true"] { cursor:default; }
      

/* alt-stable-header */
      .site-header { background:transparent; color:#FFFFFF; transition:background-color 220ms ease, box-shadow 220ms ease; }
      .site-header.scrolled,
      .site-header.menu-open,
      .site-header.services-open:not(.scrolled) { background:#082E51; color:#FFFFFF; box-shadow:0 2px 8px rgba(0,0,0,.08); }
      .site-header .alt-wordmark { width:243px; flex-shrink:0; color:#FFFFFF; transition:width 220ms ease, flex-basis 220ms ease; }
      .site-header.scrolled .alt-wordmark { width:184px; }
      .site-header .alt-logo-white,
      .site-header.scrolled .alt-logo-white { opacity:1; }
      .site-header .alt-logo-blue,
      .site-header.scrolled .alt-logo-blue { opacity:0; }
      .site-header .nav { padding-top:8px; padding-bottom:8px; transition:padding 220ms ease; }
      .site-header.scrolled .nav { padding-top:6px; padding-bottom:6px; }
      .site-header .nav-links { grid-template-rows:36px 44px; row-gap:8px; transition:grid-template-rows 220ms ease, row-gap 220ms ease; }
      .site-header.scrolled .nav-links { grid-template-rows:0px 44px; row-gap:0; }
      .site-header .nav-utilities { height:36px; min-height:0; overflow:hidden; opacity:1; visibility:visible; transition:height 220ms ease, opacity 140ms ease, visibility 0s; }
      .site-header .nav-utilities a { min-height:36px; padding:0 10px; }
      .site-header.scrolled .nav-utilities { height:0; opacity:0; visibility:hidden; pointer-events:none; transition:height 220ms ease, opacity 140ms ease, visibility 0s 220ms; }
      .site-header .nav-utilities .nav-phone { height:36px; padding:0 10px; border:0; border-radius:0; background:transparent; color:#FFFFFF; font-size:14px; }
      .site-header .nav-phone::after { display:none; }
      .site-header .nav-utilities a:focus-visible { outline-offset:-3px; }
      .site-header .nav-phone:hover { background:transparent; text-decoration:underline; text-underline-offset:4px; }
      .nav-call-mobile { display:none; align-items:center; justify-content:center; width:44px; height:44px; flex:0 0 44px; border:1px solid rgba(255,255,255,.7); border-radius:4px; color:#FFFFFF; }
      .nav-call-mobile svg { width:22px; height:22px; }
      .nav-call-mobile:hover { background:rgba(255,255,255,.1); }
      .site-header.scrolled .nav-links,
      .site-header.scrolled .nav-utilities { color:#FFFFFF; }
      :is(#services, #apropos, #articles, #contact, #contact-form-section) { scroll-margin-top:96px; }
      
      
      

/* alt-testimonials-layout */
      .testimonials { background:#082E51 url("../temoignages-bleu-grain.webp") center / cover no-repeat; }
      .testimonials .section-inner { max-width:1320px; padding-top:32px; padding-bottom:32px; }
      .testimonials #quote-title { color:#FFFFFF; font-family:inherit; font-size:30px; font-weight:700; margin-bottom:20px; }
      .testimonials .quote-grid { margin-top:0; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc((100% - 40px) / 3); gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
      .testimonials .quote-grid::-webkit-scrollbar { display:none; }
      .testimonials .quote-card { display:flex; flex-direction:column; min-width:0; scroll-snap-align:start; padding:24px; border:0; border-radius:8px; background:#FFFFFF; }
      .testimonials .quote-company { margin:0 0 20px; color:#082E51; font-size:18px; font-weight:700; }
      .testimonials .quote-mark { color:#1769E0; margin-bottom:16px; }
      .testimonials .quote-card blockquote { font-family:inherit; font-size:18px; line-height:1.55; margin-bottom:20px; }
      .testimonials .quote-author { margin-top:auto; padding-top:18px; border-top:1px solid #DDE1E7; }
      .testimonials .quote-card cite { color:#082E51; font-size:17px; font-weight:600; }
      .testimonials .quote-card small { color:#536673; font-size:15px; }
      .quote-controls { display:flex; justify-content:center; gap:12px; margin-top:18px; }
      .quote-controls button { display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(255,255,255,.6); border-radius:50%; background:transparent; color:#FFFFFF; cursor:pointer; }
      .quote-controls button:disabled { opacity:.35; cursor:default; }
      .quote-controls svg { width:20px; height:20px; }
      .quote-controls button:focus-visible,.testimonials .quote-grid:focus-visible { outline:2px solid #FFFFFF; outline-offset:3px; }
      
      

/* alt-footer-layout */
      .footer { background:#082E51; }
      .footer-top,.footer-main,.footer-bottom { max-width:1320px; }
      .footer-logo { display:block; width:210px; flex-shrink:0; }
      .footer-logo img { width:100%; height:auto; }
      .footer .outline-button { border:1px solid #FFFFFF; border-radius:5px; color:#FFFFFF; text-transform:none; font-size:14px; font-weight:600; }
      .footer-linkedin { display:grid; place-items:center; width:40px; height:40px; color:#FFFFFF; font-size:28px; font-weight:700; line-height:1; }
      .footer-rule { max-width:1264px; width:calc(100% - 56px); background:rgba(255,255,255,.35); }
      .footer-main { grid-template-columns:1.15fr 1fr 1fr 1.1fr; gap:32px; padding:36px 28px 56px; }
      .footer .footer-column { min-height:0; padding:0; border:0; min-width:0; }
      .footer h3 { font-family:inherit; font-size:22px; font-weight:600; }
      .footer p,.footer li { font-size:16px; font-weight:400; line-height:1.65; overflow-wrap:anywhere; }
      .footer .footer-emergency { margin-top:24px; }
      .footer-bottom { align-items:center; border:0; gap:24px; font-weight:400; font-size:14px; }
      .footer-legal { display:grid; gap:6px; margin-left:auto; }
      .footer-top-link { display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; border:1px solid #FFFFFF; border-radius:50%; font-size:24px; }
      .footer a[href]:hover { text-decoration:underline; text-underline-offset:4px; }
      .footer a:focus-visible { outline:2px solid #FFFFFF; outline-offset:4px; }
      .cta#contact { min-height:0; background:#E7EFF5; color:#000000; }
      .cta#contact .cta-inner { padding:48px 20px; }
      .cta#contact h2 { font-size:30px; font-family:inherit; margin-bottom:16px; color:#0D0C5A; }
      .cta#contact p { margin:0 0 24px; color:#000000; font-size:18px; }
      .cta#contact .pill-button { min-height:42px; padding:10px 16px; background:#1769E0; color:#FFFFFF; font-size:14px; font-weight:600; text-transform:none; }
      
      

/* alt-footer-coordinates */
      .footer-main { padding-top:48px; padding-bottom:40px; }
      .footer-column .footer-logo { width:210px; max-width:100%; margin-bottom:24px; }
      .footer-address { font-style:normal; font-size:16px; line-height:1.65; overflow-wrap:anywhere; }
      .footer-address a { display:inline-block; margin-top:12px; }
      .footer .footer-holidays { margin-top:12px; font-size:14px; }
      .footer-bottom { padding-top:24px; flex-wrap:wrap; gap:16px; }
      .footer-legal { display:flex; flex-wrap:wrap; gap:8px 16px; margin-left:0; }
      .footer-follow { display:flex; align-items:center; gap:8px; margin-left:auto; }
      .footer-follow > span { margin-right:8px; }
      .footer-social-icon { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; color:#FFFFFF; }
      .footer-social-icon svg { display:block; width:22px; height:22px; fill:currentColor; }

/* Compact desktop footer groups. */
@media (min-width:1001px) {
  .footer-main { padding-top:40px; padding-bottom:32px; }
  .footer-main > .footer-column:last-child { text-align:center; }
  /* Compensate the logo SVG's 62-unit left inset in its 1250-unit viewBox. */
  .footer-column .footer-logo img { transform:translateX(-4.96%); }
  .footer .footer-hours { font-weight:500; }
  .footer .footer-holidays { margin-top:4px; font-size:14px; }
  .footer .footer-emergency { margin-top:16px; }
  .footer-emergency > span { font-weight:500; }
  .footer .footer-client-cta {
    display:flex;
    width:194px;
    max-width:100%;
    min-width:0;
    min-height:48px;
    margin:28px auto 0;
    padding:12px 16px;
    background:transparent;
    text-align:center;
    line-height:1.4;
  }
  .footer .footer-client-cta:is(:hover,:focus-visible) { background:rgba(255,255,255,.08); text-decoration:none; }
  .footer-bottom { padding-top:16px; padding-bottom:18px; gap:12px 24px; }
  .footer-legal { align-items:center; gap:8px 12px; }
  .footer-legal > a { border-left:1px solid rgba(255,255,255,.35); padding-left:12px; }
  .footer-follow { justify-content:flex-start; flex-shrink:0; gap:0; }
  .footer-follow > span { margin-right:0; }
  .footer-follow .footer-social-icon svg { width:24.2px; height:24.2px; }
  .footer-follow .footer-social-icon + .footer-social-icon svg { transform:translateX(-6px); }
}
      

/* alt-contact-drawer */
      html.contact-open { overflow:hidden; }
      .contact-drawer { position:fixed; inset:0 0 0 auto; margin:0; width:min(560px,100%); max-width:100%; height:100dvh; max-height:100dvh; box-sizing:border-box; padding:32px; border:0; background:#F7F8FA; color:#000000; overflow-y:auto; overscroll-behavior:contain; }
      .contact-drawer[open] { animation:contact-enter 180ms ease-out; }
      .contact-drawer::backdrop { background:rgba(7,42,74,.6); }
      .contact-drawer-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
      .contact-drawer-top img { width:140px; height:auto; }
      .contact-close { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; padding:10px; border:0; background:transparent; color:#082E51; cursor:pointer; }
      .contact-close svg { width:24px; height:24px; }
      .contact-drawer h2 { margin:0 0 12px; color:#0D0C5A; font-size:28px; font-weight:600; line-height:1.3; }
      .contact-drawer p { font-size:16px; line-height:1.6; margin:0 0 24px; }
      .drawer-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
      .drawer-field { display:flex; flex-direction:column; gap:6px; min-width:0; }
      .drawer-field label { font-size:14px; font-weight:500; }
      .drawer-field input,.drawer-field textarea,.drawer-field select { width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid #9CAFC0; border-radius:4px; font:inherit; font-size:16px; line-height:1.4; }
      .drawer-field textarea { min-height:100px; resize:vertical; }
      .drawer-wide { grid-column:1 / -1; }
      .drawer-submit { min-height:44px; padding:12px 16px; background:#1769E0; color:#FFFFFF; border:0; border-radius:5px; font-size:14px; font-weight:600; cursor:not-allowed; }
      .contact-drawer .drawer-status { margin:0; font-size:13px; }
      .contact-drawer .drawer-consent { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:start; gap:10px; margin:0; font-size:14px; line-height:1.6; }
      .drawer-consent input { width:18px; height:18px; margin:2px 0 0; accent-color:#1769E0; cursor:pointer; }
      .drawer-consent label { cursor:pointer; }
      .drawer-consent a { color:#1769E0; font-weight:600; text-decoration:underline; }
      .drawer-captcha { min-width:0; margin:0; padding:0; border:0; }
      .drawer-captcha legend { padding:0; margin-bottom:8px; font-size:14px; font-weight:600; }
      .contact-drawer .drawer-captcha p { margin:0; font-size:13px; }
      .contact-drawer :focus-visible { outline:2px solid #1769E0; outline-offset:3px; }
      .drawer-person { display:none; }
      .drawer-main { min-width:0; }
      .drawer-services { min-width:0; margin:0; padding:0; border:0; }
      .drawer-services legend { padding:0; margin-bottom:8px; font-size:14px; font-weight:500; }
      .drawer-service-options { display:flex; flex-wrap:wrap; gap:8px 24px; }
      .drawer-service-options label { display:flex; align-items:center; gap:8px; min-height:32px; font-size:14px; cursor:pointer; }
      .drawer-service-options input { flex:0 0 18px; width:18px; height:18px; margin:0; accent-color:#1769E0; }
      @media (min-width:1051px) {
        .contact-drawer { width:min(1000px,100%); padding:24px 40px 40px; }
        .contact-drawer[open] { display:grid; grid-template-columns:208px minmax(0,1fr) 44px; align-items:start; align-content:start; gap:32px 40px; }
        .contact-drawer :is(.contact-drawer-top,.contact-drawer-content,.drawer-main) { display:contents; }
        .contact-drawer-top img { width:184px; grid-column:1; grid-row:1; justify-self:center; }
        .contact-drawer .contact-close { grid-column:3; grid-row:1; }
        .drawer-intro { grid-column:2; grid-row:1; min-width:0; }
        .contact-drawer .drawer-intro p { margin-bottom:0; }
        .contact-drawer .drawer-intro strong { font-weight:600; }
        .contact-drawer .drawer-person { display:block; grid-column:1; grid-row:2; margin:0; text-align:center; color:#000000; }
        .drawer-person-portrait { display:block; width:208px; height:208px; margin:0 0 20px; overflow:hidden; border-radius:50%; background:#E7EFF5; }
        .drawer-person-portrait img { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1.18); transform-origin:center 20%; }
        .drawer-person figcaption { display:grid; gap:8px; font-size:14px; line-height:1.5; }
        .drawer-person strong { font-size:18px; font-weight:600; }
        .drawer-person-name { display:flex; align-items:center; justify-content:center; gap:8px; }
        .contact-drawer .drawer-person-linkedin { display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; color:#1769E0; border-radius:4px; }
        .drawer-person-linkedin svg { width:20.7px; height:20.7px; fill:currentColor; }
        .drawer-person-linkedin:hover { background:#E7EFF5; }
        .drawer-form { grid-column:2 / -1; grid-row:2; min-width:0; gap:20px 24px; }
        .contact-drawer .drawer-service-options input,
        .contact-drawer .drawer-consent input { accent-color:var(--ps-purple,#1769E0); }
      }
      @keyframes contact-enter { from { transform:translateX(100%); } to { transform:translateX(0); } }
      
      

/* alt-services-compact-trial */
      /* Remove this block to undo only the compact services trial. */
      .alt-services .service-tabs { margin-bottom:44px; }
      .alt-services .service-panels :is(h2,h3) { font-size:34px; line-height:1.2; }
      .alt-services .service-points { gap:12px; }
      .alt-services .service-contact { min-height:44px; max-width:100%; padding:10px 16px; border:1px solid #1769E0; border-radius:5px; background:transparent; color:#1769E0; line-height:1.5; text-decoration:none; }
      .alt-services .service-contact[href]:hover { background:rgba(23,105,224,.06); }
      .alt-services .service-contact:focus-visible { outline:2px solid #1769E0; outline-offset:3px; }
      
      

/* alt-palette-test-20261008 */
      /* Isolated color trial; remove this block to restore the previous palette. */
      :root {
        --alt-title: #0D0C5A;
        --alt-text: #000000;
        --alt-white: #FFFFFF;
        --alt-facts-bg: #F7F8FA;
        --alt-services-bg: #E7EFF5;
        --alt-footer-bg: #082E51;
      }
      body { color: var(--alt-text); }
      main :is(h1, h2, h3, h4, h5, h6),
      .service-panels :is(h2,h3), .article-body h3, .serif-title,
      .mega-column h2, .company-facts strong, .cloud-label,
      .faq-button { color: var(--alt-title); }
      main p, .article-body p, .section-subtitle, .lead, .support-note,
      .alt-intro .intro-summary, .company-facts span,
      .service-points, .service-points strong, .faq-answer,
      .quote-card blockquote, .quote-card cite, .quote-card small {
        color: var(--alt-text);
      }
      .alt-intro { background: var(--alt-facts-bg); }
      .alt-services { background: var(--alt-services-bg); color: var(--alt-text); }
      .alt-services > .section-inner > h2 { color:#000000; }
      .article-card, .article-body, .quote-card, .mega-panel,
      input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
      textarea, select { background: var(--alt-white); }
      input, textarea, select { color: var(--alt-text); }
      .footer { background: var(--alt-footer-bg); color: var(--alt-white); }
      .hero, .cta, .service-card { color: var(--alt-white); }
      .hero :is(h1, h2, p), .cta :is(h2, p),
      .service-card :is(h3, p), .footer :is(h3, p, li),
      .footer-bottom, .footer .outline-button, .footer .brand-tag,
      .site-header:not(.scrolled) .nav-links { color: var(--alt-white); }

/* alt-design-refinement */
      .alt-intro h2 { max-width:900px; margin:0 auto 24px; font-size:32px; line-height:1.25; }
      .alt-services .section-inner { max-width:1320px; padding-left:28px; padding-right:28px; }
      .alt-method { background:#FFFFFF; }
      .alt-method .section-inner { max-width:1320px; margin:0 auto; padding:56px 28px; }
      .alt-method h2 { margin:0 0 36px; text-align:center; font-size:30px; line-height:1.25; }
      .method-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; }
      .alt-method .method-intro { max-width:970px; margin:-12px auto 36px; text-align:center; font-size:18px; line-height:1.65; }
      .method-grid article { min-width:0; }
      .method-grid svg { width:32px; height:32px; color:#1769E0; margin-bottom:16px; }
      .method-grid h3 { margin:0 0 12px; font-size:20px; font-weight:600; }
      .method-grid p { margin:0; font-size:16px; line-height:1.65; }
      .quote-controls button { border-color:#FFFFFF; }
      .quote-controls button:not(:disabled) { background:#FFFFFF; color:#082E51; }
      .quote-controls button:not(:disabled):hover { background:#DDEEFF; }
      .quote-controls button:disabled { opacity:.35; background:transparent; color:#FFFFFF; }
      
      
      
      
      

/* alt-method-cards */
      .alt-method { background:#FFFFFF; }
      .alt-method .method-grid { gap:24px; align-items:stretch; }
      .alt-method .method-grid article { min-width:0; padding:24px; background:#F7F8FA; border:1px solid #E1E5EA; border-radius:8px; text-align:left; box-shadow:none; }
      .alt-method .method-icon { display:block; width:60px; height:60px; object-fit:contain; margin:0 0 16px; }
      .alt-method .method-grid h3 { color:#0D0C5A; font-size:18px; font-weight:600; line-height:1.4; margin:0 0 12px; }
      .alt-method .method-grid p { color:#000000; font-size:16px; font-weight:400; line-height:1.65; margin:0; overflow-wrap:break-word; }

/* alt-blog-powder-trial */
      /* Remove this block to undo only the powder-blue blog trial. */
      .blog { background:#FFFFFF; isolation:isolate; }
      .blog::before { content:""; position:absolute; z-index:-1; top:28px; bottom:28px; left:50%; transform:translateX(-50%); width:calc(100% - 64px); max-width:1400px; background:#E7EFF5; pointer-events:none; }
      .blog .section-inner { position:relative; padding-top:72px; padding-bottom:72px; }
      @media (min-width:1051px) {
        #articles.blog::before { border-radius:8px; }
      }
      

/* alt-method-columns */
      .alt-method .method-intro { max-width:1100px; text-wrap:pretty; }
      .alt-method .method-grid { gap:24px 0; }
      .alt-method .method-grid article { padding:0 24px; background:transparent; border:0; border-radius:0; box-shadow:none; text-align:center; }
      .alt-method .method-grid article + article { border-left:1px solid #DDE1E7; }
      .alt-method .method-icon { width:64px; height:64px; margin:0 auto 18px; }
      
      

/* alt-light-text-black */
      .alt-intro :is(h2,p),
      .alt-services .service-panels :is(h2,h3,p,li,strong,span),
      .alt-method :is(h2,p), .alt-method .method-grid h3,
      .blog .serif-title, .blog .section-subtitle, .blog .article-body :is(h3,p),
      .faq .serif-title, .faq .faq-button, .faq .faq-answer,
      .cta#contact :is(h2,p),
      .contact-drawer :is(h2,p,label,legend,input,select,textarea),
      .mega-panel .mega-column h2,
      .testimonials .quote-card :is(p,blockquote,cite,small) { color:#000000; }
      .mega-panel .mega-column a,
      .alt-services .service-tabs button,
      .alt-services .service-tabs button[aria-selected="true"],
      .alt-services .service-contact, .alt-services .service-contact span,
      .blog .read-more, .blog .articles-more-link,
      .faq .faq-icon, .faq .faq-item.open .faq-icon, .faq .faq-team-link,
      .contact-drawer .drawer-consent a, .contact-drawer .contact-close,
      .testimonials .quote-card a,
      .quote-controls button:not(:disabled) { color:#1769E0; }

/* alt-service-tabs-centered */
      .alt-services .service-tabs { display:flex; flex-wrap:nowrap; justify-content:center; gap:0; max-width:100%; margin-bottom:32px; overflow-x:auto; }
      .alt-services .service-tabs button { flex:0 0 auto; flex-direction:row; align-items:center; white-space:nowrap; min-height:54px; }
      .alt-services #panel-geres .service-lead { margin-bottom:24px; }

/* Contact page */
/* Shared desktop navigation; preserve the existing small-screen layout. */
@media (min-width:1051px) {
  .site-header .mega-column { display:flex; flex-direction:column; }
  .site-header .mega-column h2 { grid-template-columns:28.6px minmax(0,1fr); }
  .site-header .mega-column h2 svg { width:28.6px; height:28.6px; }
  /* Balance the official icon's wider viewBox without moving the menu labels. */
  .site-header .mega-column h2 svg[data-icon="managed-services"] { transform:scale(1.15); transform-origin:center; }
  .site-header .nav-client { cursor:pointer; }
  .site-header .nav-client[aria-current="page"],
  .site-header .nav-primary > a[aria-current="page"] { text-decoration:underline; text-underline-offset:5px; }
  #cloud-canadien { scroll-margin-top:100px; }
}
.contact-page .site-header:not(.scrolled):not(.menu-open):not(.services-open) {
  background:transparent;
  box-shadow:none;
}
.contact-page main {
  padding-top:0;
}
.contact-page .nav-primary a[aria-current="page"] {
  color:#FFFFFF;
}
@media (min-width:1051px) {
  .site-header .nav-primary .mega-links a:not([aria-current="page"]) { color:#1769E0; }
  .site-header .nav-primary .mega-links a:not([aria-current="page"]):hover { color:#1254B5; }
  .site-header .nav-primary .mega-column h2 a[aria-current="page"] {
    margin:-4px -6px;
    padding:4px 6px;
    border-radius:4px;
    background:var(--alt-menu-current-bg,#E7EFF5);
    color:#000000;
  }
  .site-header .nav-primary .mega-links a[aria-current="page"] {
    margin-inline:-12px;
    padding-inline:12px;
    border-radius:4px;
    background:var(--alt-menu-current-bg,#E7EFF5);
    color:#000000;
    font-weight:600;
  }
}
.contact-hero {
  background:linear-gradient(rgba(3,26,44,.24), rgba(3,26,44,.24)), #082E51 url("../contact-tablette-mains-bleu-texture.webp") center / cover no-repeat;
  color:#FFFFFF;
  display:flex;
  align-items:center;
  min-height:550px;
  padding:148px 0 60px;
}
.contact-hero .section-inner,
.contact-section .section-inner,
.contact-details .section-inner {
  width:min(1180px, calc(100% - 48px));
  margin:0 auto;
  padding:0;
}
.contact-hero-layout {
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  align-items:start;
  gap:64px;
}
.contact-hero-icon {
  display:block;
  width:52px;
  height:52px;
  margin-bottom:18px;
}
.contact-hero h1 {
  margin:0;
  max-width:620px;
  color:#FFFFFF;
  font-size:48px;
  line-height:1.15;
  font-weight:700;
  text-align:left;
}
@media (min-width:1051px) {
  .contact-hero-layout {
    transform:translateY(-56px);
  }
}
.contact-details {
  padding:56px 0;
  background:#E7EFF5;
}
.contact-info-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:24px 32px;
}
.contact-info-item {
  min-width:0;
}
.contact-info-item + .contact-info-item {
  border-left:1px solid #DDE1E7;
  padding-left:32px;
}
.contact-info-item h2 {
  display:block;
  color:#000000;
  font-size:18px;
  font-weight:600;
  letter-spacing:0;
  margin:0 0 12px;
}
.contact-info-item a,
.contact-info-item p {
  color:#000000;
  font-size:17px;
  font-weight:400;
  line-height:1.55;
  margin:0;
  overflow-wrap:anywhere;
}
.contact-info-item a:hover,
.contact-info-item a:focus-visible {
  color:#1769E0;
  text-decoration:underline;
  text-underline-offset:4px;
}
.contact-info-item .contact-info-email {
  margin-top:12px;
}
.contact-info-hours .contact-hours-note {
  margin-top:12px;
  font-size:14px;
}
.contact-info-hours .contact-hours-emergency {
  margin-top:18px;
  font-size:15px;
  font-weight:600;
}
.contact-section {
  background:#FFFFFF;
  padding:56px 0 104px;
  scroll-margin-top:100px;
}
.contact-panel {
  display:grid;
  grid-template-columns:300px minmax(0, 1fr);
  gap:52px;
  align-items:start;
}
.contact-person {
  margin:0;
  width:100%;
  max-width:300px;
}
.contact-person img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3 / 4;
  object-fit:contain;
  border-radius:0;
}
.contact-person figcaption {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  /* Match the transparent margins at the portrait's lower edge. */
  margin:0 2.8889% 0 3.7778%;
  padding:18px 20px;
  background:#E7EFF5;
  border-radius:0 0 8px 8px;
  color:#000000;
}
.contact-person strong {
  display:block;
  color:#000000;
  font-size:20px;
  font-weight:600;
  line-height:1.25;
}
.contact-person span {
  display:block;
  color:#000000;
  font-size:16px;
  margin-top:2px;
}
.contact-person .contact-person-linkedin {
  display:inline-flex;
  flex:0 0 30px;
  width:30px;
  height:30px;
  margin:0;
  color:#0A66C2;
  cursor:pointer;
}
.contact-person-linkedin:focus-visible {
  outline:2px solid #1769E0;
  outline-offset:4px;
}
.contact-person-linkedin svg {
  width:100%;
  height:100%;
  fill:currentColor;
}
.contact-content h2 {
  margin:0 0 18px;
  color:#000000;
  font-size:34px;
  line-height:1.2;
  font-weight:700;
}
.contact-content .contact-lead {
  color:#000000;
  font-size:17px;
  font-weight:400;
  line-height:1.7;
  margin:0;
  max-width:760px;
}
.contact-form {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px 20px;
  margin-top:28px;
}
.contact-form-field {
  display:flex;
  flex-direction:column;
  gap:8px;
}
.contact-form-field.wide {
  grid-column:1 / -1;
}
.contact-form label {
  color:#000000;
  font-size:15px;
  font-weight:600;
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  width:100%;
  border:1px solid #C9D3DE;
  border-radius:6px;
  background:#FFFFFF;
  color:#000000;
  font:inherit;
  font-size:16px;
  min-height:46px;
  padding:11px 13px;
}
.contact-form select {
  flex:1;
}
.contact-form textarea {
  min-height:128px;
  resize:vertical;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color:#1769E0;
  outline:2px solid rgba(23,105,224,.18);
  outline-offset:0;
}
.contact-submit {
  justify-self:start;
  min-height:46px;
  border:0;
  border-radius:6px;
  background:#1769E0;
  color:#FFFFFF;
  cursor:pointer;
  font-size:16px;
  font-weight:700;
  padding:12px 20px;
  transition:background 160ms ease, transform 160ms ease;
}
.contact-submit:hover,
.contact-submit:focus-visible {
  background:#1254B5;
}
.contact-submit:active {
  transform:translateY(1px);
}
.contact-form-status {
  align-self:center;
  color:#000000;
  font-size:14px;
  margin:0;
}
.contact-page .contact-submit {
  align-self:center;
}
.contact-consent {
  display:flex;
  align-items:flex-start;
  gap:10px;
  min-width:0;
}
.contact-consent input[type="checkbox"] {
  flex:0 0 18px;
  width:18px;
  height:18px;
  min-height:18px;
  padding:0;
  margin:2px 0 0;
  accent-color:#1769E0;
}
.contact-consent label {
  font-size:14px;
  line-height:1.5;
  font-weight:400;
}
.contact-consent a {
  color:#1769E0;
  text-decoration:underline;
  text-underline-offset:3px;
}
.contact-page .contact-form-status {
  grid-column:1 / -1;
}
.contact-map {
  background:#FFFFFF;
}
.contact-map iframe {
  display:block;
  width:100%;
  height:400px;
  border:0;
  filter:grayscale(1);
}
.contact-map-link {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:36px 24px;
  background:#FFFFFF;
  text-align:center;
  color:#1769E0;
  font-size:15px;
  font-weight:500;
}
.contact-map-link a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:10px 18px;
  border:1px solid #1769E0;
  border-radius:5px;
  background:#FFFFFF;
  color:#1769E0;
  font-weight:600;
}
.contact-map-link svg {
  width:18px;
  height:18px;
  flex-shrink:0;
}
.contact-map-link .contact-location-icon {
  width:36px;
  height:36px;
}
.contact-map-link a:hover,
.contact-map-link a:focus-visible {
  background:#1769E0;
  color:#FFFFFF;
}
.contact-map-link a:focus-visible {
  outline:2px solid #1769E0;
  outline-offset:4px;
}

/* Interior hero standard: Contact/About measured at y=207.8125, x=140
   on a 1440px desktop. Keep each hero's own height and background. */
@media (min-width:1051px) {
  :root {
    --alt-interior-title-top:208px;
    --alt-interior-content-width:1160px;
    --alt-interior-subtitle-gap:24px;
    --alt-interior-action-gap:32px;
  }
  :is(.contact-page,.about-page,.blog-page,.careers-page,.client-page,.prosecure-page) main :is(.contact-hero,.about-hero,.blog-hero,.careers-hero,.ps-hero) {
    align-items:flex-start;
    padding-top:var(--alt-interior-title-top);
    padding-bottom:0;
  }
  :is(.contact-page,.about-page,.blog-page,.careers-page,.client-page,.prosecure-page) main :is(.contact-hero,.about-hero,.blog-hero,.careers-hero,.ps-hero) > :is(.section-inner,.about-container,.careers-container,.ps-inner) {
    width:min(var(--alt-interior-content-width), calc(100% - 48px));
    max-width:none;
    margin:0 auto;
    padding:0;
    transform:none;
  }
  :is(.contact-page,.about-page,.blog-page,.careers-page,.client-page,.prosecure-page) main :is(.contact-hero,.about-hero,.blog-hero,.careers-hero,.ps-hero) :is(.contact-hero-heading,.careers-hero-copy,.ps-hero-copy) {
    position:relative;
    margin:0;
  }
  :is(.contact-page,.about-page,.blog-page,.careers-page,.client-page,.prosecure-page) main :is(.contact-hero,.about-hero,.blog-hero,.careers-hero,.ps-hero) h1 {
    margin:0;
  }
  :is(.contact-page,.about-page,.blog-page,.careers-page,.client-page,.prosecure-page) main :is(.contact-hero,.about-hero,.blog-hero,.careers-hero,.ps-hero) :is(.contact-hero-heading,.careers-hero-copy,.ps-hero-copy,.section-inner,.about-container) > h1 + p {
    margin:var(--alt-interior-subtitle-gap) 0 0;
  }
  :is(.contact-page,.about-page,.blog-page,.careers-page,.client-page,.prosecure-page) main :is(.contact-hero,.about-hero,.blog-hero,.careers-hero,.ps-hero) :is(.contact-hero-heading,.careers-hero-copy,.ps-hero-copy,.section-inner,.about-container) > h1 + p + p {
    margin:16px 0 0;
  }
  :is(.contact-page,.about-page,.blog-page,.careers-page,.client-page,.prosecure-page) main :is(.contact-hero,.about-hero,.blog-hero,.careers-hero,.ps-hero) :is(.contact-hero-heading,.careers-hero-copy,.ps-hero-copy) > p + :is(a,.support-hero-actions) {
    margin:var(--alt-interior-action-gap) 0 0;
  }
  /* Keep an overline above the shared title baseline, not in its flow. */
  .prosecure-page .ps-hero .ps-hero-copy > .ps-eyebrow {
    position:absolute;
    bottom:calc(100% + 10px);
    margin:0;
  }

  /* Approved large-service hero: lower CTA, with room for longer copy.
     Short heroes and pages without an overlapping intro keep their layout. */
  :is(.projects-page,.prosecure-page) main :is(.projects-hero,.ps-hero) {
    --alt-overlap-hero-height:750px;
    --alt-overlap-hero-offset:135px;
    --alt-overlap-action-clearance:90px;
    --alt-overlap-action-min-gap:32px;
  }
  :is(.projects-page,.prosecure-page) main :is(.projects-hero,.ps-hero) :is(.contact-hero-heading,.ps-hero-copy) {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-height:calc(var(--alt-overlap-hero-height) - var(--alt-overlap-hero-offset) - var(--alt-overlap-action-clearance) - var(--alt-interior-title-top));
  }
  :is(.projects-page,.prosecure-page) main :is(.projects-hero,.ps-hero) :is(.contact-hero-heading,.ps-hero-copy) > p:last-of-type {
    margin-bottom:var(--alt-overlap-action-min-gap);
  }
  :is(.projects-page,.prosecure-page) main :is(.projects-hero,.ps-hero) :is(.contact-hero-heading,.ps-hero-copy) > p + :is(.projects-button,.support-hero-actions,.ps-button) {
    flex-shrink:0;
    margin:auto 0 0;
  }
}
