/* ==========================================================
   ADREXIA
   Feuille de style globale
   ========================================================== */


/* ===========================
   VARIABLES
=========================== */

:root{

    --primary:#1565C0;
    --primary-dark:#0D47A1;
    --primary-light:#42A5F5;

    --background:#F5F7FA;

    --surface:#FFFFFF;

    --text:#1F2937;
    --text-light:#6B7280;

    --border:#D9E2EC;

    --success:#2E7D32;
    --danger:#C62828;

    --radius:12px;

    --shadow:
        0 6px 18px rgba(0,0,0,.08);

}


/* ===========================
   RESET
=========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}


/* ===========================
   PAGE
=========================== */

body{

    background:var(--background);

    color:var(--text);

    font-family:
        "Segoe UI",
        Arial,
        Helvetica,
        sans-serif;

    line-height:1.6;

}


/* ===========================
   LIENS
=========================== */

a{

    color:inherit;

    text-decoration:none;

}


/* ===========================
   IMAGES
=========================== */

img{

    max-width:100%;

    display:block;

}


/* ===========================
   BOUTONS
=========================== */

button{

    cursor:pointer;

    border:none;

    border-radius:var(--radius);

    font:inherit;

}


/* ===========================
   CONTENEUR PRINCIPAL
=========================== */

#app{

    min-height:100vh;

    display:flex;

    flex-direction:column;

}


/* ===========================
   CONTENU
=========================== */

#main-content{

    flex:1;

}


/* ===========================
   CONTENEUR STANDARD
=========================== */

.container{

    width:min(1200px,92%);

    margin:auto;

}


/* ===========================
   CARTES
=========================== */

.card{

    background:var(--surface);

    border:1px solid var(--border);

    border-radius:var(--radius);

    box-shadow:var(--shadow);

}


/* ===========================
   ANIMATION
=========================== */

html{

    scroll-behavior:smooth;

}
/* ==========================================================
   NAVBAR — ADREXIA V2
========================================================== */

body.navigation-lock{
    overflow:hidden;
}


/* ===========================
   Barre principale
=========================== */

.navbar{
    position:sticky;
    top:0;
    z-index:1200;

    background:rgba(255,255,255,.9);

    border-bottom:
        1px solid rgba(21,101,192,.1);

    box-shadow:
        0 8px 30px rgba(15,23,42,.05);

    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.navbar-container{
    min-height:76px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:28px;
}


/* ===========================
   Logo
=========================== */

.logo{
    flex-shrink:0;

    display:inline-flex;
    align-items:center;

    gap:10px;

    color:var(--primary);

    font-size:1.38rem;
    font-weight:800;

    letter-spacing:1.2px;
}

.logo-mark{
    width:40px;
    height:40px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    flex-shrink:0;

    overflow:hidden;

    background:transparent;

    border-radius:13px;

    box-shadow:
        0 10px 24px rgba(21,101,192,.25);

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.logo-mark-image{
    width:100%;
    height:100%;

    display:block;

    object-fit:contain;

    border-radius:inherit;
}

.logo:hover .logo-mark{
    transform:
        translateY(-2px)
        rotate(-4deg);

    box-shadow:
        0 14px 30px rgba(21,101,192,.32);
}

.logo-text{
    line-height:1;
}


/* ===========================
   Navigation ordinateur
=========================== */

.nav-links{
    list-style:none;
}

.nav-links--desktop{
    display:flex;
    align-items:center;
    justify-content:center;

    gap:4px;

    margin-left:auto;
}

.nav-link{
    position:relative;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-height:44px;

    padding:8px 14px;

    color:var(--text-light);

    border-radius:12px;

    font-size:.96rem;
    font-weight:600;

    transition:
        color .22s ease,
        background-color .22s ease,
        transform .22s ease;
}

.nav-link::after{
    content:"";

    position:absolute;

    left:50%;
    bottom:5px;

    width:0;
    height:2px;

    background:var(--primary);

    border-radius:999px;

    transform:translateX(-50%);

    transition:width .22s ease;
}

.nav-link:hover{
    color:var(--primary);

    background:
        rgba(21,101,192,.06);

    transform:translateY(-1px);
}

.nav-link:hover::after,
.nav-link--active::after{
    width:24px;
}

.nav-link--active{
    color:var(--primary);

    background:
        rgba(21,101,192,.08);
}


/* ===========================
   Actions
=========================== */

.navbar-actions{
    display:flex;
    align-items:center;

    gap:10px;
}

.profile-button{
    min-height:46px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:9px;

    padding:9px 17px;

    color:#FFFFFF;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-light)
        );

    border-radius:14px;

    box-shadow:
        0 10px 24px rgba(21,101,192,.2);

    font-size:.94rem;
    font-weight:700;

    transition:
        transform .22s ease,
        box-shadow .22s ease;
}

.profile-button:hover{
    transform:translateY(-2px);

    box-shadow:
        0 15px 30px rgba(21,101,192,.28);
}

.profile-button:focus-visible,
.menu-toggle:focus-visible,
.mobile-menu-close:focus-visible,
.profile-panel-close:focus-visible,
.mobile-profile-button:focus-visible{
    outline:
        3px solid rgba(66,165,245,.35);

    outline-offset:3px;
}

.profile-button-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
}


/* ===========================
   Bouton hamburger
=========================== */

.menu-toggle{
    width:46px;
    height:46px;

    display:none;
    align-items:center;
    justify-content:center;
    flex-direction:column;

    gap:5px;

    padding:0;

    color:var(--primary);

    background:
        rgba(21,101,192,.08);

    border:
        1px solid rgba(21,101,192,.12);

    border-radius:14px;

    transition:
        background-color .22s ease,
        transform .22s ease;
}

.menu-toggle:hover{
    background:
        rgba(21,101,192,.14);

    transform:translateY(-1px);
}

.menu-toggle-line{
    width:21px;
    height:2px;

    display:block;

    background:currentColor;

    border-radius:999px;

    transition:
        transform .25s ease,
        opacity .2s ease;
}

.menu-toggle--active
.menu-toggle-line:nth-child(1){
    transform:
        translateY(7px)
        rotate(45deg);
}

.menu-toggle--active
.menu-toggle-line:nth-child(2){
    opacity:0;
}

.menu-toggle--active
.menu-toggle-line:nth-child(3){
    transform:
        translateY(-7px)
        rotate(-45deg);
}


/* ==========================================================
   MENU MOBILE
========================================================== */

.mobile-menu-overlay{
    position:fixed;
    inset:0;

    z-index:1400;

    visibility:hidden;
    opacity:0;

    background:
        rgba(15,23,42,.48);

    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);

    transition:
        opacity .3s ease,
        visibility .3s ease;
}

.mobile-menu-overlay--visible{
    visibility:visible;
    opacity:1;
}

.mobile-menu{
    position:fixed;

    top:0;
    right:0;
    bottom:0;

    z-index:1500;

    width:min(390px,90vw);

    display:flex;
    flex-direction:column;

    overflow-y:auto;

    background:
        linear-gradient(
            180deg,
            #FFFFFF 0%,
            #F7FAFF 100%
        );

    box-shadow:
        -22px 0 55px rgba(15,23,42,.18);

    transform:translateX(105%);

    visibility:hidden;

    transition:
        transform .34s cubic-bezier(.22,1,.36,1),
        visibility .34s ease;
}

.mobile-menu--open{
    visibility:visible;
    transform:translateX(0);
}

.mobile-menu-header{
    min-height:88px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    padding:20px 22px;

    border-bottom:
        1px solid rgba(21,101,192,.1);
}

.mobile-menu-brand{
    display:flex;
    align-items:center;

    gap:12px;
}

.mobile-menu-brand div{
    display:flex;
    flex-direction:column;

    line-height:1.3;
}

.mobile-menu-brand strong{
    color:var(--primary-dark);

    font-size:1rem;

    letter-spacing:.8px;
}

.mobile-menu-brand span:not(.logo-mark){
    color:var(--text-light);

    font-size:.77rem;
}

.mobile-menu-close,
.profile-panel-close{
    width:42px;
    height:42px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    flex-shrink:0;

    color:var(--primary-dark);

    background:
        rgba(21,101,192,.08);

    border-radius:13px;

    font-size:1.8rem;
    line-height:1;

    transition:
        transform .22s ease,
        background-color .22s ease;
}

.mobile-menu-close:hover,
.profile-panel-close:hover{
    background:
        rgba(21,101,192,.14);

    transform:rotate(5deg);
}


/* ===========================
   Liens mobiles
=========================== */

.mobile-menu-navigation{
    display:flex;
    flex-direction:column;

    gap:8px;

    padding:22px;
}

.mobile-nav-link{
    display:flex;
    align-items:center;

    gap:14px;

    padding:13px 14px;

    color:var(--text);

    border:
        1px solid transparent;

    border-radius:16px;

    transition:
        color .22s ease,
        background-color .22s ease,
        border-color .22s ease,
        transform .22s ease,
        box-shadow .22s ease;
}

.mobile-nav-link:hover{
    color:var(--primary-dark);

    background:#FFFFFF;

    border-color:
        rgba(21,101,192,.12);

    box-shadow:
        0 10px 24px rgba(15,23,42,.07);

    transform:translateX(4px);
}

.mobile-nav-link--active{
    color:var(--primary-dark);

    background:
        linear-gradient(
            135deg,
            rgba(21,101,192,.12),
            rgba(66,165,245,.08)
        );

    border-color:
        rgba(21,101,192,.14);
}

.mobile-nav-icon{
    width:43px;
    height:43px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    flex-shrink:0;

    color:var(--primary);

    background:
        rgba(21,101,192,.09);

    border-radius:14px;
}

.mobile-nav-link > span:nth-child(2){
    display:flex;
    flex-direction:column;

    line-height:1.35;
}

.mobile-nav-link strong{
    font-size:.96rem;
}

.mobile-nav-link small{
    color:var(--text-light);

    font-size:.76rem;
}


/* ===========================
   Profil mobile
=========================== */

.mobile-menu-profile{
    margin-top:auto;

    padding:6px 22px 20px;
}

.mobile-profile-button{
    width:100%;

    display:flex;
    align-items:center;

    gap:13px;

    padding:16px;

    color:#FFFFFF;

    background:
        linear-gradient(
            135deg,
            var(--primary-dark),
            var(--primary),
            var(--primary-light)
        );

    border-radius:18px;

    box-shadow:
        0 16px 35px rgba(21,101,192,.25);

    text-align:left;

    transition:
        transform .22s ease,
        box-shadow .22s ease;
}

.mobile-profile-button:hover{
    transform:translateY(-2px);

    box-shadow:
        0 20px 42px rgba(21,101,192,.32);
}

.mobile-profile-icon{
    width:45px;
    height:45px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    flex-shrink:0;

    color:#FFFFFF;

    background:
        rgba(255,255,255,.16);

    border:
        1px solid rgba(255,255,255,.2);

    border-radius:15px;
}

.mobile-profile-button > span:nth-child(2){
    display:flex;
    flex:1;
    flex-direction:column;

    line-height:1.35;
}

.mobile-profile-button strong{
    font-size:.96rem;
}

.mobile-profile-button small{
    color:rgba(255,255,255,.78);

    font-size:.75rem;
}

.mobile-profile-arrow{
    font-size:1.3rem;
}

.mobile-menu-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:16px 22px;

    color:var(--text-light);

    border-top:
        1px solid rgba(21,101,192,.09);

    font-size:.76rem;
}


/* ==========================================================
   PANNEAU MON ESPACE
========================================================== */

.profile-panel-overlay{
    position:fixed;
    inset:0;

    z-index:1600;

    visibility:hidden;
    opacity:0;

    background:
        rgba(15,23,42,.52);

    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);

    transition:
        opacity .3s ease,
        visibility .3s ease;
}

.profile-panel-overlay--visible{
    visibility:visible;
    opacity:1;
}

.profile-panel{
    position:fixed;

    top:0;
    right:0;
    bottom:0;

    z-index:1700;

    width:min(430px,94vw);

    overflow-y:auto;

    background:
        linear-gradient(
            180deg,
            #FFFFFF 0%,
            #F4F8FF 100%
        );

    box-shadow:
        -24px 0 65px rgba(15,23,42,.22);

    transform:translateX(105%);

    visibility:hidden;

    transition:
        transform .36s cubic-bezier(.22,1,.36,1),
        visibility .36s ease;
}

.profile-panel--open{
    visibility:visible;
    transform:translateX(0);
}

.profile-panel-header{
    min-height:100px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    padding:24px;

    background:
        linear-gradient(
            135deg,
            var(--primary-dark),
            var(--primary)
        );

    color:#FFFFFF;
}

.profile-panel-header h2{
    margin-top:3px;

    font-size:1.55rem;
}

.profile-panel-label{
    color:rgba(255,255,255,.7);

    font-size:.72rem;
    font-weight:700;

    letter-spacing:1.5px;
}

.profile-panel-header
.profile-panel-close{
    color:#FFFFFF;

    background:
        rgba(255,255,255,.14);
}

.profile-panel-header
.profile-panel-close:hover{
    background:
        rgba(255,255,255,.22);
}

.profile-panel-content{
    min-height:
        calc(100vh - 100px);

    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;

    padding:42px 30px;

    text-align:center;
}

.profile-empty-icon{
    width:88px;
    height:88px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin-bottom:24px;

    color:var(--primary);

    background:
        linear-gradient(
            135deg,
            rgba(21,101,192,.14),
            rgba(66,165,245,.08)
        );

    border:
        1px solid rgba(21,101,192,.14);

    border-radius:28px;

    box-shadow:
        0 18px 40px rgba(21,101,192,.13);
}

.profile-panel-content h3{
    margin-bottom:10px;

    color:var(--primary-dark);

    font-size:1.3rem;
}

.profile-panel-content > p{
    max-width:340px;

    margin-bottom:26px;

    color:var(--text-light);
}

.profile-declaration-link{
    width:100%;
    max-width:320px;

    min-height:52px;

    display:flex;
    align-items:center;
    justify-content:center;

    gap:12px;

    padding:12px 20px;

    color:#FFFFFF;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-light)
        );

    border-radius:15px;

    box-shadow:
        0 14px 30px rgba(21,101,192,.22);

    font-weight:700;

    transition:
        transform .22s ease,
        box-shadow .22s ease;
}

.profile-declaration-link:hover{
    transform:translateY(-2px);

    box-shadow:
        0 18px 38px rgba(21,101,192,.3);
}

.profile-panel-note{
    width:100%;
    max-width:320px;

    display:flex;
    flex-direction:column;

    gap:5px;

    margin-top:22px;
    padding:16px;

    color:var(--text-light);

    background:
        rgba(21,101,192,.055);

    border:
        1px solid rgba(21,101,192,.1);

    border-radius:15px;

    font-size:.78rem;
}

.profile-panel-note strong{
    color:var(--primary);
}


/* ==========================================================
   RESPONSIVE NAVBAR
========================================================== */

@media(max-width:1050px){

    .nav-links--desktop{
        gap:0;
    }

    .nav-link{
        padding-left:10px;
        padding-right:10px;

        font-size:.91rem;
    }

    .profile-button{
        padding-left:13px;
        padding-right:13px;
    }

}


@media(max-width:860px){

    .profile-button-text{
        display:none;
    }

    .profile-button{
        width:46px;
        padding:0;
    }

}


@media(max-width:768px){

    .navbar-container{
        min-height:68px;
    }

    .nav-links--desktop,
    .profile-button{
        display:none;
    }

    .menu-toggle{
        display:flex;
    }

    .logo-mark{
        width:38px;
        height:38px;

        border-radius:12px;
    }

    .logo{
        font-size:1.22rem;
    }

}


@media(max-width:420px){

    .container{
        width:min(1200px,94%);
    }

    .logo-text{
        font-size:1.1rem;
    }

    .mobile-menu{
        width:94vw;
    }

    .mobile-menu-navigation{
        padding-left:16px;
        padding-right:16px;
    }

    .mobile-menu-profile{
        padding-left:16px;
        padding-right:16px;
    }

    .profile-panel-content{
        padding-left:22px;
        padding-right:22px;
    }

}


/* ==========================================================
   ACCESSIBILITÉ ET MOUVEMENT RÉDUIT
========================================================== */

@media(prefers-reduced-motion:reduce){

    .navbar *,
    .mobile-menu,
    .mobile-menu-overlay,
    .profile-panel,
    .profile-panel-overlay{
        scroll-behavior:auto !important;

        transition-duration:.01ms !important;
        animation-duration:.01ms !important;
    }

}
/* ==========================================================
   FOOTER
========================================================== */

.footer{

    background:var(--primary-dark);

    color:white;

    margin-top:auto;

}

.footer-container{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    gap:40px;

    padding:50px 0;

}

.footer-brand h3{

    margin-bottom:12px;

}

.footer-brand p{

    max-width:420px;

    opacity:.9;

}

.footer-links{

    display:flex;

    flex-direction:column;

    gap:12px;

}

.footer-links a{

    color:white;

    opacity:.9;

    transition:.25s;

}

.footer-links a:hover{

    opacity:1;

}

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.15);

    text-align:center;

    padding:18px;

    font-size:.9rem;

}


/* ===========================
   Responsive Footer
=========================== */

@media(max-width:768px){

    .footer-container{

        flex-direction:column;

    }

}

/* ==========================================================
   ADREXIA
   Mon espace — Interface Premium v2
   À ajouter à la fin de public/css/global.css
========================================================== */

.profile-panel-content {
    min-height: calc(100vh - 100px);
    display: block;
    padding: 0;
    text-align: left;
}

.profile-premium {
    width: 100%;
    min-height: calc(100vh - 100px);
    padding: 26px 24px 30px;
    animation: adrexia-profile-entry .38s ease-out both;
}

.profile-premium--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding-top: 42px;
    padding-bottom: 42px;
    text-align: center;
}

.profile-premium__eyebrow {
    display: inline-flex;
    align-items: center;
    margin-bottom: 6px;
    color: var(--primary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.profile-premium h3 {
    margin: 0;
    color: var(--primary-dark);
    font-size: 1.35rem;
    line-height: 1.25;
}

.profile-premium__intro {
    max-width: 330px;
    margin: 12px auto 24px;
    color: var(--text-light);
    line-height: 1.7;
}

.profile-premium__hero-icon {
    width: 88px;
    height: 88px;
    display: grid;
    place-items: center;
    margin-bottom: 24px;
    color: var(--primary);
    background: linear-gradient(145deg, rgba(21,101,192,.15), rgba(66,165,245,.06));
    border: 1px solid rgba(21,101,192,.14);
    border-radius: 28px;
    box-shadow: 0 20px 46px rgba(21,101,192,.15);
}

.profile-residence-card {
    position: relative;
    overflow: hidden;
    padding: 22px;
    color: #fff;
    background:
        radial-gradient(circle at 90% 0%, rgba(255,255,255,.22), transparent 35%),
        linear-gradient(145deg, var(--primary-dark) 0%, var(--primary) 58%, var(--primary-light) 130%);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 24px;
    box-shadow: 0 24px 55px rgba(13,71,161,.28);
}

.profile-residence-card::after {
    content: "";
    position: absolute;
    right: -38px;
    bottom: -58px;
    width: 150px;
    height: 150px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 50%;
}

.profile-residence-card__top {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.profile-residence-card .profile-premium__eyebrow {
    color: rgba(255,255,255,.72);
}

.profile-residence-card h3 {
    color: #fff;
}

.profile-residence-card__badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    color: #fff;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
    backdrop-filter: blur(8px);
}

.profile-residence-card__badge::before {
    content: "";
    width: 7px;
    height: 7px;
    background: #8ef0a8;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(142,240,168,.16);
}

.profile-residence-card__mark {
    position: relative;
    z-index: 1;
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin: 22px 0 16px;
    color: #fff;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 18px;
    backdrop-filter: blur(10px);
}

.profile-code-card {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 4px 12px;
    align-items: center;
    padding: 15px 16px;
    background: rgba(255,255,255,.13);
    border: 1px solid rgba(255,255,255,.17);
    border-radius: 17px;
    backdrop-filter: blur(10px);
}

.profile-code-card__label {
    grid-column: 1 / -1;
    color: rgba(255,255,255,.7);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.profile-code-card__value {
    min-width: 0;
    color: #fff;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: .98rem;
    letter-spacing: .025em;
    overflow-wrap: anywhere;
}

.profile-code-card__copy {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 7px 10px;
    color: #fff;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 11px;
    font-size: .75rem;
    font-weight: 800;
    transition: transform .2s ease, background-color .2s ease;
}

.profile-code-card__copy:hover {
    transform: translateY(-1px);
    background: rgba(255,255,255,.23);
}

.profile-information-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
    margin: 16px 0 0;
}

.profile-information-item {
    min-width: 0;
    padding: 12px 13px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 14px;
}

.profile-information-item dt {
    margin-bottom: 3px;
    color: rgba(255,255,255,.68);
    font-size: .69rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.profile-information-item dd {
    margin: 0;
    color: #fff;
    font-size: .9rem;
    font-weight: 750;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.profile-residence-card__date {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 15px;
    color: rgba(255,255,255,.72);
    font-size: .73rem;
}

.profile-actions {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.profile-action {
    width: 100%;
    min-height: 52px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    border: 1px solid transparent;
    border-radius: 15px;
    font-size: .88rem;
    font-weight: 750;
    text-align: left;
    transition:
        transform .2s ease,
        box-shadow .2s ease,
        background-color .2s ease,
        border-color .2s ease;
}

.profile-action:hover {
    transform: translateY(-2px);
}

.profile-action__icon {
    width: 36px;
    height: 36px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 11px;
}

.profile-action > span:nth-child(2) {
    flex: 1;
}

.profile-action__arrow {
    flex: 0 0 auto;
    font-size: 1rem;
}

.profile-action--primary {
    color: #fff;
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    box-shadow: 0 13px 28px rgba(21,101,192,.2);
}

.profile-action--primary:hover {
    box-shadow: 0 17px 34px rgba(21,101,192,.28);
}

.profile-action--primary .profile-action__icon {
    background: rgba(255,255,255,.15);
}

.profile-action--secondary {
    color: var(--primary-dark);
    background: #fff;
    border-color: rgba(21,101,192,.12);
    box-shadow: 0 8px 22px rgba(15,23,42,.06);
}

.profile-action--secondary:hover {
    border-color: rgba(21,101,192,.24);
    box-shadow: 0 13px 27px rgba(15,23,42,.09);
}

.profile-action--secondary .profile-action__icon,
.profile-action--ghost .profile-action__icon {
    color: var(--primary);
    background: rgba(21,101,192,.08);
}

.profile-action--ghost {
    color: var(--text);
    background: rgba(21,101,192,.045);
    border-color: rgba(21,101,192,.09);
}

.profile-action--ghost:hover {
    background: rgba(21,101,192,.08);
}

.profile-action--success {
    color: #fff !important;
    background: linear-gradient(135deg, var(--success), #43a047) !important;
    border-color: transparent !important;
}

.profile-feedback {
    margin-top: 14px;
    padding: 11px 13px;
    border: 1px solid;
    border-radius: 12px;
    font-size: .79rem;
    font-weight: 700;
    line-height: 1.45;
    animation: adrexia-feedback-entry .2s ease-out;
}

.profile-feedback--success {
    color: #1b5e20;
    background: #eaf7ec;
    border-color: #bfe5c3;
}

.profile-feedback--error {
    color: #8e1c1c;
    background: #fdecec;
    border-color: #f2bfc3;
}

.profile-security-note {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 18px;
    padding: 14px;
    color: var(--text-light);
    background: rgba(21,101,192,.05);
    border: 1px solid rgba(21,101,192,.09);
    border-radius: 15px;
    font-size: .76rem;
    line-height: 1.5;
}

.profile-security-note__icon {
    width: 35px;
    height: 35px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    color: var(--primary);
    background: rgba(21,101,192,.09);
    border-radius: 11px;
}

.profile-security-note div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.profile-security-note strong {
    color: var(--primary-dark);
    font-size: .8rem;
}

.profile-premium :focus-visible {
    outline: 3px solid rgba(66,165,245,.35);
    outline-offset: 3px;
}

@keyframes adrexia-profile-entry {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes adrexia-feedback-entry {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

@media(max-width:420px) {
    .profile-premium {
        padding: 20px 16px 24px;
    }

    .profile-residence-card {
        padding: 18px;
        border-radius: 21px;
    }

    .profile-code-card {
        grid-template-columns: 1fr;
    }

    .profile-code-card__copy {
        width: 100%;
        margin-top: 7px;
    }

    .profile-information-grid {
        grid-template-columns: 1fr;
    }
}

@media(prefers-reduced-motion:reduce) {
    .profile-premium,
    .profile-feedback {
        animation: none !important;
    }
}

/* ==========================================================
   ADREXIA
   Footer Premium v2
   À ajouter à la fin de public/css/global.css
========================================================== */

.footer-premium {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-top: auto;
    color: #ffffff;
    background:
        linear-gradient(
            145deg,
            #071a38 0%,
            var(--primary-dark) 48%,
            #0b3978 100%
        );
}

.footer-premium::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: .2;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, #000, transparent 88%);
}

.footer-premium__glow {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(4px);
}

.footer-premium__glow--one {
    top: -180px;
    left: -130px;
    width: 420px;
    height: 420px;
    background: rgba(66,165,245,.18);
}

.footer-premium__glow--two {
    right: -190px;
    bottom: -230px;
    width: 480px;
    height: 480px;
    background: rgba(21,101,192,.24);
}

.footer-premium__container {
    position: relative;
    z-index: 1;
    padding-top: clamp(3.7rem, 7vw, 5.8rem);
}

.footer-premium__main {
    display: grid;
    grid-template-columns: minmax(280px, 1.1fr) minmax(0, 1.9fr);
    gap: clamp(3rem, 7vw, 6.5rem);
    padding-bottom: clamp(3rem, 6vw, 4.8rem);
}

.footer-premium__brand {
    max-width: 470px;
}

.footer-premium__identity {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    color: #ffffff;
}

.footer-premium__logo-frame {
    position: relative;
    width: 68px;
    height: 68px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    overflow: hidden;
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.13),
            rgba(255,255,255,.055)
        );
    border: 1px solid rgba(255,255,255,.17);
    border-radius: 20px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.12),
        0 18px 40px rgba(0,0,0,.18);
    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}

.footer-premium__identity:hover .footer-premium__logo-frame {
    transform: translateY(-3px) rotate(-2deg);
    border-color: rgba(255,255,255,.32);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.16),
        0 24px 48px rgba(0,0,0,.23);
}

.footer-premium__logo {
    position: absolute;
    inset: 7px;
    width: calc(100% - 14px);
    height: calc(100% - 14px);
    object-fit: contain;
    border-radius: 14px;
    opacity: 0;
    transition: opacity .25s ease;
}

.footer-premium__logo-frame--loaded .footer-premium__logo {
    opacity: 1;
}

.footer-premium__logo-fallback {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-light)
        );
    border-radius: 14px;
    font-size: 1.35rem;
    font-weight: 900;
    letter-spacing: .04em;
}

.footer-premium__logo-frame--loaded .footer-premium__logo-fallback {
    opacity: 0;
}

.footer-premium__logo-frame--fallback .footer-premium__logo {
    display: none;
}

.footer-premium__brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.footer-premium__brand-copy strong {
    font-size: 1.42rem;
    font-weight: 850;
    letter-spacing: .16em;
}

.footer-premium__brand-copy small {
    margin-top: 5px;
    color: rgba(255,255,255,.66);
    font-size: .78rem;
    font-weight: 650;
}

.footer-premium__description {
    max-width: 440px;
    margin: 24px 0 0;
    color: rgba(255,255,255,.74);
    font-size: .96rem;
    line-height: 1.8;
}

.footer-premium__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 26px;
}

.footer-premium__button {
    min-height: 47px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 10px 15px;
    border: 1px solid transparent;
    border-radius: 14px;
    font-size: .86rem;
    font-weight: 800;
    transition:
        transform .22s ease,
        background-color .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}

.footer-premium__button svg,
.footer-premium__links svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.footer-premium__button:hover {
    transform: translateY(-2px);
}

.footer-premium__button--primary {
    color: var(--primary-dark);
    background: #ffffff;
    box-shadow: 0 13px 28px rgba(0,0,0,.16);
}

.footer-premium__button--primary:hover {
    box-shadow: 0 18px 35px rgba(0,0,0,.22);
}

.footer-premium__button--secondary {
    color: #ffffff;
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.17);
    backdrop-filter: blur(10px);
}

.footer-premium__button--secondary:hover {
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.27);
}

.footer-premium__navigation-area {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.8rem, 4vw, 3.5rem);
}

.footer-premium__column h2 {
    margin: 0 0 20px;
    color: #ffffff;
    font-size: .82rem;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.footer-premium__links {
    display: grid;
    gap: 11px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-premium__links a,
.footer-premium__coming-soon {
    min-height: 31px;
    display: flex;
    align-items: center;
    gap: 9px;
    color: rgba(255,255,255,.7);
    font-size: .88rem;
    line-height: 1.45;
}

.footer-premium__links a {
    transition:
        color .2s ease,
        transform .2s ease;
}

.footer-premium__links a:hover {
    color: #ffffff;
    transform: translateX(4px);
}

.footer-premium__links a > span,
.footer-premium__coming-soon > span {
    width: 19px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    color: rgba(255,255,255,.42);
}

.footer-premium__links a:hover > span {
    color: var(--primary-light);
}

.footer-premium__coming-soon small {
    margin-left: auto;
    padding: 3px 7px;
    color: rgba(255,255,255,.55);
    background: rgba(255,255,255,.075);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 999px;
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
}

.footer-premium__platform-list {
    display: grid;
    gap: 13px;
    margin: 0;
}

.footer-premium__platform-list div {
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,.095);
}

.footer-premium__platform-list div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.footer-premium__platform-list dt {
    margin-bottom: 3px;
    color: rgba(255,255,255,.45);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.footer-premium__platform-list dd {
    margin: 0;
    color: rgba(255,255,255,.8);
    font-size: .83rem;
    font-weight: 700;
    line-height: 1.45;
}

.footer-premium__status {
    display: flex;
    align-items: center;
    gap: 8px;
}

.footer-premium__status span {
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    background: #79e69a;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(121,230,154,.11);
}

.footer-premium__bottom {
    min-height: 74px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 20px 0;
    color: rgba(255,255,255,.56);
    border-top: 1px solid rgba(255,255,255,.12);
    font-size: .78rem;
}

.footer-premium__bottom p {
    margin: 0;
}

.footer-premium__bottom p:first-child {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
}

.footer-premium__bottom strong {
    color: rgba(255,255,255,.82);
    letter-spacing: .05em;
}

.footer-premium__signature {
    text-align: right;
}

.footer-premium :focus-visible {
    outline: 3px solid rgba(96,165,250,.45);
    outline-offset: 4px;
}

@media (max-width: 1020px) {
    .footer-premium__main {
        grid-template-columns: 1fr;
        gap: 3.5rem;
    }

    .footer-premium__brand {
        max-width: 620px;
    }
}

@media (max-width: 720px) {
    .footer-premium__navigation-area {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .footer-premium__column:last-child {
        grid-column: 1 / -1;
    }

    .footer-premium__bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .footer-premium__signature {
        text-align: left;
    }
}

@media (max-width: 480px) {
    .footer-premium__container {
        padding-top: 3.2rem;
    }

    .footer-premium__identity {
        align-items: flex-start;
    }

    .footer-premium__logo-frame {
        width: 60px;
        height: 60px;
        border-radius: 18px;
    }

    .footer-premium__brand-copy strong {
        font-size: 1.18rem;
    }

    .footer-premium__brand-copy small {
        max-width: 190px;
    }

    .footer-premium__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .footer-premium__button {
        width: 100%;
    }

    .footer-premium__navigation-area {
        grid-template-columns: 1fr;
        gap: 2.2rem;
    }

    .footer-premium__column:last-child {
        grid-column: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .footer-premium *,
    .footer-premium *::before,
    .footer-premium *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
    }
}