/* ============================================================
   PPC ADULTE — Navigation publique
   ============================================================ */
.nav-pub { position:fixed; top:0; left:0; right:0; z-index:500; transition:all .3s; }
.nav-pub.scrolled { background:rgba(7,7,10,.9); backdrop-filter:blur(20px) saturate(1.4); border-bottom:1px solid var(--bordure); }
.nav-pub__inner { display:flex; align-items:center; gap:28px; max-width:1160px; margin:0 auto; padding:20px 28px; transition:padding .3s; }
.nav-pub.scrolled .nav-pub__inner { padding:13px 28px; }

.nav-pub__logo { text-decoration:none; display:flex; align-items:center; gap:4px; flex-shrink:0; }
.logo-ppc { font-family:var(--font-display); font-size:1.7rem; font-weight:900; letter-spacing:.02em; background:var(--grad-or); background-size:200% auto; -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; animation:shimmerBtn 4s linear infinite; }
.logo-adulte { font-size:.7rem; font-weight:700; letter-spacing:.08em; color:var(--or-light); background:rgba(201,150,90,.15); padding:3px 8px; border-radius:8px; margin-left:2px; -webkit-text-fill-color:var(--or-light); }

.nav-pub__links { display:flex; gap:24px; margin-left:auto; list-style:none; }
.nav-pub__link { text-decoration:none; color:var(--texte-dim); font-size:.875rem; font-weight:400; transition:color .2s; position:relative; }
.nav-pub__link::after { content:''; position:absolute; bottom:-3px; left:0; right:0; height:1px; background:var(--or); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.nav-pub__link:hover { color:var(--texte); }
.nav-pub__link:hover::after { transform:scaleX(1); }

.nav-pub__ctas { display:flex; gap:8px; flex-shrink:0; }

.nav__burger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; }
.nav__burger span { display:block; width:22px; height:2px; background:var(--texte); border-radius:2px; transition:all .3s; }
.nav__burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__burger.open span:nth-child(2){ opacity:0; }
.nav__burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-menu { display:none; position:fixed; inset:0; z-index:490; background:rgba(7,7,10,.97); backdrop-filter:blur(20px); flex-direction:column; align-items:center; justify-content:center; gap:24px; opacity:0; transition:opacity .3s; }
.mobile-menu.open { display:flex; opacity:1; }
.mobile-menu nav { display:flex; flex-direction:column; align-items:center; gap:20px; }
.mobile-menu a { font-family:var(--font-display); font-size:2.2rem; font-weight:900; color:var(--texte); text-decoration:none; transition:color .2s; }
.mobile-menu a:hover { color:var(--or-light); }
.mobile-menu__sep { width:50px; height:1px; background:var(--bordure); }
.mobile-menu__login  { font-size:1.2rem !important; color:var(--texte-dim) !important; }
.mobile-menu__signup { font-size:1.2rem !important; color:var(--or-light) !important; }
.mobile-menu__close { position:absolute; top:22px; right:28px; background:none; border:none; cursor:pointer; font-size:1.4rem; color:var(--texte-dim); }

@media (max-width:900px) {
  .nav-pub__links, .nav-pub__ctas { display:none; }
  .nav__burger { display:flex; }
  .nav-pub__inner { padding:16px 20px; }
}

/* ============================================================
   PPC ADULTE — Sidebar App
   ============================================================ */
.sidebar { width:260px; flex-shrink:0; background:var(--nuit); border-right:1px solid var(--bordure); display:flex; flex-direction:column; position:fixed; top:0; left:0; bottom:0; z-index:200; overflow-y:auto; transition:transform .3s; }
.sidebar__logo { display:flex; align-items:center; justify-content:space-between; padding:22px 20px 16px; border-bottom:1px solid var(--bordure); }
.sidebar__logo a { text-decoration:none; display:flex; align-items:center; gap:4px; }
.sidebar__premium-badge { font-size:.65rem; font-weight:800; letter-spacing:.06em; color:var(--or); background:rgba(201,150,90,.12); border:1px solid rgba(201,150,90,.25); padding:2px 8px; border-radius:20px; white-space:nowrap; }
.sidebar__close { display:none; background:none; border:none; cursor:pointer; color:var(--texte-dim); font-size:1.1rem; }
.sidebar__nav { display:flex; flex-direction:column; gap:2px; padding:12px 10px; }
.sidebar__nav--sec { padding-top:0; }
.sidebar__link { display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:var(--radius-sm); text-decoration:none; color:var(--texte-dim); font-size:.875rem; font-weight:500; transition:all .18s; position:relative; }
.sidebar__link:hover { background:rgba(201,150,90,.07); color:var(--texte); }
.sidebar__link--active { background:rgba(201,150,90,.1); color:var(--or-light); }
.sidebar__icon  { font-size:1.1rem; width:22px; text-align:center; }
.sidebar__badge { margin-left:auto; background:var(--or); color:var(--noir); border-radius:50%; width:19px; height:19px; display:flex; align-items:center; justify-content:center; font-size:.65rem; font-weight:800; }
.sidebar__premium-tag { margin-left:auto; color:var(--or); font-size:.75rem; }
.sidebar__sep   { height:1px; background:var(--bordure); margin:6px 14px; }

.sidebar__upsell { padding:14px 14px 10px; margin:0 10px 10px; background:rgba(201,150,90,.06); border:1px solid rgba(201,150,90,.15); border-radius:var(--radius-sm); }
.sidebar__upsell-icon { font-size:1.5rem; text-align:center; margin-bottom:8px; }
.sidebar__upsell-content p { font-size:.78rem; color:var(--texte-dim); text-align:center; margin-bottom:10px; line-height:1.5; }

.sidebar__user { display:flex; align-items:center; gap:10px; padding:14px 16px; border-top:1px solid var(--bordure); margin-top:auto; }
.sidebar__user-info { display:flex; align-items:center; gap:10px; flex:1; text-decoration:none; color:inherit; overflow:hidden; }
.sidebar__avatar { width:36px; height:36px; border-radius:50%; overflow:hidden; background:var(--surface2); flex-shrink:0; position:relative; border:2px solid rgba(201,150,90,.3); }
.sidebar__avatar img { width:100%; height:100%; object-fit:cover; }
.sidebar__avatar-placeholder { display:flex; align-items:center; justify-content:center; width:100%; height:100%; font-size:1rem; }
.sidebar__status { position:absolute; bottom:0; right:0; width:9px; height:9px; border-radius:50%; background:var(--vert); border:2px solid var(--nuit); }
.sidebar__avatar-crown { position:absolute; top:-6px; right:-4px; font-size:.7rem; }
.sidebar__user-text strong { display:block; font-size:.875rem; font-weight:700; color:var(--texte); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sidebar__user-text small  { font-size:.72rem; color:var(--texte-mute); }
.sidebar__logout { color:var(--texte-mute); font-size:1.1rem; text-decoration:none; transition:color .2s; }
.sidebar__logout:hover { color:var(--or); }

.sidebar-overlay { display:none; position:fixed; inset:0; z-index:190; background:rgba(0,0,0,.6); backdrop-filter:blur(4px); }
.sidebar-overlay.visible { display:block; }

.app-topbar { display:none; position:fixed; top:0; left:0; right:0; z-index:300; background:rgba(7,7,10,.92); backdrop-filter:blur(16px); border-bottom:1px solid var(--bordure); padding:12px 18px; align-items:center; justify-content:space-between; height:60px; }
.app-topbar__burger { display:flex; flex-direction:column; gap:4.5px; background:none; border:none; cursor:pointer; padding:4px; }
.app-topbar__burger span { display:block; width:20px; height:2px; background:var(--texte); border-radius:2px; }
.app-topbar__logo { text-decoration:none; display:flex; align-items:center; gap:4px; }
.app-topbar__notif { font-size:1.2rem; position:relative; text-decoration:none; }
.topbar-badge { position:absolute; top:-6px; right:-6px; background:var(--or); color:var(--noir); width:16px; height:16px; border-radius:50%; font-size:.6rem; font-weight:800; display:flex; align-items:center; justify-content:center; }

.footer-app { padding:18px 0 8px; text-align:center; font-size:.78rem; color:var(--texte-mute); border-top:1px solid var(--bordure); margin-top:40px; }
.footer-app p { margin-bottom:5px; }
.footer-app a { color:var(--texte-mute); margin:0 5px; }
.footer-app a:hover { color:var(--or-light); }

@media (max-width:900px) {
  .sidebar { transform:translateX(-100%); }
  .sidebar.open { transform:translateX(0); }
  .sidebar__close { display:block; }
  .app-topbar { display:flex; }
}

/* ============================================================
   PPC ADULTE — Footer public
   ============================================================ */
.footer-pub { background:var(--nuit); border-top:1px solid var(--bordure); padding:56px 0 32px; }
.footer-pub__grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; margin-bottom:44px; }
.footer-pub__logo { font-family:var(--font-display); font-size:1.8rem; font-weight:900; background:var(--grad-or); background-size:200% auto; -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; animation:shimmerBtn 4s linear infinite; display:inline-block; margin-bottom:12px; text-decoration:none; }
.footer-pub__logo span { font-size:.7rem; font-weight:800; background:rgba(201,150,90,.15); -webkit-text-fill-color:var(--or-light); padding:2px 7px; border-radius:7px; margin-left:3px; }
.footer-pub__desc  { font-size:.85rem; color:var(--texte-mute); line-height:1.7; max-width:240px; font-weight:300; margin-bottom:14px; }
.footer-pub__teens { font-size:.82rem; color:var(--texte-mute); }
.footer-pub__teens a { color:var(--lavande); font-weight:600; }
.footer-pub__col h3 { font-family:var(--font-body); font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--texte-mute); margin-bottom:16px; }
.footer-pub__col ul { list-style:none; display:flex; flex-direction:column; gap:9px; }
.footer-pub__col ul li a { font-size:.875rem; color:var(--texte-dim); text-decoration:none; font-weight:300; transition:color .2s; }
.footer-pub__col ul li a:hover { color:var(--or-light); }
.footer-pub__bottom { padding-top:24px; border-top:1px solid var(--bordure); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.footer-pub__bottom p { font-size:.78rem; color:var(--texte-mute); }
.footer-pub__rgpd { color:var(--texte-mute); font-size:.75rem; }

@media (max-width:900px) { .footer-pub__grid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { .footer-pub__grid { grid-template-columns:1fr; } }
