/* ==========================================================================
   Article : "Parrainez un enfant à l'international"
   Figma 460-11959 — voir _ref/figma/460-11959-international.md

   Tout est scopé sous .art-intl -> 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
     .btn               borden_regular 20px, uppercase, radius 25px
   Ce fichier ne définit que ce qui n'existe pas ailleurs : la grille, le
   sommaire, et les blocs neufs (cartes, tarifs, accordéon, témoignages).
   Rappel : le site pose html{font-size:10px}, donc 1rem = 10px.
   ========================================================================== */

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

    /* roses et bleus très clairs des cartes */
    --intl-violet-pale: #fdeef4;
    --intl-blue-pale: #e9f6fb;
    --intl-blue-band: #c3e5ec;
}

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

/* --------------------------------------------------------------------------
   1. Grille générale : sommaire sticky à gauche + contenu
   -------------------------------------------------------------------------- */

.art-intl {
    display: block;
}

/* Le sommaire et le contenu vivent dans CETTE sous-grille, pas dans .art-intl.
   Raison : un element « sticky » est confine par son parent. Quand le bandeau
   d'appel a l'action partageait la grille avec le sommaire, celui-ci pouvait
   rester colle par-dessus le bandeau en bas de page. La sous-grille s'arrete
   avant le bandeau, donc le sommaire aussi. */
.art-intl-grille {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 4rem;
    align-items: start;
}

.art-intl-body {
    min-width: 0;
}

.art-intl-body > *:first-child {
    margin-top: 0;
}

/* --------------------------------------------------------------------------
   2. Titres : on laisse la prod décider de la police, de la taille et de la
      couleur. On ne règle que les marges et l'ancrage du sommaire.
   -------------------------------------------------------------------------- */

.art-intl .art-intl-body h2 {
    margin: 5rem 0 2rem;
    scroll-margin-top: 100px;
}

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

/* le chapô, au-dessus du premier titre */
.art-intl p.intl-chapo {
    color: var(--intl-violet);
    font-weight: 700;
    font-size: 1.2em;
    margin-bottom: 3rem;
}

.art-intl p.intl-source {
    font-size: .9em;
    margin-top: 1rem;
}

/* --------------------------------------------------------------------------
   3. Sommaire sticky
   -------------------------------------------------------------------------- */

.art-intl-toc {
    position: -webkit-sticky;
    position: sticky;
    top: 20px;
    align-self: start;
    padding: 0 1rem 0 0;
    text-align: left;
}

.art-intl-toc-title {
    display: none; /* réservé au repli mobile */
    align-items: center;
    gap: .8rem;
    font-family: borden_regular, 'Open Sans', sans-serif;
    font-size: 20px;
    color: var(--intl-violet);
    margin: 0 0 1rem;
    width: 100%;
    background: none;
    border: 0;
    padding: 0;
    text-align: left;
    cursor: pointer;
}

.art-intl-toc-title .art-intl-toc-caret {
    margin-left: auto;
    transition: transform .25s ease;
}

.art-intl-toc ol {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Deux classes sont necessaires : la prod pose « .international article li
   { list-style-image: url(p_violet.jpg) } », qui bat un selecteur a une seule
   classe. Sans cela, le sommaire affiche DEUX puces : celle du site et la
   pastille ronde de la maquette. */
.art-intl .art-intl-toc li {
    margin: 0;
    padding: 0;
    list-style: none;
    list-style-image: none;
}

.art-intl-toc a {
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    padding: .7rem 0;
    font-size: .95em;
    line-height: 1.35;
    color: #9aa0ad;
    text-decoration: none;
    transition: color .2s ease;
}

/* la pastille ronde devant chaque entrée */
.art-intl-toc a::before {
    content: "";
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    margin-top: .55em;
    border-radius: 50%;
    border: 1px solid #c8ccd4;
    background: transparent;
    transition: background-color .2s ease, border-color .2s ease;
}

.art-intl-toc a:hover,
.art-intl-toc a:focus {
    color: var(--intl-violet);
    text-decoration: none;
}

.art-intl-toc a.is-active {
    color: var(--intl-violet);
}

.art-intl-toc a.is-active::before {
    background: var(--intl-violet);
    border-color: var(--intl-violet);
}

/* --------------------------------------------------------------------------
   4. Boutons — mêmes mesures que le .btn du site (style.less), seules les
      couleurs changent selon la maquette.
   -------------------------------------------------------------------------- */

.art-intl .intl-btn {
    display: inline-block;
    font-family: borden_regular, 'Open Sans', sans-serif;
    font-size: 25px;   /* valeur reellement calculee pour le .btn du site */
    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;
    white-space: normal;
    cursor: pointer;
    transition: all .3s;
}

.art-intl .intl-btn-row {
    text-align: center;
    margin: 2.5rem 0 1rem;
}

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

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

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

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

/* bleu contour */
.art-intl .intl-btn-blue-outline {
    background: #fff;
    border-width: 2px;
    border-color: var(--intl-blue);
    color: var(--intl-blue);
}

.art-intl .intl-btn-blue-outline:hover,
.art-intl .intl-btn-blue-outline:focus {
    background: var(--intl-blue);
    color: #fff;
}

/* orange contour, qui passe en turquoise plein au survol */
.art-intl .intl-btn-orange-outline {
    background: #fff;
    border-width: 2px;
    border-color: var(--intl-orange);
    color: var(--intl-orange);
}

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

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

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

/* --------------------------------------------------------------------------
   5. Section « les portes d'un avenir meilleur » : image + texte
   -------------------------------------------------------------------------- */

.art-intl .intl-media {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 2.5rem;
    align-items: start;
    margin-bottom: 2rem;
}

.art-intl .intl-media img {
    width: 100%;
    height: auto;
    display: block;
}

.art-intl .intl-media-body > p:last-child {
    margin-bottom: 0;
}

/* variante « Qui sont les enfants parrainés ? » : vignette plus petite,
   169 px dans la maquette, contre 250 px pour la section precedente. */
.art-intl .intl-media-petite {
    grid-template-columns: 169px minmax(0, 1fr);
    gap: 2.4rem;
    align-items: center;
}

/* --------------------------------------------------------------------------
   6. « Découvrez où parrainer » : 4 cartes de zone
   -------------------------------------------------------------------------- */

.art-intl .intl-zones {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    margin: 2rem 0 3rem;
}

.art-intl .intl-zone {
    border: 1px solid #e4e4e4;
    border-radius: 14px;
    background: #fff;
    padding: 2rem 1.8rem 2.2rem;
    display: flex;
    flex-direction: column;
    text-align: center;
}

.art-intl .intl-zone h3 {
    font-family: d_hanna_softbold, Helvetica, Arial, sans-serif;
    text-transform: uppercase;
    font-weight: normal;   /* sinon article h3 fabrique une fausse graisse */
    font-size: 20px;
    color: #212121;
    margin: 0 0 1.5rem;
}

.art-intl .intl-zone img {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom: 1.5rem;
}

.art-intl p.intl-zone-lead {
    color: var(--intl-violet);
    font-weight: 700;
    font-size: 1.1em;
    margin: 0 0 1.2rem;
}

.art-intl p.intl-zone-pays {
    color: var(--intl-blue);
    font-size: .95em;
    margin: 0 0 1.2rem;
}

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

.art-intl p.intl-zone-stat {
    font-size: .95em;
    margin: 0 0 .4rem;
}

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

.art-intl .intl-zone-actions .intl-btn {
    display: block;
    width: 100%;
}

/* --------------------------------------------------------------------------
   7. « Un engagement à votre image » : 3 cartes de tarif
   -------------------------------------------------------------------------- */

.art-intl .intl-tarifs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
    align-items: center;
    margin: 3rem 0 1rem;
}

.art-intl .intl-tarif {
    background: var(--intl-blue-pale);
    border-radius: 16px;
    padding: 2.5rem 2rem;
    text-align: center;
}

.art-intl p.intl-tarif-prix {
    font-family: borden_regular, 'Open Sans', sans-serif;
    font-size: 34px;
    line-height: 1.1;
    color: var(--intl-violet);
    margin: 0 0 .8rem;
}

.art-intl p.intl-tarif-reduc {
    color: var(--intl-blue);
    font-size: 1em;
    line-height: 1.35;
    margin: 0 0 1.8rem;
}

.art-intl .intl-tarif-titre {
    display: block;
    color: var(--intl-violet);
    font-weight: 700;
    line-height: 1.35;
    text-decoration: underline;
    margin: 0 0 1.2rem;
}

.art-intl p.intl-tarif-desc {
    font-size: 1em;
    line-height: 1.45;
    margin: 0 0 1.5rem;
}

.art-intl p.intl-tarif-adhesion {
    font-size: .85em;
    margin: 0;
}

/* la carte du milieu, mise en avant */
.art-intl .intl-tarif-fort {
    background: #fff;
    border: 3px solid var(--intl-violet);
    border-radius: 16px;
    padding: 0 0 2.5rem;
    overflow: hidden;
    text-align: center;
}

.art-intl .intl-tarif-fort .intl-tarif-flag {
    display: block;
    background: var(--intl-violet);
    color: #fff;
    font-family: d_hanna_softbold, Helvetica, Arial, sans-serif;
    font-size: 16px;
    text-transform: uppercase;
    padding: .9rem 1rem;
    margin: 0 0 2rem;
}

.art-intl .intl-tarif-fort p,
.art-intl .intl-tarif-fort .intl-tarif-titre {
    padding-left: 2rem;
    padding-right: 2rem;
}

/* --------------------------------------------------------------------------
   8. Accordéon « Votre relation avec votre filleul(e) »
   -------------------------------------------------------------------------- */

.art-intl .intl-accordion {
    display: grid;
    gap: 1.5rem;
    margin: 2rem 0 1rem;
}

.art-intl .intl-acc-item {
    border: 2px solid var(--intl-violet);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

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

.art-intl .intl-acc-head .intl-acc-caret {
    margin-left: auto;
    flex: 0 0 auto;
    transition: transform .25s ease;
}

.art-intl .intl-acc-item.is-open .intl-acc-caret {
    transform: rotate(180deg);
}

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

.art-intl .intl-acc-panel > *:last-child {
    margin-bottom: 0;
}

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

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

/* --------------------------------------------------------------------------
   9. « Pourquoi choisir France Parrainages ? » : 3 cartes roses
   -------------------------------------------------------------------------- */

.art-intl .intl-atouts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
    margin: 2rem 0 1rem;
}

.art-intl .intl-atout {
    background: var(--intl-violet-pale);
    border-radius: 16px;
    padding: 3rem 2rem;
    text-align: center;
}

.art-intl .intl-atout h3 {
    font-family: d_hanna_softbold, Helvetica, Arial, sans-serif;
    text-transform: uppercase;
    font-weight: normal;   /* sinon article h3 fabrique une fausse graisse */
    font-size: 22px;
    line-height: 1.2;
    color: var(--intl-orange);
    margin: 0 0 2rem;
}

.art-intl .intl-atout p {
    font-size: 1em;
    line-height: 1.45;
    margin: 0 0 1rem;
}

.art-intl .intl-atout p:last-child {
    margin-bottom: 0;
}

.art-intl .intl-atout-fort {
    font-weight: 700;
}

/* --------------------------------------------------------------------------
   10. Témoignages, avec repli du texte
   -------------------------------------------------------------------------- */

.art-intl .intl-temoignages {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    margin: 2rem 0 1rem;
}

.art-intl .intl-temoignage {
    border: 3px solid var(--intl-violet);
    border-radius: 14px;
    padding: 2.5rem 2rem 2rem;
    text-align: center;
    background: #fff;
    display: flex;
    flex-direction: column;
}

.art-intl .intl-temoignage-orange {
    border-color: var(--intl-orange);
}

.art-intl .intl-temoignage img {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 1rem;
    display: block;
}

.art-intl p.intl-temoignage-nom {
    font-weight: 700;
    font-size: 1em;
    line-height: 1.3;
    margin: 0 0 1.5rem;
}

.art-intl .intl-temoignage-quote {
    font-family: borden_regular, 'Open Sans', sans-serif;
    font-size: 35px;
    line-height: .5;
    color: #212121;
    display: block;
    text-align: left;
    margin: 0 0 1rem;
}

.art-intl p.intl-temoignage-texte {
    font-style: italic;
    font-size: 1em;
    line-height: 1.55;
    margin: 0;
}

/* replié seulement quand le JS a pris la main */
.art-intl .intl-temoignage.is-ready p.intl-temoignage-texte {
    overflow: hidden;
    transition: max-height .3s ease;
}

.art-intl .intl-temoignage-toggle {
    margin-top: auto;
    padding-top: 1.5rem;
    background: none;
    border: 0;
    font-style: italic;
    text-decoration: underline;
    cursor: pointer;
    display: none; /* affiché par le JS, et seulement si le texte déborde */
    align-items: center;
    justify-content: center;
    gap: .6rem;
    width: 100%;
}

.art-intl .intl-temoignage-toggle .intl-temoignage-caret {
    transition: transform .25s ease;
    color: var(--intl-violet);
}

.art-intl .intl-temoignage.is-open .intl-temoignage-caret {
    transform: rotate(180deg);
}

/* --------------------------------------------------------------------------
   11. « Une équipe proche de vous »
   -------------------------------------------------------------------------- */

.art-intl .intl-equipe {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 2.5rem;
    align-items: start;
    margin: 2rem 0 1rem;
}

.art-intl .intl-equipe img {
    width: 100%;
    height: auto;
    display: block;
    filter: grayscale(1);
}

.art-intl .intl-contact {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
    padding: 1.4rem 2rem;
    margin-bottom: 1.2rem;
    max-width: 420px;
    text-align: left;
}

.art-intl .intl-contact .fa {
    color: #212121;
    font-size: 18px;
    flex: 0 0 auto;
}

/* --------------------------------------------------------------------------
   12. Bandeau bleu clair de bas de page, 3 cartes d'appel à l'action
   -------------------------------------------------------------------------- */

.art-intl .intl-cta {
    /* hors de la grille .art-intl : voir le commentaire dans le HTML */
    background: var(--intl-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-intl .intl-cta-card {
    background: #fff;
    border-radius: 12px;
    padding: 2.5rem 2rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

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

.art-intl .intl-cta-card p {
    font-family: d_hanna_softbold, Helvetica, Arial, sans-serif;
    text-transform: uppercase;
    font-size: 17px;
    line-height: 1.3;
    margin: 0 0 2rem;
}

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

.art-intl .intl-cta-card .intl-btn {
    margin-top: auto;
    width: 100%;
}

/* --------------------------------------------------------------------------
   13. Tablette et mobile
   -------------------------------------------------------------------------- */

@media (max-width: 991px) {
    .art-intl-grille {
        display: block;
    }

    .art-intl-toc {
        position: static;
        border: 1px solid #e4e4e4;
        border-radius: 10px;
        padding: 1.5rem;
        margin-bottom: 3rem;
    }

    .art-intl-toc-title {
        display: flex;
        margin-bottom: 0;
    }

    /* replié par défaut sur petit écran ; le JS ajoute .is-open */
    .art-intl-toc ol {
        display: none;
        margin-top: 1.5rem;
    }

    .art-intl-toc.is-open ol {
        display: block;
    }

    .art-intl-toc.is-open .art-intl-toc-caret {
        transform: rotate(180deg);
    }

    .art-intl .intl-tarifs,
    .art-intl .intl-atouts,
    .art-intl .intl-cta {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .art-intl .intl-media,
    .art-intl .intl-zones,
    .art-intl .intl-temoignages,
    .art-intl .intl-equipe {
        grid-template-columns: 1fr;
    }

    .art-intl .intl-equipe img {
        max-width: 200px;
    }
}
