/* =========================================================
   portfolio-ia/style.css — portfolio « IA & automatisation ».
   Chargé APRÈS /portfolio/style.css, qui porte l'identité commune aux deux
   portfolios (fond, hero sombre, pastilles, filets de titre de section).
   Toutes les règles sont préfixées .pf-ia (classe posée sur <body>) :
   le portfolio Dév. Web n'est pas touché.
   ========================================================= */

.pf-ia{
    --pfIndent: 32px;               /* aligne les textes sur le titre de section (filet 20px + gap 12px) */
    --pfMuted: #60636b;
    --pfText: rgba(20,20,20,.86);
}

/* ---------- En-tête ---------- */
.pf-ia .heroTitle{
    margin: 0 0 8px;
    font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Arial, sans-serif;
    font-weight: 800;
    font-size: 30px;
    line-height: 1.15;
    letter-spacing: .4px;
}
.pf-ia .heroRole{ font-size: 14.5px; }
.pf-ia .heroContact{ line-height: 1.5; }

/* ---------- Introduction, actions, accès aux projets ---------- */
.pf-ia .pfIntro{ padding: 18px 14px 14px; }
.pf-ia .pfLead{
    margin: 0 0 16px;
    max-width: 78ch;
    font-size: 16px;
    line-height: 1.65;
    color: var(--pfText);
}
.pf-ia .pfActions{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 0 0 16px;
}
.pf-ia .pfBtn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 18px;
    border-radius: 999px;
    border: 1px solid rgba(15,15,15,.18);
    background: rgba(255,255,255,.92);
    color: #141414;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color .18s ease, background .18s ease;
}
.pf-ia .pfBtn:hover{ border-color: rgba(15,15,15,.42); }
.pf-ia .pfBtn--primary{
    background: #0f172a;
    border-color: #0f172a;
    color: #fff;
}
.pf-ia .pfBtn--primary:hover{ background: #1e293b; border-color: #1e293b; }
.pf-ia .pfLink{
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.pf-ia .pfAnchors{ margin-top: 2px; }

/* ---------- Sections de projet ---------- */
.pf-ia .section{
    margin-top: 34px;
    scroll-margin-top: 18px;
}
.pf-ia .projEyebrow{
    margin: 0 0 6px;
    padding-left: var(--pfIndent);
    font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(20,20,20,.55);
}
.pf-ia .h2{
    font-size: 26px;
    padding: 12px 0;
    letter-spacing: .4px;
}
.pf-ia .proj--main .h2{ font-size: 34px; }
.pf-ia .projSub{
    margin: 0 0 5px;
    padding-left: var(--pfIndent);
    font-size: 16.5px;
    font-weight: 500;
    line-height: 1.45;
    color: rgba(20,20,20,.82);
}
.pf-ia .projMeta{
    margin: 0;
    padding-left: var(--pfIndent);
    font-size: 13px;
    color: var(--pfMuted);
}

/* ---------- Corps d'un projet ---------- */
.pf-ia .projBody{
    margin-top: 16px;
    padding: 18px 20px;
    border: 1px solid rgba(15,15,15,.12);
    background: rgba(255,255,255,.66);
    box-shadow: 0 10px 26px rgba(18,20,40,.08);
}
.pf-ia .proj--main .projBody{ padding: 22px 24px; }
.pf-ia .projText p{
    margin: 0 0 12px;
    max-width: 78ch;
    font-size: 16px;
    line-height: 1.65;
    color: var(--pfText);
}
.pf-ia .projText p:last-child{ margin-bottom: 0; }
.pf-ia .projRoleTitle{
    margin: 18px 0 6px;
    font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Arial, sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: rgba(20,20,20,.58);
}
.pf-ia .projState{ font-weight: 600; }
.pf-ia .projNote{ color: var(--pfMuted); }

.pf-ia .projFoot{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 18px;
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid rgba(15,15,15,.08);
}
.pf-ia .projEnv{
    margin: 0;
    font-size: 13px;
    color: var(--pfMuted);
}

/* ---------- Vidéo (Octopia) : lecteur unique de la page ---------- */
.pf-ia .projMedia{ margin: 22px 0 0; }
.pf-ia .projVideo{
    border: 1px solid rgba(15,15,15,.10);
    border-radius: 16px;
    overflow: hidden;
    background: #000;
    box-shadow: 0 10px 26px rgba(18,20,40,.10);
}
.pf-ia .projVideo video{
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    background: #000;
}
.pf-ia .projMedia figcaption{
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--pfMuted);
}

/* Grand écran : présentation resserrée à gauche, lecteur à droite. */
@media (min-width: 981px){
    .pf-ia .projBody--media{
        display: grid;
        grid-template-columns: minmax(0, 45fr) minmax(0, 55fr);
        column-gap: 26px;
        align-items: start;
    }
    .pf-ia .projBody--media .projText{ grid-column: 1; grid-row: 1; }
    .pf-ia .projBody--media .projMedia{ grid-column: 2; grid-row: 1 / span 2; margin: 0; }
    .pf-ia .projBody--media .projFoot{
        grid-column: 1;
        grid-row: 2;
        align-self: end;
        margin-top: 18px;
        padding-top: 0;
        border-top: 0;
    }
}

/* ---------- Blocs de fin de page ---------- */
.pf-ia .pfCoords{
    margin: 14px 0 0;
    font-size: 14px;
    color: var(--pfMuted);
}
.pf-ia .pfCoords a{ color: #141414; }

/* ---------- Focus visible ---------- */
.pf-ia a:focus-visible,
.pf-ia .pill:focus-visible,
.pf-ia .pfBtn:focus-visible{
    outline: 2px solid #0f172a;
    outline-offset: 3px;
}

/* =========================================================
   Écrans étroits
   ========================================================= */
@media (max-width: 700px){
    .pf-ia{ --pfIndent: 20px; }
    .pf-ia .sectionTitleRow{ gap: 10px; }
    .pf-ia .ruleFixed{ flex: 0 0 10px; width: 10px; }

    .pf-ia .heroTitle{ font-size: 24px; }
    .pf-ia .heroRole{ font-size: 13.5px; }

    .pf-ia .section{ margin-top: 26px; }
    .pf-ia .h2{ font-size: 21px; padding: 10px 0; }
    .pf-ia .proj--main .h2{ font-size: 25px; }
    .pf-ia .projSub{ font-size: 15.5px; }

    .pf-ia .projBody,
    .pf-ia .proj--main .projBody{ padding: 16px 14px; }
    .pf-ia .projText p{ font-size: 15.5px; }
    .pf-ia .pfLead{ font-size: 15.5px; }

    .pf-ia .pfBtn{ flex: 1 1 auto; min-width: 140px; }
    .pf-ia .pfLink{ flex: 1 1 auto; text-align: center; }
}

/* Sous ~400 px, la topbar (nom en gros non sécable + groupes « libellé · CV · Portfolio »
   sur une seule ligne) impose une largeur minimale supérieure à la colonne et fait déborder
   toute la page horizontalement. On réduit le nom et on passe le libellé de groupe au-dessus
   de ses deux boutons. Portée limitée à cette page : le portfolio Dév. Web garde son rendu. */
@media (max-width: 400px){
    .pf-ia .gm-topbar__brand{ font-size: 15px; letter-spacing: .3px; }
    .pf-ia .gm-nav__group{ flex-wrap: wrap; }
    .pf-ia .gm-nav__label{
        flex: 1 0 100%;
        margin: 0 0 4px;
        padding-left: 8px;
        overflow: visible;
    }
}

/* ---------- Réduction des animations ---------- */
@media (prefers-reduced-motion: reduce){
    .pf-ia *{ transition: none !important; animation: none !important; }
    .pf-ia .fab:hover,
    .pf-ia .shot:hover img{ transform: none !important; }
}
