/* ==========================================================================
   Article : "Découvrez dans quel pays parrainer un enfant"
   Figma 460-12293 — voir _ref/figma/460-12293-pays.md

   Tout est scopé sous .art-pays -> aucune fuite dans le CSS global du site.

   RÈGLE DE BASE : on n'écrase JAMAIS ce que le site fait déjà.
   Le contenu vit dans <article>, à l'intérieur d'un <body class="international">.
   Le site pose donc tout seul, via style.less :
     article            color #555, text-align justify
     article p          font-size 1.1em, line-height 1.68em
     article h2         borden_regular, font-size 2.5em, font-weight bolder
     .international h2  couleur @violet #b5007b
     .international a   couleur @violet #b5007b
   Ce fichier ne définit que ce qui n'existe pas ailleurs : la grille, la
   carte, les accordéons, les carrousels et les fiches-pays.
   Rappel : le site pose html{font-size:10px}, donc 1rem = 10px.

   Spécificité : article p compte (0,0,2). On écrit donc p.ma-classe et non
   .art-pays .un-bloc p, sinon la règle générique gagne sur les règles de
   classe.
   ========================================================================== */

.art-pays {
    --pays-violet: #b5007b;      /* @violet de style.less */
    --pays-violet-dark: #8d0060;
    --pays-blue: #0072b5;        /* @blue */
    --pays-blue-dark: #005a90;
    --pays-orange: #e75113;      /* @orange */
    --pays-orange-dark: #d9001a; /* bord bas des boutons du site */
    --pays-turquoise: #00a7b4;   /* @green */
    --pays-black: #212121;       /* @black */
    --pays-grey-light: #e4e4e4;  /* @greyLight */

    /* carte : un seul gris pour toutes les terres, l'océan en beige */
    --pays-ocean: #f2f0e9;
    --pays-terre: #c6c6c6;

    --pays-blue-band: #c3e5ec;   /* bandeau bleu de bas de page */
}

.art-pays *,
.art-pays *::before,
.art-pays *::after {
    box-sizing: border-box;
}

.art-pays [hidden] {
    display: none;
}

/* --------------------------------------------------------------------------
   1. Titres : la prod décide de la police, de la taille et de la couleur.
      On ne règle que les marges.
   -------------------------------------------------------------------------- */

.art-pays h2 {
    margin: 5rem 0 2rem;
}

.art-pays h2:first-child {
    margin-top: 0;
}

/* --------------------------------------------------------------------------
   2. Boutons — mêmes mesures que le .btn du site (valeurs réellement
      calculées dans le navigateur), seules les couleurs changent.
   -------------------------------------------------------------------------- */

.art-pays .pays-btn {
    display: inline-block;
    font-family: borden_regular, 'Open Sans', sans-serif;
    font-size: 25px;
    font-weight: 500;
    line-height: 30px;
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    padding: 10px 25px;
    border-radius: 25px;
    border-style: solid;
    border-width: 0 0 2px 0;
    border-color: transparent;
    background: none;
    white-space: normal;
    cursor: pointer;
    transition: all .3s;
}

/* violet plein */
.art-pays .pays-btn-violet {
    background: var(--pays-violet);
    border-color: var(--pays-violet-dark);
    color: #fff;
}

.art-pays .pays-btn-violet:hover,
.art-pays .pays-btn-violet:focus {
    background: var(--pays-violet-dark);
    border-color: #6b0049;
    color: #fff;
}

/* bleu plein */
.art-pays .pays-btn-blue {
    background: var(--pays-blue);
    border-color: var(--pays-blue-dark);
    color: #fff;
}

.art-pays .pays-btn-blue:hover,
.art-pays .pays-btn-blue:focus {
    background: var(--pays-blue-dark);
    border-color: #003d63;
    color: #fff;
}

/* orange plein */
.art-pays .pays-btn-orange {
    background: var(--pays-orange);
    border-color: var(--pays-orange-dark);
    color: #fff;
}

.art-pays .pays-btn-orange:hover,
.art-pays .pays-btn-orange:focus {
    background: var(--pays-orange-dark);
    border-color: #8c0818;
    color: #fff;
}

/* orange contour, qui passe en turquoise plein au survol — comme sur la
   page « international » */
.art-pays .pays-btn-orange-outline {
    background: #fff;
    border-width: 2px;
    border-color: var(--pays-orange);
    color: var(--pays-orange);
}

.art-pays .pays-btn-orange-outline:hover,
.art-pays .pays-btn-orange-outline:focus {
    background: var(--pays-turquoise);
    border-color: var(--pays-turquoise);
    color: #fff;
}

/* --------------------------------------------------------------------------
   3. Les 4 boutons de zone, au-dessus de la carte
   -------------------------------------------------------------------------- */

.art-pays .pays-zones {
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem;
    margin: 0 0 3rem;
}

/* le bouton de la zone actuellement cadrée reste enfoncé */
.art-pays .pays-zone-btn.is-active {
    background: var(--pays-blue-dark);
    border-color: #003d63;
}

/* --------------------------------------------------------------------------
   4. La carte du monde
   -------------------------------------------------------------------------- */

.art-pays .pays-carte {
    position: relative;
    overflow: hidden;
    background: var(--pays-ocean);
    /* le viewBox du SVG fait 1000 x 479 : on garde le même rapport */
    padding-top: 47.9%;
}

.art-pays .pays-carte-scene {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    transform-origin: 0 0;
    transition: transform .45s ease;
}

.art-pays .pays-carte-scene svg {
    display: block;
    width: 100%;
    height: auto;
}

.art-pays .pays-carte .pays-ocean {
    fill: var(--pays-ocean);
}

/* Tous les pays hors intervention sont du MÊME gris. Ce sont les frontières,
   tracées dans le beige de l'océan, qui séparent deux voisins. */
.art-pays .pays-carte .pays-monde path {
    fill: var(--pays-terre);
    stroke: var(--pays-ocean);
    stroke-width: .5;
    stroke-linejoin: round;
}

/* les 16 pays d'intervention : bleu, et seuls à être cliquables */
.art-pays .pays-carte .pays-monde path.est-intervention {
    fill: var(--pays-blue);
    cursor: pointer;
}

.art-pays .pays-carte .pays-monde path.est-intervention:hover,
.art-pays .pays-carte .pays-monde path.est-intervention:focus,
.art-pays .pays-carte .pays-monde path.est-actif {
    fill: var(--pays-orange);
    outline: none;
}

/* message affiché tant que le JS n'a pas inséré la carte */
.art-pays p.pays-carte-repli {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    text-align: center;
    margin: 0;
    padding: 0 2rem;
}

.art-pays .pays-carte.is-ready p.pays-carte-repli {
    display: none;
}

/* ---- les deux boutons + / − ---- */

.art-pays .pays-carte-zoom {
    position: absolute;
    top: 20px;
    right: 20px;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
    overflow: hidden;
}

.art-pays .pays-zoom-btn {
    width: 38px;
    height: 40px;
    border: 0;
    background: none;
    color: #333;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.art-pays .pays-zoom-btn + .pays-zoom-btn {
    border-top: 1px solid var(--pays-grey-light);
}

.art-pays .pays-zoom-btn[disabled] {
    color: #bbb;
    cursor: default;
}

/* ---- l'infobulle ---- */

.art-pays a.pays-infobulle {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 1rem;
    max-width: 300px;
    background: #fff;
    border-radius: 25px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
    padding: 8px 14px 8px 10px;
    text-decoration: none;
    color: var(--pays-violet);
    /* le JS pose left/top ; on recentre l'infobulle au-dessus du pays */
    transform: translate(-50%, -100%);
}

/* display:flex ci-dessus compte (0,2,1) : il bat le .art-pays [hidden]
   generique (0,2,0). Sans cette regle, l'infobulle reste visible au repos. */
.art-pays a.pays-infobulle[hidden] {
    display: none;
}

.art-pays .pays-infobulle-i {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--pays-violet);
    color: #fff;
    font-family: Georgia, 'Times New Roman', serif;
    font-style: italic;
    font-size: 15px;
    line-height: 24px;
    text-align: center;
}

.art-pays .pays-infobulle-nombre {
    flex: 0 0 auto;
    font-size: 26px;
    line-height: 1;
    color: var(--pays-violet);
}

.art-pays .pays-infobulle-texte {
    flex: 1 1 auto;
    max-width: 130px;
    font-size: 11px;
    line-height: 1.3;
    text-align: left;
    color: var(--pays-violet);
}

.art-pays .pays-infobulle-lieu {
    display: block;
    text-transform: uppercase;
}

.art-pays .pays-infobulle-chevron {
    flex: 0 0 auto;
    font-size: 20px;
    color: var(--pays-violet);
}

.art-pays p.pays-carte-note {
    margin: 1.2rem 0 0;
    font-size: .95em;
    text-align: left;
}

/* --------------------------------------------------------------------------
   5. Accordéons de zone
   -------------------------------------------------------------------------- */

.art-pays .pays-accordion {
    display: grid;
    gap: 3rem;
    margin: 5rem 0 0;
}

.art-pays .pays-acc-item {
    border: 1px solid var(--pays-violet);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
    /* un enfant de grille vaut min-width:auto par defaut : sans ce 0, le
       volet s'elargit a la taille de son carrousel et deborde de la page. */
    min-width: 0;
}

.art-pays .pays-acc-head {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1.8rem 2.5rem;
    margin: 0;
    font-family: borden_regular, 'Open Sans', sans-serif;
    font-size: 28px;
    line-height: 1.2;
    text-align: left;
    color: var(--pays-violet);
    cursor: pointer;
}

.art-pays .pays-acc-head .pays-acc-caret {
    margin-left: auto;
    flex: 0 0 auto;
    font-size: 20px;
    transition: transform .25s ease;
}

/* chevron vers le bas quand le volet est fermé */
.art-pays .pays-acc-item:not(.is-open) .pays-acc-caret {
    transform: rotate(180deg);
}

.art-pays .pays-acc-panel {
    padding: 0 2.5rem 2.5rem;
}

/* replié seulement quand le JS a pris la main : sans JS tout reste lisible */
.art-pays .pays-accordion.is-ready .pays-acc-panel {
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    overflow: hidden;
    transition: max-height .3s ease, padding .3s ease;
}

.art-pays .pays-accordion.is-ready .pays-acc-item.is-open .pays-acc-panel {
    padding-bottom: 2.5rem;
}

/* --------------------------------------------------------------------------
   6. Carrousel de fiches-pays
   -------------------------------------------------------------------------- */

.art-pays .pays-carrousel {
    overflow: hidden;
    min-width: 0;
}

.art-pays .pays-piste {
    display: flex;
    gap: 2.4rem;
    align-items: stretch;
    transition: transform .35s ease;
}

.art-pays .pays-carrousel-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 2rem;
}

.art-pays .pays-carrousel-prev,
.art-pays .pays-carrousel-next {
    background: none;
    border: 0;
    padding: .5rem;
    color: #1b2a4a;
    font-size: 15px;
    cursor: pointer;
}

.art-pays .pays-carrousel-prev[disabled],
.art-pays .pays-carrousel-next[disabled] {
    opacity: .35;
    cursor: default;
}

/* --------------------------------------------------------------------------
   7. La fiche-pays
   -------------------------------------------------------------------------- */

.art-pays .pays-fiche {
    /* 3 fiches par écran ; le calcul est repris tel quel par pays.js */
    flex: 0 0 calc((100% - 4.8rem) / 3);
    max-width: calc((100% - 4.8rem) / 3);
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--pays-grey-light);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .07);
    padding: 1.8rem 1.5rem 2rem;
    text-align: center;
}

.art-pays .pays-fiche h3 {
    font-family: borden_regular, 'Open Sans', sans-serif;
    font-weight: normal;   /* article h3 pose bolder : on annule la fausse graisse */
    font-size: 20px;
    line-height: 1.2;
    color: var(--pays-black);
    margin: 0 0 1.4rem;
}

.art-pays .pays-fiche img {
    display: block;
    width: 100%;
    height: 190px;
    object-fit: cover;
    border-radius: 4px;
    margin: 0 0 1.5rem;
}

.art-pays p.pays-accroche {
    color: var(--pays-violet);
    font-weight: 700;
    font-size: 1em;
    line-height: 1.35;
    text-align: center;
    margin: 0 0 1rem;
}

.art-pays p.pays-lien {
    font-size: .8em;
    line-height: 1.35;
    text-align: center;
    margin: 0 0 1rem;
}

.art-pays .pays-lien a {
    color: var(--pays-blue);
}

.art-pays p.pays-desc {
    font-size: .8em;
    line-height: 1.45;
    text-align: center;
    margin: 0 0 1.5rem;
}

/* les deux boutons collés en bas, quelle que soit la hauteur du texte */
.art-pays .pays-actions {
    margin-top: auto;
    display: grid;
    gap: 1rem;
}

.art-pays .pays-actions .pays-btn {
    display: block;
    width: 100%;
    font-size: 16px;   /* le libellé complet ne tient pas à 25px dans une fiche */
    line-height: 22px;
    padding: 8px 14px;
}

/* --------------------------------------------------------------------------
   8. Bandeau bleu clair de bas de page, 3 cartes d'appel à l'action
      (repris à l'identique de international.css)
   -------------------------------------------------------------------------- */

.art-pays .pays-cta {
    background: var(--pays-blue-band);
    border-radius: 12px;
    margin: 5rem 0 0;
    padding: 4rem 3rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
}

.art-pays .pays-cta-card {
    background: #fff;
    border-radius: 12px;
    padding: 2.5rem 2rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.art-pays .pays-cta-card .fa {
    font-size: 34px;
    color: #9aa0ad;
    margin-bottom: 1.5rem;
}

.art-pays .pays-cta-card p {
    font-family: d_hanna_softbold, Helvetica, Arial, sans-serif;
    text-transform: uppercase;
    font-weight: normal;   /* d_hanna est déjà grasse : pas de fausse graisse */
    font-size: 17px;
    line-height: 1.3;
    text-align: center;
    margin: 0 0 2rem;
}

.art-pays .pays-cta-card p strong {
    color: var(--pays-blue);
    font-weight: normal;
}

.art-pays .pays-cta-card .pays-btn {
    margin-top: auto;
    width: 100%;
    font-size: 20px;
    line-height: 26px;
    padding: 9px 16px;
}

/* --------------------------------------------------------------------------
   9. Tablette et mobile
   -------------------------------------------------------------------------- */

@media (max-width: 991px) {
    .art-pays .pays-fiche {
        flex: 0 0 calc((100% - 2.4rem) / 2);
        max-width: calc((100% - 2.4rem) / 2);
    }

    .art-pays .pays-cta {
        grid-template-columns: 1fr;
    }

    .art-pays .pays-acc-head {
        font-size: 22px;
        padding: 1.5rem 1.8rem;
    }

    .art-pays .pays-acc-panel {
        padding: 0 1.8rem 2rem;
    }
}

@media (max-width: 767px) {
    .art-pays .pays-fiche {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .art-pays .pays-zones {
        gap: 1rem;
    }

    .art-pays .pays-zones .pays-btn {
        font-size: 18px;
        line-height: 24px;
        padding: 8px 18px;
    }

    /* sur petit écran la carte est trop fine pour être utile en 3/2 :
       on lui laisse toute la hauteur du viewBox */
    .art-pays .pays-carte-zoom {
        top: 10px;
        right: 10px;
    }
}
