.fms-world-section{padding:70px 20px 90px;background:#fff;text-align:center}.fms-world-section h2{text-align:center;font-size:.95rem;text-transform:uppercase;letter-spacing:2px;color:#6b7c93;margin-bottom:10px}.fms-world-section h2:after{content:"";display:block;width:80px;height:3px;background:#234e70;margin:15px auto 25px;border-radius:3px}.fms-world-subtitle{max-width:760px;margin:0 auto 50px;color:#5b6777;font-size:1.05rem;line-height:1.7;text-align:center}.fms-world-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.fms-world-card{display:block;perspective:1000px;text-decoration:none}.fms-world-card-inner{position:relative;width:100%;min-height:320px;transition:transform .8s;transform-style:preserve-3d}.fms-world-card:hover .fms-world-card-inner{transform:rotateY(180deg)}.fms-world-card-front,.fms-world-card-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.08)}.fms-world-card-front{background:#fff;border-top:5px solid #234e70;padding:30px}.fms-world-card-front h3,.fms-world-card-back h3{font-size:1.4rem;color:#1d3557;margin:0 0 15px;text-align:center}.fms-world-card-front p{color:#444;line-height:1.6;margin-bottom:20px}.fms-world-card-front ul,.fms-world-card-back ul{list-style:none;padding:0;margin:0}.fms-world-card-front li,.fms-world-card-back li{padding:8px 0;border-bottom:1px solid #eef2f7;color:#1d3557}.fms-world-card-back{transform:rotateY(180deg);background-size:cover;background-position:center;background-color:#f4f7fb;padding:30px}.fms-world-card-back:after{content:'Découvrir';position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.9);padding:10px 20px;border-radius:30px;color:#1d3557;font-weight:700}@media(max-width:992px){.fms-world-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.fms-world-grid{grid-template-columns:1fr}}.fms-front-image-mode{padding:0!important;display:flex!important;flex-direction:column!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important}.fms-world-image-title{background:#16324f;color:#fff;padding:16px 15px;text-align:center;flex:0 0 auto}.fms-world-image-title h3{margin:0!important;color:#fff!important;font-size:1.1rem!important;font-weight:600}.fms-front-image-mode::after{content:"";display:block;flex:1 1 auto;min-height:240px;background:inherit;background-size:cover;background-position:center center;background-repeat:no-repeat}

.fms-world-map-page {
    background: #f7f9fb;
    color: #263746;
}

.fms-world-map-hero {
    background: #16324f;
    color: #ffffff;
}

.fms-world-map-hero-inner {
    margin: 0 auto;
    max-width: 1140px;
    padding: 82px 20px 62px;
}

.fms-world-map-kicker {
    color: #d9e2ec;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .14em;
    margin: 0 0 16px;
    text-transform: uppercase;
}

.fms-world-map-hero h1 {
    color: #ffffff;
    font-size: clamp(2.35rem, 5vw, 4.15rem);
    line-height: 1.06;
    margin: 0 0 20px;
}

.fms-world-map-hero p {
    color: #e6edf4;
    font-size: 1.14rem;
    line-height: 1.82;
    margin: 0;
    max-width: 820px;
}

.fms-world-map-stage {
    margin: -34px auto 0;
    max-width: 1220px;
    padding: 0 20px;
    position: relative;
    z-index: 2;
}

.fms-world-map-frame {
    background: #ffffff;
    border: 1px solid #d9e2ec;
    box-shadow: 0 22px 54px rgba(16, 42, 67, .16);
    padding: 14px;
}

.fms-world-map-frame img {
    background: #eef4f8;
    display: block;
    height: auto;
    width: 100%;
}

.fms-world-map-caption {
    align-items: center;
    background: #ffffff;
    border: 1px solid #d9e2ec;
    border-top: 0;
    display: flex;
    gap: 20px;
    justify-content: space-between;
    padding: 22px 26px;
}

.fms-world-map-caption span {
    color: #567086;
    display: block;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .1em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.fms-world-map-caption strong {
    color: #16324f;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.55rem;
    line-height: 1.15;
}

.fms-world-map-caption a {
    background: #16324f;
    color: #ffffff;
    font-weight: 700;
    padding: 13px 18px;
    text-decoration: none;
    white-space: nowrap;
}

.fms-world-map-content {
    margin: 0 auto;
    max-width: 1140px;
    padding: 62px 20px 84px;
}

.fms-world-map-intro {
    border-left: 5px solid #234e70;
    margin-bottom: 34px;
    padding-left: 26px;
}

.fms-world-map-intro h2 {
    color: #16324f;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    line-height: 1.18;
    margin: 0 0 14px;
}

.fms-world-map-intro p {
    color: #3e5367;
    font-size: 1.04rem;
    line-height: 1.85;
    margin: 0;
    max-width: 820px;
}

.fms-world-map-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.fms-world-map-links a {
    background: #ffffff;
    border: 1px solid #d9e2ec;
    color: #16324f;
    font-weight: 700;
    padding: 11px 15px;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.fms-world-map-links a:hover,
.fms-world-map-links a:focus-visible {
    background: #16324f;
    border-color: #16324f;
    color: #ffffff;
    outline: none;
}

@media (max-width: 760px) {
    .fms-world-map-hero-inner {
        padding: 64px 20px 54px;
    }

    .fms-world-map-stage {
        margin-top: -22px;
        padding: 0 14px;
    }

    .fms-world-map-frame {
        padding: 8px;
    }

    .fms-world-map-caption {
        align-items: flex-start;
        flex-direction: column;
        padding: 20px;
    }

    .fms-world-map-caption a {
        white-space: normal;
    }
}



/* Homepage global network presence */
.fms-world-section {
    background:
        radial-gradient(circle at 18% 28%, rgba(35,78,112,.13), transparent 26%),
        radial-gradient(circle at 84% 18%, rgba(35,78,112,.1), transparent 24%),
        linear-gradient(180deg, #f5f8fb 0%, #ffffff 100%);
    overflow: hidden;
    padding: 88px 20px 96px;
    position: relative;
}

.fms-world-section::before {
    background-image:
        linear-gradient(rgba(35,78,112,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(35,78,112,.08) 1px, transparent 1px);
    background-size: 72px 72px;
    content: '';
    inset: 0;
    opacity: .55;
    position: absolute;
}

.fms-world-section::after {
    border: 1px solid rgba(35,78,112,.18);
    border-radius: 50%;
    content: '';
    height: 520px;
    left: 50%;
    position: absolute;
    top: 110px;
    transform: translateX(-50%);
    width: 920px;
}

.fms-world-inner {
    margin: 0 auto;
    max-width: 1220px;
    position: relative;
    z-index: 2;
}

.fms-world-network {
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.fms-world-network::before,
.fms-world-network::after {
    background: linear-gradient(90deg, transparent, rgba(35,78,112,.28), transparent);
    content: '';
    height: 1px;
    left: 10%;
    position: absolute;
    right: 10%;
    top: 47%;
    transform: rotate(-7deg);
}

.fms-world-network::after {
    top: 58%;
    transform: rotate(9deg);
}

.fms-world-node {
    background: #ffffff;
    border: 3px solid #234e70;
    border-radius: 50%;
    box-shadow: 0 0 0 7px rgba(35,78,112,.12);
    height: 14px;
    position: absolute;
    width: 14px;
}

.fms-world-node.node-1 { left: 16%; top: 35%; }
.fms-world-node.node-2 { left: 32%; top: 60%; }
.fms-world-node.node-3 { left: 52%; top: 42%; }
.fms-world-node.node-4 { right: 28%; top: 64%; }
.fms-world-node.node-5 { right: 14%; top: 32%; }

.fms-world-section h2 {
    color: #16324f;
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2.2rem, 4vw, 3.5rem);
    letter-spacing: 0;
    text-transform: none;
}

.fms-world-section h2::after {
    background: #8a6425;
}

.fms-world-subtitle {
    color: #3e5367;
    font-size: 1.1rem;
    max-width: 820px;
}

.fms-world-grid {
    position: relative;
}

.fms-world-grid::before {
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(217,226,236,.75);
    content: '';
    inset: -22px;
    position: absolute;
    z-index: -1;
}

.fms-world-card-front,
.fms-world-card-back {
    border-radius: 0;
    box-shadow: 0 16px 34px rgba(16,42,67,.12);
}

.fms-world-card-front {
    border-top-color: #234e70;
}

.fms-world-card:hover .fms-world-card-front,
.fms-world-card:focus-within .fms-world-card-front {
    box-shadow: 0 20px 42px rgba(16,42,67,.16);
}

.fms-world-footer {
    margin-top: 44px;
    text-align: center;
}

@media (max-width: 768px) {
    .fms-world-section::after,
    .fms-world-network {
        display: none;
    }

    .fms-world-grid::before {
        inset: -12px;
    }
}


/* Visible homepage world map band */
.fms-world-map-band {
    background:
        linear-gradient(90deg, rgba(255,255,255,.9), rgba(255,255,255,.72)),
        radial-gradient(circle at 18% 46%, rgba(35,78,112,.22) 0 2px, transparent 3px),
        radial-gradient(circle at 31% 39%, rgba(35,78,112,.18) 0 2px, transparent 3px),
        radial-gradient(circle at 52% 58%, rgba(35,78,112,.2) 0 2px, transparent 3px),
        radial-gradient(circle at 66% 70%, rgba(35,78,112,.18) 0 2px, transparent 3px),
        radial-gradient(circle at 80% 50%, rgba(35,78,112,.22) 0 2px, transparent 3px),
        linear-gradient(135deg, #e8f0f6, #f7f9fb);
    border: 1px solid #d9e2ec;
    box-shadow: 0 18px 38px rgba(16,42,67,.1);
    height: 190px;
    margin: 0 auto 42px;
    max-width: 1040px;
    overflow: hidden;
    position: relative;
}

.fms-world-map-band::before,
.fms-world-map-band::after {
    content: '';
    position: absolute;
    left: 13%;
    right: 13%;
    top: 50%;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(35,78,112,.55), transparent);
    transform: rotate(7deg);
}

.fms-world-map-band::after {
    top: 56%;
    transform: rotate(-9deg);
    background: linear-gradient(90deg, transparent, rgba(138,100,37,.42), transparent);
}

.fms-world-map-band .map-dot {
    background: #ffffff;
    border: 4px solid #234e70;
    border-radius: 50%;
    box-shadow: 0 0 0 8px rgba(35,78,112,.14), 0 8px 18px rgba(16,42,67,.18);
    height: 18px;
    position: absolute;
    width: 18px;
    z-index: 2;
}

.fms-world-map-band .map-dot::after {
    background: #8a6425;
    border-radius: 50%;
    content: '';
    height: 6px;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 6px;
}

.fms-world-map-band .dot-france { left: 18%; top: 43%; }
.fms-world-map-band .dot-italy { left: 31%; top: 34%; }
.fms-world-map-band .dot-chad { left: 51%; top: 57%; }
.fms-world-map-band .dot-madagascar { left: 65%; top: 68%; }
.fms-world-map-band .dot-india { left: 79%; top: 48%; }

@media (max-width: 760px) {
    .fms-world-map-band {
        height: 150px;
        margin-bottom: 28px;
    }
}


/* Integrated world network background and anchor line */
.fms-world-section {
    background:
        radial-gradient(circle at 18% 30%, rgba(35,78,112,.18), transparent 20%),
        radial-gradient(circle at 76% 34%, rgba(35,78,112,.14), transparent 21%),
        radial-gradient(circle at 48% 72%, rgba(138,100,37,.12), transparent 24%),
        linear-gradient(180deg, #eef4f8 0%, #ffffff 100%);
}

.fms-world-section::before {
    background-image:
        linear-gradient(rgba(35,78,112,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(35,78,112,.08) 1px, transparent 1px),
        radial-gradient(circle at 18% 42%, rgba(35,78,112,.34) 0 3px, transparent 4px),
        radial-gradient(circle at 34% 62%, rgba(35,78,112,.28) 0 3px, transparent 4px),
        radial-gradient(circle at 54% 44%, rgba(138,100,37,.3) 0 3px, transparent 4px),
        radial-gradient(circle at 72% 60%, rgba(35,78,112,.3) 0 3px, transparent 4px),
        radial-gradient(circle at 84% 38%, rgba(35,78,112,.28) 0 3px, transparent 4px);
    background-size: 78px 78px, 78px 78px, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
    opacity: .85;
}

.fms-world-section::after {
    border-color: rgba(35,78,112,.14);
}

.fms-world-inner {
    position: relative;
}

.fms-world-anchor-line {
    position: relative;
}

.fms-world-anchor-line::after {
    background: linear-gradient(90deg, transparent 0%, rgba(35,78,112,.55) 18%, rgba(138,100,37,.5) 50%, rgba(35,78,112,.55) 82%, transparent 100%);
    content: '';
    height: 3px;
    left: 4%;
    position: absolute;
    right: 4%;
    top: 50%;
    transform: translateY(-50%);
    z-index: 0;
}

.fms-world-anchor-line .fms-world-card {
    position: relative;
    z-index: 1;
}

.fms-world-anchor-line .fms-world-card::before {
    background: #ffffff;
    border: 3px solid #234e70;
    border-radius: 50%;
    box-shadow: 0 0 0 7px rgba(35,78,112,.12);
    content: '';
    height: 16px;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 16px;
    z-index: 3;
}

.fms-world-grid::before {
    background: rgba(255,255,255,.58);
    backdrop-filter: blur(2px);
}

@media (max-width: 768px) {
    .fms-world-anchor-line::after,
    .fms-world-anchor-line .fms-world-card::before {
        display: none;
    }
}


/* Visible world map silhouette */
.fms-world-inner::before {
    background: #234e70;
    content: '';
    height: 360px;
    left: 50%;
    opacity: .09;
    pointer-events: none;
    position: absolute;
    top: 116px;
    transform: translateX(-50%);
    width: min(980px, 92vw);
    z-index: -1;
    clip-path: polygon(
        3% 42%, 8% 34%, 15% 31%, 21% 36%, 26% 31%, 33% 35%, 35% 45%, 31% 54%, 25% 58%, 22% 68%, 17% 62%, 13% 53%, 7% 51%,
        39% 34%, 45% 28%, 54% 31%, 60% 38%, 58% 48%, 63% 55%, 60% 66%, 52% 62%, 48% 52%, 42% 49%, 37% 42%,
        65% 35%, 72% 30%, 82% 34%, 91% 42%, 96% 52%, 89% 58%, 80% 55%, 73% 61%, 68% 54%, 62% 48%,
        76% 70%, 82% 75%, 88% 82%, 84% 88%, 76% 84%, 72% 76%
    );
}

.fms-world-inner::after {
    border: 1px solid rgba(35,78,112,.13);
    border-radius: 50%;
    content: '';
    height: 410px;
    left: 50%;
    pointer-events: none;
    position: absolute;
    top: 96px;
    transform: translateX(-50%);
    width: min(1040px, 96vw);
    z-index: -1;
}

.fms-world-grid::before {
    background: rgba(255,255,255,.42);
}

@media (max-width: 768px) {
    .fms-world-inner::before,
    .fms-world-inner::after {
        display: none;
    }
}


/* Real world map SVG silhouette */
.fms-world-inner::before {
    background: url('../img/world-map-silhouette.svg') center 42px / min(980px, 92vw) auto no-repeat !important;
    clip-path: none !important;
    height: 430px !important;
    left: 50% !important;
    opacity: .12 !important;
    top: 74px !important;
    transform: translateX(-50%) !important;
    width: min(1040px, 96vw) !important;
}


/* World section visibility fixes */
.fms-world-anchor-line .fms-world-card::before {
    display: none !important;
}

.fms-world-anchor-line::after {
    opacity: .55;
    top: 52%;
}

.fms-world-inner::before {
    background: url('../img/world-map-silhouette.svg') center top / min(1080px, 96vw) auto no-repeat !important;
    height: 470px !important;
    opacity: .24 !important;
    top: 92px !important;
    z-index: 0 !important;
}

.fms-world-inner > h2,
.fms-world-inner > .fms-world-subtitle,
.fms-world-inner > .fms-world-grid,
.fms-world-inner > .fms-world-footer {
    position: relative;
    z-index: 2;
}

.fms-world-grid::before {
    background: rgba(255,255,255,.24) !important;
}
