
/* ADAG Glasgow Mission Engine v1.1.0 */
.mission-engine {
    --mission-gold: #dfa93c;
    --mission-gold-bright: #ffd269;
    --mission-bg: #031019;
    position: relative;
    padding: 58px 0 76px;
    overflow: hidden;
    background:
        radial-gradient(circle at 24% 36%, rgba(223,169,60,.09), transparent 30%),
        linear-gradient(135deg, #02090f, #061722 64%, #071c29);
}

.mission-engine *,
.mission-engine-transition * {
    box-sizing: border-box;
}

.mission-engine-particles {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}

.mission-engine-particle {
    position: absolute;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: rgba(255,207,100,.58);
    box-shadow: 0 0 9px rgba(255,198,73,.55);
    animation: missionParticleTwinkle var(--particle-duration, 4s) ease-in-out infinite;
    animation-delay: var(--particle-delay, 0s);
}

@keyframes missionParticleTwinkle {
    0%, 100% { opacity: .12; transform: scale(.7); }
    50% { opacity: .9; transform: scale(1.3); }
}

.mission-engine-primary {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(0, 1.56fr) minmax(290px, .72fr);
    gap: 42px;
    align-items: center;
}

.mission-engine-map-panel {
    min-width: 0;
    transition:
        transform .9s cubic-bezier(.2,.72,.2,1),
        filter .6s ease;
}

.mission-engine-map-stage {
    position: relative;
    width: 100%;
    aspect-ratio: 1000 / 520;
    animation: missionMapBreath 18s ease-in-out infinite;
}

@keyframes missionMapBreath {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.008); }
}

.mission-engine-map-stage > svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

.mission-engine .mission-map-real path {
    fill: rgba(196,145,48,.09) !important;
    stroke: rgba(228,176,70,.67);
    stroke-width: .8;
    vector-effect: non-scaling-stroke;
}

.mission-engine .mission-routes path {
    fill: none !important;
    stroke: var(--mission-gold) !important;
    stroke-width: 2.1 !important;
    stroke-linecap: round;
    stroke-dasharray: 7 8;
    vector-effect: non-scaling-stroke;
    filter: drop-shadow(0 0 5px rgba(228,174,62,.62));
    animation: missionRouteFlowEngine 1.08s linear infinite;
    transition:
        stroke .25s ease,
        stroke-width .25s ease,
        filter .25s ease,
        opacity .25s ease;
}

@keyframes missionRouteFlowEngine {
    to { stroke-dashoffset: -30; }
}

.mission-engine .mission-route-travellers circle {
    fill: var(--mission-gold-bright) !important;
}

.mission-engine .mission-origin-core,
.mission-engine .mission-destination > circle:first-child {
    fill: var(--mission-gold-bright) !important;
}

.mission-engine .mission-origin-ring,
.mission-engine .mission-destination-pulse {
    fill: none;
    stroke: rgba(255,207,96,.76);
    stroke-width: 1.5;
    transform-box: fill-box;
    transform-origin: center;
    animation: missionPulseEngine 2.45s ease-out infinite;
}

.mission-engine .mission-origin-ring-2 {
    animation-delay: 1.05s;
}

@keyframes missionPulseEngine {
    0% { opacity: 1; transform: scale(.65); }
    100% { opacity: 0; transform: scale(1.7); }
}

.mission-engine-origin-label,
.mission-engine-map-label {
    position: absolute;
    z-index: 4;
    pointer-events: none;
    text-shadow:
        0 2px 3px rgba(0,0,0,.95),
        0 0 10px rgba(0,0,0,.95);
}

.mission-engine-origin-label {
    left: 47.2%;
    top: 24%;
    transform: translate(-100%, -100%);
    text-align: right;
}

.mission-engine-origin-label strong,
.mission-engine-origin-label span {
    display: block;
}

.mission-engine-origin-label strong {
    color: #fff;
    font-size: 13px;
    letter-spacing: .3px;
}

.mission-engine-origin-label span {
    margin-top: 2px;
    color: var(--mission-gold);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .8px;
}

.mission-engine-map-label {
    left: var(--label-x);
    top: var(--label-y);
    padding: 4px 7px;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    border: 1px solid rgba(223,169,60,.16);
    background: rgba(2,9,14,.72);
    backdrop-filter: blur(5px);
    transform: translate(-50%, -50%);
    transition:
        color .25s ease,
        border-color .25s ease,
        background .25s ease,
        transform .25s ease,
        box-shadow .25s ease;
}

.mission-engine-copy {
    position: relative;
    z-index: 4;
}

.mission-engine-copy h2 {
    margin: 0;
    font-size: clamp(32px, 3.25vw, 47px);
    line-height: 1;
    letter-spacing: -1.7px;
}

.mission-engine-copy h2 span,
.mission-engine-copy h2 strong {
    display: block;
}

.mission-engine-copy h2 strong {
    margin-top: 5px;
    color: var(--mission-gold-bright);
}

.mission-engine-copy > p:not(.section-eyebrow) {
    max-width: 430px;
    margin: 16px 0 0;
    color: #bdc9d0;
    font-size: 13px;
    line-height: 1.58;
}

.mission-engine-copy .site-button {
    width: auto;
    margin-top: 19px;
}

.mission-engine-fields {
    position: relative;
    z-index: 4;
    margin-top: 28px;
}

.mission-engine-fields-heading {
    text-align: center;
    margin-bottom: 18px;
}

.mission-engine-fields-heading h3 {
    margin: 0;
    color: #fff;
    font-size: clamp(23px, 2.4vw, 34px);
    line-height: 1.05;
    letter-spacing: -1px;
}

.mission-engine-fields-heading p {
    max-width: 620px;
    margin: 8px auto 0;
    color: #9fadb6;
    font-size: 13px;
    line-height: 1.5;
}

.mission-engine-cards {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.mission-engine-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.09);
    background: #081923;
    transition:
        transform .28s ease,
        border-color .28s ease,
        box-shadow .28s ease;
}

.mission-engine-card > a {
    display: block;
    color: inherit;
    text-decoration: none;
}

.mission-engine-card-photo {
    position: relative;
    height: 110px;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(2,9,14,.05), rgba(2,9,14,.65)),
        var(--mission-image) center / cover,
        linear-gradient(135deg, #173342, #07151f);
}

.mission-engine-card-photo::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--mission-image) center / cover;
    transform: scale(1.01);
    transition: transform .55s ease;
}

.mission-engine-card-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(3,10,15,.04), rgba(3,10,15,.78)),
        radial-gradient(circle at 50% 20%, rgba(223,169,60,.13), transparent 55%);
}

.mission-engine-card-flag {
    position: absolute;
    z-index: 3;
    left: 12px;
    bottom: 9px;
    font-size: 23px;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,.38));
}

.mission-engine-card-content {
    padding: 13px 14px 14px;
}

.mission-engine-card-content h4 {
    margin: 0;
    color: #fff;
    font-size: 16px;
    line-height: 1.2;
}

.mission-engine-card-content p {
    min-height: 30px;
    margin: 7px 0 0;
    color: #9eacb5;
    font-size: 11px;
    line-height: 1.4;
}

.mission-engine-card-content strong {
    display: block;
    margin-top: 9px;
    color: var(--mission-gold);
    font-size: 9px;
    letter-spacing: .7px;
    text-transform: uppercase;
}

.mission-engine-card-content strong span {
    display: inline-block;
    transition: transform .22s ease;
}

.mission-engine-card:hover,
.mission-engine-card:focus-within,
.mission-engine-card.is-active {
    transform: translateY(-6px);
    border-color: rgba(232,181,72,.78);
    box-shadow: 0 18px 42px rgba(0,0,0,.29);
}

.mission-engine-card:hover .mission-engine-card-photo::before,
.mission-engine-card:focus-within .mission-engine-card-photo::before,
.mission-engine-card.is-active .mission-engine-card-photo::before {
    transform: scale(1.08);
}

.mission-engine-card:hover .mission-engine-card-content strong span,
.mission-engine-card:focus-within .mission-engine-card-content strong span,
.mission-engine-card.is-active .mission-engine-card-content strong span {
    transform: translateX(4px);
}

.mission-engine-watermark {
    position: absolute;
    z-index: 0;
    left: max(24px, calc((100% - 1180px) / 2));
    bottom: 6px;
    color: rgba(255,255,255,.023);
    font-size: clamp(72px, 9vw, 132px);
    font-weight: 900;
    line-height: .82;
    letter-spacing: -5px;
    text-transform: uppercase;
    pointer-events: none;
}

/* Hover synchronisation: card ↔ map. */
.mission-engine[data-active-field="iceland"] .mission-engine-map-label-iceland,
.mission-engine[data-active-field="norway"] .mission-engine-map-label-norway,
.mission-engine[data-active-field="mozambique"] .mission-engine-map-label-mozambique,
.mission-engine[data-active-field="brazil"] .mission-engine-map-label-brazil,
.mission-engine[data-active-field="future"] .mission-engine-map-label-future {
    color: var(--mission-gold-bright);
    border-color: rgba(255,207,96,.82);
    background: rgba(24,18,7,.88);
    box-shadow: 0 0 22px rgba(255,198,74,.26);
    transform: translate(-50%, -50%) scale(1.1);
}

.mission-engine[data-active-field="iceland"] .mission-destination-iceland,
.mission-engine[data-active-field="norway"] .mission-destination-norway,
.mission-engine[data-active-field="mozambique"] .mission-destination-mozambique,
.mission-engine[data-active-field="brazil"] .mission-destination-brazil,
.mission-engine[data-active-field="future"] .mission-destination-future {
    filter: drop-shadow(0 0 12px rgba(255,205,88,.98));
}

.mission-engine[data-active-field="iceland"] [id$="-iceland"],
.mission-engine[data-active-field="norway"] [id$="-norway"],
.mission-engine[data-active-field="mozambique"] [id$="-mozambique"],
.mission-engine[data-active-field="brazil"] [id$="-brazil"],
.mission-engine[data-active-field="future"] [id$="-future"] {
    stroke: var(--mission-gold-bright) !important;
    stroke-width: 3.7 !important;
    filter: drop-shadow(0 0 11px rgba(255,205,88,.98));
}

/* Cinematic navigation. */
.mission-engine.is-navigating .mission-engine-copy,
.mission-engine.is-navigating .mission-engine-fields-heading,
.mission-engine.is-navigating .mission-engine-card:not(.is-active) {
    opacity: .16;
    transition: opacity .42s ease;
}

.mission-engine.is-navigating .mission-engine-card.is-active {
    transform: translateY(-9px) scale(1.025);
    border-color: var(--mission-gold-bright);
    box-shadow: 0 24px 65px rgba(0,0,0,.4);
}

.mission-engine.is-navigating[data-active-field="iceland"] .mission-engine-map-panel {
    transform: scale(1.42) translate(7%, 10%);
}

.mission-engine.is-navigating[data-active-field="norway"] .mission-engine-map-panel {
    transform: scale(1.42) translate(-2%, 9%);
}

.mission-engine.is-navigating[data-active-field="mozambique"] .mission-engine-map-panel {
    transform: scale(1.48) translate(-5%, -14%);
}

.mission-engine.is-navigating[data-active-field="brazil"] .mission-engine-map-panel {
    transform: scale(1.48) translate(15%, -14%);
}

.mission-engine.is-navigating[data-active-field="future"] .mission-engine-map-panel {
    transform: scale(1.45) translate(-18%, -15%);
}

.mission-engine-transition {
    position: fixed;
    z-index: 99999;
    inset: 0;
    display: grid;
    place-items: center;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    background: rgba(1,6,10,0);
    transition:
        opacity .4s ease,
        visibility .4s ease,
        background .8s ease;
}

.mission-engine-transition.is-visible {
    opacity: 1;
    visibility: visible;
    background: rgba(1,6,10,.95);
}

.mission-engine-transition-vignette {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle, transparent 9%, rgba(0,0,0,.82) 84%),
        linear-gradient(135deg, rgba(204,157,52,.09), transparent 45%);
}

.mission-engine-transition-title {
    position: relative;
    padding: 0 20px;
    color: var(--mission-gold, #dfa93c);
    font-size: clamp(28px, 5vw, 70px);
    font-weight: 900;
    letter-spacing: -2px;
    text-align: center;
    text-transform: uppercase;
    transform: translateY(18px);
    opacity: 0;
    transition:
        transform .52s ease .25s,
        opacity .52s ease .25s;
}

.mission-engine-transition.is-visible .mission-engine-transition-title {
    transform: translateY(0);
    opacity: 1;
}

html.mission-engine-lock,
html.mission-engine-lock body {
    overflow: hidden;
}

/* Tablet */
@media (max-width: 1050px) {
    .mission-engine-primary {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .mission-engine-map-panel {
        width: min(100%, 850px);
        margin-inline: auto;
    }

    .mission-engine-copy {
        max-width: 690px;
    }

    .mission-engine-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Mobile: rebuilt to prevent overlap and horizontal breakage. */
@media (max-width: 700px) {
    .mission-engine {
        padding: 38px 0 62px;
        overflow: clip;
    }

    .mission-engine-primary {
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .mission-engine-map-panel {
        order: 1;
        width: 100%;
        margin: 0;
        overflow: hidden;
    }

    .mission-engine-copy {
        order: 2;
        width: 100%;
    }

    .mission-engine-map-stage {
        width: 100%;
        aspect-ratio: 1000 / 560;
        animation: none;
    }

    .mission-engine-origin-label {
        left: 46.8%;
        top: 24%;
    }

    .mission-engine-origin-label strong {
        font-size: 9px;
    }

    .mission-engine-origin-label span {
        font-size: 7px;
    }

    .mission-engine-map-label {
        padding: 3px 4px;
        font-size: 7px;
        border-color: rgba(223,169,60,.12);
        backdrop-filter: none;
    }

    .mission-engine-copy h2 {
        font-size: 28px;
        line-height: 1.03;
        letter-spacing: -1px;
    }

    .mission-engine-copy > p:not(.section-eyebrow) {
        margin-top: 12px;
        font-size: 12px;
        line-height: 1.5;
    }

    .mission-engine-copy .site-button {
        width: 100%;
        margin-top: 16px;
    }

    .mission-engine-fields {
        margin-top: 21px;
    }

    .mission-engine-fields-heading {
        margin-bottom: 15px;
    }

    .mission-engine-fields-heading h3 {
        font-size: 25px;
    }

    .mission-engine-fields-heading p {
        font-size: 12px;
    }

    .mission-engine-cards {
        display: flex;
        gap: 12px;
        width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        scrollbar-width: thin;
        padding: 2px 1px 11px;
    }

    .mission-engine-card {
        flex: 0 0 min(78vw, 300px);
        scroll-snap-align: start;
    }

    .mission-engine-card-photo {
        height: 120px;
    }

    .mission-engine-watermark {
        left: 14px;
        bottom: 5px;
        font-size: 56px;
        letter-spacing: -3px;
    }

    .mission-engine.is-navigating .mission-engine-map-panel {
        transform: scale(1.24) !important;
    }

    .mission-engine-transition-title {
        font-size: 34px;
    }
}

@media (max-width: 390px) {
    .mission-engine-map-label-future {
        display: none;
    }

    .mission-engine-card {
        flex-basis: 84vw;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mission-engine-particle,
    .mission-engine-map-stage,
    .mission-engine .mission-routes path,
    .mission-engine .mission-origin-ring,
    .mission-engine .mission-destination-pulse {
        animation: none !important;
    }

    .mission-engine .mission-route-travellers {
        display: none;
    }

    .mission-engine-map-panel,
    .mission-engine-transition,
    .mission-engine-transition-title {
        transition: none !important;
    }
}

/* v1.3.1 — MISSION MOBILE CARD CORRECTION */
@media (max-width: 700px) {
    .mission-engine {
        overflow: hidden !important;
        padding: 34px 0 48px !important;
    }

    .mission-engine-cards {
        display: flex !important;
        gap: 12px !important;
        width: 100% !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        padding: 4px 0 14px !important;
        scroll-snap-type: x mandatory !important;
        -webkit-overflow-scrolling: touch;
    }

    .mission-engine-card {
        flex: 0 0 calc(100vw - 48px) !important;
        width: calc(100vw - 48px) !important;
        max-width: 330px !important;
        min-width: 0 !important;
        scroll-snap-align: start !important;
        overflow: hidden !important;
    }

    /* Mantém o quadro 3:2 e mostra a imagem inteira, sem cortar o topo */
    .mission-engine-card-photo {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 3 / 2 !important;
        overflow: hidden !important;
        background-color: #07151f !important;
        background-image: var(--mission-image) !important;
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center center !important;
    }

    .mission-engine-card-photo::before {
        inset: 0 !important;
        background-image: var(--mission-image) !important;
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center center !important;
        transform: none !important;
    }

    .mission-engine-card-photo::after {
        background:
            linear-gradient(180deg, rgba(3,10,15,.02), rgba(3,10,15,.38)) !important;
    }

    .mission-engine-card:hover .mission-engine-card-photo::before,
    .mission-engine-card:focus-within .mission-engine-card-photo::before,
    .mission-engine-card.is-active .mission-engine-card-photo::before {
        transform: none !important;
    }

    .mission-engine-card-content {
        padding: 14px 15px 15px !important;
    }

    .mission-engine-card-content h4 {
        font-size: 18px !important;
    }

    .mission-engine-card-content p {
        min-height: 0 !important;
        font-size: 12px !important;
    }
}

@media (max-width: 390px) {
    .mission-engine-card {
        flex-basis: calc(100vw - 34px) !important;
        width: calc(100vw - 34px) !important;
    }
}

/* v1.4.0 — MISSION MOBILE IMAGE NO-CROP */
@media (max-width: 760px) {
    .mission-engine-cards {
        display: flex !important;
        gap: 12px !important;
        width: 100% !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        padding: 4px 0 14px !important;
        scroll-snap-type: x mandatory !important;
        -webkit-overflow-scrolling: touch;
    }

    .mission-engine-card {
        flex: 0 0 min(86vw, 330px) !important;
        width: min(86vw, 330px) !important;
        max-width: 330px !important;
        min-width: 0 !important;
        overflow: hidden !important;
        scroll-snap-align: start !important;
    }

    .mission-engine-card-photo {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 3 / 2 !important;
        overflow: hidden !important;
        background-color: #07151f !important;
        background-image: var(--mission-image) !important;
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-position: center center !important;
    }

    .mission-engine-card-photo::before {
        display: none !important;
        content: none !important;
    }

    .mission-engine-card-photo::after {
        background: linear-gradient(180deg, transparent 52%, rgba(3,10,15,.38)) !important;
    }

    .mission-engine-card:hover .mission-engine-card-photo::before,
    .mission-engine-card:focus-within .mission-engine-card-photo::before,
    .mission-engine-card.is-active .mission-engine-card-photo::before {
        transform: none !important;
    }
}


/* v1.4.2 — MISSION DESKTOP RESTORE */
@media (min-width: 761px) {
    .mission-engine-cards {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 12px;
    }

    .mission-engine-card {
        min-width: 0;
        overflow: hidden;
    }

    .mission-engine-card-photo {
        position: relative;
        width: 100%;
        height: auto;
        aspect-ratio: 3 / 2;
        overflow: hidden;
        background:
            linear-gradient(180deg, rgba(2,9,14,.04), rgba(2,9,14,.42)),
            var(--mission-image) center / cover no-repeat,
            linear-gradient(135deg, #173342, #07151f);
    }

    .mission-engine-card-photo::before {
        content: "";
        position: absolute;
        inset: 0;
        background: var(--mission-image) center / cover no-repeat;
        transform: scale(1.01);
        transition: transform .5s ease;
    }

    .mission-engine-card-photo::after {
        content: "";
        position: absolute;
        inset: 0;
        background:
            linear-gradient(180deg, rgba(3,10,15,.02), rgba(3,10,15,.62)),
            radial-gradient(circle at 50% 20%, rgba(223,169,60,.10), transparent 55%);
    }

    .mission-engine-card:hover .mission-engine-card-photo::before,
    .mission-engine-card:focus-within .mission-engine-card-photo::before,
    .mission-engine-card.is-active .mission-engine-card-photo::before {
        transform: scale(1.045);
    }
}
/* v15.3 — real country flags (Windows-safe) */
.mission-card-country-flag,.missionary-country-flag{display:block;width:30px;height:22px;object-fit:cover;border-radius:2px;border:1px solid rgba(255,255,255,.28);box-shadow:0 2px 8px rgba(0,0,0,.28)}.missionary-country-flag{width:26px;height:19px}.mission-country-globe{display:inline-flex;align-items:center;justify-content:center;width:30px;height:22px;font-size:19px}.missionary-location>span{display:inline-flex;align-items:center;margin-right:8px}.mission-engine-card-flag{display:flex!important;align-items:center;justify-content:center}
